diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm index 560a0fd20..d445f8f2f 100644 --- a/lib/WebGUI/AdminConsole.pm +++ b/lib/WebGUI/AdminConsole.pm @@ -208,7 +208,10 @@ sub getAdminFunction { sub new { my $class = shift; - bless {}, $class; + my $id = shift; + my %self; + $self{_function} = $class->getAdminFunction($id); + bless \%self, $class; } sub render { @@ -235,17 +238,11 @@ sub render { return WebGUI::Template::process($session{setting}{AdminConsoleTemplate}, "AdminConsole", \%var); } -sub setAdminFunction { - my $self = shift; - my $id = shift; - $self->{_function} = $self->getAdminFunction($id); -} - sub setHelp { my $self = shift; my $id = shift; my $namespace = shift || "WebGUI"; - $self->{_helpUrl} = WebGUI::URL::page('op=viewHelp&hid='.$id.'&namespace='.$namespace) + $self->{_helpUrl} = WebGUI::URL::page('op=viewHelp&hid='.$id.'&namespace='.$namespace) if ($id); } 1; diff --git a/lib/WebGUI/Operation/ActiveSessions.pm b/lib/WebGUI/Operation/ActiveSessions.pm index badf1db7c..2e628ca55 100644 --- a/lib/WebGUI/Operation/ActiveSessions.pm +++ b/lib/WebGUI/Operation/ActiveSessions.pm @@ -58,9 +58,7 @@ sub www_viewActiveSessions { $output .= $p->getPage($session{form}{pn}); $output .= ''; $output .= $p->getBarTraditional($session{form}{pn}); - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("activeSessions"); - return $ac->render($output); + return WebGUI::AdminConsole->new("activeSessions")->render($output); } 1; diff --git a/lib/WebGUI/Operation/Clipboard.pm b/lib/WebGUI/Operation/Clipboard.pm index 539cf936f..a05eee999 100644 --- a/lib/WebGUI/Operation/Clipboard.pm +++ b/lib/WebGUI/Operation/Clipboard.pm @@ -33,11 +33,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("clipboard"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("clipboard"); $ac->addSubmenuItem(WebGUI::URL::page('op=manageClipboard'), WebGUI::International::get(949)); if ($session{form}{systemClipboard} ne "1") { $ac->addSubmenuItem(WebGUI::URL::page('op=emptyClipboard'), WebGUI::International::get(950)); diff --git a/lib/WebGUI/Operation/DatabaseLink.pm b/lib/WebGUI/Operation/DatabaseLink.pm index eb68364a5..77f99bce2 100644 --- a/lib/WebGUI/Operation/DatabaseLink.pm +++ b/lib/WebGUI/Operation/DatabaseLink.pm @@ -30,11 +30,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("databases"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("databases"); $ac->addSubmenuItem(WebGUI::URL::page('op=editDatabaseLink&dlid=new'), WebGUI::International::get(982)); if (($session{form}{op} eq "editDatabaseLink" && $session{form}{dlid} ne "new") || $session{form}{op} eq "deleteDatabaseLink") { $ac->addSubmenuItem(WebGUI::URL::page('op=editDatabaseLink&dlid='.$session{form}{dlid}), WebGUI::International::get(983)); diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm index 3053bfd12..bc079f4e0 100644 --- a/lib/WebGUI/Operation/Group.pm +++ b/lib/WebGUI/Operation/Group.pm @@ -44,11 +44,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("groups"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("groups"); if (WebGUI::Grouping::isInGroup(3)) { $ac->addSubmenuItem(WebGUI::URL::page('op=editGroup&gid=new'), WebGUI::International::get(90)); unless ($session{form}{op} eq "listGroups" diff --git a/lib/WebGUI/Operation/Help.pm b/lib/WebGUI/Operation/Help.pm index a780ef58a..ab05b593d 100644 --- a/lib/WebGUI/Operation/Help.pm +++ b/lib/WebGUI/Operation/Help.pm @@ -47,15 +47,14 @@ sub _seeAlso { #------------------------------------------------------------------- sub www_viewHelp { return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12)); - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("help"); + my $ac = WebGUI::AdminConsole->new("help"); my $namespace = $session{form}{namespace} || "WebGUI"; my $help = _get($session{form}{hid},$namespace); - $ac->addSubmenuItem(WebGUI::URL::page('op=viewHelpIndex'),WebGUI::International::get(95)); foreach my $row (@{$help->{related}}) { my $relatedHelp = _get($row->{tag},$row->{namespace}); $ac->addSubmenuItem(_link($row->{tag},$row->{namespace}),WebGUI::International::get($relatedHelp->{title},$row->{namespace})); } + $ac->addSubmenuItem(WebGUI::URL::page('op=viewHelpIndex'),WebGUI::International::get(95)); return $ac->render( WebGUI::Macro::negate(WebGUI::International::get($help->{body},$namespace)), WebGUI::International::get(93).': '.WebGUI::International::get($help->{title},$namespace) @@ -104,9 +103,7 @@ sub www_viewHelpIndex { } } $output .= ''; - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("help"); - return $ac->render($output); + return WebGUI::AdminConsole->new("help")->render($output); } 1; diff --git a/lib/WebGUI/Operation/LoginHistory.pm b/lib/WebGUI/Operation/LoginHistory.pm index 0b01f5046..fe7d16954 100644 --- a/lib/WebGUI/Operation/LoginHistory.pm +++ b/lib/WebGUI/Operation/LoginHistory.pm @@ -48,9 +48,7 @@ sub www_viewLoginHistory { $output .= $p->getPage($session{form}{pn}); $output .= ''; $output .= $p->getBar($session{form}{pn}); - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("loginHistory"); - return $ac->render($output); + return WebGUI::AdminConsole->new("loginHistory")->render($output); } 1; diff --git a/lib/WebGUI/Operation/MetaData.pm b/lib/WebGUI/Operation/MetaData.pm index ba3701450..3e542dfef 100644 --- a/lib/WebGUI/Operation/MetaData.pm +++ b/lib/WebGUI/Operation/MetaData.pm @@ -29,11 +29,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title,"MetaData") if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("contentProfiling"); if ($help) { $ac->setHelp($help,"MetaData"); } - $ac->setAdminFunction("contentProfiling"); if($session{form}{op} ne "manageMetaData") { $ac->addSubmenuItem(WebGUI::URL::page('op=manageMetaData'), WebGUI::International::get('content profiling','MetaData')); } diff --git a/lib/WebGUI/Operation/Navigation.pm b/lib/WebGUI/Operation/Navigation.pm index cdcd6f98c..c193be37b 100644 --- a/lib/WebGUI/Operation/Navigation.pm +++ b/lib/WebGUI/Operation/Navigation.pm @@ -39,11 +39,10 @@ sub _submenu { my $i18n = WebGUI::International->new("Navigation"); $title = $i18n->get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("navigation"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("navigation"); $ac->addSubmenuItem(WebGUI::URL::page('op=editNavigation'),$i18n->get("add new")); if (($session{form}{op} eq "editNavigation" && $session{form}{navigationId} ne "new") || $session{form}{op} eq "deleteNavigationConfirm") { $ac->addSubmenuItem(WebGUI::URL::page('op=editNavigation&identifier='.$session{form}{identifier}), $i18n->get("18")); diff --git a/lib/WebGUI/Operation/ProfileSettings.pm b/lib/WebGUI/Operation/ProfileSettings.pm index 91468e688..9ecb230cf 100644 --- a/lib/WebGUI/Operation/ProfileSettings.pm +++ b/lib/WebGUI/Operation/ProfileSettings.pm @@ -51,11 +51,10 @@ sub _submenu { my $help = shift; my $namespace = shift; $title = WebGUI::International::get($title,$namespace) if ($title); - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("userProfiling"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("userProfiling"); $ac->addSubmenuItem(WebGUI::URL::page("op=editProfileCategory&cid=new"), WebGUI::International::get(490,"WebGUIProfile")); $ac->addSubmenuItem(WebGUI::URL::page("op=editProfileField&fid=new"), WebGUI::International::get(491,"WebGUIProfile")); if ((($session{form}{op} eq "editProfileField" && $session{form}{fid} ne "new") || $session{form}{op} eq "deleteProfileField") && $session{form}{cid} eq "") { diff --git a/lib/WebGUI/Operation/Replacements.pm b/lib/WebGUI/Operation/Replacements.pm index 3a99090da..ade1d02c0 100644 --- a/lib/WebGUI/Operation/Replacements.pm +++ b/lib/WebGUI/Operation/Replacements.pm @@ -26,11 +26,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("contentFilters"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("contentFilters"); $ac->addSubmenuItem(WebGUI::URL::page("op=editReplacement&replacementId=new"), WebGUI::International::get(1047)); $ac->addSubmenuItem(WebGUI::URL::page("op=listReplacements"), WebGUI::International::get("content filters")); return $ac->render($workarea, $title); diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 215e67e08..acfc3348c 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -263,10 +263,9 @@ sub www_editSettings { $jscript .= ""; $tabform->getTab("auth")->raw($jscript); $tabform->submit(); - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("settings"); + my $ac = WebGUI::AdminConsole->new("settings"); $ac->setHelp("settings"); - return $ac->render($tabform->print); + return $ac->render($tabform->print); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Operation/Statistics.pm b/lib/WebGUI/Operation/Statistics.pm index edce23224..b7200db5f 100644 --- a/lib/WebGUI/Operation/Statistics.pm +++ b/lib/WebGUI/Operation/Statistics.pm @@ -24,8 +24,7 @@ sub _submenu { my $workarea = shift; my $title = shift; $title = WebGUI::International::get($title) if ($title); - my $ac = WebGUI::AdminConsole->new; - $ac->setAdminFunction("statistics"); + my $ac = WebGUI::AdminConsole->new("statistics"); if ($session{setting}{trackPageStatistics}) { $ac->addSubmenuItem( WebGUI::URL::page("op=viewPageReport"), WebGUI::International::get(796)); # $ac->addSubmenuItem( WebGUI::URL::page("op=viewTrafficReport"), WebGUI::International::get(797)); diff --git a/lib/WebGUI/Operation/Template.pm b/lib/WebGUI/Operation/Template.pm index cec754281..78a964eab 100644 --- a/lib/WebGUI/Operation/Template.pm +++ b/lib/WebGUI/Operation/Template.pm @@ -32,11 +32,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("templates"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("templates"); $ac->addSubmenuItem(WebGUI::URL::page('op=editTemplate&tid=new&namespace='.$session{form}{namespace}), WebGUI::International::get(505)); if ($session{form}{op} eq "editTemplate" && ($session{form}{tid} ne "new" || $session{form}{op} ne "deleteTemplateConfirm")) { $ac->addSubmenuItem( diff --git a/lib/WebGUI/Operation/Theme.pm b/lib/WebGUI/Operation/Theme.pm index c9cf2f87d..47e9e468b 100644 --- a/lib/WebGUI/Operation/Theme.pm +++ b/lib/WebGUI/Operation/Theme.pm @@ -50,11 +50,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("themes"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("themes"); $ac->addSubmenuItem(WebGUI::URL::page('op=editTheme&themeId=new'), WebGUI::International::get(901)); $ac->addSubmenuItem(WebGUI::URL::page('op=importTheme'), WebGUI::International::get(924)); unless (isIn($session{form}{op}, qw(deleteThemeConfirm viewTheme listThemes)) || $session{form}{themeId} eq "new") { diff --git a/lib/WebGUI/Operation/Trash.pm b/lib/WebGUI/Operation/Trash.pm index e4d11e860..e83a8d8c5 100644 --- a/lib/WebGUI/Operation/Trash.pm +++ b/lib/WebGUI/Operation/Trash.pm @@ -116,11 +116,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("trash"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("trash"); $ac->addSubmenuItem(WebGUI::URL::page('op=manageTrash'), WebGUI::International::get(10)); if ($session{form}{systemTrash} ne "1") { $ac->addSubmenuItem(WebGUI::URL::page('op=emptyTrash'), WebGUI::International::get(11)); diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 156ddcbbd..023faf76e 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -38,11 +38,10 @@ sub _submenu { my $title = shift; $title = WebGUI::International::get($title) if ($title); my $help = shift; - my $ac = WebGUI::AdminConsole->new; + my $ac = WebGUI::AdminConsole->new("users"); if ($help) { $ac->setHelp($help); } - $ac->setAdminFunction("users"); if (WebGUI::Grouping::isInGroup(3)) { $ac->addSubmenuItem(WebGUI::URL::page("op=addUser"), WebGUI::International::get(169)); unless ($session{form}{op} eq "listUsers" diff --git a/lib/WebGUI/Wobject.pm b/lib/WebGUI/Wobject.pm index b2f30f36f..6798aca86 100644 --- a/lib/WebGUI/Wobject.pm +++ b/lib/WebGUI/Wobject.pm @@ -18,6 +18,7 @@ use CGI::Util qw(rearrange); use DBI; use strict qw(subs vars); use Tie::IxHash; +use WebGUI::AdminConsole; use WebGUI::DateTime; use WebGUI::FormProcessor; use WebGUI::Grouping; @@ -81,6 +82,20 @@ sub _getNextSequenceNumber { #------------------------------------------------------------------- +sub adminConsole { + my $self = shift; + my $content = shift; + my $title = shift; + my $helpId = shift; + my $namespace = shift || $self->namespace; + $title = WebGUI::International::get($title,$namespace) if ($title); + my $ac = WebGUI::AdminConsole->new("assets"); + $ac->setHelp($helpId,$namespace); + $ac->render($content,$title); +} + +#------------------------------------------------------------------- + =head2 canEdit ( ) Returns a boolean (0|1) value signifying that the user has the required privileges. @@ -1158,23 +1173,16 @@ Prompts a user to confirm whether they wish to delete this instance. sub www_delete { my $self = shift; - my ($output); - if ($self->canEdit) { - $output = helpIcon("wobject delete"); - $output .= '
'; - $output .= '
'; + $output .= '
'; @@ -742,7 +737,7 @@ sub www_editQuestion { } $sth->finish; } - return $output; + return $_[0]->adminConsole($output,'17'); } #-------------------------------------------------------------------