diff --git a/app/assets/javascripts/app/models/post/interactions.js b/app/assets/javascripts/app/models/post/interactions.js index 12d0a82d6..557f6ae12 100644 --- a/app/assets/javascripts/app/models/post/interactions.js +++ b/app/assets/javascripts/app/models/post/interactions.js @@ -123,8 +123,8 @@ app.models.Post.Interactions = Backbone.Model.extend({ interactions.set({"reshares_count": interactions.get("reshares_count") + 1}); interactions.reshares.trigger("change"); }) - .fail(function(){ - app.flashMessages.error(Diaspora.I18n.t("reshares.duplicate")); + .fail(function(response) { + app.flashMessages.handleAjaxError(response); }); app.instrument("track", "Reshare"); diff --git a/app/assets/javascripts/mobile/mobile_post_actions.js b/app/assets/javascripts/mobile/mobile_post_actions.js index 6f7c18ee6..56df0e533 100644 --- a/app/assets/javascripts/mobile/mobile_post_actions.js +++ b/app/assets/javascripts/mobile/mobile_post_actions.js @@ -98,8 +98,12 @@ success: function() { Diaspora.Mobile.PostActions.toggleActive(link); }, - error: function() { - alert(Diaspora.I18n.t("failed_to_reshare")); + error: function(response) { + if (response.status === 0) { + alert(Diaspora.I18n.t("errors.connection")); + } else { + alert(response.responseText); + } }, complete: function() { Diaspora.Mobile.PostActions.hideLoader(link); diff --git a/app/controllers/reshares_controller.rb b/app/controllers/reshares_controller.rb index 385e6acfc..4c9f70ca2 100644 --- a/app/controllers/reshares_controller.rb +++ b/app/controllers/reshares_controller.rb @@ -14,7 +14,7 @@ class ResharesController < ApplicationController current_user.dispatch_post(@reshare) render :json => ExtremePostPresenter.new(@reshare, current_user), :status => 201 else - render :nothing => true, :status => 422 + render text: I18n.t("javascripts.failed_to_reshare"), status: 422 end end diff --git a/config/locales/javascript/javascript.en.yml b/config/locales/javascript/javascript.en.yml index e94e0eb9a..94b9b49e0 100644 --- a/config/locales/javascript/javascript.en.yml +++ b/config/locales/javascript/javascript.en.yml @@ -199,7 +199,6 @@ en: hide: "Hide comments" no_comments: "There are no comments yet." reshares: - duplicate: "That good, eh? You’ve already reshared that post!" successful: "The post was successfully reshared!" post: "Reshare <%= name %>’s post?" aspect_navigation: diff --git a/spec/controllers/reshares_controller_spec.rb b/spec/controllers/reshares_controller_spec.rb index 571f5651b..92d9072a8 100644 --- a/spec/controllers/reshares_controller_spec.rb +++ b/spec/controllers/reshares_controller_spec.rb @@ -46,7 +46,7 @@ describe ResharesController, :type => :controller do it 'doesn\'t allow the user to reshare the post again' do post_request! expect(response.code).to eq('422') - expect(response.body.strip).to be_empty + expect(response.body).to eq(I18n.t("javascripts.failed_to_reshare")) end end diff --git a/spec/javascripts/app/models/post/interacations_spec.js b/spec/javascripts/app/models/post/interacations_spec.js index 835504576..d537600ce 100644 --- a/spec/javascripts/app/models/post/interacations_spec.js +++ b/spec/javascripts/app/models/post/interacations_spec.js @@ -6,6 +6,8 @@ describe("app.models.Post.Interactions", function(){ this.interactions = this.post.interactions; this.author = factory.author({guid: "loggedInAsARockstar"}); loginAs({guid: "loggedInAsARockstar"}); + spec.content().append($("