From ffd38195a6306b02be84064aef165baa89a8440a Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Thu, 12 Sep 2019 23:28:16 +0200 Subject: [PATCH] Quantity form parent list narrowed to same domain --- app/helpers/quantities_helper.rb | 4 ++-- app/views/quantities/_form.html.erb | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/helpers/quantities_helper.rb b/app/helpers/quantities_helper.rb index fe34c7f..89c9934 100644 --- a/app/helpers/quantities_helper.rb +++ b/app/helpers/quantities_helper.rb @@ -6,8 +6,8 @@ module QuantitiesHelper end end - def parent_options - options = nested_set_options(@quantities, @quantity) do |i| + def parent_options(domain) + options = nested_set_options(@quantities.send(domain), @quantity) do |i| raw("#{' ' * i.level}#{i.name}") end options.unshift([t('.null_parent'), nil]) diff --git a/app/views/quantities/_form.html.erb b/app/views/quantities/_form.html.erb index 33cf33c..ebe892c 100644 --- a/app/views/quantities/_form.html.erb +++ b/app/views/quantities/_form.html.erb @@ -2,9 +2,25 @@

<%= f.select :domain, domain_options, required: true %>

-

- <%= f.select :parent_id, parent_options, required: true, label: :field_parent_quantity %> -

+ <% Quantity.domains.each_key do |d| %> + + <% end %>

<%= f.text_field :name, size: 25, required: true %>

<%= f.text_field :description, size: 200 %>

+ +<%= javascript_tag do %> + function domainChange() { + $('[id^=parent_select_]').prop('disabled', true).hide(); + $('[id=parent_select_'+$('#quantity_domain option:selected').val()+']') + .prop('disabled', false).show(); + } + $('#quantity-form').on('click', '#quantity_domain', domainChange); + + $(document).ready(function() { + domainChange(); + }); +<% end %>