v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
Difference between revisions of "User:Latias1290/menucustom.js"
Jump to navigation
Jump to search
Latias1290 (talk | contribs) |
Latias1290 (talk | contribs) (test to see if it works as is) |
||
Line 1: | Line 1: | ||
− | + | ;jQuery(function(){ | |
− | function | + | MW=mediaWiki;LEInit=(function($){ |
− | + | console.log($.fn.jquery); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | function | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
var _le = {OPTS:{}}; | var _le = {OPTS:{}}; | ||
− | |||
_le.DEFAULT_OPTS={ | _le.DEFAULT_OPTS={ | ||
menu:{ | menu:{ | ||
Line 32: | Line 8: | ||
} | } | ||
}; | }; | ||
− | |||
− | |||
_le.OPTS_MD={ | _le.OPTS_MD={ | ||
menu:{ | menu:{ | ||
Line 45: | Line 19: | ||
} | } | ||
}; | }; | ||
− | |||
− | |||
function update_opts(){ | function update_opts(){ | ||
if(!'LE_USER_OPTS' in window)window.LE_USER_OPTS={} | if(!'LE_USER_OPTS' in window)window.LE_USER_OPTS={} | ||
_le.OPTS=$.extend(_le.DEFAULT_OPTS,window.LE_USER_OPTS); | _le.OPTS=$.extend(_le.DEFAULT_OPTS,window.LE_USER_OPTS); | ||
} | } | ||
− | |||
update_opts(); | update_opts(); | ||
− | + | O=function(){return _le.OPTS}; | |
− | + | T={ | |
− | + | func:function(o){return !!(o&&o.call);}, | |
− | + | PD:function(e){//preventDefault | |
− | + | if(!e||!e.preventDefault)return; | |
− | + | o=e.preventDefault;if(e&&!!(o&&o.call)) e.preventDefault(); | |
− | |||
− | |||
− | |||
− | |||
− | function | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | T = { | ||
− | func:function(o) { | ||
− | |||
− | |||
− | |||
− | |||
− | PD:function(e) { // | ||
− | if ( !e || !e.preventDefault ) | ||
− | |||
− | |||
− | o = e.preventDefault; | ||
− | |||
− | |||
− | |||
}, | }, | ||
− | + | log:function(s){ | |
− | log:function(s) { | + | if(console&&console.log&&console.log.call)console.log(s); |
− | if (console && console.log && console.log.call) | ||
− | |||
− | |||
}, | }, | ||
− | + | pn:function(s){s=s.toString(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | pn:function(s) { | ||
− | |||
l=window.location; | l=window.location; | ||
− | + | if(!s.indexOf(l.protocol))s=s.replace(l.protocol,''); | |
− | if ( !s.indexOf(l.protocol) ) | + | if(!s.indexOf('//'))s=s.replace('//',''); |
− | + | if(!s.indexOf(l.host))s=s.replace(l.host,''); | |
− | + | s=s.replace(wgScript+'/','').replace(wgScript+'?',''); | |
− | if ( !s.indexOf('//') ) | + | if(s.indexOf('&')+1)s=s.slice(0,s.indexOf('&')); |
− | + | if(s.indexOf('?')+1)s=s.slice(0,s.indexOf('?')); | |
− | + | if(!s.indexOf('title='))s=s.replace('title=',''); | |
− | |||
− | if ( !s.indexOf(l.host) ) | ||
− | |||
− | |||
− | |||
− | s = s.replace(wgScript+'/','') | ||
− | |||
− | |||
− | if ( s.indexOf('&')+1 ) | ||
− | |||
− | |||
− | |||
− | if ( s.indexOf('?')+1 ) | ||
− | |||
− | |||
− | |||
− | if ( !s.indexOf('title=') ) | ||
− | |||
− | |||
− | |||
return s; | return s; | ||
}, | }, | ||
− | }; | + | };A("T",T); |
− | + | function A(a,b){ | |
− | + | if(!b){ | |
− | + | if (typeof a != 'object') return; | |
− | + | for(i in a){ | |
− | function init() { | + | if(i in {}) continue; |
− | link = $("<a>").attr({ | + | _le[i] = a[i] |
− | + | } | |
− | + | } | |
− | + | else _le[a]=b; | |
− | + | return A; | |
+ | } | ||
+ | A('update_opts',update_opts); | ||
+ | function init(){ | ||
+ | if(window.console&&window.console.log) console.log("Loaded LethosorMenu"); | ||
+ | link = $("<a>").attr({href:'#le-menu-show'}).text("LethosorMenu").attr({title:'Shift-Alt-L'}); | ||
menuitem = $("<li>").append(link); | menuitem = $("<li>").append(link); | ||
$("div#p-personal ul").append(menuitem); | $("div#p-personal ul").append(menuitem); | ||
− | |||
− | |||
− | |||
} | } | ||
− | function | + | function user_lethosor(e){T.PD(e);window.location.href="http://dwarffortresswiki.org/index.php/User:Lethosor";} |
− | + | $(document).delegate('[href=#le-lethosor]','click',user_lethosor); | |
− | + | ||
− | + | MS=(function(){ | |
− | $(document).delegate('[href=#le- | + | var MS={active:false,}; |
− | + | MS.$=$("<div>").css({position:'fixed', 'z-index':100, top:'10%', left:'10%', width:'80%', height:'80%', | |
− | MS = ( function() { | + | 'background-color':'white', padding:'1.5em', margin:'-1.5em', 'border-radius':'.8em'}).hide().appendTo('body'); |
− | var MS = { | ||
− | |||
− | |||
− | |||
− | MS.$ = $("<div>").css({ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 'background-color':'white', | ||
− | |||
− | |||
− | |||
− | |||
− | |||
//upper 'o' not #0 | //upper 'o' not #0 | ||
− | MS.$O = $("<div>").css({ | + | MS.$O=$("<div>").css({position:'fixed', 'z-index':99, top:0, left:0, width:'100%', height:'100%', |
− | + | 'background-color':'rgba(100,100,100,0.5)'}).hide().appendTo('body') | |
− | + | .attr({href:'#le-menu-hide'}); | |
− | + | MS.content=$("<div>").addClass("le-cf").css({padding:'1em'}).appendTo(MS.$); | |
− | + | MS.header=$("<h3>").css({'text-align':'center'}).html('<a href="#le-lethosor" target="_blank"><span style="color:#093">L</span><span style="color:#084">e</span>'+ | |
− | + | '<span style="color:#075">t</span><span style="color:#066">h</span><span style="color:#057">o</span>'+ | |
− | + | '<span style="color:#048">s</span><span style="color:#039">o</span><span style="color:#02a">r</span></a><span style="color:#c40">Menu</span>') | |
− | 'background-color':'rgba(100,100,100,0.5)' | + | .appendTo(MS.content); |
− | + | MS.cfs={main:MS.content};//content frames | |
− | + | MS.ccf='content';//current | |
− | + | MS.close=$("<a>").attr({href:'#le-menu-hide'}).text('Close').css({'text-align':'right','float':'right','color':'red'}) | |
− | + | .attr({title:'Esc'}).prependTo(MS.$); | |
− | MS.content = $("<div>").addClass("le-cf").css({ | ||
− | |||
− | |||
− | |||
− | MS.header = $("<h3>").css({ | ||
− | |||
− | |||
− | |||
− | MS.cfs = { | ||
− | |||
− | |||
− | |||
− | MS.ccf = 'content'; // current | ||
− | |||
− | MS.close = $("<a>").attr({ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | MS.show = function(evt) { | + | MS.show=function(evt){ |
T.PD(evt); | T.PD(evt); | ||
− | if ( | + | if(O().menu.show_overlay) MS.$O.stop().fadeIn(500); |
− | |||
− | |||
− | |||
MS.$.stop().fadeIn(350); | MS.$.stop().fadeIn(350); | ||
− | $('body').css({ | + | $('body').css({overflow:'hidden'}); |
− | + | MS.active=true; | |
− | |||
− | MS.active = true; | ||
}; | }; | ||
− | + | MS.hide=function(evt){ | |
− | MS.hide = function(evt) { | ||
T.PD(evt); | T.PD(evt); | ||
MS.$O.stop().fadeOut(400); | MS.$O.stop().fadeOut(400); | ||
MS.$.stop().fadeOut(250); | MS.$.stop().fadeOut(250); | ||
− | $('body').css({ | + | $('body').css({overflow:'auto'}); |
− | + | MS.active=false | |
− | |||
− | MS.active = false | ||
}; | }; | ||
− | $(document).on('click', '[href=#le-menu-show]', MS.show); | + | $(document).on('click','[href=#le-menu-show]',MS.show); |
− | $(document).on('click', '[href=#le-menu-hide]', MS.hide); | + | $(document).on('click','[href=#le-menu-hide]',MS.hide); |
− | MS.csize = function(w, h) { | + | MS.csize=function(w,h){ |
− | if (w+'' == '') | + | if(w+''=='')return; |
− | + | var w,h,l,t; | |
− | + | w=parseInt(w);h=parseInt(h); | |
− | + | l=50-w/2;t=50-h/2; | |
− | var w | + | MS.$.animate({width:w+'%',height:h+'%',top:t+'%',left:l+'%'},300); |
− | |||
− | |||
− | |||
− | |||
− | w = parseInt(w); | ||
− | |||
− | l = 50 - w / 2; | ||
− | |||
− | |||
− | MS.$.animate({ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
}; | }; | ||
− | + | MS.cf=function(n){ //Content frame - switch to specified | |
− | MS.cf = function(n) { // Content frame - switch to specified | + | if(!n)return MS.ccf; |
− | if(!n) | ||
− | |||
− | |||
− | |||
MS.ccf=n;$('.le-cf').hide(); | MS.ccf=n;$('.le-cf').hide(); | ||
− | + | if(!MS.cfs[n])MS.cfs[n]=$('<div class="le-cf">').appendTo(MS.$); | |
− | if( !MS.cfs[n] ) | ||
− | |||
− | |||
− | |||
return MS.cfs[n].show(); | return MS.cfs[n].show(); | ||
− | }; | + | }; |
− | + | MS.reset=function(){ | |
− | MS.reset = function() { | + | MS.show();MS.cf('main');MS.csize(80,80); |
− | MS.show(); | ||
− | |||
− | |||
}; | }; | ||
− | _links = {}; | + | _links={}; |
− | + | MS.linklist=$("<ul>").appendTo(MS.content); | |
− | MS.linklist = $("<ul>").appendTo(MS.content); | + | MS.addLink=function(name,func){ |
− | + | el=$("<li>").append($("<a>").attr('href','#')).appendTo(MS.linklist); | |
− | + | a=PM().plugs[name].title; | |
− | + | el.find('a').text((a)?a:name); | |
− | + | el.on('click','a',function(e){T.PD(e);func(PM);}); | |
− | + | _links[name]={func:func,link:el}; | |
− | |||
− | |||
− | |||
− | MS.addLink = function(name, func) { | ||
− | el = $("<li>").append($("<a>").attr('href','#')).appendTo(MS.linklist); | ||
− | a = PM().plugs[name].title; | ||
− | |||
− | el.find('a').text((a) ? a : name); | ||
− | el.on('click','a', function(e) { | ||
− | |||
− | |||
− | |||
− | _links[name] = { | ||
− | |||
− | |||
− | |||
}; | }; | ||
− | + | var _=MS;return function(){return _;}; | |
− | |||
− | |||
− | |||
− | |||
− | |||
})(); | })(); | ||
− | + | A('menuScreen',MS); | |
− | + | ||
− | PM = (function() { // Plugins manager | + | PM=(function(){ //Plugins manager |
− | var PM = { | + | var PM={plugs:{}}; |
− | + | PM.register=function(name,func,opts){ | |
− | + | opts=$.extend({},opts); | |
− | PM.register = function(name, func, opts) { | + | if(PM.plugs[name]&&!opts.override) return |
− | opts = $.extend({},opts); | + | if(T.func(func)){ |
− | if(PM.plugs[name] && !opts.override) | + | PM.plugs[name]=func(PM); |
− | |||
− | |||
− | |||
− | if(T.func(func)) { | ||
− | PM.plugs[name] = func | ||
− | |||
− | |||
− | |||
} | } | ||
+ | if(T.func(PM.plugs[name].init))PM.plugs[name].init(PM); | ||
} | } | ||
− | PM.addMenuLink = function(name) { | + | PM.addMenuLink=function(name){ |
− | ml = (T.func(PM.plugs[name].menuLinkData))?PM.plugs[name].menuLinkData():{name:name,func:PM.plugs[name].main}; //call menuLinkData if func, else use defaults | + | ml=(T.func(PM.plugs[name].menuLinkData))?PM.plugs[name].menuLinkData():{name:name,func:PM.plugs[name].main}; //call menuLinkData if func, else use defaults |
MS().addLink(ml.name,ml.func); | MS().addLink(ml.name,ml.func); | ||
} | } | ||
− | + | return function(){return PM}; | |
− | return function() { | + | })();A('PM',PM); |
− | + | ||
− | + | keyf=function(e){ | |
− | })(); | + | if(e.metaKey||e.ctrlKey)return; |
− | + | var M=MS(); | |
− | + | if(e.altKey&&e.shiftKey&&e.keyCode==76){//S-A-l | |
− | + | if(!M.active)M.show();return; | |
− | |||
− | |||
− | |||
− | |||
− | var | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | if(!M.active)return; | |
− | + | T.PD(e); | |
− | + | if(e.keyCode==27){//esc | |
− | + | M.hide(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | T.PD(e); | ||
− | if (e.keyCode == 27) { //esc | ||
− | |||
} | } | ||
}; | }; | ||
$(document).bind('keydown', keyf); | $(document).bind('keydown', keyf); | ||
− | + | ||
local=(function(){ | local=(function(){ | ||
− | __t=this; | + | __t=this;return function(k){return k?__t[k]:__t;} |
− | + | })();A('local',local); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | })(); | ||
− | |||
init(); | init(); | ||
− | + | ||
+ | function test(PM){return {main:function(){alert("This is a test plugin:\n"+PM)},title:"Test plugin v0.0.1", init:function(){PM.addMenuLink("Test")}}} | ||
+ | PM().register("Test", test); | ||
+ | //PM().addMenuLink("Test"); | ||
+ | |||
function link_opts(PM){ | function link_opts(PM){ | ||
var t={}; | var t={}; | ||
Line 529: | Line 256: | ||
} | } | ||
PM().register("Links",link_opts); | PM().register("Links",link_opts); | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function tt_disable(PM){ //stack overflow 1027762 | function tt_disable(PM){ //stack overflow 1027762 | ||
var t={}; | var t={}; | ||
Line 585: | Line 290: | ||
MS().cf('tt_disable'); | MS().cf('tt_disable'); | ||
t.f=MS().cfs[MS().cf()]; | t.f=MS().cfs[MS().cf()]; | ||
− | t.f.html('').append($("<p>").text(" | + | t.f.html('').append($("<p>").text("LethosorMenu: JavaScript plugin manager")); |
t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f); | t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f); | ||
}; | }; | ||
Line 593: | Line 298: | ||
return t; | return t; | ||
} | } | ||
− | + | PM().register("TTDisable",tt_disable) | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function about(PM){ | function about(PM){ | ||
var t={}; | var t={}; | ||
Line 639: | Line 306: | ||
MS().cf('about'); | MS().cf('about'); | ||
t.f=MS().cfs[MS().cf()]; | t.f=MS().cfs[MS().cf()]; | ||
− | t.f.html('').append($("<p>").text(" | + | t.f.html('').append($("<p>").text("LethosorMenu: JavaScript plugin manager")); |
t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f); | t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f); | ||
}; | }; | ||
Line 648: | Line 315: | ||
PM.addMenuLink("About"); | PM.addMenuLink("About"); | ||
}; | }; | ||
− | t.title="About | + | t.title="About LethosorMenu"; |
return t; | return t; | ||
} | } | ||
PM().register("About",about); | PM().register("About",about); | ||
− | |||
window.LE=_le; | window.LE=_le; | ||
− | if ( T.func(window.LELoad) ) | + | if(T.func(window.LELoad))window.LELoad();return _le; |
− | |||
− | |||
− | |||
}); | }); | ||
+ | LEInitCheck=function(){ | ||
+ | if($.fn.jquery!='1.9.1') return setTimeout(LEInitCheck, 500); | ||
+ | else window.LE=LEInit(jQuery); return LE; | ||
+ | };LEInitCheck(); | ||
+ | });importScriptURI("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"); | ||
+ | if(!'LELL' in window)window.LELL=[];window.LELoad=function(f){ | ||
+ | LELL.push(f);if('LE'in window){while(LELL.length){if(LE.T.func(LELL[0]))LELL[0](jQuery,LE);LELL.shift();}} | ||
+ | }; |
Revision as of 18:05, 27 November 2014
;jQuery(function(){
MW=mediaWiki;LEInit=(function($){
console.log($.fn.jquery);
var _le = {OPTS:{}};
_le.DEFAULT_OPTS={
menu:{
show_overlay:true
}
};
_le.OPTS_MD={
menu:{
desc:'Menu settings',
data:{
show_overlay:{
desc:'Show overlay',
type:'b'
}
}
}
};
function update_opts(){
if(!'LE_USER_OPTS' in window)window.LE_USER_OPTS={}
_le.OPTS=$.extend(_le.DEFAULT_OPTS,window.LE_USER_OPTS);
}
update_opts();
O=function(){return _le.OPTS};
T={
func:function(o){return !!(o&&o.call);},
PD:function(e){//preventDefault
if(!e||!e.preventDefault)return;
o=e.preventDefault;if(e&&!!(o&&o.call)) e.preventDefault();
},
log:function(s){
if(console&&console.log&&console.log.call)console.log(s);
},
pn:function(s){s=s.toString();
l=window.location;
if(!s.indexOf(l.protocol))s=s.replace(l.protocol,'');
if(!s.indexOf('//'))s=s.replace('//','');
if(!s.indexOf(l.host))s=s.replace(l.host,'');
s=s.replace(wgScript+'/','').replace(wgScript+'?','');
if(s.indexOf('&')+1)s=s.slice(0,s.indexOf('&'));
if(s.indexOf('?')+1)s=s.slice(0,s.indexOf('?'));
if(!s.indexOf('title='))s=s.replace('title=','');
return s;
},
};A("T",T);
function A(a,b){
if(!b){
if (typeof a != 'object') return;
for(i in a){
if(i in {}) continue;
_le[i] = a[i]
}
}
else _le[a]=b;
return A;
}
A('update_opts',update_opts);
function init(){
if(window.console&&window.console.log) console.log("Loaded LethosorMenu");
link = $("<a>").attr({href:'#le-menu-show'}).text("LethosorMenu").attr({title:'Shift-Alt-L'});
menuitem = $("<li>").append(link);
$("div#p-personal ul").append(menuitem);
}
function user_lethosor(e){T.PD(e);window.location.href="http://dwarffortresswiki.org/index.php/User:Lethosor";}
$(document).delegate('[href=#le-lethosor]','click',user_lethosor);
MS=(function(){
var MS={active:false,};
MS.$=$("<div>").css({position:'fixed', 'z-index':100, top:'10%', left:'10%', width:'80%', height:'80%',
'background-color':'white', padding:'1.5em', margin:'-1.5em', 'border-radius':'.8em'}).hide().appendTo('body');
//upper 'o' not #0
MS.$O=$("<div>").css({position:'fixed', 'z-index':99, top:0, left:0, width:'100%', height:'100%',
'background-color':'rgba(100,100,100,0.5)'}).hide().appendTo('body')
.attr({href:'#le-menu-hide'});
MS.content=$("<div>").addClass("le-cf").css({padding:'1em'}).appendTo(MS.$);
MS.header=$("<h3>").css({'text-align':'center'}).html('<a href="#le-lethosor" target="_blank"><span style="color:#093">L</span><span style="color:#084">e</span>'+
'<span style="color:#075">t</span><span style="color:#066">h</span><span style="color:#057">o</span>'+
'<span style="color:#048">s</span><span style="color:#039">o</span><span style="color:#02a">r</span></a><span style="color:#c40">Menu</span>')
.appendTo(MS.content);
MS.cfs={main:MS.content};//content frames
MS.ccf='content';//current
MS.close=$("<a>").attr({href:'#le-menu-hide'}).text('Close').css({'text-align':'right','float':'right','color':'red'})
.attr({title:'Esc'}).prependTo(MS.$);
MS.show=function(evt){
T.PD(evt);
if(O().menu.show_overlay) MS.$O.stop().fadeIn(500);
MS.$.stop().fadeIn(350);
$('body').css({overflow:'hidden'});
MS.active=true;
};
MS.hide=function(evt){
T.PD(evt);
MS.$O.stop().fadeOut(400);
MS.$.stop().fadeOut(250);
$('body').css({overflow:'auto'});
MS.active=false
};
$(document).on('click','[href=#le-menu-show]',MS.show);
$(document).on('click','[href=#le-menu-hide]',MS.hide);
MS.csize=function(w,h){
if(w+''=='')return;
var w,h,l,t;
w=parseInt(w);h=parseInt(h);
l=50-w/2;t=50-h/2;
MS.$.animate({width:w+'%',height:h+'%',top:t+'%',left:l+'%'},300);
};
MS.cf=function(n){ //Content frame - switch to specified
if(!n)return MS.ccf;
MS.ccf=n;$('.le-cf').hide();
if(!MS.cfs[n])MS.cfs[n]=$('<div class="le-cf">').appendTo(MS.$);
return MS.cfs[n].show();
};
MS.reset=function(){
MS.show();MS.cf('main');MS.csize(80,80);
};
_links={};
MS.linklist=$("<ul>").appendTo(MS.content);
MS.addLink=function(name,func){
el=$("<li>").append($("<a>").attr('href','#')).appendTo(MS.linklist);
a=PM().plugs[name].title;
el.find('a').text((a)?a:name);
el.on('click','a',function(e){T.PD(e);func(PM);});
_links[name]={func:func,link:el};
};
var _=MS;return function(){return _;};
})();
A('menuScreen',MS);
PM=(function(){ //Plugins manager
var PM={plugs:{}};
PM.register=function(name,func,opts){
opts=$.extend({},opts);
if(PM.plugs[name]&&!opts.override) return
if(T.func(func)){
PM.plugs[name]=func(PM);
}
if(T.func(PM.plugs[name].init))PM.plugs[name].init(PM);
}
PM.addMenuLink=function(name){
ml=(T.func(PM.plugs[name].menuLinkData))?PM.plugs[name].menuLinkData():{name:name,func:PM.plugs[name].main}; //call menuLinkData if func, else use defaults
MS().addLink(ml.name,ml.func);
}
return function(){return PM};
})();A('PM',PM);
keyf=function(e){
if(e.metaKey||e.ctrlKey)return;
var M=MS();
if(e.altKey&&e.shiftKey&&e.keyCode==76){//S-A-l
if(!M.active)M.show();return;
}
if(!M.active)return;
T.PD(e);
if(e.keyCode==27){//esc
M.hide();
}
};
$(document).bind('keydown', keyf);
local=(function(){
__t=this;return function(k){return k?__t[k]:__t;}
})();A('local',local);
init();
function test(PM){return {main:function(){alert("This is a test plugin:\n"+PM)},title:"Test plugin v0.0.1", init:function(){PM.addMenuLink("Test")}}}
PM().register("Test", test);
//PM().addMenuLink("Test");
function link_opts(PM){
var t={};
t.a={//actions
v:['View','/$1'],
e:['Edit','?title=$1&action=edit'],
a:['New topic','?title=$1&action=edit§ion=new'],
h:['History','?title=$1&action=history'],
u:['Subpages','/Special:PrefixIndex/$1/'],
};
t.ac={//action contexts
content:['v','e','h','u'],
talk:['v','e','a','h'],
special:['v'],
user:['v','e','h','u'],
user_talk:['v','e','h','a']
};
t.acx='content';
t.p='';
t.to=[];
t.toca=function(){for(var i=0;i<t.to.length;i++)clearTimeout(t.to[i]);t.to=[]};
t.toa=function(f,s){t.to.push(setTimeout(f,s))};
t.help=$("<div>").css({position:'absolute',width:'15em','background-color':'#000',color:'#fff',
'text-align':'left','border-radius':3,'font-family':'Menlo, Courier, Monaco, monospace',
'font-size':'10pt','white-space':'pre',padding:2}).hide().appendTo('body');
t.help.update=function(){
var a=[];
var titles=[];
for(var i=0;i<t.ac[t.acx].length;i++){
a.push(t.a[t.ac[t.acx][i]])
titles.push(t.ac[t.acx][i])
}
t.help.text('');
for(var i=0;i<a.length;i++){
t.help.html(t.help.html()+'<span style="color:#0f0">'+titles[i]+'</span>:'+a[i][0]+'\n');
}
t.help.html(t.help.html()+'<span style="color:#0f0">Esc</span>:Hide menu\n<span style="color:#0f0">Shift-Esc</span>:Disable menu');
return t.help;
};
t.ad=500;t.hs=function(){t.help.stop(1,1).fadeIn(t.ad)};
t.hh=function(){t.help.stop(1,1).fadeOut(t.ad)};
t.over=function(e){
//console.log('over',e,this);
T.PD(e);
var a=$(this);if(!a||!a.attr||!T.func(a.attr))return;
var href=a.attr('href');
if(a.hasClass('external')||href[0]=='#'||href.toLowerCase().indexOf('javascript')==0)return;//prevent hashes, javascript, and external links
var ao=a.offset();
t.help.hide().css({
top:ao.top+a.outerHeight()+2, // outerHeight helps w/ top-of-page edit tabs, etc
left:Math.max(0,Math.min($(document).width()-t.help.width(),ao.left-(t.help.width()/2-a.width()/2)))
});
t.toca();t.toa(t.hs,1000)
t.p=T.pn(a.attr('href'));
t.acx='content';
if(t.p.split(':')[0].slice(-4).toLowerCase()=='talk')
t.acx='talk';
if(t.p.split(':')[0].toLowerCase()=='user'){
if(t.acx=='talk') t.acx='user_talk';
else t.acx='user';
}
if(t.p.split(':')[0].toLowerCase()=='special')
t.acx='special';
t.help.update();
$('body').on('keypress',t.key);
};
t.out=function(e){
//console.log('out',e,this);
$('body').off('keypress',t.key);
t.hh();t.toca();
};
t.key=function(e){
T.PD(e);k=String.fromCharCode(e.which).toLowerCase();
if(t.a[k]&&t.ac[t.acx].indexOf(k)+1)window.location=wgScript+t.a[k][1].replace('$1',t.p);
};
t.init=function(){
$('body').on('mouseover','a',t.over);
$('body').on('mouseout','a',t.out);
};
t.cache={list:{}};
return t;
}
PM().register("Links",link_opts);
function tt_disable(PM){ //stack overflow 1027762
var t={};
t.over=function(){
$this = $(this);
$this.data('title', $this.attr('title'));
$this.attr('title', '');
};
t.out=function(){
$this = $(this);
$this.attr('title', $this.data('title'));
};
t.text=$("<div>");
t.update=function(){
t.text.html('<p>');
};
t.enabled=0;
t.enable=function(){
t.enabled=1;t.update();
$(document).on('mouseover','a',t.over).on('mouseout','a',t.out);
};
$(t.enable)
t.disable=function(){
t.enabled=0;t.update();
$(document).off('mouseover','a',t.over).off('mouseout','a',t.out);
};
t.init=function(){
PM.addMenuLink("TTDisable");
};
t.title="Tooltip manager";
t.main=function(){
MS().csize(40,30);
MS().cf('tt_disable');
t.f=MS().cfs[MS().cf()];
t.f.html('').append($("<p>").text("LethosorMenu: JavaScript plugin manager"));
t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f);
};
t.quit=function(){
MS().reset();
};
return t;
}
PM().register("TTDisable",tt_disable)
function about(PM){
var t={};
t.main=function(){
MS().csize(60,80);
MS().cf('about');
t.f=MS().cfs[MS().cf()];
t.f.html('').append($("<p>").text("LethosorMenu: JavaScript plugin manager"));
t.ql=$("<a>").attr('href','#').text("Back").on('click',function(e){T.PD(e);t.quit();}).appendTo(t.f);
};
t.quit=function(){
MS().reset();
};
t.init=function(PM){
PM.addMenuLink("About");
};
t.title="About LethosorMenu";
return t;
}
PM().register("About",about);
window.LE=_le;
if(T.func(window.LELoad))window.LELoad();return _le;
});
LEInitCheck=function(){
if($.fn.jquery!='1.9.1') return setTimeout(LEInitCheck, 500);
else window.LE=LEInit(jQuery); return LE;
};LEInitCheck();
});importScriptURI("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
if(!'LELL' in window)window.LELL=[];window.LELoad=function(f){
LELL.push(f);if('LE'in window){while(LELL.length){if(LE.T.func(LELL[0]))LELL[0](jQuery,LE);LELL.shift();}}
};