1
0

Added Ingredient#toggle and dimming hidden items

This commit is contained in:
cryptogopher 2019-10-27 22:18:00 +01:00
parent 3cec0847df
commit 67efb6c6bc
8 changed files with 54 additions and 32 deletions

View File

@ -2,7 +2,7 @@ class IngredientsController < ApplicationController
require 'csv' require 'csv'
before_action :find_project_by_project_id, only: [:index, :create, :import, :nutrients] before_action :find_project_by_project_id, only: [:index, :create, :import, :nutrients]
before_action :find_ingredient, only: [:destroy] before_action :find_ingredient, only: [:destroy, :toggle]
before_action :authorize before_action :authorize
def index def index
@ -33,6 +33,11 @@ class IngredientsController < ApplicationController
redirect_to project_ingredients_url(@project) redirect_to project_ingredients_url(@project)
end end
def toggle
@ingredient.update(hidden: !@ingredient.hidden)
@ingredients = @project.ingredients.includes(:ref_unit, :source)
end
def import def import
warnings = [] warnings = []

View File

@ -0,0 +1,38 @@
<% if @ingredients.many? %>
<table class="list">
<thead>
<tr>
<th><%= l(:field_name) %></th>
<th><%= l(:field_reference) %></th>
<th><%= l(:field_group) %></th>
<th><%= l(:field_source) %></th>
<th style="width:15%"><%= l(:field_action) %></th>
</tr>
</thead>
<tbody>
<% @ingredients.each do |i| %>
<% next if i.new_record? %>
<tr id="ingredient-<%= i.id %>" class="ingredient <%= 'hidden' if i.hidden %>">
<td class="name">
<%= link_to '', toggle_ingredient_path(i), {
remote: true,
method: :post,
class: "icon icon-eye"
}
%>
<%= i.name %>
</td>
<td class="reference value"><%= i.ref_amount %> [<%= i.ref_unit.shortname %>]</td>
<td class="group"><%= i.group %></td>
<td class="source">
<%= i.source.name if i.source.present? %>
<%= ", #{i.source_ident}" if i.source_ident.present? %>
</td>
<td class="action"><%= delete_link ingredient_path(i), data: {} %></td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<% end %>

View File

@ -48,33 +48,6 @@
</div> </div>
<h2><%= t ".heading" %></h2> <h2><%= t ".heading" %></h2>
<% if @ingredients.many? %> <div id='ingredients'>
<table class="list"> <%= render :partial => 'ingredients/list' %>
<thead> </div>
<tr>
<th><%= l(:field_name) %></th>
<th><%= l(:field_reference) %></th>
<th><%= l(:field_group) %></th>
<th><%= l(:field_source) %></th>
<th style="width:15%"><%= l(:field_action) %></th>
</tr>
</thead>
<tbody>
<% @ingredients.each do |i| %>
<% next if i.new_record? %>
<tr id="ingredient-<%= i.id %>" class="ingredient <%= 'hidden' if i.hidden %>">
<td class="name"><%= i.name %></td>
<td class="reference value"><%= i.ref_amount %> [<%= i.ref_unit.shortname %>]</td>
<td class="group"><%= i.group %></td>
<td class="source">
<%= i.source.name if i.source.present? %>
<%= ", #{i.source_ident}" if i.source_ident.present? %>
</td>
<td class="action"><%= delete_link ingredient_path(i), data: {} %></td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<p class="nodata"><%= l(:label_no_data) %></p>
<% end %>

View File

@ -0,0 +1,3 @@
$('div[id^=flash_]').remove();
$('#content').prepend('<%= escape_javascript(render_flash_messages) %>');
$('#ingredients').html('<%= escape_javascript(render :partial => 'ingredients/list') %>');

BIN
assets/images/eye.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

View File

@ -1,4 +1,5 @@
table.list tr.quantity.primary td.name {font-weight: bold;} table.list tr.quantity.primary td.name {font-weight: bold;}
table.list tr.ingredient.hidden {opacity: 0.4}
table.list td.action, table.list td.action,
table.list td.value {text-align: right;} table.list td.value {text-align: right;}
table.list td.action, table.list td.action,
@ -6,3 +7,4 @@ table.list td.name {white-space: nowrap;}
.icon-move-left { background-image: url(../images/1leftarrow.png); } .icon-move-left { background-image: url(../images/1leftarrow.png); }
.icon-move-right { background-image: url(../images/1rightarrow.png); } .icon-move-right { background-image: url(../images/1rightarrow.png); }
.icon-eye { background-image: url(../images/eye.png); }

View File

@ -7,6 +7,7 @@ resources :projects do
post 'defaults', on: :collection post 'defaults', on: :collection
end end
resources :ingredients, :only => [:index, :create, :destroy] do resources :ingredients, :only => [:index, :create, :destroy] do
post 'toggle', on: :member
post 'import', on: :collection post 'import', on: :collection
get 'nutrients', on: :collection get 'nutrients', on: :collection
end end

View File

@ -22,7 +22,7 @@ Redmine::Plugin.register :body_tracking do
}, read: true }, read: true
permission :manage_common, { permission :manage_common, {
:body_trackers => [:defaults], :body_trackers => [:defaults],
:ingredients => [:create, :destroy, :import], :ingredients => [:create, :destroy, :toggle, :import],
:sources => [:create, :destroy], :sources => [:create, :destroy],
:quantities => [:create, :destroy, :toggle, :up, :down, :left, :right], :quantities => [:create, :destroy, :toggle, :up, :down, :left, :right],
:units => [:create, :destroy], :units => [:create, :destroy],