Fix stop ignoring from privacy settings and on mobile

Fixes #7541
This commit is contained in:
Benjamin Neff 2017-08-16 00:17:21 +02:00
parent ecd4601bac
commit a4d1ad160c
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
3 changed files with 28 additions and 6 deletions

View file

@ -1,23 +1,26 @@
class BlocksController < ApplicationController class BlocksController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
respond_to :json
def create def create
block = current_user.blocks.new(block_params) block = current_user.blocks.new(block_params)
disconnect_if_contact(block.person) if block.save disconnect_if_contact(block.person) if block.save
respond_with do |format| respond_to do |format|
format.json { head :no_content } format.json { head :no_content }
end end
end end
def destroy def destroy
current_user.blocks.find(params[:id]).delete notice = if current_user.blocks.find(params[:id]).delete
{notice: t("blocks.destroy.success")}
else
{error: t("blocks.destroy.failure")}
end
respond_with do |format| respond_to do |format|
format.json { head :no_content } format.json { head :no_content }
format.any { redirect_back notice.merge(fallback_location: privacy_settings_path) }
end end
end end

View file

@ -2,6 +2,10 @@
-# licensed under the Affero General Public License version 3 or later. See -# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file. -# the COPYRIGHT file.
- flash.each do |name, msg|
.alert{class: "alert-#{flash_class name}", role: "alert"}
= msg
- content_for :page_title do - content_for :page_title do
= t(".title") = t(".title")

View file

@ -26,11 +26,26 @@ describe BlocksController, :type => :controller do
@block = alice.blocks.create(:person => eve.person) @block = alice.blocks.create(:person => eve.person)
end end
it "responds with 204" do it "redirects back" do
delete :destroy, params: {id: @block.id}
expect(response).to be_redirect
end
it "notifies the user" do
delete :destroy, params: {id: @block.id}
expect(flash).not_to be_empty
end
it "responds with 204 with json" do
delete :destroy, params: {id: @block.id}, format: :json delete :destroy, params: {id: @block.id}, format: :json
expect(response.status).to eq(204) expect(response.status).to eq(204)
end end
it "redirects back on mobile" do
delete :destroy, params: {id: @block.id}, format: :mobile
expect(response).to be_redirect
end
it "removes a block" do it "removes a block" do
expect { expect {
delete :destroy, params: {id: @block.id}, format: :json delete :destroy, params: {id: @block.id}, format: :json