mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-06-01 20:04:51 +02:00
fixes #2201 for each filter we add the number of associated users
and the select is deactivated if no users are associated.
This commit is contained in:
@@ -228,6 +228,16 @@ $( document ).ready(function() {
|
||||
$(".advanced-filter-select").change(update_user_list);
|
||||
$("#user_search").on("input", update_user_list);
|
||||
|
||||
// disables certain status, level and group filters if they do not have users
|
||||
$(`
|
||||
.advanced-filter-select[name="filter_status"] option:not(:selected),
|
||||
.advanced-filter-select[name="filter_level"] option:not(:selected),
|
||||
.advanced-filter-select[name="filter_group"] option:not(:selected)
|
||||
`).each(function() {
|
||||
if (!this.textContent.split(' ')[1]){
|
||||
$(this).prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
/*View manager*/
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ $(document).ready(function() {
|
||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||
<select class="user-action-select advanced-filter-select" name="filter_status">
|
||||
<option value="" label="" selected></option>
|
||||
{html_options options=$pref_status_options}
|
||||
{html_options options=$nb_users_by_status}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -302,7 +302,7 @@ $(document).ready(function() {
|
||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||
<select class="user-action-select advanced-filter-select" name="filter_level" size="1">
|
||||
<option value="" label="" selected></option>
|
||||
{html_options options=$level_options}
|
||||
{html_options options=$nb_users_by_level}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -311,7 +311,7 @@ $(document).ready(function() {
|
||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||
<select class="user-action-select advanced-filter-select" name="filter_group">
|
||||
<option value="" label="" selected></option>
|
||||
{html_options options=$association_options}
|
||||
{html_options options=$groups_for_filter}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+42
-1
@@ -26,8 +26,10 @@ include(PHPWG_ROOT_PATH.'admin/include/user_tabs.inc.php');
|
||||
$groups = array();
|
||||
|
||||
$query = '
|
||||
SELECT id, name
|
||||
SELECT id, name, COUNT(ug.user_id) as nb_users_of
|
||||
FROM `'.GROUPS_TABLE.'`
|
||||
LEFT JOIN `'. USER_GROUP_TABLE .'` ug ON id = ug.group_id
|
||||
GROUP BY name
|
||||
ORDER BY name ASC
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
@@ -35,8 +37,11 @@ $result = pwg_query($query);
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$groups[$row['id']] = $row['name'];
|
||||
$groups_for_filter[$row['id']] = $row['nb_users_of'] ? $row['name'] . ' ('. $row['nb_users_of'] .')' : $row['name'];
|
||||
}
|
||||
|
||||
$template->assign('groups_for_filter', $groups_for_filter);
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Dates for filtering |
|
||||
// +-----------------------------------------------------------------------+
|
||||
@@ -142,6 +147,23 @@ foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
|
||||
$label_of_status[$status] = l10n('user_status_'.$status);
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
status,
|
||||
COUNT(*) AS nb_users_of
|
||||
FROM '. USER_INFOS_TABLE .'
|
||||
WHERE user_id != '. $conf['guest_id'] .'
|
||||
GROUP BY status
|
||||
';
|
||||
|
||||
$result = pwg_query($query);
|
||||
while($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$nb_users_by_status[$row['status']] = l10n('user_status_'.$row['status']) . ' ('. $row['nb_users_of'] .')';
|
||||
}
|
||||
|
||||
$nb_users_by_status = array_merge($label_of_status, $nb_users_by_status);
|
||||
|
||||
$pref_status_options = $label_of_status;
|
||||
|
||||
// a simple "admin" can't set/remove statuses webmaster/admin
|
||||
@@ -154,14 +176,33 @@ if ('admin' == $user['status'])
|
||||
$template->assign('label_of_status', $label_of_status);
|
||||
$template->assign('pref_status_options', $pref_status_options);
|
||||
$template->assign('pref_status_selected', 'normal');
|
||||
$template->assign('nb_users_by_status', $nb_users_by_status);
|
||||
|
||||
// user level options
|
||||
foreach ($conf['available_permission_levels'] as $level)
|
||||
{
|
||||
$level_options[$level] = l10n(sprintf('Level %d', $level));
|
||||
}
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
level,
|
||||
COUNT(*) AS nb_users_of
|
||||
FROM '. USER_INFOS_TABLE .'
|
||||
WHERE user_id != '. $conf['guest_id'] .'
|
||||
GROUP BY level
|
||||
';
|
||||
|
||||
$result = pwg_query($query);
|
||||
$nb_users_by_level = $level_options;
|
||||
while($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$nb_users_by_level[$row['level']] = l10n(sprintf('Level %d', $row['level'])) . ' ('. $row['nb_users_of'] .')';
|
||||
}
|
||||
|
||||
$template->assign('level_options', $level_options);
|
||||
$template->assign('level_selected', $default_user['level']);
|
||||
$template->assign('nb_users_by_level', $nb_users_by_level);
|
||||
|
||||
$query = '
|
||||
SELECT id, name, is_default
|
||||
|
||||
Reference in New Issue
Block a user