MediaWiki:MARCexporter.js

De Wikincat
Revisão de 13h08min de 6 de maio de 2024 por Jaider.ferreira (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
/* jshint esversion: 10 */
(function () {
  // Função que gera o arquivo ISO
  function download(filename, content) {
    const element = document.createElement('a');
    element.setAttribute(
      'href',
      `data:application/marc;charset=utf-8,${encodeURIComponent(content)}`,
    );
    element.setAttribute('download', filename);
    element.style.display = 'none';
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
  }

  // Se tiver uma div "isoFormat" na página/documento...
  const isoFormat = document.getElementById('isoFormat');
  if (isoFormat) {
    isoFormat.innerHTML = isoFormat.innerHTML.replace(
      / /g,
      String.fromCharCode(32),
    ); // &NonBreakingSpace
    const content = isoFormat.textContent;
    // eslint-disable-next-line no-control-regex
    const filename = `${content.split(/\x1D/).length - 1}_records.mrc`;

    const downloadButton = document.getElementById('downloadButton');
    downloadButton.removeAttribute('style');
    downloadButton.setAttribute(
      'value',
      `Exportar ${content.split(/\x1D/).length - 1} registros`,
    );

    // Ao clicar no botão "downloadButton", chama a função download() abaixo
    document
      .getElementById('downloadButton')
      .addEventListener('click', () => download(filename, content), false);
  }
})();