From 3210d0d260bd937091e56355348e32635d7cb842 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Fri, 18 Mar 2016 05:04:22 +0100 Subject: [PATCH] Fix publisher overflow on submit --- .../javascripts/app/views/publisher_view.js | 5 +++++ app/assets/stylesheets/mentions.scss | 2 ++ app/assets/stylesheets/publisher.scss | 2 ++ spec/javascripts/app/views/publisher_view_spec.js | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/app/views/publisher_view.js b/app/assets/javascripts/app/views/publisher_view.js index 08c5df881..5446a972f 100644 --- a/app/assets/javascripts/app/views/publisher_view.js +++ b/app/assets/javascripts/app/views/publisher_view.js @@ -175,6 +175,7 @@ app.views.Publisher = Backbone.View.extend({ var serializedForm = $(evt.target).closest("form").serializeObject(); // disable input while posting, must be after the form is serialized this.setInputEnabled(false); + this.wrapperEl.addClass("submitting"); // lulz this code should be killed. var statusMessage = new app.models.Post(); @@ -220,6 +221,9 @@ app.views.Publisher = Backbone.View.extend({ app.flashMessages.error(resp.responseText); self.setButtonsEnabled(true); self.setInputEnabled(true); + self.wrapperEl.removeClass("submitting"); + self.handleTextchange(); + autosize.update(self.inputEl); } }); }, @@ -399,6 +403,7 @@ app.views.Publisher = Backbone.View.extend({ // enable input this.setInputEnabled(true); + this.wrapperEl.removeClass("submitting"); // enable buttons this.setButtonsEnabled(true); diff --git a/app/assets/stylesheets/mentions.scss b/app/assets/stylesheets/mentions.scss index 33deeb978..a51cf7617 100644 --- a/app/assets/stylesheets/mentions.scss +++ b/app/assets/stylesheets/mentions.scss @@ -20,6 +20,8 @@ box-sizing: border-box; } + .form-control[disabled] { background-color: transparent; } + .mentions-autocomplete-list { background: white; display: none; diff --git a/app/assets/stylesheets/publisher.scss b/app/assets/stylesheets/publisher.scss index d2897dfa1..93a7637fd 100644 --- a/app/assets/stylesheets/publisher.scss +++ b/app/assets/stylesheets/publisher.scss @@ -253,6 +253,8 @@ .locator { display: none; } } + &.submitting .mentions-box { display: none; } + .twitter-typeahead { left: -1px; position: absolute; diff --git a/spec/javascripts/app/views/publisher_view_spec.js b/spec/javascripts/app/views/publisher_view_spec.js index b9be5089d..5bed30580 100644 --- a/spec/javascripts/app/views/publisher_view_spec.js +++ b/spec/javascripts/app/views/publisher_view_spec.js @@ -134,6 +134,13 @@ describe("app.views.Publisher", function() { this.view.clear($.Event()); expect($("#location").length).toBe(0); }); + + it("removes the 'submitting' class from the textarea wrapper", function(){ + this.view.wrapperEl.addClass("submitting"); + expect(this.view.wrapperEl).toHaveClass("submitting"); + this.view.clear($.Event()); + expect(this.view.wrapperEl).not.toHaveClass("submitting"); + }); }); describe("createStatusMessage", function(){ @@ -150,6 +157,12 @@ describe("app.views.Publisher", function() { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, responseText: "{\"id\": 1}" }); expect(app.stream.addNow).toHaveBeenCalled(); }); + + it("adds the 'submitting' class from the textarea wrapper", function(){ + expect(this.view.wrapperEl).not.toHaveClass("submitting"); + this.view.createStatusMessage($.Event()); + expect(this.view.wrapperEl).toHaveClass("submitting"); + }); }); describe("createPostPreview", function(){ @@ -617,6 +630,4 @@ describe("app.views.Publisher", function() { }); }); }); - }); -