diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm
index c829d795a..e4bdff799 100644
--- a/lib/WebGUI/AdminConsole.pm
+++ b/lib/WebGUI/AdminConsole.pm
@@ -162,7 +162,7 @@ sub getAdminFunction {
},
icon=>"versionTags.gif",
func=>"manageVersions",
- group=>"12"
+ group=>"3"
},
"users"=>{
title=>{
diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm
index 797f7a61f..943bc2f3f 100644
--- a/lib/WebGUI/AssetVersioning.pm
+++ b/lib/WebGUI/AssetVersioning.pm
@@ -382,7 +382,11 @@ sub www_manageCommittedVersions {
my $sth = WebGUI::SQL->read("select tagId,name,commitDate,committedBy from assetVersionTag where isCommitted=1");
while (my ($id,$name,$date,$by) = $sth->array) {
my $u = WebGUI::User->new($by);
- $output .= '
| Revision Date | Revised By | Tag Name |
';
- my $sth = WebGUI::SQL->read("select assetData.revisionDate, users.username, assetVersionTag.name from assetData
+ my $sth = WebGUI::SQL->read("select assetData.revisionDate, users.username, assetVersionTag.name,assetData.tagId from assetData
left join assetVersionTag on assetData.tagId=assetVersionTag.tagId left join users on assetData.revisedBy=users.userId
where assetData.assetId=".quote($self->getId));
- while (my ($date,$by,$tag) = $sth->array) {
- $output .= '| '.WebGUI::Icon::deleteIcon("func=rollbackAssetRevision",$self->get("url"),$i18n->get("purge revision prompt")).' | '.WebGUI::DateTime::epochToHuman($date).' | '.$by.' | '.$tag.' |
';
+ while (my ($date,$by,$tag,$tagId) = $sth->array) {
+ $output .= '| '.WebGUI::Icon::deleteIcon("func=purgeRevision;revisionDate=".$date,$self->get("url"),$i18n->get("purge revision prompt")).' |
+ '.WebGUI::DateTime::epochToHuman($date).' |
+ '.$by.' |
+ '.$tag.' |
';
}
$sth->finish;
$output .= '
';
@@ -430,16 +435,16 @@ Shows a list of the currently available asset version tags.
sub www_manageVersions {
my $self = shift;
my $ac = WebGUI::AdminConsole->new("versions");
- return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12));
+ return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(3));
my $i18n = WebGUI::International->new("Asset");
$ac->setHelp("versions manage");
- my $i18n = WebGUI::International->new("Asset");
$ac->addSubmenuItem($self->getUrl('func=addVersionTag'), $i18n->get("add a version tag"));
$ac->addSubmenuItem($self->getUrl('func=manageCommittedVersions'), $i18n->get("manage committed versions"));
my ($tag) = WebGUI::SQL->quickArray("select name from assetVersionTag where tagId=".quote($session{scratch}{versionTag}));
$tag ||= "None";
my $rollback = $i18n->get("rollback");
my $commit = $i18n->get("commit");
+ my $setTag = $i18n->get("set tag");
my $rollbackPrompt = $i18n->get("rollback version tag confirm");
my $commitPrompt = $i18n->get("commit version tag confirm");
my $output = '
@@ -450,7 +455,9 @@ sub www_manageVersions {
$output .= '| '.$name.' |
'.WebGUI::DateTime::epochToHuman($date).' |
'.$u->username.' |
- '.$rollback.' |
+ |
+ '.$setTag.' |
+ '.$rollback.' |
'.$commit.' |
';
}
$sth->finish;
@@ -459,14 +466,47 @@ sub www_manageVersions {
}
-#-------------------------------------------------------------------A
+#-------------------------------------------------------------------
-sub www_purgeAssetRevision {
+sub www_manageRevisionsInTag {
+ my $self = shift;
+ my $ac = WebGUI::AdminConsole->new("versions");
+ return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(3));
+ my $i18n = WebGUI::International->new("Asset");
+ $ac->addSubmenuItem($self->getUrl('func=addVersionTag'), $i18n->get("add a version tag"));
+ $ac->addSubmenuItem($self->getUrl('func=manageCommittedVersions'), $i18n->get("manage committed versions"));
+ $ac->addSubmenuItem($self->getUrl('func=manageVersions'), $i18n->get("manage versions"));
+ my $output = '
+ | Title | Type | Revision Date | Revised By |
';
+ my $sth = WebGUI::SQL->read("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=".quote($session{form}{tagId}));
+ while (my ($date,$by,$id, $class) = $sth->array) {
+ my $asset = WebGUI::Asset->new($id,$class,$date);
+ $output .= '| '.WebGUI::Icon::deleteIcon("func=purgeRevision;proceed=manageRevisionsInTag;tagId=".$session{form}{tagId}.";revisionDate=".$date,$asset->get("url"),$i18n->get("purge revision prompt")).' |
+ '.$asset->getTitle.' |
+ '.$asset->getName.' |
+ '.WebGUI::DateTime::epochToHuman($date).' |
+ '.$by.' |
';
+ }
+ $sth->finish;
+ $output .= '
';
+ my $tag = WebGUI::SQL->getRow("assetVersionTag","tagId",$session{form}{tagId});
+ return $ac->render($output,$i18n->get("revisions in tag").": ".$tag->{name});
+}
+
+
+#-------------------------------------------------------------------
+
+sub www_purgeRevision {
my $self = shift;
return WebGUI::Privilege::insufficient() unless $self->canEdit;
my $revisionDate = $session{form}{revisionDate};
return undef unless $revisionDate;
WebGUI::Asset->new($self->getId,$self->get("className"),$revisionDate)->purgeRevision;
+ if ($session{form}{proceed} eq "manageRevisionsInTag") {
+ return $self->www_manageRevisionsInTag;
+ }
return $self->www_manageRevisions;
}
@@ -480,6 +520,9 @@ sub www_rollbackVersionTag {
if ($tagId) {
$self->rollbackVersionTag($tagId);
}
+ if ($session{form}{proceed} eq "manageCommittedVersions") {
+ return $self->www_manageCommittedVersions;
+ }
return $self->www_manageVersions;
}
@@ -508,5 +551,13 @@ sub www_setVersionTag () {
}
+#-------------------------------------------------------------------
+
+sub www_viewRevision {
+ my $self = shift;
+ my $otherSelf = WebGUI::Asset->new($self->getId,$self->get("className"),$session{form}{revisionDate});
+ return (defined $otherSelf) ? $otherSelf->www_view : undef;
+}
+
1;
diff --git a/lib/WebGUI/i18n/English/Asset.pm b/lib/WebGUI/i18n/English/Asset.pm
index bcd28e9ff..7ffc87fb7 100644
--- a/lib/WebGUI/i18n/English/Asset.pm
+++ b/lib/WebGUI/i18n/English/Asset.pm
@@ -25,6 +25,18 @@ our $I18N = {
context => q|A label for the toggle for asset versioning.|
},
+ 'set tag' => {
+ message => q|Set As Working Tag|,
+ lastUpdated => 0,
+ context => q|The label for choosing as a tag to work under.|
+ },
+
+ 'revisions in tag' => {
+ message => q|Revisions In Tag|,
+ lastUpdated => 0,
+ context => q|The label for displaying the revisions created under a specific tag.|
+ },
+
'commit' => {
message => q|Commit|,
lastUpdated => 0,