mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-28 12:19:57 +03:00
fixes #2071 sorts users by date and username
This commit is contained in:
parent
a5be190ef2
commit
fbae0b735c
4 changed files with 80 additions and 8 deletions
|
@ -15,6 +15,7 @@ let pwg_token = '';
|
|||
let selection = [];
|
||||
let first_update = true;
|
||||
let total_users = 0
|
||||
let filter_by = 'id DESC';
|
||||
/*----------------
|
||||
Escape of pop-in
|
||||
----------------*/
|
||||
|
@ -305,6 +306,49 @@ $( document ).ready(function() {
|
|||
$('.search-cancel').show();
|
||||
}
|
||||
})
|
||||
// Filter by id (registered) and username
|
||||
const icon_user = $('#icon-usr-list-user');
|
||||
const icon_registered = $('#icon-usr-list-registered');
|
||||
$('#usr-list-registered').on('click', function() {
|
||||
icon_user.css('display', 'none');
|
||||
icon_registered.css('display', 'block');
|
||||
icon_user.attr('class', 'icon-down');
|
||||
switch(filter_by) {
|
||||
case 'id DESC':
|
||||
icon_registered.attr('class', 'icon-down');
|
||||
filter_by = 'id ASC';
|
||||
break;
|
||||
case 'id ASC':
|
||||
icon_registered.attr('class', 'icon-up');
|
||||
filter_by = 'id DESC';
|
||||
break;
|
||||
default:
|
||||
icon_registered.attr('class', 'icon-up');
|
||||
filter_by = 'id DESC';
|
||||
break;
|
||||
}
|
||||
update_user_list();
|
||||
});
|
||||
$('#usr-list-user').on('click', function() {
|
||||
icon_registered.css('display', 'none');
|
||||
icon_user.css('display', 'block');
|
||||
icon_registered.attr('class', 'icon-up');
|
||||
switch(filter_by) {
|
||||
case 'username DESC':
|
||||
icon_user.attr('class', 'icon-down');
|
||||
filter_by = 'username ASC';
|
||||
break;
|
||||
case 'username ASC':
|
||||
icon_user.attr('class', 'icon-up');
|
||||
filter_by = 'username DESC';
|
||||
break;
|
||||
default:
|
||||
icon_user.attr('class', 'icon-down');
|
||||
filter_by = 'username ASC'
|
||||
break;
|
||||
}
|
||||
update_user_list();
|
||||
});
|
||||
});
|
||||
|
||||
function set_view_selector(view_type) {
|
||||
|
@ -993,7 +1037,7 @@ function get_formatted_date(date_str) {
|
|||
}
|
||||
let first_part = date_str.split(' ')[0];
|
||||
let formatted = first_part.split('-').join('/');
|
||||
console.log(formatted);
|
||||
// console.log(formatted);
|
||||
return (formatted);
|
||||
}
|
||||
|
||||
|
@ -1022,7 +1066,7 @@ function set_selected_groups(groups) {
|
|||
}
|
||||
|
||||
function fill_user_edit_summary(user_to_edit, pop_in, isGuest) {
|
||||
console.log(isGuest);
|
||||
// console.log(isGuest);
|
||||
if (isGuest) {
|
||||
pop_in.find('.user-property-initials span').removeClass(color_icons.join(' ')).addClass(color_icons[user_to_edit.id % 5]);
|
||||
} else {
|
||||
|
@ -1212,14 +1256,14 @@ function fill_ajax_data_from_properties(ajax_data, pop_in) {
|
|||
let groups_selected = pop_in.find('.user-property-group .selectize-input .item').map(function () {
|
||||
return parseInt($(this).attr('data-value'));
|
||||
} ).get();
|
||||
console.log(groups_selected);
|
||||
// console.log(groups_selected);
|
||||
ajax_data['email'] = pop_in.find('.user-property-email input').val();
|
||||
if (connected_user_status == "admin" && pop_in.find('.user-property-status select').val() != "webmaster" && pop_in.find('.user-property-status select').val() != "admin") {
|
||||
ajax_data['status'] = pop_in.find('.user-property-status select').val();
|
||||
} else if (connected_user_status == "webmaster"){
|
||||
ajax_data['status'] = pop_in.find('.user-property-status select').val();
|
||||
}
|
||||
console.log(ajax_data['status']);
|
||||
// console.log(ajax_data['status']);
|
||||
ajax_data['level'] = pop_in.find('.user-property-level select').val();
|
||||
ajax_data['group_id'] = groups_selected.length == 0 ? -1 : groups_selected;
|
||||
ajax_data['enabled_high'] = pop_in.find('.user-list-checkbox[name="hd_enabled"]').attr('data-selected') == '1' ? true : false ;
|
||||
|
@ -1487,7 +1531,7 @@ function update_guest_info() {
|
|||
function update_user_list() {
|
||||
let update_data = {
|
||||
display: "all",
|
||||
order: "id DESC", // We want the most recent user first
|
||||
order: filter_by, // We want the most recent user first
|
||||
page: actual_page - 1,
|
||||
per_page: per_page,
|
||||
exclude: [guest_id]
|
||||
|
@ -1513,7 +1557,7 @@ function update_user_list() {
|
|||
success: function (raw_data) {
|
||||
data = jQuery.parseJSON(raw_data);
|
||||
if (data.stat === "fail") {
|
||||
console.log(data.message);
|
||||
// console.log(data.message);
|
||||
return;
|
||||
}
|
||||
total_users = data.result.total_count;
|
||||
|
|
|
@ -314,7 +314,7 @@ $(document).ready(function() {
|
|||
</div>
|
||||
<!-- username -->
|
||||
<div class="user-header-col user-header-username">
|
||||
<span>{'Username'|@translate}</span>
|
||||
<span id="usr-list-user">{'Username'|@translate} <span id="icon-usr-list-user" class="icon-up" style="display: none;"></span></span>
|
||||
</div>
|
||||
<!-- status -->
|
||||
<div class="user-header-col user-header-status">
|
||||
|
@ -330,7 +330,7 @@ $(document).ready(function() {
|
|||
</div> *}
|
||||
<!-- registration date -->
|
||||
<div class="user-header-col user-header-registration">
|
||||
<span>{'Registered'|@translate}</span>
|
||||
<span id="usr-list-registered">{'Registered'|@translate} <span id="icon-usr-list-registered" class="icon-up"></span></span>
|
||||
</div>
|
||||
<!-- groups -->
|
||||
<div class="user-header-col user-header-groups">
|
||||
|
|
|
@ -7091,6 +7091,25 @@ color:#FF7B00;
|
|||
border-color: transparent transparent white transparent;
|
||||
}
|
||||
|
||||
#usr-list-user,
|
||||
#usr-list-registered {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#usr-list-user:hover,
|
||||
#usr-list-registered:hover {
|
||||
color: #F3A73B;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#usr-list-user:hover #icon-usr-list-user{
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
#usr-list-registered:hover #icon-usr-list-registered{
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
@media (max-width: 1450px) {
|
||||
.promote-text span {
|
||||
font-size: 30px;
|
||||
|
|
|
@ -34,6 +34,15 @@ function ws_users_getList($params, &$service)
|
|||
return new PwgError(WS_ERR_INVALID_PARAM, 'Invalid input parameter order');
|
||||
}
|
||||
|
||||
// Insensitive case sort order
|
||||
if (isset($params['order']))
|
||||
{
|
||||
if (strpos($params['order'], "username") !== false)
|
||||
{
|
||||
$params['order'] = str_ireplace("username", "LOWER(username)", $params['order']);
|
||||
}
|
||||
}
|
||||
|
||||
$where_clauses = array('1=1');
|
||||
|
||||
if (!empty($params['user_id']))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue