sul-dlss/argo

View on GitHub
app/javascript/controllers/nested_form_controller.js

Summary

Maintainability
A
0 mins
Test Coverage
import { Controller } from '@hotwired/stimulus'

export default class extends Controller {
  static targets = ['add_item', 'template']
  static values = { selector: String }

  addAssociation (event) {
    event.preventDefault()
    const content = this.templateTarget.innerHTML.replace(/TEMPLATE_RECORD/g, new Date().valueOf())
    this.add_itemTarget.insertAdjacentHTML('beforebegin', content)
  }

  removeAssociation (event) {
    event.preventDefault()
    const item = event.target.closest(this.selectorValue)
    item.querySelectorAll('input').forEach((element) => element.setAttribute('required', false))
    item.querySelector("input[name*='_destroy']").value = 1
    item.style.display = 'none'
  }
}