summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-03-27 16:07:45 +0100
committerSimon Rettberg2019-03-27 16:07:45 +0100
commit5cfe2040723272175e33eafe55e08796da03b1a3 (patch)
treee1347f2585e5b8971066dc4400f3c3fe431609c6
parent[baseconfig] Remove bootstrap-switch, use checkbox (diff)
downloadslx-admin-5cfe2040723272175e33eafe55e08796da03b1a3.tar.gz
slx-admin-5cfe2040723272175e33eafe55e08796da03b1a3.tar.xz
slx-admin-5cfe2040723272175e33eafe55e08796da03b1a3.zip
[baseconfig] Activate enable/override checkbox when changing a setting
A common mistake is trying to override a setting for a location, but actually forgetting to check the "override" checkbox. Do this automatically as soon as a field is being changed.
-rw-r--r--modules-available/baseconfig/templates/_page.html67
1 files changed, 37 insertions, 30 deletions
diff --git a/modules-available/baseconfig/templates/_page.html b/modules-available/baseconfig/templates/_page.html
index 27b40e37..86ab8362 100644
--- a/modules-available/baseconfig/templates/_page.html
+++ b/modules-available/baseconfig/templates/_page.html
@@ -37,7 +37,7 @@
</label>
</div>
</div>
- <div class="col-md-5">
+ <div class="col-md-5 config-container">
{{{item}}}
<div class="slx-default">
{{#defaultsource}}{{lang_inheritSource}}:{{/defaultsource}}
@@ -83,33 +83,6 @@
<script type="text/javascript">
-function updateShadows(e) {
- var rules = $(e).data('shadows');
- if (!rules) return;
- var currentValue = $(e).val();
- for (var triggerVal in rules) {
- if (!rules.hasOwnProperty(triggerVal))
- continue;
- var targets = rules[triggerVal];
- for (var i = 0; i < targets.length; ++i) {
- var target = targets[i];
- var inp = $('#' + target);
- var selitem = inp.data('selitem');
-
- if (currentValue === triggerVal) {
- inp.prop('disabled', true);
- if (selitem) selitem.disable();
- inp.filter('.multiselect').multiselect('disable');
- } else {
- inp.prop('disabled', false);
- if (selitem) selitem.enable();
- inp.filter('.multiselect').multiselect('enable');
- }
- }
- }
-}
-
-
document.addEventListener("DOMContentLoaded", function () {
/* apply selectize on all multiinput-selectize inputs */
$("input.multiinput").each(function (idx, elem) {
@@ -132,8 +105,42 @@ document.addEventListener("DOMContentLoaded", function () {
$('select.multiselect').filter(':disabled').multiselect('disable');
/* data-shadowing bindings */
+ var updateShadows = function() {
+ var $this = $(this);
+ var rules = $this.data('shadows');
+ if (!rules) return;
+ var currentValue = $this.val();
+ for (var triggerVal in rules) {
+ if (!rules.hasOwnProperty(triggerVal))
+ continue;
+ var targets = rules[triggerVal];
+ for (var i = 0; i < targets.length; ++i) {
+ var target = targets[i];
+ var inp = $('#' + target);
+ var selitem = inp.data('selitem');
+
+ if (currentValue === triggerVal) {
+ inp.prop('disabled', true);
+ if (selitem) selitem.disable();
+ inp.filter('.multiselect').multiselect('disable');
+ } else {
+ inp.prop('disabled', false);
+ if (selitem) selitem.enable();
+ inp.filter('.multiselect').multiselect('enable');
+ }
+ }
+ }
+ };
var $allShadowingFields = $('[data-shadows]');
- $allShadowingFields.on('change', function (event) { updateShadows(event.target); });
- $allShadowingFields.each(function (idx, elem) { updateShadows(elem); });
+ $allShadowingFields.on('change', updateShadows);
+ $allShadowingFields.each(updateShadows);
+
+ var updateCheckbox = function() {
+ var id = '#CB_' + $(this).attr('id');
+ $(id).prop('checked', true);
+ };
+ var $cont = $('.config-container');
+ $cont.find('select, input').on('change', updateCheckbox);
+ $cont.find('input').on('input', updateCheckbox);
});
</script>