From 61c07303dcec2b38947b7949de260876f5a7bfda Mon Sep 17 00:00:00 2001 From: Cyril Vazquez <cyril.vazquez@maarch.org> Date: Fri, 4 Oct 2024 12:51:04 +0200 Subject: [PATCH] =?UTF-8?q?Fonction=20de=20simplification=20de=20l'arbre?= =?UTF-8?q?=20SEDA=202=20avec=20limitation=20de=20profondeur=20(r=C3=A9cur?= =?UTF-8?q?sivit=C3=A9)=20et=20du=20longueur=20de=20liste=20(it=C3=A9ratio?= =?UTF-8?q?ns)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maarchRM/Presenter/seda2/message.php | 30 +++ .../Resources/view/seda2/message/archive.html | 181 +++++++++--------- 2 files changed, 120 insertions(+), 91 deletions(-) diff --git a/presentation/maarchRM/Presenter/seda2/message.php b/presentation/maarchRM/Presenter/seda2/message.php index c8bc90a2..65ba64b3 100644 --- a/presentation/maarchRM/Presenter/seda2/message.php +++ b/presentation/maarchRM/Presenter/seda2/message.php @@ -114,6 +114,8 @@ class message } } } + + $this->simplifyTree($message->object->dataObjectPackage->descriptiveMetadata); } } @@ -124,4 +126,32 @@ class message return $this->view->saveHtml(); } + + protected function simplifyTree($archiveUnitContainer, $depth=1) + { + // No child node + if (!is_array($archiveUnitContainer->archiveUnit)) { + return; + } + + // Keep only 10 child nodes + $childNodeCount = count($archiveUnitContainer->archiveUnit); + if ($childNodeCount > 10) { + $archiveUnitContainer->archiveUnit = array_slice($archiveUnitContainer->archiveUnit, 0, 10); + $archiveUnitContainer->siblingArchiveUnits = $childNodeCount - 10; + } + + // Keep only 4 levels + if ($depth > 3) { + $archiveUnitContainer->archiveUnit = null; + $archiveUnitContainer->otherArchiveUnits = $childNodeCount; + return; + } + + // recursively apply procedure + $depth++; + foreach ($archiveUnitContainer->archiveUnit as $key => $archiveUnit) { + $this->simplifyTree($archiveUnit, $depth); + } + } } diff --git a/presentation/maarchRM/Resources/view/seda2/message/archive.html b/presentation/maarchRM/Resources/view/seda2/message/archive.html index 871f9aaa..7179be2d 100644 --- a/presentation/maarchRM/Resources/view/seda2/message/archive.html +++ b/presentation/maarchRM/Resources/view/seda2/message/archive.html @@ -11,6 +11,7 @@ </div> <div id="archive[?merge $archiveCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne" style="height: 0px;"> <div class="panel-body"> + <?merge .content.bool() ?> <div class="panel panel-warning"> <?merge .newId() $managementCollapsId ?> <div class="panel-heading" role="tab"> @@ -173,40 +174,38 @@ </dd> </span> <?merge .content.coverage.bool() ?> - <?merge .newId() $coverageCollapsId ?> - <div> - <div class="panel panel-warning"> - <div class="panel-heading" role="tab"> - <h4 class="panel-title"> - <a role="button" data-toggle="collapse" href="#coverage-[?merge $coverageCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Couverture</a> - </h4> - </div> - <div id ="coverage-[?merge $coverageCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> - <div class="panel-body"> - <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> - <?merge .content.coverage.spatial.bool() ?> - <span> - <dt>Spatiale</dt> - <?merge .content.coverage.spatial ?> - <dd><?merge . ?></dd> - </span> - <?merge .content.coverage.temporal.bool() ?> - <span> - <dt>Temporelle</dt> - <?merge .content.coverage.temporal?> - <dd><?merge . ?></dd> - </span> - <?merge .content.coverage.juridictional.bool() ?> - <span> - <dt>Juridirictionnelle</dt> - <?merge .content.coverage.juridictional?> - <dd><?merge . ?></dd> - </span> - </dl> - </div> + <div class="panel panel-warning"> + <?merge .newId() $coverageCollapsId ?> + <div class="panel-heading" role="tab"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" href="#coverage-[?merge $coverageCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Couverture</a> + </h4> </div> + <div id ="coverage-[?merge $coverageCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> + <div class="panel-body"> + <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> + <?merge .content.coverage.spatial.bool() ?> + <span> + <dt>Spatiale</dt> + <?merge .content.coverage.spatial ?> + <dd><?merge . ?></dd> + </span> + <?merge .content.coverage.temporal.bool() ?> + <span> + <dt>Temporelle</dt> + <?merge .content.coverage.temporal?> + <dd><?merge . ?></dd> + </span> + <?merge .content.coverage.juridictional.bool() ?> + <span> + <dt>Juridirictionnelle</dt> + <?merge .content.coverage.juridictional?> + <dd><?merge . ?></dd> + </span> + </dl> + </div> + <br> </div> - <br> </div> <div> <?merge .content.originatingAgency.bool() ?> @@ -221,10 +220,9 @@ <dt>Service versant</dt> <dd><?merge .content.submissionAgency.identifier.value ?></dd> </span> - <br> <?merge .content.authorizedAgent.bool() ?> - <?merge .newId() $authorizedAgentCollapsId ?> <div class="panel panel-warning"> + <?merge .newId() $authorizedAgentCollapsId ?> <div class="panel-heading" role="tab"> <h4 class="panel-title"> <a role="button" data-toggle="collapse" href="#authorizedAgent-[?merge $authorizedAgentCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Titulaire des droits de propriété intellectuelle</a> @@ -239,12 +237,11 @@ </div> </div> </div> - <br> </div> <div> <?merge .content.writer.bool() ?> - <?merge .newId() $writerCollapsId ?> <div class="panel panel-warning"> + <?merge .newId() $writerCollapsId ?> <div class="panel-heading" role="tab"> <h4 class="panel-title"> <a role="button" data-toggle="collapse" href="#writer-[?merge $writerCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Rédacteur</a> @@ -259,12 +256,11 @@ </div> </div> </div> - <br> </div> <div> <?merge .content.addressee.bool() ?> - <?merge .newId() $addresseeCollapsId ?> <div class="panel panel-warning"> + <?merge .newId() $addresseeCollapsId ?> <div class="panel-heading" role="tab"> <h4 class="panel-title"> <a role="button" data-toggle="collapse" href="#addressee-[?merge $addresseeCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Destinataire(s) pour action</a> @@ -279,12 +275,11 @@ </div> </div> </div> - <br> </div> <div> <?merge .content.recipient.bool() ?> - <?merge .newId() $recipientCollapsId ?> <div class="panel panel-warning"> + <?merge .newId() $recipientCollapsId ?> <div class="panel-heading" role="tab"> <h4 class="panel-title"> <a role="button" data-toggle="collapse" href="#recipient-[?merge $recipientCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Destinataire(s) pour information</a> @@ -299,12 +294,11 @@ </div> </div> </div> - <br> </div> <div> <?merge .content.transmitter.bool() ?> - <?merge .newId() $transmitterCollapsId ?> <div class="panel panel-warning"> + <?merge .newId() $transmitterCollapsId ?> <div class="panel-heading" role="tab"> <h4 class="panel-title"> <a role="button" data-toggle="collapse" href="#transmitter-[?merge $transmitterCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Émetteur</a> @@ -319,25 +313,22 @@ </div> </div> </div> - <br> </div> <div> <?merge .content.sender.bool() ?> - <?merge .newId() $senderCollapsId ?> - <div> - <div class="panel panel-warning"> - <div class="panel-heading" role="tab"> - <h4 class="panel-title"> - <a role="button" data-toggle="collapse" href="#sender-[?merge $senderCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Éxpéditeur</a> - </h4> - </div> - <div id ="sender-[?merge $senderCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> - <?merge .content.sender ?> - <div class="panel-body"> - <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> - <span><?hinclude seda2/message/personOrEntityGroup.html ?><?hinclude seda2/message/businessGroup.html ?></span> - </dl> - </div> + <div class="panel panel-warning"> + <?merge .newId() $senderCollapsId ?> + <div class="panel-heading" role="tab"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" href="#sender-[?merge $senderCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Éxpéditeur</a> + </h4> + </div> + <div id ="sender-[?merge $senderCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> + <?merge .content.sender ?> + <div class="panel-body"> + <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> + <span><?hinclude seda2/message/personOrEntityGroup.html ?><?hinclude seda2/message/businessGroup.html ?></span> + </dl> </div> </div> </div> @@ -394,44 +385,38 @@ <dd><?merge .content.endDate ?></dd> </span> <?merge .content.signature.bool() ?> - <?merge .newId() $signatureCollapsId ?> - <div> - <div class="panel panel-warning"> - <div class="panel-heading" role="tab"> - <h4 class="panel-title"> - <a role="button" data-toggle="collapse" href="#signature-[?merge $signatureCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Signature(s)</a> - </h4> - </div> - <div id ="signature-[?merge $signatureCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> - <?merge .content.signature $signature ?> - <div class="panel-body"> - <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> - <span><?hinclude seda2/message/signature.html ?></span> - </dl> - </div> + <div class="panel panel-warning"> + <?merge .newId() $signatureCollapsId ?> + <div class="panel-heading" role="tab"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" href="#signature-[?merge $signatureCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Signature(s)</a> + </h4> + </div> + <div id ="signature-[?merge $signatureCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> + <?merge .content.signature $signature ?> + <div class="panel-body"> + <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> + <span><?hinclude seda2/message/signature.html ?></span> + </dl> </div> </div> - <br> </div> <?merge .content.gps.bool() ?> - <?merge .newId() $gpsCollapsId ?> - <div> - <div class="panel panel-warning"> - <div class="panel-heading" role="tab"> - <h4 class="panel-title"> - <a role="button" data-toggle="collapse" href="#gps-[?merge $gpsCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Coordonnées GPS</a> - </h4> - </div> - <div id ="gps-[?merge $gpsCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> - <?merge .content.gps $gps ?> - <div class="panel-body"> - <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> - <span><?hinclude seda2/message/gps.html ?></span> - </dl> - </div> + <div class="panel panel-warning"> + <?merge .newId() $gpsCollapsId ?> + <div class="panel-heading" role="tab"> + <h4 class="panel-title"> + <a role="button" data-toggle="collapse" href="#gps-[?merge $gpsCollapsId ?]" aria-expanded="true" aria-controls="collapseOne" data-translate-catalog="medona/messages">Coordonnées GPS</a> + </h4> + </div> + <div id ="gps-[?merge $gpsCollapsId ?]" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo"> + <?merge .content.gps $gps ?> + <div class="panel-body"> + <dl class="dl-horizontal" data-translate-catalog="recordsManagement/messages"> + <span><?hinclude seda2/message/gps.html ?></span> + </dl> </div> </div> - <br> </div> </dl> </div> @@ -459,8 +444,22 @@ </div> </div> </div> - <br> + <br/> <?merge .archiveUnit /seda2/message/archive.html ?> + + <?merge .siblingArchiveUnits.bool() ?> + <div class="alert alert-danger"> + <span> + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <?merge .siblingArchiveUnits ?> unités d'archive supplémentaires non affichées. + </span> + + </div> + <?merge .otherArchiveUnits.bool() ?> + <div class="alert alert-danger"> + <span> + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <?merge .otherArchiveUnits ?> unités d'archive contenues non affichées. + </span> + </div> </div><!-- end panel body --> </div> <!-- end collapse --> </div> <!-- end panel --> -- GitLab