bug:2540 When default photos order is only by rank, failure outside albums

define a default order_by + some javascript for limit number of fields

git-svn-id: http://piwigo.org/svn/trunk@12872 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100
2012-01-10 20:50:25 +00:00
parent 758f9dd195
commit e349749d42
2 changed files with 41 additions and 11 deletions
+12 -2
View File
@@ -135,15 +135,18 @@ if (isset($_POST['submit']))
{
$order_by = array();
$order_by_inside_category = array();
for ($i=0; $i<count($_POST['order_by_field']); $i++)
{
if ($i>5) continue;
if ($_POST['order_by_field'][$i] == '')
if ( $i >= (count($sort_fields)-1) ) break; // limit to the number of available parameters
if ( empty($_POST['order_by_field'][$i]) )
{
array_push($page['errors'], l10n('No field selected'));
break;
}
else
{
// there is no rank outside categories
if ($_POST['order_by_field'][$i] != 'rank')
{
$order_by[] = $_POST['order_by_field'][$i].' '.$_POST['order_by_direction'][$i];
@@ -151,8 +154,15 @@ if (isset($_POST['submit']))
$order_by_inside_category[] = $_POST['order_by_field'][$i].' '.$_POST['order_by_direction'][$i];
}
}
// must define a default order_by if user want to order by rank only
if ( count($order_by) == 0 )
{
$order_by = array('id ASC');
}
$_POST['order_by'] = 'ORDER BY '.implode(', ', $order_by);
$_POST['order_by_inside_category'] = 'ORDER BY '.implode(', ', $order_by_inside_category);
unset($_POST['order_by_field']);
}
}
@@ -115,24 +115,44 @@
</li>
{if !$ORDER_BY_IS_CUSTOM}
{footer_script require='jquery'}{literal}
{footer_script require='jquery'}
// counters for displaying of addFilter link
fields = {$main.order_by|@count}; max_fields = {$main.order_field_options|@count}; max_fields--;
{literal}
function updateAddFilterLink() {
if (fields >= max_fields) {
$('.addFilter').css('display', 'none');
} else {
$('.addFilter').css('display', '');
}
}
function updateRemoveFilterTrigger() {
$(".removeFilter").click(function () {
$(this).parent('span.filter').remove();
fields--;
updateAddFilterLink();
});
}
jQuery(document).ready(function () {
$('.addFilter').click(function() {
rel = $(this).attr('rel');
$(this).prev('span.filter').clone().insertBefore($(this));
$(this).prev('span.filter').children('select[name="order_by_field[]"]').val('');
$(this).prev('span.filter').children('select[name="order_by_direction[]"]').val('ASC');
$(".removeFilter").click(function () {
$(this).parent('span.filter').remove();
});
fields++;
updateAddFilterLink();
updateRemoveFilterTrigger();
});
$(".removeFilter").click(function () {
$(this).parent('span.filter').remove();
});
updateRemoveFilterTrigger();
updateAddFilterLink();
});
{/literal}{/footer_script}
{/literal}
{/footer_script}
{/if}
</ul>
</fieldset>