mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-03-12 00:45:34 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
5b2da28edd
|
@ -43,6 +43,8 @@
|
|||
--------------------------------------------------------------------------------
|
||||
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
|
||||
|
@ -89,6 +91,7 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.0.14
|
||||
--------------------------------------------------------------------------------
|
||||
- use cmd timeout when indexing documents (Closes #344)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.0.13
|
||||
|
@ -192,6 +195,7 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.37
|
||||
--------------------------------------------------------------------------------
|
||||
- fix label in password forgotten form (Closes #346)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.36
|
||||
|
|
|
@ -64,13 +64,13 @@ class SeedDMS_Preview_Base {
|
|||
2 => array("pipe", "w")
|
||||
);
|
||||
$pipes = array();
|
||||
|
||||
|
||||
$timeout += time();
|
||||
$process = proc_open($cmd, $descriptorspec, $pipes);
|
||||
if (!is_resource($process)) {
|
||||
throw new Exception("proc_open failed on: " . $cmd);
|
||||
}
|
||||
|
||||
|
||||
$output = '';
|
||||
$timeleft = $timeout - time();
|
||||
$read = array($pipes[1]);
|
||||
|
@ -78,13 +78,13 @@ class SeedDMS_Preview_Base {
|
|||
$exeptions = NULL;
|
||||
do {
|
||||
stream_select($read, $write, $exeptions, $timeleft, 200000);
|
||||
|
||||
|
||||
if (!empty($read)) {
|
||||
$output .= fread($pipes[1], 8192);
|
||||
}
|
||||
$timeleft = $timeout - time();
|
||||
} while (!feof($pipes[1]) && $timeleft > 0);
|
||||
|
||||
|
||||
if ($timeleft <= 0) {
|
||||
proc_terminate($process);
|
||||
throw new Exception("command timeout on: " . $cmd);
|
||||
|
@ -109,7 +109,7 @@ class SeedDMS_Preview_Base {
|
|||
/**
|
||||
* Check if converter for a given mimetype is set
|
||||
*
|
||||
* @param string $mimetype
|
||||
* @param string $mimetype
|
||||
* @return boolean true if converter exists, otherwise false
|
||||
*/
|
||||
function hasConverter($mimetype) { /* {{{ */
|
||||
|
|
|
@ -101,6 +101,7 @@ class SeedDMS_Preview_PdfPreviewer extends SeedDMS_Preview_Base {
|
|||
try {
|
||||
self::execWithTimeout($cmd, $this->timeout);
|
||||
} catch(Exception $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -140,6 +140,7 @@ class SeedDMS_Preview_Previewer extends SeedDMS_Preview_Base {
|
|||
try {
|
||||
self::execWithTimeout($cmd, $this->timeout);
|
||||
} catch(Exception $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2017-03-02</date>
|
||||
<time>07:14:59</time>
|
||||
<date>2017-09-18</date>
|
||||
<time>07:14:32</time>
|
||||
<version>
|
||||
<release>1.2.2</release>
|
||||
<release>1.2.3</release>
|
||||
<api>1.2.0</api>
|
||||
</version>
|
||||
<stability>
|
||||
|
@ -23,8 +23,7 @@
|
|||
</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
|
||||
createPreview() returns false if running the converter command fails
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
@ -271,5 +270,22 @@ add new previewer which converts document to pdf instead of png
|
|||
setConverters() overrides exiting converters
|
||||
</notes>
|
||||
</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>
|
||||
</package>
|
||||
|
|
|
@ -241,8 +241,12 @@ class Settings { /* {{{ */
|
|||
var $_cmdTimeout = 5;
|
||||
// Preview image width in lists
|
||||
var $_previewWidthList = 40;
|
||||
// Preview image width in menu lists
|
||||
var $_previewWidthMenuList = 40;
|
||||
// Preview image width on document details page
|
||||
var $_previewWidthDetail = 100;
|
||||
// Preview image width in drop folder list
|
||||
var $_previewWidthDropFolderList = 100;
|
||||
// show full preview on document details page
|
||||
var $_showFullPreview = false;
|
||||
// convert to pdf for preview on document details page
|
||||
|
@ -428,8 +432,12 @@ class Settings { /* {{{ */
|
|||
$this->_theme = strval($tab["theme"]);
|
||||
if(isset($tab["previewWidthList"]))
|
||||
$this->_previewWidthList = intval($tab["previewWidthList"]);
|
||||
if(isset($tab["previewWidthMenuList"]))
|
||||
$this->_previewWidthMenuList = intval($tab["previewWidthMenuList"]);
|
||||
if(isset($tab["previewWidthDetail"]))
|
||||
$this->_previewWidthDetail = intval($tab["previewWidthDetail"]);
|
||||
if(isset($tab["previewWidthDropFolderList"]))
|
||||
$this->_previewWidthDropFolderList = intval($tab["previewWidthDropFolderList"]);
|
||||
$this->_showFullPreview = Settings::boolVal($tab["showFullPreview"]);
|
||||
$this->_convertToPdf = Settings::boolVal($tab["convertToPdf"]);
|
||||
|
||||
|
@ -755,7 +763,9 @@ class Settings { /* {{{ */
|
|||
$this->setXMLAttributValue($node, "availablelanguages", implode(',', $this->_availablelanguages));
|
||||
$this->setXMLAttributValue($node, "theme", $this->_theme);
|
||||
$this->setXMLAttributValue($node, "previewWidthList", $this->_previewWidthList);
|
||||
$this->setXMLAttributValue($node, "previewWidthMenuList", $this->_previewWidthMenuList);
|
||||
$this->setXMLAttributValue($node, "previewWidthDetail", $this->_previewWidthDetail);
|
||||
$this->setXMLAttributValue($node, "previewWidthDropFolderList", $this->_previewWidthDropFolderList);
|
||||
$this->setXMLAttributValue($node, "showFullPreview", $this->_showFullPreview);
|
||||
$this->setXMLAttributValue($node, "convertToPdf", $this->_convertToPdf);
|
||||
|
||||
|
|
|
@ -863,7 +863,7 @@ switch($command) {
|
|||
$index = $indexconf['Indexer']::open($settings->_luceneDir);
|
||||
if($index) {
|
||||
$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'])) {
|
||||
foreach($GLOBALS['SEEDDMS_HOOKS']['indexDocument'] as $hookObj) {
|
||||
if (method_exists($hookObj, 'preIndexDocument')) {
|
||||
|
|
|
@ -74,8 +74,15 @@ if(!empty($_GET["width"]))
|
|||
else
|
||||
$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir);
|
||||
$previewer->setConverters($settings->_converters['preview']);
|
||||
if(!$previewer->hasPreview($object))
|
||||
$previewer->createPreview($object);
|
||||
if(!$previewer->hasPreview($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');
|
||||
$previewer->getPreview($object);
|
||||
|
||||
|
|
|
@ -65,6 +65,8 @@ if ($action == "saveSettings")
|
|||
$settings->_availablelanguages = $_POST["availablelanguages"];
|
||||
$settings->_theme = $_POST["theme"];
|
||||
$settings->_previewWidthList = $_POST["previewWidthList"];
|
||||
$settings->_previewWidthMenuList = $_POST["previewWidthMenuList"];
|
||||
$settings->_previewWidthDropFolderList = $_POST["previewWidthDropFolderList"];
|
||||
$settings->_previewWidthDetail = $_POST["previewWidthDetail"];
|
||||
$settings->_showFullPreview = getBoolValue("showFullPreview");
|
||||
$settings->_convertToPdf = getBoolValue("convertToPdf");
|
||||
|
|
|
@ -49,7 +49,8 @@ if($view) {
|
|||
$view->setParam('dropfolderfile', isset($_GET["dropfolderfile"]) ? $_GET["dropfolderfile"] : '');
|
||||
$view->setParam('form', $form);
|
||||
$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('showfolders', $showfolders);
|
||||
$view($_GET);
|
||||
|
|
|
@ -40,23 +40,27 @@ if(!$settings->_enableFullSearch) {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("fulltextsearch_disabled"));
|
||||
}
|
||||
|
||||
if(isset($_GET['create']) && $_GET['create'] == 1) {
|
||||
if(isset($_GET['confirm']) && $_GET['confirm'] == 1) {
|
||||
$index = $indexconf['Indexer']::create($settings->_luceneDir);
|
||||
if(!isset($_GET['action']) || $_GET['action'] == 'show') {
|
||||
if(isset($_GET['create']) && $_GET['create'] == 1) {
|
||||
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) {
|
||||
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) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("no_fulltextindex"));
|
||||
}
|
||||
$indexconf['Indexer']::init($settings->_stopWordsFile);
|
||||
$index = null;
|
||||
}
|
||||
|
||||
if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) {
|
||||
|
|
|
@ -116,7 +116,7 @@ $(document).ready(function() {
|
|||
alternatives: [$('#dropfolderfileform1'), $('#choosedocsearchform1')]
|
||||
},
|
||||
dropfolderfileform1: {
|
||||
alternatives: [$(".btn-file input"), $('#choosedocsearchform1')]
|
||||
alternatives: [$("#userfile"), $('#choosedocsearchform1')]
|
||||
}
|
||||
<?php
|
||||
}
|
||||
|
|
|
@ -1053,7 +1053,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
<div class="input-append">
|
||||
<input type="text" class="form-control" readonly>
|
||||
<span class="btn btn-default btn-file">
|
||||
'.getMLText("browse").'… <input _id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").'">
|
||||
'.getMLText("browse").'… <input id="'.$id.'" type="file" name="'.$varname.'"'.($multiple ? " multiple" : "").($accept ? ' accept="'.$accept.'"' : "").'">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1407,7 +1407,7 @@ $(document).ready(function() {
|
|||
print "<div class=\"input-append\">\n";
|
||||
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 "<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";
|
||||
?>
|
||||
<div class="modal hide" id="dropfolderChooser" tabindex="-1" role="dialog" aria-labelledby="dropfolderChooserLabel" aria-hidden="true">
|
||||
|
|
|
@ -56,10 +56,10 @@ $('.folderselect').click(function(ev) {
|
|||
$dropfolderdir = $this->params['dropfolderdir'];
|
||||
$showfolders = $this->params['showfolders'];
|
||||
$cachedir = $this->params['cachedir'];
|
||||
$previewwidth = $this->params['previewWidthMenuList'];
|
||||
$timeout = $this->params['timeout'];
|
||||
$folderid = isset($_GET['folderid']) ? $_GET['folderid'] : 0;
|
||||
|
||||
$previewwidth = 40;
|
||||
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
|
||||
|
||||
$c = 0; // count files
|
||||
|
@ -78,10 +78,12 @@ $('.folderselect').click(function(ev) {
|
|||
if($showfolders == 0 && !is_dir($dir.'/'.$entry)) {
|
||||
$c++;
|
||||
$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)."\"" : "").">";
|
||||
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 .= "<li><a".($folderid ? " href=\"../out/out.AddDocument.php?folderid=".$folderid."&dropfolderfileform1=".urldecode($entry)."\" title=\"".getMLText('menu_upload_from_dropfolder')."\"" : "").">";
|
||||
if($previewwidth) {
|
||||
$previewer->createRawPreview($dir.'/'.$entry, 'dropfolder/', $mimetype);
|
||||
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";
|
||||
} elseif($showfolders && is_dir($dir.'/'.$entry)) {
|
||||
|
|
|
@ -82,7 +82,7 @@ document.form1.email.focus();
|
|||
<p><?php printMLText("password_forgotten_text"); ?></p>
|
||||
|
||||
<div class="control-group">
|
||||
<label class="control-label"><?php printMLText("login");?>:</label>
|
||||
<label class="control-label"><?php printMLText("user_login");?>:</label>
|
||||
<div class="controls">
|
||||
<input type="text" name="login" id="login">
|
||||
</div>
|
||||
|
|
|
@ -190,6 +190,14 @@ if(!is_writeable($settings->_configFilePath)) {
|
|||
<td><?php printMLText("settings_previewWidthList");?>:</td>
|
||||
<td><?php $this->showTextField("previewWidthList", $settings->_previewWidthList); ?></td>
|
||||
</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");?>">
|
||||
<td><?php printMLText("settings_previewWidthDetail");?>:</td>
|
||||
<td><?php $this->showTextField("previewWidthDetail", $settings->_previewWidthDetail); ?></td>
|
||||
|
|
Loading…
Reference in New Issue
Block a user