From 32dcc8752f280299f0e364ccebcc092db8f2cb4e Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Tue, 05 Apr 2016 12:17:42 -0400
Subject: [PATCH] Changed autodetect messages from WARN to INFO in non forced mode.
---
interface/web/js/jquery.ispconfigsearch.js | 38 +++++++++++++++++++++++++++++---------
1 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/interface/web/js/jquery.ispconfigsearch.js b/interface/web/js/jquery.ispconfigsearch.js
index 211dcd7..a26dc12 100644
--- a/interface/web/js/jquery.ispconfigsearch.js
+++ b/interface/web/js/jquery.ispconfigsearch.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2012, ISPConfig UG
+Copyright (c) 2012, ISPConfig UG (haftungsbeschränkt)
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -33,11 +33,15 @@
timeout: 500,
minChars: 2,
resultBox: '-resultbox',
+ resultBoxPosition: 's', // n = north, e = east, s = south, w = west
cssPrefix: 'gs-',
fillSearchField: false,
fillSearchFieldWith: 'title',
- resultsText: '$ of % results',
+ ResultsTextPrefix: '',
+ resultsLimit: '$ of % results',
noResultsText: 'No results.',
+ noResultsLimit: '0 results',
+ searchFieldWatermark: 'Search',
displayEmptyCategories: false,
runJS: true
};
@@ -48,6 +52,7 @@
settings.resultBox = $(this).attr('id')+settings.resultBox;
$(this).attr('autocomplete', 'off');
+ if($(this).val() == '') $(this).val(settings.searchFieldWatermark);
$(this).wrap('<div class="'+settings.cssPrefix+'container" />');
$(this).after('<ul id="'+settings.resultBox+'" class="'+settings.cssPrefix+'resultbox" style="display:none;"></ul>');
var searchField = $(this);
@@ -60,7 +65,7 @@
// query value
var q = searchField.val();
- if (settings.minChars > q.length || q == ''){
+ if (settings.minChars > q.length || (q == '' && settings.minChars > 0)){
resultBox.fadeOut();
resetTimer(timeout);
} else {
@@ -91,7 +96,7 @@
}
if (!resultsFound){
- output += '<li class="'+settings.cssPrefix+'cheader"><p class="'+settings.cssPrefix+'cheader-title">'+settings.noResultsText+'</p><p class="'+settings.cssPrefix+'cheader-limit">0 results</p></li>';
+ output += '<li class="'+settings.cssPrefix+'cheader"><p class="'+settings.cssPrefix+'cheader-title">'+(settings.ResultsTextPrefix == '' ? '' : settings.ResultsTextPrefix+': ')+settings.noResultsText+'</p><p class="'+settings.cssPrefix+'cheader-limit">'+settings.noResultsLimit+'</p></li>';
} else {
$.each(data, function(i, category){
@@ -100,7 +105,7 @@
var limit = category['cheader']['limit'];
var cnt = 0;
- output += '<li class="'+settings.cssPrefix+'cheader"><p class="'+settings.cssPrefix+'cheader-title">'+category['cheader']['title']+'</p><p class="'+settings.cssPrefix+'cheader-limit">'+settings.resultsText.replace("%", category['cheader']['total']).replace("$", (category['cheader']['limit'] < category['cdata'].length ? category['cheader']['limit'] : category['cdata'].length))+'</p></li>';
+ output += '<li class="'+settings.cssPrefix+'cheader"><p class="'+settings.cssPrefix+'cheader-title">'+(settings.ResultsTextPrefix == '' ? '' : settings.ResultsTextPrefix+': ')+category['cheader']['title']+'</p><p class="'+settings.cssPrefix+'cheader-limit">'+settings.resultsLimit.replace("%", category['cheader']['total']).replace("$", (category['cheader']['limit'] < category['cdata'].length ? category['cheader']['limit'] : category['cdata'].length))+'</p></li>';
var fillSearchFieldCode = (settings.fillSearchField) ? 'document.getElementById(\''+searchField.attr('id')+'\').value = \'%\';' : '';
//var fillSearchFieldCode = 'document.getElementById(\''+searchField.attr('id')+'\').value = \'%\';';
@@ -111,12 +116,10 @@
var link = '<a href="'+((item['url'] != undefined) ? item['url'] : 'javascript:void(0);')+'" '+((item['onclick'] != undefined) ? ' onclick="'+fillSearchFieldCode.replace("%", item[settings.fillSearchFieldWith])+(settings.runJS ? item['onclick'] : '')+'"' : '')+((item['target'] != undefined) ? ' target="'+item['target']+'"' : '')+'>';
output += '<li class="'+settings.cssPrefix+'cdata">'+link+"\n";
- output += '<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td>';
output += '<p>';
- output += (item['title'] != undefined) ? '<span class="'+settings.cssPrefix+'cdata-title">'+item['title']+"</span><br />\n" : '';
+ output += (item['title'] != undefined) ? '<span class="'+settings.cssPrefix+'cdata-title">'+item['title']+"</span>\n": '';
output += (item['description'] != undefined) ? ''+item['description']+''+"\n" : '';
output += '</p>'+"\n";
- output += '</td></tr></table>';
output += '</a></li>'+"\n";
}
cnt++;
@@ -125,7 +128,18 @@
});
}
- resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top+searchField.outerHeight(), 'right' : '0'}).fadeIn();
+ //resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top+searchField.outerHeight(), 'right' : '0'}).fadeIn();
+ if(settings.resultBoxPosition == 'n'){
+ resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top-resultBox.outerHeight(), 'left' : searchField.position().left+searchField.outerWidth()-resultBox.outerWidth()}).fadeIn();
+ } else if(settings.resultBoxPosition == 'e'){
+ resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top, 'left' : searchField.position().left+searchField.outerWidth()}).fadeIn();
+ } else if(settings.resultBoxPosition == 's'){
+ resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top+searchField.outerHeight(), 'left' : searchField.position().left+searchField.outerWidth()-resultBox.outerWidth()}).fadeIn();
+ } else if(settings.resultBoxPosition == 'w'){
+ resultBox.html(output).css({'position' : 'absolute', 'top' : searchField.position().top, 'left' : searchField.position().left-resultBox.outerWidth()}).fadeIn();
+ } else {
+ resultBox.html(output).fadeIn();
+ }
searchField.removeClass(settings.cssPrefix+'loading');
}
@@ -137,11 +151,17 @@
searchField.blur(function(){
resultBox.fadeOut();
+ if (searchField.val() == ''){
+ searchField.val(settings.searchFieldWatermark);
+ }
});
searchField.focus(function(){
if (searchField.val() == previousQ && searchField.val() != ''){
resultBox.fadeIn();
+ } else if(searchField.val() == settings.searchFieldWatermark){
+ searchField.val('');
+ if(settings.minChars == 0) searchField.trigger('keyup');
} else if (searchField.val() != ''){
searchField.trigger('keyup');
}
--
Gitblit v1.9.1