fixes #257, admin ratings, filter on album

This commit is contained in:
plegall
2017-03-02 16:11:30 +01:00
parent 4d800292c2
commit 294fb8c728
4 changed files with 86 additions and 6 deletions
+35 -4
View File
@@ -77,6 +77,17 @@ if (isset($_GET['users']))
}
}
$page['cat_filter'] = '';
if (isset($_GET['cat']) and is_numeric($_GET['cat']))
{
$cat_ids = get_subcat_ids(array($_GET['cat']));
if (count($cat_ids) > 0)
{
$page['cat_filter'] = ' AND ic.category_id IN ('.implode(',', $cat_ids).')';
}
}
$users = array();
$query = '
SELECT '.$conf['user_fields']['username'].' as username, '.$conf['user_fields']['id'].' as id
@@ -89,8 +100,19 @@ while ($row = pwg_db_fetch_assoc($result))
}
$query = 'SELECT COUNT(DISTINCT(r.element_id))
FROM '.RATE_TABLE.' AS r
$query = '
SELECT
COUNT(DISTINCT(r.element_id))
FROM '.RATE_TABLE.' AS r';
if (!empty($page['cat_filter']))
{
$query.= '
JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id
JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.image_id = i.id';
}
$query.= '
WHERE 1=1'. $page['user_filter'];
list($nb_images) = pwg_db_fetch_row(pwg_query($query));
@@ -112,6 +134,7 @@ $template->assign(
'F_ACTION' => PHPWG_ROOT_PATH.'admin.php',
'DISPLAY' => $elements_per_page,
'NB_ELEMENTS' => $nb_images,
'category' => (isset($_GET['cat']) ? array($_GET['cat']) : array()),
)
);
@@ -159,8 +182,16 @@ SELECT i.id,
COUNT(r.rate) AS nb_rates,
SUM(r.rate) AS sum_rates
FROM '.RATE_TABLE.' AS r
LEFT JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id
WHERE 1 = 1 ' . $page['user_filter'] . '
LEFT JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id';
if (!empty($page['cat_filter']))
{
$query.= '
JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.image_id = i.id';
}
$query.= '
WHERE 1 = 1 ' . $page['user_filter'] . $page['cat_filter'] . '
GROUP BY i.id,
i.path,
i.file,
+47
View File
@@ -1,3 +1,39 @@
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'}
{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'}
{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"}
{footer_script}
{* <!-- CATEGORIES --> *}
var categoriesCache = new CategoriesCache({
serverKey: '{$CACHE_KEYS.categories}',
serverId: '{$CACHE_KEYS._hash}',
rootUrl: '{$ROOT_URL}'
});
categoriesCache.selectize(jQuery('[data-selectize=categories]'));
jQuery("#removeAlbumFilter").click(function() {
jQuery("select[name=cat]")[0].selectize.setValue(null);
return false;
});
function checkCatFilter() {
if (jQuery("select[name=cat]").val() == "") {
jQuery("#removeAlbumFilter").hide();
}
else {
jQuery("#removeAlbumFilter").show();
}
}
checkCatFilter();
jQuery("select[name=cat]").change(function(){
checkCatFilter();
});
{/footer_script}
<h2>{$NB_ELEMENTS} {'Photos'|@translate}</h2>
<form action="{$F_ACTION}" method="GET" class="filter">
@@ -23,6 +59,17 @@
<input type="text" name="display" size="2" value="{$DISPLAY}">
</label>
<label>
{'Album'|translate}<a href="#" id="removeAlbumFilter" class="icon-cancel-circled"></a>
<select
data-selectize="categories"
data-value="{$category|@json_encode|escape:html}"
placeholder="{'No filter on album. Select one or type to search'|translate}"
name="cat"
style="width:400px"
></select>
</label>
<div style="clear:both"></div>
<p style="margin:10px 0 0 0">
+2 -1
View File
@@ -1003,4 +1003,5 @@ $lang['checksum'] = 'checksum';
$lang['orphans to delete'] = 'orphans to delete';
$lang['Dashboard'] = 'Dashboard';
$lang['Storage used'] = 'Storage used';
$lang['First photo added'] = 'First photo added';
$lang['First photo added'] = 'First photo added';
$lang['No filter on album. Select one or type to search'] = 'No filter on album. Select one or type to search';
+2 -1
View File
@@ -1005,4 +1005,5 @@ $lang['checksum'] = 'somme de contrôle';
$lang['orphans to delete'] = 'orphelines à supprimer';
$lang['Dashboard'] = 'Tableau de bord';
$lang['Storage used'] = 'Stockage utilisé';
$lang['First photo added'] = 'Première photo';
$lang['First photo added'] = 'Première photo';
$lang['No filter on album. Select one or type to search'] = 'Aucun filtre. Tapez ici pour chercher un album.';