diff --git a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js index d10ffff7daab2e16ecc77205383e0c2a8052be7a..de03a59f4181ba0609b3dd091076af01f1ded130 100644 --- a/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js +++ b/src/vitis/client/javascript/externs/formReader/component/file_picker/file_picker.js @@ -99,11 +99,12 @@ nsVitisComponent.FilePickerDirective = function ($timeout, $translate, propertie // Affiche les images présentes sur le serveur var aAvaliableFiles = scope["oFormValues"][scope["sFormDefinitionName"]][scope['field'].name]; - if (scope['field']['multiple'] !== true) { - if (goog.isString(aAvaliableFiles)) { - aAvaliableFiles = [aAvaliableFiles]; - } + + // Rétrocompatibilité API + if (goog.isString(aAvaliableFiles)) { + aAvaliableFiles = [aAvaliableFiles]; } + if (goog.isDefAndNotNull(aAvaliableFiles)) { scope['addFilesFromURL'](aAvaliableFiles).then(function(){ diff --git a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc index 598dfd49328471d439b778eb51b6c7883d74a1ca..45bd24da6628ff19170bce17975e4922c4142d08 100644 --- a/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc +++ b/src/vitis/vas/rest/class/vmlib/files/Files_manager.class.inc @@ -259,6 +259,70 @@ class Files_manager{ return $aFileStruc; } + /** + * Upload la miniature du fichier si il s'agit l'image ou retourne false + * + * @param {array} $aFileStruct Structure du fichier + * @param {string} $sDestPath Répertoire de destination + * @param {string} $sField Champ en base de données + * @param {string} $sMinDestPath Répertoire de destination du fichier min + * @param {integer} $iMaxSize Taille maximale du fichier + * @return {boolean} true en cas de succes + */ + private function uploadImageThumbnail($aFileStruct, $sDestPath, $sField, $sMinDestPath, $iMaxSize = -1) { + + $aImgSize = getimagesize($aFileStruct['tmp_name']); + + // Si image + if(@is_array($aImgSize)){ + + $aThumbnailFileStruct = $aFileStruct; + $aThumbnailFileStruct["width"] = 200; + $aThumbnailFileStruct["height"] = 200; + + if (is_int($this->oProperties['filesystem_thumbnails_max_width']) && + is_int($this->oProperties['filesystem_thumbnails_max_height'])) { + + $imgWidth = $aImgSize[0]; + $imgHeight = $aImgSize[1]; + + // Redimentionne la largeur en conservant le ratio + if ($imgWidth > $this->oProperties['filesystem_thumbnails_max_width']) { + $imgHeight = round($imgHeight * $this->oProperties['filesystem_thumbnails_max_width'] / $imgWidth); + $imgWidth = $this->oProperties['filesystem_thumbnails_max_width']; + } + + // Redimentionne la hauteur en conservant le ratio + if ($imgHeight > $this->oProperties['filesystem_thumbnails_max_height']) { + $imgWidth = round($imgWidth * $this->oProperties['filesystem_thumbnails_max_height'] / $imgHeight); + $imgHeight = $this->oProperties['filesystem_thumbnails_max_height']; + } + + $aThumbnailFileStruct["height"] = $imgHeight; + $aThumbnailFileStruct["width"] = $imgWidth; + } + + $aThumbnailFileStruct['tmp_name'] = $aThumbnailFileStruct['tmp_name'] . '.min'; + $aDestPathExt = explode('.', $sDestPath); + + $aDestPathExt = explode('.', $sDestPath); + + // Ajoute .min sur la destination + array_splice($aDestPathExt, -1, 0, 'min'); + $sMinDestPath = implode('.', $aDestPathExt); + + // Copie le fichier dans tmp + copy($aFileStruct['tmp_name'], $aThumbnailFileStruct['tmp_name']); + + // Upload le fichier .min.jpg + $this->uploadFile($sField, "image", $sMinDestPath, $iMaxSize, $aThumbnailFileStruct); + + return true; + } else { + return false; + } + } + /** *This method upload a file in ws_data. *@param $sModule Name of the module. @@ -356,34 +420,7 @@ class Files_manager{ // Image miniature $sMinDestPath = null; if ($bCreateThumbnail === true && file_exists($aFileStruct['tmp_name'])) { - - // Si image - if(@is_array(getimagesize($aFileStruct['tmp_name']))){ - - $aThumbnailFileStruct = $aFileStruct; - $aThumbnailFileStruct["width"] = 200; - $aThumbnailFileStruct["height"] = 200; - - if (is_int($this->oProperties['filesystem_thumbnails_width'])) { - $aThumbnailFileStruct["width"] = $this->oProperties['filesystem_thumbnails_width']; - } - if (is_int($this->oProperties['filesystem_thumbnails_height'])) { - $aThumbnailFileStruct["height"] = $this->oProperties['filesystem_thumbnails_height']; - } - - $aThumbnailFileStruct['tmp_name'] = $aThumbnailFileStruct['tmp_name'] . '.min'; - $aDestPathExt = explode('.', $sDestPath); - - // Ajoute .min sur la destination - array_splice($aDestPathExt, -1, 0, 'min'); - $sMinDestPath = implode('.', $aDestPathExt); - - // Copie le fichier dans tmp - copy($aFileStruct['tmp_name'], $aThumbnailFileStruct['tmp_name']); - - // Upload le fichier .min.jpg - $this->uploadFile($sField, "image", $sMinDestPath, $iMaxSize, $aThumbnailFileStruct); - } + $this->uploadImageThumbnail($aFileStruct, $sDestPath, $sField, $sMinDestPath, $iMaxSize); } // Upload du fichier diff --git a/src/vitis/vas/rest/conf/properties_server.inc b/src/vitis/vas/rest/conf/properties_server.inc index 7eb115606d8fc4415dbf29a17ba9864d9322bda7..9b34fdadd7ae222fac65ec5f264f1377555cd898 100644 --- a/src/vitis/vas/rest/conf/properties_server.inc +++ b/src/vitis/vas/rest/conf/properties_server.inc @@ -49,8 +49,8 @@ $properties["notifierAccessKeyAccount"] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $properties["notifierSecretKeyAccount"] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // utilisation de s3 pour remplacer le système de Fichier $properties['filesystem'] = 'fs'; // s3 -$properties['filesystem_thumbnails_width'] = 350; // taille des images .min.jpg -$properties['filesystem_thumbnails_height'] = 350; // taille des images .min.jpg +$properties['filesystem_thumbnails_max_width'] = 350; // taille maximale des images .min.jpg +$properties['filesystem_thumbnails_max_height'] = 350; // taille maximale des images .min.jpg $properties['AWSCredentialsFilePath'] = ""; // .../.aws/credentials $properties["fileS3UploaderProfil"] = ""; $properties["fileS3UploaderBucket"] = "";