Author: sevein
Date: Sun Sep 20 12:57:03 2009
New Revision: 3438

Log:
- Multi-upload now shows generic icons for thumbs not previewable (not 
supported by gd/im libraries).
- QubitDigitalObject::getGenericIconPath is a method public now to be 
accessible from upload action.
- A new property canThumbnail is passed to client-side to adjust the way which 
generic icons are shown (remove backgrount, adjust width of thumb div...)

Modified:
   trunk/apps/qubit/modules/digitalobject/actions/uploadAction.class.php
   trunk/lib/model/QubitDigitalObject.php
   trunk/web/js/multiFileUpload.js

Modified: trunk/apps/qubit/modules/digitalobject/actions/uploadAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/digitalobject/actions/uploadAction.class.php       
Sun Sep 20 07:07:51 2009        (r3437)
+++ trunk/apps/qubit/modules/digitalobject/actions/uploadAction.class.php       
Sun Sep 20 12:57:03 2009        (r3438)
@@ -56,12 +56,18 @@
       move_uploaded_file($file['tmp_name'], $tmpFilePath);
 
       $tmpFileMd5sum = md5_file($tmpFilePath);
+      $tmpFileMimeType = QubitDigitalObject::deriveMimeType($tmpFileName);
 
-      $resizedImage = QubitDigitalObject::resizeImage($tmpFilePath, 150, 150);
-
-      if (0 < strlen($resizedImage))
+      if ($canThumbnail = 
QubitDigitalObject::canThumbnailMimeType($tmpFileMimeType))
+      {
+        if (0 < strlen($resizedImage = 
QubitDigitalObject::resizeImage($tmpFilePath, 150, 150)))
+        {
+          file_put_contents($thumbPath, $resizedImage);
+        }
+      }
+      else
       {
-        file_put_contents($thumbPath, $resizedImage);
+        $thumbName = 
'../../images/'.QubitDigitalObject::getGenericIconPath($tmpFileMimeType, 
QubitTerm::THUMBNAIL_ID);
       }
 
       $uploadFiles[] = array(
@@ -69,7 +75,8 @@
         'tmpName' => $tmpFileName,
         'md5sum' => $tmpFileMd5sum,
         'thumb' => $thumbName,
-        'size' => hr_filesize($file['size'])
+        'size' => hr_filesize($file['size']),
+        'canThumbnail' => $canThumbnail
       );
     }
 

Modified: trunk/lib/model/QubitDigitalObject.php
==============================================================================
--- trunk/lib/model/QubitDigitalObject.php      Sun Sep 20 07:07:51 2009        
(r3437)
+++ trunk/lib/model/QubitDigitalObject.php      Sun Sep 20 12:57:03 2009        
(r3438)
@@ -752,7 +752,7 @@
    * @param string $mimeType
    * @return string
    */
-  protected static function getGenericIconPath($mimeType, $usageType)
+  public static function getGenericIconPath($mimeType, $usageType)
   {
     $genericIconDir  = self::GENERIC_ICON_DIR;
     $matchedMimeType = null;

Modified: trunk/web/js/multiFileUpload.js
==============================================================================
--- trunk/web/js/multiFileUpload.js     Sun Sep 20 07:07:51 2009        (r3437)
+++ trunk/web/js/multiFileUpload.js     Sun Sep 20 12:57:03 2009        (r3438)
@@ -159,6 +159,14 @@
       return $(this).attr('style') + '; min-height: 100px';
     });
 
+    if (!uploadFiles[i].canThumbnail)
+    {
+      var thumbDiv = $('#thumbnail-' + event['id']);
+      var thumbWidth = thumbDiv.find("img").width();
+
+      $(thumbDiv).width(thumbWidth).css("background-color", "White");
+    }
+
     // Get the file index from the id passed by YUI
     var fileIndex = event['id'].match(/([0-9]+)$/).shift();
     if (null == fileIndex || isNaN(parseInt(fileIndex)))

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to