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:
parent
936054ba19
commit
aac32d24bd
6 changed files with 58 additions and 49 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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> | '+";
|
||||
|
|
|
|||
|
|
@ -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 ( )
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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 .= ' <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)));
|
||||
|
|
|
|||
|
|
@ -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 .= ' <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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue