parent
ecd4601bac
commit
a4d1ad160c
3 changed files with 28 additions and 6 deletions
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue