MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 37: Line 37:
     }
     }
   });
   });
});
// ── Verse copy & download ────────────────────────────────────────
$(document).ready(function () {
  // Copy verse text
  $(document).on('click', '.copy-verse-btn', function () {
    var $btn = $(this);
    var line1 = $btn.data('line1') || '';
    var line2 = $btn.data('line2') || '';
    var text = line2 ? line1 + '\n' + line2 : line1;
    if (navigator.clipboard && window.isSecureContext) {
      navigator.clipboard.writeText(text).then(function () {
        $btn.addClass('copied').text('✓');
        setTimeout(function () { $btn.removeClass('copied').text('⧉'); }, 1800);
      });
    } else {
      var $t = $('<textarea>').val(text).appendTo('body');
      $t[0].select();
      document.execCommand('copy');
      $t.remove();
      $btn.addClass('copied').text('✓');
      setTimeout(function () { $btn.removeClass('copied').text('⧉'); }, 1800);
    }
  });
  // Download verse as .txt
  $(document).on('click', '.download-verse-btn', function () {
    var $btn = $(this);
    var id  = $btn.data('verse-id') || 'verse';
    var line1 = $btn.data('line1') || '';
    var line2 = $btn.data('line2') || '';
    var text = line2 ? line1 + '\n' + line2 : line1;
    var blob = new Blob([ text ], { type: 'text/plain;charset=utf-8' });
    var url  = URL.createObjectURL(blob);
    var $a  = $('<a>').attr({ href: url, download: id + '.txt' }).appendTo('body');
    $a[0].click();
    $a.remove();
    URL.revokeObjectURL(url);
    $btn.text('✓');
    setTimeout(function () { $btn.text('↓'); }, 1800);
  });
});
});