Merge pull request #3773 from tgxworld/fix_composer_bug
FIX: Composer being abandoned when transiting between routes.
This commit is contained in:
commit
d61cfbe2aa
|
@ -457,8 +457,7 @@ export default Ember.Controller.extend({
|
|||
|
||||
// If we're already open, we don't have to do anything
|
||||
if (composerModel.get('composeState') === Discourse.Composer.OPEN &&
|
||||
composerModel.get('draftKey') === opts.draftKey &&
|
||||
self._isComposerReply(composerModel, opts)) {
|
||||
composerModel.get('draftKey') === opts.draftKey && !opts.action) {
|
||||
return resolve();
|
||||
}
|
||||
|
||||
|
@ -466,7 +465,7 @@ export default Ember.Controller.extend({
|
|||
if (composerModel.get('composeState') === Discourse.Composer.DRAFT &&
|
||||
composerModel.get('draftKey') === opts.draftKey) {
|
||||
composerModel.set('composeState', Discourse.Composer.OPEN);
|
||||
if (self._isComposerReply(composerModel, opts)) return resolve();
|
||||
if (!opts.action) return resolve();
|
||||
}
|
||||
|
||||
// If it's a different draft, cancel it and try opening again.
|
||||
|
@ -489,11 +488,6 @@ export default Ember.Controller.extend({
|
|||
});
|
||||
},
|
||||
|
||||
_isComposerReply(composerModel, opts) {
|
||||
return (composerModel.get('action') === Discourse.Composer.REPLY &&
|
||||
composerModel.get('action') === opts.action);
|
||||
},
|
||||
|
||||
// Given a potential instance and options, set the model for this composer.
|
||||
_setModel(composerModel, opts) {
|
||||
if (opts.draft) {
|
||||
|
|
|
@ -207,12 +207,21 @@ export default Ember.Controller.extend(SelectedPostsCount, BufferedContent, {
|
|||
return bootbox.alert(I18n.t('post.controls.edit_anonymous'));
|
||||
}
|
||||
|
||||
this.get('controllers.composer').open({
|
||||
post: post,
|
||||
action: Discourse.Composer.EDIT,
|
||||
draftKey: post.get('topic.draft_key'),
|
||||
draftSequence: post.get('topic.draft_sequence')
|
||||
});
|
||||
const composer = this.get('controllers.composer'),
|
||||
composerModel = composer.get('model'),
|
||||
opts = {
|
||||
post: post,
|
||||
action: Discourse.Composer.EDIT,
|
||||
draftKey: post.get('topic.draft_key'),
|
||||
draftSequence: post.get('topic.draft_sequence')
|
||||
};
|
||||
|
||||
// Cancel and reopen the composer for the first post
|
||||
if (composerModel && (post.get('firstPost') || composerModel.get('editingPost'))) {
|
||||
composer.cancelComposer().then(() => composer.open(opts));
|
||||
} else {
|
||||
composer.open(opts);
|
||||
}
|
||||
},
|
||||
|
||||
toggleBookmark(post) {
|
||||
|
|
Loading…
Reference in New Issue