diff --git a/admin/rating.php b/admin/rating.php index 3525cbdd1..3055bb6d5 100644 --- a/admin/rating.php +++ b/admin/rating.php @@ -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, diff --git a/admin/themes/default/template/rating.tpl b/admin/themes/default/template/rating.tpl index 8ef3d72d8..7be061e16 100644 --- a/admin/themes/default/template/rating.tpl +++ b/admin/themes/default/template/rating.tpl @@ -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} +{* *} +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} +

{$NB_ELEMENTS} {'Photos'|@translate}

@@ -23,6 +59,17 @@ + +

diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index e8fe4904c..77f542a62 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -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'; \ No newline at end of file +$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'; \ No newline at end of file diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index dd0291654..655d31bf1 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -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'; \ No newline at end of file +$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.'; \ No newline at end of file