diff --git a/CHANGELOG b/CHANGELOG index e09109d2b..c8c60ea6b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -263,6 +263,7 @@ - rest api returns error msg and not just http status - comment of document, documentcontent and folder can be rendered as markdown +- fix preview for file in drop folder -------------------------------------------------------------------------------- Changes in version 5.1.30 diff --git a/doc/README.Converters b/doc/README.Converters index 034358ccf..71e701b6a 100644 --- a/doc/README.Converters +++ b/doc/README.Converters @@ -55,6 +55,9 @@ image/jpg image/jpeg convert -density 300 '%f' 'pdf:%o' +image/svg+xml + cairosvg -f pdf -o '%o' '%f' + application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.oasis.opendocument.presentation @@ -93,6 +96,9 @@ image/jpeg image/png convert -resize %wx '%f' 'png:%o' +image/svg+xml + cairosvg -f png --output-width %w -o '%o' '%f' + text/plain convert -density 100 -resize %wx 'text:%f[0]' 'png:%o' diff --git a/op/op.DropFolderPreview.php b/op/op.DropFolderPreview.php index b70d01e6a..d6f88a71d 100644 --- a/op/op.DropFolderPreview.php +++ b/op/op.DropFolderPreview.php @@ -34,27 +34,24 @@ if (!isset($_GET["filename"])) { } $filename = $_GET["filename"]; -if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) - $dropfolderdir = substr($settings->_dropFolderDir, 0, -1); -else - $dropfolderdir = $settings->_dropFolderDir; -$dir = $dropfolderdir.'/'.$user->getLogin(); +$dir = rtrim($settings->_dropFolderDir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$user->getLogin(); -if(!file_exists($dir.'/'.$filename)) +if(!file_exists($dir.DIRECTORY_SEPARATOR.$filename)) exit; $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimetype = finfo_file($finfo, $dir.'/'.$filename); if(!empty($_GET["width"])) - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $_GET["width"]); + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $_GET["width"], $settings->_cmdTimeout, $settings->_enableXsendfile); else - $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); -$previewer->setConverters($settings->_converters['preview']); -$previewer->setXsendfile($settings->_enableXsendfile); + $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $settings->_previewWidthList, $settings->_cmdTimeout, $settings->_enableXsendfile); +if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); +else + $previewer->setConverters($previewconverters); if(!$previewer->hasRawPreview($dir.'/'.$filename, 'dropfolder/')) $previewer->createRawPreview($dir.'/'.$filename, 'dropfolder/', $mimetype); header('Content-Type: image/png'); $previewer->getRawPreview($dir.'/'.$filename, 'dropfolder/'); -?> diff --git a/out/out.DropFolderChooser.php b/out/out.DropFolderChooser.php index 112892928..f7bbef11f 100644 --- a/out/out.DropFolderChooser.php +++ b/out/out.DropFolderChooser.php @@ -57,9 +57,11 @@ if($view) { $view->setParam('dropfolderdir', $dropfolderdir); $view->setParam('dropfolderfile', isset($_GET["dropfolderfile"]) ? $_GET["dropfolderfile"] : ''); $view->setParam('form', $form); + $view->setParam('conversionmgr', $conversionmgr); $view->setParam('cachedir', $settings->_cacheDir); $view->setParam('previewWidthMenuList', $settings->_previewWidthMenuList); $view->setParam('previewWidthList', $settings->_previewWidthDropFolderList); + $view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array()); $view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('xsendfile', $settings->_enableXsendfile); $view->setParam('showfolders', $showfolders); diff --git a/views/bootstrap/class.DropFolderChooser.php b/views/bootstrap/class.DropFolderChooser.php index 065430aea..44105f441 100644 --- a/views/bootstrap/class.DropFolderChooser.php +++ b/views/bootstrap/class.DropFolderChooser.php @@ -54,16 +54,22 @@ $('.folderselect').click(function(ev) { $dropfolderdir = $this->params['dropfolderdir']; $showfolders = $this->params['showfolders']; $cachedir = $this->params['cachedir']; + $conversionmgr = $this->params['conversionmgr']; $previewwidth = $this->params['previewWidthMenuList']; + $previewconverters = $this->params['previewConverters']; $timeout = $this->params['timeout']; $xsendfile = $this->params['xsendfile']; $folder = $this->params['folder']; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); + if($conversionmgr) + $previewer->setConversionMgr($conversionmgr); + else + $previewer->setConverters($previewconverters); $c = 0; // count files $menuitems['dropfolder'] = array('label'=>'', 'children'=>array()); - $dir = rtrim($dropfolderdir, '/').'/'.$user->getLogin(); + $dir = rtrim($dropfolderdir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$user->getLogin(); /* Check if we are still looking in the configured directory and * not somewhere else, e.g. if the login was '../test' */ @@ -74,21 +80,21 @@ $('.folderselect').click(function(ev) { $finfo = finfo_open(FILEINFO_MIME_TYPE); while (false !== ($entry = $d->read())) { if($entry != '..' && $entry != '.') { - if($showfolders == 0 && !is_dir($dir.'/'.$entry) && is_readable($dir.'/'.$entry)) { + if($showfolders == 0 && !is_dir($dir.DIRECTORY_SEPARATOR.$entry) && is_readable($dir.DIRECTORY_SEPARATOR.$entry)) { $c++; $subitem = array('label'=>'', 'attributes'=>array(array('title', getMLText('menu_upload_from_dropfolder')))); if($folder) $subitem['link'] = $settings->_httpRoot.'out/out.AddDocument.php?folderid='.$folder->getId()."&dropfolderfileform1=".urldecode($entry); - $mimetype = finfo_file($finfo, $dir.'/'.$entry); - if(file_exists($dir.'/'.$entry)) { + $mimetype = finfo_file($finfo, $dir.DIRECTORY_SEPARATOR.$entry); + if(file_exists($dir.DIRECTORY_SEPARATOR.$entry)) { if($previewwidth) { - $previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype); - if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) { + $previewer->createRawPreview($dir.DIRECTORY_SEPARATOR.$entry, 'dropfolder'.DIRECTORY_SEPARATOR, $mimetype); + if($previewer->hasRawPreview($dir.DIRECTORY_SEPARATOR.$entry, 'dropfolder'.DIRECTORY_SEPARATOR)) { $subitem['label'] .= "
_httpRoot."op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\">
"; } + $subitem['label'] .= "
".$entry."
".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."
"; + $menuitems['dropfolder']['children'][] = $subitem; } - $subitem['label'] .= "
".$entry."
".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."
"; - $menuitems['dropfolder']['children'][] = $subitem; } } elseif($showfolders && is_dir($dir.'/'.$entry)) { $subitem = array('label'=>$entry);