MediaWiki:Live EriCSSon.js: Difference between revisions
Appearance
Content deleted Content added
mNo edit summary |
m Maintenance: Global identifier "$j" has been deprecated mw:ResourceLoader/Migration_guide_(users)#MediaWiki_1.17 |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
mw.loader.load( ['jquery.ui'] ); |
|||
if ( typeof ( $ ) === 'undefined' ) $ = $j ; |
|||
var live_ericsson = { |
var live_ericsson = { |
||
use_css_cookie : 'Live_EriCSSon_useCSS' , |
|||
init : function () { |
init : function () { |
||
// if ( mw.config.get('wgNamespaceNumber') != 0 ) return ; |
// if ( mw.config.get('wgNamespaceNumber') != 0 ) return ; |
||
// if ( mw.config.get('wgAction') != 'view' ) return ; |
// if ( mw.config.get('wgAction') != 'view' ) return ; |
||
var self = this ; |
var self = this ; |
||
var portletLink = mw.util.addPortletLink( 'p-tb', '#', 'Live EriCSSon','t-live-ericsson'); |
|||
$(portletLink).click ( function () { |
$(portletLink).click ( function () { |
||
self.options() ; |
self.options() ; |
||
return false ; |
return false ; |
||
} ) ; |
} ) ; |
||
self.run() ; |
self.run() ; |
||
} , |
} , |
||
Line 17: | Line 22: | ||
var self = this ; |
var self = this ; |
||
var use_css = self.getURLParameter ( 'useCSS' ) ; |
var use_css = self.getURLParameter ( 'useCSS' ) ; |
||
if ( |
if ( !self.isSet ( use_css ) ) { |
||
use_css = $.cookie( self.use_css_cookie ) ; |
|||
⚫ | |||
if ( !self.isSet ( use_css ) ) return ; |
|||
} |
|||
self.use_css = use_css ; |
|||
var api = new mw.Api(); |
var api = new mw.Api(); |
||
api.get( { |
api.get( { |
||
Line 38: | Line 46: | ||
} ); |
} ); |
||
if ( use_css != ($.cookie( self.use_css_cookie)||'') ) { |
|||
$('a').each ( function ( k , v ) { |
$('a').each ( function ( k , v ) { |
||
var href = $(v).attr('href') || '' ; |
|||
if ( href.match ( /^\/wiki\// ) ) $(v).attr('href',href+'?useCSS='+use_css) ; |
var href = $(v).attr('href') || '' ; |
||
if ( href.match ( /^\/wiki\// ) ) $(v).attr('href',href+'?useCSS='+use_css) ; |
|||
else if ( href.match ( /^\/w\// ) ) $(v).attr('href',href+'&useCSS='+use_css) ; |
else if ( href.match ( /^\/w\// ) ) $(v).attr('href',href+'&useCSS='+use_css) ; |
||
} ) ; |
} ) ; |
||
} ; |
|||
} , |
} , |
||
options : function () { |
options : function () { |
||
var self = this ; |
|||
$('#live_ericsson_dialog').remove() ; |
|||
var h = "<div id='live_ericsson_dialog' title='Live EriCSSon - Settings'>" ; |
|||
h += "<div style='border-bottom:1px solid #DDDDDD;padding-bottom:5px;margin-bottom:5px'>" ; |
|||
if ( self.isSet ( self.use_css ) ) { |
|||
h += "Current CSS :<br/>" + self.use_css ; |
|||
h += "<br/><a href='#' onclick='live_ericsson.makeCurrentDefault();return false'>Make default</a>" ; |
|||
h += "<span id='live_ericsson_clear_link' style='display:none'> | <a href='#' onclick='live_ericsson.clearDefault();return false'>Clear current default</a></span>" ; |
|||
} else { |
|||
h += "<i>No CSS loaded</i>" ; |
|||
} |
|||
h += "</div>" ; |
|||
h += "<div style='border-bottom:1px solid #DDDDDD;padding-bottom:5px;margin-bottom:5px'>" ; |
|||
h += "Load CSS page:<br/>" ; |
|||
h += "<input type='text' size='30' id='live_ericsson_text_input' value='User:Magnus_Manske/explosion.css' />" ; |
|||
h += "<button onclick='live_ericsson.reloadPageWithNewCSS()'>Reload with this CSS</button>" ; |
|||
h += "</div>" ; |
|||
h += "<div id='live_ericsson_message'></div>" ; |
|||
h += "</div>" ; |
|||
$('body').append ( h ) ; |
|||
$('#live_ericsson_dialog').dialog ( { |
|||
open: function(event, ui) { $('#live_ericsson_dialog a').blur().css({'font-weight':'bold'}) ; } |
|||
} ) ; |
|||
var def = $.cookie( self.use_css_cookie ) ; |
|||
if ( self.isSet ( def ) ) $('#live_ericsson_clear_link').show() ; |
|||
} , |
|||
reloadPageWithNewCSS : function () { |
|||
var ncss = $('#live_ericsson_text_input').val() ; |
|||
var url = mw.util.getUrl ( mw.config.get( 'wgPageName' ) ) ; |
|||
url += "?useCSS=" + ncss ; |
|||
window.location.href = url ; |
|||
} , |
|||
isSet : function ( x ) { |
|||
if ( undefined === x ) return false ; |
|||
⚫ | |||
if ( 'null' === x ) return false ; |
|||
return true ; |
|||
} , |
|||
clearDefault : function () { |
|||
var self = this ; |
|||
$.cookie( self.use_css_cookie , null , { |
|||
expires: 90, // days |
|||
path: '/' // domain-wide, entire wiki |
|||
} ); |
|||
$('#live_ericsson_message').html ( "Default CSS has been removed for this wiki, for this computer." ) ; |
|||
$('#live_ericsson_clear_link').hide() ; |
|||
// console.log ( $.cookie( self.use_css_cookie ) ) ; |
|||
} , |
|||
makeCurrentDefault : function () { |
|||
var self = this ; |
|||
$.cookie( self.use_css_cookie , self.use_css , { |
|||
expires: 90, // days |
|||
path: '/' // domain-wide, entire wiki |
|||
} ); |
|||
$('#live_ericsson_message').html ( self.use_css + " is now default CSS for this wiki, on this computer." ) ; |
|||
$('#live_ericsson_clear_link').show() ; |
|||
// console.log ( $.cookie( self.use_css_cookie ) ) ; |
|||
} , |
} , |
||
getURLParameter : function(name) { |
getURLParameter : function(name) { |
||
return |
return decodeURIComponent( |
||
(RegExp('\\b' + name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] |
(RegExp('\\b' + name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] |
||
); |
); |
Latest revision as of 16:36, 2 October 2021
mw.loader.load( ['jquery.ui'] );
var live_ericsson = {
use_css_cookie : 'Live_EriCSSon_useCSS' ,
init : function () {
// if ( mw.config.get('wgNamespaceNumber') != 0 ) return ;
// if ( mw.config.get('wgAction') != 'view' ) return ;
var self = this ;
var portletLink = mw.util.addPortletLink( 'p-tb', '#', 'Live EriCSSon','t-live-ericsson');
$(portletLink).click ( function () {
self.options() ;
return false ;
} ) ;
self.run() ;
} ,
run : function () {
var self = this ;
var use_css = self.getURLParameter ( 'useCSS' ) ;
if ( !self.isSet ( use_css ) ) {
use_css = $.cookie( self.use_css_cookie ) ;
if ( !self.isSet ( use_css ) ) return ;
}
self.use_css = use_css ;
var api = new mw.Api();
api.get( {
action: 'query',
prop: 'revisions' ,
titles: use_css ,
rvprop: 'content'
}, {
ok: function () {
var a = arguments[0] ;
if ( undefined === a || undefined === a.query ) return ;
var pages = a.query.pages ;
if ( undefined === pages ) return ;
$.each ( pages , function ( page , data ) {
var css = data.revisions[0]['*'] ;
mw.util.addCSS ( css ) ;
} ) ;
}
} );
if ( use_css != ($.cookie( self.use_css_cookie)||'') ) {
$('a').each ( function ( k , v ) {
var href = $(v).attr('href') || '' ;
if ( href.match ( /^\/wiki\// ) ) $(v).attr('href',href+'?useCSS='+use_css) ;
else if ( href.match ( /^\/w\// ) ) $(v).attr('href',href+'&useCSS='+use_css) ;
} ) ;
} ;
} ,
options : function () {
var self = this ;
$('#live_ericsson_dialog').remove() ;
var h = "<div id='live_ericsson_dialog' title='Live EriCSSon - Settings'>" ;
h += "<div style='border-bottom:1px solid #DDDDDD;padding-bottom:5px;margin-bottom:5px'>" ;
if ( self.isSet ( self.use_css ) ) {
h += "Current CSS :<br/>" + self.use_css ;
h += "<br/><a href='#' onclick='live_ericsson.makeCurrentDefault();return false'>Make default</a>" ;
h += "<span id='live_ericsson_clear_link' style='display:none'> | <a href='#' onclick='live_ericsson.clearDefault();return false'>Clear current default</a></span>" ;
} else {
h += "<i>No CSS loaded</i>" ;
}
h += "</div>" ;
h += "<div style='border-bottom:1px solid #DDDDDD;padding-bottom:5px;margin-bottom:5px'>" ;
h += "Load CSS page:<br/>" ;
h += "<input type='text' size='30' id='live_ericsson_text_input' value='User:Magnus_Manske/explosion.css' />" ;
h += "<button onclick='live_ericsson.reloadPageWithNewCSS()'>Reload with this CSS</button>" ;
h += "</div>" ;
h += "<div id='live_ericsson_message'></div>" ;
h += "</div>" ;
$('body').append ( h ) ;
$('#live_ericsson_dialog').dialog ( {
open: function(event, ui) { $('#live_ericsson_dialog a').blur().css({'font-weight':'bold'}) ; }
} ) ;
var def = $.cookie( self.use_css_cookie ) ;
if ( self.isSet ( def ) ) $('#live_ericsson_clear_link').show() ;
} ,
reloadPageWithNewCSS : function () {
var ncss = $('#live_ericsson_text_input').val() ;
var url = mw.util.getUrl ( mw.config.get( 'wgPageName' ) ) ;
url += "?useCSS=" + ncss ;
window.location.href = url ;
} ,
isSet : function ( x ) {
if ( undefined === x ) return false ;
if ( null === x ) return false ;
if ( 'null' === x ) return false ;
return true ;
} ,
clearDefault : function () {
var self = this ;
$.cookie( self.use_css_cookie , null , {
expires: 90, // days
path: '/' // domain-wide, entire wiki
} );
$('#live_ericsson_message').html ( "Default CSS has been removed for this wiki, for this computer." ) ;
$('#live_ericsson_clear_link').hide() ;
// console.log ( $.cookie( self.use_css_cookie ) ) ;
} ,
makeCurrentDefault : function () {
var self = this ;
$.cookie( self.use_css_cookie , self.use_css , {
expires: 90, // days
path: '/' // domain-wide, entire wiki
} );
$('#live_ericsson_message').html ( self.use_css + " is now default CSS for this wiki, on this computer." ) ;
$('#live_ericsson_clear_link').show() ;
// console.log ( $.cookie( self.use_css_cookie ) ) ;
} ,
getURLParameter : function(name) {
return decodeURIComponent(
(RegExp('\\b' + name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
} ,
the_end : ''
} ;
$( function () { live_ericsson.init () } ) ;