Merge branch 'next-minor' into develop
This commit is contained in:
commit
db14b58eeb
5 changed files with 41 additions and 8 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_by(id: 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 fallback_location: privacy_settings_path, flash: notice }
|
||||||
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")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,8 @@ Feature: Invitations
|
||||||
|
|
||||||
Scenario: sends an invitation from the stream
|
Scenario: sends an invitation from the stream
|
||||||
When I sign in as "alice@alice.alice"
|
When I sign in as "alice@alice.alice"
|
||||||
And I press the first "a.invitations-link" within "#no_contacts"
|
Then I should see "There are no posts to display here yet." within ".no-posts-info"
|
||||||
|
When I press the first "a.invitations-link" within "#no_contacts"
|
||||||
Then I should see "Invite someone to join diaspora*!" within "#invitationsModalLabel"
|
Then I should see "Invite someone to join diaspora*!" within "#invitationsModalLabel"
|
||||||
And I fill in the following:
|
And I fill in the following:
|
||||||
| email_inviter_emails | alex@example.com |
|
| email_inviter_emails | alex@example.com |
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,13 @@ end
|
||||||
|
|
||||||
When /^I select only "([^"]*)" aspect$/ do |aspect_name|
|
When /^I select only "([^"]*)" aspect$/ do |aspect_name|
|
||||||
click_link "My aspects"
|
click_link "My aspects"
|
||||||
|
expect(find("#aspect_stream_container")).to have_css(".loader.hidden", visible: false)
|
||||||
within("#aspects_list") do
|
within("#aspects_list") do
|
||||||
all(".selected").each {|node| node.find(:xpath, "..").click }
|
all(".selected").each do |node|
|
||||||
|
aspect_item = node.find(:xpath, "..")
|
||||||
|
aspect_item.click
|
||||||
|
expect(aspect_item).to have_no_css ".selected"
|
||||||
|
end
|
||||||
expect(current_scope).to have_no_css ".selected"
|
expect(current_scope).to have_no_css ".selected"
|
||||||
end
|
end
|
||||||
step %Q(I select "#{aspect_name}" aspect as well)
|
step %Q(I select "#{aspect_name}" aspect as well)
|
||||||
|
|
|
||||||
|
|
@ -26,16 +26,36 @@ 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[:notice]).to eq(I18n.t("blocks.destroy.success"))
|
||||||
|
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
|
||||||
}.to change { alice.blocks.count }.by(-1)
|
}.to change { alice.blocks.count }.by(-1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "handles when the block to delete doesn't exist" do
|
||||||
|
delete :destroy, params: {id: -1}
|
||||||
|
expect(flash[:error]).to eq(I18n.t("blocks.destroy.failure"))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#disconnect_if_contact" do
|
describe "#disconnect_if_contact" do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue