mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
eb949aafae
closes #2426, closes #2781, closes #2913 - Concatenate vendor files on change of js in core/shared/ - Add all the markerManager stuff to its own mixin - make markers a shared object for all that mix it in. makes it easier to use helper functions in different modules - add getMarkdown method, returns object with two keys holding the markdown: one with markers, the other without - Clear markers when codemirror is destroyed - make Editor subcomponents communicate through the Editor Controller - Set Codemirror and html preview shared scrolling - Set CodeMirror, html preview css scroll class with util - Create 'scratch' property in Editor controller; prevents a model save wiping image markers due to markdown bindings - Add editor and html preview actions to handle img upload start/finish - disable codemirror when an image is being uploaded, enables on success or failure - Fix editor wordcount when there are 0 words - Add modal dialog when transitioning out of the editor with an unsaved post - Add window.onbeforeunload handling with `.unloadDirtyMessage()` on editor controller - and various other things
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
var LeaveEditorController = Ember.Controller.extend({
|
|
args: Ember.computed.alias('model'),
|
|
|
|
actions: {
|
|
confirmAccept: function () {
|
|
var args = this.get('args'),
|
|
editorController,
|
|
model,
|
|
transition;
|
|
|
|
if (Ember.isArray(args)) {
|
|
editorController = args[0];
|
|
transition = args[1];
|
|
model = editorController.get('model');
|
|
}
|
|
|
|
// @TODO: throw some kind of error here? return true will send it upward?
|
|
if (!transition || !editorController) {
|
|
return true;
|
|
}
|
|
|
|
// definitely want to clear the data store and post of any unsaved, client-generated tags
|
|
editorController.updateTags();
|
|
|
|
if (model.get('isNew')) {
|
|
// the user doesn't want to save the new, unsaved post, so delete it.
|
|
model.deleteRecord();
|
|
} else {
|
|
// roll back changes on model props
|
|
model.rollback();
|
|
}
|
|
|
|
// setting isDirty to false here allows willTransition on the editor route to succeed
|
|
editorController.set('isDirty', false);
|
|
|
|
// since the transition is now certain to complete, we can unset window.onbeforeunload here
|
|
window.onbeforeunload = null;
|
|
|
|
transition.retry();
|
|
},
|
|
|
|
confirmReject: function () {
|
|
|
|
}
|
|
},
|
|
|
|
confirm: {
|
|
accept: {
|
|
text: 'Leave',
|
|
buttonClass: 'button-delete'
|
|
},
|
|
reject: {
|
|
text: 'Cancel',
|
|
buttonClass: 'button'
|
|
}
|
|
}
|
|
});
|
|
|
|
export default LeaveEditorController;
|