0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-20 22:42:53 -05:00

Merge pull request #677 from jfi/666

This commit is contained in:
Hannah Wolfe 2013-09-17 21:38:14 +01:00
commit a42acd486b

View file

@ -76,8 +76,13 @@
}, },
notificationMap: { notificationMap: {
'draft': 'saved as a draft', 'draft': 'Your post has been saved as a draft.',
'published': 'published' 'published': 'Your post has been published.'
},
errorMap: {
'draft': 'Your post could not be saved as a draft.',
'published': 'Your post could not be published.'
}, },
initialize: function () { initialize: function () {
@ -104,22 +109,23 @@
model = self.model, model = self.model,
prevStatus = model.get('status'), prevStatus = model.get('status'),
currentIndex = keys.indexOf(prevStatus), currentIndex = keys.indexOf(prevStatus),
newIndex; newIndex,
status;
newIndex = currentIndex + 1 > keys.length - 1 ? 0 : currentIndex + 1; newIndex = currentIndex + 1 > keys.length - 1 ? 0 : currentIndex + 1;
status = keys[newIndex];
this.setActiveStatus(keys[newIndex], this.statusMap[keys[newIndex]], prevStatus); this.setActiveStatus(keys[newIndex], this.statusMap[status], prevStatus);
this.savePost({ this.savePost({
status: keys[newIndex] status: keys[newIndex]
}).then(function () { }).then(function () {
Ghost.notifications.addItem({ Ghost.notifications.addItem({
type: 'success', type: 'success',
message: 'Your post has been ' + self.notificationMap[newIndex] + '.', message: self.notificationMap[status],
status: 'passive' status: 'passive'
}); });
}, function (xhr) { }, function (xhr) {
var status = keys[newIndex];
// Show a notification about the error // Show a notification about the error
self.reportSaveError(xhr, model, status); self.reportSaveError(xhr, model, status);
}); });
@ -174,20 +180,17 @@
updatePost: function (status) { updatePost: function (status) {
var self = this, var self = this,
model = this.model, model = this.model,
prevStatus = model.get('status'), prevStatus = model.get('status');
notificationMap = this.notificationMap;
// Default to same status if not passed in // Default to same status if not passed in
status = status || prevStatus; status = status || prevStatus;
model.trigger('willSave');
this.savePost({ this.savePost({
status: status status: status
}).then(function () { }).then(function () {
Ghost.notifications.addItem({ Ghost.notifications.addItem({
type: 'success', type: 'success',
message: ['Your post has been ', notificationMap[status], '.'].join(''), message: self.notificationMap[status],
status: 'passive' status: 'passive'
}); });
// Refresh publish button and all relevant controls with updated status. // Refresh publish button and all relevant controls with updated status.
@ -207,8 +210,6 @@
this.model.unset(item); this.model.unset(item);
}, this); }, this);
var saved = this.model.save(_.extend({ var saved = this.model.save(_.extend({
title: $('#entry-title').val(), title: $('#entry-title').val(),
// TODO: The content_raw getter here isn't great, shouldn't rely on currentView. // TODO: The content_raw getter here isn't great, shouldn't rely on currentView.
@ -224,16 +225,14 @@
}, },
reportSaveError: function (response, model, status) { reportSaveError: function (response, model, status) {
var title = model.get('title') || '[Untitled]', var message = this.errorMap[status];
notificationStatus = this.notificationMap[status],
message = 'Your post: ' + title + ' has not been ' + notificationStatus;
if (response) { if (response) {
// Get message from response // Get message from response
message = Ghost.Views.Utils.getRequestErrorMessage(response); message += " " + Ghost.Views.Utils.getRequestErrorMessage(response);
} else if (model.validationError) { } else if (model.validationError) {
// Grab a validation error // Grab a validation error
message += "; " + model.validationError; message += " " + model.validationError;
} }
Ghost.notifications.addItem({ Ghost.notifications.addItem({