mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
fixes #1491 better user filter for activity tab
This commit is contained in:
@@ -14,16 +14,12 @@ var usersCache = new UsersCache({
|
||||
rootUrl: '{$ROOT_URL}'
|
||||
});
|
||||
|
||||
usersCache.selectize(jQuery('[data-selectize=users]'));
|
||||
|
||||
jQuery(".cancel-icon").click(function() {
|
||||
jQuery(".user-selecter")[0].selectize.setValue(null);
|
||||
return false;
|
||||
});
|
||||
|
||||
const color_icons = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"];
|
||||
const users_key = "{"Users"|@translate}"
|
||||
|
||||
const line_key = "{'%s line'|translate}";
|
||||
const lines_key = "{'%s lines'|translate}";
|
||||
|
||||
{*<-- Translation keys -->*}
|
||||
|
||||
var actionType_add = "{'add'|translate}";
|
||||
@@ -112,22 +108,46 @@ function get_user_activity() {
|
||||
/* console log to help debug */
|
||||
{* console.log(data); *}
|
||||
|
||||
setCreationDate(data.result[data.result.length-1].date, data.result[0].date);
|
||||
setCreationDate(data.result['result_lines'][data.result['result_lines'].length-1].date, data.result['result_lines'][0].date);
|
||||
$(".loading").hide();
|
||||
|
||||
data.result.forEach(line => {
|
||||
data.result['result_lines'].forEach(line => {
|
||||
lineConstructor(line);
|
||||
});
|
||||
displayLine(data);
|
||||
|
||||
fillUserFilter(data.result['filterable_users']);
|
||||
},
|
||||
error: (e) => {
|
||||
console.log("ajax call failed");
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function fillUserFilter(user_tab) {
|
||||
|
||||
var index = 0;
|
||||
for (const [key, value] of Object.entries(user_tab)) {
|
||||
console.log(key, value);
|
||||
if (value > 1) {
|
||||
var newOption = "<option value=" + index +"> <span class='username_filter'>" + key + "</span> <span class='nb_lines_str'> (" + lines_key.replace("%s", value) + ") </span></option>";
|
||||
} else {
|
||||
var newOption = "<option value=" + index +"> <span class='username_filter'>" + key + "</span> <span class='nb_lines_str'> (" + line_key.replace("%s", value) + ") </span></option>";
|
||||
}
|
||||
|
||||
index++;
|
||||
$(".user-selecter").append(newOption);
|
||||
}
|
||||
|
||||
jQuery('.user-selecter').selectize();
|
||||
|
||||
jQuery(".user-selecter")[0].selectize.setValue(null);
|
||||
|
||||
jQuery(".cancel-icon").click(function() {
|
||||
jQuery(".user-selecter")[0].selectize.setValue(null);
|
||||
});
|
||||
}
|
||||
|
||||
function lineConstructor(line) {
|
||||
let newLine = $("#-1").clone();
|
||||
|
||||
@@ -612,8 +632,9 @@ function setCreationDate(startDate, endDate) {
|
||||
$(document).ready(function () {
|
||||
|
||||
$('select').on('change', function (user) {
|
||||
console.log($(".selectize-input .item")[0].innerText.split(" ")[0])
|
||||
try {
|
||||
filterUsers($(".selectize-input .item")[0].innerHTML);
|
||||
filterUsers($(".selectize-input .item")[0].innerText.split(" ")[0]);
|
||||
} catch (error) {
|
||||
showAllLines();
|
||||
let lines = $(".line");
|
||||
@@ -634,8 +655,8 @@ $(document).ready(function () {
|
||||
<div class="select-user">
|
||||
<span class="select-user-title"> {'Selected user'|translate} </span>
|
||||
|
||||
<select class="user-selecter" data-selectize="users" placeholder="{'none'|translate}"
|
||||
single style="width:250px; height: 10px;"></select>
|
||||
<select class="user-selecter" placeholder="{'none'|translate}" single style="width:250px; height: 10px;">
|
||||
</select>
|
||||
|
||||
<span class="icon-cancel cancel-icon"> </span>
|
||||
|
||||
@@ -759,7 +780,7 @@ $(document).ready(function () {
|
||||
|
||||
.tab-title .action-title,
|
||||
.line .action-section {
|
||||
min-width: 310px;
|
||||
min-width: 320px;
|
||||
max-width: 340px;
|
||||
}
|
||||
.tab-title .action-title {
|
||||
@@ -768,7 +789,7 @@ $(document).ready(function () {
|
||||
|
||||
.tab-title .date-title,
|
||||
.line .date-section {
|
||||
min-width: 240px;
|
||||
min-width: 280px;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
|
||||
@@ -504,6 +504,7 @@ SELECT
|
||||
}
|
||||
|
||||
$username_of = array();
|
||||
$user_id_list = array();
|
||||
if (count($user_ids) > 0)
|
||||
{
|
||||
$query = '
|
||||
@@ -514,6 +515,17 @@ SELECT
|
||||
WHERE `'.$conf['user_fields']['id'].'` IN ('.implode(',', array_keys($user_ids)).')
|
||||
;';
|
||||
$username_of = query2array($query, 'user_id', 'username');
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
performed_by,
|
||||
count(*) as nb_lines
|
||||
FROM '.ACTIVITY_TABLE.'
|
||||
GROUP BY
|
||||
performed_by
|
||||
;';
|
||||
|
||||
$user_id_list = query2array($query, 'performed_by', 'nb_lines');
|
||||
}
|
||||
|
||||
foreach ($output_lines as $idx => $output_line)
|
||||
@@ -522,7 +534,7 @@ SELECT
|
||||
{
|
||||
foreach ($output_line['object_id'] as $user_id)
|
||||
{
|
||||
@$output_lines[$idx]['details']['users'][] = isset($username_of[$user_id]) ? $username_of[$user_id] : 'user #'.$user_id;
|
||||
@$output_lines[$idx]['details']['users'][] = isset($username_of[$user_id]) ? $username_of[$user_id] : 'user#'.$user_id;
|
||||
}
|
||||
|
||||
if (isset($output_lines[$idx]['details']['users']))
|
||||
@@ -532,7 +544,22 @@ SELECT
|
||||
}
|
||||
}
|
||||
|
||||
return $output_lines;
|
||||
$filterable_users = array();
|
||||
foreach ($user_id_list as $key => $value) {
|
||||
if (isset($username_of[$key])) {
|
||||
$filterable_users[$username_of[$key]] = $value;
|
||||
} else {
|
||||
$filterable_users['user#'.$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
unset($filterable_users['guest']);
|
||||
|
||||
// return $output_lines;
|
||||
return array(
|
||||
'result_lines' => $output_lines,
|
||||
'filterable_users' => $filterable_users,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1242,3 +1242,5 @@ $lang['Equivalent to deactivation. The user is still in the list, but can no lon
|
||||
$lang['%s MB'] = '%s MB';
|
||||
$lang['Your selection'] = 'Your selection';
|
||||
$lang['action succesfully performed.'] = 'action succesfully performed.';
|
||||
$lang['%s lines'] = "%s lines";
|
||||
$lang['%s line'] = "%s line";
|
||||
|
||||
@@ -1249,3 +1249,5 @@ $lang['Edit photo'] = 'Éditer la photo';
|
||||
$lang['Delete tag "%s"?'] = 'Supprimer le tag "%s" ?';
|
||||
$lang['Your selection'] = 'Votre selection';
|
||||
$lang['action succesfully performed.'] = 'action effectuée avec succès.';
|
||||
$lang['%s lines'] = "%s lignes";
|
||||
$lang['%s line'] = "%s ligne";
|
||||
|
||||
Reference in New Issue
Block a user