aboutsummaryrefslogtreecommitdiffstats
path: root/app/javascript/helpers/master_slave.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript/helpers/master_slave.coffee')
-rw-r--r--app/javascript/helpers/master_slave.coffee18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/javascript/helpers/master_slave.coffee b/app/javascript/helpers/master_slave.coffee
new file mode 100644
index 000000000..4866a55e3
--- /dev/null
+++ b/app/javascript/helpers/master_slave.coffee
@@ -0,0 +1,18 @@
+class MasterSlave
+ constructor: (selector)->
+ $(selector).find('[data-master]').each (i, slave)->
+ $slave = $(slave)
+ master = $($slave.data().master)
+ console.log $slave
+ console.log $slave.find("input:disabled, select:disabled")
+ $slave.find("input:disabled, select:disabled").attr "data-slave-force-disabled", "true"
+ toggle = ->
+ val = master.filter(":checked").val() if master.filter("[type=radio]").length > 0
+ val ||= master.val()
+ selected = val == $slave.data().value
+ $slave.toggle selected
+ $slave.find("input, select").filter(":not([data-slave-force-disabled])").attr "disabled", !selected
+ master.change toggle
+ toggle()
+
+export default MasterSlave