MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(fix missing })
(markHiddenFormFields() adjust to template:Hidden)
Zeile 53: Zeile 53:
  
 
/**
 
/**
* @description: formats background of form elements created by template:Hidden,
+
  @description indicates form elements created by template:Hidden
   CSS .collapsecontent specific to Offene-Naturführer
+
  having class indicateHiddenInputs or other fields
* @requires https://www.mediawiki.org/wiki/Extension:Semantic_Forms
+
 
* @requires CSS class indicateHiddenInputs or other fields
+
   structure of template:Hidden:
* @requires CSS class indicateFilledFormElements
+
  div.mw-collapsible
* @returns {undefined}
+
    └ div.mw-collapsible-content.indicateHiddenInputs
 +
 
 +
  @return null|true
 
  */
 
  */
 
window.markHiddenFormFields = function () {
 
window.markHiddenFormFields = function () {
   'use strict';
+
   "use strict";
 
   var jDivHiddenFormTexts = $(
 
   var jDivHiddenFormTexts = $(
 
     // select all inputs that have definite values
 
     // select all inputs that have definite values
       'div.collapsecontent.indicateHiddenInputs * input'
+
       'div.mw-collapsible-content.indicateHiddenInputs * input'
 
     ).filter(
 
     ).filter(
       function () { return this.value.length > 0; }
+
       function () { return this.value.length > 0 }
 
     )
 
     )
 
     .add(
 
     .add(
 
     // select only textarea not being empty
 
     // select only textarea not being empty
       'div.collapsecontent.indicateHiddenInputs * textarea:not(:empty)'
+
       'div.mw-collapsible-content.indicateHiddenInputs * textarea:not(:empty)'
 
     ),
 
     ),
 
     /*
 
     /*
Zeile 86: Zeile 88:
 
   if (jDivHiddenFormTexts.length) {
 
   if (jDivHiddenFormTexts.length) {
 
     jDivHiddenFormTexts
 
     jDivHiddenFormTexts
       .closest('.collapsebox')
+
       .closest(".mw-collapsible")
 
       .css({'border-left': '2px solid #ce5c00'})
 
       .css({'border-left': '2px solid #ce5c00'})
       .find('div.switcher')
+
       .find(".mw-collapsible-toggle")
 
       .css(bgcolor_darker);
 
       .css(bgcolor_darker);
 
     //indicate the fields itself
 
     //indicate the fields itself

Version vom 27. Juni 2018, 11:43 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
/*
 * @requires: MediaWiki:Mw-customcollapsible.js
 * @requires: MediaWiki:WikiEditor-insert-Zitat.js
 */
 
/**
 * global resource string dictionary
 *
 * $.jI18n[iso-language-cod][resourceKey], e.g.
 * $.jI18n = { 
 *   en: { CollapseBox_captionCollapse : '(show less)' },
 *   de: { CollapseBox_captionCollapse : '(weniger anzeigen)' }
 * };
 * 
 * Nomenclature proposal: if an extra plugin is used, strings can be designated by prefixing them:
 * “plugin_toolTipSomthing” otherwise just “toolTipSomthing” (global string). So it’s more clear if
 * a string is intended to be global or plugin specific.
 * @augments $
 * @type object
 */
$.jI18n = {
  de: {
    CollapseBox_captionCollapse :        ' (weniger anzeigen) ',
    CollapseBox_captionExpand :          ' (mehr...) ',
    CollapseBox_toolTipCollapse :        '(klicken um Zusatzinformationen zu verbergen)',
    CollapseBox_toolTipExpand :          '(klicken um Zusatzinformationen anzuzeigen)'
  },
  en: {
    CollapseBox_captionCollapse :        ' (show less) ',
    CollapseBox_captionExpand :          ' (more...) ',
    CollapseBox_toolTipCollapse :        '(click to hide information below)',
    CollapseBox_toolTipExpand :          '(click to show more information below)'
  }
};
/**
 * @description Get resource string (e.g. text messages, image URLs) for a given language, based on a string-key
 *  If no resource is defined in a given language for a resource key, the resource for 'en' will be returned,
 *  if this is missing as well an error message is returned “MISSING RESOURCE: ...”.
 * @augments $
 * @requires mw.config for getting global variables
 * @requires $.jI18n global language resource keys and their translated strings
 * @param {string} resourceKey key for the resource
 * @returns {String}
 */
$.resource = function (resourceKey) {
  var lang = mw.config.get('wgUserLanguage').split('-')[0]; // language: 'pt-BR', 'de-formal', etc.
  return ($.jI18n[lang] && $.jI18n[lang][resourceKey] ?
      $.jI18n[lang][resourceKey] :
      ($.jI18n.en[resourceKey]) ? $.jI18n.en[resourceKey] : 'MISSING RESOURCE: no $.jI18n.en.' + resourceKey + ' defined.');
};


/**
   @description indicates form elements created by template:Hidden
  having class indicateHiddenInputs or other fields

   structure of template:Hidden:
   div.mw-collapsible
    └ div.mw-collapsible-content.indicateHiddenInputs

   @return null|true
 */
window.markHiddenFormFields = function () {
  "use strict";
  var jDivHiddenFormTexts = $(
    // select all inputs that have definite values
      'div.mw-collapsible-content.indicateHiddenInputs * input'
    ).filter(
      function () { return this.value.length > 0 }
    )
    .add(
    // select only textarea not being empty
      'div.mw-collapsible-content.indicateHiddenInputs * textarea:not(:empty)'
    ),
    /*
    pale orange:
    hsv →  36 20 99 36 10 99  36 05 99
           #fce8ca  #fcf2e3   #fcf7f0
    pale yellow
    hsv → 50 18 100  50 10 100
          #fff7d0    #fffbe6
    */
    bgcolor =       {'background-color':'#fffbe6'},
    bgcolor_darker = {'background-color':'#fff7d0'};

// <div>
  if (jDivHiddenFormTexts.length) {
    jDivHiddenFormTexts
      .closest(".mw-collapsible")
      .css({'border-left': '2px solid #ce5c00'})
      .find(".mw-collapsible-toggle")
      .css(bgcolor_darker);
    //indicate the fields itself
    jDivHiddenFormTexts
      .css(bgcolor); //pale orange
    return true;
  } else {
    return null;
  }
// <td> implement in Template:Hidden
}; // markHiddenFormFields()


///////////////////////
// Load scripts page specific:
switch (mw.config.get( 'wgPageName' )) { // Minimize the pages on which the code will be loaded
  case 'Hilfe:Gemeinfreie_Patente_(Public_Domain)':
  case 'Benutzer:Andreas_Plank/Hilfe_–_Gemeinfreie_Patente_(Public_Domain)':
    mw.loader.load( mw.config.get('wgScriptPath') + '/index.php?title=MediaWiki:SearchTools.js&action=raw&ctype=text/javascript' );
  break;
};
///////////////////////

// click-text modifications for mw-customcollapsible triggering from outside of mw-collapsible
mw.loader.load( mw.config.get('wgScriptPath') + '/index.php?title=MediaWiki:Mw-customcollapsible.js&action=raw&ctype=text/javascript' );

switch (mw.config.get('wgAction')) {
  case 'edit':
  case 'submit':
    // Wizard to insert template:Zitat
    mw.loader.load( mw.config.get('wgScriptPath') + '/index.php?title=MediaWiki:WikiEditor-insert-Zitat.js&action=raw&ctype=text/javascript' );
  break;
}
jQuery(document).ready(function($) {
  if(mw.config.get( 'wgAction' )==='formedit'
  || mw.config.get( 'wgCanonicalSpecialPageName' )==='FormEdit'){
    markHiddenFormFields();
  }
});