summaryrefslogtreecommitdiff
path: root/modules/upload
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-11-21 19:13:22 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-11-21 19:13:22 +0000
commit18d532e214d46a5422b1d40f3ac7eecd798e8b33 (patch)
tree03954e451dffa7251d5a2a4889e9d80a00630f96 /modules/upload
parent06c886d45bce67f1444861813413ac366d02d031 (diff)
downloadbrdo-18d532e214d46a5422b1d40f3ac7eecd798e8b33.tar.gz
brdo-18d532e214d46a5422b1d40f3ac7eecd798e8b33.tar.bz2
#172630 by webernet: fix weird errors experienced when using the JS file uploader
Diffstat (limited to 'modules/upload')
-rw-r--r--modules/upload/upload.module18
1 files changed, 12 insertions, 6 deletions
diff --git a/modules/upload/upload.module b/modules/upload/upload.module
index 1c9733ec7..e31efeee7 100644
--- a/modules/upload/upload.module
+++ b/modules/upload/upload.module
@@ -561,12 +561,15 @@ function upload_js() {
// We only do the upload.module part of the node validation process.
$node = (object)$_POST;
$form_state = array();
+
// Handle new uploads, and merge tmp files into node-files.
upload_node_form_submit(array(), $form_state);
- $node->files = array_merge(isset($form_state['values']['files']) ? $form_state['values']['files'] : array(), upload_load($node));
-
- $files = isset($_POST['files']) ? $_POST['files'] : array();
-
+ $node->files = upload_load($node);
+ if (!empty($form_state['values']['files'])) {
+ foreach($form_state['values']['files'] as $fid => $file) {
+ $node->files[$fid] = $file;
+ }
+ }
$form = _upload_form($node);
$form += array(
@@ -580,9 +583,12 @@ function upload_js() {
$form = form_builder('upload_js', $form, $form_state);
// Maintain the list and delete checkboxes values.
+ $files = isset($_POST['files']) ? $_POST['files'] : array();
foreach ($files as $fid => $file) {
- $form['files'][$fid]['list']['#value'] = isset($file['list']) ? 1 : 0;
- $form['files'][$fid]['remove']['#value'] = isset($file['remove']) ? 1 : 0;
+ if (is_numeric($fid)) {
+ $form['files'][$fid]['list']['#value'] = isset($file['list']) ? 1 : 0;
+ $form['files'][$fid]['remove']['#value'] = isset($file['remove']) ? 1 : 0;
+ }
}
$output = theme('status_messages') . drupal_render($form);