MediaWiki:Common.js: Difference between revisions
From MalveraWiki
No edit summary |
No edit summary Tag: Reverted |
||
| Line 7: | Line 7: | ||
var $tooltip = $wrapper.find('.custom-tooltip').empty(); | var $tooltip = $wrapper.find('.custom-tooltip').empty(); | ||
// --- | // --- Obrazek i nazwa z tabeli głównej --- | ||
var | var imageWiki = $wrapper.data('tooltip-image'); | ||
var nameText = $wrapper.data('tooltip-name'); | |||
var | |||
if ( | if (imageWiki || nameText) { | ||
var $ | 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 | |||
var tables = tablesStr.split('##'); | |||
tables.forEach(function(tableDef) { | tables.forEach(function(tableDef) { | ||
var parts = tableDef.split('{{!}}'); | var parts = tableDef.split('{{!}}'); // separator nagłówek | wiersze | ||
if (parts.length < 2) return; | if (parts.length < 2) return; | ||
| Line 46: | Line 51: | ||
var cols = row.split(','); | var cols = row.split(','); | ||
if (cols.length < 2) return; | if (cols.length < 2) return; | ||
var $ | var $tr = $('<tr></tr>'); | ||
cols.forEach(function(c){ $ | cols.forEach(function(c){ $tr.append('<td>'+c.trim()+'</td>'); }); | ||
$tbody.append($ | $tbody.append($tr); | ||
}); | }); | ||
$table.append($tbody); | $table.append($tbody); | ||
$tableContainer.append($table); | $tableContainer.append($table); | ||
$ | $tablesContainer.append($tableContainer); // <-- wszystkie tabele do kontenera | ||
}); | }); | ||
$tooltip.append($tablesContainer); // <-- całość tabel w gridzie | |||
}); | }); | ||
}); | }); | ||
Revision as of 21:17, 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 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
});
});
