### Eclipse Workspace Patch 1.0 #P mvw-exp Index: includes/Skin.php =================================================================== --- includes/Skin.php (revision 49448) +++ includes/Skin.php (working copy) @@ -343,6 +343,7 @@ global $wgVersion, $wgEnableAPI, $wgEnableWriteAPI; global $wgRestrictionTypes, $wgLivePreview; global $wgMWSuggestTemplate, $wgDBname, $wgEnableMWSuggest; + $ns = $wgTitle->getNamespace(); $nsname = isset( $wgCanonicalNamespaceNames[ $ns ] ) ? $wgCanonicalNamespaceNames[ $ns ] : $wgTitle->getNsText(); @@ -386,9 +387,16 @@ 'wgEnableAPI' => $wgEnableAPI, 'wgEnableWriteAPI' => $wgEnableWriteAPI, 'wgSeparatorTransformTable' => $compactSeparatorTransTable, - 'wgDigitTransformTable' => $compactDigitTransTable, + 'wgDigitTransformTable' => $compactDigitTransTable, ); + //if on upload page output the extension list: + if( SpecialPage::resolveAlias( $wgTitle->getDBkey() ) == "Upload" ){ + global $wgFileExtensions; + $vars['wgFileExtensions'] = $wgFileExtensions; + } + + if( $wgUseAjax && $wgEnableMWSuggest && !$wgUser->getOption( 'disablesuggest', false ) ){ $vars['wgMWSuggestTemplate'] = SearchEngine::getMWSuggestTemplate(); $vars['wgDBname'] = $wgDBname; Index: skins/common/upload.js =================================================================== --- skins/common/upload.js (revision 49448) +++ skins/common/upload.js (working copy) @@ -118,6 +118,14 @@ if (!document.getElementById) { return; } + + //remove any previously flagged errors + var e = document.getElementById('mw-upload-permitted'); + if(e) e. className = ''; + + var e = document.getElementById('mw-upload-prohibited'); + if(e) e.className = ''; + var path = document.getElementById(id).value; // Find trailing part var slash = path.lastIndexOf('/'); @@ -130,7 +138,34 @@ } else { fname = path.substring(backslash+1, 10000); } - + //check for the wgFileExtensions and clear if not a valid fname extension + if( wgFileExtensions ){ + var found = false; + if( fname.lastIndexOf('.')!=-1 ){ + var ext = fname.substr( fname.lastIndexOf('.')+1 ); + for(var i=0; i < wgFileExtensions.length; i++){ + if( wgFileExtensions[i] == ext ) + found = true; + } + } + if(!found){ + //clear the upload set mw-upload-permitted to error + document.getElementById(id).value = ''; + var e = document.getElementById('mw-upload-permitted'); + if(e) e. className = 'error'; + + var e = document.getElementById('mw-upload-prohibited'); + if(e) e.className = 'error'; + + //clear the wpDestFile as well: + var e = document.getElementById('wpDestFile') + if(e) e.value = ''; + + //return false + return false; + } + } + // Capitalise first letter and replace spaces by underscores fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace(/ /g, '_');