MediaWiki:Common.js: Difference between revisions

From MalveraWiki
No edit summary
No edit summary
Line 7: Line 7:
         var $tooltip = $wrapper.find('.custom-tooltip').empty();
         var $tooltip = $wrapper.find('.custom-tooltip').empty();


         // --- Obrazek i nazwa przedmiotu ---
         // --- Obrazek i nazwa z parametrów ---
         var $imgLink = $wrapper.find('> a, > span.mw-default-size a').first();
         var imageWiki = $wrapper.data('tooltip-image');
         if ($imgLink.length) {
        var nameText = $wrapper.data('tooltip-name');
             var $clone = $imgLink.clone(); // kopiujemy element MediaWiki
 
             $tooltip.append('<div class="tooltip-item-image" style="text-align:center; margin-bottom:3px;"></div>');
         if (imageWiki) {
             $tooltip.find('.tooltip-item-image').append($clone);
             // Tworzymy kontener obrazka
             // Dodajemy nazwę pod obrazkiem
             var $imgContainer = $('<div class="tooltip-item-image" style="text-align:center; margin-bottom:3px;"></div>');
            var titleText = $imgLink.attr('title') || $imgLink.find('img').attr('alt') || '';
            // Wstawiamy raw wiki-link jako HTML, MediaWiki go zrenderuje
            if (titleText) {
             $imgContainer.html(imageWiki);
                $tooltip.append('<div class="tooltip-item-name" style="text-align:center; font-weight:bold; margin-bottom:3px;">'+titleText+'</div>');
             $tooltip.append($imgContainer);
            }
        }
 
        if (nameText) {
            $tooltip.append('<div class="tooltip-item-name" style="text-align:center; font-weight:bold; margin-bottom:3px;">'+nameText+'</div>');
         }
         }



Revision as of 21:04, 2 February 2026

mw.hook('wikipage.content').add(function ($content) {
    $content.find('.tooltip-wrapper[data-tooltip-tables]').each(function () {
        var $wrapper = $(this);
        var tablesStr = $wrapper.data('tooltip-tables');
        if (!tablesStr) return;

        var $tooltip = $wrapper.find('.custom-tooltip').empty();

        // --- Obrazek i nazwa z parametrów ---
        var imageWiki = $wrapper.data('tooltip-image');
        var nameText = $wrapper.data('tooltip-name');

        if (imageWiki) {
            // Tworzymy kontener obrazka
            var $imgContainer = $('<div class="tooltip-item-image" style="text-align:center; margin-bottom:3px;"></div>');
            // Wstawiamy raw wiki-link jako HTML, MediaWiki go zrenderuje
            $imgContainer.html(imageWiki);
            $tooltip.append($imgContainer);
        }

        if (nameText) {
            $tooltip.append('<div class="tooltip-item-name" style="text-align:center; font-weight:bold; margin-bottom:3px;">'+nameText+'</div>');
        }

        // --- Tutaj generujemy tabele ---
        var tables = tablesStr.split('##');
        tables.forEach(function(tableDef) {
            var parts = tableDef.split('{{!}}');
            if (parts.length < 2) return;

            var header = parts[0].trim();
            var rowsStr = parts[1].trim();
            if (!rowsStr) return;

            var rows = rowsStr.split(';');

            var $tableContainer = $('<div class="tooltip-table-container"></div>');
            if (header) {
                $tableContainer.append('<div class="tooltip-table-header">'+header+'</div>');
            }

            var $table = $('<table class="wikitable sortable"></table>');
            $table.append('<thead><tr><th>Amount</th><th>Chance</th></tr></thead>');
            var $tbody = $('<tbody></tbody>');

            rows.forEach(function(row) {
                var cols = row.split(',');
                if (cols.length < 2) return;
                var $tr = $('<tr></tr>');
                cols.forEach(function(c){ $tr.append('<td>'+c.trim()+'</td>'); });
                $tbody.append($tr);
            });

            $table.append($tbody);
            $tableContainer.append($table);
            $tooltip.append($tableContainer);
        });
    });
});