elofgren: USABILITY: Rename 'Save draft' button to 'Save' and make 'Publish' (will be renamed 'Save & Publish') button save the new draft in addition to publishing it.

Requested here: http://www.silverstripe.com/google-summer-of-code-forum/flat/1654?showPost=1730#post1730 
(merged from branches/gsoc)


git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@41863 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2007-09-15 01:00:03 +00:00
parent 1e54b9a29d
commit 15d40c5cf1
4 changed files with 18 additions and 23 deletions

View File

@ -315,7 +315,7 @@ JS;
} }
if($record->canEdit()) { if($record->canEdit()) {
$actions->push(new FormAction('save','Save draft')); $actions->push(new FormAction('save','Save'));
} }
} }
} }
@ -393,15 +393,6 @@ JS;
return "admin/$action"; return "admin/$action";
} }
public function publish($urlParams, $form) {
$id = $_REQUEST['ID'];
$record = DataObject::get_by_id("SiteTree", $id);
$form->saveInto($record);
$this->performPublish($record);
return $this->tellBrowserAboutPublicationChange($record, "Published '$record->Title' successfully");
}
public function deletefromlive($urlParams, $form) { public function deletefromlive($urlParams, $form) {
$id = $_REQUEST['ID']; $id = $_REQUEST['ID'];
Versioned::reading_stage('Live'); Versioned::reading_stage('Live');

View File

@ -354,7 +354,7 @@ JS;
/** /**
* Save page handler * Save and Publish page handler
*/ */
public function save($urlParams, $form) { public function save($urlParams, $form) {
$className = $this->stat('tree_class'); $className = $this->stat('tree_class');
@ -487,8 +487,13 @@ JS;
} }
// If the 'Save & Publish' button was clicked, also publish the page
return FormResponse::respond(); if (isset($urlParams['publish']) && $urlParams['publish'] == 1) {
$this->performPublish($record);
return $this->tellBrowserAboutPublicationChange($record, "Published '$record->Title' successfully");
} else {
return FormResponse::respond();
}
} }
/** /**

View File

@ -1,13 +1,6 @@
function action_publish_right() { function action_publish_right() {
$('Form_EditForm').notify('BeforeSave'); var publish = true;
Ajax.SubmitForm('Form_EditForm', 'action_publish', { $('Form_EditForm').save(false, null, 'save', publish);
onSuccess : function(response) {
Ajax.Evaluator(response);
},
onFailure : function(response) {
errorMessage('Error publishing content', response);
}
});
} }
function action_revert_right() { function action_revert_right() {
Ajax.SubmitForm('Form_EditForm', 'action_revert', { Ajax.SubmitForm('Form_EditForm', 'action_revert', {

View File

@ -129,8 +129,10 @@ CMSForm.prototype = {
/** /**
* Save the contens of the form, by submitting it and resetting is changed checker * Save the contens of the form, by submitting it and resetting is changed checker
* on success. * on success.
*
* @param publish boolean (optional) whether to publish in addition to saving
*/ */
save: function(ifChanged, callAfter, action) { save: function(ifChanged, callAfter, action, publish) {
_AJAX_LOADING = true; _AJAX_LOADING = true;
if(typeof tinyMCE != 'undefined') tinyMCE.triggerSave(); if(typeof tinyMCE != 'undefined') tinyMCE.triggerSave();
if(!action) action = "save"; if(!action) action = "save";
@ -160,6 +162,10 @@ CMSForm.prototype = {
} else { } else {
var data = this.serializeAllFields() + '&ajax=1&action_' + action + '=1'; var data = this.serializeAllFields() + '&ajax=1&action_' + action + '=1';
} }
if(publish)
{
data += '&publish=1';
}
statusMessage("Saving...", null, true); statusMessage("Saving...", null, true);
new Ajax.Request(this.action, { new Ajax.Request(this.action, {