User:Vitalie Ciubotaru/monobook.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
The accompanying .css page for this skin can be added at User:Vitalie Ciubotaru/monobook.css. |
- Report page listing warnings and errors.
//<pre>
// Script to embed Coordinate template generation in MediaWiki's edit page
// inspired by [[:en:User:Pilaf/livepreview.js]]
//
// defaults
//
if( typeof( coord_templatename ) == "undefined" )
var coord_templatename = 'Location';
if( typeof( accuracy ) == "undefined" )
var accuracy = 5;
if( typeof( defaulttype ) == "undefined" )
var defaulttype = "landmark";
// can be overridden in your monobook.js ( insert: var coord_templatename = 'something'; )
//
// Insert the coordinate Form into the edit box.
//
function coordinatesInstall()
{
copywarn = document.getElementById('editpage-copywarn');
if (copywarn != null) {
var cleaner = "<br style=\\'clear:both;\\' />";
CoordinatesHTML = '<div style="border: 1px solid gray; padding: 3px; margin-top: 2px; margin-bottom:2px;">'
CoordinatesHTML += '<input type="button" value="Insert as '+coord_templatename+'" onclick="interpretCoordinates();" /> ';
CoordinatesHTML += '<input type="text" size="80" id="CoordinateBox" /></div>';
copywarn.innerHTML = CoordinatesHTML + copywarn.innerHTML;
}
}
//
// Hook up instalation function
//
$(coordinatesInstall);
//
// Coordinate interpretation
//
function interpretCoordinates()
{
var coordinate1 = document.getElementById('CoordinateBox').value;
var coordinate2 = '';
var coord_filter = /http[s]{0,1}:\/\/maps\.google\.([a-zA-Z]+)\//;
var latlon;
// magic!
if( coord_filter.test(coordinate1) )
{
latlon = mw.util.getParamValue('ll',coordinate1).split(",");
}
// more magic!
if( coordinate1.substr( 0, 26 ) == 'http://www.wikimapia.org/#' )
{
var from_ll = coordinate1.substr( 30 );
var ampers = from_ll.indexOf( '&z=' );
latlon = ( from_ll.substr( 0, ampers ) ).split( '&lon=' );
}
// even more magic!
if( coordinate1.substr(0,21) == 'http://maps.live.com/' )
{
var from_ll = coordinate1.substr( coordinate1.indexOf( "&cp=" ) + 4 );
var ampers = from_ll.indexOf('&');
if(ampers==-1)
{
latlon = from_ll.split("~");
}
else
{
latlon = (from_ll.substr(0,ampers)).split("~");
}
}
var mark_ns = 'N';
var mark_ew = 'E';
var lat = latlon[0];
var lon = latlon[1];
if(lat<0) { lat*=-1; mark_ns='S'; }
if(lon<0) { lon*=-1; mark_ew='W'; }
var lat_m = ( lat - Math.floor(lat) ) * 60.0;
var lon_m = ( lon - Math.floor(lon) ) * 60.0;
var lat_s = ( lat_m - Math.floor(lat_m) ) * 60.0;
var lon_s = ( lon_m - Math.floor(lon_m) ) * 60.0;
//coordinate2 = '{{coor_d|'+lat+'|'+mark_ns+'|'+lon+'|'+mark_ew+'|type:landmark}}';
coordinate2 = '{{'+coord_templatename+'|'+Math.floor(lat)+'|'+Math.floor(lat_m)+'|'+lat_s.toPrecision(accuracy)+'|'+mark_ns+'|'+
Math.floor(lon)+'|'+Math.floor(lon_m)+'|'+lon_s.toPrecision(accuracy)+'|'+mark_ew+'|heading:?}}\n';
//'|type:'+defaulttype+'}}\n';
var editbox = document.getElementById('wpTextbox1');
var information_template = (editbox.value).indexOf('{{Information')
if(information_template >-1)
{
var editbox_content_1 = (editbox.value).substr(0,information_template);
var editbox_content_2 = (editbox.value).substr(information_template);
editbox.value = editbox_content_1 + coordinate2 + editbox_content_2;
}
else
{
var editbox_content = editbox.value;
editbox.value = coordinate2 + editbox_content;
}
}
//</pre>