Sha256: cbcadbd37af6e4df4f9eb574298dbdb3dec0ee00c986f26548090001764b6734

Contents?: true

Size: 1.32 KB

Versions: 10

Compression:

Stored size: 1.32 KB

Contents

Alchemy.on = function (eventName, baseSelector, targetSelector, callback) {
  var baseNode = document.querySelector(baseSelector)
  baseNode.addEventListener(eventName, function (evt) {
    var targets = Array.from(baseNode.querySelectorAll(targetSelector))
    var currentNode = evt.target
    while (currentNode !== baseNode) {
      if (targets.includes(currentNode)) {
        callback.call(currentNode, evt)
        return
      }
      currentNode = currentNode.parentElement
    }
  });
}

Alchemy.ajax = function(method, url, data) {
  var xhr = new XMLHttpRequest()
  var token = document.querySelector('meta[name="csrf-token"]').attributes.content.textContent
  var promise = new Promise(function (resolve, reject) {
    xhr.onload = function() {
      try {
        resolve({
          data: JSON.parse(xhr.responseText),
          status: xhr.status
        })
      } catch (error) {
        reject(new Error(JSON.parse(xhr.responseText).error))
      }
    };
    xhr.onerror = function() {
      reject(new Error(xhr.statusText))
    }
  });
  xhr.open(method, url);
  xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');
  xhr.setRequestHeader('Accept', 'application/json');
  xhr.setRequestHeader('X-CSRF-Token', token)
  if (data) {
    xhr.send(JSON.stringify(data))
  } else {
    xhr.send()
  }

  return promise
}

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
alchemy_cms-4.6.7 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.6 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.5 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.5.1 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.4 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.3 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.2 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.1 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.6.0 app/assets/javascripts/alchemy/alchemy.utils.js
alchemy_cms-4.5.0 app/assets/javascripts/alchemy/alchemy.utils.js