Removing user list from getActivity. Generating userlist in template init

This commit is contained in:
Matthieu Leproux
2022-01-12 11:42:18 +01:00
committed by plegall
parent 6eacc5ea6f
commit 19c9c36e79
3 changed files with 54 additions and 75 deletions
+17 -37
View File
@@ -21,7 +21,9 @@ let max_page = 1;
const page_ellipsis = '<span>...</span>'
const page_item = '<a data-page="%d">%d</a>';
var create_selecter = true;
const users_key = "{"Users"|@translate}"
const users_key = "{"Users"|@translate}";
const ulist = {$ulist};
const line_key = "{'%s line'|translate}";
const lines_key = "{'%s lines'|translate}";
@@ -133,8 +135,8 @@ function get_user_activity(page) {
$(".user-update-spinner").removeClass("icon-spin6");
$(".pagination-item-container").show();
update_pagination_menu();
createUserFilter();
fillUserFilter(data.result['filterable_users'], create_selecter, data.result['id_of']);
{* createUserFilter();
fillUserFilter(data.result['filterable_users'], create_selecter, data.result['id_of']); *}
},
error: (e) => {
console.log("ajax call failed");
@@ -143,40 +145,6 @@ function get_user_activity(page) {
})
}
function addSelecterListenner() {
$('select').on('change', function (user) {
if ($(".selectize-input").hasClass("full")) {
$(".line").hide();
console.log("ici");
$(".uid-" + $(".selectize-input .item").data("value")).show();
}
});
}
function createUserFilter() {
$(".user-selecter").remove();
$(".select-user-title").after("<select class='user-selecter' placeholder'{'none'|translate}' single style='width:250px; height: 10px;'></select>");
}
function fillUserFilter(user_tab, create_selecter) {
for (const [key, value] of Object.entries(user_tab)) {
var newOption = "<option value=" + value.id +"> <span class='username_filter'>" + value.username + "</span> <span class='nb_lines_str'> (" + lines_key.replace("%s", value.nb_lines) + ") </span></option>";
$(".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.clear(true);
$(".line").css('display', 'flex');;
});
addSelecterListenner();
}
function lineConstructor(line) {
let newLine = $("#-1").clone();
@@ -732,8 +700,17 @@ $(document).ready(function () {
if ($(".selectize-input").hasClass("full")) {
$(".line").hide();
$(".uid-" + $(".selectize-input .item").data("value")).show();
{* call ajax sur activity list avec uid en param *}
}
});
jQuery('.user-selecter').selectize();
jQuery(".user-selecter")[0].selectize.setValue(null);
jQuery(".cancel-icon").click(function() {
jQuery(".user-selecter")[0].selectize.clear(true);
$(".line").css('display', 'flex');
});
});
{/footer_script}
@@ -745,6 +722,9 @@ $(document).ready(function () {
<span class="select-user-title"> {'Selected user'|translate} </span>
<select class="user-selecter" placeholder="{'none'|translate}" single style="width:250px; height: 10px;">
{foreach from=$ulist item=$user}
<option value="{$user.id}"> <span class='username_filter'>{$user.username}</span></option>
{/foreach}
</select>
<span class="icon-cancel cancel-icon"> </span>
+37
View File
@@ -98,6 +98,43 @@ $template->assign(array(
'CACHE_KEYS' => get_admin_client_cache_keys(array('users')),
));
$query = '
SELECT
performed_by,
COUNT(*) as counter
FROM '.ACTIVITY_TABLE.'
group by performed_by;';
$nb_lines_for_user = query2array($query, 'performed_by', 'counter');
if (count($nb_lines_for_user) > 0)
{
$query = '
SELECT
id,
username
FROM piwigo_users
WHERE id IN ('.implode(',', array_keys($nb_lines_for_user)).');';
}
$username_of = query2array($query, 'id', 'username');
$filterable_users = array();
foreach ($nb_lines_for_user as $id => $nb_line) {
array_push(
$filterable_users,
array(
'id' => $id,
'username' => isset($username_of[$id]) ? $username_of[$id] : 'user#'.$id,
'nb_lines' => $nb_line,
)
);
}
$template->assign('ulist', $filterable_users);
$template->assign_var_from_handle('ADMIN_CONTENT', 'user_activity');
?>
-38
View File
@@ -534,43 +534,6 @@ SELECT
}
}
$filterable_users = array();
foreach ($user_ids as $key => $value)
{
if (isset($username_of[$key]))
{
array_push(
$filterable_users,
array(
'id' => $key,
'username' => $username_of[$key],
'nb_lines' => $value,
)
);
}
else
{
array_push(
$filterable_users,
array(
'id' => $key,
'username' => 'user#'.$key,
'nb_lines' => $value,
)
);
}
}
//Multidimentionnal sorting
usort($filterable_users, function ($a, $b)
{
// compatible with PHP 7+ only
// return strtolower($a['username']) <=> strtolower($b['username']);
// still compatible with PHP 5
return (strtolower($a['username']) >= strtolower($b['username']) ? 1 : 0);
});
$query = '
SELECT
count(*)
@@ -582,7 +545,6 @@ SELECT
// return $output_lines;
return array(
'result_lines' => $output_lines,
'filterable_users' => $filterable_users,
'max_page' => floor($result),
);
}