Sha256: ad6951f64703d8d4423d69036ecaf25566603e55fc2ab8f17f6c3387c1c2c661

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

function startPreview(url, id, citationLocator) {
  var element = document.getElementById(id)
  var fields = element.querySelectorAll('input, select');
  var index = 0;

  for (index = 0; index < fields.length; ++index) {
    var textField = fields[index];
    textField.addEventListener('change', (e) => loadPreview(url, citationLocator))
  }
  loadPreview(url, citationLocator)
}

function loadPreview(url, locator) {
  // Build formData object.
  var formData = new FormData(document.querySelector('form'))
  var data = {}
  data.citation = getFieldByLocator(formData, locator)
  var authenticity_token = document.head.querySelector('meta[name="csrf-token"]').content
  var preview = document.getElementById('preview')
  var container = document.getElementById('preview-html')

  fetch(url + '.json',
    {
      method: 'post',
      headers: {
        'X-Requested-With': 'XMLHttpRequest',
        'X-CSRF-Token': authenticity_token,
        'Content-type': 'application/json'
      },
      body: JSON.stringify(data),
      credentials: 'same-origin'
    })
    .then(function(response) {
      // When the page is loaded convert it to json
      return response.json()
    })
    .then(function(json) {
      // get the html value for it
      return json.html
    })
    .then((html) => {
      preview.style.display = 'block'
      container.innerHTML = html
    })
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
works_cited-0.1.16 app/assets/javascripts/works_cited/loadPreview.js
works_cited-0.1.15 app/assets/javascripts/works_cited/loadPreview.js