Browse Source

HUE-825 [jobbrowser] Initial username filtering not applied

Added default user filter
Added filter trigger by keyup timeout
Changed size of the text and username textboxes
Enrico Berti 13 years ago
parent
commit
a449305d6c

+ 12 - 5
apps/jobbrowser/src/jobbrowser/templates/jobs.mako

@@ -55,15 +55,13 @@ ${commonheader(_('Job Browser'), "jobbrowser")}
 
     <label class="pull-right">
         &nbsp;
-    ${_('Text:')}
-        <input type="text" name="text" title="${_('Text Filter')}" value="${text_filter}" placeholder="${_('Text Filter')}" class="submitter input-medium search-query"/>
+        ${_('Text:')}
+        <input type="text" name="text" title="${_('Text Filter')}" value="${text_filter}" placeholder="${_('Text Filter')}" class="submitter input-large search-query"/>
     </label>
     <label class="pull-right">
         ${_('Username:')}
-        <input type="text" name="user" title="${_('User Name Filter')}" value="${user_filter}" placeholder="${_('User Name Filter')}" class="submitter input-medium search-query" />
+        <input type="text" name="user" title="${_('User Name Filter')}" value="${user_filter}" placeholder="${_('User Name Filter')}" class="submitter input-small search-query" />
     </label>
-
-
 </form>
 
 
@@ -214,6 +212,15 @@ ${commonheader(_('Job Browser'), "jobbrowser")}
             $("#killModal").modal("hide");
         });
 
+        var filterTimeout = -1;
+        $(".search-query").keyup(function(){
+            window.clearTimeout(filterTimeout);
+            var el = $(this);
+            filterTimeout = window.setTimeout(function(){
+                el.closest("form").submit();
+            }, 500);
+        });
+
         $("a[data-row-selector='true']").jHueRowSelector();
     });
 </script>

+ 6 - 2
apps/jobbrowser/src/jobbrowser/views.py

@@ -99,11 +99,15 @@ def jobs(request):
   """
   check_permission = not conf.SHARE_JOBS.get() and not request.user.is_superuser
 
-  jobs = get_matching_jobs(request, check_permission)
+  user = request.GET.get('user', request.user.username)
+  filters = {}
+  if user != '':
+    filters['user'] = user
+
+  jobs = get_matching_jobs(request, check_permission, **filters)
 
   matching_jobs = sort_if_necessary(request, jobs)
   state = request.GET.get('state', 'all')
-  user = request.GET.get('user', request.user.username)
   text = request.GET.get('text', '')
   retired = request.GET.get('retired', '')
   return render("jobs.mako", request, {