User:JamesA/CollapsibleTemplates.js

From Wikivoyage
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$(document).ready(function() {
    importStylesheet('MediaWiki:CollapsibleTemplates.css');

    var slideDuration = (skin == 'vector') ? 150 : 0;

    $('div.collapsibleheader').show();

    $('div.collapsibletemplate.collapsed div.body').hide();
    
    $('table.collapsible.collapsed > tbody > tr:not(:first-child)').toggleClass('hidden');

    $('div.collapsibletemplate div.body').removeClass('show-on-commons');

    function toggleTemplate($element) {
        if ($element.is('tr')) {
            $element
            .parent().parent()
            .toggleClass('collapsed');

            $element.nextAll('tr')
            .toggleClass('hidden');
        } else {
            $element
            .parent()
            .toggleClass('expanded')
            .toggleClass('collapsed')
            .find('div.body')
            .slideToggle(slideDuration);
        }
    }
    var $headings = $('div.collapsibletemplate > div.collapsibleheader, table.collapsible > tbody >tr:first-child');
    $headings.mousedown(function(e) {
        if ($(e.target).is('a')) {
          return true;
        } else {
          toggleTemplate($(this));
          return false;
        }
    });
});