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

HUE-5964 [useradmin] Ported list of permissions and generalize filter element

Enrico Berti 8 жил өмнө
parent
commit
5df1548

+ 0 - 15
apps/useradmin/src/useradmin/templates/layout.mako

@@ -78,19 +78,4 @@ def is_selected(section, matcher):
 
 <%def name="commons()">
   <link href="${ static('useradmin/css/useradmin.css') }" rel="stylesheet">
-
-  <script type="text/javascript">
-    $(document).ready(function () {
-
-      $("#filterInput").jHueDelayedInput(function () {
-        if (mainDataTable) {
-          mainDataTable.fnFilter($("#filterInput").val().toLowerCase());
-        }
-      });
-
-      $('[data-rel="tooltip"]').tooltip({
-        placement: 'right'
-      });
-    });
-  </script>
 </%def>

+ 19 - 13
apps/useradmin/src/useradmin/templates/list_groups.mako

@@ -33,13 +33,11 @@ ${layout.menubar(section='groups')}
 
     <%actionbar:render>
       <%def name="search()">
-          <input id="filterInput" type="text" class="input-xlarge search-query"
-                 placeholder="${_('Search for name, members, etc...')}">
+          <input type="text" class="input-xlarge search-query filter-input" placeholder="${_('Search for name, members, etc...')}">
       </%def>
       <%def name="actions()">
         %if user.is_superuser:
-            <button id="deleteGroupBtn" class="btn confirmationModal" title="${_('Delete')}" disabled="disabled"><i
-                class="fa fa-trash-o"></i> ${_('Delete')}</button>
+            <button id="deleteGroupBtn" class="btn confirmationModal" title="${_('Delete')}" disabled="disabled"><i class="fa fa-trash-o"></i> ${_('Delete')}</button>
         %endif
       </%def>
       <%def name="creation()">
@@ -127,20 +125,18 @@ ${layout.menubar(section='groups')}
 <script src="${ static('desktop/ext/js/datatables-paging-0.1.js') }" type="text/javascript" charset="utf-8"></script>
 
 <script type="text/javascript" charset="utf-8">
-  $groupsComponents = $('#groupsComponents');
-
-  var viewModel = {
-    availableGroups: ko.observableArray(${ groups_json | n,antixss }),
-    chosenGroups: ko.observableArray([])
-  };
-
-  var mainDataTable;
 
   $(document).ready(function () {
+    var $groupsComponents = $('#groupsComponents');
+
+    var viewModel = {
+      availableGroups: ko.observableArray(${ groups_json | n,antixss }),
+      chosenGroups: ko.observableArray([])
+    };
 
     ko.applyBindings(viewModel, $groupsComponents[0]);
 
-    mainDataTable = $groupsComponents.find('.datatables').dataTable({
+    var dt = $groupsComponents.find('.datatables').dataTable({
       "sPaginationType":"bootstrap",
       "iDisplayLength":100,
       "bLengthChange":false,
@@ -162,6 +158,16 @@ ${layout.menubar(section='groups')}
       }
     });
 
+    $groupsComponents.find(".filter-input").jHueDelayedInput(function () {
+      if (dt) {
+        dt.fnFilter($groupsComponents.find(".filter-input").val().toLowerCase());
+      }
+    });
+
+    $groupsComponents.find('[data-rel="tooltip"]').tooltip({
+      placement: 'right'
+    });
+
     $groupsComponents.find(".dataTables_wrapper").css("min-height", "0");
     $groupsComponents.find(".dataTables_filter").hide();
 

+ 21 - 8
apps/useradmin/src/useradmin/templates/list_permissions.mako

@@ -22,16 +22,17 @@ from django.contrib.auth.models import Group
 
 <%namespace name="actionbar" file="actionbar.mako" />
 <%namespace name="layout" file="layout.mako" />
+%if not is_embeddable:
 ${ commonheader(_('Hue Permissions'), "useradmin", user, request) | n,unicode }
+%endif
 ${layout.menubar(section='permissions')}
 
-<div class="container-fluid">
+<div id="permissionsComponents" class="container-fluid">
   <div class="card card-small">
     <h1 class="card-heading simple">${_('Hue Permissions')}</h1>
     <%actionbar:render>
       <%def name="search()">
-          <input id="filterInput" type="text" class="input-xlarge search-query"
-                 placeholder="${_('Search for application, group, etc...')}">
+          <input type="text" class="input-xlarge search-query filter-input" placeholder="${_('Search for application, group, etc...')}">
       </%def>
     </%actionbar:render>
 
@@ -75,9 +76,9 @@ ${layout.menubar(section='permissions')}
 </div>
 
 <script type="text/javascript" charset="utf-8">
-  var mainDataTable;
   $(document).ready(function () {
-    mainDataTable = $(".datatables").dataTable({
+    var $permissionsComponents = $('#permissionsComponents');
+    var dt = $permissionsComponents.find(".datatables").dataTable({
       "bPaginate": false,
       "bLengthChange": false,
       "bInfo": false,
@@ -93,13 +94,25 @@ ${layout.menubar(section='permissions')}
       }
     });
 
-    $(".dataTables_wrapper").css("min-height", "0");
-    $(".dataTables_filter").hide();
+    $permissionsComponents.find(".filter-input").jHueDelayedInput(function () {
+      if (dt) {
+        dt.fnFilter($permissionsComponents.find(".filter-input").val().toLowerCase());
+      }
+    });
+
+    $permissionsComponents.find('[data-rel="tooltip"]').tooltip({
+      placement: 'right'
+    });
+
+    $permissionsComponents.find(".dataTables_wrapper").css("min-height", "0");
+    $permissionsComponents.find(".dataTables_filter").hide();
 
-    $("a[data-row-selector='true']").jHueRowSelector();
+    $permissionsComponents.find("a[data-row-selector='true']").jHueRowSelector();
   });
 </script>
 
 ${layout.commons()}
 
+%if not is_embeddable:
 ${ commonfooter(request, messages) | n,unicode }
+%endif

+ 19 - 11
apps/useradmin/src/useradmin/templates/list_users.mako

@@ -32,13 +32,11 @@ ${layout.menubar(section='users')}
 
     <%actionbar:render>
       <%def name="search()">
-          <input id="filterInput" type="text" class="input-xlarge search-query"
-                 placeholder="${_('Search for name, group, etc...')}">
+          <input type="text" class="input-xlarge search-query filter-input" placeholder="${_('Search for name, group, etc...')}">
       </%def>
       <%def name="actions()">
         %if user.is_superuser:
-            <button id="deleteUserBtn" class="btn" title="${_('Delete')}" disabled="disabled"><i
-                class="fa fa-trash-o"></i> ${_('Delete')}</button>
+            <button id="deleteUserBtn" class="btn" title="${_('Delete')}" disabled="disabled"><i class="fa fa-trash-o"></i> ${_('Delete')}</button>
         %endif
       </%def>
       <%def name="creation()">
@@ -143,18 +141,18 @@ ${layout.menubar(section='users')}
 <script src="${ static('desktop/ext/js/datatables-paging-0.1.js') }" type="text/javascript" charset="utf-8"></script>
 
 <script type="text/javascript" charset="utf-8">
-  var $usersComponents = $('#usersComponents');
 
-  var viewModel = {
-    availableUsers: ko.observableArray(${ users_json | n,antixss }),
-    chosenUsers: ko.observableArray([])
-  };
-  var mainDataTable;
   $(document).ready(function () {
+    var $usersComponents = $('#usersComponents');
+
+    var viewModel = {
+      availableUsers: ko.observableArray(${ users_json | n,antixss }),
+      chosenUsers: ko.observableArray([])
+    };
 
     ko.applyBindings(viewModel, $usersComponents[0]);
 
-    mainDataTable = $usersComponents.find('.datatables').dataTable({
+    var dt = $usersComponents.find('.datatables').dataTable({
       "sPaginationType":"bootstrap",
       "iDisplayLength":100,
       "bLengthChange":false,
@@ -178,6 +176,16 @@ ${layout.menubar(section='users')}
       }
     });
 
+    $usersComponents.find(".filter-input").jHueDelayedInput(function () {
+      if (dt) {
+        dt.fnFilter($usersComponents.find(".filter-input").val().toLowerCase());
+      }
+    });
+
+    $usersComponents.find('[data-rel="tooltip"]').tooltip({
+      placement: 'right'
+    });
+
     $usersComponents.find(".dataTables_wrapper").css("min-height", "0");
     $usersComponents.find(".dataTables_filter").hide();
 

+ 6 - 1
apps/useradmin/src/useradmin/views.py

@@ -82,11 +82,16 @@ def list_groups(request):
 
 
 def list_permissions(request):
-  return render("list_permissions.mako", request, dict(permissions=HuePermission.objects.all()))
+  return render("list_permissions.mako", request, {
+    'permissions': HuePermission.objects.all(),
+    'is_embeddable': request.GET.get('is_embeddable', False)
+  })
+
 
 def list_configurations(request):
   return render("list_configurations.mako", request, {})
 
+
 def list_for_autocomplete(request):
   if request.ajax:
     extended_user_object = request.GET.get('extend_user') == 'true'