From f887637935261de260158babbce72707a8eaa28c Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 8 Sep 2015 11:34:03 -0400 Subject: [PATCH] Don't use the container to look up the store for drafts --- .../discourse/controllers/composer.js.es6 | 40 +++++++++++++++++- .../discourse/models/composer.js.es6 | 41 ------------------- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/app/assets/javascripts/discourse/controllers/composer.js.es6 b/app/assets/javascripts/discourse/controllers/composer.js.es6 index 8dfd77ba32c..843aae4ee9c 100644 --- a/app/assets/javascripts/discourse/controllers/composer.js.es6 +++ b/app/assets/javascripts/discourse/controllers/composer.js.es6 @@ -2,6 +2,44 @@ import { setting } from 'discourse/lib/computed'; import DiscourseURL from 'discourse/lib/url'; import Quote from 'discourse/lib/quote'; import Draft from 'discourse/models/draft'; +import Composer from 'discourse/models/composer'; + +function loadDraft(store, opts) { + opts = opts || {}; + + let draft = opts.draft; + const draftKey = opts.draftKey; + const draftSequence = opts.draftSequence; + + try { + if (draft && typeof draft === 'string') { + draft = JSON.parse(draft); + } + } catch (error) { + draft = null; + Draft.clear(draftKey, draftSequence); + } + if (draft && ((draft.title && draft.title !== '') || (draft.reply && draft.reply !== ''))) { + const composer = store.createRecord('composer'); + composer.open({ + draftKey, + draftSequence, + action: draft.action, + title: draft.title, + categoryId: draft.categoryId || opts.categoryId, + postId: draft.postId, + archetypeId: draft.archetypeId, + reply: draft.reply, + metaData: draft.metaData, + usernames: draft.usernames, + draft: true, + composerState: Composer.DRAFT, + composerTime: draft.composerTime, + typingTime: draft.typingTime + }); + return composer; + } +} export default Ember.Controller.extend({ needs: ['modal', 'topic', 'composer-messages', 'application'], @@ -438,7 +476,7 @@ export default Ember.Controller.extend({ // Given a potential instance and options, set the model for this composer. _setModel(composerModel, opts) { if (opts.draft) { - composerModel = Discourse.Composer.loadDraft(opts); + composerModel = loadDraft(this.store, opts); if (composerModel) { composerModel.set('topic', opts.topic); } diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6 index 098a3ae22e1..8e02989c878 100644 --- a/app/assets/javascripts/discourse/models/composer.js.es6 +++ b/app/assets/javascripts/discourse/models/composer.js.es6 @@ -690,47 +690,6 @@ const Composer = RestModel.extend({ Composer.reopenClass({ - open(opts) { - const composer = Discourse.__container__.lookup('store:main').createRecord('composer'); - composer.open(opts); - return composer; - }, - - loadDraft(opts) { - opts = opts || {}; - - let draft = opts.draft; - const draftKey = opts.draftKey; - const draftSequence = opts.draftSequence; - - try { - if (draft && typeof draft === 'string') { - draft = JSON.parse(draft); - } - } catch (error) { - draft = null; - Draft.clear(draftKey, draftSequence); - } - if (draft && ((draft.title && draft.title !== '') || (draft.reply && draft.reply !== ''))) { - return this.open({ - draftKey, - draftSequence, - action: draft.action, - title: draft.title, - categoryId: draft.categoryId || opts.categoryId, - postId: draft.postId, - archetypeId: draft.archetypeId, - reply: draft.reply, - metaData: draft.metaData, - usernames: draft.usernames, - draft: true, - composerState: DRAFT, - composerTime: draft.composerTime, - typingTime: draft.typingTime - }); - } - }, - // TODO: Replace with injection create(args) { args = args || {};