mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-11 20:21:16 +00:00
Merge branch 'seeddms-4.3.x' into seeddms-5.0.x
Conflicts: CHANGELOG Makefile SeedDMS_Core/Core/inc.ClassDMS.php SeedDMS_Core/package.xml inc/inc.Utils.php inc/inc.Version.php install/install.php op/op.ApproveDocument.php op/op.Login.php op/op.RemoveDocumentLink.php op/op.ReviewDocument.php out/out.SetReviewersApprovers.php views/bootstrap/class.Bootstrap.php
This commit is contained in:
commit
463e94ee8a
18
CHANGELOG
18
CHANGELOG
|
@ -1,3 +1,18 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.19
|
||||
--------------------------------------------------------------------------------
|
||||
- end date in search form actually ends at the end of the day
|
||||
- allow context sensitive help
|
||||
- document chooser shows docs in root folder again
|
||||
- fixed regression from 4.3.18. Documents can not be approved if
|
||||
review is still pending
|
||||
- polish page for document version details, add review/approval log
|
||||
- take out remaining link to old version info file
|
||||
- new configuration parameter for overriding the mimetype delivered
|
||||
by the browser (Closes #195)
|
||||
- new option -c to force recreation of index (Closes #219)
|
||||
- username can be passed to utils/adddoc.php (Closes #214)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.18
|
||||
--------------------------------------------------------------------------------
|
||||
|
@ -5,7 +20,9 @@
|
|||
- search result can be restricted to folders or documents only
|
||||
- documents still in review can still be reviewed even if the workflow
|
||||
mode changes to traditional_only_approval
|
||||
- approvals can be submitted, even if document was released/rejected
|
||||
- check for duplicate content on document/folder check page
|
||||
- open tab on ViewDocument page as specified in URL
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.17
|
||||
|
@ -19,6 +36,7 @@
|
|||
- fix take over of reviewers/approvers from previos version
|
||||
- fix calculation of quota in user list
|
||||
- do not show hidden users in select box of search form
|
||||
- notifier can be set when new document is uploaded
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.3.16
|
||||
|
|
|
@ -2479,6 +2479,8 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
if (is_bool($res) && !$res)
|
||||
return false;
|
||||
|
||||
unset($this->_status);
|
||||
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
|
@ -2680,7 +2682,7 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
$reviewID = $db->getInsertID();
|
||||
}
|
||||
else {
|
||||
$reviewID = isset($indstatus["reviewID"]) ? $ $indstatus["reviewID"] : NULL;
|
||||
$reviewID = isset($indstatus["reviewID"]) ? $indstatus["reviewID"] : NULL;
|
||||
}
|
||||
|
||||
$queryStr = "INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) ".
|
||||
|
|
|
@ -832,5 +832,22 @@ no changes
|
|||
clean workflow log when a document version was deleted
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2015-06-09</date>
|
||||
<time>11:26:18</time>
|
||||
<version>
|
||||
<release>4.3.18</release>
|
||||
<api>4.3.18</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- add optional paramter $msg to SeedDMS_Core_DocumentContent::verifyStatus()
|
||||
- add method SeedDMS_Core_DMS::getDuplicateDocumentContent()
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
|
|
@ -519,7 +519,9 @@ class Settings { /* {{{ */
|
|||
$this->_maxExecutionTime = ini_get("max_execution_time");
|
||||
|
||||
// XML Path: /configuration/system/advanced/converters
|
||||
$converters = $xml->xpath('/configuration/advanced/converters/converter');
|
||||
$converters = $xml->xpath('/configuration/advanced/converters[@target="fulltext"]/converter');
|
||||
if(!$converters)
|
||||
$converters = $xml->xpath('/configuration/advanced/converters/converter');
|
||||
$this->_converters = array();
|
||||
foreach($converters as $converter) {
|
||||
$tab = $converter->attributes();
|
||||
|
|
|
@ -463,7 +463,7 @@ foreach ($pGrpApp as $p) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
|
||||
break;
|
||||
case -3:
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_assigned"));
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approver_already_assigned"));
|
||||
break;
|
||||
case -4:
|
||||
// email error
|
||||
|
@ -520,7 +520,7 @@ if (count($approvalIndex["g"]) > 0) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
|
||||
break;
|
||||
case -3:
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("reviewer_already_removed"));
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("approver_already_removed"));
|
||||
break;
|
||||
case -4:
|
||||
// email error
|
||||
|
|
|
@ -57,7 +57,7 @@ if(!$settings->_enableVersionModification) {
|
|||
}
|
||||
|
||||
$overallStatus = $content->getStatus();
|
||||
if ($overallStatus["status"]==S_REJECTED || $overallStatus["status"]==S_OBSOLETE ) {
|
||||
if ($overallStatus["status"]!=S_DRAFT_REV && $overallStatus["status"]!=S_DRAFT_APP) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_assign_invalid_state"));
|
||||
}
|
||||
|
||||
|
|
|
@ -882,7 +882,7 @@ $(document).ready(function () {
|
|||
print "<input type=\"hidden\" id=\"docid".$formName."\" name=\"docid\" value=\"\">";
|
||||
print "<div class=\"input-append\">\n";
|
||||
print "<input type=\"text\" id=\"choosedocsearch\" data-target=\"docid".$formName."\" data-provide=\"typeahead\" name=\"docname".$formName."\" placeholder=\"".getMLText('type_to_search')."\" autocomplete=\"off\" />";
|
||||
print "<a data-target=\"#docChooser".$formName."\" href=\"out.DocumentChooser.php?form=".$formName."&folderid=".$this->params['rootfolderid']."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".getMLText("document")."…</a>\n";
|
||||
print "<a data-target=\"#docChooser".$formName."\" href=\"../out/out.DocumentChooser.php?form=".$formName."&folderid=".$this->params['rootfolderid']."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".getMLText("document")."…</a>\n";
|
||||
print "</div>\n";
|
||||
?>
|
||||
<div class="modal hide" id="docChooser<?php echo $formName ?>" tabindex="-1" role="dialog" aria-labelledby="docChooserLabel" aria-hidden="true">
|
||||
|
|
|
@ -51,7 +51,7 @@ class SeedDMS_View_SetReviewersApprovers extends SeedDMS_Bootstrap_Style {
|
|||
$this->contentHeading(getMLText("change_assignments"));
|
||||
|
||||
// Retrieve a list of all users and groups that have review / approve privileges.
|
||||
$docAccess = $folder->getReadAccessList($enableadminrevapp, $enableownerrevapp);
|
||||
$docAccess = $document->getReadAccessList($enableadminrevapp, $enableownerrevapp);
|
||||
|
||||
// Retrieve list of currently assigned reviewers and approvers, along with
|
||||
// their latest status.
|
||||
|
|
|
@ -245,14 +245,18 @@ function checkForm()
|
|||
<?php
|
||||
$tmp = array();
|
||||
foreach($reviewStatus as $r) {
|
||||
$mandatory=false;
|
||||
if($r['type'] == 0 && $res) {
|
||||
foreach ($res as $rr)
|
||||
if ($rr['reviewerUserID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
if($r['type'] == 0) {
|
||||
if($res) {
|
||||
$mandatory=false;
|
||||
foreach ($res as $rr)
|
||||
if ($rr['reviewerUserID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if($tmp) {
|
||||
|
@ -294,24 +298,9 @@ function checkForm()
|
|||
<td>
|
||||
<div class="cbSelectTitle"><?php printMLText("groups");?>:</div>
|
||||
</td>
|
||||
<td>
|
||||
<td>
|
||||
<select id="GrpReviewer" class="chzn-select span9" name="grpReviewers[]" multiple="multiple" data-placeholder="<?php printMLText('select_grp_reviewers'); ?>" data-no_results_text="<?php printMLText('unknown_group'); ?>">
|
||||
<?php
|
||||
$tmp = array();
|
||||
foreach($reviewStatus as $r) {
|
||||
$mandatory=false;
|
||||
if($r['type'] == 1 && $res) {
|
||||
foreach ($res as $rr)
|
||||
if ($rr['reviewerGroupID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
if($tmp) {
|
||||
$this->__takeOverButton("GrpReviewer", $tmp);
|
||||
}
|
||||
foreach ($docAccess["groups"] as $grp) {
|
||||
|
||||
$mandatory=false;
|
||||
|
@ -323,6 +312,25 @@ function checkForm()
|
|||
?>
|
||||
</select>
|
||||
<?php
|
||||
$tmp = array();
|
||||
foreach($reviewStatus as $r) {
|
||||
if($r['type'] == 1) {
|
||||
if($res) {
|
||||
$mandatory=false;
|
||||
foreach ($res as $rr)
|
||||
if ($rr['reviewerGroupID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if($tmp) {
|
||||
$this->__takeOverButton("GrpReviewer", $tmp);
|
||||
}
|
||||
/* List all mandatory groups of reviewers */
|
||||
if($res) {
|
||||
$tmp = array();
|
||||
|
@ -384,14 +392,18 @@ function checkForm()
|
|||
<?php
|
||||
$tmp = array();
|
||||
foreach($approvalStatus as $r) {
|
||||
$mandatory=false;
|
||||
if($r['type'] == 0 && $res) {
|
||||
foreach ($res as $rr)
|
||||
if ($rr['approverUserID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
if($r['type'] == 0) {
|
||||
if($res) {
|
||||
$mandatory=false;
|
||||
foreach ($res as $rr)
|
||||
if ($rr['approverUserID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if($tmp) {
|
||||
|
@ -450,14 +462,18 @@ function checkForm()
|
|||
<?php
|
||||
$tmp = array();
|
||||
foreach($approvalStatus as $r) {
|
||||
$mandatory=false;
|
||||
if($r['type'] == 1 && $res) {
|
||||
foreach ($res as $rr)
|
||||
if ($rr['approverGroupID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
if($r['type'] == 1) {
|
||||
if($res) {
|
||||
$mandatory=false;
|
||||
foreach ($res as $rr)
|
||||
if ($rr['approverGroupID']==$r['required']) {
|
||||
$mandatory=true;
|
||||
}
|
||||
if(!$mandatory)
|
||||
$tmp[] = $r['required'];
|
||||
} else {
|
||||
$tmp[] = $r['required'];
|
||||
}
|
||||
}
|
||||
}
|
||||
if($tmp) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user