Jump to content

MediaWiki:Live EriCSSon.js: Difference between revisions

From Wikipedia, the free encyclopedia
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');
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 ( undefined === use_css ) return ;
if ( !self.isSet ( use_css ) ) {
use_css = $.cookie( self.use_css_cookie ) ;
if ( null == use_css ) return ;
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 ;
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 decodeURI(
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 () } ) ;