* (bug 3131) Manually-specified upload destination filename is no longer
authorBrion Vibber <brion@users.mediawiki.org>
Fri, 14 Mar 2008 23:38:08 +0000 (23:38 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Fri, 14 Mar 2008 23:38:08 +0000 (23:38 +0000)
  overwritten by browsing for a file after you wrote it.

RELEASE-NOTES
includes/DefaultSettings.php
includes/SpecialUpload.php
skins/common/upload.js

index c5929d3..dcae506 100644 (file)
@@ -90,6 +90,9 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * Email subject in content language instead of sending user's UI language
 * (bug 13251) Allow maintenance rebuild scripts to work with Postgres
 * (bug 2084) Fixed incorrect regex to match redirects
+* (bug 3131) Manually-specified upload destination filename is no longer
+  overwritten by browsing for a file after you wrote it.
+
 
 === API changes in 1.13 ===
 
index 1cb8346..423e2f9 100644 (file)
@@ -1326,7 +1326,7 @@ $wgCacheEpoch = '20030516000000';
  * to ensure that client-side caches don't keep obsolete copies of global
  * styles.
  */
-$wgStyleVersion = '122';
+$wgStyleVersion = '123';
 
 
 # Server-side caching:
index 1e3f57c..64ed215 100644 (file)
@@ -921,10 +921,12 @@ class UploadForm {
 
                $adc = wfBoolToStr( $useAjaxDestCheck );
                $alp = wfBoolToStr( $useAjaxLicensePreview );
+               $autofill = wfBoolToStr( $this->mDesiredDestName == '' );
 
                $wgOut->addScript( "<script type=\"text/javascript\">
 wgAjaxUploadDestCheck = {$adc};
 wgAjaxLicensePreview = {$alp};
+wgUploadAutoFill = {$autofill};
 </script>
 <script type=\"text/javascript\" src=\"{$wgStylePath}/common/upload.js?{$wgStyleVersion}\"></script>
                " );
@@ -1032,7 +1034,7 @@ wgAjaxLicensePreview = {$alp};
                                   "onfocus='" . 
                                     "toggle_element_activation(\"wpUploadFileURL\",\"wpUploadFile\");" .
                                     "toggle_element_check(\"wpSourceTypeFile\",\"wpSourceTypeURL\")'" .
-                               ($this->mDesiredDestName?"":"onchange='fillDestFilename(\"wpUploadFile\")' ") . "size='60' />" .
+                                    "onchange='fillDestFilename(\"wpUploadFile\")' size='60' />" .
                                wfMsgHTML( 'upload_source_file' ) . "<br/>" .
                                "<input type='radio' id='wpSourceTypeURL' name='wpSourceType' value='web' " .
                                  "onchange='toggle_element_activation(\"wpUploadFile\",\"wpUploadFileURL\")' />" .
@@ -1040,7 +1042,7 @@ wgAjaxLicensePreview = {$alp};
                                  "onfocus='" .
                                    "toggle_element_activation(\"wpUploadFile\",\"wpUploadFileURL\");" .
                                    "toggle_element_check(\"wpSourceTypeURL\",\"wpSourceTypeFile\")'" .
-                               ($this->mDesiredDestName?"":"onchange='fillDestFilename(\"wpUploadFileURL\")' ") . "size='60' disabled='disabled' />" .
+                                   "onchange='fillDestFilename(\"wpUploadFileURL\")' size='60' disabled='disabled' />" .
                                wfMsgHtml( 'upload_source_url' ) ;
                } else {
                        $filename_form =
@@ -1075,7 +1077,7 @@ wgAjaxLicensePreview = {$alp};
                        <td align='$align1'><label for='wpDestFile'>{$destfilename}</label></td>
                        <td align='$align2'>
                                <input tabindex='2' type='text' name='wpDestFile' id='wpDestFile' size='60' 
-                                       value="$encDestName" $destOnkeyup />
+                                       value="$encDestName" onchange='toggleFilenameFiller()' $destOnkeyup />
                        </td>
                </tr>
                <tr>
index 7cbfc9a..e46c3ec 100644 (file)
@@ -112,6 +112,9 @@ var wgUploadWarningObj = {
 }
 
 function fillDestFilename(id) {
+       if (!wgUploadAutoFill) {
+               return;
+       }
        if (!document.getElementById) {
                return;
        }
@@ -139,6 +142,17 @@ function fillDestFilename(id) {
        }
 }
 
+function toggleFilenameFiller() {
+       if(!document.getElementById) return;
+       var upfield = document.getElementById('wpUploadFile');
+       var destName = document.getElementById('wpDestFile').value;
+       if (destName=='' || destName==' ') {
+               wgUploadAutoFill = true;
+       } else {
+               wgUploadAutoFill = false;
+       }
+}
+
 var wgUploadLicenseObj = {
        
        'responseCache' : { '' : '' },