work-in-progress full page search
This commit is contained in:
@@ -1,11 +1,25 @@
|
||||
import DiscourseController from 'discourse/controllers/controller';
|
||||
|
||||
export default DiscourseController.extend({
|
||||
needs: ['discovery', 'discovery/topics'],
|
||||
categories: function() {
|
||||
return Discourse.Category.list();
|
||||
}.property(),
|
||||
|
||||
navItems: function() {
|
||||
return Discourse.NavItem.buildList();
|
||||
}.property()
|
||||
return Discourse.NavItem.buildList(null, {filterMode: this.get('filterMode')});
|
||||
}.property('filterMode'),
|
||||
|
||||
isSearch: Em.computed.equal('filterMode', 'search'),
|
||||
|
||||
searchTerm: Em.computed.alias('controllers.discovery/topics.model.params.search'),
|
||||
|
||||
actions: {
|
||||
search: function(){
|
||||
var discovery = this.get('controllers.discovery/topics');
|
||||
var model = discovery.get('model');
|
||||
discovery.set('search', this.get("searchTerm"));
|
||||
model.refreshSort();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -84,7 +84,15 @@ Discourse.NavItem.reopenClass({
|
||||
args = args || {};
|
||||
if (category) { args.category = category }
|
||||
|
||||
return Discourse.SiteSettings.top_menu.split("|").map(function(i) {
|
||||
var items = Discourse.SiteSettings.top_menu.split("|");
|
||||
|
||||
if (args.filterMode && !_.some(items, function(i){
|
||||
return i.indexOf(args.filterMode) !== -1;
|
||||
})) {
|
||||
items.push(args.filterMode);
|
||||
}
|
||||
|
||||
return items.map(function(i) {
|
||||
return Discourse.NavItem.fromText(i, args);
|
||||
}).filter(function(i) {
|
||||
return i !== null && !(category && i.get("name").indexOf("categor") === 0);
|
||||
|
||||
@@ -41,8 +41,8 @@ Discourse.TopicList = Discourse.Model.extend({
|
||||
var self = this,
|
||||
params = this.get('params');
|
||||
|
||||
params.order = order;
|
||||
params.ascending = ascending;
|
||||
params.order = order || params.order;
|
||||
params.ascending = ascending || params.ascending || true;
|
||||
|
||||
this.set('loaded', false);
|
||||
var finder = finderFor(this.get('filter'), params);
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
{{#if isSearch}}
|
||||
<div class="search row">
|
||||
{{input type="text" value=searchTerm class="input-xxlarge search" action="search"}}
|
||||
<button {{action "search"}} class="btn btn-primary"><i class='fa fa-search'></i></button>
|
||||
</div>
|
||||
{{else}}
|
||||
{{bread-crumbs categories=categories}}
|
||||
|
||||
<ul class="nav nav-pills" id='navigation-bar'>
|
||||
@@ -10,3 +16,4 @@
|
||||
{{#if canCreateTopic}}
|
||||
<button id="create-topic" class='btn btn-default' {{action "createTopic"}}><i class='fa fa-plus'></i>{{i18n 'topic.create'}}</button>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
Reference in New Issue
Block a user