User:BZPN/MassRollback2.js: Difference between revisions
From Test Wiki
Content deleted Content added
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
} |
} |
||
this.createUI(); |
this.createUI(); |
||
// Try to enhance to Codex after UI is present (only if styles loaded) |
|||
if (mw.loader.getState && (mw.loader.getState('codex-styles') === 'ready' || mw.loader.getState('codex-search-styles') === 'ready')) { |
|||
this.applyCodexClasses(); |
|||
| ⚫ | |||
this.bindEvents(); |
this.bindEvents(); |
||
this.fetchUserStats(); |
this.fetchUserStats(); |
||
| Line 25: | Line 29: | ||
$('#mw-content-text').prepend($toggleButton).prepend($container); |
$('#mw-content-text').prepend($toggleButton).prepend($container); |
||
}, |
|||
// Apply Codex CSS-only classes when styles are available; keep MW UI as fallback |
|||
| ⚫ | |||
try { |
|||
// Buttons: map MediaWiki UI modifiers to Codex equivalents and keep both for compatibility |
|||
$('#mass-rollback-container').find('button.mw-ui-button').each(function() { |
|||
const $btn = $(this); |
|||
$btn.addClass('cdx-button'); |
|||
if ($btn.hasClass('mw-ui-progressive')) { |
|||
$btn.addClass('cdx-button--action-progressive'); |
|||
} |
|||
if ($btn.hasClass('mw-ui-destructive')) { |
|||
$btn.addClass('cdx-button--action-destructive'); |
|||
} |
|||
if ($btn.hasClass('mw-ui-quiet')) { |
|||
$btn.addClass('cdx-button--weight-quiet'); |
|||
} |
|||
}); |
|||
// Inputs: add Codex input class to enhance styling when available |
|||
$('#mass-rollback-container').find('input[type="text"], input[type="date"], select').each(function() { |
|||
const $el = $(this); |
|||
$el.addClass('cdx-text-input__input'); |
|||
// Optional: wrap with Codex container if not already wrapped |
|||
if (!$el.parent().hasClass('cdx-text-input')) { |
|||
$el.wrap('<div class="cdx-text-input"></div>'); |
|||
} |
|||
}); |
|||
| ⚫ | |||
// Non-fatal: just skip Codex enhancements |
|||
console.warn('Codex class application skipped:', e); |
|||
} |
|||
}, |
}, |
||
| Line 381: | Line 417: | ||
}; |
}; |
||
// Load stable MW modules and try Codex CSS-only styles if present (1.39+) |
|||
// Ładujemy stabilne moduły MW; bez OOUI, aby uniknąć problemów z loaderem |
|||
| ⚫ | |||
| ⚫ | |||
var baseDeps = [ |
|||
'mediawiki. |
'mediawiki.api', |
||
'mediawiki. |
'mediawiki.util', |
||
'mediawiki. |
'mediawiki.notify' |
||
]; |
|||
var codexDep = null; |
|||
| ⚫ | |||
try { |
|||
// Prefer the smaller set if available, else full; else skip |
|||
if (mw.loader.getState('codex-search-styles')) { |
|||
| ⚫ | |||
codexDep = 'codex-search-styles'; |
|||
| ⚫ | |||
} else if (mw.loader.getState('codex-styles')) { |
|||
| ⚫ | |||
codexDep = 'codex-styles'; |
|||
} |
|||
} catch (e) { /* ignore */ } |
|||
// Also load legacy mediawiki.ui when present to keep fallback look |
|||
var legacyUI = []; |
|||
if (mw.loader.getState('mediawiki.ui')) legacyUI.push('mediawiki.ui'); |
|||
if (mw.loader.getState('mediawiki.ui.button')) legacyUI.push('mediawiki.ui.button'); |
|||
var deps = baseDeps.concat(legacyUI); |
|||
if (codexDep) deps.push(codexDep); |
|||
| ⚫ | |||
$(function() { try { MassRollback.init(); } catch (e) { console.error(e); } }); |
|||
}).catch(function() { |
|||
// Final fallback: try to init anyway |
|||
$(function() { try { MassRollback.init(); } catch (e) { console.error(e); } }); |
|||
}); |
}); |
||
}); |
})(); |
||
})(jQuery, mediaWiki); |
})(jQuery, mediaWiki); |
||