diff options
author | rvelices <rv-github@modusoptimus.com> | 2014-04-05 19:24:27 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2014-04-05 19:24:27 +0000 |
commit | 1f3f5ff73f505cbc6041ae213398d240f61d5a60 (patch) | |
tree | 5d80de6ffec34d3315051994f2187de5fac55883 /admin | |
parent | 7a8463579826233d7dc26ec93f3f98c22acaa7ac (diff) |
bug 3069: add quick search as filter in batch manager
git-svn-id: http://piwigo.org/svn/trunk@28087 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin')
-rw-r--r-- | admin/batch_manager.php | 50 | ||||
-rw-r--r-- | admin/batch_manager_global.php | 24 | ||||
-rw-r--r-- | admin/themes/default/template/batch_manager_global.tpl | 10 |
3 files changed, 53 insertions, 31 deletions
diff --git a/admin/batch_manager.php b/admin/batch_manager.php index 2cb76f7e1..359e5603a 100644 --- a/admin/batch_manager.php +++ b/admin/batch_manager.php @@ -85,14 +85,14 @@ if (isset($_POST['submitFilter'])) if (in_array($_POST['filter_level'], $conf['available_permission_levels'])) { $_SESSION['bulk_manager_filter']['level'] = $_POST['filter_level']; - + if (isset($_POST['filter_level_include_lower'])) { $_SESSION['bulk_manager_filter']['level_include_lower'] = true; } } } - + if (isset($_POST['filter_dimension_use'])) { foreach (array('min_width','max_width','min_height','max_height') as $type) @@ -110,34 +110,39 @@ if (isset($_POST['submitFilter'])) } } } + + if (isset($_POST['filter_search_use'])) + { + $_SESSION['bulk_manager_filter']['search']['q'] = $_POST['q']; + } } // filters from url -else if (isset($_GET['filter'])) +elseif (isset($_GET['filter'])) { if (!is_array($_GET['filter'])) { $_GET['filter'] = explode(',', $_GET['filter']); } - + $_SESSION['bulk_manager_filter'] = array(); - + foreach ($_GET['filter'] as $filter) { list($type, $value) = explode('-', $filter); - + switch ($type) { case 'prefilter': $_SESSION['bulk_manager_filter']['prefilter'] = $value; break; - + case 'album': if (is_numeric($value)) { $_SESSION['bulk_manager_filter']['category'] = $value; } break; - + case 'tag': if (is_numeric($value)) { @@ -145,7 +150,7 @@ else if (isset($_GET['filter'])) $_SESSION['bulk_manager_filter']['tag_mode'] = 'AND'; } break; - + case 'level': if (is_numeric($value) && in_array($value, $conf['available_permission_levels'])) { @@ -178,7 +183,7 @@ SELECT element_id WHERE user_id = '.$user['id'].' ;'; $filter_sets[] = array_from_query($query, 'element_id'); - + break; case 'favorites': @@ -188,7 +193,7 @@ SELECT image_id WHERE user_id = '.$user['id'].' ;'; $filter_sets[] = array_from_query($query, 'image_id'); - + break; case 'last_import': @@ -206,7 +211,7 @@ SELECT id ;'; $filter_sets[] = array_from_query($query, 'id'); } - + break; case 'no_virtual_album': @@ -234,7 +239,7 @@ SELECT id } $filter_sets[] = array_diff($all_elements, $linked_to_virtual); - + break; case 'no_album': @@ -246,7 +251,7 @@ SELECT WHERE category_id is null ;'; $filter_sets[] = array_from_query($query, 'id'); - + break; case 'no_tag': @@ -258,7 +263,7 @@ SELECT WHERE tag_id is null ;'; $filter_sets[] = array_from_query($query, 'id'); - + break; @@ -280,7 +285,7 @@ SELECT id WHERE file IN (\''.implode("','", array_map('pwg_db_real_escape_string', $duplicate_files)).'\') ;'; $filter_sets[] = array_from_query($query, 'id'); - + break; case 'all_photos': @@ -290,7 +295,7 @@ SELECT id '.$conf['order_by']; $filter_sets[] = array_from_query($query, 'id'); - + break; } @@ -325,7 +330,7 @@ if (isset($_SESSION['bulk_manager_filter']['level'])) { $operator = '<='; } - + $query = ' SELECT id FROM '.IMAGES_TABLE.' @@ -374,7 +379,7 @@ if (isset($_SESSION['bulk_manager_filter']['dimension'])) // max_ratio is a floor value, so must be a bit increased $where_clause[] = 'width/height < '.($_SESSION['bulk_manager_filter']['dimension']['max_ratio']+0.01); } - + $query = ' SELECT id FROM '.IMAGES_TABLE.' @@ -384,6 +389,13 @@ SELECT id $filter_sets[] = array_from_query($query, 'id'); } +if (isset($_SESSION['bulk_manager_filter']['search'])) +{ + include_once( PHPWG_ROOT_PATH .'include/functions_search.inc.php' ); + $res = get_quick_search_results($_SESSION['bulk_manager_filter']['search']['q'], array('permissions'=>false)); + $filter_sets[] = $res['items']; +} + $current_set = array_shift($filter_sets); foreach ($filter_sets as $set) { diff --git a/admin/batch_manager_global.php b/admin/batch_manager_global.php index 2828d8b9b..ddcfa222c 100644 --- a/admin/batch_manager_global.php +++ b/admin/batch_manager_global.php @@ -86,7 +86,7 @@ if (isset($_POST['submit'])) } $action = $_POST['selectAction']; - + if ('remove_from_caddie' == $action) { $query = ' @@ -147,7 +147,7 @@ DELETE $_SESSION['page_infos'] = array( l10n('Information data registered in database') ); - + // let's refresh the page because we the current set might be modified if ('no_album' == $page['prefilter']) { @@ -171,7 +171,7 @@ DELETE $_SESSION['page_infos'] = array( l10n('Information data registered in database') ); - + // let's refresh the page because we the current set might be modified if ('no_album' == $page['prefilter']) { @@ -224,7 +224,7 @@ DELETE $_SESSION['page_infos'] = array( l10n('Information data registered in database') ); - + // let's refresh the page because the current set might be modified redirect($redirect_url); } @@ -237,7 +237,7 @@ DELETE { $_POST['author'] = null; } - + $datas = array(); foreach ($collection as $image_id) { @@ -261,7 +261,7 @@ DELETE { $_POST['title'] = null; } - + $datas = array(); foreach ($collection as $image_id) { @@ -277,7 +277,7 @@ DELETE $datas ); } - + // date_creation if ('date_creation' == $action) { @@ -308,7 +308,7 @@ DELETE $datas ); } - + // privacy_level if ('level' == $action) { @@ -335,13 +335,13 @@ DELETE } } } - + // add_to_caddie if ('add_to_caddie' == $action) { fill_caddie($collection); } - + // delete if ('delete' == $action) { @@ -664,11 +664,11 @@ if (count($page['cat_elements_id']) > 0) $query = ' SELECT id,path,representative_ext,file,filesize,level,name,width,height,rotation FROM '.IMAGES_TABLE; - + if ($is_category) { $category_info = get_cat_info($_SESSION['bulk_manager_filter']['category']); - + $conf['order_by'] = $conf['order_by_inside_category']; if (!empty($category_info['image_order'])) { diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index 46e2aa77c..7fa0ae473 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -665,6 +665,15 @@ $(document).ready(function() { <input type="hidden" name="filter_dimension_min_ratio" value="{$dimensions.selected.min_ratio}"> <input type="hidden" name="filter_dimension_max_ratio" value="{$dimensions.selected.max_ratio}"> </li> + + <li id="filter_search"{if !isset($filter.search)} style="display:none"{/if}> + <a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a> + <input type="checkbox" name="filter_search_use" class="useFilterCheckbox"{if isset($filter.search)} checked="checked"{/if}> + {'Search'|@translate} + <input name="q" size=40 value="{$filter.search.q|stripslashes|htmlspecialchars}"> + {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} + <a href="admin/popuphelp.php?page=quick_search"onclick="popuphelp(this.href);return false;" title="{'Help'|@translate}"><span class="icon-help-circled"></span></a> + </li> </ul> <p class="actionButtons"> @@ -676,6 +685,7 @@ $(document).ready(function() { <option value="filter_tags" {if isset($filter.tags)}disabled="disabled"{/if}>{'Tags'|@translate}</option> <option value="filter_level" {if isset($filter.level)}disabled="disabled"{/if}>{'Privacy level'|@translate}</option> <option value="filter_dimension" {if isset($filter.dimension)}disabled="disabled"{/if}>{'Dimensions'|@translate}</option> + <option value="filter_search"{if isset($filter.search)} disabled="disabled"{/if}>{'Search'|@translate}</option> </select> <a id="removeFilters" href="">{'Remove all filters'|@translate}</a> </p> |