Bläddra i källkod

Fix to upload file

Stephen Ficklin 7 år sedan
förälder
incheckning
1dcbc24fd7
2 ändrade filer med 27 tillägg och 22 borttagningar
  1. 8 5
      tripal/theme/js/tripal.file.js
  2. 19 17
      tripal/tripal.module

+ 8 - 5
tripal/theme/js/tripal.file.js

@@ -5,14 +5,17 @@
       var tripal_files = new TripalUploader();
       
       $(".tripal-html5-file-upload-table-key").each(function(index) {
-        var form_key = $(this).val()
+        var id = $(this).val()
+        var details = id.split("-");
+        var form_key = details[0] + '-' + details[1];
+        var module = details[2];
         tripal_files.addUploadTable(form_key, {
-          'table_id' : '#tripal-html5-file-upload-table-' + form_key,
-          'submit_id': '#tripal-html5-file-upload-submit-' + form_key,
+          'table_id' : '#tripal-html5-file-upload-table-' + id,
+          'submit_id': '#tripal-html5-file-upload-submit-' + id,
           'category' : [form_key],
           'cardinality' : 1,
-          'target_id' : 'tripal-html5-upload-fid-' + form_key,
-          'module' : 'tripal',
+          'target_id' : 'tripal-html5-upload-fid-' + id,
+          'module' : module,
         });
       });
     }

+ 19 - 17
tripal/tripal.module

@@ -889,7 +889,8 @@ function tripal_element_info() {
  */
 function tripal_html5_file_process($element, $form_state, $complete_form) {
 
-  $type = $element['#usage_id'] . '-' . $element['#usage_type'];
+  $module = array_key_exists('#usage_module', $element) ? $element['#usage_module'] : 'tripal';
+  $type = $element['#usage_id'] . '-' . $element['#usage_type'] . '-' . $module;
   $name = $element['#name'];
   $name = preg_replace('/[^\w]/', '_', $name);
 
@@ -963,37 +964,38 @@ function tripal_html5_file_validate($element, &$form_state) {
 
 
 /**
- * Implements hook_handle_uplaoded_file().
+ * Implements hook_handle_uploaded_file().
  */
 function tripal_handle_uploaded_file($filename, $filepath, $type) {
 
   global $user;
 
+  // Create a file object.
+  $file = new stdClass();
+  $file->uri = $filepath;
+  $file->filename = $filename;
+  $file->filemime = file_get_mimetype($filepath);
+  $file->uid = $user->uid;
+  $file->status = FILE_STATUS_PERMANENT;
+  $file = file_save($file);
+
   // Split the type into a node ID and form_key
-  list($nid, $form_key) = explode('-', $type);
+  list($id, $form_key) = explode('-', $type);
 
   // See if this file is already managed then add another entry fin the
   // usage table.
   $fid = db_select('file_managed', 'fm')
-  ->fields('fm', array('fid'))
-  ->condition('uri', $filepath)
-  ->execute()
-  ->fetchField();
+    ->fields('fm', array('fid'))
+    ->condition('uri', $filepath)
+    ->execute()
+    ->fetchField();
+
   if ($fid) {
     $file = file_load($fid);
-    file_usage_add($file, 'tripal', $form_key, $nid);
+    file_usage_add($file, 'tripal', $form_key, $id);
     return $fid;
   }
 
-  // Create a file object.
-  $file = new stdClass();
-  $file->uri = $filepath;
-  $file->filename = $filename;
-  $file->filemime = file_get_mimetype($filepath);
-  $file->uid = $user->uid;
-  $file->status = FILE_STATUS_PERMANENT;
-  $file = file_save($file);
-
   return $file->fid;
 }