mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-24 23:48:13 -05:00
Merge pull request #3963 from jaswilli/issue-3955
Prevent editor title from being overwritten
This commit is contained in:
commit
00ebc9f9ab
3 changed files with 13 additions and 4 deletions
|
@ -5,7 +5,7 @@ import boundOneWay from 'ghost/utils/bound-one-way';
|
||||||
|
|
||||||
// this array will hold properties we need to watch
|
// this array will hold properties we need to watch
|
||||||
// to know if the model has been changed (`controller.isDirty`)
|
// to know if the model has been changed (`controller.isDirty`)
|
||||||
var watchedProps = ['scratch', 'model.isDirty'];
|
var watchedProps = ['scratch', 'titleScratch', 'model.isDirty'];
|
||||||
|
|
||||||
Ember.get(PostModel, 'attributes').forEach(function (name) {
|
Ember.get(PostModel, 'attributes').forEach(function (name) {
|
||||||
watchedProps.push('model.' + name);
|
watchedProps.push('model.' + name);
|
||||||
|
@ -76,7 +76,14 @@ var EditorControllerMixin = Ember.Mixin.create(MarkerManager, {
|
||||||
|
|
||||||
// `updateTags` triggers `isDirty => true`.
|
// `updateTags` triggers `isDirty => true`.
|
||||||
// for a saved model it would otherwise be false.
|
// for a saved model it would otherwise be false.
|
||||||
|
|
||||||
|
// if the two "scratch" properties (title and content) match the model, then
|
||||||
|
// it's ok to set isDirty to false
|
||||||
|
if (this.get('titleScratch') === model.get('title') &&
|
||||||
|
this.get('scratch') === model.get('markdown')) {
|
||||||
|
|
||||||
this.set('isDirty', false);
|
this.set('isDirty', false);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// an ugly hack, but necessary to watch all the model's properties
|
// an ugly hack, but necessary to watch all the model's properties
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import ValidationEngine from 'ghost/mixins/validation-engine';
|
import ValidationEngine from 'ghost/mixins/validation-engine';
|
||||||
import boundOneWay from 'ghost/utils/bound-one-way';
|
|
||||||
import NProgressSaveMixin from 'ghost/mixins/nprogress-save';
|
import NProgressSaveMixin from 'ghost/mixins/nprogress-save';
|
||||||
|
|
||||||
var Post = DS.Model.extend(NProgressSaveMixin, ValidationEngine, {
|
var Post = DS.Model.extend(NProgressSaveMixin, ValidationEngine, {
|
||||||
|
@ -23,7 +22,6 @@ var Post = DS.Model.extend(NProgressSaveMixin, ValidationEngine, {
|
||||||
published_at: DS.attr('moment-date'),
|
published_at: DS.attr('moment-date'),
|
||||||
published_by: DS.belongsTo('user', { async: true }),
|
published_by: DS.belongsTo('user', { async: true }),
|
||||||
tags: DS.hasMany('tag', { embedded: 'always' }),
|
tags: DS.hasMany('tag', { embedded: 'always' }),
|
||||||
titleScratch: boundOneWay('title'),
|
|
||||||
//## Computed post properties
|
//## Computed post properties
|
||||||
isPublished: Ember.computed.equal('status', 'published'),
|
isPublished: Ember.computed.equal('status', 'published'),
|
||||||
isDraft: Ember.computed.equal('status', 'draft'),
|
isDraft: Ember.computed.equal('status', 'draft'),
|
||||||
|
|
|
@ -55,7 +55,11 @@ var EditorEditRoute = Ember.Route.extend(SimpleAuth.AuthenticatedRouteMixin, bas
|
||||||
|
|
||||||
setupController: function (controller, model) {
|
setupController: function (controller, model) {
|
||||||
this._super(controller, model);
|
this._super(controller, model);
|
||||||
|
|
||||||
controller.set('scratch', model.get('markdown'));
|
controller.set('scratch', model.get('markdown'));
|
||||||
|
|
||||||
|
controller.set('titleScratch', model.get('title'));
|
||||||
|
|
||||||
// used to check if anything has changed in the editor
|
// used to check if anything has changed in the editor
|
||||||
controller.set('previousTagNames', model.get('tags').mapBy('name'));
|
controller.set('previousTagNames', model.get('tags').mapBy('name'));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue