From 5c14382cfb0d1268d4793bce92740d2ed8535bc4 Mon Sep 17 00:00:00 2001 From: garvinhicking Date: Mon, 25 Apr 2005 16:32:14 +0000 Subject: [PATCH] fix remaining JS issues, hopefully. --- include/admin/images.inc.php | 50 ++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/include/admin/images.inc.php b/include/admin/images.inc.php index 7b1978d..4d1e958 100644 --- a/include/admin/images.inc.php +++ b/include/admin/images.inc.php @@ -112,10 +112,17 @@ switch ($serendipity['GET']['adminAction']) { // First find out whether to fetch a file or accept an upload if ($serendipity['POST']['imageurl'] != '' && $serendipity['POST']['imageurl'] != 'http://') { - if (!empty($serendipity['POST']['target_filename'][1])) { + if (!empty($serendipity['POST']['target_filename'][2])) { + // Faked hidden form 2 when submitting with JavaScript + $tfile = $serendipity['POST']['target_filename'][2]; + $tindex = 2; + } elseif (!empty($serendipity['POST']['target_filename'][1])) { + // Fallback key when not using JavaScript $tfile = $serendipity['POST']['target_filename'][1]; + $tindex = 1; } else { $tfile = basename($serendipity['POST']['imageurl']); + $tindex = 1; } if ($serendipity['serendipityUserlevel'] < USERLEVEL_ADMIN && preg_match('@\.(php[34]?|[ps]html?)$@i', $tfile)) { @@ -124,8 +131,8 @@ switch ($serendipity['GET']['adminAction']) { } $tfile = serendipity_uploadSecure($tfile); - $serendipity['POST']['target_directory'][1] = serendipity_uploadSecure($serendipity['POST']['target_directory'][1], true); - $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][1] . $tfile; + $serendipity['POST']['target_directory'][$tindex] = serendipity_uploadSecure($serendipity['POST']['target_directory'][$tindex], true); + $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][$tindex] . $tfile; if (file_exists($target)) { echo '(' . $target . ') ' . ERROR_FILE_EXISTS_ALREADY; @@ -156,11 +163,11 @@ switch ($serendipity['GET']['adminAction']) { printf(FILE_FETCHED . '
', $serendipity['POST']['imageurl'], $tfile); // Create thumbnail - if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][1]) ) { + if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][$tindex]) ) { echo THUMB_CREATED_DONE . '
'; } // Insert into database - $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][1], $authorid); + $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][$tindex], $authorid); } } } @@ -355,9 +362,11 @@ switch ($serendipity['GET']['adminAction']) { return value.replace(re, "$1"); } + isFileUpload = true; function hideForeign() { document.getElementById('foreign_upload').style.display = 'none'; document.getElementById('imageurl').value = ''; + isFileUpload = false; } var fieldcount = 1; @@ -399,25 +408,44 @@ switch ($serendipity['GET']['adminAction']) { fillInput(i, i); } } + + } + + function debugFields() { + for (i = 1; i <= fieldcount; i++) { + debugField('target_filename_' + i); + debugField('userfile_' + i); + } } - // TODO: This does not yet work as expected and if an imageurl is entered it will overwrite the custom name again + function debugField(id) { + alert(id + ': ' + document.getElementById(id).value); + } + function fillInput(source, target) { + useDuplicate = false; + // First field is a special value for foreign URLs instead of uploaded files - if (source == 1) { + if (source == 1 && document.getElementById('imageurl').value != "") { sourceval = getfilename(document.getElementById('imageurl').value); + useDuplicate = true; } else { sourceval = getfilename(document.getElementById('userfile_' + source).value); } if (sourceval.length > 0) { document.getElementById('target_filename_' + target).value = sourceval; - inputStorage[target] = document.getElementById('target_filename_' + target).value; + inputStorage[target] = sourceval; } - // Display filename in duplicte form as well! - if (source == 1 && target == 1) { - fillInput(1, 2); + // Display filename in duplicate form as well! + if (useDuplicate) { + tkey = target + 1; + + if (!inputStorage[tkey] || inputStorage[tkey] == document.getElementById('target_filename_' + tkey).value) { + document.getElementById('target_filename_' + (target+1)).value = sourceval; + inputStorage[target + 1] = '~~~'; + } } } -- 2.39.5