MediaWiki:Common.js

From MalveraWiki
Revision as of 21:17, 2 February 2026 by Niebieski (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
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 tabeli głównej ---
        var imageWiki = $wrapper.data('tooltip-image');
        var nameText = $wrapper.data('tooltip-name');

        if (imageWiki || nameText) {
            var $header = $('<div class="tooltip-header"></div>');
            if (imageWiki) {
                var $imgContainer = $('<div class="tooltip-item-image"></div>');
                $imgContainer.html(imageWiki); // raw wiki-link
                $header.append($imgContainer);
            }
            if (nameText) {
                var $nameContainer = $('<div class="tooltip-item-name"></div>').text(nameText);
                $header.append($nameContainer);
            }
            $tooltip.append($header);
        }

        // --- Kontener tabel ---
        var $tablesContainer = $('<div class="tooltip-tables-container"></div>');

        var tables = tablesStr.split('##'); // separator między tabelami
        tables.forEach(function(tableDef) {
            var parts = tableDef.split('{{!}}'); // separator nagłówek | wiersze
            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);
            $tablesContainer.append($tableContainer); // <-- wszystkie tabele do kontenera
        });

        $tooltip.append($tablesContainer); // <-- całość tabel w gridzie
    });
});