User:Cacycle/wikEd.js: Difference between revisions

Content deleted Content added
rv to 0.9.144a (October 28, 2014) adding spaces at line start bug
0.9.144b (March 13, 2014) fix image preview for highlighting
Line 14:
// ==UserScript==
// @name wikEd
// @version 0.9.144a144b
// @date OctoberMarch 2813, 2014
// @namespace https://en.wikipedia.org/wiki/User:Cacycle/
// @description A full-featured in-browser editor for Wikipedia and other MediaWikis
Line 8,829:
//
 
wikEd.FilePreviewAjaxHandler = function ( ajax ) {
 
// get response
Line 8,845:
 
// parse response into file url cache
var regExpFile = new RegExp( '\\n((Image|File|Media|' + wikEd.config.text[ 'wikicode Image' ] + '|' + wikEd.config.text[ 'wikicode File' ] + '|' + wikEd.config.text[ 'wikicode Media' ] + '):[^ ]+) +(\\d+) +(.*)', 'ig' );
var regExpMatch;
while ( ( regExpMatch = regExpFile.exec( html ) ) !== null ) {
 
var file = regExpMatch[1];
var filePreviewSize = regExpMatch[3];
var links = regExpMatch[4];
 
var fileObj = {};
wikEd.filePreviewCache[var cacheKey = 'wikEd' + file + filePreviewSize] = fileObj;
var regExpMatch;
if ( ( regExpMatch = /\bsrc="(.+?)"/.exec( links ) ) !== null ) {
wikEd.filePreviewCache[ cacheKey ] = {};
var fileObj = wikEd.filePreviewCache[ cacheKey ];
fileObj.url = regExpMatch[1];
if ( ( regExpMatch = /\bwidth="(\d+)"/.exec(links)) !== null ) {
fileObj.width = parseInt(regExpMatch[ 1 ] );
}
if ( ( regExpMatch = /\bheight="(\d+)"/.exec( links ) ) !== null ) {
fileObj.height = parseInt( regExpMatch[ 1 ] );
}
}
else if ( wikEd.filePreviewCache[ cacheKey ] === undefined ) {
else {
fileObj.url = wikEd.config.imagefilePreviewCache['noFile' cacheKey ] = {};
var fileObj = wikEd.filePreviewCache[ cacheKey ];
fileObj.url = wikEd.config.image[ 'noFile' ];
fileObj.width = 16;
fileObj.height = 16;
}
wikEd.filePreviewCache['wikEd' + file + filePreviewSize] = fileObj;
}
 
// cycle through file preview spans and add missing images as background
for ( var i = 0; i < wikEd.filePreviewNo; i ++ ) {
if ( wikEd.filePreviewIds[ i ] !== '' ) {
var span = wikEd.frameDocument.getElementById( 'wikEdFilePreview' + i );
if ( span !== null ) {
var fileNameSizecacheKey = 'wikEd' + wikEd.filePreviewIds[ i ];
var fileObj = wikEd.filePreviewCache['wikEd' +cacheKey fileNameSize];

if ( fileObj !== undefined ) {
span.style.backgroundImage = 'url(' + fileObj.url + ')';
if ( fileObj.height !== null ) {
span.style.height = fileObj.height + 'px';
}
if ( fileObj.width !== null ) {
span.style.width = fileObj.width + 'px';
}
span.style.display = 'block';
}
wikEd.filePreviewIds[ i ] = '';
}
}