2015-02-13 07:22:32 +03:00
import Ember from 'ember' ;
2015-05-26 05:10:50 +03:00
export default Ember . Controller . extend ( {
notifications : Ember . inject . service ( ) ,
2014-06-06 05:18:03 +04:00
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' ) ;
}
if ( ! transition || ! editorController ) {
2015-06-19 00:56:18 +03:00
this . get ( 'notifications' ) . showNotification ( 'Sorry, there was an error in the application. Please let the Ghost team know what happened.' , { type : 'error' } ) ;
2014-10-25 01:09:50 +04:00
2014-06-06 05:18:03 +04:00
return true ;
}
// definitely want to clear the data store and post of any unsaved, client-generated tags
2014-06-19 22:31:56 +04:00
model . updateTags ( ) ;
2014-06-06 05:18:03 +04:00
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' ,
2014-08-06 15:34:08 +04:00
buttonClass : 'btn btn-red'
2014-06-06 05:18:03 +04:00
} ,
reject : {
2014-06-26 12:00:50 +04:00
text : 'Stay' ,
2014-08-06 15:34:08 +04:00
buttonClass : 'btn btn-default btn-minor'
2014-06-06 05:18:03 +04:00
}
}
} ) ;