Marius Cramer
2015-08-06 37b29231e47a0c4458dc1c15d98588f16f07e1e2
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,9 +33,11 @@
         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',
@@ -50,7 +52,7 @@
      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);
@@ -63,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 {
@@ -94,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">'+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){
@@ -103,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.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 = \'%\';';
@@ -114,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++;
@@ -128,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');
                     }
@@ -150,6 +161,7 @@
            resultBox.fadeIn();
         } else if(searchField.val() == settings.searchFieldWatermark){
            searchField.val('');
            if(settings.minChars == 0) searchField.trigger('keyup');
         } else if (searchField.val() != ''){
            searchField.trigger('keyup');
         }