MediaWiki:Common.js: відмінності між версіями

Common.js v2: diagnostic logs + simpler logic
(Common.js: per-page sidebar — Міста на 🇷🇴 Румунія)
 
(Common.js v2: diagnostic logs + simpler logic)
Рядок 1: Рядок 1:
/* Per-page sidebar widgets — TODO: generalize for all country pages */
/* Per-page sidebar widgets */
$(function () {
  console.log('[nomadica] common.js loaded, wgPageName =', mw.config.get('wgPageName'));


mw.loader.using(['mediawiki.util'], function () {
   var pageName = mw.config.get('wgPageName') || '';
   $(function () {
    var pageName = mw.config.get('wgPageName');


    // ========== 🇷🇴 Румунія: Міста sidebar ==========
  // 🇷🇴 Румунія
    if (pageName === '🇷🇴_Румунія') {
  if (pageName === '🇷🇴_Румунія' || pageName.indexOf('Румунія') !== -1 && pageName.indexOf('/') === -1) {
      var $toc = $('#mw-panel-toc');
    console.log('[nomadica] matched Romania country page, injecting cities sidebar');
      if (!$toc.length) return;


      var cities = [
    var $toc = $('#mw-panel-toc');
        { title: 'Бухарест',    page: 'Румунія/Бухарест'    },
    if (!$toc.length) {
        { title: 'Клуж-Напока',  page: 'Румунія/Клуж-Напока' },
       console.warn('[nomadica] #mw-panel-toc not found');
        { title: 'Тімішоара',    page: 'Румунія/Тімішоара'  },
      return;
        { title: 'Брашов',       page: 'Румунія/Брашов'     },
    }
        { title: 'Ясси',        page: 'Румунія/Ясси'        },
        { title: 'Сібіу',        page: 'Румунія/Сібіу'      }
      ];


      var $nav = $('<nav>')
    var cities = [
        .attr('id', 'mw-panel-cities')
      { title: 'Бухарест',    page: 'Румунія/Бухарест'   },
        .attr('aria-label', 'Міста')
      { title: 'Клуж-Напока', page: 'Румунія/Клуж-Напока' },
         .addClass('vector-toc vector-pinnable-element sidebar-cities-nav');
      { title: 'Тімішоара',    page: 'Румунія/Тімішоара'   },
      { title: 'Брашов',       page: 'Румунія/Брашов'     },
      { title: 'Ясси',         page: 'Румунія/Ясси'        },
      { title: 'Сібіу',        page: 'Румунія/Сібіу'       }
    ];


      var $header = $('<div>')
    var $nav = $('<nav>')
        .addClass('vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned')
      .attr('id', 'mw-panel-cities')
        .append(
      .attr('aria-label', 'Міста')
          $('<h2>').addClass('vector-pinnable-header-label').text('Міста')
      .addClass('vector-toc vector-pinnable-element sidebar-cities-nav');
        );


      var $list = $('<ul>').addClass('vector-toc-contents');
    var $header = $('<div>')
       cities.forEach(function (city) {
       .addClass('vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned')
        var href = mw.util.getUrl(city.page);
      .append($('<h2>').addClass('vector-pinnable-header-label').text('Міста'));
        var $li = $('<li>').addClass('vector-toc-list-item vector-toc-level-1');
        var $a = $('<a>')
          .addClass('vector-toc-link')
          .attr('href', href)
          .append($('<div>').addClass('vector-toc-text').text(city.title));
        $li.append($a);
        $list.append($li);
      });


       $nav.append($header).append($list);
    var $list = $('<ul>').addClass('vector-toc-contents');
      $toc.after($nav);
    cities.forEach(function (city) {
     }
      var href = mw.util.getUrl(city.page);
   });
      var $li = $('<li>').addClass('vector-toc-list-item vector-toc-level-1');
       var $a = $('<a>').addClass('vector-toc-link').attr('href', href)
        .append($('<div>').addClass('vector-toc-text').text(city.title));
      $li.append($a);
      $list.append($li);
    });
 
    $nav.append($header).append($list);
    $toc.after($nav);
     console.log('[nomadica] cities sidebar injected, $nav=', $nav[0]);
   }
});
});