summaryrefslogtreecommitdiffstats
path: root/extensions/BugmailFilter/web
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2014-09-03 08:06:29 +0200
committerByron Jones <glob@mozilla.com>2014-09-03 08:06:29 +0200
commite1e2ca422db2ad5c4a19c0901b6402d3a7f0b175 (patch)
tree1712ff552852b3c8c55e1d30d0374b2136afb148 /extensions/BugmailFilter/web
parentbd23fbfeccd49a406f6a8d99a21371ad7ade07ba (diff)
downloadbugzilla-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')
-rw-r--r--extensions/BugmailFilter/web/js/bugmail-filter.js36
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();
});