Sha256: 717c2a561b29656d71644d42f63967621854270fcf8fe5e449ff12159528732a

Contents?: true

Size: 1.38 KB

Versions: 6

Compression:

Stored size: 1.38 KB

Contents

((exports) => {
  class BudgetRuleTogglerComponent {
    constructor(options = {}) {
      this.ruleCheckboxes = options.ruleCheckboxes;
      this._runAll();
    }

    _runAll() {
      this.ruleCheckboxes.each((_i, checkbox) => {
        this._bindEvent(checkbox);
        this.run(checkbox);
      });
    }

    _bindEvent(target) {
      $(target).on("change", (event) => {
        this.run(event.target);
      });
    }

    run(target) {
      this.toggleTextInput(target);

      if ($(target).prop("checked")) {
        this.ruleCheckboxes.filter(
          (_i, checkbox) => {
            return checkbox !== target;
          }).prop("checked", false).each(
          (_i, checkbox) => {
            this.toggleTextInput(checkbox);
          });
      }
    }

    toggleTextInput(target) {
      const container = $(target).closest("div");
      if (container.length < 1) {
        return;
      }
      const containerClassPrefix = container.attr("class").
        replace(/^vote_rule_/, "vote_").
        replace(/_enabled_container$/, "");
      const input = $(`[class^="${containerClassPrefix}"][class$="_container"]`);

      if ($(target).prop("checked")) {
        input.slideDown();
      } else {
        input.slideUp();
      }
    }
  }

  exports.DecidimAdmin = exports.DecidimAdmin || {};
  exports.DecidimAdmin.BudgetRuleTogglerComponent = BudgetRuleTogglerComponent;
})(window);

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-admin-0.24.3 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
decidim-admin-0.24.2 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
decidim-admin-0.24.1 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
decidim-admin-0.24.0 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
decidim-admin-0.24.0.rc2 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
decidim-admin-0.24.0.rc1 app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6