mirror of
https://github.com/flarum/framework.git
synced 2024-11-28 20:16:08 +08:00
These are with the last commit
This commit is contained in:
parent
8bf34eebd0
commit
1c1381ae82
31
framework/core/ember/app/controllers/index.js
Normal file
31
framework/core/ember/app/controllers/index.js
Normal 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);
|
||||
}
|
||||
}
|
||||
});
|
47
framework/core/ember/app/routes/index/index.js
Normal file
47
framework/core/ember/app/routes/index/index.js
Normal 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);
|
||||
}
|
||||
}
|
||||
});
|
Loading…
Reference in New Issue
Block a user