These are with the last commit

This commit is contained in:
Toby Zerner 2015-02-06 10:34:12 +10:30
parent 8bf34eebd0
commit 1c1381ae82
2 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,31 @@
import Ember from 'ember';
import DiscussionResult from '../models/discussion-result';
import PostResult from '../models/post-result';
import PaneableMixin from '../mixins/paneable';
export default Ember.Controller.extend(Ember.Evented, PaneableMixin, {
needs: ['application', 'composer', 'index/index', 'discussion'],
index: Ember.computed.alias('controllers.index/index'),
paneDisabled: Ember.computed.not('index.model.length'),
actions: {
transitionFromBackButton: function() {
this.transitionToRoute('index');
},
loadMore: function() {
this.get('index').send('loadMore');
},
newDiscussion: function() {
var composer = this.get('controllers.composer');
composer.set('minimized', false);
composer.set('showing', true);
composer.set('title', 'Discussion Title'); // needs to be editable
composer.set('delegate', this);
}
}
});

View File

@ -0,0 +1,47 @@
import Ember from 'ember';
import AddCssClassToBodyMixin from '../../mixins/add-css-class-to-body';
export default Ember.Route.extend(AddCssClassToBodyMixin, {
cachedModel: null,
model: function() {
if (!this.get('cachedModel')) {
this.set('cachedModel', Ember.ArrayProxy.create());
}
return Ember.RSVP.resolve(this.get('cachedModel'));
},
setupController: function(controller, model) {
controller.set('model', model);
if (!model.get('length')) {
controller.set('resultsLoading', true);
controller.getResults().then(function(results) {
controller
.set('resultsLoading', false)
.set('meta', results.get('meta'))
.set('model.content', results);
});
}
},
deactivate: function() {
this._super();
this.controllerFor('application').set('backButtonTarget', this.controllerFor('index'));
},
actions: {
refresh: function() {
this.set('cachedModel', null);
this.refresh();
},
didTransition: function() {
// @todo only if it's not a new discussion
this.controllerFor('composer').send('minimize');
this.controllerFor('index').set('paned', false);
this.controllerFor('index').set('paneShowing', false);
}
}
});