This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/components/category-group.js.es6
Régis Hanol 3b6b2770f3 BUGFIX: date of the post in the share dialog is now properly bound
CLEANUP: removed all unused handlebars helpers
REFACTOR: removed 'unbound' prefix (for performance reasons, helpers are unbound by default)
REFACTOR: added 'bound' prefix to bound helpers
REFACTOR: renamed helper using 'foo-bar-foo' syntax (instead of camel case)
2014-06-10 19:04:31 +02:00

47 lines
1.6 KiB
JavaScript

// Compile and memoize a template
var compiled;
function templateFunction() {
compiled = compiled || Handlebars.compile("<div class='autocomplete'>" +
"<ul>" +
"{{#each options}}" +
"<li>" +
"{{category-link-raw this allowUncategorized=true}}" +
"</li>" +
"{{/each}}" +
"</ul>" +
"</div>");
return compiled;
}
export default Ember.Component.extend({
didInsertElement: function(){
var self = this;
this.$('input').autocomplete({
items: this.get('categories'),
single: false,
allowAny: false,
dataSource: function(term){
return Discourse.Category.list().filter(function(category){
var regex = new RegExp(term, "i");
return category.get("name").match(regex) &&
!_.contains(self.get('blacklist') || [], category) &&
!_.contains(self.get('categories'), category) ;
});
},
onChangeItems: function(items) {
var categories = _.map(items, function(link) {
var slug = link.match(/href=['"]\/category\/([^'"]+)/)[1];
return Discourse.Category.findSingleBySlug(slug);
});
self.set("categories", categories);
},
template: templateFunction(),
transformComplete: function(category) {
return Discourse.HTML.categoryBadge(category, {allowUncategorized: true});
}
});
}
});