Sha256: 34868d346e6130cbb94e76e1123b62aa63ad277f83d81346a7c6f78a56d02f1a

Contents?: true

Size: 874 Bytes

Versions: 11

Compression:

Stored size: 874 Bytes

Contents

(() => {
  const application = Stimulus.Application.start()

  application.register("page-collapse", class extends Stimulus.Controller {
    static get targets() {
      return [ "list", "collapseLink", "expandLink" ]
    }

    expand() {
      this.toggleLinks(true)
      
      // Fetch children HTML
      fetch(this.element.dataset.url)
        .then(response => response.text())
        .then(function(html) {
          // Render the list
          this.listTarget.innerHTML = html
        }.bind(this))
    }

    collapse() {
      this.toggleLinks(false)

      // Clear the list
      this.listTarget.innerHTML = ""
    }

    // Toggle plus/minus links
    toggleLinks(expanded) {
      this.expandLinkTarget.style.display = expanded ? "none" : "inline-block"
      this.collapseLinkTarget.style.display = expanded ? "inline-block" : "none"
    }
    
  })
})()

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
spina-2.0.2 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-2.0.1 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-2.0.0 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-2.0.0.beta app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-2.0.0.alpha app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.2.0 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.1.4 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.1.3 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.1.2 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.1.1 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js
spina-1.1.0 app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js