<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://editions-independantes.eu/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://editions-independantes.eu/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="https://editions-independantes.eu/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-06-16T16:16:03Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://editions-independantes.eu/index.php?title=MediaWiki:Common.js&amp;diff=1595&amp;oldid=prev</id>
		<title>Adminei le 16 décembre 2025 à 12:08</title>
		<link rel="alternate" type="text/html" href="https://editions-independantes.eu/index.php?title=MediaWiki:Common.js&amp;diff=1595&amp;oldid=prev"/>
		<updated>2025-12-16T12:08:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Tout JavaScript présent ici sera exécuté par tous les utilisateurs à chaque chargement de page. */&lt;br /&gt;
mw.hook( &amp;#039;wikipage.content&amp;#039; ).add( function ( $content ) {&lt;br /&gt;
    // On ne touche qu&amp;#039;aux pages dont le titre commence par &amp;quot;Admin:&amp;quot;&lt;br /&gt;
    var pageName = mw.config.get( &amp;#039;wgPageName&amp;#039; ); // ex. &amp;quot;Admin:Dashboard&amp;quot;&lt;br /&gt;
    if ( pageName &amp;amp;&amp;amp; pageName.indexOf( &amp;#039;Admin:&amp;#039; ) === 0 ) {&lt;br /&gt;
        $content.find( &amp;#039;a[href]&amp;#039; ).each( function () {&lt;br /&gt;
            var $a = $( this );&lt;br /&gt;
            var href = $a.attr( &amp;#039;href&amp;#039; ) || &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
            // On ignore les ancres internes pures (#...).&lt;br /&gt;
            if ( href.indexOf( &amp;#039;#&amp;#039; ) === 0 ) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            $a.attr( &amp;#039;target&amp;#039;, &amp;#039;_blank&amp;#039; )&lt;br /&gt;
              .attr( &amp;#039;rel&amp;#039;, &amp;#039;noopener noreferrer&amp;#039; );&lt;br /&gt;
        } );&lt;br /&gt;
    }&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
   Auto-calcul Département + Région (PageForms) à partir de Pays + Code postal&lt;br /&gt;
   - France : Région = code ISO (FR-ARA, etc.), Département = numéro (ou 2A/2B, ou 971…)&lt;br /&gt;
   - Hors France : Région = Benelux / Suisse / Canada / Reste du monde ; Département vidé&lt;br /&gt;
   ===================================================================== */&lt;br /&gt;
(function () {&lt;br /&gt;
  &amp;#039;use strict&amp;#039;;&lt;br /&gt;
  if (window.__eiRegionDeptInstalledV2) return;&lt;br /&gt;
  window.__eiRegionDeptInstalledV2 = true;&lt;br /&gt;
&lt;br /&gt;
  function normStr(s){ return (s || &amp;#039;&amp;#039;).toString().trim(); }&lt;br /&gt;
  function normPostal(cp){ return normStr(cp).replace(/\s+/g,&amp;#039;&amp;#039;); }&lt;br /&gt;
&lt;br /&gt;
  function countryBucket(paysRaw) {&lt;br /&gt;
    var p = normStr(paysRaw).toLowerCase();&lt;br /&gt;
    if (p === &amp;#039;france&amp;#039;) return &amp;#039;France&amp;#039;;&lt;br /&gt;
    if (p === &amp;#039;belgique&amp;#039; || p === &amp;#039;luxembourg&amp;#039;) return &amp;#039;Benelux&amp;#039;;&lt;br /&gt;
    if (p === &amp;#039;suisse&amp;#039;) return &amp;#039;Suisse&amp;#039;;&lt;br /&gt;
    if (p === &amp;#039;canada&amp;#039;) return &amp;#039;Canada&amp;#039;;&lt;br /&gt;
    return &amp;#039;Reste du monde&amp;#039;; // &amp;quot;Autre&amp;quot; compris&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var deptToRegion = {&lt;br /&gt;
    &amp;#039;01&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;02&amp;#039;:&amp;#039;FR-HDF&amp;#039;,&amp;#039;03&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;04&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;05&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;06&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;07&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;08&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;09&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;10&amp;#039;:&amp;#039;FR-GES&amp;#039;,&lt;br /&gt;
    &amp;#039;11&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;12&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;13&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;14&amp;#039;:&amp;#039;FR-NOR&amp;#039;,&amp;#039;15&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;16&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;17&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;18&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;19&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;21&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&lt;br /&gt;
    &amp;#039;22&amp;#039;:&amp;#039;FR-BRE&amp;#039;,&amp;#039;23&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;24&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;25&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&amp;#039;26&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;27&amp;#039;:&amp;#039;FR-NOR&amp;#039;,&amp;#039;28&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;29&amp;#039;:&amp;#039;FR-BRE&amp;#039;,&amp;#039;2A&amp;#039;:&amp;#039;FR-COR&amp;#039;,&amp;#039;2B&amp;#039;:&amp;#039;FR-COR&amp;#039;,&lt;br /&gt;
    &amp;#039;30&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;31&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;32&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;33&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;34&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;35&amp;#039;:&amp;#039;FR-BRE&amp;#039;,&amp;#039;36&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;37&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;38&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;39&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&lt;br /&gt;
    &amp;#039;40&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;41&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;42&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;43&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;44&amp;#039;:&amp;#039;FR-PDL&amp;#039;,&amp;#039;45&amp;#039;:&amp;#039;FR-CVL&amp;#039;,&amp;#039;46&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;47&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;48&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;49&amp;#039;:&amp;#039;FR-PDL&amp;#039;,&lt;br /&gt;
    &amp;#039;50&amp;#039;:&amp;#039;FR-NOR&amp;#039;,&amp;#039;51&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;52&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;53&amp;#039;:&amp;#039;FR-PDL&amp;#039;,&amp;#039;54&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;55&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;56&amp;#039;:&amp;#039;FR-BRE&amp;#039;,&amp;#039;57&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;58&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&amp;#039;59&amp;#039;:&amp;#039;FR-HDF&amp;#039;,&lt;br /&gt;
    &amp;#039;60&amp;#039;:&amp;#039;FR-HDF&amp;#039;,&amp;#039;61&amp;#039;:&amp;#039;FR-NOR&amp;#039;,&amp;#039;62&amp;#039;:&amp;#039;FR-HDF&amp;#039;,&amp;#039;63&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;64&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;65&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;66&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;67&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;68&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;69&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&lt;br /&gt;
    &amp;#039;70&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&amp;#039;71&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&amp;#039;72&amp;#039;:&amp;#039;FR-PDL&amp;#039;,&amp;#039;73&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;74&amp;#039;:&amp;#039;FR-ARA&amp;#039;,&amp;#039;75&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;76&amp;#039;:&amp;#039;FR-NOR&amp;#039;,&amp;#039;77&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;78&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;79&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&lt;br /&gt;
    &amp;#039;80&amp;#039;:&amp;#039;FR-HDF&amp;#039;,&amp;#039;81&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;82&amp;#039;:&amp;#039;FR-OCC&amp;#039;,&amp;#039;83&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;84&amp;#039;:&amp;#039;FR-PAC&amp;#039;,&amp;#039;85&amp;#039;:&amp;#039;FR-PDL&amp;#039;,&amp;#039;86&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;87&amp;#039;:&amp;#039;FR-NAQ&amp;#039;,&amp;#039;88&amp;#039;:&amp;#039;FR-GES&amp;#039;,&amp;#039;89&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&lt;br /&gt;
    &amp;#039;90&amp;#039;:&amp;#039;FR-BFC&amp;#039;,&amp;#039;91&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;92&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;93&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;94&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&amp;#039;95&amp;#039;:&amp;#039;FR-IDF&amp;#039;,&lt;br /&gt;
    &amp;#039;971&amp;#039;:&amp;#039;FR-GP&amp;#039;,&amp;#039;972&amp;#039;:&amp;#039;FR-MQ&amp;#039;,&amp;#039;973&amp;#039;:&amp;#039;FR-GF&amp;#039;,&amp;#039;974&amp;#039;:&amp;#039;FR-RE&amp;#039;,&amp;#039;976&amp;#039;:&amp;#039;FR-YT&amp;#039;,&amp;#039;975&amp;#039;:&amp;#039;FR-PM&amp;#039;,&amp;#039;986&amp;#039;:&amp;#039;FR-WF&amp;#039;,&amp;#039;987&amp;#039;:&amp;#039;FR-PF&amp;#039;,&amp;#039;988&amp;#039;:&amp;#039;FR-NC&amp;#039;&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  function computeFR(cp) {&lt;br /&gt;
    cp = normPostal(cp);&lt;br /&gt;
    if (!/^\d{5}$/.test(cp)) return null;&lt;br /&gt;
&lt;br /&gt;
    var d3 = cp.slice(0,3);&lt;br /&gt;
    if (deptToRegion[d3]) return { dep: d3, reg: deptToRegion[d3] };&lt;br /&gt;
&lt;br /&gt;
    if (cp.slice(0,2) === &amp;#039;20&amp;#039;) {&lt;br /&gt;
      var n = parseInt(cp,10);&lt;br /&gt;
      var dep = (n &amp;lt;= 20199) ? &amp;#039;2A&amp;#039; : &amp;#039;2B&amp;#039;;&lt;br /&gt;
      return { dep: dep, reg: deptToRegion[dep] || &amp;#039;&amp;#039; };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var d2 = cp.slice(0,2);&lt;br /&gt;
    return { dep: d2, reg: deptToRegion[d2] || &amp;#039;&amp;#039; };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function findField($root, fieldName) {&lt;br /&gt;
    return $root.find(&amp;#039;[name$=&amp;quot;[&amp;#039; + fieldName + &amp;#039;]&amp;quot;]&amp;#039;).first();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function setValue($field, value) {&lt;br /&gt;
    if (!$field.length) return;&lt;br /&gt;
    $field.val(value).trigger(&amp;#039;change&amp;#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function update($form) {&lt;br /&gt;
    var $pays = findField($form,&amp;#039;Pays&amp;#039;);&lt;br /&gt;
    var $cp   = findField($form,&amp;#039;Code_postal&amp;#039;);&lt;br /&gt;
    var $dep  = findField($form,&amp;#039;Departement&amp;#039;);&lt;br /&gt;
    var $reg  = findField($form,&amp;#039;Region&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    if (!$pays.length &amp;amp;&amp;amp; !$cp.length) return;&lt;br /&gt;
&lt;br /&gt;
    var bucket = countryBucket($pays.val());&lt;br /&gt;
&lt;br /&gt;
    if (bucket !== &amp;#039;France&amp;#039;) {&lt;br /&gt;
      setValue($reg, bucket);&lt;br /&gt;
      setValue($dep, &amp;#039;&amp;#039;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var r = computeFR($cp.val());&lt;br /&gt;
    if (!r) return;&lt;br /&gt;
&lt;br /&gt;
    setValue($dep, r.dep);&lt;br /&gt;
    setValue($reg, r.reg);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function($content){&lt;br /&gt;
    // On cible les formulaires PageForms (Special:FormEdit)&lt;br /&gt;
    $content.find(&amp;#039;form&amp;#039;).each(function(){&lt;br /&gt;
      var $form = $(this);&lt;br /&gt;
&lt;br /&gt;
      // recalcul dès qu’on touche Pays/CP&lt;br /&gt;
      $form.on(&amp;#039;change keyup blur&amp;#039;, &amp;#039;[name$=&amp;quot;[Pays]&amp;quot;], [name$=&amp;quot;[Code_postal]&amp;quot;]&amp;#039;, function(){&lt;br /&gt;
        update($form);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // recalcul *juste avant* l&amp;#039;enregistrement (le point clé)&lt;br /&gt;
      $form.on(&amp;#039;submit&amp;#039;, function(){&lt;br /&gt;
        update($form);&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 1er calcul si déjà prérempli&lt;br /&gt;
      update($form);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* PageForms: préfixe automatique pour Diffuseur/Distributeur (combobox) */&lt;br /&gt;
mw.loader.using([&amp;#039;mediawiki.util&amp;#039;]).then(function () {&lt;br /&gt;
&lt;br /&gt;
  function prefixOne($root, prefix) {&lt;br /&gt;
    // PageForms/OOUI: l&amp;#039;input texte est à l&amp;#039;intérieur du widget&lt;br /&gt;
    var $input = $root.find(&amp;#039;input[type=&amp;quot;text&amp;quot;], input.oo-ui-inputWidget-input&amp;#039;).first();&lt;br /&gt;
    if (!$input.length) return;&lt;br /&gt;
&lt;br /&gt;
    var v = ($input.val() || &amp;#039;&amp;#039;).trim();&lt;br /&gt;
    if (!v) return;&lt;br /&gt;
&lt;br /&gt;
    // Si déjà un namespace (ou interwiki), on ne touche pas.&lt;br /&gt;
    if (v.includes(&amp;#039;:&amp;#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    $input.val(prefix + v);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function applyPrefixes() {&lt;br /&gt;
    $(&amp;#039;.js-ns-diffuseur&amp;#039;).each(function () { prefixOne($(this), &amp;#039;Diffuseur:&amp;#039;); });&lt;br /&gt;
    $(&amp;#039;.js-ns-distributeur&amp;#039;).each(function () { prefixOne($(this), &amp;#039;Distributeur:&amp;#039;); });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  $(function () {&lt;br /&gt;
    // À la soumission du formulaire PageForms&lt;br /&gt;
    $(document).on(&amp;#039;submit&amp;#039;, &amp;#039;form.pfForm, form#pfForm&amp;#039;, function () {&lt;br /&gt;
      applyPrefixes();&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Et aussi quand on quitte le champ (confort)&lt;br /&gt;
    $(document).on(&amp;#039;change blur&amp;#039;, &amp;#039;.js-ns-diffuseur, .js-ns-distributeur&amp;#039;, function () {&lt;br /&gt;
      applyPrefixes();&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Adminei</name></author>
	</entry>
</feed>