| | |
| | | /* |
| | | 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, |
| | |
| | | timeout: 500, |
| | | minChars: 2, |
| | | resultBox: '-resultbox', |
| | | resultBoxPosition: 's', // n = north, e = east, s = south, w = west |
| | | cssPrefix: 'gs-', |
| | | fillSearchField: false, |
| | | fillSearchFieldWith: 'title', |
| | | ResultsTextPrefix: '', |
| | | resultsLimit: '$ of % results', |
| | | noResultsText: 'No results.', |
| | | noResultsLimit: '0 results', |
| | |
| | | settings.resultBox = $(this).attr('id')+settings.resultBox; |
| | | |
| | | $(this).attr('autocomplete', 'off'); |
| | | $(this).val(settings.searchFieldWatermark); |
| | | 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); |
| | |
| | | // 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 { |
| | |
| | | } |
| | | |
| | | if (!resultsFound){ |
| | | output += '<li class="'+settings.cssPrefix+'cheader"><p class="'+settings.cssPrefix+'cheader-title">'+settings.noResultsText+'</p><p class="'+settings.cssPrefix+'cheader-limit">'+settings.noResultsLimit+'</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){ |
| | |
| | | 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.resultsLimit.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 = \'%\';'; |
| | |
| | | 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++; |
| | |
| | | }); |
| | | } |
| | | |
| | | 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'); |
| | | } |
| | |
| | | resultBox.fadeIn(); |
| | | } else if(searchField.val() == settings.searchFieldWatermark){ |
| | | searchField.val(''); |
| | | if(settings.minChars == 0) searchField.trigger('keyup'); |
| | | } else if (searchField.val() != ''){ |
| | | searchField.trigger('keyup'); |
| | | } |