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

Common.js v5: diagnostic + manual fallback
(Common.js: portlet Міста через офіційний mw.util.addPortlet)
(Common.js v5: diagnostic + manual fallback)
Рядок 3: Рядок 3:
   $(function () {
   $(function () {
     var pageName = mw.config.get('wgPageName') || '';
     var pageName = mw.config.get('wgPageName') || '';
    console.log('[nomadica] common.js v5, wgPageName =', pageName);
    console.log('[nomadica] mw.util.addPortlet available:', typeof mw.util.addPortlet === 'function');


    // 🇷🇴 Румунія: portlet "Міста" в лівому сайдбарі
     if (pageName === '🇷🇴_Румунія') {
     if (pageName === '🇷🇴_Румунія') {
      console.log('[nomadica] matched Romania, creating cities portlet');
       var cities = [
       var cities = [
         { title: 'Бухарест',    page: 'Румунія/Бухарест'    },
         { title: 'Бухарест',    page: 'Румунія/Бухарест'    },
Рядок 15: Рядок 18:
       ];
       ];


       var portlet = mw.util.addPortlet('p-cities', 'Міста');
       if (typeof mw.util.addPortlet === 'function') {
       if (portlet) {
        var portlet = mw.util.addPortlet('p-cities', 'Міста');
        console.log('[nomadica] portlet created:', portlet);
        cities.forEach(function (city) {
          var link = mw.util.addPortletLink('p-cities', mw.util.getUrl(city.page), city.title);
          console.log('[nomadica] added link:', city.title, link);
        });
       } else {
        console.warn('[nomadica] mw.util.addPortlet NOT available — fallback to manual DOM');
        // Fallback: clone navigation portlet structure
        var $nav = $('#p-navigation');
        if (!$nav.length) {
          console.warn('[nomadica] #p-navigation also not found');
          return;
        }
        var $portlet = $('<div>')
          .attr('id', 'p-cities')
          .addClass('vector-menu mw-portlet mw-portlet-cities');
        var $heading = $('<div>').addClass('vector-menu-heading').text('Міста');
        var $content = $('<div>').addClass('vector-menu-content');
        var $ul = $('<ul>').addClass('vector-menu-content-list');
         cities.forEach(function (city) {
         cities.forEach(function (city) {
           mw.util.addPortletLink('p-cities', mw.util.getUrl(city.page), city.title);
           var $li = $('<li>').addClass('mw-list-item');
          var $a = $('<a>').attr('href', mw.util.getUrl(city.page)).append($('<span>').text(city.title));
          $li.append($a);
          $ul.append($li);
         });
         });
        $content.append($ul);
        $portlet.append($heading).append($content);
        $nav.after($portlet);
        console.log('[nomadica] fallback portlet inserted after #p-navigation');
       }
       }
     }
     }
   });
   });
});
});