From 439ac95b7302ad741aa2b1999c039c3e491742b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Tue, 12 Mar 2013 23:54:29 +0100 Subject: [PATCH] the composer will now count only significant whitespaces --- app/assets/javascripts/discourse/models/composer.js | 4 ++-- spec/javascripts/models/composer_spec.js | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/models/composer.js b/app/assets/javascripts/discourse/models/composer.js index 247b76772..9f7fdb2f0 100644 --- a/app/assets/javascripts/discourse/models/composer.js +++ b/app/assets/javascripts/discourse/models/composer.js @@ -478,7 +478,7 @@ Discourse.Composer = Discourse.Model.extend({ }, /** - Computes the length of the reply minus the quote(s). + Computes the length of the reply minus the quote(s) and non-significant whitespaces @property replyLength **/ @@ -486,7 +486,7 @@ Discourse.Composer = Discourse.Model.extend({ var reply = this.get('reply'); if(!reply) reply = ""; while (Discourse.BBCode.QUOTE_REGEXP.test(reply)) { reply = reply.replace(Discourse.BBCode.QUOTE_REGEXP, ""); } - return reply.trim().length; + return reply.replace(/\s+/img, " ").trim().length; }.property('reply') }); diff --git a/spec/javascripts/models/composer_spec.js b/spec/javascripts/models/composer_spec.js index ec5e3a179..d1492a743 100644 --- a/spec/javascripts/models/composer_spec.js +++ b/spec/javascripts/models/composer_spec.js @@ -10,10 +10,16 @@ describe("Discourse.Composer", function() { }); it("trims whitespaces", function() { - var composer = Discourse.Composer.create({ reply: "\nbasic reply\t" }); + var composer = Discourse.Composer.create({ reply: " \nbasic reply\t" }); expect(composer.get('replyLength')).toBe(11); }); + it("count only significant whitespaces", function() { + // this will count the '\n' only once + var composer = Discourse.Composer.create({ reply: "ba sic\n\nreply" }); + expect(composer.get('replyLength')).toBe(12); + }); + it("removes quotes", function() { var composer = Discourse.Composer.create({ reply: "1[quote=]not counted[/quote]2[quote=]at all[/quote]3" }); expect(composer.get('replyLength')).toBe(3);