Эх сурвалжийг харах

HUE-5965 [sentry] Move delete privilege modal to the viewModel

Enrico Berti 8 жил өмнө
parent
commit
aebec51

+ 13 - 0
apps/security/src/security/static/security/js/hive.ko.js

@@ -885,6 +885,19 @@ var HiveViewModel = (function () {
       $(document).trigger("create.typeahead");
     };
 
+    self.deletePrivilegeModal = function (role) {
+      var cascadeDeletes = $.grep(role.privilegesChanged(), function (privilege) {
+          return privilege.status() == 'deleted' && (privilege.privilegeScope() == 'SERVER' || privilege.privilegeScope() == 'DATABASE');
+        }
+      );
+      if (cascadeDeletes.length > 0) {
+        self.roleToUpdate(role);
+        huePubSub.publish('show.delete.privilege.modal');
+      } else {
+        self.role().savePrivileges(role);
+      }
+    };
+
     self.privilege = new Privilege(self, {});
 
     self.doAs = ko.observable(initial.user);

+ 13 - 0
apps/security/src/security/static/security/js/sentry.ko.js

@@ -931,6 +931,19 @@ var SentryViewModel = (function () {
       $(document).trigger("create.typeahead");
     };
 
+    self.deletePrivilegeModal = function (role) {
+      var cascadeDeletes = $.grep(role.privilegesChanged(), function (privilege) {
+          return privilege.status() == 'deleted' && (privilege.privilegeScope() == 'SERVER' || privilege.privilegeScope() == 'DATABASE');
+        }
+      );
+      if (cascadeDeletes.length > 0) {
+        self.roleToUpdate(role);
+        huePubSub.publish('show.delete.privilege.modal');
+      } else {
+        self.role().savePrivileges(role);
+      }
+    };
+
     self.privilege = new Privilege(self, {});
 
     self.doAs = ko.observable(initial.user);

+ 4 - 12
apps/security/src/security/templates/hive.mako

@@ -40,7 +40,7 @@ ${ layout.menubar(section='hive1') }
     <span class="pointer" data-bind="visible: privilegesForViewTo() < privileges().length, click: function(){ privilegesForViewTo(privilegesForViewTo() + 50) }" title="${ _('Show 50 more...') }"><i class="fa fa-ellipsis-h"></i></span>
     <span class="pointer" data-bind="click: addPrivilege, visible: $root.is_sentry_admin" title="${ _('Add privilege') }"><i class="fa fa-plus"></i></span>
     <span class="pointer" data-bind="click: function() { $root.list_sentry_privileges_by_authorizable() }, visible: privilegesChanged().length > 0" title="${ _('Undo') }"> &nbsp; <i class="fa fa-undo"></i></span>
-    <span class="pointer" data-bind="click: function() { huePubSub.publish('delete.privilege.modal', $data) }, visible: privilegesChanged().length > 0" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
+    <span class="pointer" data-bind="click: function() { $root.deletePrivilegeModal($data) }, visible: privilegesChanged().length > 0" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
   </div>
   <!-- /ko -->
 </script>
@@ -361,7 +361,7 @@ ${ layout.menubar(section='hive1') }
                   <div class="acl-block acl-actions" data-bind="click: privilegesChanged().length == 0 ? addPrivilege : void(0), visible: $root.is_sentry_admin">
                     <span class="pointer" data-bind="click: addPrivilege, visible: $data.showPrivileges" title="${ _('Add privilege') }"><i class="fa fa-plus"></i></span>
                     <span class="pointer" data-bind="click: $root.list_sentry_privileges_by_role, visible: privilegesChanged().length > 0" title="${ _('Undo') }"> &nbsp; <i class="fa fa-undo"></i></span>
-                    <span class="pointer" data-bind="click: function() { huePubSub.publish('delete.privilege.modal', $data) }, visible: privilegesChanged().length > 0 && isValid()" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
+                    <span class="pointer" data-bind="click: function() { $root.deletePrivilegeModal($data) }, visible: privilegesChanged().length > 0 && isValid()" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
                   </div>
                 </td>
               </tr>
@@ -569,16 +569,8 @@ ${ tree.import_templates(itemClick='$root.assist.setPath', iconClick='$root.assi
   (function () {
     ko.options.deferUpdates = true;
 
-    huePubSub.subscribe('delete.privilege.modal', function (role) {
-      var cascadeDeletes = $.grep(role.privilegesChanged(), function(privilege) {
-          return privilege.status() == 'deleted' && (privilege.privilegeScope() == 'SERVER' || privilege.privilegeScope() == 'DATABASE'); }
-      );
-      if (cascadeDeletes.length > 0 ) {
-        viewModel.roleToUpdate(role);
-        $('#deletePrivilegeModal').modal('show');
-      } else {
-        viewModel.role().savePrivileges(role);
-      }
+    huePubSub.subscribe('show.delete.privilege.modal', function () {
+      $('#deletePrivilegeModal').modal('show');
     });
 
     var viewModel = new HiveViewModel(${ initial | n,unicode });

+ 4 - 13
apps/security/src/security/templates/sentry.mako

@@ -40,7 +40,7 @@ ${ layout.menubar(section=component) }
     <span class="pointer" data-bind="visible: privilegesForViewTo() < privileges().length, click: function(){ privilegesForViewTo(privilegesForViewTo() + 50) }" title="${ _('Show 50 more...') }"><i class="fa fa-ellipsis-h"></i></span>
     <span class="pointer" data-bind="click: addPrivilege, visible: $root.is_sentry_admin" title="${ _('Add privilege') }"><i class="fa fa-plus"></i></span>
     <span class="pointer" data-bind="click: function() { $root.list_sentry_privileges_by_authorizable() }, visible: privilegesChanged().length > 0" title="${ _('Undo') }"> &nbsp; <i class="fa fa-undo"></i></span>
-    <span class="pointer" data-bind="click: function() {  huePubSub.publish('delete.privilege.modal', $data) }, visible: privilegesChanged().length > 0" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
+    <span class="pointer" data-bind="click: function() { $root.deletePrivilegeModal($data) }, visible: privilegesChanged().length > 0" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
   </div>
   <!-- /ko -->
 </script>
@@ -416,7 +416,7 @@ ${ layout.menubar(section=component) }
                   <div class="acl-block acl-actions" data-bind="click: privilegesChanged().length == 0 ? addPrivilege : void(0), visible: $root.is_sentry_admin">
                     <span class="pointer" data-bind="click: addPrivilege, visible: $data.showPrivileges" title="${ _('Add privilege') }"><i class="fa fa-plus"></i></span>
                     <span class="pointer" data-bind="click: $root.list_sentry_privileges_by_role, visible: privilegesChanged().length > 0" title="${ _('Undo') }"> &nbsp; <i class="fa fa-undo"></i></span>
-                    <span class="pointer" data-bind="click: function() { huePubSub.publish('delete.privilege.modal', $data) }, visible: privilegesChanged().length > 0 && isValid()" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
+                    <span class="pointer" data-bind="click: function() { $root.deletePrivilegeModal($data) }, visible: privilegesChanged().length > 0 && isValid()" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
                   </div>
                 </td>
               </tr>
@@ -624,17 +624,8 @@ ${ tree.import_templates(itemClick='$root.assist.setPath', iconClick='$root.assi
 
 <script type="text/javascript">
   (function () {
-    huePubSub.subscribe('delete.privilege.modal', function (role) {
-      var cascadeDeletes = $.grep(role.privilegesChanged(), function (privilege) {
-            return privilege.status() == 'deleted' && (privilege.privilegeType() == 'SERVER' || privilege.privilegeType() == 'DATABASE');
-          }
-      );
-      if (cascadeDeletes.length > 0) {
-        viewModel.roleToUpdate(role);
-        $('#deletePrivilegeModal').modal('show');
-      } else {
-        viewModel.role().savePrivileges(role);
-      }
+    huePubSub.subscribe('show.delete.privilege.modal', function () {
+      $('#deletePrivilegeModal').modal('show');
     });
 
     var viewModel = new SentryViewModel(${ initial | n,unicode });