webui: add filter to attributes widget

Adds filter field to attribute box in permissions for better user
experience. User can then quickly find the desired attribute.

Initial version of the patch authored by: Adam Misnyovszki

https://fedorahosted.org/freeipa/ticket/4253

Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
This commit is contained in:
Petr Vobornik 2014-07-04 13:33:10 +02:00
parent b68f819de7
commit 740d42257f
3 changed files with 55 additions and 0 deletions

View File

@ -553,6 +553,59 @@ aci.attributes_widget = function(spec) {
var id = spec.name;
that.create = function(container) {
that.container = container;
that.widget_create(container);
that.create_search_filter(container);
that.owb_create(container);
if (that.undo) {
that.create_undo(container);
}
that.create_error_link(container);
};
that.create_search_filter = function(container) {
var filter_container = $('<div/>', {
'class': 'search-filter'
});
that.filter = $('<input/>', {
type: 'text',
name: 'filter',
'class': 'form-control',
placeholder: text.get('@i18n:objects.permission.filter')
}).appendTo(filter_container);
that.filter.keyup(function(e) {
that.filter_options();
});
var find_button = IPA.action_button({
name: 'find',
icon: 'fa-search',
click: function() {
that.filter_options();
return false;
}
}).appendTo(filter_container);
filter_container.appendTo(container);
};
that.filter_options = function() {
$("li", that.$node).each(function() {
var item = $(this);
if(item.find('input').val().indexOf(that.filter.val()) === -1) {
item.css('display','none');
} else {
item.css('display','inline');
}
});
};
that.update = function(values) {
that.values = [];

View File

@ -374,6 +374,7 @@
"enable": "Enable token"
},
"permission": {
"filter": "Filter",
"identity": "Permission settings",
"managed": "Attribute breakdown",
"target": "Target"

View File

@ -518,6 +518,7 @@ class i18n_messages(Command):
"enable": "Enable token",
},
"permission": {
"filter": _("Filter"),
"identity": _("Permission settings"),
"managed": _("Attribute breakdown"),
"target": _("Target"),