From ada79260b3211dc99e3b7f84a91a66c8754d6a14 Mon Sep 17 00:00:00 2001 From: Neil Lalonde <neillalonde@gmail.com> Date: Fri, 24 May 2013 17:08:54 -0400 Subject: [PATCH] Change composer error message when title is too long or too short, and make sure the submit button is 'disabled' when title is too long --- app/assets/javascripts/discourse/models/composer.js | 4 +++- app/assets/javascripts/discourse/views/composer_view.js | 6 ++++-- config/locales/client.en.yml | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/models/composer.js b/app/assets/javascripts/discourse/models/composer.js index 860c31ef2..55e7983af 100644 --- a/app/assets/javascripts/discourse/models/composer.js +++ b/app/assets/javascripts/discourse/models/composer.js @@ -164,7 +164,9 @@ Discourse.Composer = Discourse.Model.extend({ // - creating a new topic // - editing the 1st post // - creating a private message - if (this.get('editTitle') && this.get('titleLength') < Discourse.SiteSettings.min_topic_title_length) return true; + if (this.get('editTitle') && + (this.get('titleLength') < Discourse.SiteSettings.min_topic_title_length || + this.get('titleLength') > Discourse.SiteSettings.max_topic_title_length) ) return true; // Need at least one user when sending a private message if (this.get('creatingPrivateMessage') && (this.get('targetUsernames').trim() + ',').indexOf(',') === 0) return true; diff --git a/app/assets/javascripts/discourse/views/composer_view.js b/app/assets/javascripts/discourse/views/composer_view.js index a76ca09f9..376a9895d 100644 --- a/app/assets/javascripts/discourse/views/composer_view.js +++ b/app/assets/javascripts/discourse/views/composer_view.js @@ -375,8 +375,10 @@ Discourse.ComposerView = Discourse.View.extend({ var title = this.get('content.title'), reason; if( !title || title.length < 1 ){ reason = Em.String.i18n('composer.error.title_missing'); - } else if( title.length < Discourse.SiteSettings.min_topic_title_length || title.length > Discourse.SiteSettings.max_topic_title_length ) { - reason = Em.String.i18n('composer.error.title_length', {min: Discourse.SiteSettings.min_topic_title_length, max: Discourse.SiteSettings.max_topic_title_length}) + } else if( title.length < Discourse.SiteSettings.min_topic_title_length ) { + reason = Em.String.i18n('composer.error.title_too_short', {min: Discourse.SiteSettings.min_topic_title_length}) + } else if( title.length > Discourse.SiteSettings.max_topic_title_length ) { + reason = Em.String.i18n('composer.error.title_too_long', {max: Discourse.SiteSettings.max_topic_title_length}) } if( reason ) { diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 7f242843f..13df4f77b 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -340,7 +340,8 @@ en: error: title_missing: "Title is required." - title_length: "Title needs between {{min}} and {{max}} characters." + title_too_short: "Title must be at least {{min}} characters long." + title_too_long: "Title must be less than {{max}} characters long." post_missing: "Post can't be empty." post_length: "Post must be at least {{min}} characters long." category_missing: "You must choose a category."