Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2023-04-13 15:05:11 +02:00
commit 6e489dc80a
5 changed files with 31 additions and 19 deletions

View File

@ -263,6 +263,7 @@
- rest api returns error msg and not just http status - rest api returns error msg and not just http status
- comment of document, documentcontent and folder can be rendered as - comment of document, documentcontent and folder can be rendered as
markdown markdown
- fix preview for file in drop folder
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.1.30 Changes in version 5.1.30

View File

@ -55,6 +55,9 @@ image/jpg
image/jpeg image/jpeg
convert -density 300 '%f' 'pdf:%o' convert -density 300 '%f' 'pdf:%o'
image/svg+xml
cairosvg -f pdf -o '%o' '%f'
application/vnd.ms-powerpoint application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.openxmlformats-officedocument.presentationml.presentation
application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation
@ -93,6 +96,9 @@ image/jpeg
image/png image/png
convert -resize %wx '%f' 'png:%o' convert -resize %wx '%f' 'png:%o'
image/svg+xml
cairosvg -f png --output-width %w -o '%o' '%f'
text/plain text/plain
convert -density 100 -resize %wx 'text:%f[0]' 'png:%o' convert -density 100 -resize %wx 'text:%f[0]' 'png:%o'

View File

@ -34,27 +34,24 @@ if (!isset($_GET["filename"])) {
} }
$filename = $_GET["filename"]; $filename = $_GET["filename"];
if(substr($settings->_dropFolderDir, -1, 1) == DIRECTORY_SEPARATOR) $dir = rtrim($settings->_dropFolderDir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$user->getLogin();
$dropfolderdir = substr($settings->_dropFolderDir, 0, -1);
else
$dropfolderdir = $settings->_dropFolderDir;
$dir = $dropfolderdir.'/'.$user->getLogin();
if(!file_exists($dir.'/'.$filename)) if(!file_exists($dir.DIRECTORY_SEPARATOR.$filename))
exit; exit;
$finfo = finfo_open(FILEINFO_MIME_TYPE); $finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $dir.'/'.$filename); $mimetype = finfo_file($finfo, $dir.'/'.$filename);
if(!empty($_GET["width"])) 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 else
$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir, $settings->_previewWidthList, $settings->_cmdTimeout, $settings->_enableXsendfile);
$previewer->setConverters($settings->_converters['preview']); if($conversionmgr)
$previewer->setXsendfile($settings->_enableXsendfile); $previewer->setConversionMgr($conversionmgr);
else
$previewer->setConverters($previewconverters);
if(!$previewer->hasRawPreview($dir.'/'.$filename, 'dropfolder/')) if(!$previewer->hasRawPreview($dir.'/'.$filename, 'dropfolder/'))
$previewer->createRawPreview($dir.'/'.$filename, 'dropfolder/', $mimetype); $previewer->createRawPreview($dir.'/'.$filename, 'dropfolder/', $mimetype);
header('Content-Type: image/png'); header('Content-Type: image/png');
$previewer->getRawPreview($dir.'/'.$filename, 'dropfolder/'); $previewer->getRawPreview($dir.'/'.$filename, 'dropfolder/');
?>

View File

@ -57,9 +57,11 @@ if($view) {
$view->setParam('dropfolderdir', $dropfolderdir); $view->setParam('dropfolderdir', $dropfolderdir);
$view->setParam('dropfolderfile', isset($_GET["dropfolderfile"]) ? $_GET["dropfolderfile"] : ''); $view->setParam('dropfolderfile', isset($_GET["dropfolderfile"]) ? $_GET["dropfolderfile"] : '');
$view->setParam('form', $form); $view->setParam('form', $form);
$view->setParam('conversionmgr', $conversionmgr);
$view->setParam('cachedir', $settings->_cacheDir); $view->setParam('cachedir', $settings->_cacheDir);
$view->setParam('previewWidthMenuList', $settings->_previewWidthMenuList); $view->setParam('previewWidthMenuList', $settings->_previewWidthMenuList);
$view->setParam('previewWidthList', $settings->_previewWidthDropFolderList); $view->setParam('previewWidthList', $settings->_previewWidthDropFolderList);
$view->setParam('previewConverters', isset($settings->_converters['preview']) ? $settings->_converters['preview'] : array());
$view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('timeout', $settings->_cmdTimeout);
$view->setParam('xsendfile', $settings->_enableXsendfile); $view->setParam('xsendfile', $settings->_enableXsendfile);
$view->setParam('showfolders', $showfolders); $view->setParam('showfolders', $showfolders);

View File

@ -54,16 +54,22 @@ $('.folderselect').click(function(ev) {
$dropfolderdir = $this->params['dropfolderdir']; $dropfolderdir = $this->params['dropfolderdir'];
$showfolders = $this->params['showfolders']; $showfolders = $this->params['showfolders'];
$cachedir = $this->params['cachedir']; $cachedir = $this->params['cachedir'];
$conversionmgr = $this->params['conversionmgr'];
$previewwidth = $this->params['previewWidthMenuList']; $previewwidth = $this->params['previewWidthMenuList'];
$previewconverters = $this->params['previewConverters'];
$timeout = $this->params['timeout']; $timeout = $this->params['timeout'];
$xsendfile = $this->params['xsendfile']; $xsendfile = $this->params['xsendfile'];
$folder = $this->params['folder']; $folder = $this->params['folder'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
if($conversionmgr)
$previewer->setConversionMgr($conversionmgr);
else
$previewer->setConverters($previewconverters);
$c = 0; // count files $c = 0; // count files
$menuitems['dropfolder'] = array('label'=>'', 'children'=>array()); $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 /* Check if we are still looking in the configured directory and
* not somewhere else, e.g. if the login was '../test' * not somewhere else, e.g. if the login was '../test'
*/ */
@ -74,21 +80,21 @@ $('.folderselect').click(function(ev) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); $finfo = finfo_open(FILEINFO_MIME_TYPE);
while (false !== ($entry = $d->read())) { while (false !== ($entry = $d->read())) {
if($entry != '..' && $entry != '.') { 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++; $c++;
$subitem = array('label'=>'', 'attributes'=>array(array('title', getMLText('menu_upload_from_dropfolder')))); $subitem = array('label'=>'', 'attributes'=>array(array('title', getMLText('menu_upload_from_dropfolder'))));
if($folder) if($folder)
$subitem['link'] = $settings->_httpRoot.'out/out.AddDocument.php?folderid='.$folder->getId()."&dropfolderfileform1=".urldecode($entry); $subitem['link'] = $settings->_httpRoot.'out/out.AddDocument.php?folderid='.$folder->getId()."&dropfolderfileform1=".urldecode($entry);
$mimetype = finfo_file($finfo, $dir.'/'.$entry); $mimetype = finfo_file($finfo, $dir.DIRECTORY_SEPARATOR.$entry);
if(file_exists($dir.'/'.$entry)) { if(file_exists($dir.DIRECTORY_SEPARATOR.$entry)) {
if($previewwidth) { if($previewwidth) {
$previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype); $previewer->createRawPreview($dir.DIRECTORY_SEPARATOR.$entry, 'dropfolder'.DIRECTORY_SEPARATOR, $mimetype);
if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) { if($previewer->hasRawPreview($dir.DIRECTORY_SEPARATOR.$entry, 'dropfolder'.DIRECTORY_SEPARATOR)) {
$subitem['label'] .= "<div class=\"dropfolder-menu-img\" style=\"display: none; overflow:hidden; position: absolute; left:-".($previewwidth+10)."px; border: 1px solid #888;background: white;\"><img filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"".$settings->_httpRoot."op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\"></div>"; $subitem['label'] .= "<div class=\"dropfolder-menu-img\" style=\"display: none; overflow:hidden; position: absolute; left:-".($previewwidth+10)."px; border: 1px solid #888;background: white;\"><img filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"".$settings->_httpRoot."op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\"></div>";
} }
$subitem['label'] .= "<div class=\"dropfolder-menu-text\" style=\"margin-left:10px; margin-right: 10px; display:inline-block;\">".$entry."<br /><span style=\"font-size: 85%;\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."</span></div>";
$menuitems['dropfolder']['children'][] = $subitem;
} }
$subitem['label'] .= "<div class=\"dropfolder-menu-text\" style=\"margin-left:10px; margin-right: 10px; display:inline-block;\">".$entry."<br /><span style=\"font-size: 85%;\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry)).", ".date('Y-m-d H:i:s', filectime($dir.'/'.$entry))."</span></div>";
$menuitems['dropfolder']['children'][] = $subitem;
} }
} elseif($showfolders && is_dir($dir.'/'.$entry)) { } elseif($showfolders && is_dir($dir.'/'.$entry)) {
$subitem = array('label'=>$entry); $subitem = array('label'=>$entry);