changeset 4064:afe7c5e63aaf

UX: require confirmation of revoking permissions on repos/user groups/repo groups. We don't want people to click on this accidentally.
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 29 Jun 2013 21:36:01 +0200
parents 3dba79ad5036
children b1d2d5a16a7c
files rhodecode/templates/admin/repos/repo_edit_perms.html rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html rhodecode/templates/admin/users_groups/user_group_edit_perms.html rhodecode/templates/base/root.html
diffstat 4 files changed, 23 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/templates/admin/repos/repo_edit_perms.html	Fri Jun 28 23:02:56 2013 +0200
+++ b/rhodecode/templates/admin/repos/repo_edit_perms.html	Sat Jun 29 21:36:01 2013 +0200
@@ -29,7 +29,7 @@
             </td>
             <td>
               %if r2p.user.username !='default':
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}', '${r2p.user.username}')">
                 ${_('revoke')}
                 </span>
               %endif
@@ -54,7 +54,7 @@
                 %endif
             </td>
             <td>
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.users_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.users_group.users_group_name)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.users_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.users_group.users_group_name)}', '${g2p.users_group.users_group_name}')">
                 ${_('revoke')}
                 </span>
             </td>
@@ -86,9 +86,12 @@
     </tr>
 </table>
 <script type="text/javascript">
-function ajaxActionRevoke(obj_id, obj_type, field_id) {
+function ajaxActionRevoke(obj_id, obj_type, field_id, obj_name) {
     url = "${h.url('delete_repo_perm_member',repo_name=c.repo_name)}";
-    ajaxActionRevokePermission(url, obj_id, obj_type, field_id);
+    var revoke_msg = _TM['Confirm to revoke permission for {0}: {1} ?'].format(obj_type.replace('_', ' '), obj_name);
+    if (confirm(revoke_msg)){
+        ajaxActionRevokePermission(url, obj_id, obj_type, field_id);
+    }
 };
 
 YUE.onDOMReady(function () {
--- a/rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html	Fri Jun 28 23:02:56 2013 +0200
+++ b/rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html	Sat Jun 29 21:36:01 2013 +0200
@@ -21,7 +21,7 @@
             </td>
             <td>
               %if r2p.user.username !='default':
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}', '${r2p.user.username}')">
                 ${_('revoke')}
                 </span>
               %endif
@@ -51,7 +51,7 @@
                 <img class="perm-gravatar" src="${h.url('/images/icons/group.png')}"/>${g2p.users_group.users_group_name}
             </td>
             <td>
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.users_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.users_group.users_group_name)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.users_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.users_group.users_group_name)}', '${g2p.users_group.users_group_name}')">
                 ${_('revoke')}
                 </span>
             </td>
@@ -90,9 +90,12 @@
     </tr>
 </table>
 <script type="text/javascript">
-function ajaxActionRevoke(obj_id, obj_type, field_id) {
+function ajaxActionRevoke(obj_id, obj_type, field_id, obj_name) {
     url = "${h.url('delete_repo_group_perm_member', group_name=c.repos_group.group_name)}";
-    ajaxActionRevokePermission(url, obj_id, obj_type, field_id, {recursive:YUD.get('recursive').checked});
+    var revoke_msg = _TM['Confirm to revoke permission for {0}: {1} ?'].format(obj_type.replace('_', ' '), obj_name);
+    if (confirm(revoke_msg)){
+        ajaxActionRevokePermission(url, obj_id, obj_type, field_id, {recursive:YUD.get('recursive').checked});
+    }
 };
 
 YUE.onDOMReady(function () {
--- a/rhodecode/templates/admin/users_groups/user_group_edit_perms.html	Fri Jun 28 23:02:56 2013 +0200
+++ b/rhodecode/templates/admin/users_groups/user_group_edit_perms.html	Sat Jun 29 21:36:01 2013 +0200
@@ -21,7 +21,7 @@
             </td>
             <td>
               %if r2p.user.username !='default':
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}', '${r2p.user.username}')">
                 ${_('revoke')}
                 </span>
               %endif
@@ -51,7 +51,7 @@
                 <img class="perm-gravatar" src="${h.url('/images/icons/group.png')}"/>${g2p.user_group.users_group_name}
             </td>
             <td>
-                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.user_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.user_group.users_group_name)}')">
+                <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.user_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.user_group.users_group_name)}', '${g2p.user_group.users_group_name}')">
                 ${_('revoke')}
                 </span>
             </td>
@@ -84,9 +84,12 @@
     </tr>
 </table>
 <script type="text/javascript">
-function ajaxActionRevoke(obj_id, obj_type, field_id) {
+function ajaxActionRevoke(obj_id, obj_type, field_id, obj_name) {
     url = "${h.url('delete_user_group_perm_member', id=c.users_group.users_group_id)}";
-    ajaxActionRevokePermission(url, obj_id, obj_type, field_id);
+    var revoke_msg = _TM['Confirm to revoke permission for {0}: {1} ?'].format(obj_type.replace('_', ' '), obj_name);
+    if (confirm(revoke_msg)){
+        ajaxActionRevokePermission(url, obj_id, obj_type, field_id);
+    }
 };
 
 YUE.onDOMReady(function () {
--- a/rhodecode/templates/base/root.html	Fri Jun 28 23:02:56 2013 +0200
+++ b/rhodecode/templates/base/root.html	Sat Jun 29 21:36:01 2013 +0200
@@ -57,7 +57,8 @@
                 'Selection link': "${_('Selection link')}",
                 'Collapse diff': "${_('Collapse diff')}",
                 'Expand diff': "${_('Expand diff')}",
-                'Failed to revoke permission': "${_('Failed to revoke permission')}"
+                'Failed to revoke permission': "${_('Failed to revoke permission')}",
+                'Confirm to revoke permission for {0}: {1} ?': "${_('confirm to revoke permission for {0}: {1} ?')}",
             };
             var _TM = TRANSLATION_MAP;