<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AMw-customcollapsible.js</id>
	<title>MediaWiki:Mw-customcollapsible.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AMw-customcollapsible.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=MediaWiki:Mw-customcollapsible.js&amp;action=history"/>
	<updated>2026-09-22T02:44:14Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Open Source Ecology - Germany</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.opensourceecology.de/index.php?title=MediaWiki:Mw-customcollapsible.js&amp;diff=14820&amp;oldid=prev</id>
		<title>Andreas Plank: Die Seite wurde neu angelegt: „/*global jQuery, $, mw, console, mediaWiki */ /*jslint maxerr: 50, indent: 2 */  /*  * change click-text based on MediaWiki's collapsible-element-mechanism (jQ…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.de/index.php?title=MediaWiki:Mw-customcollapsible.js&amp;diff=14820&amp;oldid=prev"/>
		<updated>2018-06-04T12:30:09Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;global jQuery, $, mw, console, mediaWiki: &lt;/span&gt; &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;jslint maxerr: 50, indent: 2: &lt;/span&gt;  /*  * change click-text based on MediaWiki&amp;#039;s collapsible-element-mechanism (jQ…“&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*global jQuery, $, mw, console, mediaWiki */&lt;br /&gt;
/*jslint maxerr: 50, indent: 2 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * change click-text based on MediaWiki's collapsible-element-mechanism (jQuery)&lt;br /&gt;
 * that are triggered from outside a mw-collapsible-class, using the socalled&lt;br /&gt;
 * 'mw-customtoggle-something' CSS class. This class of the triggering element defines&lt;br /&gt;
 * what id will be collapsible. Example:&lt;br /&gt;
 *&lt;br /&gt;
 * somewhere: span.mw-customtoggle-**myKey**&lt;br /&gt;
 *&lt;br /&gt;
 * div ─ .mw-collapsible  id='mw-customcollapsible-**myKey**'&lt;br /&gt;
 * │     └ [.mw-collapsed]&lt;br /&gt;
 * │&lt;br /&gt;
 * └─ div.mw-collapsible-content&lt;br /&gt;
 *&lt;br /&gt;
 * @dependecy: $.resource() 'CollapseBox_captionExpand', 'CollapseBox_captionCollapse', 'CollapseBox_toolTipCollapse' : 'CollapseBox_toolTipExpand'&lt;br /&gt;
 * @dependeciy:&lt;br /&gt;
 * CSS - pseudoclass:&lt;br /&gt;
 * span.pseudolink {&lt;br /&gt;
 *   color:#0645AD;&lt;br /&gt;
 * }&lt;br /&gt;
 * span.pseudolink:hover, span.pseudolink:focus {&lt;br /&gt;
 *   text-decoration: underline;&lt;br /&gt;
 *   cursor:pointer;&lt;br /&gt;
 * }&lt;br /&gt;
 *&lt;br /&gt;
 * Toggle all&lt;br /&gt;
 * &lt;br /&gt;
 * $('.decisiontree').each (function (i, element) { $(element).find('.mw-customtoggle.is-collapsed').trigger('click') });&lt;br /&gt;
 * $('.decisiontree').each (function (i, element) { $(element).find('.mw-customtoggle').not('.is-collapsed').trigger('click') });&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
window.init_MwCustomCollapse_clickText = function () {&lt;br /&gt;
  'use strict';&lt;br /&gt;
  // search first for id of mw-customcollapsible-**myKey** and then initiate the elements&lt;br /&gt;
  // that trigger the media wiki based customcollapsible boxes&lt;br /&gt;
  var jMwCollapsible = $('.mw-collapsible[id^=&amp;quot;mw-customcollapsible&amp;quot;]');&lt;br /&gt;
  if (jMwCollapsible.length) {&lt;br /&gt;
    jMwCollapsible.each(function () {&lt;br /&gt;
      var $thisCustomCollapsible = $(this), &lt;br /&gt;
      idThisCollapsible = $thisCustomCollapsible.attr('id'),&lt;br /&gt;
        /**&lt;br /&gt;
        * toggle the corresponding custom toggler&lt;br /&gt;
        * &lt;br /&gt;
        * adds class is-collapsed (then showing expandible text)&lt;br /&gt;
        * @param {selector} element the element to target&lt;br /&gt;
        * @param {sting} showCase 'show expandible' or 'show collapsible'&lt;br /&gt;
        * @returns {undefined}&lt;br /&gt;
        */&lt;br /&gt;
       toggleCustomToggler = function (element, showCase) {&lt;br /&gt;
         var $thisToggler = $(element)&lt;br /&gt;
         , thisHasDataAttr = Boolean($thisToggler.attr('data-expandtext')) || Boolean($thisToggler.attr('data-collapsetext')) || false&lt;br /&gt;
         , thisExpandText = $thisToggler.attr('data-expandtext') || $.resource('CollapseBox_captionExpand')&lt;br /&gt;
         , thisExpandTooltip = $.resource('CollapseBox_toolTipExpand')&lt;br /&gt;
         , thisCollapseText = $thisToggler.attr('data-collapsetext') || $.resource('CollapseBox_captionCollapse')&lt;br /&gt;
         , thisCollapseTooltip = $.resource('CollapseBox_toolTipExpand')&lt;br /&gt;
         , thisTitle = (showCase === 'show expandible' ? thisExpandTooltip : thisCollapseTooltip)&lt;br /&gt;
         , thisToggleText = (showCase  === 'show expandible'? thisExpandText : thisCollapseText)&lt;br /&gt;
         , thisHtml = $thisToggler.html()&lt;br /&gt;
         ;&lt;br /&gt;
         &lt;br /&gt;
         &lt;br /&gt;
         if (!$thisToggler.hasClass('pseudolink')) {&lt;br /&gt;
             $thisToggler.addClass('pseudolink');&lt;br /&gt;
         }&lt;br /&gt;
         if(showCase === 'show expandible') {&lt;br /&gt;
           $thisToggler.addClass('is-collapsed');&lt;br /&gt;
         } else {&lt;br /&gt;
           $thisToggler.removeClass('is-collapsed');&lt;br /&gt;
         }&lt;br /&gt;
         $thisToggler&lt;br /&gt;
           .attr('title', thisTitle)&lt;br /&gt;
           /* keep html when there is no data-expandtext or data-collapsetext */ &lt;br /&gt;
           .html(thisHasDataAttr ? undefined : thisToggleText);&lt;br /&gt;
         return;&lt;br /&gt;
       };&lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
      if (idThisCollapsible.indexOf('mw-customcollapsible-') === 0) {&lt;br /&gt;
      // id of collapsible box&lt;br /&gt;
        var wasCollapsed = true&lt;br /&gt;
          , classCustomToggler = idThisCollapsible.replace('mw-customcollapsible', 'mw-customtoggle'),&lt;br /&gt;
          // wasCollapsed = $thisCustomCollapsible.hasClass('mw-collapsed'),&lt;br /&gt;
          $collapseToggler = $('.' + classCustomToggler);&lt;br /&gt;
        &lt;br /&gt;
        /**&lt;br /&gt;
         * Listen on triggered events of the collapsible content (from jquery.makeCollapsible.js)&lt;br /&gt;
         */&lt;br /&gt;
        $thisCustomCollapsible.on('afterExpand.mw-collapsible', function () {&lt;br /&gt;
          classCustomToggler = $(this).attr('id').replace('mw-customcollapsible', 'mw-customtoggle');&lt;br /&gt;
          $('.' + classCustomToggler).each( function (i, element) {&lt;br /&gt;
            toggleCustomToggler(element, 'show collapsible');&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
            &lt;br /&gt;
        /**&lt;br /&gt;
         * Listen on triggered events of the collapsible content (from jquery.makeCollapsible.js)&lt;br /&gt;
         */&lt;br /&gt;
        $thisCustomCollapsible.on('afterCollapse.mw-collapsible', function () {&lt;br /&gt;
          classCustomToggler = $(this).attr('id').replace('mw-customcollapsible', 'mw-customtoggle');&lt;br /&gt;
          $('.' + classCustomToggler).each( function (i, element) {&lt;br /&gt;
            toggleCustomToggler(element, 'show expandible');&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
        wasCollapsed = $(this).hasClass('mw-collapsed') ;&lt;br /&gt;
        if( Boolean(mw.util.getParamValue('debug'))) {&lt;br /&gt;
          console.log('DEBUG this class: ' &lt;br /&gt;
          + $(this).attr('class')&lt;br /&gt;
          + ', wasCollapsed ' + (wasCollapsed ? 'yes' : 'no')&lt;br /&gt;
          );&lt;br /&gt;
        }&lt;br /&gt;
        // bind each corresponding class and also toggle text (can have attribute data-expandtext/data-collapsetext)&lt;br /&gt;
        $collapseToggler.each (function (i, element) {&lt;br /&gt;
          if(Boolean(mw.util.getParamValue('debug'))) {&lt;br /&gt;
            console.log('DEBUG this collapseToggler: ' &lt;br /&gt;
            + $(this).attr('class')&lt;br /&gt;
            + ', wasCollapsed ' + (wasCollapsed ? 'yes' : 'no')&lt;br /&gt;
            );&lt;br /&gt;
          }&lt;br /&gt;
          toggleCustomToggler(element, wasCollapsed ? 'show expandible' : 'show collapsible' );&lt;br /&gt;
        });&lt;br /&gt;
        /*&lt;br /&gt;
        */&lt;br /&gt;
      }// if mw-customcollapsible&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  return null;&lt;br /&gt;
};// init_MwCustomCollapse_clickText()&lt;br /&gt;
&lt;br /&gt;
jQuery( document ).ready( function( $ ) {&lt;br /&gt;
  init_MwCustomCollapse_clickText();&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Andreas Plank</name></author>
	</entry>
</feed>