From 06eb400f225d81840ff7ed35c52216a80cc4f29d Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Wed, 23 May 2018 15:56:39 -0400 Subject: [PATCH] add callback for checking if field is filterable --- awx/ui/client/features/output/search.component.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/awx/ui/client/features/output/search.component.js b/awx/ui/client/features/output/search.component.js index b1f40efd3e..4e9a2e8caf 100644 --- a/awx/ui/client/features/output/search.component.js +++ b/awx/ui/client/features/output/search.component.js @@ -1,8 +1,8 @@ const templateUrl = require('~features/output/search.partial.html'); const searchReloadOptions = { inherit: false, location: 'replace' }; -const searchKeyExamples = ['id:>1', 'task:set', 'created:>=2000-01-01']; -const searchKeyFields = ['changed', 'failed', 'host_name', 'stdout', 'task', 'role', 'playbook', 'play']; +const searchKeyExamples = ['host_name:localhost', 'task:set', 'created:>=2000-01-01']; +const searchKeyFields = ['changed', 'created', 'failed', 'host_name', 'stdout', 'task', 'role', 'playbook', 'play']; const PLACEHOLDER_RUNNING = 'CANNOT SEARCH RUNNING JOB'; const PLACEHOLDER_DEFAULT = 'SEARCH'; @@ -52,11 +52,16 @@ function reloadQueryset (queryset, rejection = REJECT_DEFAULT) { }); } +const isFilterable = term => { + const field = term[0].split('.')[0].replace(/^-/, ''); + return (searchKeyFields.indexOf(field) > -1); +}; + function removeSearchTag (index) { const searchTerm = vm.tags[index]; const currentQueryset = getCurrentQueryset(); - const modifiedQueryset = qs.removeTermsFromQueryset(currentQueryset, searchTerm); + const modifiedQueryset = qs.removeTermsFromQueryset(currentQueryset, searchTerm, isFilterable); reloadQueryset(modifiedQueryset); } @@ -64,7 +69,7 @@ function removeSearchTag (index) { function submitSearch () { const currentQueryset = getCurrentQueryset(); - const searchInputQueryset = qs.getSearchInputQueryset(vm.value); + const searchInputQueryset = qs.getSearchInputQueryset(vm.value, isFilterable); const modifiedQueryset = qs.mergeQueryset(currentQueryset, searchInputQueryset); reloadQueryset(modifiedQueryset, REJECT_INVALID);