raven-8.x-2.x-dev/js/admin.js

js/admin.js
/**
 * @file
 * Sends test message to Sentry.
 */

((Drupal, Sentry) => {
  const printOutput = (element, message) => {
    const output = document.createElement('output');
    output.setAttribute('for', element.id);
    output.setAttribute('role', 'status');
    output.style.display = 'block';
    output.innerHTML = message;
    element.parentNode.insertBefore(output, element.nextSibling);
  };
  const printLog = (element, logs) => {
    logs.forEach((log) => {
      printOutput(
        element,
        Drupal.t('Logged @level: @message', {
          '@level': log.level,
          '@message': log.message,
        }),
      );
    });
  };
  const jsButton = document.getElementById('edit-raven-js-test');
  if (Sentry.isInitialized() && jsButton) {
    jsButton.disabled = false;
    jsButton.classList.remove('is-disabled');
    jsButton.addEventListener('click', (event) => {
      event.preventDefault();
      const id = Sentry.captureMessage(
        Drupal.t('Test message @time.', { '@time': new Date() }),
      );
      printOutput(
        jsButton,
        Drupal.t('Message sent as event %id.', { '%id': id }),
      );
    });
  }
  const phpButton = document.getElementById('edit-raven-php-test');
  if (phpButton) {
    phpButton.disabled = false;
    phpButton.classList.remove('is-disabled');
    phpButton.addEventListener('click', (event) => {
      event.preventDefault();
      fetch(Drupal.url('raven/test'), {
        method: 'POST',
        // The route requires this non-safelisted MIME type for purposes of
        // blocking cross-origin requests.
        headers: { 'Content-Type': 'application/json' },
      })
        .then((response) => response.json())
        .then((data) => {
          printLog(phpButton, data.log);
          printOutput(
            phpButton,
            Drupal.t(data.id ? 'Message sent as event %id.' : 'Send failed.', {
              '%id': data.id,
            }),
          );
        });
    });
  }
  const logsButton = document.getElementById('edit-raven-php-test-logs');
  if (logsButton) {
    logsButton.disabled = false;
    logsButton.classList.remove('is-disabled');
    logsButton.addEventListener('click', (event) => {
      event.preventDefault();
      fetch(Drupal.url('raven/test/logs'), {
        method: 'POST',
        // The route requires this non-safelisted MIME type for purposes of
        // blocking cross-origin requests.
        headers: { 'Content-Type': 'application/json' },
      })
        .then((response) => response.json())
        .then((data) => {
          printLog(logsButton, data.log);
          printOutput(
            logsButton,
            Drupal.t(data.id ? 'Log sent as event %id.' : 'Send failed.', {
              '%id': data.id,
            }),
          );
        });
    });
  }
})(Drupal, window.Sentry);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc