Explorar o código

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 %!s(int64=13) %!d(string=hai) anos
pai
achega
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, {