1
0

Add child Quantity action added

This commit is contained in:
cryptogopher 2020-02-19 21:24:17 +01:00
parent b7b7401833
commit c774f7745d
8 changed files with 53 additions and 2 deletions

View File

@ -3,7 +3,8 @@ class QuantitiesController < ApplicationController
before_action :init_session_filters
before_action :find_project_by_project_id, only: [:index, :new, :create, :filter, :parents]
before_action :find_quantity, only: [:edit, :update, :destroy, :move]
before_action :find_quantity, only: [:edit, :update, :destroy, :move,
:new_child, :create_child]
before_action :authorize
def index
@ -75,6 +76,24 @@ class QuantitiesController < ApplicationController
render :index
end
def new_child
@parent_quantity = @quantity
@quantity = @project.quantities.new
@quantity.domain = @parent_quantity.domain
@quantity.parent = @parent_quantity
@quantity.build_formula
end
def create_child
@quantity = @project.quantities.new(quantity_params)
if @quantity.save
flash[:notice] = 'Created new quantity'
prepare_quantities
else
render :new_child
end
end
private
def init_session_filters

View File

@ -46,6 +46,10 @@
<td class="description"><%= q.description %></td>
<td class="formula"><%= checked_image q.formula %></td>
<td class="action unwrappable">
<%= link_to l(:button_child), new_child_quantity_path(q), {
remote: true,
class: "icon icon-add"
} %>
<%= link_to l(:button_edit), edit_quantity_path(q), {
remote: true,
class: "icon icon-edit"

View File

@ -0,0 +1,15 @@
<%= labelled_form_for @quantity,
url: create_child_quantity_path(@parent_quantity),
remote: true,
html: {id: 'new-child-form', name: 'new-child-form'} do |f| %>
<%= render partial: 'quantities/form', locals: {f: f} %>
<div class="tabular">
<p>
<%= submit_tag l(:button_create) %>
<%= link_to l(:button_cancel), "#",
onclick: '$(this).closest("tr").remove(); return false;' %>
</p>
</div>
<% end %>

View File

@ -0,0 +1,2 @@
<%= render partial: 'body_trackers/flash' %>
$('#quantities').html('<%= j render partial: 'quantities/index' %>');

View File

@ -0,0 +1,8 @@
<%= render partial: 'body_trackers/flash' %>
$('tr[id=quantity-<%= @parent_quantity.id %>]').nextUntil('tr.quantity').remove();
var columns = $('table > thead > tr > th').length;
$('tr[id=quantity-<%= @parent_quantity.id %>]').nextAll('tr.quantity').first().before(
'<tr><td class="form" colspan="'+columns+'">' +
'<div id="new-child-quantity"><%= j render partial: "quantities/new_child_form" %></div>' +
'</td></tr>'
);

View File

@ -17,6 +17,7 @@ en:
field_code: 'Formula'
field_shortname: 'Short name'
button_retake: 'Retake'
button_child: 'Child'
activerecord:
errors:
models:

View File

@ -27,6 +27,8 @@ resources :projects, shallow: true do
resources :sources, only: [:index, :create, :destroy]
resources :quantities, only: [:index, :new, :create, :edit, :update, :destroy] do
member do
get 'new_child'
post 'create_child'
post 'move/:direction', to: 'quantities#move', as: :move
end
collection do

View File

@ -28,7 +28,7 @@ Redmine::Plugin.register :body_tracking do
ingredients: [:new, :create, :edit, :update, :destroy, :toggle, :toggle_column,
:import],
sources: [:create, :destroy],
quantities: [:new, :create, :edit, :update, :destroy, :move],
quantities: [:new, :create, :edit, :update, :destroy, :move, :new_child, :create_child],
units: [:create, :destroy],
}, require: :loggedin
end