Browse Source

HUE-6241 [useradmin] Delete a group in Hue 4 behaves correctly

Enrico Berti 8 years ago
parent
commit
79ac641

+ 16 - 0
apps/useradmin/src/useradmin/templates/list_groups.mako

@@ -106,6 +106,9 @@ ${layout.menubar(section='groups')}
   <div class="modal hide fade delete-group">
   <div class="modal hide fade delete-group">
     <form action="${ url('useradmin.views.delete_group') }" method="POST">
     <form action="${ url('useradmin.views.delete_group') }" method="POST">
       ${ csrf_token(request) | n,unicode }
       ${ csrf_token(request) | n,unicode }
+      % if is_embeddable:
+        <input type="hidden" value="true" name="is_embeddable" />
+      % endif
       <div class="modal-header">
       <div class="modal-header">
         <button type="button" class="close" data-dismiss="modal" aria-label="${ _('Close') }"><span aria-hidden="true">&times;</span></button>
         <button type="button" class="close" data-dismiss="modal" aria-label="${ _('Close') }"><span aria-hidden="true">&times;</span></button>
         <h2 class="modal-title">${_("Are you sure you want to delete the selected group(s)?")}</h2>
         <h2 class="modal-title">${_("Are you sure you want to delete the selected group(s)?")}</h2>
@@ -159,6 +162,19 @@ ${layout.menubar(section='groups')}
       }
       }
     });
     });
 
 
+    % if is_embeddable:
+    $groupsComponents.find('.delete-group form').ajaxForm({
+      dataType:  'json',
+      success: function(data) {
+        if (data && data.url){
+          huePubSub.publish('open.link', data.url);
+        }
+        $.jHueNotify.info("${ _('The groups were deleted.') }");
+        $groupsComponents.find(".delete-group").modal("hide");
+      }
+    });
+    % endif
+
     $groupsComponents.find(".filter-input").jHueDelayedInput(function () {
     $groupsComponents.find(".filter-input").jHueDelayedInput(function () {
       if (dt) {
       if (dt) {
         dt.fnFilter($groupsComponents.find(".filter-input").val().toLowerCase());
         dt.fnFilter($groupsComponents.find(".filter-input").val().toLowerCase());

+ 1 - 0
apps/useradmin/src/useradmin/templates/list_users.mako

@@ -194,6 +194,7 @@ ${layout.menubar(section='users')}
         if (data && data.url){
         if (data && data.url){
           huePubSub.publish('open.link', data.url);
           huePubSub.publish('open.link', data.url);
         }
         }
+        $.jHueNotify.info("${ _('The users were deleted.') }")
         $usersComponents.find(".delete-user").modal("hide");
         $usersComponents.find(".delete-user").modal("hide");
       }
       }
     });
     });

+ 7 - 2
apps/useradmin/src/useradmin/views.py

@@ -215,12 +215,17 @@ def delete_group(request):
         raise PopupException(_("The default user group may not be deleted."), error_code=401)
         raise PopupException(_("The default user group may not be deleted."), error_code=401)
       Group.objects.filter(name__in=group_names).delete()
       Group.objects.filter(name__in=group_names).delete()
 
 
-      request.info(_('The groups were deleted.'))
       request.audit = {
       request.audit = {
         'operation': 'DELETE_GROUP',
         'operation': 'DELETE_GROUP',
         'operationText': 'Deleted Group(s): %s' % ', '.join(group_names)
         'operationText': 'Deleted Group(s): %s' % ', '.join(group_names)
       }
       }
-      return redirect(reverse(list_groups))
+      is_embeddable = request.GET.get('is_embeddable', request.POST.get('is_embeddable', False))
+
+      if is_embeddable:
+        return JsonResponse({'url': '/hue' + reverse(list_groups)})
+      else:
+        request.info(_('The groups were deleted.'))
+        return redirect(reverse(list_groups))
     except Group.DoesNotExist:
     except Group.DoesNotExist:
       raise PopupException(_("Group not found."), error_code=404)
       raise PopupException(_("Group not found."), error_code=404)
   else:
   else: