mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
REFACTOR: Move composer messages to store
This commit is contained in:
@@ -69,13 +69,17 @@ export default Ember.ArrayController.extend({
|
||||
queryFor(composer) {
|
||||
if (this.get('checkedMessages')) { return; }
|
||||
|
||||
const self = this;
|
||||
var queuedForTyping = self.get('queuedForTyping');
|
||||
const args = { composerAction: composer.get('action') };
|
||||
const topicId = composer.get('topic.id');
|
||||
const postId = composer.get('post.id');
|
||||
|
||||
Discourse.ComposerMessage.find(composer).then(messages => {
|
||||
self.set('checkedMessages', true);
|
||||
messages.forEach(msg => msg.wait_for_typing ? queuedForTyping.addObject(msg) : self.send("popup", msg));
|
||||
if (topicId) { args.topic_id = topicId; }
|
||||
if (postId) { args.post_id = postId; }
|
||||
|
||||
const queuedForTyping = this.get('queuedForTyping');
|
||||
this.store.findAll('composer-message', args).then(messages => {
|
||||
this.set('checkedMessages', true);
|
||||
messages.forEach(msg => msg.wait_for_typing ? queuedForTyping.addObject(msg) : this.send('popup', msg));
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -43,7 +43,6 @@ function loadDraft(store, opts) {
|
||||
|
||||
export default Ember.Controller.extend({
|
||||
needs: ['modal', 'topic', 'composer-messages', 'application'],
|
||||
|
||||
replyAsNewTopicDraft: Em.computed.equal('model.draftKey', Composer.REPLY_AS_NEW_TOPIC_KEY),
|
||||
checkedMessages: false,
|
||||
|
||||
@@ -395,7 +394,8 @@ export default Ember.Controller.extend({
|
||||
|
||||
let message = this.get('similarTopicsMessage');
|
||||
if (!message) {
|
||||
message = Discourse.ComposerMessage.create({
|
||||
message = this.store.createRecord('composer-message', {
|
||||
id: 'similar_topics',
|
||||
templateName: 'composer/similar-topics',
|
||||
extraClass: 'similar-topics'
|
||||
});
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
/**
|
||||
Represents a pop up message displayed over the composer
|
||||
|
||||
@class ComposerMessage
|
||||
@extends Ember.Object
|
||||
@namespace Discourse
|
||||
@module Discourse
|
||||
**/
|
||||
Discourse.ComposerMessage = Em.Object.extend({});
|
||||
|
||||
Discourse.ComposerMessage.reopenClass({
|
||||
/**
|
||||
Look for composer messages given the current composing settings.
|
||||
|
||||
@method find
|
||||
@param {Discourse.Composer} composer The current composer
|
||||
@returns {Discourse.ComposerMessage} the composer message to display (or null)
|
||||
**/
|
||||
find: function(composer) {
|
||||
|
||||
var data = { composerAction: composer.get('action') },
|
||||
topicId = composer.get('topic.id'),
|
||||
postId = composer.get('post.id');
|
||||
|
||||
if (topicId) { data.topic_id = topicId; }
|
||||
if (postId) { data.post_id = postId; }
|
||||
|
||||
return Discourse.ajax('/composer-messages', { data: data }).then(function (messages) {
|
||||
return messages.map(function (message) {
|
||||
return Discourse.ComposerMessage.create(message);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user