Multiple enhancements:

- Perform RFE "js-confirmation-operation/user.pm".
  - Perform RFE "js-confirmation-operation/group.pm".
  - Perform RFE "locked-by-who".
    (Displays in title and alt of img, but not in body text.)
This commit is contained in:
Drake 2006-08-29 16:49:25 +00:00
parent 936054ba19
commit aac32d24bd
6 changed files with 58 additions and 49 deletions

View file

@ -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.

View file

@ -1144,7 +1144,8 @@ sub manageAssets {
my $locked;
my $edit;
if ($child->isLocked) {
$locked = '<img src="'.$self->session->url->extras('assetManager/locked.gif').'" alt="locked" style="border: 0px;" />';
my $username_html = WebGUI::HTML::format($child->lockedBy->username, "text");
$locked = '<img src="'.$self->session->url->extras('assetManager/locked.gif').'" alt="locked by '.$username_html.'" title="locked by '.$username_html.'" style="border: 0px;" />';
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+" if ($child->canEditIfLocked);
} else {
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+";

View file

@ -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 ( )

View file

@ -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',

View file

@ -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).'<p>';
$output .= '<div align="center"><a href="'.$session->url->page('op=deleteGroupConfirm;gid='.$session->form->process("gid")).
'">'.$i18n->get(44).'</a>';
$output .= '&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$session->url->page('op=listGroups').'">'
.$i18n->get(45).'</a></div>';
return _submenu($session,$output, '42',"group delete");
}
#-------------------------------------------------------------------
sub www_deleteGroupConfirm {
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)));

View file

@ -81,7 +81,7 @@ sub _submenu {
|| $session->stow->get("editUser_UID") eq "new") {
$ac->addSubmenuItem($session->url->page("op=editUser;uid=".$session->stow->get("editUser_UID")), $i18n->get(457));
$ac->addSubmenuItem($session->url->page('op=becomeUser;uid='.$session->stow->get("editUser_UID")), $i18n->get(751));
$ac->addSubmenuItem($session->url->page('op=deleteUser;uid='.$session->stow->get("editUser_UID")), $i18n->get(750));
$ac->addConfirmedSubmenuItem($session->url->page('op=deleteUser;uid='.$session->stow->get("editUser_UID")), $i18n->get(750), $i18n->get(167));
if ($session->setting->get("useKarma")) {
$ac->addSubmenuItem($session->url->page("op=editUserKarma;uid=".$session->stow->get("editUser_UID")), $i18n->get(555));
}
@ -261,41 +261,13 @@ sub www_becomeUser {
=head2 www_deleteUser ( )
Confirmation form for deleting a user. Only Admins are allowed to
delete users. The WebGUI uses Visitor and Admin may not be deleted.
If the Admin confirms, then www_deleteUserConfirm is called. The UID
of the user to delete is expected in a URL param names 'uid'.
=cut
sub www_deleteUser {
my $session = shift;
my ($output);
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
my $i18n = WebGUI::International->new($session);
if ($session->form->process("uid") eq '1' || $session->form->process("uid") eq '3') {
return _submenu($session,$session->privilege->vitalComponent());
} else {
$output .= $i18n->get(167).'<p>';
$output .= '<div align="center"><a href="'.$session->url->page('op=deleteUserConfirm;uid='.$session->form->process("uid")).
'">'.$i18n->get(44).'</a>';
$output .= '&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$session->url->page('op=listUsers').'">'.
$i18n->get(45).'</a></div>';
return _submenu($session,$output,'42',"user delete");
}
}
#-------------------------------------------------------------------
=head2 www_deleteUserConfirm ( )
Deletes a user. Only Admins are allowed to delete users. The UID of the user
to delete is expected in a URL param named 'uid'. www_listUsers is called
after this.
=cut
sub www_deleteUserConfirm {
sub www_deleteUser {
my $session = shift;
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
my ($u);