<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.bayernflora.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AUi-custom-show-on-select.js</id>
	<title>MediaWiki:Ui-custom-show-on-select.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.bayernflora.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AUi-custom-show-on-select.js"/>
	<link rel="alternate" type="text/html" href="https://www.bayernflora.de/index.php?title=MediaWiki:Ui-custom-show-on-select.js&amp;action=history"/>
	<updated>2026-10-13T06:49:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Flora von Bayern</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://www.bayernflora.de/index.php?title=MediaWiki:Ui-custom-show-on-select.js&amp;diff=1931&amp;oldid=prev</id>
		<title>imported&gt;Iris Leininger: Die Seite wurde neu angelegt: „/**  * Initiate a select tool that displays other boxes upon selecting an option  * @author Andreas Plank  * @requires jQuery  * @requires $.jI18n as resource …“</title>
		<link rel="alternate" type="text/html" href="https://www.bayernflora.de/index.php?title=MediaWiki:Ui-custom-show-on-select.js&amp;diff=1931&amp;oldid=prev"/>
		<updated>2015-08-12T13:56:25Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „/**  * Initiate a select tool that displays other boxes upon selecting an option  * @author Andreas Plank  * @requires jQuery  * @requires $.jI18n as resource …“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Initiate a select tool that displays other boxes upon selecting an option&lt;br /&gt;
 * @author Andreas Plank&lt;br /&gt;
 * @requires jQuery&lt;br /&gt;
 * @requires $.jI18n as resource dictionary&lt;br /&gt;
 * @requires $.resource&lt;br /&gt;
 * @version 2015-04-23&lt;br /&gt;
 * &lt;br /&gt;
 * This is purely controlled by CSS classes. &lt;br /&gt;
 * Layout is done by setting up div boxes as described below.&lt;br /&gt;
 * Given a semicolon list, this becomes transformed into the show-on-select tool&lt;br /&gt;
 * and the fist select option shows the first &amp;lt;div&amp;gt;, &lt;br /&gt;
 * the second select option shows the second &amp;lt;div&amp;gt; and so forth.&lt;br /&gt;
 * There are two features also ste by CSS classes:&lt;br /&gt;
 * - feature-hide-on-first-empty-option (add an empty option to get all boxes to be hidden)&lt;br /&gt;
 * - feature-show-all-boxes (show all boxes at once)&lt;br /&gt;
 * &lt;br /&gt;
  &amp;lt;div class=&amp;quot;ui-custom_show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;ui-custom_switch transform-semicolonlist-to-show-on-select feature-hide-on-first-empty-option&amp;quot;&amp;gt;&lt;br /&gt;
      Option-one; Option-two; &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;ui-custom_show-by-select&amp;quot;&amp;gt;&lt;br /&gt;
      content one&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;ui-custom_show-by-select&amp;quot;&amp;gt;&lt;br /&gt;
      content two&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*global $, document */ &lt;br /&gt;
/*jslint devel: true, eqeq: true, sloppy: true, stupid: true, todo: true, white: true, indent: 2, plusplus: true */&lt;br /&gt;
function init_ui_custom_show_on_select() {&lt;br /&gt;
  if ($(&amp;#039;div.ui-custom_show-on-select&amp;#039;).length) {&lt;br /&gt;
    $(&amp;#039;div.ui-custom_show-on-select&amp;#039;).each(function () {&lt;br /&gt;
      var &lt;br /&gt;
        $this_show_on_select = $(this),&lt;br /&gt;
        $this_custom_switch = $this_show_on_select.find(&amp;#039;div.ui-custom_switch.transform-semicolonlist-to-show-on-select&amp;#039;),&lt;br /&gt;
        has_uitool_already = ($this_show_on_select.find(&amp;#039;select.ui-custom_show-on-select&amp;#039;).length ? true : false) ,&lt;br /&gt;
        add_feature_hide_at_first_all_boxes = ($this_custom_switch.hasClass(&amp;#039;feature-hide-on-first-empty-option&amp;#039;) ? true : false),&lt;br /&gt;
        add_feature_show_all_boxes = ($this_custom_switch.hasClass(&amp;#039;feature-show-all-boxes&amp;#039;) ? true : false),&lt;br /&gt;
        this_list_to_transform = ( $.trim($this_custom_switch.text()) ? $.trim($this_custom_switch.text()).split(/[\s\t]*;[\s\t]*/g) : &amp;quot;&amp;quot; ),&lt;br /&gt;
        i=0;&lt;br /&gt;
      if (!has_uitool_already) {// do transform the UI tool&lt;br /&gt;
        if (!this_list_to_transform) {&lt;br /&gt;
          // alert();&lt;br /&gt;
          $this_show_on_select.prepend(&lt;br /&gt;
            &amp;#039;&amp;lt;div style=&amp;quot;font-size:small;&amp;quot;&amp;gt;&amp;#039; + $.resource(&amp;#039;showonselect_failureNoListFound&amp;#039;) + &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
          );&lt;br /&gt;
        } else {&lt;br /&gt;
          // fix length : option1; option2  vs. option1; option2; (with final ;)&lt;br /&gt;
          if (!this_list_to_transform.slice(-1)[0]) {  this_list_to_transform.pop();  }&lt;br /&gt;
          // transform the switcher&lt;br /&gt;
          $this_show_on_select.find(&amp;#039;div.ui-custom_switch&amp;#039;).after(&amp;quot;&amp;lt;select class=&amp;#039;ui-custom_show-on-select&amp;#039;&amp;gt;&amp;lt;/select&amp;gt;&amp;quot;);&lt;br /&gt;
          if (add_feature_hide_at_first_all_boxes) { $this_show_on_select.find(&amp;#039;select.ui-custom_show-on-select&amp;#039;).append($( &amp;#039;&amp;lt;option&amp;gt;&amp;lt;/option&amp;gt;&amp;#039; )); }&lt;br /&gt;
          for(i=0;i &amp;lt; this_list_to_transform.length;++i) {&lt;br /&gt;
            $this_show_on_select.find(&amp;#039;select.ui-custom_show-on-select&amp;#039;).append($( &amp;#039;&amp;lt;option&amp;gt;&amp;#039; + this_list_to_transform[i] + &amp;#039;&amp;lt;/option&amp;gt;&amp;#039; ));&lt;br /&gt;
          }&lt;br /&gt;
          if (add_feature_show_all_boxes) { $this_show_on_select.find(&amp;#039;select.ui-custom_show-on-select&amp;#039;).append($( &amp;#039;&amp;lt;option class=&amp;quot;show-all-boxes&amp;quot;&amp;gt;&amp;#039; + $.resource(&amp;#039;showonselect_showAll&amp;#039;) + &amp;#039;&amp;lt;/option&amp;gt;&amp;#039; )); }&lt;br /&gt;
          $this_show_on_select.find( ( add_feature_hide_at_first_all_boxes ? &amp;#039;div.ui-custom_show-by-select&amp;#039; : &amp;#039;div.ui-custom_show-by-select:gt(0)&amp;#039; ) ).hide();&lt;br /&gt;
        }&lt;br /&gt;
        // remove div.ui-custom_switch to prevent a wrong reconstruction&lt;br /&gt;
        $this_show_on_select.find(&amp;#039;div.ui-custom_switch&amp;#039;).remove();&lt;br /&gt;
      }&lt;br /&gt;
      // always bind on also on reexecuting this funxtion anew&lt;br /&gt;
      $(this).find(&amp;#039;select.ui-custom_show-on-select&amp;#039;).on(&lt;br /&gt;
            &amp;#039;change.ui-custom_show-on-select&amp;#039;,// add namespace as well to event change&lt;br /&gt;
        function () {&lt;br /&gt;
          var $this_select_option = $(this).find(&amp;#039;option:selected&amp;#039;),&lt;br /&gt;
            add_feature_hide_at_first_all_boxes = ($(this).find(&amp;#039;option:lt(1)&amp;#039;).text() ? true : false),&lt;br /&gt;
            $this_show_on_select = $this_select_option.parents(&amp;#039;div.ui-custom_show-on-select&amp;#039;),&lt;br /&gt;
            this_selected_0index = $this_select_option.index(),&lt;br /&gt;
            this_show_by_select_0index = this_selected_0index + ( add_feature_hide_at_first_all_boxes ? 1 : 0 );// starts at zero vs. nth-child starts at 1&lt;br /&gt;
          console.log(&amp;quot;this_selected_0index: &amp;quot; + this_selected_0index + &amp;quot; this_show_by_select_0index &amp;quot; + this_show_by_select_0index);&lt;br /&gt;
          $this_show_on_select.find(&amp;#039;div.ui-custom_show-by-select&amp;#039;).hide();&lt;br /&gt;
          if ($this_select_option.hasClass(&amp;#039;show-all-boxes&amp;#039;)) {&lt;br /&gt;
            console.log(&amp;#039;add_feature_show_all_boxes&amp;#039;);&lt;br /&gt;
            console.log($this_show_on_select);&lt;br /&gt;
            $this_show_on_select.find(&amp;#039;div.ui-custom_show-by-select&amp;#039;).fadeIn();&lt;br /&gt;
          } else {&lt;br /&gt;
            console.log(&amp;#039;show-by-select&amp;#039;);&lt;br /&gt;
            console.log(&amp;quot;:nth-child(&amp;quot; + parseInt( this_show_by_select_0index, 10 ) + &amp;quot;)&amp;quot;);&lt;br /&gt;
            $this_show_on_select.find(&amp;quot;div.ui-custom_show-by-select:nth-child(&amp;quot; + parseInt( this_show_by_select_0index, 10 ) + &amp;quot;)&amp;quot;).fadeIn();&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      );&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  // append local resources to global object, &amp;quot;true&amp;quot; = deep extension&lt;br /&gt;
  $.extend(true, $.jI18n, {&lt;br /&gt;
  en: { &lt;br /&gt;
    showonselect_showAll : &amp;#039;Show all&amp;#039;,&lt;br /&gt;
    showonselect_failureNoListFound : &amp;#039;Failure: Could not find the semicolon list found to be transformed into the select option tool.&amp;lt;br/&amp;gt; Please check documentation of JavaScript code in “init_ui_custom_show_on_select()” to have a correct setup.&amp;#039;&lt;br /&gt;
    },&lt;br /&gt;
  de: {&lt;br /&gt;
    showonselect_showAll : &amp;#039;Alles anzeigen&amp;#039;,&lt;br /&gt;
    showonselect_failureNoListFound : &amp;#039;Fehler: Keine Semikolon-Liste gefunden, die transformiert werden könnte in das Auswahl-Helferlein.&amp;lt;br/&amp;gt; Bitte Dokumentation nachlesen in JavaScript Funktion “init_ui_custom_show_on_select()” für eine korrekte Benutzung.&amp;#039;&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  // init_ui_custom_show_on_select();&lt;br /&gt;
  mw.hook(&amp;#039;sf.addTemplateInstance&amp;#039;).add(init_ui_custom_show_on_select).fire(init_ui_custom_show_on_select);// semantic forms &amp;quot;add another&amp;quot; click&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>imported&gt;Iris Leininger</name></author>
	</entry>
</feed>