From 2e65214c399feb85a494aaaeb706c732e3c501d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Wed, 16 Oct 2013 11:36:40 +0200 Subject: [PATCH] // manually merge of modules search --- .../template/controllers/modules/js.tpl | 19 ++++------------ .../template/controllers/modules/page.tpl | 7 +----- classes/Media.php | 2 +- controllers/admin/AdminModulesController.php | 2 +- js/jquery/plugins/jquery.tablefilter.js | 22 +++++++++++++++++++ 5 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 js/jquery/plugins/jquery.tablefilter.js diff --git a/admin-dev/themes/default/template/controllers/modules/js.tpl b/admin-dev/themes/default/template/controllers/modules/js.tpl index d997904aa..9aa61039d 100644 --- a/admin-dev/themes/default/template/controllers/modules/js.tpl +++ b/admin-dev/themes/default/template/controllers/modules/js.tpl @@ -66,22 +66,11 @@ if (anchor != '') $.scrollTo('#'+anchor, 1200, {offset: -100}); - // AutoComplete Search - $('input[name="filtername"]').autocomplete(moduleList, { - minChars: 0, - width: 310, - matchContains: true, - highlightItem: true, - formatItem: function(row, i, max, term) { - var image = '../modules/'+row.name+'/logo.gif'; - if (row.image != '') - image = row.image; - return ''+row.displayName+''+((row.author != '') ? ' ' + by + ' ' + truncate_author(row.author) : '') + '
'+ row.desc +'
'+ row.option +'
'; - }, - formatResult: function(row) { - return row.displayName; - } + $('#moduleQuicksearch').keyup(function() { + console.log(this.value); + $.uiTableFilter($('#moduleContainer').find('table'), this.value); }); + $('input[name="filtername"]').result(function(event, data, formatted) { $('#filternameForm').submit(); }); diff --git a/admin-dev/themes/default/template/controllers/modules/page.tpl b/admin-dev/themes/default/template/controllers/modules/page.tpl index c56cc090c..cd513dc9d 100644 --- a/admin-dev/themes/default/template/controllers/modules/page.tpl +++ b/admin-dev/themes/default/template/controllers/modules/page.tpl @@ -75,12 +75,7 @@
- - - - +
diff --git a/classes/Media.php b/classes/Media.php index 7ce172f56..bc8257c76 100755 --- a/classes/Media.php +++ b/classes/Media.php @@ -292,7 +292,7 @@ class MediaCore $url_data = parse_url($folder.$file); $file_uri = _PS_ROOT_DIR_.Tools::str_replace_once(__PS_BASE_URI__, DIRECTORY_SEPARATOR, $url_data['path']); $ui_tmp = array(); - if (self::$jquery_ui_dependencies[$component]['theme'] && $check_dependencies) + if (isset(Media::$jquery_ui_dependencies[$component]) && Media::$jquery_ui_dependencies[$component]['theme'] && $check_dependencies) { $theme_css = Media::getCSSPath($folder.'themes/'.$theme.'/jquery.ui.theme.css'); $comp_css = Media::getCSSPath($folder.'themes/'.$theme.'/jquery.'.$component.'.css'); diff --git a/controllers/admin/AdminModulesController.php b/controllers/admin/AdminModulesController.php index 75edb6847..2b87cdd47 100644 --- a/controllers/admin/AdminModulesController.php +++ b/controllers/admin/AdminModulesController.php @@ -143,7 +143,7 @@ class AdminModulesControllerCore extends AdminController public function setMedia() { parent::setMedia(); - $this->addJqueryPlugin(array('autocomplete', 'fancybox')); + $this->addJqueryPlugin(array('autocomplete', 'fancybox', 'tablefilter')); } public function ajaxProcessRefreshModuleList() diff --git a/js/jquery/plugins/jquery.tablefilter.js b/js/jquery/plugins/jquery.tablefilter.js new file mode 100644 index 000000000..e6af8fd1b --- /dev/null +++ b/js/jquery/plugins/jquery.tablefilter.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2008 Greg Weber greg at gregweber.info + * Dual licensed under the MIT and GPLv2 licenses just as jQuery is: + * http://jquery.org/license + * + * documentation at http://gregweber.info/projects/uitablefilter + * + * allows table rows to be filtered (made invisible) + * + * t = $('table') + * $.uiTableFilter( t, phrase ) + * + * arguments: + * jQuery object containing table rows + * phrase to search for + * optional arguments: + * column to limit search too (the column title in the table header) + * ifHidden - callback to execute if one or more elements was hidden + */ +(function($){$.uiTableFilter=function(jq,phrase,column,ifHidden){var new_hidden=false;if(this.last_phrase===phrase)return false;var phrase_length=phrase.length;var words=phrase.toLowerCase().split(" ");var matches=function(elem){elem.show()};var noMatch=function(elem){elem.hide();new_hidden=true};var getText=function(elem){return elem.text()};if(column){var index=null;jq.find("thead > tr:last > th").each(function(i){if($.trim($(this).text())==column){index=i;return false}});if(index==null)throw"given column: "+ +column+" not found";getText=function(elem){return $(elem.find("td:eq("+index+")")).text()}}if(words.size>1&&phrase.substr(0,phrase_length-1)===this.last_phrase){if(phrase[-1]===" "){this.last_phrase=phrase;return false}var words=words[-1];matches=function(elem){};var elems=jq.find("tbody:first > tr:visible")}else{new_hidden=true;var elems=jq.find("tbody:first > tr")}elems.each(function(){var elem=$(this);$.uiTableFilter.has_words(getText(elem),words,false)?matches(elem):noMatch(elem)});last_phrase= +phrase;if(ifHidden&&new_hidden)ifHidden();return jq};$.uiTableFilter.last_phrase="";$.uiTableFilter.has_words=function(str,words,caseSensitive){var text=caseSensitive?str:str.toLowerCase();for(var i=0;i