fixed [ 1306912 ] CMS Matrix - Unable to approve article's

This commit is contained in:
JT Smith 2005-10-13 19:04:05 +00:00
parent e4c2bc9969
commit 7576dbfa78
6 changed files with 22 additions and 9 deletions

View file

@ -7,6 +7,8 @@
- fix [ 1298896 ] 6.7.4 - reordering stops working after moving assets - fix [ 1298896 ] 6.7.4 - reordering stops working after moving assets
- fix [ 1324170 ] assetId has no hoverhelp. - fix [ 1324170 ] assetId has no hoverhelp.
- fix [ 1298851 ] forum subscribers still get notif. after subscr. expired - fix [ 1298851 ] forum subscribers still get notif. after subscr. expired
- fix [ 1305368 ] Moderation in Collaboration not working ?
- fix [ 1306912 ] CMS Matrix - Unable to approve article's
6.7.6 6.7.6

View file

@ -88,7 +88,7 @@ sub page {
return _setup() if ($session{setting}{specialState} eq "init"); return _setup() if ($session{setting}{specialState} eq "init");
my $output = _processOperations(); my $output = _processOperations();
if ($output eq "") { if ($output eq "") {
my $asset = WebGUI::Asset->newByUrl($assetUrl); my $asset = WebGUI::Asset->newByUrl($assetUrl,$session{form}{revision});
if (defined $asset) { if (defined $asset) {
$session{asset} = $asset; $session{asset} = $asset;
my $method = "view"; my $method = "view";

View file

@ -974,7 +974,7 @@ sub new {
my $revisionDate = shift || $session{assetRevision}{$assetId}{$session{scratch}{versionTag}||'_'}; my $revisionDate = shift || $session{assetRevision}{$assetId}{$session{scratch}{versionTag}||'_'};
unless ($revisionDate) { unless ($revisionDate) {
($revisionDate) = WebGUI::SQL->quickArray("select max(revisionDate) from assetData where assetId=" ($revisionDate) = WebGUI::SQL->quickArray("select max(revisionDate) from assetData where assetId="
.quote($assetId)." and (status='approved' or status='archived' or status='pending' or tagId=".quote($session{scratch}{versionTag}).") .quote($assetId)." and (status='approved' or status='archived' or tagId=".quote($session{scratch}{versionTag}).")
group by assetData.assetId order by assetData.revisionDate"); group by assetData.assetId order by assetData.revisionDate");
$session{assetRevision}{$assetId}{$session{scratch}{versionTag}||'_'} = $revisionDate unless ($session{config}{disableCache}); $session{assetRevision}{$assetId}{$session{scratch}{versionTag}||'_'} = $revisionDate unless ($session{config}{disableCache});
} }
@ -1068,7 +1068,7 @@ sub newByPropertyHashRef {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 newByUrl ( [url] ) =head2 newByUrl ( [url, revisionDate] )
Returns a new Asset object based upon current url, given url or defaultPage. Returns a new Asset object based upon current url, given url or defaultPage.
@ -1076,11 +1076,16 @@ Returns a new Asset object based upon current url, given url or defaultPage.
Optional string representing a URL. Optional string representing a URL.
=head3 revisionDate
A specific revision to instanciate. By default we instanciate the newest published revision.
=cut =cut
sub newByUrl { sub newByUrl {
my $class = shift; my $class = shift;
my $url = shift || $session{env}{PATH_INFO}; my $url = shift || $session{env}{PATH_INFO};
my $revisionDate = shift;
$url = lc($url); $url = lc($url);
$url =~ s/\/$//; $url =~ s/\/$//;
$url =~ s/^\///; $url =~ s/^\///;
@ -1102,7 +1107,7 @@ sub newByUrl {
assetData.assetId assetData.assetId
"); ");
if ($id ne "" || $class ne "") { if ($id ne "" || $class ne "") {
return WebGUI::Asset->new($id, $class); return WebGUI::Asset->new($id, $class, $revisionDate);
} else { } else {
WebGUI::ErrorHandler::warn("The URL $url was requested, but does not exist in your asset tree."); WebGUI::ErrorHandler::warn("The URL $url was requested, but does not exist in your asset tree.");
return undef; return undef;

View file

@ -595,7 +595,7 @@ sub notifySubscribers {
foreach my $userId (keys %subscribers) { foreach my $userId (keys %subscribers) {
my $u = WebGUI::User->new($userId); my $u = WebGUI::User->new($userId);
if ($lang{$u->profileField("language")}{message} eq "") { if ($lang{$u->profileField("language")}{message} eq "") {
$lang{$u->profileField("language")}{var} = $self->getTemplateVars($lang{$u->profileField("language")}{var}); $lang{$u->profileField("language")}{var} = $self->getTemplateVars();
$self->getThread->getParent->appendTemplateLabels($lang{$u->profileField("language")}{var}); $self->getThread->getParent->appendTemplateLabels($lang{$u->profileField("language")}{var});
$lang{$u->profileField("language")}{var}{url} = WebGUI::URL::getSiteURL().$self->getUrl; $lang{$u->profileField("language")}{var}{url} = WebGUI::URL::getSiteURL().$self->getUrl;
$lang{$u->profileField("language")}{var}{'notify.subscription.message'} = $lang{$u->profileField("language")}{var}{'notify.subscription.message'} =
@ -810,7 +810,7 @@ sub setStatusPending {
} else { } else {
$self->update({status=>'pending'}); $self->update({status=>'pending'});
WebGUI::MessageLog::addInternationalizedEntry('',$self->getThread->getParent->get("moderateGroupId"), WebGUI::MessageLog::addInternationalizedEntry('',$self->getThread->getParent->get("moderateGroupId"),
$self->getUrl,578,'WebGUI','pending'); $self->getUrl("revision=".$self->get("revisionDate")),578,'WebGUI','pending');
} }
} }

View file

@ -76,10 +76,16 @@ sub appendPostListTemplateVars {
); );
} }
} }
my $url;
if ($post->get("status") eq "pending" || $post->get("status") eq "denied") {
$url = $post->getUrl("revision=".$post->get("revisionDate"))."#".$post->getId;
} else {
$url = $post->getUrl."#".$post->getId;
}
push(@{$var->{post_loop}}, { push(@{$var->{post_loop}}, {
%{$post->get}, %{$post->get},
"id"=>$post->getId, "id"=>$post->getId,
"url"=>$post->getUrl.'#'.$post->getId, "url"=>$url,
rating_loop=>\@rating_loop, rating_loop=>\@rating_loop,
"content"=>$post->formatContent, "content"=>$post->formatContent,
"status"=>$post->getStatus, "status"=>$post->getStatus,
@ -898,7 +904,7 @@ sub view {
$var{"subscribe.url"} = $self->getSubscribeUrl; $var{"subscribe.url"} = $self->getSubscribeUrl;
$var{"unsubscribe.url"} = $self->getUnsubscribeUrl; $var{"unsubscribe.url"} = $self->getUnsubscribeUrl;
my $constraints = "(assetData.status='approved' or (assetData.ownerUserId=".quote($session{user}{userId})." and assetData.ownerUserId<>'1') or assetData.tagId=".quote($session{scratch}{versionTag}); my $constraints = "(assetData.status='approved' or (assetData.ownerUserId=".quote($session{user}{userId})." and assetData.ownerUserId<>'1') or assetData.tagId=".quote($session{scratch}{versionTag});
if ($var{canModerate}) { if ($var{'user.isModerator'}) {
$constraints .= " or assetData.status='pending'"; $constraints .= " or assetData.status='pending'";
} }
$constraints .= ")"; $constraints .= ")";

View file

@ -422,7 +422,7 @@ Returns an asset hash of the parent of current Asset.
sub getParent { sub getParent {
my $self = shift; my $self = shift;
return $self if ($self->get("assetId") eq "PBasset000000000000001"); return $self if ($self->getId eq "PBasset000000000000001");
$self->{_parent} = WebGUI::Asset->newByDynamicClass($self->get("parentId")) unless (exists $self->{_parent}); $self->{_parent} = WebGUI::Asset->newByDynamicClass($self->get("parentId")) unless (exists $self->{_parent});
return $self->{_parent}; return $self->{_parent};
} }