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
|
|
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);
|