add URL filter input for dimension and filesize + batch_manager_url_filter trigger + fixes in doubleSlider.js

git-svn-id: http://piwigo.org/svn/trunk@29505 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100 2014-09-12 11:35:32 +00:00
parent 67ad8fb81a
commit f83e780249
3 changed files with 61 additions and 7 deletions

View file

@ -175,7 +175,7 @@ elseif (isset($_GET['filter']))
foreach ($_GET['filter'] as $filter)
{
list($type, $value) = explode('-', $filter);
list($type, $value) = explode('-', $filter, 2);
switch ($type)
{
@ -183,7 +183,7 @@ elseif (isset($_GET['filter']))
$_SESSION['bulk_manager_filter']['prefilter'] = $value;
break;
case 'album':
case 'album': case 'category': case 'cat':
if (is_numeric($value))
{
$_SESSION['bulk_manager_filter']['category'] = $value;
@ -208,6 +208,34 @@ elseif (isset($_GET['filter']))
case 'search':
$_SESSION['bulk_manager_filter']['search']['q'] = $value;
break;
case 'dimension':
$dim_map = array('w'=>'width','h'=>'height','r'=>'ratio');
foreach (explode('-', $value) as $part)
{
$values = explode('..', substr($part, 1));
if (isset($dim_map[$part[0]]))
{
$type = $dim_map[$part[0]];
list(
$_SESSION['bulk_manager_filter']['dimension']['min_'.$type],
$_SESSION['bulk_manager_filter']['dimension']['max_'.$type]
) = $values;
}
}
break;
case 'filesize':
list(
$_SESSION['bulk_manager_filter']['filesize']['min'],
$_SESSION['bulk_manager_filter']['filesize']['max']
) = explode('..', $value);
break;
default:
$_SESSION['bulk_manager_filter'] = trigger_change('batch_manager_url_filter',
$_SESSION['bulk_manager_filter'], $type, $value);
break;
}
}
}

View file

@ -20,14 +20,33 @@ $.fn.pwgDoubleSlider = function(options) {
));
}
function findClosest(array, value) {
var closest = null, index = -1;
$.each(array, function(i, v){
if (closest == null || Math.abs(v - value) < Math.abs(closest - value)) {
closest = v;
index = i;
}
});
return index;
}
var values = [
options.values.indexOf(options.selected.min),
options.values.indexOf(options.selected.max)
];
if (values[0] == -1) {
values[0] = findClosest(options.values, options.selected.min);
}
if (values[1] == -1) {
values[1] = findClosest(options.values, options.selected.max);
}
var slider = this.find('.slider-slider').slider({
range: true,
min: 0,
max: options.values.length - 1,
values: [
options.values.indexOf(options.selected.min),
options.values.indexOf(options.selected.max)
],
values: values,
slide: onChange,
change: onChange
});

View file

@ -897,6 +897,13 @@ array(
'files' => array('include\ws_functions\pwg.users.php'),
'infos' => 'New in 2.6.2.',
),
array(
'name' => 'batch_manager_url_filter',
'type' => 'trigger_change',
'vars' => array('array', 'bulk_manager_filter', 'string', 'type', 'string', 'value'),
'files' => array('admin\batch_manager.php'),
'infos' => 'New in 2.7.',
),
);
?>
<!DOCTYPE html>