Fixes #224
Resource cards show the request status: * Green solved by administrator. * Blue + button: Available * Blue + help text: Requested * Red: Locked A tooltip has been added to the card to improve its readability.
This commit is contained in:
@@ -264,7 +264,6 @@
|
||||
min-height: 200pt;
|
||||
|
||||
.bottom-container {
|
||||
position: relative;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
|
||||
@@ -276,32 +275,40 @@
|
||||
}
|
||||
}
|
||||
|
||||
.resource-card.success {
|
||||
background-color: #c5f6eb;
|
||||
|
||||
.resource-card {
|
||||
i {
|
||||
display: inline-block;
|
||||
width: 20pt;
|
||||
height: 20pt;
|
||||
color: #00cf96;
|
||||
border-radius: 10pt;
|
||||
border: 1pt solid #00cf96;
|
||||
padding-right: 4pt;
|
||||
}
|
||||
}
|
||||
|
||||
.resource-card.primary {
|
||||
background-color: #d3edf6;
|
||||
|
||||
i {
|
||||
color: #116f8e;
|
||||
border: 1pt solid #116f8e;
|
||||
}
|
||||
}
|
||||
|
||||
.resource-card.success {
|
||||
background-color: #c5f6eb;
|
||||
|
||||
i {
|
||||
color: #00cf96;
|
||||
border: 1pt solid #00cf96;
|
||||
}
|
||||
}
|
||||
|
||||
.resource-card.alert {
|
||||
background-color: #ffe5e8;
|
||||
|
||||
i {
|
||||
display: inline-block;
|
||||
width: 20pt;
|
||||
height: 20pt;
|
||||
color: #ff828b;
|
||||
border-radius: 10pt;
|
||||
border: 1pt solid #ff828b;
|
||||
padding-right: 4pt;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,8 +37,9 @@ class ProposalsDashboardController < Dashboard::BaseController
|
||||
if @proposal_executed_dashboard_action.save
|
||||
AdministratorTask.create(source: @proposal_executed_dashboard_action)
|
||||
|
||||
redirect_to proposal_dashboard_index_path(proposal.to_param), { flash: { info: t('.success') } }
|
||||
redirect_to progress_proposal_dashboard_index_path(proposal.to_param), { flash: { info: t('.success') } }
|
||||
else
|
||||
flash.now[:alert] = @proposal_executed_dashboard_action.errors.full_messages.join('<br>')
|
||||
render :new_request
|
||||
end
|
||||
end
|
||||
|
||||
@@ -90,4 +90,17 @@ module ProposalsDashboardHelper
|
||||
return nil if params[:group_by] == 'month'
|
||||
'hollow'
|
||||
end
|
||||
|
||||
def resource_card_class(resource, proposal)
|
||||
return 'alert' unless resource.active_for?(proposal)
|
||||
return 'success' if resource.executed_for?(proposal)
|
||||
'primary'
|
||||
end
|
||||
|
||||
def resource_tooltip(resource, proposal)
|
||||
return t('proposals_dashboard.resource.resource_locked') unless resource.active_for?(proposal)
|
||||
return t('proposals_dashboard.resource.view_resource') if resource.executed_for?(proposal)
|
||||
return t('proposals_dashboard.resource.resource_requested') if resource.requested_for?(proposal)
|
||||
t('proposals_dashboard.resource.request_resource')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -60,6 +60,20 @@ class ProposalDashboardAction < ActiveRecord::Base
|
||||
required_supports <= proposal.votes_for.size && day_offset <= (Date.today - published_at).to_i
|
||||
end
|
||||
|
||||
def requested_for?(proposal)
|
||||
executed_action = proposal_executed_dashboard_actions.find_by(proposal: proposal)
|
||||
return false if executed_action.nil?
|
||||
|
||||
executed_action.administrator_tasks.any?
|
||||
end
|
||||
|
||||
def executed_for?(proposal)
|
||||
executed_action = proposal_executed_dashboard_actions.find_by(proposal: proposal)
|
||||
return false if executed_action.nil?
|
||||
|
||||
executed_action.administrator_tasks.where.not(executed_at: nil).any?
|
||||
end
|
||||
|
||||
def self.next_goal_for(proposal)
|
||||
course_for(proposal).first
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<% if proposal_dashboard_action.request_to_administrators %>
|
||||
<% if proposal_dashboard_action.request_to_administrators && !proposal_dashboard_action.requested_for?(proposal) %>
|
||||
<%= form_for @proposal_executed_dashboard_action,
|
||||
url: create_request_proposal_dashboard_url(proposal, proposal_dashboard_action) do |f| %>
|
||||
<div class="actions">
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<% if can?(:manage_polls, proposal) %>
|
||||
<div class="column">
|
||||
<div class="card resource-card success">
|
||||
<div class="card resource-card primary"
|
||||
data-tooltip title="<%= t('proposals_dashboard.resource.request_resource') %>"
|
||||
data-position="bottom" data-alignment="right">
|
||||
<div class="card-section">
|
||||
<p class="text-right">
|
||||
<i class="fi-check"></i>
|
||||
<i class="fi-pencil"></i>
|
||||
</p>
|
||||
<h4 class="text-center"><%= t('proposals_dashboard.menu.polls') %></h4>
|
||||
<p class="text-center">
|
||||
@@ -13,7 +15,7 @@
|
||||
|
||||
<div class="card-section text-center bottom-container">
|
||||
<div class="bottom-element text-center">
|
||||
<%= link_to t('proposals_dashboard.resource.view_resource'), proposal_dashboard_polls_path(proposal.to_param), class: 'button success' %>
|
||||
<%= link_to t('proposals_dashboard.resource.request_resource'), proposal_dashboard_polls_path(proposal.to_param), class: 'button primary' %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
<div class="column" id="<%= dom_id(resource) %>">
|
||||
<div class="card resource-card <%= resource.active_for?(proposal) ? 'success' : 'alert' %>">
|
||||
<div class="card resource-card <%= resource_card_class(resource, proposal) %>"
|
||||
data-tooltip title="<%= resource_tooltip(resource, proposal) %>"
|
||||
data-position="bottom" data-alignment="right">
|
||||
<div class="card-section">
|
||||
<p class="text-right">
|
||||
<% if resource.active_for?(proposal) %>
|
||||
<% if resource.executed_for?(proposal) %>
|
||||
<i class="fi-check"></i>
|
||||
<% elsif resource.active_for?(proposal) %>
|
||||
<i class="fi-pencil"></i>
|
||||
<% else %>
|
||||
<i class="fi-lock"></i>
|
||||
<% end %>
|
||||
@@ -15,10 +19,16 @@
|
||||
</div>
|
||||
|
||||
<div class="card-section text-center bottom-container">
|
||||
<% if resource.active_for?(proposal) %>
|
||||
<% if resource.executed_for?(proposal) %>
|
||||
<div class="bottom-element text-center">
|
||||
<%= link_to t('.view_resource'), new_request_proposal_dashboard_path(proposal, resource), class: 'button success' %>
|
||||
</div>
|
||||
<% elsif resource.requested_for?(proposal) %>
|
||||
<strong><%= t('.resource_requested') %></strong>
|
||||
<% elsif resource.active_for?(proposal) %>
|
||||
<div class="bottom-element text-center">
|
||||
<%= link_to t('.request_resource'), new_request_proposal_dashboard_path(proposal, resource), class: 'button primary' %>
|
||||
</div>
|
||||
<% else %>
|
||||
<strong>
|
||||
<%== resoure_availability_label(resource) %>
|
||||
|
||||
@@ -536,6 +536,9 @@ en:
|
||||
required_supports: "%{supports} supports required"
|
||||
and: and
|
||||
view_resource: See resource
|
||||
resource_requested: Resource already requested
|
||||
request_resource: Request resource
|
||||
resource_locked: Resource locked
|
||||
recommended_actions:
|
||||
title: Recommended actions
|
||||
next_goal:
|
||||
|
||||
@@ -536,6 +536,9 @@ es:
|
||||
required_supports: "%{supports} apoyos necesarios"
|
||||
and: y
|
||||
view_resource: Ver recurso
|
||||
resource_requested: Recurso solicitado
|
||||
request_resource: Solicitar recurso
|
||||
resource_locked: Recurso bloqueado
|
||||
recommended_actions:
|
||||
title: Acciones recomendadas
|
||||
next_goal:
|
||||
|
||||
Reference in New Issue
Block a user