From 3d12d52a8ee792907e3ba8bd8ea052d8b2b9f8ed Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 24 Jun 2005 21:20:56 +0000 Subject: [PATCH] version tags are roughed in --- docs/upgrades/upgrade_6.6.3-6.7.0.pl | 17 ++- lib/WebGUI/AdminConsole.pm | 17 ++- lib/WebGUI/Asset.pm | 124 ++++++++++++++++++ lib/WebGUI/Operation/Auth.pm | 2 +- lib/WebGUI/Operation/FormHelpers.pm | 2 +- lib/WebGUI/i18n/English/Asset.pm | 36 +++++ www/extras/adminConsole/small/versionTags.gif | Bin 0 -> 1028 bytes www/extras/adminConsole/versionTags.gif | Bin 0 -> 2428 bytes 8 files changed, 189 insertions(+), 9 deletions(-) create mode 100644 www/extras/adminConsole/small/versionTags.gif create mode 100644 www/extras/adminConsole/versionTags.gif diff --git a/docs/upgrades/upgrade_6.6.3-6.7.0.pl b/docs/upgrades/upgrade_6.6.3-6.7.0.pl index 859ca561b..6ac5621dc 100644 --- a/docs/upgrades/upgrade_6.6.3-6.7.0.pl +++ b/docs/upgrades/upgrade_6.6.3-6.7.0.pl @@ -8,6 +8,7 @@ use WebGUI::Asset; use WebGUI::Asset::Wobject::Folder; use WebGUI::Asset::Snippet; use WebGUI::Session; +use WebGUI::SQL; my $configFile; my $quiet; @@ -20,12 +21,26 @@ GetOptions( WebGUI::Session::open("../..",$configFile); insertHelpTemplate(); - insertXSLTSheets(); insertSyndicatedContentTemplate(); +addAssetVersioning(); WebGUI::Session::close(); +sub addAssetVersioning { + print "\tMaking changes for asset versioning\n" unless ($quiet); + WebGUI::SQL->write("create table assetVersionTag ( + tagId varchar(22) not null primary key, + name varchar(255) not null, + isCommitted int not null default 0, + creationDate bigint not null default 0, + createdBy varchar(22), + commitDate bigint not null default 0, + committedBy varchar(22) + )"); +} + + sub insertHelpTemplate{ print "\tInserting new Help template\n" unless ($quiet); my $helpTemplate = <"manageAssets", group=>"12" }, + "versions"=>{ + title=>{ + id=>"content versioning", + namespace=>"Asset" + }, + icon=>"versionTags.gif", + func=>"manageVersions", + group=>"12" + }, "users"=>{ title=>{ id=>"149", diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 374056c42..80956d32e 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -2427,6 +2427,58 @@ sub www_add { return $newAsset->www_edit(); } +#------------------------------------------------------------------- + +=head2 www_addVersionTag () + +Displays the add version tag form. + +=cut + +sub www_addVersionTag { + my $self = shift; + my $ac = WebGUI::AdminConsole->new("versions"); + return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12)); + my $i18n = WebGUI::International->new("Asset"); + $ac->addSubmenuItem($self->getUrl('func=manageVersions'), $i18n->get("manage versions")); + my $f = WebGUI::HTMLForm->new(-action=>$self->getUrl); + my $tag = WebGUI::SQL->getRow("assetVersionTag","tagId",$session{form}{tagId}); + $f->hidden( + -name=>"func", + -value=>"addVersionTagSave" + ); + $f->text( + -name=>"name", + -label=>"Version Tag Name", + -value=>$tag->{name} + ); + $f->submit; + return $ac->render($f->print,$i18n->get("add version tag")); +} + + +#------------------------------------------------------------------- + +=head2 www_addVersionTagSave () + +Adds a version tag and sets the user's default version tag to that. + +=cut + +sub www_addVersionTagSave { + my $self = shift; + return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12)); + my $tagId = WebGUI::SQL->setRow("assetVersionTag","tagId",{ + tagId=>"new", + name=>$session{form}{name}, + creationDate=>time(), + createdBy=>$session{user}{userId} + }); + WebGUI::Session::setScratch("versionTag",$tagId); + return $self->www_manageVersions(); +} + + #------------------------------------------------------------------- =head2 www_copy ( ) @@ -3381,6 +3433,33 @@ WebGUI::Style::setLink($session{config}{extrasURL}.'/assetManager/assetManager.c #------------------------------------------------------------------- +=head2 www_manageVersionTags () + +Shows a list of the currently available asset version tags. + +=cut + +sub www_manageCommittedVersions { + 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=manageVersions'), $i18n->get("manage versions")); + my $output = ' + '; + 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 .= ''; + } + $sth->finish; + $output .= '
Tag NameCommitted OnCommitted By
'.$name.''.WebGUI::DateTime::epochToHuman($date).''.$u->username.'[rollback]
'; + return $ac->render($output,$i18n->get("committed versions")); +} + +#------------------------------------------------------------------- + =head2 www_manageMetaData ( ) Returns an AdminConsole to deal with MetaDataFields. If isInGroup(4) is False, renders an insufficient privilege page. @@ -3468,6 +3547,36 @@ sub www_manageTrash { } +#------------------------------------------------------------------- + +=head2 www_manageVersionTags () + +Shows a list of the currently available asset version tags. + +=cut + +sub www_manageVersions { + my $self = shift; + my $ac = WebGUI::AdminConsole->new("versions"); + return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12)); + $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 $output = '

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

+ '; + my $sth = WebGUI::SQL->read("select tagId,name,creationDate,createdBy from assetVersionTag where isCommitted=0"); + while (my ($id,$name,$date,$by) = $sth->array) { + my $u = WebGUI::User->new($by); + $output .= ''; + } + $sth->finish; + $output .= '
Tag NameCreated OnCreated By
'.$name.''.WebGUI::DateTime::epochToHuman($date).''.$u->username.'[cancel] [commit]
'; + return $ac->render($output); +} + #------------------------------------------------------------------- =head2 www_paste ( ) @@ -3575,6 +3684,21 @@ sub www_setRank { #------------------------------------------------------------------- +=head2 www_setVersionTag () + +Sets the current user's working version tag. + +=cut + +sub www_setVersionTag () { + my $self = shift; + return WebGUI::Privilege::insufficient() unless WebGUI::Grouping::isInGroup(12); + WebGUI::Session::setScratch("versionTag",$session{form}{tagId}); + return $self->www_manageVersions(); +} + +#------------------------------------------------------------------- + =head2 www_view ( ) Returns "". If canView is False, returns WebGUI::Privilege::noAccess(). diff --git a/lib/WebGUI/Operation/Auth.pm b/lib/WebGUI/Operation/Auth.pm index 601c7b883..6a0de06a1 100644 --- a/lib/WebGUI/Operation/Auth.pm +++ b/lib/WebGUI/Operation/Auth.pm @@ -41,8 +41,8 @@ sub getInstance { #Create Auth Object my $cmd = "WebGUI::Auth::".$authMethod; my $load = "use ".$cmd; - WebGUI::ErrorHandler::fatal("Authentication module failed to compile: $cmd.".$@) if($@); eval($load); + WebGUI::ErrorHandler::fatal("Authentication module failed to compile: $cmd.".$@) if($@); my $auth = eval{$cmd->new($authMethod,$userId)}; WebGUI::ErrorHandler::fatal("Couldn't instanciate authentication module: $authMethod. Root cause: ".$@) if($@); return $auth; diff --git a/lib/WebGUI/Operation/FormHelpers.pm b/lib/WebGUI/Operation/FormHelpers.pm index 606e46222..4bde4b31f 100644 --- a/lib/WebGUI/Operation/FormHelpers.pm +++ b/lib/WebGUI/Operation/FormHelpers.pm @@ -57,7 +57,7 @@ sub www_richEditPageTree { -name=>"target", -label=>WebGUI::International::get('target'), -options=>{"_self"=>WebGUI::International::get('link in same window'), - "_blank"=>WebGUI::International::get('link in new window'), + "_blank"=>WebGUI::International::get('link in new window')}, -extras=>'id="target"' ); $f->button( diff --git a/lib/WebGUI/i18n/English/Asset.pm b/lib/WebGUI/i18n/English/Asset.pm index 5470cbb82..ac7127f6a 100644 --- a/lib/WebGUI/i18n/English/Asset.pm +++ b/lib/WebGUI/i18n/English/Asset.pm @@ -1,6 +1,42 @@ package WebGUI::i18n::English::Asset; our $I18N = { + 'manage versions' => { + message => q|Manage versions.|, + lastUpdated => 0, + context => q|Menu item in version tag manager.| + }, + + 'manage committed versions' => { + message => q|Manage committed versions.|, + lastUpdated => 0, + context => q|Menu item in version tag manager.| + }, + + 'add version tag' => { + message => q|Add Version Tag|, + lastUpdated => 0, + context => q|Admin console label.| + }, + + 'content versioning' => { + message => q|Content Versioning|, + lastUpdated => 0, + context => q|Admin console label.| + }, + + 'committed versions' => { + message => q|Committed Versions|, + lastUpdated => 0, + context => q|Admin console label.| + }, + + 'add a version tag' => { + message => q|Add a version tag.|, + lastUpdated => 0, + context => q|Menu item in version tag manager.| + }, + 'rank' => { message => q|Rank|, lastUpdated => 0, diff --git a/www/extras/adminConsole/small/versionTags.gif b/www/extras/adminConsole/small/versionTags.gif new file mode 100644 index 0000000000000000000000000000000000000000..af59b9b28f94df27b1c176a9e4410228f7db5007 GIT binary patch literal 1028 zcmd_pYfn-E0D$46b49I-A8gfTH`mHFKe(0MZAw<6Wm$|g(|LhPvSM1MD-`pBB`R_V zP!S7;NjNz=%c64J%maj18fCV`6y@eQM>I%twth$NKX^X8X9%YcAIS&=0s$`t@JMq^ zZ{!G6jP`IxIAl*1!KD+=DvD;TW3y24f(P?*F3j3(3!FrQsAx+0)K?uh0%pz6VSQ{` zFFVgQ*bNKmnDmy9acoXg@4X$0e&AqQAv^O#f0q<#e_*anoomWmUS6J{h0mIx&wU?Y z5mWo*n!2gtC-bc3)&W>ph)8Z)bZ_0?j9)s~-(S!%xCJRVfHkCzOYftC6s#h~gCb4$ zlC+FetLa_&**#vtWmKGva!DP$ay^R-%LVG($PpRStafNQ z#V4HoT}xGGytN6g)_nKdYWG(3zg>&F_Tc2!^9!GrzaMNp_P>t;D2h@?*Kmlpa5b2(EpwQa8|&G3yy`J zsY@~|h0!#K)ff^TCcKz=4YxPm-+ooUUp=sGcW`Xb=;Q=g8birtK|?qO5V=Z_Lztjm zTIXLEs`De3mdn;(-8bV)#G7{P^lODf!(a9>qc^g)XgY8;0YPF7RHBl^mu)CX%LviU zoZ3WS#snvakk?m|@+R9h&kfv6TyvBi z1xf(_WLfJ^8CbhDYr9`8XxBBCJZy-fLMlB!NUkbC@oes@byx6GJdvPQM{ IS_W|JFOUMw+W-In literal 0 HcmV?d00001 diff --git a/www/extras/adminConsole/versionTags.gif b/www/extras/adminConsole/versionTags.gif new file mode 100644 index 0000000000000000000000000000000000000000..35ee293e35682e3130e5877c6750b4d6929ca8c2 GIT binary patch literal 2428 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 literal 0 HcmV?d00001