From 964a523dafe87529bd8190b23812cda711a51ffa Mon Sep 17 00:00:00 2001 From: chouseknecht Date: Wed, 19 Jun 2013 10:22:23 -0400 Subject: [PATCH] Limited filter on Job Events page to only those fields that make sense: Host and Status --- ansibleworks/ui/static/js/helpers/Children.js | 5 ++++- ansibleworks/ui/static/js/helpers/search.js | 18 ++++++++++++++++-- ansibleworks/ui/static/js/lists/JobEvents.js | 6 ++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ansibleworks/ui/static/js/helpers/Children.js b/ansibleworks/ui/static/js/helpers/Children.js index 9d8afb8482..9e23a925d0 100644 --- a/ansibleworks/ui/static/js/helpers/Children.js +++ b/ansibleworks/ui/static/js/helpers/Children.js @@ -33,7 +33,10 @@ angular.module('ChildrenHelper', ['RestServices', 'Utilities']) // Expand or collapse children based on clicked element's icon if (set[clicked]['ngicon'] == 'icon-expand-alt') { // Expand: lookup and display children - Rest.setUrl(children); + var url = children; + var search = scope[list.iterator + 'SearchParams'].replace(/^\&/,'').replace(/^\?/,''); + url += (search) ? '?' + search : ""; + Rest.setUrl(url); Rest.get() .success( function(data, status, headers, config) { var found = false; diff --git a/ansibleworks/ui/static/js/helpers/search.js b/ansibleworks/ui/static/js/helpers/search.js index ce7df31216..571516c6c4 100644 --- a/ansibleworks/ui/static/js/helpers/search.js +++ b/ansibleworks/ui/static/js/helpers/search.js @@ -37,11 +37,25 @@ angular.module('SearchHelper', ['RestServices', 'Utilities', 'RefreshHelper']) else { sort_order = (list.fields[fld].desc) ? '-' + fld : fld; } - scope[iterator + 'SearchField'] = fld - scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label; + if (list.fields[fld].notSearchable == undefined || list.fields[fld].notSearchable == false) { + scope[iterator + 'SearchField'] = fld; + scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label; + } break; } } + + if (!scope[iterator + 'SearchField']) { + // A field marked as key may also be notSearchable + for (fld in list.fields) { + if (list.fields[fld].notSearchable == undefined || list.fields[fld].notSearchable == false) { + scope[iterator + 'SearchField'] = fld; + scope[iterator + 'SearchFieldLabel'] = list.fields[fld].label; + break; + } + } + } + scope[iterator + 'SearchType'] = 'icontains'; scope[iterator + 'SearchTypeLabel'] = 'Contains'; scope[iterator + 'SearchParams'] = ''; diff --git a/ansibleworks/ui/static/js/lists/JobEvents.js b/ansibleworks/ui/static/js/lists/JobEvents.js index 5e9c2b8195..ae629fcc7f 100644 --- a/ansibleworks/ui/static/js/lists/JobEvents.js +++ b/ansibleworks/ui/static/js/lists/JobEvents.js @@ -21,13 +21,15 @@ angular.module('JobEventsListDefinition', []) created: { label: 'Creation Date', key: true, - nosort: true + nosort: true, + notSearchable: true }, event_display: { label: 'Event', hasChildren: true, link: true, - nosort: true + nosort: true, + notSearchable: true }, host: { label: 'Host',