MediaWiki r44266 - Code Review

Jump to: navigation, search
Repository:MediaWiki
Revision:r44265‎ | r44266 (on ViewVC)‎ | r44267 >
Date:00:32, 6 December 2008
Author:werdna
Status:ok
Tags:
Comment:
Fix up Configure extension logo setting handling:
* Replace annoying button with an onblur preview and server-side conversion of file names into URLs.
Modified paths:

Diff [purge]

Index: trunk/phase3/includes/AjaxFunctions.php
===================================================================
--- trunk/phase3/includes/AjaxFunctions.php	(revision 44265)
+++ trunk/phase3/includes/AjaxFunctions.php	(revision 44266)
@@ -140,4 +140,19 @@
 	$url = $file->getThumbnail( $width, $height )->url;
 	
 	return $url;
+}
+
+/**
+ * Called in some places (currently just extensions)
+ * to get the URL for a given file.
+ */
+function wfAjaxGetFileUrl( $file ) {
+	$file = wfFindFile( $file );
+	
+	if ( !$file || !$file->exists() )
+		return null;
+		
+	$url = $file->getUrl();
+	
+	return $url;
 }
\ No newline at end of file
Index: trunk/phase3/includes/DefaultSettings.php
===================================================================
--- trunk/phase3/includes/DefaultSettings.php	(revision 44265)
+++ trunk/phase3/includes/DefaultSettings.php	(revision 44266)
@@ -3328,7 +3328,7 @@
  * List of Ajax-callable functions.
  * Extensions acting as Ajax callbacks must register here
  */
-$wgAjaxExportList = array( 'wfAjaxGetThumbnailUrl' );
+$wgAjaxExportList = array( 'wfAjaxGetThumbnailUrl', 'wfAjaxGetFileUrl' );
 
 /**
  * Enable watching/unwatching pages using AJAX.
Index: trunk/extensions/Configure/Configure.page.php
===================================================================
--- trunk/extensions/Configure/Configure.page.php	(revision 44265)
+++ trunk/extensions/Configure/Configure.page.php	(revision 44266)
@@ -590,7 +590,15 @@
 			case 'text':
 			case 'lang':
 			case 'image-url':
-				$settings[$name] = trim( $wgRequest->getVal( 'wp' . $name ) );
+				$setting = trim( $wgRequest->getVal( 'wp' . $name ) );
+				
+				if ( $file = wfFindFile( $setting ) ) {
+					## It's actually a local file.
+					$setting = $file->getUrl();
+				}
+				
+				$settings[$name] = $setting;
+				
 				break;
 			case 'int':
 				$settings[$name] = $wgRequest->getInt( 'wp' . $name );
Index: trunk/extensions/Configure/Configure.js
===================================================================
--- trunk/extensions/Configure/Configure.js	(revision 44265)
+++ trunk/extensions/Configure/Configure.js	(revision 44266)
@@ -169,15 +169,7 @@
 		var conf = textbox.id.substr( 18 );
 		var img = document.getElementById( 'image-url-preview-'+conf );
 
-		var button = document.createElement( 'input' );
-		button.type = 'button';
-		button.className = 'mw-button-get-image-url';
-		button.value = wgConfigureGetImageUrl;
-		button.onclick = createImageUrlCallback( textbox, img );
-
-		textbox.parentNode.insertBefore( button, img );
-		textbox.parentNode.insertBefore( document.createTextNode( '\u00A0' ), button ); // nbsp
-		img.parentNode.insertBefore( document.createTextNode( '\u00A0' ), img ); // nbsp
+		addHandler( textbox, 'blur', createImageUrlCallback( textbox, img ) );
 	}
 
 	// $wgGroupPermissions stuff, only if ajax is enabled
@@ -789,15 +781,14 @@
  */
 function createImageUrlCallback( textbox, img ) {
 	return function() {
-		sajax_do_call( 'wfAjaxGetThumbnailUrl',
-			[textbox.value, 130, 130], // FIXME hard-coded.
+		sajax_do_call( 'wfAjaxGetFileUrl',
+			[textbox.value],
 			function(response) {
 				var text = response.responseText;
 				// basic error handling
 				if( text.substr( 0, 9 ) == "<!DOCTYPE" ) {
-					alert( wgConfigureImageError );
+					img.src = textbox.value;
 				} else {
-					textbox.value = response.responseText;
 					img.src = response.responseText;
 				}
 			}

Follow-up revisions

Rev.Commit summaryAuthorDate
r68126Kill off another AjaxFunction. The only thing that ever used this was Configu...demon17:24, 16 June 2010

Status & tagging log

Personal tools
Namespaces
Variants
Views
Actions
Site
Support
Download
Development
Communication
Toolbox