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

This commit is contained in:
Uwe Steinmann 2018-11-16 19:17:19 +01:00
commit 046d07bbf1
11 changed files with 61 additions and 17 deletions

View File

@ -110,6 +110,17 @@
- add document list which can be exported as an archive
- search results can be exported
--------------------------------------------------------------------------------
Changes in version 5.1.10
--------------------------------------------------------------------------------
- set configured command timeout when creating pdf preview
- show numbers of reviews in main menu again
- do not send multiple emails after triggering a workflow transition, if a user
is involved in more than one of the following transitions
- fix javascript errors in out/out.TriggerWorkflow.php
- minor corrections in worklflow manager
- show splash messages after triggering a workflow transition
--------------------------------------------------------------------------------
Changes in version 5.1.9
--------------------------------------------------------------------------------

View File

@ -1,4 +1,4 @@
VERSION=6.0.6
VERSION=$(shell php -r 'include("inc/inc.Version.php"); $$v=new SeedDMS_Version(); echo $$v->version();')
SRC=CHANGELOG inc conf utils index.php languages views op out controllers doc styles TODO LICENSE webdav install restapi pdfviewer
# webapp

View File

@ -15,8 +15,8 @@
<date>2018-11-13</date>
<time>07:31:17</time>
<version>
<release>6.0.6</release>
<api>6.0.6</api>
<release>6.0.7</release>
<api>6.0.7</api>
</version>
<stability>
<release>stable</release>
@ -24,10 +24,6 @@
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
SeedDMS_Core_Folder::addContent() uses currently logged in user as uploader instead of owner
SeedDMS_Core_DocumentContent::verifyStatus() will not set status to S_RELEASED
if currently in S_DRAFT status und no workflow, review, approval, or revision
is pending.
</notes>
<contents>
<dir baseinstalldir="SeedDMS" name="/">
@ -1622,8 +1618,8 @@ fix possible sql injection in SeedDMS_Core_User
</notes>
</release>
<release>
<date>2018-08-07</date>
<time>09:19:24</time>
<date>2018-11-13</date>
<time>07:31:17</time>
<version>
<release>5.1.9</release>
<api>5.1.9</api>
@ -1771,5 +1767,24 @@ add SeedDMS_Core_DocumentContent::getInstance()
add list 'NeedsCorrectionOwner' to SeedDMS_Core_DMS::getDocumentList()
</notes>
</release>
<release>
<date>2018-11-13</date>
<time>07:31:17</time>
<version>
<release>6.0.6</release>
<api>6.0.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
<notes>
SeedDMS_Core_Folder::addContent() uses currently logged in user as uploader instead of owner
SeedDMS_Core_DocumentContent::verifyStatus() will not set status to S_RELEASED
if currently in S_DRAFT status und no workflow, review, approval, or revision
is pending.
</notes>
</release>
</changelog>
</package>

View File

@ -122,8 +122,10 @@ function fileExistsInIncludePath($file) { /* {{{ */
/**
* Load default settings + set
*/
require_once('../inc/inc.Version.php');
$ver = new SeedDMS_Version();
define("SEEDDMS_INSTALL", "on");
define("SEEDDMS_VERSION", "6.0.6");
define("SEEDDMS_VERSION", $ver->version());
require_once('../inc/inc.ClassSettings.php');

View File

@ -69,7 +69,7 @@ if (!is_object($object)) {
exit;
}
$previewer = new SeedDMS_Preview_PdfPreviewer($settings->_cacheDir);
$previewer = new SeedDMS_Preview_PdfPreviewer($settings->_cacheDir, $settings->_cmdTimeout);
if(!$previewer->hasPreview($object))
$previewer->createPreview($object);
header('Content-Type: application/pdf');

View File

@ -116,9 +116,13 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) {
$params['http_root'] = $settings->_httpRoot;
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$usersinformed = array();
foreach($workflow->getNextTransitions($transition->getNextState()) as $ntransition) {
foreach($ntransition->getUsers() as $tuser) {
$notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params);
if(!in_array($tuser->getUser()->getID(), $usersinformed)) {
$usersinformed[] = $tuser->getUser()->getID();
$notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params);
}
}
foreach($ntransition->getGroups() as $tuser) {
$notifier->toGroup($user, $tuser->getGroup(), $subject, $message, $params);
@ -127,6 +131,8 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) {
}
}
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_trigger_workflow')));
if(isset($GLOBALS['SEEDDMS_HOOKS']['triggerWorkflowTransition'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['triggerWorkflowTransition'] as $hookObj) {
if (method_exists($hookObj, 'postTriggerWorkflowTransition')) {
@ -134,6 +140,8 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) {
}
}
}
} else {
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_trigger_workflow')));
}
add_log_line("?documentid=".$documentid."&version".$version_num);

View File

@ -55,6 +55,7 @@ class SeedDMS_Bootstrap_Style extends SeedDMS_View_Common {
* since version 25+
* X-Content-Security-Policy is deprecated, Firefox understands
* Content-Security-Policy since version 23+
* 'worker-src blob:' is needed for cytoscape
*/
$csp_rules = "script-src 'self' 'unsafe-eval'; worker-src blob:;"; // style-src 'self';";
foreach (array("X-WebKit-CSP", "X-Content-Security-Policy", "Content-Security-Policy") as $csp) {

View File

@ -57,9 +57,13 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
}
}
}
<<<<<<< HEAD
if($workflowmode == 'traditional')
if(!$tasksinmenu || in_array('review', $tasksinmenu)) {
$tasks['review'] = array();
=======
if($workflowmode == 'traditional') {
>>>>>>> seeddms-5.1.x
$resArr = $dms->getDocumentList('ReviewByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
@ -67,6 +71,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
<<<<<<< HEAD
}
}
}
@ -93,6 +98,8 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['revision'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
=======
>>>>>>> seeddms-5.1.x
}
}
}

View File

@ -1129,7 +1129,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
echo "<td>";
if($latestContent->triggerWorkflowTransitionIsAllowed($user, $transition)) {
$action = $transition->getAction();
print "<form action=\"../out/out.TriggerWorkflow.php\" method=\"get\">".createHiddenFieldWithKey('triggerworkflow')."<input type=\"hidden\" name=\"documentid\" value=\"".$documentid."\" /><input type=\"hidden\" name=\"version\" value=\"".$latestContent->getVersion()."\" /><input type=\"hidden\" name=\"transition\" value=\"".$transition->getID()."\" /><input type=\"submit\" class=\"btn\" value=\"".getMLText('action_'.strtolower($action->getName()), array(), $action->getName())."\" /></form>";
print "<form action=\"../out/out.TriggerWorkflow.php\" method=\"get\"><input type=\"hidden\" name=\"documentid\" value=\"".$documentid."\" /><input type=\"hidden\" name=\"version\" value=\"".$latestContent->getVersion()."\" /><input type=\"hidden\" name=\"transition\" value=\"".$transition->getID()."\" /><input type=\"submit\" class=\"btn\" value=\"".getMLText('action_'.strtolower($action->getName()), array(), $action->getName())."\" /></form>";
$allowedtransitions[] = $transition;
}
echo "</td>";

View File

@ -189,7 +189,7 @@ cy.on('tap', 'node', function(evt) {
var scratch = node.scratch('app');
if(typeof scratch !== 'undefined') {
noty({
text: (scratch.users ? '<p><?php printMLText('users'); ?>: ' + scratch.users + '</p>' : '') + (scratch.groups ? '<?php printMLText('groups'); ?>: ' + scratch.groups + '</p>' : ''),
text: (scratch.users ? '<p><?= '<i class="icon-user"></i> ' ?> ' + scratch.users + '</p>' : '') + (scratch.groups ? '<?= '<i class="icon-group"></i> ' ?> ' + scratch.groups + '</p>' : ''),
type: 'information',
dismissQueue: true,
layout: 'topCenter',
@ -256,7 +256,7 @@ $(document).ready(function() {
$transusers = $transition->getUsers();
$unames = array();
foreach($transusers as $transuser) {
$unames[] = $transuser->getUser()->getFullName();
$unames[] = $transuser->getUser()->getLogin().' - '.$transuser->getUser()->getFullName();
}
$transgroups = $transition->getGroups();
$gnames = array();

View File

@ -214,12 +214,12 @@ $(document).ready(function() {
echo "<td>";
foreach($transusers as $transuser) {
$u = $transuser->getUser();
echo getMLText('user').": ".$u->getFullName();
echo '<i class="icon-user"></i> '.htmlspecialchars($u->getLogin()." - ".$u->getFullName());
echo "<br />";
}
foreach($transgroups as $transgroup) {
$g = $transgroup->getGroup();
echo getMLText('at_least_n_users_of_group',
echo '<i class="icon-group"></i> '.getMLText('at_least_n_users_of_group',
array("number_of_users" => $transgroup->getNumOfUsers(),
"group" => $g->getName()));
echo "<br />";