Jump to content

MediaWiki:Common.js: Difference between revisions

From Megabonk Wiki
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 1: Line 1:
mw.loader.using('mediawiki.api',function(){var api=new mw.Api();var cache={};function extractParts(h){var w=$('<div>').html(h);var ov=w.find('.build-layout-container').first();var st=w.find('.build-strategy').first();return{overviewHTML:ov.length?ov.prop('outerHTML'):'<div>Overview not found.</div>',strategyHTML:st.length?st.prop('outerHTML'):'<div>Strategy not found.</div>'};}function loadBuild(t,cb){if(cache[t])return cb(cache[t]);api.post({action:'parse',format:'json',page:t,prop:'text'}).done(function(r){var html=(r.parse&&r.parse.text&&r.parse.text['*'])||'';var p=extractParts(html);cache[t]={overviewHTML:p.overviewHTML,strategyHTML:p.strategyHTML};cb(cache[t]);}).fail(function(){cb({overviewHTML:'<div>Failed to load.</div>',strategyHTML:'<div>Failed to load.</div>'});});}function onToggle(e){e.preventDefault();var a=$(this);var s=a.attr('data-state')||'closed';var row=a.closest('.build-row--interactive');var title=row.attr('data-page');var panel=$('.build-inline-panel[data-target="'+title.replace(/"/g,'&quot;')+'"]');if(s==='open'){a.attr('data-state','closed').text('Show');panel.hide();return;}$('.build-inline-panel:visible').hide();$('.br-toggle[data-state="open"]').attr('data-state','closed').text('Show');a.attr('data-state','open').text('Hide');panel.show();if(!panel.data('loaded')){loadBuild(title,function(d){panel.find('.tab-panel[data-tab="overview"]').html(d.overviewHTML);panel.find('.tab-panel[data-tab="strategy"]').html(d.strategyHTML);panel.data('loaded','1');});}}function onTab(e){e.preventDefault();var b=$(this);var tab=b.attr('data-tab');var p=b.closest('.build-inline-panel');p.find('.tab-btn').removeClass('active');b.addClass('active');p.find('.tab-panel').hide();p.find('.tab-panel[data-tab="'+tab+'"]').show();}$(document).on('click','.br-toggle',onToggle);$(document).on('click','.build-inline-tabs .tab-btn',onTab);$(document).on('keydown','.br-toggle,.tab-btn',function(e){if(e.key==='Enter'||e.key===' '){$(this).trigger('click');e.preventDefault();}});});
mw.loader.using(['mediawiki.api'],function(){var api=new mw.Api();var cache={};function extractCombined(h){var w=$('<div>').html(h);w.find('#toc,.toc,.vector-toc,.mw-table-of-contents-container,.mw-jump-link').remove();var out='';var ov=w.find('.build-layout-container').first();if(ov.length)out+=ov.prop('outerHTML');var st=w.find('.mb-content').first();if(!st.length)st=w.find('.build-strategy').first();if(st.length)out+=st.prop('outerHTML');return out||h;}
mw.loader.using(['mediawiki.api'],function(){var api=new mw.Api();var THROTTLE_SEC=30;var lastTouch={};function canTouch(t){var n=Date.now();return !lastTouch[t]||(n-lastTouch[t])>THROTTLE_SEC*1000;}function touch(title){if(!canTouch(title))return;lastTouch[title]=Date.now();api.get({action:'query',prop:'revisions',rvprop:'content|timestamp',rvslots:'main',titles:title,format:'json',maxlag:5}).done(function(res){var pages=res.query&&res.query.pages;if(!pages)return;var p=pages[Object.keys(pages)[0]];if(!p||!p.revisions||!p.revisions.length)return;var rev=p.revisions[0];var text=(rev.slots&&rev.slots.main&&rev.slots.main['*'])||rev['*']||'';var baseTs=rev.timestamp;var m=/<!--\s*VOTE_TOUCH:\s*([^>]*)\s*-->/i;var d=new Date();var z=function(n){return n<10?'0'+n:n;};var stamp=''+d.getUTCFullYear()+z(d.getUTCMonth()+1)+z(d.getUTCDate())+z(d.getUTCHours())+z(d.getUTCMinutes())+z(d.getUTCSeconds());if(m.test(text)){text=text.replace(m,'<!-- VOTE_TOUCH: '+stamp+' -->');}else{text+='\n<!-- VOTE_TOUCH: '+stamp+' -->\n';}api.postWithToken('csrf',{action:'edit',title:title,text:text,summary:'Vote sync: refresh Cargo (auto)',minor:1,bot:1,basetimestamp:baseTs,maxlag:5});});}var timer=null;var obs=new MutationObserver(function(muts){var pages=new Set();muts.forEach(function(m){var el=(m.target&&$(m.target).closest('.br-vote[data-page]')[0])||null;if(el){pages.add($(el).attr('data-page'));}});if(timer)clearTimeout(timer);timer=setTimeout(function(){pages.forEach(touch);},500);});obs.observe(document.body,{childList:true,subtree:true});});
function loadBuild(t,cb){if(cache[t])return cb(cache[t]);api.post({action:'parse',format:'json',page:t,prop:'text'}).done(function(r){var h=(r.parse&&r.parse.text&&r.parse.text['*'])||'';var combined=extractCombined(h);var data={html:combined};cache[t]=data;cb(data);}).fail(function(){cb({html:'<div>Failed to load.</div>'});});}
function onToggle(e){e.preventDefault();var a=$(this);var s=a.attr('data-state')||'closed';var row=a.closest('.build-row--interactive');var title=row.attr('data-page');var panel=$('.build-inline-panel[data-target="'+title.replace(/"/g,'&quot;')+'"]');if(s==='open'){a.attr('data-state','closed').text('Show');panel.hide();return;}$('.build-inline-panel:visible').hide();$('.br-toggle[data-state="open"]').attr('data-state','closed').text('Show');a.attr('data-state','open').text('Hide');panel.show();if(!panel.data('loaded')){loadBuild(title,function(d){panel.html(d.html);panel.data('loaded','1');});}}
$(document).on('click','.br-toggle',onToggle);$(document).on('keydown','.br-toggle',function(e){if(e.key==='Enter'||e.key===' '){$(this).trigger('click');e.preventDefault();}});
var THROTTLE_SEC=30;var lastTouch={};function canTouch(t){var n=Date.now();return !lastTouch[t]||(n-lastTouch[t])>THROTTLE_SEC*1000;}
function touch(title){if(!canTouch(title))return;lastTouch[title]=Date.now();api.get({action:'query',prop:'revisions',rvprop:'content|timestamp',rvslots:'main',titles:title,format:'json',maxlag:5}).done(function(res){var pages=res.query&&res.query.pages;if(!pages)return;var p=pages[Object.keys(pages)[0]];if(!p||!p.revisions||!p.revisions.length)return;var rev=p.revisions[0];var text=(rev.slots&&rev.slots.main&&rev.slots.main['*'])||rev['*']||'';var baseTs=rev.timestamp;var m=/<!--\s*VOTE_TOUCH:\s*([^>]*)\s*-->/i;var d=new Date();var z=function(n){return n<10?'0'+n:''+n;};var stamp=''+d.getUTCFullYear()+z(d.getUTCMonth()+1)+z(d.getUTCDate())+z(d.getUTCHours())+z(d.getUTCMinutes())+z(d.getUTCSeconds());if(m.test(text)){text=text.replace(m,'<!-- VOTE_TOUCH: '+stamp+' -->');}else{text+='\n<!-- VOTE_TOUCH: '+stamp+' -->\n';}
api.postWithToken('csrf',{action:'edit',title:title,text:text,summary:'Vote sync: refresh Cargo (auto)',minor:1,bot:1,basetimestamp:baseTs,maxlag:5});});}
var timer=null;var obs=new MutationObserver(function(muts){var pages=new Set();for(var i=0;i<muts.length;i++){var el=$(muts[i].target).closest('.br-vote[data-page]');if(el.length)pages.add(el.attr('data-page'));}if(timer)clearTimeout(timer);timer=setTimeout(function(){pages.forEach(touch);},500);});obs.observe(document.body,{childList:true,subtree:true,characterData:true});});

Revision as of 22:51, 4 October 2025

mw.loader.using(['mediawiki.api'],function(){var api=new mw.Api();var cache={};function extractCombined(h){var w=$('<div>').html(h);w.find('#toc,.toc,.vector-toc,.mw-table-of-contents-container,.mw-jump-link').remove();var out='';var ov=w.find('.build-layout-container').first();if(ov.length)out+=ov.prop('outerHTML');var st=w.find('.mb-content').first();if(!st.length)st=w.find('.build-strategy').first();if(st.length)out+=st.prop('outerHTML');return out||h;}
function loadBuild(t,cb){if(cache[t])return cb(cache[t]);api.post({action:'parse',format:'json',page:t,prop:'text'}).done(function(r){var h=(r.parse&&r.parse.text&&r.parse.text['*'])||'';var combined=extractCombined(h);var data={html:combined};cache[t]=data;cb(data);}).fail(function(){cb({html:'<div>Failed to load.</div>'});});}
function onToggle(e){e.preventDefault();var a=$(this);var s=a.attr('data-state')||'closed';var row=a.closest('.build-row--interactive');var title=row.attr('data-page');var panel=$('.build-inline-panel[data-target="'+title.replace(/"/g,'&quot;')+'"]');if(s==='open'){a.attr('data-state','closed').text('Show');panel.hide();return;}$('.build-inline-panel:visible').hide();$('.br-toggle[data-state="open"]').attr('data-state','closed').text('Show');a.attr('data-state','open').text('Hide');panel.show();if(!panel.data('loaded')){loadBuild(title,function(d){panel.html(d.html);panel.data('loaded','1');});}}
$(document).on('click','.br-toggle',onToggle);$(document).on('keydown','.br-toggle',function(e){if(e.key==='Enter'||e.key===' '){$(this).trigger('click');e.preventDefault();}});
var THROTTLE_SEC=30;var lastTouch={};function canTouch(t){var n=Date.now();return !lastTouch[t]||(n-lastTouch[t])>THROTTLE_SEC*1000;}
function touch(title){if(!canTouch(title))return;lastTouch[title]=Date.now();api.get({action:'query',prop:'revisions',rvprop:'content|timestamp',rvslots:'main',titles:title,format:'json',maxlag:5}).done(function(res){var pages=res.query&&res.query.pages;if(!pages)return;var p=pages[Object.keys(pages)[0]];if(!p||!p.revisions||!p.revisions.length)return;var rev=p.revisions[0];var text=(rev.slots&&rev.slots.main&&rev.slots.main['*'])||rev['*']||'';var baseTs=rev.timestamp;var m=/<!--\s*VOTE_TOUCH:\s*([^>]*)\s*-->/i;var d=new Date();var z=function(n){return n<10?'0'+n:''+n;};var stamp=''+d.getUTCFullYear()+z(d.getUTCMonth()+1)+z(d.getUTCDate())+z(d.getUTCHours())+z(d.getUTCMinutes())+z(d.getUTCSeconds());if(m.test(text)){text=text.replace(m,'<!-- VOTE_TOUCH: '+stamp+' -->');}else{text+='\n<!-- VOTE_TOUCH: '+stamp+' -->\n';}
api.postWithToken('csrf',{action:'edit',title:title,text:text,summary:'Vote sync: refresh Cargo (auto)',minor:1,bot:1,basetimestamp:baseTs,maxlag:5});});}
var timer=null;var obs=new MutationObserver(function(muts){var pages=new Set();for(var i=0;i<muts.length;i++){var el=$(muts[i].target).closest('.br-vote[data-page]');if(el.length)pages.add(el.attr('data-page'));}if(timer)clearTimeout(timer);timer=setTimeout(function(){pages.forEach(touch);},500);});obs.observe(document.body,{childList:true,subtree:true,characterData:true});});