summaryrefslogtreecommitdiffstats
path: root/extensions/BugmailFilter/web/js/bugmail-filter.js
blob: c24528861dd93a2249d9357fe06542acd1d7f167 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This Source Code Form is "Incompatible With Secondary Licenses", as
 * defined by the Mozilla Public License, v. 2.0. */

var Dom = YAHOO.util.Dom;

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 setFilterAddEnabled() {
    Dom.get('add_filter').disabled =
        (
            Dom.get('field').value == '~'
            && Dom.get('field_contains').value == ''
        )
        || Dom.get('action').value == '';
}

function onFilterRemoveChange() {
  var cbs = Dom.get('filters_table').getElementsByTagName('input');
  for (var i = 0, l = cbs.length; i < l; i++) {
    if (cbs[i].checked) {
      Dom.get('remove').disabled = false;
      return;
    }
  }
  Dom.get('remove').disabled = true;
}

function showAllFlags() {
    Dom.addClass('show_all', 'bz_default_hidden');
    Dom.removeClass('all_flags', 'bz_default_hidden');
}

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();
    onFilterRemoveChange();
    setFilterAddEnabled();
});