79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
/**
|
|
* Copyright (c) 2014, Arthur Schiwon <blizzz@owncloud.com>
|
|
* This file is licensed under the Affero General Public License version 3 or later.
|
|
* See the COPYING-README file.
|
|
*/
|
|
|
|
/**
|
|
* @brief this object takes care of the filter functionality on the user
|
|
* management page
|
|
* @param {UserList} userList the UserList object
|
|
* @param {GroupList} groupList the GroupList object
|
|
*/
|
|
function UserManagementFilter (userList, groupList) {
|
|
this.userList = userList;
|
|
this.groupList = groupList;
|
|
this.oldFilter = '';
|
|
|
|
this.init();
|
|
}
|
|
|
|
/**
|
|
* @brief sets up when the filter action shall be triggered
|
|
*/
|
|
UserManagementFilter.prototype.init = function () {
|
|
OC.Plugins.register('OCA.Search', this);
|
|
};
|
|
|
|
/**
|
|
* @brief the filter action needs to be done, here the accurate steps are being
|
|
* taken care of
|
|
*/
|
|
UserManagementFilter.prototype.run = _.debounce(function (filter) {
|
|
if (filter === this.oldFilter) {
|
|
return;
|
|
}
|
|
this.oldFilter = filter;
|
|
this.userList.filter = filter;
|
|
this.userList.empty();
|
|
this.userList.update(GroupList.getCurrentGID());
|
|
if (this.groupList.filterGroups) {
|
|
// user counts are being updated nevertheless
|
|
this.groupList.empty();
|
|
}
|
|
this.groupList.update();
|
|
},
|
|
300
|
|
);
|
|
|
|
/**
|
|
* @brief returns the filter String
|
|
* @returns string
|
|
*/
|
|
UserManagementFilter.prototype.getPattern = function () {
|
|
var input = this.filterInput.val(),
|
|
html = $('html'),
|
|
isIE8or9 = html.hasClass('lte9');
|
|
// FIXME - TODO - once support for IE8 and IE9 is dropped
|
|
if (isIE8or9 && input == this.filterInput.attr('placeholder')) {
|
|
input = '';
|
|
}
|
|
return input;
|
|
};
|
|
|
|
/**
|
|
* @brief adds reset functionality to an HTML element
|
|
* @param jQuery the jQuery representation of that element
|
|
*/
|
|
UserManagementFilter.prototype.addResetButton = function (button) {
|
|
var umf = this;
|
|
button.click(function () {
|
|
umf.filterInput.val('');
|
|
umf.run();
|
|
});
|
|
};
|
|
|
|
UserManagementFilter.prototype.attach = function (search) {
|
|
search.setFilter('settings', this.run.bind(this));
|
|
};
|