Projet

Général

Profil

Paste
Télécharger (1,97 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / module_filter / js / permissions.js @ 7d7b5830

1
(function($) {
2

    
3
var lastModuleItem;
4

    
5
Drupal.behaviors.moduleFilterPermissions = {
6
  attach: function(context) {
7
    $('.module-filter-inputs-wrapper', context).once('module-filter', function() {
8
      var filterInput = $('input[name="module_filter[name]"]', context);
9
      var selector = '#permissions tbody tr';
10

    
11
      // Move location of filter input.
12
      $('#permissions').parent().prepend(filterInput.parent().parent());
13

    
14
      filterInput.moduleFilter(selector, {
15
        wrapper: $('#permissions').parent(),
16
        childSelector: 'td.module',
17
        buildIndex: [
18
          function(moduleFilter, item) {
19
            item.isModule = (item.text != '') ? true : false;
20
            if (item.isModule) {
21
              item.children = new Array();
22
              lastModuleItem = item;
23
            }
24
            else {
25
              item.parent = lastModuleItem;
26
              lastModuleItem.children.push(item);
27
            }
28
            return item;
29
          }
30
        ]
31
      });
32

    
33
      var moduleFilter = filterInput.data('moduleFilter');
34

    
35
      moduleFilter.operators = {
36
        perm: function(string, moduleFilter, item) {
37
          if (!item.isModule) {
38
            if (item.name == undefined) {
39
              var $name = $('td.permission', item.element).clone();
40
              $('.description', $name).remove();
41
              item.name = $name.text().trim().toLowerCase();
42
            }
43

    
44
            if (item.name.indexOf(string) >= 0) {
45
              return true;
46
            }
47
          }
48
        }
49
      };
50

    
51
      moduleFilter.element.bind('moduleFilter:finish', function(e, data) {
52
        for (var i in moduleFilter.results) {
53
          if (moduleFilter.results[i].isModule) {
54
            for (var k in moduleFilter.results[i].children) {
55
              moduleFilter.results[i].children[k].element.removeClass('js-hide');
56
            }
57
          }
58
          else {
59
            moduleFilter.results[i].parent.element.removeClass('js-hide');
60
          }
61
        }
62
      });
63
    });
64
  }
65
};
66

    
67
})(jQuery);