Renamed the uikit lib folders. Resolved the gh-188 by updateing the note. Resolved gh-92 by implementation of the library manager in the compiler.
This commit is contained in:
92
admin/custom/uikit-v2/js/components/search.js
Normal file
92
admin/custom/uikit-v2/js/components/search.js
Normal file
@ -0,0 +1,92 @@
|
||||
/*! UIkit 2.27.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
||||
(function(addon) {
|
||||
|
||||
var component;
|
||||
|
||||
if (window.UIkit2) {
|
||||
component = addon(UIkit2);
|
||||
}
|
||||
|
||||
if (typeof define == 'function' && define.amd) {
|
||||
define('uikit-search', ['uikit'], function(){
|
||||
return component || addon(UIkit2);
|
||||
});
|
||||
}
|
||||
|
||||
})(function(UI){
|
||||
|
||||
"use strict";
|
||||
|
||||
UI.component('search', {
|
||||
defaults: {
|
||||
msgResultsHeader : 'Search Results',
|
||||
msgMoreResults : 'More Results',
|
||||
msgNoResults : 'No results found',
|
||||
template : '<ul class="uk-nav uk-nav-search uk-autocomplete-results">\
|
||||
{{#msgResultsHeader}}<li class="uk-nav-header uk-skip">{{msgResultsHeader}}</li>{{/msgResultsHeader}}\
|
||||
{{#items && items.length}}\
|
||||
{{~items}}\
|
||||
<li data-url="{{!$item.url}}">\
|
||||
<a href="{{!$item.url}}">\
|
||||
{{{$item.title}}}\
|
||||
{{#$item.text}}<div>{{{$item.text}}}</div>{{/$item.text}}\
|
||||
</a>\
|
||||
</li>\
|
||||
{{/items}}\
|
||||
{{#msgMoreResults}}\
|
||||
<li class="uk-nav-divider uk-skip"></li>\
|
||||
<li class="uk-search-moreresults" data-moreresults="true"><a href="#" onclick="jQuery(this).closest(\'form\').submit();">{{msgMoreResults}}</a></li>\
|
||||
{{/msgMoreResults}}\
|
||||
{{/end}}\
|
||||
{{^items.length}}\
|
||||
{{#msgNoResults}}<li class="uk-skip"><a>{{msgNoResults}}</a></li>{{/msgNoResults}}\
|
||||
{{/end}}\
|
||||
</ul>',
|
||||
|
||||
renderer: function(data) {
|
||||
|
||||
var opts = this.options;
|
||||
|
||||
this.dropdown.append(this.template({items:data.results || [], msgResultsHeader:opts.msgResultsHeader, msgMoreResults: opts.msgMoreResults, msgNoResults: opts.msgNoResults}));
|
||||
this.show();
|
||||
}
|
||||
},
|
||||
|
||||
boot: function() {
|
||||
|
||||
// init code
|
||||
UI.$html.on('focus.search.uikit', '[data-uk-search]', function(e) {
|
||||
var ele =UI.$(this);
|
||||
|
||||
if (!ele.data('search')) {
|
||||
UI.search(ele, UI.Utils.options(ele.attr('data-uk-search')));
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
init: function() {
|
||||
var $this = this;
|
||||
|
||||
this.autocomplete = UI.autocomplete(this.element, this.options);
|
||||
|
||||
this.autocomplete.dropdown.addClass('uk-dropdown-search');
|
||||
|
||||
this.autocomplete.input.on("keyup", function(){
|
||||
$this.element[$this.autocomplete.input.val() ? 'addClass':'removeClass']('uk-active');
|
||||
}).closest("form").on("reset", function(){
|
||||
$this.value = '';
|
||||
$this.element.removeClass('uk-active');
|
||||
});
|
||||
|
||||
this.on('selectitem.uk.autocomplete', function(e, data) {
|
||||
if (data.url) {
|
||||
location.href = data.url;
|
||||
} else if(data.moreresults) {
|
||||
$this.autocomplete.input.closest('form').submit();
|
||||
}
|
||||
});
|
||||
|
||||
this.element.data('search', this);
|
||||
}
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user