From 7f4dd7279b6620fd70c844667afce37e8c4bddd7 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Sun, 16 Sep 2007 02:32:33 +0000 Subject: [PATCH] elofgren: USABILITY: Make 'Add new draft' the default action for 'Create...' in the Newsletter section. Also make 'Add new draft' be selected whenever a selection is made in the left tree. Only select 'Add new type' by default if there are no Newsletter types. This will reduce confusion and make the more common 'Add new draft' action easier since it will be the default. Also select the 'Add new draft' option after a Newsletter type is added since this will be the next logical action. This fixes GSoC trac ticket: http://support.silverstripe.com/gsoc/ticket/70 (merged from branches/gsoc) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@42061 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- javascript/NewsletterAdmin_left.js | 19 ++++++++++++++++++- templates/Includes/NewsletterAdmin_left.ss | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/javascript/NewsletterAdmin_left.js b/javascript/NewsletterAdmin_left.js index 36b0b558..b7afa5cf 100755 --- a/javascript/NewsletterAdmin_left.js +++ b/javascript/NewsletterAdmin_left.js @@ -72,6 +72,8 @@ SiteTree.prototype = { Element.addClassName(mailingListNode,'nodelete'); this.appendTreeNode( typeNode ); this.changeCurrentTo( typeNode ); + // Change the 'Create...' drop-down to 'Add a draft' since this will be the logical next action after a Newsletter type is created + $('add_type').value = 'draft'; } } @@ -190,6 +192,8 @@ deletedraft = { } SiteTreeNode.prototype.onselect = function() { + // Change the 'Create...' drop-down to 'Add a draft' whenever a selection is made in the left tree + $('add_type').value = 'draft'; $('sitetree').changeCurrentTo(this); if($('sitetree').notify('SelectionChanged', this)) { autoSave(true, this.getPageFromServer.bind(this)); @@ -259,7 +263,20 @@ AddForm.applyTo('#addtype'); AddForm.prototype = { initialize: function () { Observable.applyTo($(_HANDLER_FORMS[this.id])); - this.getElementsByTagName('button')[0].onclick = returnFalse; + this.getElementsByTagName('button')[0].onclick = function() { + var st = $('sitetree'); + if (st) { + // Select 'Add new draft' if the left tree is not empty, + // because, most likely, the user will want to add a new draft if they already have a newsletter type + if (typeof st.lastTreeNode() != 'undefined') { + $('add_type').value = 'draft'; + } else { + $('add_type').value = 'type'; + } + } else { + $('add_type').value = 'type'; + } + } $(_HANDLER_FORMS[this.id]).onsubmit = this.form_submit; }, diff --git a/templates/Includes/NewsletterAdmin_left.ss b/templates/Includes/NewsletterAdmin_left.ss index 94047a3f..9a9789f8 100755 --- a/templates/Includes/NewsletterAdmin_left.ss +++ b/templates/Includes/NewsletterAdmin_left.ss @@ -33,8 +33,8 @@ ul.tree li.MailType span.Sent a {