import revisions

This commit is contained in:
Uwe Steinmann 2017-07-27 21:17:11 +02:00
parent 88d89c206d
commit dd94898b19

View File

@ -631,6 +631,7 @@ function insert_document($document) { /* {{{ */
$newVersion = $result[1]->getContent();
$newVersion->setDate(dateToTimestamp($initversion['attributes']['date']));
$newVersion->setRevisionDate($initversion['attributes']['revisiondate']);
if($workflowstate)
$newVersion->setWorkflowState($workflowstate);
$newlogs = array();
@ -659,6 +660,10 @@ function insert_document($document) { /* {{{ */
$newreceipts = getRevAppLog($initversion['receipts']);
$newVersion->rewriteReceiptLog($newreceipts);
}
if($initversion['revisions']) {
$newrevisions = getRevAppLog($initversion['revisions']);
$newVersion->rewriteRevisionLog($newrevisions);
}
if($initversion['workflowlogs']) {
$newworkflowlogs = getWorkflowLog($initversion['workflowlogs']);
@ -749,6 +754,7 @@ function insert_document($document) { /* {{{ */
if($workflowstate)
$newVersion->setWorkflowState($workflowstate);
$newVersion->setDate(dateToTimestamp($version['attributes']['date']));
$newVersion->setRevisionDate($version['attributes']['revisiondate']);
$newlogs = array();
foreach($version['statuslogs'] as $i=>$log) {
if(!array_key_exists($log['attributes']['user'], $objmap['users'])) {
@ -773,6 +779,10 @@ function insert_document($document) { /* {{{ */
$newreceipts = getRevAppLog($version['receipts']);
$newVersion->rewriteReceiptLog($newreceipts);
}
if($version['revisions']) {
$newrevisions = getRevAppLog($version['revisions']);
$newVersion->rewriteRevisionLog($newrevisions);
}
if($version['workflowlogs']) {
$newworkflowlogs = getWorkflowLog($version['workflowlogs']);
@ -1072,7 +1082,7 @@ function set_mandatory() { /* {{{ */
} /* }}} */
function startElement($parser, $name, $attrs) { /* {{{ */
global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
$parent = end($elementstack);
array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs));
@ -1195,6 +1205,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */
$cur_version['approvals'] = array();
$cur_version['reviews'] = array();
$cur_version['receipts'] = array();
$cur_version['revisions'] = array();
$cur_version['statuslogs'] = array();
$cur_version['workflowlogs'] = array();
break;
@ -1236,6 +1247,15 @@ function startElement($parser, $name, $attrs) { /* {{{ */
$cur_receiptlog = array();
$cur_receiptlog['attributes'] = array();
break;
case "REVISION":
$cur_revision = array();
$cur_revision['attributes'] = array();
$cur_revision['logs'] = array();
break;
case "REVISIONLOG":
$cur_revisionlog = array();
$cur_revisionlog['attributes'] = array();
break;
case 'ATTRIBUTEDEFINITION':
$cur_attrdef = array();
$cur_attrdef['id'] = (int) $attrs['ID'];
@ -1271,6 +1291,10 @@ function startElement($parser, $name, $attrs) { /* {{{ */
$cur_receipt['attributes'][$attrs['NAME']] = '';
} elseif($parent['name'] == 'RECEIPTLOG') {
$cur_receiptlog['attributes'][$attrs['NAME']] = '';
} elseif($parent['name'] == 'REVISION') {
$cur_revision['attributes'][$attrs['NAME']] = '';
} elseif($parent['name'] == 'REVISIONLOG') {
$cur_revisionlog['attributes'][$attrs['NAME']] = '';
} elseif($parent['name'] == 'FOLDER') {
if(isset($attrs['TYPE']) && $attrs['TYPE'] == 'user') {
$cur_folder['user_attributes'][$attrs['ATTRDEF']] = '';
@ -1463,7 +1487,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */
} /* }}} */
function endElement($parser, $name) { /* {{{ */
global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
array_pop($elementstack);
$parent = end($elementstack);
@ -1503,6 +1527,12 @@ function endElement($parser, $name) { /* {{{ */
case "RECEIPTLOG":
$cur_receipt['logs'][] = $cur_receiptlog;
break;
case "REVISION":
$cur_version['revisions'][] = $cur_revision;
break;
case "REVISIONLOG":
$cur_revision['logs'][] = $cur_revisionlog;
break;
case "USER":
/* users can be the users data or the member of a group */
$first = $elementstack[1];
@ -1609,7 +1639,7 @@ function endElement($parser, $name) { /* {{{ */
} /* }}} */
function characterData($parser, $data) { /* {{{ */
global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
$current = end($elementstack);
$parent = prev($elementstack);
@ -1688,6 +1718,15 @@ function characterData($parser, $data) { /* {{{ */
else
$cur_receiptlog['attributes'][$current['attributes']['NAME']] = $data;
break;
case 'REVISION':
$cur_revision['attributes'][$current['attributes']['NAME']] = $data;
break;
case 'REVISIONLOG':
if(isset($cur_revisionlog['attributes'][$current['attributes']['NAME']]))
$cur_revisionlog['attributes'][$current['attributes']['NAME']] .= $data;
else
$cur_revisionlog['attributes'][$current['attributes']['NAME']] = $data;
break;
case 'WORKFLOWLOG':
if(isset($cur_workflowlog['attributes'][$current['attributes']['NAME']]))
$cur_workflowlog['attributes'][$current['attributes']['NAME']] .= $data;