From 67efb6c6bcef345df619c681ed4d2f8d52d3dbff Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Sun, 27 Oct 2019 22:18:00 +0100 Subject: [PATCH] Added Ingredient#toggle and dimming hidden items --- app/controllers/ingredients_controller.rb | 7 +++- app/views/ingredients/_list.html.erb | 38 ++++++++++++++++++++++ app/views/ingredients/index.html.erb | 33 ++----------------- app/views/ingredients/toggle.js.erb | 3 ++ assets/images/eye.png | Bin 0 -> 433 bytes assets/stylesheets/body_tracking.css | 2 ++ config/routes.rb | 1 + init.rb | 2 +- 8 files changed, 54 insertions(+), 32 deletions(-) create mode 100644 app/views/ingredients/_list.html.erb create mode 100644 app/views/ingredients/toggle.js.erb create mode 100644 assets/images/eye.png diff --git a/app/controllers/ingredients_controller.rb b/app/controllers/ingredients_controller.rb index d335cd6..636b2e8 100644 --- a/app/controllers/ingredients_controller.rb +++ b/app/controllers/ingredients_controller.rb @@ -2,7 +2,7 @@ class IngredientsController < ApplicationController require 'csv' 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 def index @@ -33,6 +33,11 @@ class IngredientsController < ApplicationController redirect_to project_ingredients_url(@project) end + def toggle + @ingredient.update(hidden: !@ingredient.hidden) + @ingredients = @project.ingredients.includes(:ref_unit, :source) + end + def import warnings = [] diff --git a/app/views/ingredients/_list.html.erb b/app/views/ingredients/_list.html.erb new file mode 100644 index 0000000..741eb4b --- /dev/null +++ b/app/views/ingredients/_list.html.erb @@ -0,0 +1,38 @@ +<% if @ingredients.many? %> + + + + + + + + + + + + <% @ingredients.each do |i| %> + <% next if i.new_record? %> + + + + + + + + <% end %> + +
<%= l(:field_name) %><%= l(:field_reference) %><%= l(:field_group) %><%= l(:field_source) %><%= l(:field_action) %>
+ <%= link_to '', toggle_ingredient_path(i), { + remote: true, + method: :post, + class: "icon icon-eye" + } + %> + <%= i.name %> + <%= i.ref_amount %> [<%= i.ref_unit.shortname %>]<%= i.group %> + <%= i.source.name if i.source.present? %> + <%= ", #{i.source_ident}" if i.source_ident.present? %> + <%= delete_link ingredient_path(i), data: {} %>
+<% else %> +

<%= l(:label_no_data) %>

+<% end %> diff --git a/app/views/ingredients/index.html.erb b/app/views/ingredients/index.html.erb index aa317b7..01b6261 100644 --- a/app/views/ingredients/index.html.erb +++ b/app/views/ingredients/index.html.erb @@ -48,33 +48,6 @@

<%= t ".heading" %>

-<% if @ingredients.many? %> - - - - - - - - - - - - <% @ingredients.each do |i| %> - <% next if i.new_record? %> - - - - - - - - <% end %> - -
<%= l(:field_name) %><%= l(:field_reference) %><%= l(:field_group) %><%= l(:field_source) %><%= l(:field_action) %>
<%= i.name %><%= i.ref_amount %> [<%= i.ref_unit.shortname %>]<%= i.group %> - <%= i.source.name if i.source.present? %> - <%= ", #{i.source_ident}" if i.source_ident.present? %> - <%= delete_link ingredient_path(i), data: {} %>
-<% else %> -

<%= l(:label_no_data) %>

-<% end %> +
+ <%= render :partial => 'ingredients/list' %> +
diff --git a/app/views/ingredients/toggle.js.erb b/app/views/ingredients/toggle.js.erb new file mode 100644 index 0000000..dbf0a07 --- /dev/null +++ b/app/views/ingredients/toggle.js.erb @@ -0,0 +1,3 @@ +$('div[id^=flash_]').remove(); +$('#content').prepend('<%= escape_javascript(render_flash_messages) %>'); +$('#ingredients').html('<%= escape_javascript(render :partial => 'ingredients/list') %>'); diff --git a/assets/images/eye.png b/assets/images/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..e788ad6129756caecde611eab1843fc439a5f0b5 GIT binary patch literal 433 zcmV;i0Z#sjP)pF5_CmabYF2_X=86sa%pEoWpH$805dYx;<)Sp00BiwL_t(IjonhQ zN&`U@oLON-6qGbcaVjV_DRL2P>;mc!2x?>D2c#7QQ;Jxm(+?1}He#Jtgdic=UQoE^ zniQglDRwNp3kjTprB3sfH_Py5-UI$TnAHq|U?P{xtr}w%0l<6z*z5J~qbPd+QJ_>R z1tbpv?2?=s<|Mt6y!755JLjUbKbAhiFszciAvpt}O|lJO0f3bxk`BNUfLftYc!}e< z1pq7-i`H6uE@@Lz4M5u%^U>*a?h?_{WCBUr0I*E*h~#y@-`_LV+6I7iNfqZ@o#eLn zel{5_t>727oO5+a6#(nj+J?yr(HL`8E|;GG>}T;KA!b=1*(5m<@OKslpTaP#0yrW0 z4B$=DN-C0s_yAy1(ma5JZnt|jvV}N~Tlswcg5;c}HIn1Q{v}P5yp^=$oNEraEMLDl bq [:index, :create, :destroy] do + post 'toggle', on: :member post 'import', on: :collection get 'nutrients', on: :collection end diff --git a/init.rb b/init.rb index ab1b3ab..f16870c 100644 --- a/init.rb +++ b/init.rb @@ -22,7 +22,7 @@ Redmine::Plugin.register :body_tracking do }, read: true permission :manage_common, { :body_trackers => [:defaults], - :ingredients => [:create, :destroy, :import], + :ingredients => [:create, :destroy, :toggle, :import], :sources => [:create, :destroy], :quantities => [:create, :destroy, :toggle, :up, :down, :left, :right], :units => [:create, :destroy],