mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-06-02 04:15:05 +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);
|
$(".advanced-filter-select").change(update_user_list);
|
||||||
$("#user_search").on("input", 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*/
|
/*View manager*/
|
||||||
|
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ $(document).ready(function() {
|
|||||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||||
<select class="user-action-select advanced-filter-select" name="filter_status">
|
<select class="user-action-select advanced-filter-select" name="filter_status">
|
||||||
<option value="" label="" selected></option>
|
<option value="" label="" selected></option>
|
||||||
{html_options options=$pref_status_options}
|
{html_options options=$nb_users_by_status}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -302,7 +302,7 @@ $(document).ready(function() {
|
|||||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||||
<select class="user-action-select advanced-filter-select" name="filter_level" size="1">
|
<select class="user-action-select advanced-filter-select" name="filter_level" size="1">
|
||||||
<option value="" label="" selected></option>
|
<option value="" label="" selected></option>
|
||||||
{html_options options=$level_options}
|
{html_options options=$nb_users_by_level}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -311,7 +311,7 @@ $(document).ready(function() {
|
|||||||
<div class="advanced-filter-select-container advanced-filter-item-container">
|
<div class="advanced-filter-select-container advanced-filter-item-container">
|
||||||
<select class="user-action-select advanced-filter-select" name="filter_group">
|
<select class="user-action-select advanced-filter-select" name="filter_group">
|
||||||
<option value="" label="" selected></option>
|
<option value="" label="" selected></option>
|
||||||
{html_options options=$association_options}
|
{html_options options=$groups_for_filter}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+42
-1
@@ -26,8 +26,10 @@ include(PHPWG_ROOT_PATH.'admin/include/user_tabs.inc.php');
|
|||||||
$groups = array();
|
$groups = array();
|
||||||
|
|
||||||
$query = '
|
$query = '
|
||||||
SELECT id, name
|
SELECT id, name, COUNT(ug.user_id) as nb_users_of
|
||||||
FROM `'.GROUPS_TABLE.'`
|
FROM `'.GROUPS_TABLE.'`
|
||||||
|
LEFT JOIN `'. USER_GROUP_TABLE .'` ug ON id = ug.group_id
|
||||||
|
GROUP BY name
|
||||||
ORDER BY name ASC
|
ORDER BY name ASC
|
||||||
;';
|
;';
|
||||||
$result = pwg_query($query);
|
$result = pwg_query($query);
|
||||||
@@ -35,8 +37,11 @@ $result = pwg_query($query);
|
|||||||
while ($row = pwg_db_fetch_assoc($result))
|
while ($row = pwg_db_fetch_assoc($result))
|
||||||
{
|
{
|
||||||
$groups[$row['id']] = $row['name'];
|
$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 |
|
// | Dates for filtering |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
@@ -142,6 +147,23 @@ foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
|
|||||||
$label_of_status[$status] = l10n('user_status_'.$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;
|
$pref_status_options = $label_of_status;
|
||||||
|
|
||||||
// a simple "admin" can't set/remove statuses webmaster/admin
|
// 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('label_of_status', $label_of_status);
|
||||||
$template->assign('pref_status_options', $pref_status_options);
|
$template->assign('pref_status_options', $pref_status_options);
|
||||||
$template->assign('pref_status_selected', 'normal');
|
$template->assign('pref_status_selected', 'normal');
|
||||||
|
$template->assign('nb_users_by_status', $nb_users_by_status);
|
||||||
|
|
||||||
// user level options
|
// user level options
|
||||||
foreach ($conf['available_permission_levels'] as $level)
|
foreach ($conf['available_permission_levels'] as $level)
|
||||||
{
|
{
|
||||||
$level_options[$level] = l10n(sprintf('Level %d', $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_options', $level_options);
|
||||||
$template->assign('level_selected', $default_user['level']);
|
$template->assign('level_selected', $default_user['level']);
|
||||||
|
$template->assign('nb_users_by_level', $nb_users_by_level);
|
||||||
|
|
||||||
$query = '
|
$query = '
|
||||||
SELECT id, name, is_default
|
SELECT id, name, is_default
|
||||||
|
|||||||
Reference in New Issue
Block a user