1 |
be880f98
|
Florent Torregrosa
|
(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); |