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