diff options
author | Byron Jones <glob@mozilla.com> | 2014-09-03 08:06:29 +0200 |
---|---|---|
committer | Byron Jones <glob@mozilla.com> | 2014-09-03 08:06:29 +0200 |
commit | e1e2ca422db2ad5c4a19c0901b6402d3a7f0b175 (patch) | |
tree | 1712ff552852b3c8c55e1d30d0374b2136afb148 /extensions/BugmailFilter/web/js | |
parent | bd23fbfeccd49a406f6a8d99a21371ad7ade07ba (diff) | |
download | bugzilla-e1e2ca422db2ad5c4a19c0901b6402d3a7f0b175.tar.gz bugzilla-e1e2ca422db2ad5c4a19c0901b6402d3a7f0b175.tar.xz |
Bug 1054138: add the ability to filter on "fields containing the string"
Diffstat (limited to 'extensions/BugmailFilter/web/js')
-rw-r--r-- | extensions/BugmailFilter/web/js/bugmail-filter.js | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/extensions/BugmailFilter/web/js/bugmail-filter.js b/extensions/BugmailFilter/web/js/bugmail-filter.js index 2b320bbbb..c24528861 100644 --- a/extensions/BugmailFilter/web/js/bugmail-filter.js +++ b/extensions/BugmailFilter/web/js/bugmail-filter.js @@ -6,19 +6,33 @@ * defined by the Mozilla Public License, v. 2.0. */ var Dom = YAHOO.util.Dom; -var Event = YAHOO.util.Event; + +function onFilterFieldChange() { + if (Dom.get('field').value == '~') { + Dom.removeClass('field_contains_row', 'bz_default_hidden'); + Dom.get('field_contains').focus(); + Dom.get('field_contains').select(); + } + else { + Dom.addClass('field_contains_row', 'bz_default_hidden'); + } +} function onFilterProductChange() { selectProduct(Dom.get('product'), Dom.get('component'), null, null, '__Any__'); Dom.get('component').disabled = Dom.get('product').value == ''; } -function onFilterActionChange() { - var value = Dom.get('action').value; - Dom.get('add_filter').disabled = value == ''; +function setFilterAddEnabled() { + Dom.get('add_filter').disabled = + ( + Dom.get('field').value == '~' + && Dom.get('field_contains').value == '' + ) + || Dom.get('action').value == ''; } -function onRemoveChange() { +function onFilterRemoveChange() { var cbs = Dom.get('filters_table').getElementsByTagName('input'); for (var i = 0, l = cbs.length; i < l; i++) { if (cbs[i].checked) { @@ -34,9 +48,13 @@ function showAllFlags() { Dom.removeClass('all_flags', 'bz_default_hidden'); } -Event.onDOMReady(function() { - Event.on('action', 'change', onFilterActionChange); +YAHOO.util.Event.onDOMReady(function() { + YAHOO.util.Event.on('field', 'change', onFilterFieldChange); + YAHOO.util.Event.on('field_contains', 'keyup', setFilterAddEnabled); + YAHOO.util.Event.on('product', 'change', onFilterProductChange); + YAHOO.util.Event.on('action', 'change', setFilterAddEnabled); + onFilterFieldChange(); onFilterProductChange(); - onFilterActionChange(); - onRemoveChange(); + onFilterRemoveChange(); + setFilterAddEnabled(); }); |