diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm
index 519940360..bb0a77171 100644
--- a/lib/WebGUI/AdminConsole.pm
+++ b/lib/WebGUI/AdminConsole.pm
@@ -113,6 +113,43 @@ sub addSubmenuItem {
#-------------------------------------------------------------------
+=head2 addConfirmedSubmenuItem ( url, label, confirmation, extras )
+
+Appends a link to the current AdminConsole submenu with a JavaScript confirmation showing the given message.
+
+=head3 url
+
+A string representing a URL.
+
+=head3 label
+
+A (hopefully informative) string.
+
+=head3 confirmation
+
+The message to use for the JavaScript confirmation before activating the link.
+
+=head3 extras
+
+Additional information.
+
+=cut
+
+sub addConfirmedSubmenuItem {
+ my $self = shift;
+ my $url = shift;
+ my $label = shift;
+ my $confirmation = shift;
+ my $extras = shift;
+
+ # Buggo. We should really be using a proper JavaScript string escaping function here.
+ $confirmation =~ s/([\\\'])/\\$1/g;
+ $extras .= ' onclick="return confirm(\''.$confirmation.'\')"';
+ $self->addSubmenuItem($url, $label, $extras);
+}
+
+#-------------------------------------------------------------------
+
=head2 getAdminConsoleParams ( )
Returns a Hash of title, url, canUse, and icon. title is the Internationalization of "Admin Console". url is the page with op=adminConsole, canUse checks if is in group 12. icon is image located in extras/adminConsole/adminConsole.gif.
diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index 3df9e9c77..e1b814225 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -1144,7 +1144,8 @@ sub manageAssets {
my $locked;
my $edit;
if ($child->isLocked) {
- $locked = '
';
+ my $username_html = WebGUI::HTML::format($child->lockedBy->username, "text");
+ $locked = '
';
$edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->canEditIfLocked);
} else {
$edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+";
diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm
index 14622084d..7bc673692 100644
--- a/lib/WebGUI/AssetVersioning.pm
+++ b/lib/WebGUI/AssetVersioning.pm
@@ -145,6 +145,22 @@ sub isLocked {
}
+#-------------------------------------------------------------------
+
+=head2 lockedBy ( )
+
+Returns the user who locked this asset, or undef if the asset is unlocked.
+
+=cut
+
+sub lockedBy {
+ my $self = shift;
+ my $userId = $self->get("isLockedBy");
+ return unless defined $userId;
+ return WebGUI::User->new($self->session, $userId);
+}
+
+
#-------------------------------------------------------------------
=head2 purgeRevision ( )
diff --git a/lib/WebGUI/Operation.pm b/lib/WebGUI/Operation.pm
index f6d60c02c..f0c77e920 100644
--- a/lib/WebGUI/Operation.pm
+++ b/lib/WebGUI/Operation.pm
@@ -143,7 +143,6 @@ sub getOperations {
'autoAddToGroup' => 'WebGUI::Operation::Group',
'autoDeleteFromGroup' => 'WebGUI::Operation::Group',
'deleteGroup' => 'WebGUI::Operation::Group',
- 'deleteGroupConfirm' => 'WebGUI::Operation::Group',
'deleteGroupGrouping' => 'WebGUI::Operation::Group',
'deleteGrouping' => 'WebGUI::Operation::Group',
'editGroup' => 'WebGUI::Operation::Group',
@@ -247,7 +246,6 @@ sub getOperations {
'becomeUser' => 'WebGUI::Operation::User',
'deleteUser' => 'WebGUI::Operation::User',
- 'deleteUserConfirm' => 'WebGUI::Operation::User',
'editUser' => 'WebGUI::Operation::User',
'editUserSave' => 'WebGUI::Operation::User',
'editUserKarma' => 'WebGUI::Operation::User',
diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm
index 907333863..9fe4fea8b 100644
--- a/lib/WebGUI/Operation/Group.pm
+++ b/lib/WebGUI/Operation/Group.pm
@@ -55,7 +55,7 @@ sub _submenu {
$ac->addSubmenuItem($session->url->page("op=manageUsersInGroup;gid=".$session->form->process("gid")), $i18n->get(754));
$ac->addSubmenuItem($session->url->page("op=manageGroupsInGroup;gid=".$session->form->process("gid")), $i18n->get(807));
$ac->addSubmenuItem($session->url->page("op=emailGroup;gid=".$session->form->process("gid")), $i18n->get(808));
- $ac->addSubmenuItem($session->url->page("op=deleteGroup;gid=".$session->form->process("gid")), $i18n->get(806));
+ $ac->addConfirmedSubmenuItem($session->url->page("op=deleteGroup;gid=".$session->form->process("gid")), $i18n->get(806), $i18n->get(86));
}
$ac->addSubmenuItem($session->url->page("op=listGroups"), $i18n->get(756));
}
@@ -199,21 +199,6 @@ sub www_autoDeleteFromGroup {
#-------------------------------------------------------------------
sub www_deleteGroup {
- my $session = shift;
- return $session->privilege->adminOnly() unless ($session->user->isInGroup(3) || _hasSecondaryPrivilege($session,$session->form->process("gid")));
- return $session->privilege->vitalComponent() if (isIn($session->form->process("gid"), qw(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17)));
- my $i18n = WebGUI::International->new($session);
- my ($output);
- $output .= $i18n->get(86).'
'; - $output .= '
'; - $output .= '