collaboration system posts now work fully with the workflow engine, including the approval denial process
This commit is contained in:
parent
6a035e44b0
commit
19e4da7a92
5 changed files with 24 additions and 8 deletions
|
|
@ -956,6 +956,10 @@ sub www_edit {
|
||||||
name=>"func",
|
name=>"func",
|
||||||
value=>"edit"
|
value=>"edit"
|
||||||
})
|
})
|
||||||
|
.WebGUI::Form::hidden($self->session, {
|
||||||
|
name=>"revision",
|
||||||
|
value=>$self->session->form->param("revision")
|
||||||
|
})
|
||||||
.WebGUI::Form::hidden($self->session, {
|
.WebGUI::Form::hidden($self->session, {
|
||||||
name=>"ownerUserId",
|
name=>"ownerUserId",
|
||||||
value=>$self->getValue("ownerUserId")
|
value=>$self->getValue("ownerUserId")
|
||||||
|
|
|
||||||
|
|
@ -536,6 +536,14 @@ sub setCollateral {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 www_edit ()
|
||||||
|
|
||||||
|
Returns an edit form for this asset.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
sub www_edit {
|
sub www_edit {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||||
|
|
|
||||||
|
|
@ -926,17 +926,15 @@ sub view {
|
||||||
$var{"search.url"} = $self->getSearchUrl;
|
$var{"search.url"} = $self->getSearchUrl;
|
||||||
$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=".$self->session->db->quote($self->session->user->userId)." and assetData.ownerUserId<>'1') or assetData.tagId=".$self->session->db->quote($self->session->scratch->get("versionTag"));
|
|
||||||
if ($var{'user.isModerator'}) {
|
|
||||||
$constraints .= " or assetData.status='pending'";
|
|
||||||
}
|
|
||||||
$constraints .= ")";
|
|
||||||
my $sql = "select asset.assetId,asset.className,assetData.revisionDate as revisionDate
|
my $sql = "select asset.assetId,asset.className,assetData.revisionDate as revisionDate
|
||||||
from Thread
|
from Thread
|
||||||
left join asset on Thread.assetId=asset.assetId
|
left join asset on Thread.assetId=asset.assetId
|
||||||
left join Post on Post.assetId=Thread.assetId and Thread.revisionDate = Post.revisionDate
|
left join Post on Post.assetId=Thread.assetId and Thread.revisionDate = Post.revisionDate
|
||||||
left join assetData on assetData.assetId=Thread.assetId and Thread.revisionDate = assetData.revisionDate
|
left join assetData on assetData.assetId=Thread.assetId and Thread.revisionDate = assetData.revisionDate
|
||||||
where asset.parentId=".$self->session->db->quote($self->getId)." and asset.state='published' and asset.className='WebGUI::Asset::Post::Thread' and assetData.revisionDate=(SELECT max(revisionDate) from assetData where assetData.assetId=asset.assetId) and $constraints
|
where asset.parentId=".$self->session->db->quote($self->getId)." and asset.state='published' and
|
||||||
|
asset.className='WebGUI::Asset::Post::Thread' and assetData.revisionDate=(SELECT max(revisionDate) from assetData
|
||||||
|
where assetData.assetId=asset.assetId) and (assetData.status='approved'
|
||||||
|
or assetData.tagId=".$self->session->db->quote($self->session->scratch->get("versionTag")).")
|
||||||
group by assetData.assetId order by Thread.isSticky desc, ".$sortBy." ".$sortOrder;
|
group by assetData.assetId order by Thread.isSticky desc, ".$sortBy." ".$sortOrder;
|
||||||
my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("threadsPerPage"));
|
my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("threadsPerPage"));
|
||||||
$self->appendPostListTemplateVars(\%var, $sql, $p);
|
$self->appendPostListTemplateVars(\%var, $sql, $p);
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ Returns a list of asset objects that are part of this version tag.
|
||||||
sub getAssets {
|
sub getAssets {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my @assets = ();
|
my @assets = ();
|
||||||
my $sth = $self->session->db->read("select asset.assetId,asset.className,assetData.revisionDate from assetData left join asset on asset.assetId=assetData.assetId where assetData.tagId=?", [$self->getId]);
|
my $sth = $self->session->db->read("select asset.assetId,asset.className,assetData.revisionDate from assetData left join asset on asset.assetId=assetData.assetId where assetData.tagId=? order by revisionDate desc", [$self->getId]);
|
||||||
while (my ($id,$class,$version) = $sth->array) {
|
while (my ($id,$class,$version) = $sth->array) {
|
||||||
push(@assets, WebGUI::Asset->new($self->session,$id,$class,$version));
|
push(@assets, WebGUI::Asset->new($self->session,$id,$class,$version));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,10 +89,16 @@ sub execute {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $versionTag = shift;
|
my $versionTag = shift;
|
||||||
my $inbox = WebGUI::Inbox->new($self->session);
|
my $inbox = WebGUI::Inbox->new($self->session);
|
||||||
|
my $urlOfSingleAsset = "";
|
||||||
|
if ($versionTag->getAssetCount) {
|
||||||
|
# if there's only one asset in the tag, we might as well give them a direct link to it
|
||||||
|
my $asset = $versionTag->getAssets->[0];
|
||||||
|
$urlOfSingleAsset = "\n\n".$self->session->getSiteURL().$asset->getUrl("func=view;revision=".$asset->get("revisionDate"));
|
||||||
|
}
|
||||||
my $properties = {
|
my $properties = {
|
||||||
status=>"completed",
|
status=>"completed",
|
||||||
subject=>$versionTag->get("name"),
|
subject=>$versionTag->get("name"),
|
||||||
message=>$self->get("message")."\n\n".$versionTag->get("comments"),
|
message=>$self->get("message")."\n\n".$versionTag->get("comments").$urlOfSingleAsset,
|
||||||
};
|
};
|
||||||
if ($self->get("who") eq "committer") {
|
if ($self->get("who") eq "committer") {
|
||||||
$properties->{userId} = $versionTag->get("committedBy");
|
$properties->{userId} = $versionTag->get("committedBy");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue