more merging of versioning and workflow
This commit is contained in:
parent
cba26ecc0c
commit
81fc744a8b
8 changed files with 45 additions and 37 deletions
|
|
@ -32,7 +32,6 @@ use WebGUI::Search;
|
|||
use WebGUI::Search::Index;
|
||||
use WebGUI::TabForm;
|
||||
use WebGUI::Utility;
|
||||
use WebGUI::VersionTag;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -1014,8 +1013,8 @@ sub manageAssets {
|
|||
assetManager.AddColumn('".$i18n->get("99")."','','left','');
|
||||
assetManager.AddColumn('".$i18n->get("type")."','','left','');
|
||||
assetManager.AddColumn('".$i18n->get("last updated")."','','center','');
|
||||
assetManager.AddColumn('".$i18n->get("size")."','','right','');\n";
|
||||
$output .= "assetManager.AddColumn('".$i18n->get("locked")."','','center','');\n" unless ($self->session->setting->get("autoCommit"));
|
||||
assetManager.AddColumn('".$i18n->get("size")."','','right','');\n
|
||||
assetManager.AddColumn('".$i18n->get("locked")."','','center','');\n";
|
||||
foreach my $child (@{$self->getLineage(["children"],{returnObjects=>1})}) {
|
||||
$output .= 'var contextMenu = new contextMenu_createWithLink("'.$child->getId.'","More");
|
||||
contextMenu.addLink("'.$child->getUrl("func=editBranch").'","'.$i18n->get("edit branch").'");
|
||||
|
|
@ -1033,7 +1032,7 @@ sub manageAssets {
|
|||
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+";
|
||||
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/unlocked.gif" alt="unlocked" style="border: 0px;" />';
|
||||
}
|
||||
my $lockLink = ", '<a href=\"".$child->getUrl("func=manageRevisions")."\">".$locked."</a>'" unless ($self->session->setting->get("autoCommit"));
|
||||
my $lockLink = ", '<a href=\"".$child->getUrl("func=manageRevisions")."\">".$locked."</a>'";
|
||||
$output .= "assetManager.AddLine('"
|
||||
.WebGUI::Form::checkbox($self->session,{
|
||||
name=>'assetId',
|
||||
|
|
@ -1193,7 +1192,7 @@ sub manageAssetsSearch {
|
|||
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+";
|
||||
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/unlocked.gif" alt="unlocked" style="border: 0px;" />';
|
||||
}
|
||||
my $lockLink = ", '<a href=\"".$child->getUrl("func=manageRevisions")."\">".$locked."</a>'" unless ($self->session->setting->get("autoCommit"));
|
||||
my $lockLink = ", '<a href=\"".$child->getUrl("func=manageRevisions")."\">".$locked."</a>'";
|
||||
$output .= "assetManager.AddLine('"
|
||||
.WebGUI::Form::checkbox($self->session,{
|
||||
name=>'assetId',
|
||||
|
|
@ -1257,10 +1256,9 @@ sub new {
|
|||
my $assetRevision = $session->stow->get("assetRevision");
|
||||
my $revisionDate = shift || $assetRevision->{$assetId}{$session->scratch->get("versionTag")||'_'};
|
||||
unless ($revisionDate) {
|
||||
($revisionDate) = $session->db->quickArray("select max(revisionDate) from assetData where assetId="
|
||||
.$session->db->quote($assetId)." and (status='approved' or status='archived' or tagId="
|
||||
.$session->db->quote($session->scratch->get("versionTag")).")
|
||||
group by assetData.assetId order by assetData.revisionDate");
|
||||
($revisionDate) = $session->db->quickArray("select max(revisionDate) from assetData where assetId=? and
|
||||
(status='approved' or status='archived' or tagId=?) order by assetData.revisionDate",
|
||||
[$assetId, $session->scratch->get("versionTag")]);
|
||||
$assetRevision->{$assetId}{$session->scratch->get("versionTag")||'_'} = $revisionDate;
|
||||
$session->stow("assetRevision",$assetRevision);
|
||||
}
|
||||
|
|
@ -1744,7 +1742,6 @@ sub www_editSave {
|
|||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
my $object;
|
||||
my $tag = WebGUI::VersionTag->getWorking($self->session);
|
||||
if ($self->session->form->process("assetId") eq "new") {
|
||||
$object = $self->addChild({className=>$self->session->form->process("class")});
|
||||
$object->{_parent} = $self;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ package WebGUI::Asset;
|
|||
|
||||
use strict;
|
||||
use WebGUI::Paginator;
|
||||
use WebGUI::VersionTag;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -56,20 +57,19 @@ sub addRevision {
|
|||
my $self = shift;
|
||||
my $properties = shift;
|
||||
my $now = shift ||$self->session->datetime->time();
|
||||
my $versionTag = $self->session->scratch->get("versionTag") || 'pbversion0000000000002';
|
||||
my $status = $self->session->setting->get("autoCommit") ? 'approved' : 'pending';
|
||||
my $workingTag = WebGUI::VersionTag->getWorking($self->session);
|
||||
$self->session->db->write("insert into assetData (assetId, revisionDate, revisedBy, tagId, status, url,
|
||||
ownerUserId, groupIdEdit, groupIdView) values (".$self->session->db->quote($self->getId).",".$now.", ".$self->session->db->quote($self->session->user->userId).",
|
||||
".$self->session->db->quote($versionTag).", ".$self->session->db->quote($status).", ".$self->session->db->quote($self->getId).", '3','3','7')");
|
||||
ownerUserId, groupIdEdit, groupIdView) values (?, ?, ?, ?, 'pending', ?, '3','3','7')",
|
||||
[$self->getId, $now, $self->session->user->userId, $workingTag->getId, $self->getId] );
|
||||
foreach my $definition (@{$self->definition($self->session)}) {
|
||||
unless ($definition->{tableName} eq "assetData") {
|
||||
$self->session->db->write("insert into ".$definition->{tableName}." (assetId,revisionDate) values (".$self->session->db->quote($self->getId).",".$now.")");
|
||||
$self->session->db->write("insert into ".$definition->{tableName}." (assetId,revisionDate) values (?,?)", [$self->getId, $now]);
|
||||
}
|
||||
}
|
||||
my $newVersion = WebGUI::Asset->new($self->session,$self->getId, $self->get("className"), $now);
|
||||
$newVersion->updateHistory("created revision");
|
||||
$newVersion->update($self->get);
|
||||
$newVersion->setVersionLock unless ($self->session->setting->get("autoCommit"));
|
||||
$newVersion->setVersionLock;
|
||||
$newVersion->update($properties) if (defined $properties);
|
||||
return $newVersion;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,10 +98,12 @@ sub process {
|
|||
}
|
||||
}
|
||||
my $working = WebGUI::VersionTag->getWorking($session, 1);
|
||||
my $workingId = "";
|
||||
my @tags = ();
|
||||
if ($working) {
|
||||
$workingId = $working->getId;
|
||||
push(@tags, {
|
||||
url=>$session->url->page("op=commitVersionTag;backToSite=1;tagId=".$working->getId),
|
||||
url=>$session->url->page("op=commitVersionTag;backToSite=1;tagId=".$workingId),
|
||||
title=>$i18n->get("commit my changes"),
|
||||
icon=>$session->config->get("extrasURL").'/adminConsole/small/versionTags.gif'
|
||||
});
|
||||
|
|
@ -110,7 +112,7 @@ sub process {
|
|||
while (my ($id, $name) = $rs->array) {
|
||||
push(@tags, {
|
||||
url=>$session->url->page("op=setWorkingVersionTag;backToSite=1;tagId=".$id),
|
||||
title=>($id eq $working->getId) ? '<span style="color: #000080;">* '.$name.'</span>' : $name,
|
||||
title=>($id eq $workingId) ? '<span style="color: #000080;">* '.$name.'</span>' : $name,
|
||||
icon=>$session->config->get("extrasURL").'/spacer.gif'
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ sub getOperations {
|
|||
'manageVersions' => 'WebGUI::Operation::VersionTag',
|
||||
'manageRevisionsInTag' => 'WebGUI::Operation::VersionTag',
|
||||
'rollbackVersionTag' => 'WebGUI::Operation::VersionTag',
|
||||
'setVersionTag' => 'WebGUI::Operation::VersionTag',
|
||||
'setWorkingVersionTag' => 'WebGUI::Operation::VersionTag',
|
||||
'addWorkflow' => 'WebGUI::Operation::Workflow',
|
||||
'deleteWorkflow' => 'WebGUI::Operation::Workflow',
|
||||
'editWorkflowActivity' => 'WebGUI::Operation::Workflow',
|
||||
|
|
|
|||
|
|
@ -249,7 +249,7 @@ sub www_manageVersions {
|
|||
<td>'.$session->datetime->epochToHuman($date).'</td>
|
||||
<td>'.$u->username.'</td>
|
||||
<td>
|
||||
<a href="'.$session->url->page("op=setVersionTag;tagId=".$id).'">'.$setTag.'</a> |
|
||||
<a href="'.$session->url->page("op=setWorkingVersionTag;tagId=".$id).'">'.$setTag.'</a> |
|
||||
<a href="'.$session->url->page("op=commitVersionTag;tagId=".$id).'" onclick="return confirm(\''.$commitPrompt.'\');">'.$commit.'</a></td></tr>';
|
||||
}
|
||||
$sth->finish;
|
||||
|
|
@ -281,22 +281,25 @@ sub www_manageRevisionsInTag {
|
|||
$ac->addSubmenuItem($session->url->page('op=manageCommittedVersions'), $i18n->get("manage committed versions")) if ($session->user->isInGroup(3));
|
||||
$ac->addSubmenuItem($session->url->page('op=manageVersions'), $i18n->get("manage versions"));
|
||||
my $output = '<table width=100% class="content">
|
||||
<tr><th></th><th>'.$i18n->get("title","Asset").'</th><th>'.$i18n->get("type","Asset").'</th><th>'.$i18n->get("revision date","Asset").'</th><th>'.$i18n->get("revised by","Asset").'</th></tr> ';
|
||||
my $p = WebGUI::Paginator->new($session,$session->url->page("op=manageRevisionsInTag;tagId=".$session->form->process("tagId")));
|
||||
<tr><th></th><th>'.$i18n->get(99,"Asset").'</th><th>'.$i18n->get("type","Asset").'</th><th>'.$i18n->get("revision date","Asset").'</th><th>'.$i18n->get("revised by","Asset").'</th></tr> ';
|
||||
my $p = WebGUI::Paginator->new($session,$session->url->page("op=manageRevisionsInTag;tagId=".$tag->getId));
|
||||
$p->setDataByQuery("select assetData.revisionDate, users.username, asset.assetId, asset.className from assetData
|
||||
left join asset on assetData.assetId=asset.assetId left join users on assetData.revisedBy=users.userId
|
||||
where assetData.tagId=?",undef, undef, [$session->form->process("tagId")]);
|
||||
where assetData.tagId=?",undef, undef, [$tag->getId]);
|
||||
foreach my $row (@{$p->getPageData}) {
|
||||
my ($date,$by,$id, $class) = ($row->{revisionDate}, $row->{username}, $row->{assetId}, $row->{className});
|
||||
my $asset = WebGUI::Asset->new($session,$id,$class,$date);
|
||||
$output .= '<tr><td>'.$session->icon->delete("func=purgeRevision;proceed=manageRevisionsInTag;tagId=".$session->form->process("tagId").";revisionDate=".$date,$asset->get("url"),$i18n->get("purge revision prompt")).'</td>
|
||||
$output .= '<tr><td>'
|
||||
.$session->icon->delete("func=purgeRevision;proceed=manageRevisionsInTag;tagId=".$tag->getId.";revisionDate=".$date,$asset->get("url"),$i18n->get("purge revision prompt"))
|
||||
.$session->icon->view("func=viewRevision;revisionDate=".$date)
|
||||
.'</td>
|
||||
<td>'.$asset->getTitle.'</td>
|
||||
<td><img src="'.$asset->getIcon(1).'" alt="'.$asset->getName.'" />'.$asset->getName.'</td>
|
||||
<td><a href="'.$asset->getUrl("func=viewRevision;revisionDate=".$date).'">'.$session->datetime->epochToHuman($date).'</a></td>
|
||||
<td>'.$session->datetime->epochToHuman($date).'</td>
|
||||
<td>'.$by.'</td></tr>';
|
||||
}
|
||||
$output .= '</table>'.$p->getBarSimple;
|
||||
my $tag = $session->db->getRow("assetVersionTag","tagId",$session->form->process("tagId"));
|
||||
my $tag = $session->db->getRow("assetVersionTag","tagId",$tag->getId);
|
||||
return $ac->render($output,$i18n->get("revisions in tag").": ".$tag->{name});
|
||||
}
|
||||
|
||||
|
|
@ -332,7 +335,7 @@ sub www_rollbackVersionTag {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_setVersionTag ( session )
|
||||
=head2 www_setWorkingVersionTag ( session )
|
||||
|
||||
Sets the current user's working version tag.
|
||||
|
||||
|
|
@ -342,7 +345,7 @@ A reference to the current session.
|
|||
|
||||
=cut
|
||||
|
||||
sub www_setVersionTag () {
|
||||
sub www_setWorkingVersionTag () {
|
||||
my $session = shift;
|
||||
my $tag = WebGUI::VersionTag->new($session, $session->form->process("tagId"));
|
||||
if (defined $tag && $session->user->isInGroup($tag->get("groupToUse"))) {
|
||||
|
|
|
|||
|
|
@ -538,10 +538,10 @@ sub setDataByQuery {
|
|||
my ($self, $sql, $dbh, $unconditional, $placeholders, $dynamicPageNumberKey, $dynamicPageNumberValue) = @_;
|
||||
$dbh ||= $self->session->dbSlave;
|
||||
if ($unconditional) {
|
||||
$sth = $dbh->unconditionalRead($sql,undef,$placeholders);
|
||||
$sth = $dbh->unconditionalRead($sql,$placeholders);
|
||||
return $sth->errorMessage if ($sth->errorCode > 0);
|
||||
} else {
|
||||
$sth = $dbh->read($sql,undef,$placeholders);
|
||||
$sth = $dbh->read($sql,$placeholders);
|
||||
}
|
||||
my $defaultPageNumber = $self->getPageNumber;
|
||||
$self->{_totalRows} = $sth->rows;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue