Перейти до вмісту

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

Common.js v3: own classes (no vector-pinnable), insert after TOC container
(Common.js v2: diagnostic logs + simpler logic)
(Common.js v3: own classes (no vector-pinnable), insert after TOC container)
Рядок 1: Рядок 1:
/* Per-page sidebar widgets */
/* Per-page sidebar widgets */
$(function () {
$(function () {
  console.log('[nomadica] common.js loaded, wgPageName =', mw.config.get('wgPageName'));
   var pageName = mw.config.get('wgPageName') || '';
   var pageName = mw.config.get('wgPageName') || '';


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


     var cities = [
     var cities = [
Рядок 27: Рядок 19:
       .attr('id', 'mw-panel-cities')
       .attr('id', 'mw-panel-cities')
       .attr('aria-label', 'Міста')
       .attr('aria-label', 'Міста')
       .addClass('vector-toc vector-pinnable-element sidebar-cities-nav');
       .addClass('sidebar-cities-nav');


     var $header = $('<div>')
     var $header = $('<div>').addClass('sidebar-cities-header')
      .addClass('vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned')
       .append($('<h2>').addClass('sidebar-cities-label').text('Міста'));
       .append($('<h2>').addClass('vector-pinnable-header-label').text('Міста'));


     var $list = $('<ul>').addClass('vector-toc-contents');
     var $list = $('<ul>').addClass('sidebar-cities-list');
     cities.forEach(function (city) {
     cities.forEach(function (city) {
       var href = mw.util.getUrl(city.page);
       var href = mw.util.getUrl(city.page);
       var $li = $('<li>').addClass('vector-toc-list-item vector-toc-level-1');
       var $li = $('<li>').addClass('sidebar-cities-item');
       var $a = $('<a>').addClass('vector-toc-link').attr('href', href)
       var $a = $('<a>').addClass('sidebar-cities-link').attr('href', href).text(city.title);
        .append($('<div>').addClass('vector-toc-text').text(city.title));
       $li.append($a);
       $li.append($a);
       $list.append($li);
       $list.append($li);
Рядок 44: Рядок 34:


     $nav.append($header).append($list);
     $nav.append($header).append($list);
     $toc.after($nav);
 
     console.log('[nomadica] cities sidebar injected, $nav=', $nav[0]);
     // Insert AFTER the entire TOC container (not just nav) so it sits below it
    var $tocContainer = $toc.closest('.mw-table-of-contents-container');
    if ($tocContainer.length) {
      $tocContainer.after($nav);
     } else {
      $toc.after($nav);
    }
   }
   }
});
});