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;
}
}