From b75b07ac49e0bd6ffbc2ff80607652b7e33ba4b4 Mon Sep 17 00:00:00 2001 From: Alexandre Morin <alexandre.morin@maarch.org> Date: Mon, 6 Mar 2017 12:36:21 +0100 Subject: [PATCH] Enjoy commit --- modules/export_seda/Ajax_seda_zip.php | 72 +++++++ modules/export_seda/ArchiveTransfer.php | 196 +++++++++++++----- modules/export_seda/Zip.php | 103 +++++++++ modules/export_seda/export_seda.php | 124 ++++++++++- modules/export_seda/js/functions.js | 19 ++ modules/export_seda/lang/fr.php | 31 +++ modules/export_seda/resources/ArchiveUnit.xml | 14 +- .../resources/ArchiveUnitChildren.xml | 137 ++++++++++++ 8 files changed, 633 insertions(+), 63 deletions(-) create mode 100644 modules/export_seda/Ajax_seda_zip.php create mode 100644 modules/export_seda/Zip.php create mode 100644 modules/export_seda/js/functions.js create mode 100644 modules/export_seda/resources/ArchiveUnitChildren.xml diff --git a/modules/export_seda/Ajax_seda_zip.php b/modules/export_seda/Ajax_seda_zip.php new file mode 100644 index 00000000000..040f6c0239c --- /dev/null +++ b/modules/export_seda/Ajax_seda_zip.php @@ -0,0 +1,72 @@ +<?php +/* +* Copyright 2008-2017 Maarch +* +* This file is part of Maarch Framework. +* +* Maarch Framework is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Maarch Framework is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>. +*/ + + require_once __DIR__.'/Zip.php'; + + $status = 0; + $error = $content = ''; + if ($_REQUEST['reference']) { + $extract = new Extract(); + $zipfile = $extract->exportZip($_REQUEST['reference']); + $status = $extract->download($zipfile); + } else { + $status = 1; + } + + + echo "{status : " . $status . ", content : '" . addslashes($content) . "', error : '" . addslashes($error) . "'}"; + exit (); + +class Extract +{ + protected $zip; + + public function __construct() + { + $this->zip = new Zip(); + } + + public function exportZip($reference) + { + $messageDirectory = __DIR__.DIRECTORY_SEPARATOR.'seda2'.DIRECTORY_SEPARATOR.$reference; + $zipfile = __DIR__.DIRECTORY_SEPARATOR.'seda2'.DIRECTORY_SEPARATOR.$reference. ".zip"; + + if (!is_file($zipfile)) { + if (is_dir($messageDirectory)) { + $this->zip->add($zipfile, $messageDirectory.DIRECTORY_SEPARATOR."*"); + } + } + + $zipContents = file_get_contents($zipfile); + + return $zipfile; + } + + public function download($full_path) { + $file_name = basename($full_path); + + header('Content-Tranfer-Encoding: fichier'); + header('Content-Length: '.filesize($full_path)); + header('Content-Type: application/force-download'); + header('Content-Disposition: attachment; filename="'.$file_name.'"'); + + readfile($full_path); + } +} \ No newline at end of file diff --git a/modules/export_seda/ArchiveTransfer.php b/modules/export_seda/ArchiveTransfer.php index f8b52d8c8be..4416c2b01ff 100644 --- a/modules/export_seda/ArchiveTransfer.php +++ b/modules/export_seda/ArchiveTransfer.php @@ -44,12 +44,26 @@ class ArchiveTransfer { $result .= $resId.'#'; $letterbox = $this->getCourrier($resId); + $attachments = $this->getAttachments($letterbox->res_id); + $archiveUnitId = uniqid(); if ($letterbox->filename) { - $messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox); + $messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox, "File", $attachments,$archiveUnitId, $letterbox->res_id, null); $messageObject->dataObjectPackage->binaryDataObject[] = $this->getBinaryDataObject($letterbox); } else { - $messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox); + $messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox, "File"); + } + + if ($attachments) { + foreach ($attachments as $attachment) { + if ($attachment->attachment_type == "simple_attachment" || $attachment->attachment_type == "signed_response") { + if ($attachment->attachment_type == "signed_response" && $attachment->res_id_master == $letterbox->res_id) { + $messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($attachment, "Response", null, null,"attachment_".$attachment->res_id, $archiveUnitId); + } + + $messageObject->dataObjectPackage->binaryDataObject[] = $this->getBinaryDataObject($attachment,true); + } + } } } @@ -137,73 +151,122 @@ class ArchiveTransfer { - private function getArchiveUnit($letterbox) + private function getArchiveUnit($object, $type, $attachments =null, $archiveUnitId = null, $dataObjectReferenceId = null, $relatedObjectReference =null) { $messageArchiveUnit = new stdClass(); - $messageArchiveUnit->content = $this->getContent($letterbox); + if ($archiveUnitId) { + $messageArchiveUnit->id = $archiveUnitId; + } else { + $messageArchiveUnit->id = uniqid(); + } - $messageArchiveUnit->management = $this->getManagement($letterbox); + if ($relatedObjectReference) { + $messageArchiveUnit->content = $this->getContent($object, $type, $relatedObjectReference); + } else { + $messageArchiveUnit->content = $this->getContent($object, $type); + } + + if ($object->type_id != 0) { + $messageArchiveUnit->management = $this->getManagement($object); + } if ($dataObjectReferenceId) { $messageArchiveUnit->dataObjectReference = new stdClass(); - $messageArchiveUnit->dataObjectReference->dataObjectReferenceId = $letterbox->res_id; + $messageArchiveUnit->dataObjectReference->dataObjectReferenceId = $dataObjectReferenceId; + } + + + if ($attachments) { + $messageArchiveUnit->archiveUnit = []; + foreach ($attachments as $attachment) { + if ($attachment->res_id_master == $object->res_id) { + if ($attachment->attachment_type == "simple_attachment") { + $messageArchiveUnit->archiveUnit[] = $this->getArchiveUnit($attachment, "Item", null, null, "attachment_".$attachment->res_id); + } + } + } } + if (count($messageArchiveUnit->archiveUnit) == 0) { + unset($messageArchiveUnit->archiveUnit); + } + return $messageArchiveUnit; } - private function getContent($letterbox) + private function getContent($object, $type, $relatedObjectReference = null) { $content = new stdClass(); - $content->receivedDate = $letterbox->admission_date; - $content->sentDate = $letterbox->doc_date; - $content->receivedDate = $letterbox->admission_date; - $content->receivedDate = $letterbox->admission_date; - $content->addressee = []; - $content->keyword = []; - - if ($letterbox->exp_contact_id) { + if ($type == "File") { + $content->descriptionLevel = $type; + $content->receivedDate = $object->admission_date; + $content->sentDate = $object->doc_date; + $content->receivedDate = $object->admission_date; + $content->receivedDate = $object->admission_date; + + $content->addressee = []; + $content->keyword = []; + + if ($object->exp_contact_id) { + + $contact = $this->getContact($object->exp_contact_id); + $entitie = $this->getEntitie($object->destination); + + $content->keyword[] = $this->getKeyword($contact); + $content->addressee[] = $this->getAddresse($entitie,"entitie"); + } else if ($object->dest_contact_id) { + $contact = $this->getContact($object->dest_contact_id); + $entitie = $this->getEntitie($object->destination); + + $content->addressee[] = $this->getAddresse($contact); + $content->keyword[] = $this->getKeyword($entitie,"entitie"); + } else if ($object->exp_user_id) { + $user = $this->getUserInformation($object->exp_user_id); + $entitie = $this->getEntitie($object->initiator); + //$entitie = $this->getEntitie($letterbox->destination); + + $content->keyword[] = $this->getKeyword($user); + $content->addressee[] = $this->getAddresse($entitie,"entitie"); + } - $contact = $this->getContact($letterbox->exp_contact_id); - $entitie = $this->getEntitie($letterbox->destination); - - $content->keyword[] = $this->getKeyword($contact); - $content->addressee[] = $this->getAddresse($entitie,"entitie"); - } else if ($letterbox->dest_contact_id) { - $contact = $this->getContact($letterbox->dest_contact_id); - $entitie = $this->getEntitie($letterbox->destination); - - $content->addressee[] = $this->getAddresse($contact); - $content->keyword[] = $this->getKeyword($entitie,"entitie"); - } else if ($letterbox->exp_user_id) { - $user = $this->getUserInformation($letterbox->exp_user_id); - $entitie = $this->getEntitie($letterbox->initiator); - //$entitie = $this->getEntitie($letterbox->destination); - - $content->keyword[] = $this->getKeyword($user); - $content->addressee[] = $this->getAddresse($entitie,"entitie"); + $content->source = $_SESSION['mail_nature'][$object->nature_id]; + + $content->documentType = $object->type_label; + $content->originatingAgencyArchiveIdentifier = $object->alt_identifier; + $content->originatingSystemId = $object->res_id; + $content->title = []; + $content->title[] = $object->subject; + $content->endDate = $object->process_limit_date; + + } else { + $content->descriptionLevel = "Item"; + $content->title = []; + $content->title[] = $object->title; + $content->originatingSystemId = $object->res_id; + $content->documentType = "Attachment"; + + if ($type == "Response") { + $reference = new stdClass(); + $reference->repositoryArchiveUnitPID = $relatedObjectReference; + + $content->relatedObjectReference = new stdClass(); + $content->relatedObjectReference->references = []; + + $repositoryArchiveUnitPID = new stdClass(); + $repositoryArchiveUnitPID = $reference; + $content->relatedObjectReference->references[] = $repositoryArchiveUnitPID; + } } - - $content->source = $_SESSION['mail_nature'][$letterbox->nature_id]; - - $content->documentType = $letterbox->type_label; - $content->originatingAgencyArchiveIdentifier = $letterbox->alt_identifier; - $content->originatingSystemId = $letterbox->res_id; - $content->title = []; - $content->title[] = $letterbox->subject; - $content->description = []; - $content->description[] = " "; - $content->endDate = $letterbox->process_limit_date; - - $notes = $this->getNotes($letterbox->res_id); + + /*$notes = $this->getNotes($letterbox->res_id); $content->custodialHistory = new stdClass(); $content->custodialHistory->custodialHistoryItem = []; foreach ($notes as $note) { $content->custodialHistory->custodialHistoryItem[] = $this->getCustodialHistoryItem($note); - } + }*/ return $content; } @@ -221,21 +284,27 @@ class ArchiveTransfer { return $management; } - private function getBinaryDataObject($letterbox) + private function getBinaryDataObject($object, $isAttachment = false) { - $docServers = $this->getDocServer($letterbox->docserver_id); + $docServers = $this->getDocServer($object->docserver_id); $binaryDataObject = new stdClass(); - $binaryDataObject->id = $letterbox->res_id; + + if ($isAttachment) { + $binaryDataObject->id = "attachment_".$object->res_id; + } else { + $binaryDataObject->id = $object->res_id; + } + $binaryDataObject->messageDigest = new stdClass(); - $binaryDataObject->messageDigest->value = $letterbox->fingerprint; + $binaryDataObject->messageDigest->value = $object->fingerprint; $binaryDataObject->size = new stdClass(); - $binaryDataObject->size->value = $letterbox->filesize; + $binaryDataObject->size->value = $object->filesize; - $uri = str_replace("##", DIRECTORY_SEPARATOR, $letterbox->path); + $uri = str_replace("##", DIRECTORY_SEPARATOR, $object->path); $uri = str_replace("#", DIRECTORY_SEPARATOR, $uri); - $uri .= $letterbox->filename; + $uri .= $object->filename; $binaryDataObject->uri = $docServers->path_template.$uri; return $binaryDataObject; @@ -396,6 +465,23 @@ class ArchiveTransfer { return $docServers; } + private function getAttachments($resIdMaster) + { + $queryParams = []; + + $queryParams[] = $resIdMaster; + + $query = "SELECT * FROM res_attachments WHERE res_id_master = ?"; + + $smtp = $this->db->query($query,$queryParams); + + while ($res = $smtp->fetchObject()) { + $attachments[] = $res; + } + + return $attachments; + } + private function insertMessage($messageObject) { $queryParams = []; @@ -436,7 +522,7 @@ class ArchiveTransfer { $queryParams[] = $messageObject->archivalAgreement->value; // Archival agreement reference $queryParams[] = ""; //ReplyCode $queryParams[] = 0; // size - $queryParams[] = ""; // Data + $queryParams[] = json_encode($messageObject);//$messageObject; // Data $queryParams[] = 1; // active $queryParams[] = 0; // archived diff --git a/modules/export_seda/Zip.php b/modules/export_seda/Zip.php new file mode 100644 index 00000000000..e7a86a4273c --- /dev/null +++ b/modules/export_seda/Zip.php @@ -0,0 +1,103 @@ +<?php +/* +* Copyright 2008-2017 Maarch +* +* This file is part of Maarch Framework. +* +* Maarch Framework is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Maarch Framework is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>. +*/ + +class Zip +{ + + protected $executable; + + public function __construct($zipExecutable=false) + { + if (!$zipExecutable) { + switch (DIRECTORY_SEPARATOR) { + // Windows installation + case '\\': + $this->executable = 'C:\Program Files (x86)\7-Zip\7z.exe'; + break; + + case "/": + default: + $this->executable = "7z"; + } + } else { + $this->executable = $zipExecutable; + } + } + + + public function add($archive, $filename, array $options=null) + { + $tokens = array('"' . $this->executable . '"'); + $tokens[] = "a"; + $tokens[] = '"' . $archive . '"'; + $tokens[] = '"' . $filename . '"'; + //$tokens[] = '-scsUTF-8'; + if ($options) { + foreach ($options as $option) { + $tokens[] = $option; + } + } + + $command = implode(' ', $tokens); + + $output = array(); + $return = null; + $this->errors = array(); + + exec($command, $output, $return); + + // var_dump($command); + // var_dump($output); + // var_dump($return); + + if ($return === 0) { + return true; + } else { + $message = $this->handleError($return); + + throw new \dependency\fileSystem\Exception($message, $return, null, $output); + } + } + + protected function handleError($return) + { + switch ($return) { + case 1 : + return "Warning: Some files could not be processed. See output for more informations."; + + case 2 : + return "Error: Unable to process the command. See output for more informations."; + + case 7 : + return "Command line error."; + + case 8 : + return "Not enough memory for operation."; + + case 255 : + return "User stopped the process."; + + default: + return "Unknown error."; + + } + } + +} \ No newline at end of file diff --git a/modules/export_seda/export_seda.php b/modules/export_seda/export_seda.php index 00d08cceac9..7aa23949ed3 100644 --- a/modules/export_seda/export_seda.php +++ b/modules/export_seda/export_seda.php @@ -18,19 +18,89 @@ * $confirm bool true */ $confirm = true; - +$frm_width='100%'; +$frm_height = 'auto'; /** * $etapes array Contains only one etap, the status modification */ -$etapes = array('export'); +$etapes = array('form'); +require_once __DIR__.'/ArchiveTransfer.php'; +//require_once __DIR__.'/StreamClient.php'; + +function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $coll_id, $mode) { + $archiveTransfer = new ArchiveTransfer(); + + $result = $archiveTransfer->receive($values); + + $db = new Database(); + $stmt = $db->query("select message_id from unit_identifier where res_id = ?",array($values[0])); + $unitIdentifier = $stmt->fetchObject(); + $stmt = $db->query("select data from seda where message_id = ?",array($unitIdentifier->message_id)); + + $messageData = $stmt->fetchObject(); + + $messageObject = json_decode($messageData->data); + + /*$test = new StreamClient(); + var_dump($test->send($messageObject->messageIdentifier->value)); + exit();*/ + $frm_str = '<div id="frm_error_'.$id_action.'" class="error"></div>'; + $frm_str .= '<h2 class="title">'._MESSAGE.' '. $messageObject->messageIdentifier->value; + $frm_str .= '</h2><br/>'; + $frm_str .= '<div class="block forms details" >'; + + // Information Message + $frm_str .= '<h3 class="title">'._INFORMATION_MESSAGE.'</h3>'; + $frm_str .= '<table width="100%" cellspacing="2" cellpading="2" border="0"><tbody><tr class="col"><br/>'; + $frm_str .='<td><b>'._MESSAGE_IDENTIFIER.':</b></td>'; + $frm_str .= '<td><input type="text" id="messageIdentifier" name="messageIdentifier" value="'.$messageObject->messageIdentifier->value. '" disabled></td>'; + $frm_str .='<td><b>'._DATE.':</b></td>'; + $frm_str .= '<td><input type="text" id="date" name="date" value="'.$messageObject->date. '" disabled></td></tr><tr class="col">'; + $frm_str .='<td><b>'._ARCHIVAL_AGREEMENT.':</b></td>'; + $frm_str .= '<td><input type="text" id="archivalAgreement" name="archivalAgreement" value="'.$messageObject->archivalAgreement->value. '" disabled></td>'; + $frm_str .='<td><b>'._ARCHIVAL_AGENCY_SIREN.':</b></td>'; + $frm_str .= '<td><input type="text" id="archivalAgency" name="archivalAgency" value="'.$messageObject->archivalAgency->identifier->value. '" disabled></td></tr><tr class="col">'; + $frm_str .='<td><b>'.TRANSFERRING_AGENCY_SIREN.':</b></td>'; + $frm_str .= '<td><input type="text" id="transferringAgency" name="transferringAgency" value="'.$messageObject->transferringAgency->identifier->value. '" disabled></td>'; + $frm_str .= '</tr></tbody></table><hr />'; + + //Information n Archive + + foreach ($messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit as $archiveUnit) { + $frm_str .= viewArchiveUnit($archiveUnit); + } + + + /* +*/ + + $path_to_script = $_SESSION['config']['businessappurl']."index.php?display=true&module=export_seda"; + + $frm_str .= '</div>'; + $frm_str .='<div align="center">'; + $frm_str .='<input type="button" name="zip" id="zip" class="button" value="'._ZIP.'" onclick="actionSeda(\''.$path_to_script.'&page=Ajax_seda_zip&reference='.$messageObject->messageIdentifier->value.'\');"/>   '; + $frm_str .='<input type="button" name="sendMessage" id="sendMessage" class="button" value="'._SEND_MESSAGE.'" onclick="actionSeda(\''.$path_to_script.'&page=Ajax_seda_send&reference='.$messageObject->messageIdentifier->value.'\');"/>'; + $frm_str .='</div>'; + $frm_str .='<div align="center" id="validSeda"></div>'; + $frm_str .='<hr />'; + + $frm_str .='<div align="center">'; + $frm_str .='<input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>'; + $frm_str .='</div>'; + //$frm_str .='<script type="text/javascript">'. require_once __DIR__.'/js/function.js'.'</script>'; + /*$extract = new Extract(); + $extract->exportZip($messageObject->messageIdentifier->value));*/ -function manage_export($arr_id, $history, $id_action, $label_action, $status) + return addslashes($frm_str); +} + +function manage_form($arr_id, $history, $id_action, $label_action, $status) { - require_once('modules/export_seda/ArchiveTransfer.php'); + - $archiveTransfer = new ArchiveTransfer(); + // récupérer l'entité racine du courrier * @@ -40,7 +110,7 @@ function manage_export($arr_id, $history, $id_action, $label_action, $status) // appel fonction de transfert et génération bdx * - $result = $archiveTransfer->receive($arr_id); + // historisation du transfert @@ -51,3 +121,45 @@ function manage_export($arr_id, $history, $id_action, $label_action, $status) return array('result' => $result, 'history_msg' => ''); } +function viewArchiveUnit($archiveUnit, $archiveUnitChildren = false) +{ + if (!$archiveUnitChildren) { + $frm_str .= '<h3 class="title">'._INFORMATION_ARCHIVE. ' "'. $archiveUnit->content->title[0].'"</h3>'; + } else { + $frm_str .= '<h4 class="title">'._INFORMATION_ARCHIVE_CHILDREN. ' "'. $archiveUnit->content->title[0].'"</h4>'; + } + + $frm_str .= '<table width="100%" cellspacing="2" cellpading="2" border="0"><tbody><tr class="col"><br/>'; + $frm_str .='<td><b>'._ARCHIVE_IDENTIFIER.':</b></td>'; + $frm_str .= '<td><input type="text" id="archiveIdentifier" name="archiveIdentifier" value="'.$archiveUnit->id. '" disabled></td></tr>'; + + if ($archiveUnit->management) { + $frm_str .='<tr class="col"><td><b>'._RETENTION_RULE.':</b></td>'; + $frm_str .= '<td><input type="text" id="rule" name="rule" value="'.$archiveUnit->management->appraisalRule->rule->value. '" disabled></td>'; + $frm_str .='<td><b>'._RETENTION_FINAL_DISPOSITION.':</b></td>'; + $frm_str .= '<td><input type="text" id="finalAction" name="finalAction" value="'.$archiveUnit->management->appraisalRule->finalAction. '" disabled></td>'; + $frm_str .= '</tr>'; + } + + $frm_str .= '<tr class="col"><td><b>'._DESCRIPTION_LEVEL.':</b></td>'; + $frm_str .= '<td><input type="text" id="descriptionLevel" name="descriptionLevel" value="'.$archiveUnit->content->descriptionLevel. '" disabled></td>'; + $frm_str .= '<td><b>'._DOCUMENT_TYPE.':</b></td>'; + $frm_str .= '<td><input type="text" id="documentType" name="documentType" value="'.$archiveUnit->content->documentType. '" disabled></td></tr>'; + $frm_str .= '<tr class="col"><td><b>'._RECEIVED_DATE.':</b></td>'; + $frm_str .= '<td><input type="text" id="receivedDate" name="receivedDate" value="'.$archiveUnit->content->receivedDate. '" disabled></td>'; + $frm_str .= '<td><b>'._SENT_DATE.':</b></td>'; + $frm_str .= '<td><input type="text" id="sentDate" name="sentDate" value="'.$archiveUnit->content->sentDate. '" disabled></td></tr>'; + $frm_str .= '<tr class="col"><td><b>'._END_DATE.':</b></td>'; + $frm_str .= '<td><input type="text" id="endDate" name="endDate" value="'.$archiveUnit->content->endDate. '" disabled></td></tr>'; + $frm_str .= '</tr></tbody></table>'; + + if ($archiveUnit->archiveUnit) { + foreach ($archiveUnit->archiveUnit as $archiveUnitChildren) { + $frm_str .= viewArchiveUnit($archiveUnitChildren,true); + } + } + + + + return $frm_str; +} \ No newline at end of file diff --git a/modules/export_seda/js/functions.js b/modules/export_seda/js/functions.js new file mode 100644 index 00000000000..ad6e8997f4e --- /dev/null +++ b/modules/export_seda/js/functions.js @@ -0,0 +1,19 @@ +function actionSeda($path) { + new Ajax.Request($path, + { + method:'post', + parameters: { url : $path, + }, + onSuccess: function(answer) { + eval("response = "+answer.responseText); + if(response.status == 0){ + var btn = $('<input type="button" value="_VALIDATE"/>'); + $("validSeda").append(btn); + } else { + alert(response.error); + eval(response.exec_js); + } + // $('loading_' + target).style.display='none'; + } + }); +} \ No newline at end of file diff --git a/modules/export_seda/lang/fr.php b/modules/export_seda/lang/fr.php index 94a64d96ef7..3015b0fc69e 100644 --- a/modules/export_seda/lang/fr.php +++ b/modules/export_seda/lang/fr.php @@ -10,5 +10,36 @@ if (!defined("_EXPORT_SEDA")) if (!defined("_EXPORT_SEDA_VIEW")) define("_EXPORT_SEDA_VIEW", "Voir le bordereau SEDA"); +if (!defined("_INFORMATION_MESSAGE")) + define("_INFORMATION_MESSAGE", "Information bordereau"); +if (!defined("_MESSAGE_IDENTIFIER")) + define("_MESSAGE_IDENTIFIER", "Identifiant bordereau"); +if (!defined("_ARCHIVAL_AGENCY_SIREN")) + define("_ARCHIVAL_AGENCY_SIREN", "Numéro SIREN service d'archive"); +if (!defined("_TRANSFERRING_AGENCY_SIREN")) + define("_TRANSFERRING_AGENCY_SIREN", "Numéro SIREN service de transfert"); +if (!defined("_INFORMATION_ARCHIVE")) + define("_INFORMATION_ARCHIVE", "Information archive"); +if (!defined("_ARCHIVE_IDENTIFIER")) + define("_ARCHIVE_IDENTIFIER", "Identifiant archive"); + +if (!defined("_DESCRIPTION_LEVEL")) + define("_DESCRIPTION_LEVEL", "Service de description"); +if (!defined("_RECEIVED_DATE")) + define("_RECEIVED_DATE", "Date de reception"); +if (!defined("_RETENTION_FINAL_DISPOSITION")) + define("_RETENTION_FINAL_DISPOSITION", "Sort final"); +if (!defined("_DOCUMENT_TYPE")) + define("_DOCUMENT_TYPE", "Type de document"); +if (!defined("_SENT_DATE")) + define("_SENT_DATE", "Date d'envoie"); + +if (!defined("_INFORMATION_ARCHIVE_CHILDREN")) + define("_INFORMATION_ARCHIVE_CHILDREN", "Information archive enfant"); + +if (!defined("_ZIP")) + define("_ZIP", "Télécharger Zip"); +if (!defined("_SEND_MESSAGE")) + define("_SEND_MESSAGE", "Archiver bordereau"); \ No newline at end of file diff --git a/modules/export_seda/resources/ArchiveUnit.xml b/modules/export_seda/resources/ArchiveUnit.xml index 8d2ea8d3d5a..7656d6725fd 100644 --- a/modules/export_seda/resources/ArchiveUnit.xml +++ b/modules/export_seda/resources/ArchiveUnit.xml @@ -1,5 +1,5 @@ <?merge $archiveUnit ?> -<ArchiveUnit> +<ArchiveUnit id="[?merge .id ?]"> <ArchiveUnitRefId><?merge .archiveUnitRefId ?></ArchiveUnitRefId> <ArchiveUnitProfile schemeID="[?merge .archiveUnitProfile.schemeID ?]" schemeName="[?merge .archiveUnitProfile.schemeName ?]" schemeAgencyID="[?merge .archiveUnitProfile.schemeAgencyID ?]" schemeAgencyName="[?merge .archiveUnitProfile.schemeAgencyName ?]" schemeVersionID="[?merge .archiveUnitProfile.schemeVersionID ?]" schemeDataURI="[?merge .archiveUnitProfile.schemeDataURI ?]" schemeURI="[?merge .archiveUnitProfile.schemeURI ?]"><?merge .archiveUnitProfile ?></ArchiveUnitProfile> <?merge .management.bool() ?> @@ -54,6 +54,7 @@ <DescriptionLevel listVersionID="[?merge .descriptionLevel ?]"><?merge .content.descriptionLevel ?></DescriptionLevel> <?merge .content.title ?><Title><?merge . ?></Title> <?merge .content.filePlanPosition ?><FilePlanPosition schemeID="[?merge .schemeID @schemeID ?]" schemeName="[?merge .schemeName @schemeName ?]" schemeAgencyID="[?merge .schemeAgencyID @schemeAgencyID ?]" schemeAgencyName="[?merge .schemeAgencyName @schemeAgencyName ?]" schemeVersionID="[?merge .schemeVersionID @schemeVersionID ?]" schemeDataURI="[?merge .schemeDataURI @schemeDataURI ?]" schemeURI="[?merge .schemeURI @schemeURI ?]"><?merge .value ?></FilePlanPosition> + <?merge .originatingSystemId ?><OriginatingSystemId><?merge .content.originatingSystemId ?></OriginatingSystemId> <OriginatingAgencyArchiveIdentifier><?merge .content.originatingAgencyArchiveIdentifier ?></OriginatingAgencyArchiveIdentifier> <?merge .content.description.bool() ?><Description><?merge .content.description ?></Description> <?merge .content.custodialHistory.bool() ?> @@ -109,6 +110,13 @@ <?xinclude /resources/Agent.xml ?> </Recipient> <Source><?merge .content.source ?></Source> + <?merge .content.relatedObjectReference.bool() ?> + <RelatedObjectReference> + <?merge .content.relatedObjectReference.references ?> + <Reference> + <RepositoryArchiveUnitPID><?merge .repositoryArchiveUnitPID ?></RepositoryArchiveUnitPID> + </Reference> + </RelatedObjectReference> <CreatedDate><?merge .content.createdDate ?></CreatedDate> <TransactedDate><?merge .content.transactedDate ?></TransactedDate> <AcquiredDate><?merge .content.acquiredDate ?></AcquiredDate> @@ -125,7 +133,9 @@ <EventDetail><?merge .eventDetail ?></EventDetail> </Event> </Content> - <?merge .content.archiveUnit /resources/ArchiveUnit.xml?> + <?merge .archiveUnit $archiveUnitChildren?> + <?merge .archiveUnit.bool() ?> + <?xinclude /resources/ArchiveUnitChildren.xml ?> <?merge .dataObjectReference.bool() ?> <DataObjectReference> <?merge .dataObjectReference.dataObjectReferenceId.bool() ?> diff --git a/modules/export_seda/resources/ArchiveUnitChildren.xml b/modules/export_seda/resources/ArchiveUnitChildren.xml new file mode 100644 index 00000000000..df2e655b404 --- /dev/null +++ b/modules/export_seda/resources/ArchiveUnitChildren.xml @@ -0,0 +1,137 @@ +<?merge $archiveUnitChildren ?> +<ArchiveUnit id="[?merge .id ?]"> + <ArchiveUnitRefId><?merge .archiveUnitRefId ?></ArchiveUnitRefId> + <ArchiveUnitProfile schemeID="[?merge .archiveUnitProfile.schemeID ?]" schemeName="[?merge .archiveUnitProfile.schemeName ?]" schemeAgencyID="[?merge .archiveUnitProfile.schemeAgencyID ?]" schemeAgencyName="[?merge .archiveUnitProfile.schemeAgencyName ?]" schemeVersionID="[?merge .archiveUnitProfile.schemeVersionID ?]" schemeDataURI="[?merge .archiveUnitProfile.schemeDataURI ?]" schemeURI="[?merge .archiveUnitProfile.schemeURI ?]"><?merge .archiveUnitProfile ?></ArchiveUnitProfile> + <?merge .management.bool() ?> + <Management> + <?merge .management.storageRule.bool() ?> + <StorageRule> + <?merge .management.storageRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + <FinalAction><?merge .management.storageRule.finalAction ?></FinalAction> + </StorageRule> + <?merge .management.appraisalRule.bool() ?> + <AppraisalRule> + <?merge .management.appraisalRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + <FinalAction><?merge .management.appraisalRule.finalAction ?></FinalAction> + </AppraisalRule> + <?merge .management.accessRule.bool() ?> + <AccessRule> + <?merge .management.accessRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + </AccessRule> + <?merge .management.disseminationRule.bool() ?> + <DisseminationRule> + <?merge .management.disseminationRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + </DisseminationRule> + <?merge .management.reuseRule.bool() ?> + <ReuseRule> + <?merge .management.reuseRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + </ReuseRule> + <?merge .management.classificationRule.bool() ?> + <ClassificationRule> + <?merge .management.classificationRule $abstractRule ?> + <?xinclude /resources/AbstractRule.xml ?> + <ClassificationLevel><?merge .management.classificationRule.classificationLevel ?></ClassificationLevel> + <ClassificationOwner><?merge .management.classificationRule.classificationOwner ?></ClassificationOwner> + <ClassificationReassessingDate><?merge .management.classificationRule.classificationReassessingDate ?></ClassificationReassessingDate> + <NeedReassessingAuthorization><?merge .management.classificationRule.needReassessingAuthorization ?></NeedReassessingAuthorization> + </ClassificationRule> + <?merge .management.needAuthorization.bool() ?> + <NeedAuthorization> + <?merge .management.needAuthorization ?> + </NeedAuthorization> + <?merge .management.otherManagementAbstract.bool() ?> + <OtherManagementAbstract> + <?merge .management.otherManagementAbstract ?> + </OtherManagementAbstract> + </Management> + <?merge .content.bool() ?> + <Content> + <DescriptionLevel listVersionID="[?merge .descriptionLevel ?]"><?merge .content.descriptionLevel ?></DescriptionLevel> + <?merge .content.title ?><Title><?merge . ?></Title> + <?merge .content.filePlanPosition ?><FilePlanPosition schemeID="[?merge .schemeID @schemeID ?]" schemeName="[?merge .schemeName @schemeName ?]" schemeAgencyID="[?merge .schemeAgencyID @schemeAgencyID ?]" schemeAgencyName="[?merge .schemeAgencyName @schemeAgencyName ?]" schemeVersionID="[?merge .schemeVersionID @schemeVersionID ?]" schemeDataURI="[?merge .schemeDataURI @schemeDataURI ?]" schemeURI="[?merge .schemeURI @schemeURI ?]"><?merge .value ?></FilePlanPosition> + <?merge .originatingSystemId ?><OriginatingSystemId><?merge .content.originatingSystemId ?></OriginatingSystemId> + <OriginatingAgencyArchiveIdentifier><?merge .content.originatingAgencyArchiveIdentifier ?></OriginatingAgencyArchiveIdentifier> + <?merge .content.description.bool() ?><Description><?merge .content.description ?></Description> + <?merge .content.custodialHistory.bool() ?> + <CustodialHistory> + <?merge .content.custodialHistory.custodialHistoryItem ?> + <CustodialHistoryItem when="[?merge .when ?]"><?merge .value ?></CustodialHistoryItem> + </CustodialHistory> + <Type><?merge .content.type ?></Type> + <DocumentType><?merge .content.documentType ?></DocumentType> + <Language><?merge .content.language ?></Language> + <DescriptionLanguage><?merge .content.descriptionLanguage ?></DescriptionLanguage> + <Status><?merge .content.status ?></Status> + <Version><?merge .content.version ?></Version> + <?merge .content.tag ?><Tag><?merge .value ?></Tag> + <?merge .content.keyword ?><Keyword> + <KeywordContent role="[?merge .keywordContent.role @role ?]"><?merge .keywordContent.value ?></KeywordContent> + <KeywordReference schemeID="[?merge .keywordReference.schemeID @schemeID ?]" schemeName="[?merge .keywordReference.schemeName @schemeName ?]" schemeAgencyID="[?merge .keywordReference.schemeAgencyID @schemeAgencyID ?]" schemeAgencyName="[?merge .keywordReference.schemeAgencyName @schemeAgencyName ?]" schemeVersionID="[?merge .keywordReference.schemeVersionID @schemeVersionID ?]" schemeDataURI="[?merge .keywordReference.schemeDataURI @schemeDataURI ?]" schemeURI="[?merge .keywordReference.schemeURI @schemeURI ?]"><?merge .keywordReference.value ?></KeywordReference> + <KeywordType listVersionID="[?merge .keywordType.listVersionID @listVersionID ?]"><?merge .keywordType ?></KeywordType> + </Keyword> + <Coverage> + <SpatialCoverage><?merge .content.spatialCoverage ?></SpatialCoverage> + <TemporalCoverage><?merge .content.temporalCoverage ?></TemporalCoverage> + <JuridicationalCoverage><?merge .content.juridictionalCoverage ?></JuridicationalCoverage> + </Coverage> + <?merge .content.originatingAgency.bool() ?> + <OriginatingAgency> + <?merge .content.originatingAgency $organization ?> + <?xinclude /resources/Organization.xml ?> + </OriginatingAgency> + <?merge .content.submissionAgency.bool() ?> + <SubmissionAgency> + <?merge .content.submissionAgency $organization ?> + <?xinclude /resources/Organization.xml ?> + </SubmissionAgency> + <?merge .content.authorizedAgend.bool() ?> + <AuthorizedAgent> + <?merge .authorizedAgent $agent ?> + <?xinclude /resources/Agent.xml ?> + </AuthorizedAgent> + <?merge .content.writter.array() ?> + <Writter> + <?merge . $agent ?> + <?xinclude /resources/Agent.xml ?> + </Writter> + <?merge .content.addressee.array()?> + <Addressee> + <?merge . $agent ?> + <?xinclude /resources/Agent.xml ?> + </Addressee> + <?merge .content.recipient.array() ?> + <Recipient> + <?merge . $agent ?> + <?xinclude /resources/Agent.xml ?> + </Recipient> + <Source><?merge .content.source ?></Source> + <CreatedDate><?merge .content.createdDate ?></CreatedDate> + <TransactedDate><?merge .content.transactedDate ?></TransactedDate> + <AcquiredDate><?merge .content.acquiredDate ?></AcquiredDate> + <SentDate><?merge .content.sentDate ?></SentDate> + <ReceivedDate><?merge .content.receivedDate ?></ReceivedDate> + <RegisteredDate><?merge .content.registeredDate ?></RegisteredDate> + <StartDate><?merge .content.startDate ?></StartDate> + <EndDate><?merge .content.endDate ?></EndDate> + <?merge .content.event ?> + <Event> + <EventIdentifier><?merge .eventIdentifier ?></EventIdentifier> + <EventType><?merge .eventType ?></EventType> + <EventDateTime><?merge .eventDateTime ?></EventDateTime> + <EventDetail><?merge .eventDetail ?></EventDetail> + </Event> + </Content> + + <?merge .dataObjectReference.bool() ?> + <DataObjectReference> + <?merge .dataObjectReference.dataObjectReferenceId.bool() ?> + <DataObjectReferenceId><?merge .dataObjectReference.dataObjectReferenceId ?></DataObjectReferenceId> + <?merge .dataObjectReference.dataObjectGroupReferenceId.bool() ?> + <DataObjectGroupReferenceId><?merge .dataObjectReference.dataObjectGroupReferenceId ?></DataObjectGroupReferenceId> + </DataObjectReference> +</ArchiveUnit> \ No newline at end of file -- GitLab