mirror of https://github.com/apache/archiva.git
[MRM-1812] Users - Manage section needs Sort by User Name, Sort by Full Name, and Sort by Email buttons
This commit is contained in:
parent
8e8148886b
commit
7d3cdeb181
|
@ -241,6 +241,7 @@ user.change.password.required=Change password required
|
|||
users.grid.tab.title=Users
|
||||
users.list=Users List
|
||||
users.sort.byname=Sort by User Name
|
||||
users.sort.generic=Sort
|
||||
effective.roles.edit=Edit Roles
|
||||
locked=Locked
|
||||
validated=Validated
|
||||
|
|
|
@ -52,6 +52,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
|
|||
gridUpdateCallBack: function(){
|
||||
$.log("gridUpdateCallBack users result");
|
||||
applyAutocompleteOnUsersHeaders(self);
|
||||
applySortOnHeadersButtons(self);
|
||||
}
|
||||
});
|
||||
clearFilters=function(){
|
||||
|
@ -149,6 +150,10 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
|
|||
});
|
||||
};
|
||||
|
||||
sortByProperty = function( property ) {
|
||||
$.log("sortByProperty:" + property.headerText);
|
||||
}
|
||||
|
||||
deleteUser=function(user){
|
||||
clearUserMessages();
|
||||
|
||||
|
@ -234,7 +239,53 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
applyAutocompleteOnUsersHeaders=function(usersViewModel){
|
||||
applyAutocompleteOnHeaderUsers("username",usersViewModel);
|
||||
applyAutocompleteOnHeaderUsers("fullName",usersViewModel);
|
||||
applyAutocompleteOnHeaderUsers("email",usersViewModel);
|
||||
};
|
||||
|
||||
applySortOnHeadersButtons=function(usersViewModel){
|
||||
applySortOnHeadersButton("username",usersViewModel);
|
||||
applySortOnHeadersButton("fullName",usersViewModel);
|
||||
applySortOnHeadersButton("email",usersViewModel);
|
||||
};
|
||||
|
||||
applyAutocompleteOnHeaderUsers=function(property,usersViewModel){
|
||||
var founds=[];
|
||||
$(usersViewModel.originalUsers()).each(function(idx,user){
|
||||
if(user[property] && user[property]()){
|
||||
founds.push(user[property]());
|
||||
}
|
||||
});
|
||||
var cell = $("#main-content").find("#users-grid-filter-auto-"+property );
|
||||
cell.typeahead({
|
||||
local: founds,
|
||||
name: 'users-'+property+'-'+$.now()
|
||||
});
|
||||
cell.on('typeahead:selected', function(obj, datum) {
|
||||
var users=[];
|
||||
|
||||
$(usersViewModel.originalUsers()).each(function(idx,user){
|
||||
if(user[property] && user[property]() && user[property]().indexOf(datum.value)>=0){
|
||||
users.push(user);
|
||||
}
|
||||
});
|
||||
usersViewModel.users(users);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
applySortOnHeadersButton=function(property,usersViewModel){
|
||||
var cell = $("#main-content").find("#users-header-"+property );
|
||||
cell.on("click",function(){
|
||||
usersViewModel.users.sort(function(a, b) {
|
||||
return a[property]().localeCompare(b[property]());
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
editUserRoles=function(user){
|
||||
var viewModel = new UserViewModel(user);
|
||||
|
@ -280,31 +331,6 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
|
|||
|
||||
}
|
||||
|
||||
applyAutocompleteOnHeaderUsers=function(property,usersViewModel){
|
||||
var founds=[];
|
||||
$(usersViewModel.originalUsers()).each(function(idx,user){
|
||||
if(user[property] && user[property]()){
|
||||
founds.push(user[property]());
|
||||
}
|
||||
});
|
||||
//var filteredHeader = ;
|
||||
$("#main-content").find("#users-grid-filter-auto-"+property ).typeahead({
|
||||
local: founds,
|
||||
name: 'users-'+property+'-'+$.now()
|
||||
});
|
||||
$("#main-content").find("#users-grid-filter-auto-"+property ).on('typeahead:selected', function(obj, datum) {
|
||||
var users=[];
|
||||
|
||||
$(usersViewModel.originalUsers()).each(function(idx,user){
|
||||
if(user[property] && user[property]() && user[property]().indexOf(datum.value)>=0){
|
||||
users.push(user);
|
||||
}
|
||||
});
|
||||
usersViewModel.users(users);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* called from the menu to display tabs with users grid
|
||||
*/
|
||||
|
@ -345,11 +371,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
|
|||
|
||||
}
|
||||
|
||||
applyAutocompleteOnUsersHeaders=function(usersViewModel){
|
||||
applyAutocompleteOnHeaderUsers("username",usersViewModel);
|
||||
applyAutocompleteOnHeaderUsers("fullName",usersViewModel);
|
||||
applyAutocompleteOnHeaderUsers("email",usersViewModel);
|
||||
}
|
||||
|
||||
|
||||
activateUsersGridTab=function(){
|
||||
var mainContent = $("#main-content");
|
||||
|
|
|
@ -182,7 +182,11 @@
|
|||
<thead>
|
||||
<tr>
|
||||
{{each(i, columnDefinition) columns}}
|
||||
<th>${ columnDefinition.headerText }</th>
|
||||
<th>${columnDefinition.headerText}
|
||||
<button id="users-header-${columnDefinition.rowText}" class="btn">
|
||||
${$.i18n.prop('users.sort.generic')}
|
||||
</button>
|
||||
</th>
|
||||
{{/each}}
|
||||
<th>${$.i18n.prop('edit')}</th>
|
||||
<th>${$.i18n.prop('delete')}</th>
|
||||
|
@ -306,9 +310,6 @@
|
|||
</ul>
|
||||
<div id="users-view-tabs-content" class="tab-content">
|
||||
<div id="users-view" class="tab-pane">
|
||||
<button data-bind='click: sortByName' class="btn">
|
||||
${$.i18n.prop('users.sort.byname')}
|
||||
</button>
|
||||
<a href="#" class="btn btn-warning" data-bind="click: clearFilters" id="remove-filter-id">${$.i18n.prop('users.grid.filter')}</a>
|
||||
<table class="table table-striped table-bordered" id="usersTable"
|
||||
data-bind="simpleGrid: gridViewModel,simpleGridTemplate:'ko_usersGrid_grid',pageLinksId:'usersPagination'">
|
||||
|
|
Loading…
Reference in New Issue