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 .= ''.$name.''.WebGUI::DateTime::epochToHuman($date).''.$u->username.''.$rollback.''; + $output .= ' + '.$name.' + '.WebGUI::DateTime::epochToHuman($date).' + '.$u->username.' + '.$rollback.''; } $sth->finish; $output .= ''; @@ -403,15 +407,16 @@ sub www_manageRevisions { 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=manageVersions'), $i18n->get("manage versions")); my $output = ' '; - 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 .= ''; + while (my ($date,$by,$tag,$tagId) = $sth->array) { + $output .= ' + + + '; } $sth->finish; $output .= '
Revision DateRevised ByTag Name
'.WebGUI::Icon::deleteIcon("func=rollbackAssetRevision",$self->get("url"),$i18n->get("purge revision prompt")).''.WebGUI::DateTime::epochToHuman($date).''.$by.''.$tag.'
'.WebGUI::Icon::deleteIcon("func=purgeRevision;revisionDate=".$date,$self->get("url"),$i18n->get("purge revision prompt")).''.WebGUI::DateTime::epochToHuman($date).''.$by.''.$tag.'
'; @@ -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 = '

You are currently working under a tag called: '.$tag.'.

@@ -450,7 +455,9 @@ sub www_manageVersions { $output .= ' - '; } $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 = '
'.$name.' '.WebGUI::DateTime::epochToHuman($date).' '.$u->username.''.$rollback.' | + + '.$setTag.' | + '.$rollback.' | '.$commit.'
+ '; + 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 .= ' + + + + '; + } + $sth->finish; + $output .= '
TitleTypeRevision DateRevised By
'.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.''.$asset->getName.''.WebGUI::DateTime::epochToHuman($date).''.$by.'
'; + 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,