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

This commit is contained in:
Uwe Steinmann 2017-09-27 07:02:38 +02:00
commit 5b2da28edd
16 changed files with 90 additions and 34 deletions

View File

@ -43,6 +43,8 @@
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.1.4 Changes in version 5.1.4
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- fix javascript error when indexing document, because the indexer was also
created when the js-code was requested (Closes #340)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.1.3 Changes in version 5.1.3
@ -89,6 +91,7 @@
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.0.14 Changes in version 5.0.14
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- use cmd timeout when indexing documents (Closes #344)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 5.0.13 Changes in version 5.0.13
@ -192,6 +195,7 @@
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 4.3.37 Changes in version 4.3.37
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
- fix label in password forgotten form (Closes #346)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Changes in version 4.3.36 Changes in version 4.3.36

View File

@ -101,6 +101,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
try { try {
self::execWithTimeout($cmd, $this->timeout); self::execWithTimeout($cmd, $this->timeout);
} catch(Exception $e) { } catch(Exception $e) {
return false;
} }
} }
return true; return true;

View File

@ -140,6 +140,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
try { try {
self::execWithTimeout($cmd, $this->timeout); self::execWithTimeout($cmd, $this->timeout);
} catch(Exception $e) { } catch(Exception $e) {
return false;
} }
} }
return true; return true;

View File

@ -11,10 +11,10 @@
<email>uwe@steinmann.cx</email> <email>uwe@steinmann.cx</email>
<active>yes</active> <active>yes</active>
</lead> </lead>
<date>2017-03-02</date> <date>2017-09-18</date>
<time>07:14:59</time> <time>07:14:32</time>
<version> <version>
<release>1.2.2</release> <release>1.2.3</release>
<api>1.2.0</api> <api>1.2.0</api>
</version> </version>
<stability> <stability>
@ -23,8 +23,7 @@
</stability> </stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license> <license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes> <notes>
commands can be set for mimetypes 'xxxx/*' and '*' createPreview() returns false if running the converter command fails
pass mimetype as parameter '%m' to converter
</notes> </notes>
<contents> <contents>
<dir baseinstalldir="SeedDMS" name="/"> <dir baseinstalldir="SeedDMS" name="/">
@ -271,5 +270,22 @@ add new previewer which converts document to pdf instead of png
setConverters() overrides exiting converters setConverters() overrides exiting converters
</notes> </notes>
</release> </release>
<release>
<date>2017-03-02</date>
<time>07:14:59</time>
<version>
<release>1.2.2</release>
<api>1.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
commands can be set for mimetypes 'xxxx/*' and '*'
pass mimetype as parameter '%m' to converter
</notes>
</release>
</changelog> </changelog>
</package> </package>

View File

@ -241,8 +241,12 @@ class Settings { /* {{{ */
var $_cmdTimeout = 5; var $_cmdTimeout = 5;
// Preview image width in lists // Preview image width in lists
var $_previewWidthList = 40; var $_previewWidthList = 40;
// Preview image width in menu lists
var $_previewWidthMenuList = 40;
// Preview image width on document details page // Preview image width on document details page
var $_previewWidthDetail = 100; var $_previewWidthDetail = 100;
// Preview image width in drop folder list
var $_previewWidthDropFolderList = 100;
// show full preview on document details page // show full preview on document details page
var $_showFullPreview = false; var $_showFullPreview = false;
// convert to pdf for preview on document details page // convert to pdf for preview on document details page
@ -428,8 +432,12 @@ class Settings { /* {{{ */
$this->_theme = strval($tab["theme"]); $this->_theme = strval($tab["theme"]);
if(isset($tab["previewWidthList"])) if(isset($tab["previewWidthList"]))
$this->_previewWidthList = intval($tab["previewWidthList"]); $this->_previewWidthList = intval($tab["previewWidthList"]);
if(isset($tab["previewWidthMenuList"]))
$this->_previewWidthMenuList = intval($tab["previewWidthMenuList"]);
if(isset($tab["previewWidthDetail"])) if(isset($tab["previewWidthDetail"]))
$this->_previewWidthDetail = intval($tab["previewWidthDetail"]); $this->_previewWidthDetail = intval($tab["previewWidthDetail"]);
if(isset($tab["previewWidthDropFolderList"]))
$this->_previewWidthDropFolderList = intval($tab["previewWidthDropFolderList"]);
$this->_showFullPreview = Settings::boolVal($tab["showFullPreview"]); $this->_showFullPreview = Settings::boolVal($tab["showFullPreview"]);
$this->_convertToPdf = Settings::boolVal($tab["convertToPdf"]); $this->_convertToPdf = Settings::boolVal($tab["convertToPdf"]);
@ -755,7 +763,9 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "availablelanguages", implode(',', $this->_availablelanguages)); $this->setXMLAttributValue($node, "availablelanguages", implode(',', $this->_availablelanguages));
$this->setXMLAttributValue($node, "theme", $this->_theme); $this->setXMLAttributValue($node, "theme", $this->_theme);
$this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList); $this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList);
$this->setXMLAttributValue($node, "previewWidthMenuList", $this->_previewWidthMenuList);
$this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail); $this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail);
$this->setXMLAttributValue($node, "previewWidthDropFolderList", $this->_previewWidthDropFolderList);
$this->setXMLAttributValue($node, "showFullPreview", $this->_showFullPreview); $this->setXMLAttributValue($node, "showFullPreview", $this->_showFullPreview);
$this->setXMLAttributValue($node, "convertToPdf", $this->_convertToPdf); $this->setXMLAttributValue($node, "convertToPdf", $this->_convertToPdf);

View File

@ -863,7 +863,7 @@ switch($command) {
$index = $indexconf['Indexer']::open($settings->_luceneDir); $index = $indexconf['Indexer']::open($settings->_luceneDir);
if($index) { if($index) {
$indexconf['Indexer']::init($settings->_stopWordsFile); $indexconf['Indexer']::init($settings->_stopWordsFile);
$idoc = new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false); $idoc = new $indexconf['IndexedDocument']($dms, $document, isset($settings->_converters['fulltext']) ? $settings->_converters['fulltext'] : null, false, $settings->_cmdTimeout);
if(isset($GLOBALS['SEEDDMS_HOOKS']['indexDocument'])) { if(isset($GLOBALS['SEEDDMS_HOOKS']['indexDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['indexDocument'] as $hookObj) { foreach($GLOBALS['SEEDDMS_HOOKS']['indexDocument'] as $hookObj) {
if (method_exists($hookObj, 'preIndexDocument')) { if (method_exists($hookObj, 'preIndexDocument')) {

View File

@ -74,8 +74,15 @@ if(!empty($_GET["width"]))
else else
$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir); $previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir);
$previewer->setConverters($settings->_converters['preview']); $previewer->setConverters($settings->_converters['preview']);
if(!$previewer->hasPreview($object)) if(!$previewer->hasPreview($object)) {
$previewer->createPreview($object); if(!$previewer->createPreview($object)) {
}
}
if(!$previewer->hasPreview($object)) {
header('Content-Type: image/svg+xml');
readfile('../views/'.$theme.'/images/empty.svg');
exit;
}
header('Content-Type: image/png'); header('Content-Type: image/png');
$previewer->getPreview($object); $previewer->getPreview($object);

View File

@ -65,6 +65,8 @@ if ($action == "saveSettings")
$settings->_availablelanguages = $_POST["availablelanguages"]; $settings->_availablelanguages = $_POST["availablelanguages"];
$settings->_theme = $_POST["theme"]; $settings->_theme = $_POST["theme"];
$settings->_previewWidthList = $_POST["previewWidthList"]; $settings->_previewWidthList = $_POST["previewWidthList"];
$settings->_previewWidthMenuList = $_POST["previewWidthMenuList"];
$settings->_previewWidthDropFolderList = $_POST["previewWidthDropFolderList"];
$settings->_previewWidthDetail = $_POST["previewWidthDetail"]; $settings->_previewWidthDetail = $_POST["previewWidthDetail"];
$settings->_showFullPreview = getBoolValue("showFullPreview"); $settings->_showFullPreview = getBoolValue("showFullPreview");
$settings->_convertToPdf = getBoolValue("convertToPdf"); $settings->_convertToPdf = getBoolValue("convertToPdf");

View File

@ -49,7 +49,8 @@ if($view) {
$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('cachedir', $settings->_cacheDir); $view->setParam('cachedir', $settings->_cacheDir);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthMenuList', $settings->_previewWidthMenuList);
$view->setParam('previewWidthList', $settings->_previewWidthDropFolderList);
$view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('timeout', $settings->_cmdTimeout);
$view->setParam('showfolders', $showfolders); $view->setParam('showfolders', $showfolders);
$view($_GET); $view($_GET);

View File

@ -40,23 +40,27 @@ if(!$settings->_enableFullSearch) {
UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled")); UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled"));
} }
if(isset($_GET['create']) && $_GET['create'] == 1) { if(!isset($_GET['action']) || $_GET['action'] == 'show') {
if(isset($_GET['confirm']) && $_GET['confirm'] == 1) { if(isset($_GET['create']) && $_GET['create'] == 1) {
$index = $indexconf['Indexer']::create($settings->_luceneDir); if(isset($_GET['confirm']) && $_GET['confirm'] == 1) {
$index = $indexconf['Indexer']::create($settings->_luceneDir);
if(!$index) {
UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex"));
}
$indexconf['Indexer']::init($settings->_stopWordsFile);
} else {
header('Location: out.CreateIndex.php');
exit;
}
} else {
$index = $indexconf['Indexer']::open($settings->_luceneDir);
if(!$index) { if(!$index) {
UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex")); UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex"));
} }
$indexconf['Indexer']::init($settings->_stopWordsFile); $indexconf['Indexer']::init($settings->_stopWordsFile);
} else {
header('Location: out.CreateIndex.php');
exit;
} }
} else { } else {
$index = $indexconf['Indexer']::open($settings->_luceneDir); $index = null;
if(!$index) {
UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex"));
}
$indexconf['Indexer']::init($settings->_stopWordsFile);
} }
if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) {

View File

@ -116,7 +116,7 @@ $(document).ready(function() {
alternatives: [$('#dropfolderfileform1'), $('#choosedocsearchform1')] alternatives: [$('#dropfolderfileform1'), $('#choosedocsearchform1')]
}, },
dropfolderfileform1: { dropfolderfileform1: {
alternatives: [$(".btn-file input"), $('#choosedocsearchform1')] alternatives: [$("#userfile"), $('#choosedocsearchform1')]
} }
<?php <?php
} }

View File

@ -1053,7 +1053,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
<div class="input-append"> <div class="input-append">
<input type="text" class="form-control" readonly> <input type="text" class="form-control" readonly>
<span class="btn btn-default btn-file"> <span class="btn btn-default btn-file">
'.getMLText("browse").'&hellip; <input _id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").'"> '.getMLText("browse").'&hellip; <input id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").'">
</span> </span>
</div> </div>
</div> </div>
@ -1407,7 +1407,7 @@ $(document).ready(function() {
print "<div class=\"input-append\">\n"; print "<div class=\"input-append\">\n";
print "<input readonly type=\"text\" id=\"dropfolderfile".$formName."\" name=\"dropfolderfile".$formName."\" value=\"".$dropfolderfile."\">"; print "<input readonly type=\"text\" id=\"dropfolderfile".$formName."\" name=\"dropfolderfile".$formName."\" value=\"".$dropfolderfile."\">";
print "<button type=\"button\" class=\"btn\" id=\"clearfilename".$formName."\"><i class=\"icon-remove\"></i></button>"; print "<button type=\"button\" class=\"btn\" id=\"clearfilename".$formName."\"><i class=\"icon-remove\"></i></button>";
print "<a data-target=\"#dropfolderChooser\" href=\"../out/out.DropFolderChooser.php?form=form1&dropfolderfile=".$dropfolderfile."&showfolders=".$showfolders."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".($showfolders ? getMLText("choose_target_folder"): getMLText("choose_target_file"))."…</a>\n"; print "<a data-target=\"#dropfolderChooser\" href=\"../out/out.DropFolderChooser.php?form=form1&dropfolderfile=".urlencode($dropfolderfile)."&showfolders=".$showfolders."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".($showfolders ? getMLText("choose_target_folder"): getMLText("choose_target_file"))."…</a>\n";
print "</div>\n"; print "</div>\n";
?> ?>
<div class="modal hide" id="dropfolderChooser" tabindex="-1" role="dialog" aria-labelledby="dropfolderChooserLabel" aria-hidden="true"> <div class="modal hide" id="dropfolderChooser" tabindex="-1" role="dialog" aria-labelledby="dropfolderChooserLabel" aria-hidden="true">

View File

@ -56,10 +56,10 @@ $('.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'];
$previewwidth = $this->params['previewWidthMenuList'];
$timeout = $this->params['timeout']; $timeout = $this->params['timeout'];
$folderid = isset($_GET['folderid']) ? $_GET['folderid'] : 0; $folderid = isset($_GET['folderid']) ? $_GET['folderid'] : 0;
$previewwidth = 40;
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout); $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$c = 0; // count files $c = 0; // count files
@ -78,10 +78,12 @@ $('.folderselect').click(function(ev) {
if($showfolders == 0 && !is_dir($dir.'/'.$entry)) { if($showfolders == 0 && !is_dir($dir.'/'.$entry)) {
$c++; $c++;
$mimetype = finfo_file($finfo, $dir.'/'.$entry); $mimetype = finfo_file($finfo, $dir.'/'.$entry);
$previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype); $filecontent .= "<li><a".($folderid ? " href=\"../out/out.AddDocument.php?folderid=".$folderid."&dropfolderfileform1=".urldecode($entry)."\" title=\"".getMLText('menu_upload_from_dropfolder')."\"" : "").">";
$filecontent .= "<li><a".($folderid ? " href=\"../out/out.AddDocument.php?folderid=".$folderid."&dropfolderfileform1=".urldecode($entry)."\"" : "").">"; if($previewwidth) {
if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) { $previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype);
$filecontent .= "<div style=\"float: left; display:inline; width:40px; max-height:40px;overflow:hidden;\"><img filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"../op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\"></div>"; if($previewer->hasRawPreview($dir.'/'.$entry, 'dropfolder/')) {
$filecontent .= "<div style=\"float: left; display:inline; width:40px; max-height:40px;overflow:hidden;\"><img filename=\"".$entry."\" width=\"".$previewwidth."\" src=\"../op/op.DropFolderPreview.php?filename=".$entry."&width=".$previewwidth."\" title=\"".htmlspecialchars($mimetype)."\"></div>";
}
} }
$filecontent .= "<div style=\"margin-left:10px; margin-right: 40px; 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></a></li>\n"; $filecontent .= "<div style=\"margin-left:10px; margin-right: 40px; 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></a></li>\n";
} elseif($showfolders && is_dir($dir.'/'.$entry)) { } elseif($showfolders && is_dir($dir.'/'.$entry)) {

View File

@ -82,7 +82,7 @@ document.form1.email.focus();
<p><?php printMLText("password_forgotten_text"); ?></p> <p><?php printMLText("password_forgotten_text"); ?></p>
<div class="control-group"> <div class="control-group">
<label class="control-label"><?php printMLText("login");?>:</label> <label class="control-label"><?php printMLText("user_login");?>:</label>
<div class="controls"> <div class="controls">
<input type="text" name="login" id="login"> <input type="text" name="login" id="login">
</div> </div>

View File

@ -190,6 +190,14 @@ if(!is_writeable($settings->_configFilePath)) {
<td><?php printMLText("settings_previewWidthList");?>:</td> <td><?php printMLText("settings_previewWidthList");?>:</td>
<td><?php $this->showTextField("previewWidthList", $settings->_previewWidthList); ?></td> <td><?php $this->showTextField("previewWidthList", $settings->_previewWidthList); ?></td>
</tr> </tr>
<tr title="<?php printMLText("settings_previewWidthMenuList_desc");?>">
<td><?php printMLText("settings_previewWidthMenuList");?>:</td>
<td><?php $this->showTextField("previewWidthMenuList", $settings->_previewWidthMenuList); ?></td>
</tr>
<tr title="<?php printMLText("settings_previewWidthDropFolderList_desc");?>">
<td><?php printMLText("settings_previewWidthDropFolderList");?>:</td>
<td><?php $this->showTextField("previewWidthDropFolderList", $settings->_previewWidthDropFolderList); ?></td>
</tr>
<tr title="<?php printMLText("settings_previewWidthDetail_desc");?>"> <tr title="<?php printMLText("settings_previewWidthDetail_desc");?>">
<td><?php printMLText("settings_previewWidthDetail");?>:</td> <td><?php printMLText("settings_previewWidthDetail");?>:</td>
<td><?php $this->showTextField("previewWidthDetail", $settings->_previewWidthDetail); ?></td> <td><?php $this->showTextField("previewWidthDetail", $settings->_previewWidthDetail); ?></td>