diff --git a/docs/upgrades/upgrade_6.2.11-6.3.0.pl b/docs/upgrades/upgrade_6.2.11-6.3.0.pl index de0b4bfbb..644b6f85d 100644 --- a/docs/upgrades/upgrade_6.2.11-6.3.0.pl +++ b/docs/upgrades/upgrade_6.2.11-6.3.0.pl @@ -748,7 +748,9 @@ while (my ($id, $template, $namespace) = $sth->array) { $template =~ s/numberOfPages/pagination.pageCount/ixsg; $template =~ s/pageNumber/pagination.pageNumber/ixsg; $template =~ s/thread_loop/post_loop/ixsg; + $template =~ s/depth_loop/indent_loop/ixsg; $template =~ s/back\.url/collaboration.url/ixsg; + $template =~ s/list\.label/back.label/ixsg; $template =~ s/-=:\s+:=-//ixsg; WebGUI::SQL->write("update template set template=".quote($template).", namespace=".quote($namespace)." where assetId=".quote($id)); } diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 8e0cc0db8..27758a760 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -14,6 +14,7 @@ use strict; use Tie::CPHash; use WebGUI::Asset; use WebGUI::Asset::Template; +use WebGUI::Asset::Post::Thread; use WebGUI::DateTime; use WebGUI::Grouping; use WebGUI::HTML; @@ -333,9 +334,9 @@ sub getTemplateVars { $var{"dateSubmitted.human"} = epochToHuman($self->get("dateSubmitted")); $var{"dateUpdated.human"} = epochToHuman($self->get("dateUpdated")); - $var{content} = $self->formatContent; + $var{content} = $self->formatContent if ($self->getThread); - $var{canEdit} = $self->canEdit; + $var{canEdit} = $self->canEdit if ($self->getThread); $var{"delete.url"} = $self->getDeleteUrl; $var{"edit.url"} = $self->getEditUrl; @@ -374,7 +375,7 @@ sub getTemplateVars { sub getThread { my $self = shift; unless (exists $self->{_thread}) { - $self->{_thread} = WebGUI::Asset::Thread->new($self->get("threadId")); + $self->{_thread} = WebGUI::Asset::Post::Thread->new($self->get("threadId")); } return $self->{_thread}; } @@ -505,27 +506,37 @@ sub notifySubscribers { #------------------------------------------------------------------- sub processPropertiesFromFormPost { my $self = shift; - $self->SUPER::processPropertiesFromFormPost; - if ($session{form}{assetId} eq "new" && $session{setting}{enableKarma} && $self->getThread->getParent->get("karmaPerPost")) { - my $u = WebGUI::User->new($session{user}{userId}); - $u->addKarma($self->getThread->getParent->get("karmaPerPost"), $self->getId, "Collaboration post"); + $self->SUPER::processPropertiesFromFormPost; + my %data; + if ($session{form}{assetId} eq "new") { + if ($self->getParent->get("className") eq "WebGUI::Asset::Wobject::Collaboration") { + $self->update({threadId=>$self->getId}); + } else { + $self->update({threadId=>$self->getParent->get("threadId")}); + } + if ($session{setting}{enableKarma} && $self->getThread->getParent->get("karmaPerPost")) { + my $u = WebGUI::User->new($session{user}{userId}); + $u->addKarma($self->getThread->getParent->get("karmaPerPost"), $self->getId, "Collaboration post"); + } + %data = ( + ownerUserId => $session{user}{userId}, + groupIdView => $self->getThread->getParent->get("groupIdView"), + groupIdEdit => $self->getThread->getParent->get("groupIdEdit"), + isHidden => 1 + ); + if ($self->getThread->getParent->canModerate) { + $self->getThread->lock if ($session{form}{'lock'}); + $self->getThread->stick if ($session{form}{stick}); + } } - my %data = ( - ownerUserId => $session{user}{userId}, - groupIdView => $self->getThread->get("groupIdView"), - groupIdEdit => $self->getThread->get("groupIdEdit") - ); $data{startDate} = $self->getThread->getParent->get("startDate") unless ($session{form}{startDate}); $data{endDate} = $self->getThread->getParent->get("endDate") unless ($session{form}{endDate}); ($data{synopsis}, $data{content}) = $self->getSynopsisAndContentFromFormPost; if ($self->getThread->getParent->get("addEditStampToPosts")) { $data{content} .= "

\n\n --- (Edited on ".WebGUI::DateTime::epochToHuman()." by ".$session{user}{alias}.") --- \n

"; } - $data{isHidden} = 1; $self->update(\%data); $self->getThread->subscribe if ($session{form}{subscribe}); - $self->getThread->lock if ($session{form}{'lock'}); - $self->getThread->stick if ($session{form}{stick}); if ($self->getThread->getParent->get("moderatePosts")) { $self->setStatusPending; } else { @@ -700,21 +711,16 @@ sub www_edit { name=>"class", value=>$session{form}{class} }); - if ($self->getThread->getParent->canModerate) { - $var{'lock.form'} = WebGUI::Form::yesNo({ - name=>'lock', - value=>$session{form}{'lock'} - }); - } if ($session{form}{class} eq "WebGUI::Asset::Post") { # new reply - return $self->getThread->getParent->processStyle(WebGUI::Privilege::insufficient()) unless ($self->canReply); + $self->{_thread} = $self->getParent->getThread; + return $self->getThread->getParent->processStyle(WebGUI::Privilege::insufficient()) unless ($self->getThread->canReply); $var{isReply} = 1; if ($session{form}{content} || $session{form}{title}) { $content = $session{form}{content}; $title = $session{form}{title}; } else { $content = "[quote]".$self->getParent->get("content")."[/quote]" if ($session{form}{withQuote}); - $title = $self->getParent->get("subject"); + $title = $self->getParent->get("title"); $title = "Re: ".$title unless ($title =~ /^Re:/); } $var{'subscribe.form'} = WebGUI::Form::yesNo({ @@ -729,6 +735,10 @@ sub www_edit { name=>'stick', value=>$session{form}{stick} }); + $var{'lock.form'} = WebGUI::Form::yesNo({ + name=>'lock', + value=>$session{form}{'lock'} + }); } $var{'subscribe.form'} = WebGUI::Form::yesNo({ name=>"subscribe", @@ -825,7 +835,7 @@ sub www_edit { value => $self->getValue("startDate") }); $self->getThread->getParent->appendTemplateLabels(\%var); - return $self->getParent->processStyle($self->processTemplate(\%var,$self->getThread->getParent->get("postFormTemplateId"))); + return $self->getThread->getParent->processStyle($self->processTemplate(\%var,$self->getThread->getParent->get("postFormTemplateId"))); } diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index ce3ca44c3..bb9a50b25 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -610,7 +610,7 @@ sub view { ) order by "; if ($layout eq "flat") { - $sql .= "post.dateSubmitted"; + $sql .= "Post.dateSubmitted"; } else { $sql .= "asset.lineage"; } @@ -625,7 +625,7 @@ sub view { for (my $i=0; $i<$replyVars->{depth}; $i++) { push(@{$replyVars->{indent_loop}},{depth=>$i}); } - push (@{$var->{reply_loop}}, $replyVars); + push (@{$var->{post_loop}}, $replyVars); } $p->appendTemplateVars($var); $var->{'add.url'} = $self->getParent->getNewThreadUrl; @@ -636,7 +636,7 @@ sub view { $var->{"next.url"} = $next->getUrl if (defined $next); $var->{"search.url"} = $self->getParent->getSearchUrl; - $var->{"back.url"} = $self->getThread->getParent->getUrl; + $var->{"collaboration.url"} = $self->getThread->getParent->getUrl; return $self->processTemplate($var,$self->getParent->get("threadTemplateId")); } diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index af836e31e..31f7e1fdc 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -117,6 +117,7 @@ sub appendTemplateLabels { $var->{"layout.flat.label"} = "Flat"; $var->{'image.label'} = "Image"; $var->{'link.header.label'} = "Edit Link"; + $var->{"lastReply.label"} = "Last Reply"; $var->{"lock.label"} = "Lock"; $var->{"layout.label"} = "Layout"; $var->{'message.header.label'} = "Edit Message"; @@ -131,6 +132,7 @@ sub appendTemplateLabels { $var->{"rating.label"} = "Rating"; $var->{"rate.label"} = "Rate"; $var->{"reply.label"} = "Reply"; + $var->{"replies.label"} = "Replies"; $var->{"readmore.label"} = "Read More"; $var->{"responses.label"} = "Responses"; $var->{'results.label'} = "Results"; @@ -230,6 +232,10 @@ sub definition { tableName=>'Collaboration', className=>'WebGUI::Asset::Wobject::Collaboration', properties=>{ + allowReplies =>{ + fieldType=>"yesNo", + defaultValue=>1 + }, threadsPerPage =>{ fieldType=>"integer", defaultValue=>30 @@ -460,6 +466,11 @@ sub getEditForm { -label=>"Edit Timeout", -value=>$self->getValue("editTimeout") ); + $tabform->getTab("security")->yesNo( + -name=>"allowReplies", + -label=>"Allow replies?", + -value=>$self->getValue("allowReplies") + ); $tabform->getTab("security")->yesNo( -name=>"addEditStampToPosts", -label=>"Add edit stamp to posts?", @@ -475,7 +486,7 @@ sub getEditForm { -label=>"Use content filter?", -value=>$self->getValue("useContentFilter") ); - $tabform->getTab("display")->yesNo( + $tabform->getTab("properties")->yesNo( -name=>"usePreview", -label=>"Use preview?", -value=>$self->getValue("usePreview")