Skip to content

Commit

Permalink
bug 2883: filter order_by for duplicated values
Browse files Browse the repository at this point in the history
git-svn-id: http://piwigo.org/svn/trunk@25489 68402e56-0260-453c-a942-63ccdbb3a9ee
  • Loading branch information
mistic100 committed Nov 15, 2013
1 parent 1951be5 commit 80d8031
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 27 deletions.
10 changes: 9 additions & 1 deletion admin/configuration.php
Expand Up @@ -152,9 +152,17 @@
{
if ( !empty($_POST['order_by']) )
{
$used = array();
foreach ($_POST['order_by'] as $i => $val)
{
if (empty($val)) unset($_POST['order_by'][$i]);
if (empty($val) or isset($used[$val]))
{
unset($_POST['order_by'][$i]);
}
else
{
$used[$val] = true;
}
}
if ( !count($_POST['order_by']) )
{
Expand Down
45 changes: 19 additions & 26 deletions admin/themes/default/template/configuration.tpl
Expand Up @@ -68,41 +68,34 @@
{if !isset($ORDER_BY_IS_CUSTOM)}
{footer_script require='jquery'}
(function(){
// counters for displaying of addFilter link
var fields = {$main.order_by|@count},
max_fields = Math.ceil({$main.order_by_options|@count}/2);
var max_fields = Math.ceil({$main.order_by_options|@count}/2);

function updateAddFilterLink() {
if (fields >= max_fields) {
jQuery('.addFilter').css('display', 'none');
} else {
jQuery('.addFilter').css('display', '');
}
}
function updateFilters() {
var $selects = jQuery('#order_filters select');
function updateRemoveFilterTrigger() {
jQuery(".removeFilter").click(function() {
jQuery(this).parent('span.filter').remove();
fields--;
updateAddFilterLink();
jQuery('#order_filters .addFilter').toggle($selects.length <= max_fields);
jQuery('#order_filters .removeFilter').css('display', '').filter(':first').css('display', 'none');
$selects.find('option').removeAttr('disabled');
$selects.each(function() {
$selects.not(this).find('option[value="'+ jQuery(this).val() +'"]').attr('disabled', 'disabled');
});

jQuery(".removeFilter").css('display', '');
jQuery(".filter:first .removeFilter").css('display', 'none');
}

jQuery('#order_filters').on('click', '.removeFilter', function() {
jQuery(this).parent('span.filter').remove();
updateFilters();
});

jQuery('.addFilter').click(function() {
jQuery(this).prev('span.filter').clone().insertBefore($(this));
jQuery(this).prev('span.filter').children('select[name="order_by[]"]').val('');
jQuery('#order_filters').on('change', 'select', updateFilters);

fields++;
updateRemoveFilterTrigger();
updateAddFilterLink();
jQuery('#order_filters .addFilter').click(function() {
jQuery(this).prev('span.filter').clone().insertBefore(jQuery(this));
jQuery(this).prev('span.filter').children('select').val('');
updateFilters();
});

updateRemoveFilterTrigger();
updateAddFilterLink();
updateFilters();
}());
{/footer_script}
{/if}
Expand Down

0 comments on commit 80d8031

Please sign in to comment.