]> git.mxchange.org Git - friendica.git/blobdiff - addon/js_upload/js_upload.php
Merge pull request #155 from tobiasd/master
[friendica.git] / addon / js_upload / js_upload.php
index dc2dc37dcb8c64bf2b8ebb2f4348af6b1870b532..1996b85040aa6c1cb616a5e5432721b8908494b2 100644 (file)
@@ -1,5 +1,12 @@
 <?php
 
+/**
+ * Name: JS Uploader
+ * Description: JavaScript photo/image uploader. Uses Valum 'qq' Uploader.
+ * Version: 1.0
+ * Author: Chris Case <http://friendika.openmindspace.org/profile/chris_case>
+ */
+
 /**
  *
  * JavaScript Photo/Image Uploader
@@ -7,9 +14,6 @@
  * Uses Valum 'qq' Uploader. 
  * Module Author: Chris Case
  *
- * Prior to enabling, ensure that you have a directory 'uploads'
- * which is writable by the web server.
- *
  */
 
 
@@ -36,6 +40,11 @@ function js_upload_form(&$a,&$b) {
        $b['addon_text'] .= '<link href="' . $a->get_baseurl() . '/addon/js_upload/file-uploader/client/fileuploader.css" rel="stylesheet" type="text/css">';
        $b['addon_text'] .= '<script src="' . $a->get_baseurl() . '/addon/js_upload/file-uploader/client/fileuploader.js" type="text/javascript"></script>';
    
+       $upload_msg = t('Upload a file');
+       $drop_msg = t('Drop files here to upload');
+       $cancel = t('Cancel');
+       $failed = t('Failed');
+
        $b['addon_text'] .= <<< EOT
        
  <div id="file-uploader-demo1">                
@@ -65,17 +74,43 @@ function createUploader() {
        uploader = new qq.FileUploader({
                element: document.getElementById('file-uploader-demo1'),
                action: '{$b['post_url']}',
+
+        template: '<div class="qq-uploader">' + 
+                '<div class="qq-upload-drop-area"><span>$drop_msg</span></div>' +
+                '<div class="qq-upload-button">$upload_msg</div>' +
+                '<ul class="qq-upload-list"></ul>' + 
+             '</div>',
+
+        // template for one item in file list
+        fileTemplate: '<li>' +
+                '<span class="qq-upload-file"></span>' +
+                '<span class="qq-upload-spinner"></span>' +
+                '<span class="qq-upload-size"></span>' +
+                '<a class="qq-upload-cancel" href="#">$cancel</a>' +
+                '<span class="qq-upload-failed-text">$failed</span>' +
+            '</li>',        
+
                debug: true,
                onSubmit: function(id,filename) {
-
-                       uploader.setParams( {
-                               newalbum                :       document.getElementById('photos-upload-newalbum').value,
-                               album                   :       document.getElementById('photos-upload-album-select').value,
-                               group_allow             :       getSelected(document.getElementById('group_allow')).join(','),
-                               contact_allow   :       getSelected(document.getElementById('contact_allow')).join(','),
-                               group_deny              :       getSelected(document.getElementById('group_deny')).join(','),
-                               contact_deny    :       getSelected(document.getElementById('contact_deny')).join(',')
-                       });
+                       if (typeof acl!="undefined"){
+                               uploader.setParams( {
+                                       newalbum                :       document.getElementById('photos-upload-newalbum').value,
+                                       album                   :       document.getElementById('photos-upload-album-select').value,
+                                       group_allow             :       acl.allow_gid.join(','),
+                                       contact_allow   :       acl.allow_cid.join(','),
+                                       group_deny              :       acl.deny_gid.join(','),
+                                       contact_deny    :       acl.deny_cid.join(',')
+                               });
+                       } else {
+                               uploader.setParams( {
+                                       newalbum                :       document.getElementById('photos-upload-newalbum').value,
+                                       album                   :       document.getElementById('photos-upload-album-select').value,
+                                       group_allow             :       getSelected(document.getElementById('group_allow')).join(','),
+                                       contact_allow   :       getSelected(document.getElementById('contact_allow')).join(','),
+                                       group_deny              :       getSelected(document.getElementById('group_deny')).join(','),
+                                       contact_deny    :       getSelected(document.getElementById('contact_deny')).join(',')
+                               });
+                       }
                }
        });           
 }
@@ -101,7 +136,7 @@ function js_upload_post_init(&$a,&$b) {
 
        // max file size in bytes
 
-       $sizeLimit = 6 * 1024 * 1024;
+       $sizeLimit = get_config('system','maximagesize'); //6 * 1024 * 1024;
 
        $uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
 
@@ -113,6 +148,7 @@ function js_upload_post_init(&$a,&$b) {
 
        if(isset($result['error'])) {
                logger('mod/photos.php: photos_post(): error uploading photo: ' . $result['error'] , 'LOGGER_DEBUG');
+               echo json_encode($result);
                killme();
        }
 
@@ -225,8 +261,6 @@ class qqFileUploader {
         $this->allowedExtensions = $allowedExtensions;        
         $this->sizeLimit = $sizeLimit;
         
-        $this->checkServerSettings();       
-
         if (isset($_GET['qqfile'])) {
             $this->file = new qqUploadedFileXhr();
         } elseif (isset($_FILES['qqfile'])) {
@@ -237,15 +271,6 @@ class qqFileUploader {
 
     }
     
-    private function checkServerSettings(){        
-        $postSize = $this->toBytes(ini_get('post_max_size'));
-        $uploadSize = $this->toBytes(ini_get('upload_max_filesize'));        
-               logger('mod/photos.php: qqFileUploader(): upload_max_filesize=' . $uploadSize , 'LOGGER_DEBUG');
-        if ($postSize < $this->sizeLimit || $uploadSize < $this->sizeLimit){
-            $size = max(1, $this->sizeLimit / 1024 / 1024) . 'M';             
-            die("{'error':'increase post_max_size and upload_max_filesize to $size'}");    
-        }        
-    }
     
     private function toBytes($str){
         $val = trim($str);
@@ -273,10 +298,10 @@ class qqFileUploader {
             return array('error' => t('Uploaded file is empty'));
         }
         
-        if ($size > $this->sizeLimit) {
+//        if ($size > $this->sizeLimit) {
 
-            return array('error' => t('Uploaded file is too large'));
-        }
+//            return array('error' => t('Uploaded file is too large'));
+//        }
         
 
                $maximagesize = get_config('system','maximagesize');