diff --git a/app/javascript/controllers/knob_controller.js b/app/javascript/controllers/knob_controller.js index f8413cb76..d097a824c 100644 --- a/app/javascript/controllers/knob_controller.js +++ b/app/javascript/controllers/knob_controller.js @@ -3,26 +3,36 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { static targets = [ "field", "option", "slider" ] - optionChanged(e) { - this.#setIndex(e.target.getAttribute("data-index")) + connect() { + this.#index = this.#selectedOption.dataset.index } - sliderChanged(e) { - const index = e.target.value - this.#setIndex(index) - this.#setValue(index) + optionChanged({ target }) { + this.#index = target.dataset.index } - #setIndex(index) { + sliderChanged({ target }) { + this.#index = target.value + } + + get #selectedOption() { + return this.optionTargets.find(option => { + return option.checked + }) + } + + set #index(index) { this.fieldTarget.style.setProperty("--knob-index", `${index}`); - this.sliderTarget.value = index; + this.sliderTarget.value = index } - #setValue(index) { - const option = this.optionTargets.find(option => { - return option.dataset.index === index; - }); + set #value(index) { + this.#optionForIndex(index).checked = true + } - option.checked = true; + #optionForIndex(index) { + return this.optionTargets.find(option => { + return option.dataset.index === index; + }) } } diff --git a/app/views/entropy/_auto_close.html.erb b/app/views/entropy/_auto_close.html.erb index db12171b7..fe0eb1c3a 100644 --- a/app/views/entropy/_auto_close.html.erb +++ b/app/views/entropy/_auto_close.html.erb @@ -4,24 +4,24 @@
Auto-close after…
- <%= form_with model: model, url: url || collection_path(model), data: { controller: "form" } do |form| %> - <%= render "entropy/knob", - knob_options: collection_auto_close_options.map(&:first).map(&:to_i), - label: "Days until auto-close", - period: model.auto_close_period, - field_name: url ? "entropy_configuration[auto_close_period]" : "collection[auto_close_period]" %> + <%= form_with model: model, url: url, data: { controller: "form" } do |form| %> + <%= render "entropy/knob", + form: form, + name: :auto_close_period, + knob_options: collection_auto_close_options.map(&:first).map(&:to_i), + label: "Days until auto-close" %> <% end %>Fall back to Considering after…
- <%= form_with model: model, url: url || collection_path(model), data: { controller: "form" } do |form| %> - <%= render "entropy/knob", - knob_options: collection_auto_close_options.map(&:first).map(&:to_i), - label: "Days until auto-close", - period: model.auto_reconsider_period, - field_name: url ? "entropy_configuration[auto_reconsider_period]" : "collection[auto_reconsider_period]" %> + <%= form_with model: model, url: url, data: { controller: "form" } do |form| %> + <%= render "entropy/knob", + form: form, + name: :auto_reconsider_period, + knob_options: collection_auto_close_options.map(&:first).map(&:to_i), + label: "Days until auto-close" %> <% end %>