Move votes partials to components
We're going to change the code quite a bit, and with components we can easily extract methods when necessary.
This commit is contained in:
58
app/components/budgets/investments/ballot_component.html.erb
Normal file
58
app/components/budgets/investments/ballot_component.html.erb
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<% reason = investment.reason_for_not_being_ballotable_by(current_user, ballot) %>
|
||||||
|
<div class="js-participation supports ballot">
|
||||||
|
<% if ballot.has_investment?(investment) %>
|
||||||
|
<div class="remove supported">
|
||||||
|
<span class="icon-check-circle"
|
||||||
|
title="<%= t("budgets.investments.investment.already_added") %>">
|
||||||
|
</span>
|
||||||
|
<p class="investment-project-amount">
|
||||||
|
<%= investment.formatted_price %>
|
||||||
|
</p>
|
||||||
|
<% if investment.should_show_ballots? %>
|
||||||
|
<%= link_to t("budgets.ballots.show.remove"),
|
||||||
|
budget_ballot_line_path(id: investment.id,
|
||||||
|
budget_id: investment.budget_id,
|
||||||
|
investments_ids: investment_ids),
|
||||||
|
class: "button button-remove-support expanded",
|
||||||
|
method: :delete,
|
||||||
|
remote: true %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% else %>
|
||||||
|
<div class="add in-favor">
|
||||||
|
<p class="investment-project-amount">
|
||||||
|
<%= investment.formatted_price %>
|
||||||
|
</p>
|
||||||
|
<% if investment.should_show_ballots? %>
|
||||||
|
<%= link_to t("budgets.investments.investment.add"),
|
||||||
|
budget_ballot_lines_path(investment_id: investment.id,
|
||||||
|
budget_id: investment.budget_id,
|
||||||
|
investments_ids: investment_ids),
|
||||||
|
class: "button button-support expanded",
|
||||||
|
title: t("budgets.investments.investment.support_title"),
|
||||||
|
method: :post,
|
||||||
|
remote: true %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if reason.present? && !ballot.has_investment?(investment) %>
|
||||||
|
<div class="js-participation-not-allowed participation-not-allowed" style="display:none">
|
||||||
|
<% my_heading = link_to(investment.heading.name,
|
||||||
|
budget_investments_path(budget_id: investment.budget_id,
|
||||||
|
heading_id: investment.heading_id)) %>
|
||||||
|
<% change_ballot = link_to(t("budgets.ballots.reasons_for_not_balloting.change_ballot"),
|
||||||
|
budget_ballot_path(budget)) %>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
<%= sanitize(t("budgets.ballots.reasons_for_not_balloting.#{reason}",
|
||||||
|
verify_account: link_to_verify_account, signin: link_to_signin,
|
||||||
|
signup: link_to_signup, my_heading: my_heading,
|
||||||
|
change_ballot: change_ballot,
|
||||||
|
heading_link: heading_link(assigned_heading, budget))) %>
|
||||||
|
</small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
18
app/components/budgets/investments/ballot_component.rb
Normal file
18
app/components/budgets/investments/ballot_component.rb
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
class Budgets::Investments::BallotComponent < ApplicationComponent
|
||||||
|
attr_reader :investment, :investment_ids, :ballot, :assigned_heading
|
||||||
|
delegate :current_user, :heading_link, :link_to_signin, :link_to_signup,
|
||||||
|
:link_to_verify_account, to: :helpers
|
||||||
|
|
||||||
|
def initialize(investment:, investment_ids:, ballot:, assigned_heading:)
|
||||||
|
@investment = investment
|
||||||
|
@investment_ids = investment_ids
|
||||||
|
@ballot = ballot
|
||||||
|
@assigned_heading = assigned_heading
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def budget
|
||||||
|
ballot.budget
|
||||||
|
end
|
||||||
|
end
|
||||||
85
app/components/comments/votes_component.html.erb
Normal file
85
app/components/comments/votes_component.html.erb
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<div class="votes">
|
||||||
|
<% if user_signed_in? %>
|
||||||
|
<%= t("comments.comment.votes", count: comment.total_votes) %>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="in_favor">
|
||||||
|
<% if can?(:vote, comment) %>
|
||||||
|
<%= link_to vote_comment_path(comment, value: "yes"),
|
||||||
|
method: "post", remote: true, title: t("votes.agree") do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to new_user_session_path do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<%= comment.total_likes %>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="against">
|
||||||
|
<% if can?(:vote, comment) %>
|
||||||
|
<%= link_to vote_comment_path(comment, value: "no"),
|
||||||
|
method: "post", remote: true, title: t("votes.disagree") do %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<%= comment.total_dislikes %>
|
||||||
|
</span>
|
||||||
|
<% elsif !user_signed_in? %>
|
||||||
|
<div class="participation-allowed">
|
||||||
|
<%= t("comments.comment.votes", count: comment.total_votes) %>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="in_favor">
|
||||||
|
<% if can?(:vote, comment) %>
|
||||||
|
<%= link_to vote_comment_path(comment, value: "yes"),
|
||||||
|
method: "post", remote: true, title: t("votes.agree") do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to new_user_session_path do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<%= comment.total_likes %>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="against">
|
||||||
|
<% if can?(:vote, comment) %>
|
||||||
|
<%= link_to vote_comment_path(comment, value: "no"),
|
||||||
|
method: "post", remote: true, title: t("votes.disagree") do %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to new_user_session_path do %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<%= comment.total_dislikes %>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<%= sanitize(t("votes.comment_unauthenticated", signin: link_to_signin, signup: link_to_signup)) %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
8
app/components/comments/votes_component.rb
Normal file
8
app/components/comments/votes_component.rb
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
class Comments::VotesComponent < ApplicationComponent
|
||||||
|
attr_reader :comment
|
||||||
|
delegate :user_signed_in?, :can?, :link_to_signin, :link_to_signup, to: :helpers
|
||||||
|
|
||||||
|
def initialize(comment)
|
||||||
|
@comment = comment
|
||||||
|
end
|
||||||
|
end
|
||||||
63
app/components/debates/votes_component.html.erb
Normal file
63
app/components/debates/votes_component.html.erb
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<% voted_classes = css_classes_for_vote(debate_votes, debate) %>
|
||||||
|
<div class="votes">
|
||||||
|
<div class="in-favor inline-block">
|
||||||
|
<% if user_signed_in? %>
|
||||||
|
<%= link_to vote_debate_path(debate, value: "yes"),
|
||||||
|
class: "like #{voted_classes[:in_favor]}", title: t("votes.agree"), method: "post", remote: true do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("likes", debate) %></span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<div class="like">
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("likes", debate) %></span>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="divider"></span>
|
||||||
|
|
||||||
|
<div class="against inline-block">
|
||||||
|
<% if user_signed_in? %>
|
||||||
|
<%= link_to vote_debate_path(debate, value: "no"), class: "unlike #{voted_classes[:against]}", title: t("votes.disagree"), method: "post", remote: true do %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("dislikes", debate) %></span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<div class="unlike">
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("dislikes", debate) %></span>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="total-votes">
|
||||||
|
<%= t("debates.debate.votes", count: debate.votes_score) %>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<% if user_signed_in? && current_user.organization? %>
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= t("votes.organizations") %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% elsif user_signed_in? && !debate.votable_by?(current_user) %>
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= sanitize(t("votes.anonymous", verify_account: link_to_verify_account)) %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% elsif !user_signed_in? %>
|
||||||
|
<div tabindex="0">
|
||||||
|
<%= render "shared/login_to_vote" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
9
app/components/debates/votes_component.rb
Normal file
9
app/components/debates/votes_component.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class Debates::VotesComponent < ApplicationComponent
|
||||||
|
attr_reader :debate, :debate_votes
|
||||||
|
delegate :css_classes_for_vote, :current_user, :link_to_verify_account, :user_signed_in?, :votes_percentage, to: :helpers
|
||||||
|
|
||||||
|
def initialize(debate, debate_votes:)
|
||||||
|
@debate = debate
|
||||||
|
@debate_votes = debate_votes
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
<% voted_classes = css_classes_for_vote(legislation_proposal_votes, proposal) %>
|
||||||
|
<div class="votes">
|
||||||
|
<% if proposal.process.proposals_phase.open? %>
|
||||||
|
<div class="in-favor inline-block">
|
||||||
|
<% if user_signed_in? %>
|
||||||
|
<%= link_to vote_legislation_process_proposal_path(process_id: proposal.process, id: proposal, value: "yes"),
|
||||||
|
class: "like #{voted_classes[:in_favor]}", title: t("votes.agree"), method: "post", remote: true do %>
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("likes", proposal) %></span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<div class="like">
|
||||||
|
<span class="icon-like">
|
||||||
|
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("likes", proposal) %></span>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="divider"></span>
|
||||||
|
|
||||||
|
<div class="against inline-block">
|
||||||
|
<% if user_signed_in? %>
|
||||||
|
<%= link_to vote_legislation_process_proposal_path(process_id: proposal.process, id: proposal, value: "no"), class: "unlike #{voted_classes[:against]}", title: t("votes.disagree"), method: "post", remote: true do %>
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("dislikes", proposal) %></span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<div class="unlike">
|
||||||
|
<span class="icon-unlike">
|
||||||
|
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
||||||
|
</span>
|
||||||
|
<span class="percentage"><%= votes_percentage("dislikes", proposal) %></span>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<span class="total-votes">
|
||||||
|
<%= t("proposals.proposal.votes", count: proposal.votes_score) %>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<% if user_signed_in? && current_user.organization? %>
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= t("votes.organizations") %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% elsif user_signed_in? && !proposal.votable_by?(current_user) %>
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= sanitize(t("legislation.proposals.not_verified",
|
||||||
|
verify_account: link_to_verify_account)) %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% elsif !user_signed_in? %>
|
||||||
|
<div tabindex="0">
|
||||||
|
<%= render "shared/login_to_vote" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if voted_for?(legislation_proposal_votes, proposal) && setting["twitter_handle"] %>
|
||||||
|
<div class="share-supported">
|
||||||
|
<%= render "shared/social_share",
|
||||||
|
title: proposal.title,
|
||||||
|
url: proposal_url(proposal),
|
||||||
|
description: proposal.summary,
|
||||||
|
mobile: proposal.title %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
9
app/components/legislation/proposals/votes_component.rb
Normal file
9
app/components/legislation/proposals/votes_component.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class Legislation::Proposals::VotesComponent < ApplicationComponent
|
||||||
|
attr_reader :proposal, :legislation_proposal_votes
|
||||||
|
delegate :css_classes_for_vote, :current_user, :link_to_verify_account, :user_signed_in?, :voted_for?, :votes_percentage, to: :helpers
|
||||||
|
|
||||||
|
def initialize(proposal, legislation_proposal_votes:)
|
||||||
|
@proposal = proposal
|
||||||
|
@legislation_proposal_votes = legislation_proposal_votes
|
||||||
|
end
|
||||||
|
end
|
||||||
47
app/components/proposals/votes_component.html.erb
Normal file
47
app/components/proposals/votes_component.html.erb
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<div class="supports text-center">
|
||||||
|
<%= render "proposals/supports", proposal: proposal %>
|
||||||
|
|
||||||
|
<div class="in-favor">
|
||||||
|
<% if voted_for?(proposal_votes, proposal) %>
|
||||||
|
<div class="supported callout success">
|
||||||
|
<%= t("proposals.proposal.already_supported") %>
|
||||||
|
</div>
|
||||||
|
<% elsif user_signed_in? && proposal.votable_by?(current_user) %>
|
||||||
|
<%= link_to vote_url,
|
||||||
|
class: "button button-support small expanded",
|
||||||
|
title: t("proposals.proposal.support_title"), method: "post", remote: true do %>
|
||||||
|
<%= t("proposals.proposal.support") %>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<div class="button button-support small expanded">
|
||||||
|
<%= t("proposals.proposal.support") %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% if user_signed_in? && current_user.organization? %>
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= t("votes.organizations") %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% elsif user_signed_in? && !proposal.votable_by?(current_user) %>
|
||||||
|
<div tabindex="0">
|
||||||
|
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
||||||
|
<p>
|
||||||
|
<%= sanitize(t("votes.verified_only", verify_account: link_to_verify_account)) %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% elsif !user_signed_in? %>
|
||||||
|
<div tabindex="0">
|
||||||
|
<%= render "shared/login_to_vote" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if voted_for?(proposal_votes, proposal) && setting["twitter_handle"] %>
|
||||||
|
<div class="share-supported">
|
||||||
|
<%= render "proposals/social_share", proposal: proposal, share_title: false %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
10
app/components/proposals/votes_component.rb
Normal file
10
app/components/proposals/votes_component.rb
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
class Proposals::VotesComponent < ApplicationComponent
|
||||||
|
attr_reader :proposal, :vote_url, :proposal_votes
|
||||||
|
delegate :current_user, :link_to_verify_account, :user_signed_in?, :voted_for?, to: :helpers
|
||||||
|
|
||||||
|
def initialize(proposal, vote_url:, proposal_votes:)
|
||||||
|
@proposal = proposal
|
||||||
|
@vote_url = vote_url
|
||||||
|
@proposal_votes = proposal_votes
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,64 +1,6 @@
|
|||||||
<% reason = investment.reason_for_not_being_ballotable_by(current_user, ballot) %>
|
<%= render Budgets::Investments::BallotComponent.new(
|
||||||
<div class="js-participation supports ballot">
|
investment: investment,
|
||||||
<% if ballot.has_investment?(investment) %>
|
investment_ids: investment_ids,
|
||||||
|
ballot: ballot,
|
||||||
<div class="remove supported">
|
assigned_heading: @assigned_heading
|
||||||
<span class="icon-check-circle"
|
) %>
|
||||||
title="<%= t("budgets.investments.investment.already_added") %>">
|
|
||||||
</span>
|
|
||||||
<p class="investment-project-amount">
|
|
||||||
<%= investment.formatted_price %>
|
|
||||||
</p>
|
|
||||||
<% if investment.should_show_ballots? %>
|
|
||||||
<%= link_to t("budgets.ballots.show.remove"),
|
|
||||||
budget_ballot_line_path(id: investment.id,
|
|
||||||
budget_id: investment.budget_id,
|
|
||||||
investments_ids: investment_ids),
|
|
||||||
class: "button button-remove-support expanded",
|
|
||||||
method: :delete,
|
|
||||||
remote: true %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% else %>
|
|
||||||
|
|
||||||
<div class="add in-favor">
|
|
||||||
<p class="investment-project-amount">
|
|
||||||
<%= investment.formatted_price %>
|
|
||||||
</p>
|
|
||||||
<% if investment.should_show_ballots? %>
|
|
||||||
<%= link_to t("budgets.investments.investment.add"),
|
|
||||||
budget_ballot_lines_path(investment_id: investment.id,
|
|
||||||
budget_id: investment.budget_id,
|
|
||||||
investments_ids: investment_ids),
|
|
||||||
class: "button button-support expanded",
|
|
||||||
title: t("budgets.investments.investment.support_title"),
|
|
||||||
method: :post,
|
|
||||||
remote: true %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if reason.present? && !ballot.has_investment?(investment) %>
|
|
||||||
|
|
||||||
<div class="js-participation-not-allowed participation-not-allowed" style="display:none">
|
|
||||||
<% my_heading = link_to(investment.heading.name,
|
|
||||||
budget_investments_path(budget_id: investment.budget_id,
|
|
||||||
heading_id: investment.heading_id)) %>
|
|
||||||
<% change_ballot = link_to(t("budgets.ballots.reasons_for_not_balloting.change_ballot"),
|
|
||||||
budget_ballot_path(@budget)) %>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<small>
|
|
||||||
<%= sanitize(t("budgets.ballots.reasons_for_not_balloting.#{reason}",
|
|
||||||
verify_account: link_to_verify_account, signin: link_to_signin,
|
|
||||||
signup: link_to_signup, my_heading: my_heading,
|
|
||||||
change_ballot: change_ballot,
|
|
||||||
heading_link: heading_link(@assigned_heading, @budget))) %>
|
|
||||||
</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,87 +1 @@
|
|||||||
<div class="votes">
|
<%= render Comments::VotesComponent.new(comment) %>
|
||||||
<% if user_signed_in? %>
|
|
||||||
<%= t("comments.comment.votes", count: comment.total_votes) %>
|
|
||||||
|
|
|
||||||
|
|
||||||
<span class="in_favor">
|
|
||||||
<% if can?(:vote, comment) %>
|
|
||||||
<%= link_to vote_comment_path(comment, value: "yes"),
|
|
||||||
method: "post", remote: true, title: t("votes.agree") do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<%= link_to new_user_session_path do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<%= comment.total_likes %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span class="against">
|
|
||||||
<% if can?(:vote, comment) %>
|
|
||||||
<%= link_to vote_comment_path(comment, value: "no"),
|
|
||||||
method: "post", remote: true, title: t("votes.disagree") do %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<%= comment.total_dislikes %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<% elsif !user_signed_in? %>
|
|
||||||
|
|
||||||
<div class="participation-allowed">
|
|
||||||
<%= t("comments.comment.votes", count: comment.total_votes) %>
|
|
||||||
|
|
|
||||||
|
|
||||||
<span class="in_favor">
|
|
||||||
<% if can?(:vote, comment) %>
|
|
||||||
<%= link_to vote_comment_path(comment, value: "yes"),
|
|
||||||
method: "post", remote: true, title: t("votes.agree") do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<%= link_to new_user_session_path do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<%= comment.total_likes %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span class="against">
|
|
||||||
<% if can?(:vote, comment) %>
|
|
||||||
<%= link_to vote_comment_path(comment, value: "no"),
|
|
||||||
method: "post", remote: true, title: t("votes.disagree") do %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<%= link_to new_user_session_path do %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<%= comment.total_dislikes %>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<%= sanitize(t("votes.comment_unauthenticated", signin: link_to_signin, signup: link_to_signup)) %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,63 +1 @@
|
|||||||
<% voted_classes = css_classes_for_vote(@debate_votes, debate) %>
|
<%= render Debates::VotesComponent.new(debate, debate_votes: @debate_votes) %>
|
||||||
<div class="votes">
|
|
||||||
<div class="in-favor inline-block">
|
|
||||||
<% if user_signed_in? %>
|
|
||||||
<%= link_to vote_debate_path(debate, value: "yes"),
|
|
||||||
class: "like #{voted_classes[:in_favor]}", title: t("votes.agree"), method: "post", remote: true do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("likes", debate) %></span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="like">
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("likes", debate) %></span>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span class="divider"></span>
|
|
||||||
|
|
||||||
<div class="against inline-block">
|
|
||||||
<% if user_signed_in? %>
|
|
||||||
<%= link_to vote_debate_path(debate, value: "no"), class: "unlike #{voted_classes[:against]}", title: t("votes.disagree"), method: "post", remote: true do %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("dislikes", debate) %></span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="unlike">
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("dislikes", debate) %></span>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span class="total-votes">
|
|
||||||
<%= t("debates.debate.votes", count: debate.votes_score) %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<% if user_signed_in? && current_user.organization? %>
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= t("votes.organizations") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<% elsif user_signed_in? && !debate.votable_by?(current_user) %>
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= sanitize(t("votes.anonymous", verify_account: link_to_verify_account)) %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<% elsif !user_signed_in? %>
|
|
||||||
<div tabindex="0">
|
|
||||||
<%= render "shared/login_to_vote" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,76 +1 @@
|
|||||||
<% voted_classes = css_classes_for_vote(@legislation_proposal_votes, proposal) %>
|
<%= render Legislation::Proposals::VotesComponent.new(proposal, legislation_proposal_votes: @legislation_proposal_votes) %>
|
||||||
<div class="votes">
|
|
||||||
<% if @process.proposals_phase.open? %>
|
|
||||||
<div class="in-favor inline-block">
|
|
||||||
<% if user_signed_in? %>
|
|
||||||
<%= link_to vote_legislation_process_proposal_path(process_id: proposal.process, id: proposal, value: "yes"),
|
|
||||||
class: "like #{voted_classes[:in_favor]}", title: t("votes.agree"), method: "post", remote: true do %>
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("likes", proposal) %></span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="like">
|
|
||||||
<span class="icon-like">
|
|
||||||
<span class="show-for-sr"><%= t("votes.agree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("likes", proposal) %></span>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span class="divider"></span>
|
|
||||||
|
|
||||||
<div class="against inline-block">
|
|
||||||
<% if user_signed_in? %>
|
|
||||||
<%= link_to vote_legislation_process_proposal_path(process_id: proposal.process, id: proposal, value: "no"), class: "unlike #{voted_classes[:against]}", title: t("votes.disagree"), method: "post", remote: true do %>
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("dislikes", proposal) %></span>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="unlike">
|
|
||||||
<span class="icon-unlike">
|
|
||||||
<span class="show-for-sr"><%= t("votes.disagree") %></span>
|
|
||||||
</span>
|
|
||||||
<span class="percentage"><%= votes_percentage("dislikes", proposal) %></span>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<span class="total-votes">
|
|
||||||
<%= t("proposals.proposal.votes", count: proposal.votes_score) %>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<% if user_signed_in? && current_user.organization? %>
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= t("votes.organizations") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<% elsif user_signed_in? && !proposal.votable_by?(current_user) %>
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= sanitize(t("legislation.proposals.not_verified",
|
|
||||||
verify_account: link_to_verify_account)) %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<% elsif !user_signed_in? %>
|
|
||||||
<div tabindex="0">
|
|
||||||
<%= render "shared/login_to_vote" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if voted_for?(@legislation_proposal_votes, proposal) && setting["twitter_handle"] %>
|
|
||||||
<div class="share-supported">
|
|
||||||
<%= render "shared/social_share",
|
|
||||||
title: proposal.title,
|
|
||||||
url: proposal_url(proposal),
|
|
||||||
description: proposal.summary,
|
|
||||||
mobile: proposal.title %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,47 +1 @@
|
|||||||
<div class="supports text-center">
|
<%= render Proposals::VotesComponent.new(proposal, vote_url: vote_url, proposal_votes: @proposal_votes) %>
|
||||||
<%= render "proposals/supports", proposal: proposal %>
|
|
||||||
|
|
||||||
<div class="in-favor">
|
|
||||||
<% if voted_for?(@proposal_votes, proposal) %>
|
|
||||||
<div class="supported callout success">
|
|
||||||
<%= t("proposals.proposal.already_supported") %>
|
|
||||||
</div>
|
|
||||||
<% elsif user_signed_in? && proposal.votable_by?(current_user) %>
|
|
||||||
<%= link_to vote_url,
|
|
||||||
class: "button button-support small expanded",
|
|
||||||
title: t("proposals.proposal.support_title"), method: "post", remote: true do %>
|
|
||||||
<%= t("proposals.proposal.support") %>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="button button-support small expanded">
|
|
||||||
<%= t("proposals.proposal.support") %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% if user_signed_in? && current_user.organization? %>
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= t("votes.organizations") %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<% elsif user_signed_in? && !proposal.votable_by?(current_user) %>
|
|
||||||
<div tabindex="0">
|
|
||||||
<div class="participation-not-allowed" style="display:none" aria-hidden="false">
|
|
||||||
<p>
|
|
||||||
<%= sanitize(t("votes.verified_only", verify_account: link_to_verify_account)) %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% elsif !user_signed_in? %>
|
|
||||||
<div tabindex="0">
|
|
||||||
<%= render "shared/login_to_vote" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if voted_for?(@proposal_votes, proposal) && setting["twitter_handle"] %>
|
|
||||||
<div class="share-supported">
|
|
||||||
<%= render "proposals/social_share", proposal: proposal, share_title: false %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
$("#<%= dom_id(@proposal) %>_votes").html("<%= j render("proposals/votes", proposal: @proposal) %>");
|
$("#<%= dom_id(@proposal) %>_votes").html("<%= j render("proposals/votes", proposal: @proposal, vote_url: nil) %>");
|
||||||
App.Followable.update("<%= dom_id(@follow.followable) %>",
|
App.Followable.update("<%= dom_id(@follow.followable) %>",
|
||||||
"<%= j render("follows/follow_button", follow: @follow) %>",
|
"<%= j render("follows/follow_button", follow: @follow) %>",
|
||||||
"<%= j render("layouts/flash") %>")
|
"<%= j render("layouts/flash") %>")
|
||||||
|
|||||||
Reference in New Issue
Block a user