Files
dss/static/js/app/views/widgets/searchView.js
2013-08-19 20:39:02 +01:00

71 lines
2.3 KiB
JavaScript

// Generated by CoffeeScript 1.3.3
(function() {
var __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
define(['jquery', 'underscore', 'marionette', 'vent', 'text!/tpl/SearchView', 'text!/tpl/SearchResultView', 'typeahead'], function($, _, Marionette, vent, Template, SearchResultView) {
var SearchView;
SearchView = (function(_super) {
__extends(SearchView, _super);
function SearchView() {
return SearchView.__super__.constructor.apply(this, arguments);
}
SearchView.prototype.template = _.template(Template);
SearchView.prototype.ui = {
searchText: '#search-text'
};
SearchView.prototype.engine = {
compile: function(template) {
var compiled;
compiled = _.template(template);
return {
render: function(context) {
return compiled(context);
}
};
}
};
SearchView.prototype.onShow = function() {
var t;
if (typeof typeahead !== "undefined" && typeahead !== null) {
t = $('#search-text', this.el).typeahead({
name: "search",
engine: this.engine,
valueKey: "title",
template: SearchResultView,
remote: {
url: "/api/v1/mix/search?q=%QUERY",
dataType: "json",
filter: function(parsedResponse) {
return parsedResponse.objects;
}
}
});
$('.tt-hint', this.el).addClass('search-query');
$('.tt-hint', this.el).addClass('span3');
return t.on({
'typeahead:selected': function(event, datum, dataset_name) {
vent.trigger('navigate:mix', datum.slug);
$('#search-text', this.el).blur();
return $('.tt-hint', this.el).blur();
}
});
} else {
return console.log("Typeahead disabled");
}
};
return SearchView;
})(Marionette.CompositeView);
return SearchView;
});
}).call(this);