diff --git a/modules/basket/view_baskets.php b/modules/basket/view_baskets.php index 1c429134c5218e03dee6f9a6e38a5207c6c995a6..b2116ef28a3529bd2cac5efa2ad049f6d23380ee 100755 --- a/modules/basket/view_baskets.php +++ b/modules/basket/view_baskets.php @@ -70,7 +70,9 @@ if (empty($_GET['defaultAction'])) { $_GET['defaultAction'] = $_SESSION['current_basket']['default_action']; } -if (!empty($_GET['resId'])) { +if (empty($_GET['resId'])) { + $_GET['resId'] = "'none'"; +} elseif (!empty($_GET['resId'])) { require_once('core/class/class_security.php'); $security = new security(); $aResId = explode(',', $_GET['resId']); @@ -81,10 +83,6 @@ if (!empty($_GET['resId'])) { } } -if (empty($_GET['resId'])) { - $_GET['resId'] = "'none'"; -} - $_SESSION['urlV2Basket'] = $_GET; echo '<script language="javascript">'; if (!empty($_GET['backToBasket'])) { diff --git a/rest/index.php b/rest/index.php index 62e8483046dc628ba1a84f95c178aee38542e151..c259f4b10dc5de09ce6f4f814ed389202f4f1d8e 100755 --- a/rest/index.php +++ b/rest/index.php @@ -253,7 +253,7 @@ $app->post('/res', \Resource\controllers\ResController::class . ':createRes'); $app->post('/resExt', \Resource\controllers\ResController::class . ':createExt'); $app->get('/res/{resId}/content', \Resource\controllers\ResController::class . ':getFileContent'); $app->get('/res/{resId}/thumbnail', \Resource\controllers\ResController::class . ':getThumbnailContent'); -$app->get('/res/{resId}/acknowledgementReceipt/{id}', \Resource\controllers\ResController::class . ':getAcknowledgementReceipt'); +$app->get('/res/{resId}/acknowledgementReceipt/{id}', \AcknowledgementReceipt\controllers\AcknowledgementReceiptController::class . ':getAcknowledgementReceipt'); $app->put('/res/resource/status', \Resource\controllers\ResController::class . ':updateStatus'); $app->post('/res/list', \Resource\controllers\ResController::class . ':getList'); $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById'); diff --git a/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php b/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php index 7283fa31b26bee2a16329b664f149114d9eca189..2ac14e64c22aeabd3559c7fc067149eb2bec48c1 100644 --- a/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php +++ b/src/app/acknowledgementReceipt/controllers/AcknowledgementReceiptController.php @@ -14,25 +14,26 @@ namespace AcknowledgementReceipt\controllers; -use setasign\Fpdi\Tcpdf\Fpdi; -use AcknowledgementReceipt\models\AcknowledgementReceiptModel; -use SrcCore\controllers\PreparedClauseController; +use Slim\Http\Request; +use Slim\Http\Response; use User\models\UserModel; -use Basket\models\BasketModel; use Resource\models\ResModel; -use Resource\controllers\ResController; +use setasign\Fpdi\Tcpdf\Fpdi; +use Basket\models\BasketModel; +use Entity\models\EntityModel; +use Contact\models\ContactModel; +use Respect\Validation\Validator; +use SrcCore\models\DatabaseModel; +use Template\models\TemplateModel; +use Doctype\models\DoctypeExtModel; use Docserver\models\DocserverModel; +use Resource\controllers\ResController; use Docserver\models\DocserverTypeModel; use Resource\controllers\StoreController; -use Slim\Http\Request; -use Slim\Http\Response; -use Respect\Validation\Validator; +use History\controllers\HistoryController; use Resource\controllers\ResourceListController; -use Contact\models\ContactModel; -use SrcCore\models\DatabaseModel; -use Doctype\models\DoctypeExtModel; -use Template\models\TemplateModel; -use Entity\models\EntityModel; +use SrcCore\controllers\PreparedClauseController; +use AcknowledgementReceipt\models\AcknowledgementReceiptModel; class AcknowledgementReceiptController { @@ -307,4 +308,66 @@ class AcknowledgementReceiptController return $response->withJson(['sendEmail' => $sendEmail, 'sendPaper' => $sendPaper, 'noSendAR' => $noSendAR, 'alreadySend' => $alreadySend, 'alreadyGenerated' => $alreadyGenerated]); } + + public function getAcknowledgementReceipt(Request $request, Response $response, array $aArgs) + { + if (!Validator::intVal()->validate($aArgs['resId']) || !ResController::hasRightByResId(['resId' => $aArgs['resId'], 'userId' => $GLOBALS['userId']])) { + return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']); + } + + $mainDocument = ResModel::getById(['select' => ['docserver_id', 'path', 'filename', 'fingerprint'], 'resId' => $aArgs['resId']]); + $extDocument = ResModel::getExtById(['select' => ['category_id', 'alt_identifier'], 'resId' => $aArgs['resId']]); + if (empty($mainDocument) || empty($extDocument)) { + return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']); + } + + $document = AcknowledgementReceiptModel::getByIds([ + 'select' => ['docserver_id', 'path', 'filename', 'fingerprint'], + 'ids' => [$aArgs['id']] + ]); + + $docserver = DocserverModel::getByDocserverId(['docserverId' => $document[0]['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]); + if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) { + return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']); + } + + $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document[0]['path']) . $document[0]['filename']; + + if (!file_exists($pathToDocument)) { + return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']); + } + + $fingerprint = StoreController::getFingerPrint(['filePath' => $pathToDocument]); + if (!empty($document[0]['fingerprint']) && $document[0]['fingerprint'] != $fingerprint) { + return $response->withStatus(400)->withJson(['errors' => 'Fingerprints do not match']); + } + + $fileContent = file_get_contents($pathToDocument); + + if ($fileContent === false) { + return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']); + } + + $finfo = new \finfo(FILEINFO_MIME_TYPE); + $mimeType = $finfo->buffer($fileContent); + $pathInfo = pathinfo($pathToDocument); + + $response->write($fileContent); + $response = $response->withAddedHeader('Content-Disposition', "inline; filename=maarch.{$pathInfo['extension']}"); + + HistoryController::add([ + 'tableName' => 'acknowledgement_receipt', + 'recordId' => $aArgs['id'], + 'eventType' => 'VIEW', + 'info' => _ACKNOWLEDGEMENT_RECEIPT_DISPLAYING . " : {$aArgs['id']}", + 'moduleId' => 'res', + 'eventId' => 'acknowledgementreceiptview', + ]); + + if ($mimeType == 'text/plain') { + $mimeType = 'text/html'; + } + + return $response->withHeader('Content-Type', $mimeType); + } } diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index ab4f5b83ea0723963e4cd93a32f4a32b57f19559..c12203c05640290417cb7520a503ad61334ecbae 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -38,7 +38,6 @@ use SrcCore\models\CoreConfigModel; use SrcCore\models\ValidatorModel; use Status\models\StatusModel; use User\models\UserModel; -use AcknowledgementReceipt\models\AcknowledgementReceiptModel; class ResController { @@ -391,68 +390,6 @@ class ResController return $response->withHeader('Content-Type', $mimeType); } - public function getAcknowledgementReceipt(Request $request, Response $response, array $aArgs) - { - if (!Validator::intVal()->validate($aArgs['resId']) || !ResController::hasRightByResId(['resId' => $aArgs['resId'], 'userId' => $GLOBALS['userId']])) { - return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']); - } - - $mainDocument = ResModel::getById(['select' => ['docserver_id', 'path', 'filename', 'fingerprint'], 'resId' => $aArgs['resId']]); - $extDocument = ResModel::getExtById(['select' => ['category_id', 'alt_identifier'], 'resId' => $aArgs['resId']]); - if (empty($mainDocument) || empty($extDocument)) { - return $response->withStatus(400)->withJson(['errors' => 'Document does not exist']); - } - - $document = AcknowledgementReceiptModel::getByIds([ - 'select' => ['docserver_id', 'path', 'filename', 'fingerprint'], - 'ids' => [$aArgs['id']] - ]); - - $docserver = DocserverModel::getByDocserverId(['docserverId' => $document[0]['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]); - if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) { - return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']); - } - - $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document[0]['path']) . $document[0]['filename']; - - if (!file_exists($pathToDocument)) { - return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']); - } - - $fingerprint = StoreController::getFingerPrint(['filePath' => $pathToDocument]); - if (!empty($document[0]['fingerprint']) && $document[0]['fingerprint'] != $fingerprint) { - return $response->withStatus(400)->withJson(['errors' => 'Fingerprints do not match']); - } - - $fileContent = file_get_contents($pathToDocument); - - if ($fileContent === false) { - return $response->withStatus(404)->withJson(['errors' => 'Document not found on docserver']); - } - - $finfo = new \finfo(FILEINFO_MIME_TYPE); - $mimeType = $finfo->buffer($fileContent); - $pathInfo = pathinfo($pathToDocument); - - $response->write($fileContent); - $response = $response->withAddedHeader('Content-Disposition', "inline; filename=maarch.{$pathInfo['extension']}"); - - HistoryController::add([ - 'tableName' => 'res_letterbox', - 'recordId' => $aArgs['resId'], - 'eventType' => 'VIEW', - 'info' => _DOC_DISPLAYING . " : {$aArgs['resId']}", - 'moduleId' => 'res', - 'eventId' => 'resview', - ]); - - if ($mimeType == 'text/plain') { - $mimeType = 'text/html'; - } - - return $response->withHeader('Content-Type', $mimeType); - } - public function getThumbnailContent(Request $request, Response $response, array $aArgs) { if (!Validator::intVal()->validate($aArgs['resId'])) { diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php index b61aa371e34e01bd7a6857a93e1cc42106f326a4..92174ed6e89d2621ddaa73a185b737662c43d14c 100755 --- a/src/core/lang/lang-en.php +++ b/src/core/lang/lang-en.php @@ -459,3 +459,5 @@ define('_UPDATE_ACKNOWLEDGEMENT_SEND_DATE', 'update acknowledgement send date'); define("_M2M_ACTION_DONE", "done by"); define("_M2M_ENTITY_DESTINATION", "Mail is in the department"); + +define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Displaying acknowledgement receipt'); diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php index 0ef8a2010cd5ae735f9db42eacb16dd41ff8c5f0..e7b847ad00dea969d5213c553557a4c4ffc21e28 100755 --- a/src/core/lang/lang-fr.php +++ b/src/core/lang/lang-fr.php @@ -459,3 +459,5 @@ define('_UPDATE_ACKNOWLEDGEMENT_SEND_DATE', 'Mettre à jour la date d\'envoi des define("_M2M_ACTION_DONE", "actionné par"); define("_M2M_ENTITY_DESTINATION", "Le courrier est dans l'entité"); + +define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Visualisation de l\'accusé de réception'); diff --git a/src/core/lang/lang-nl.php b/src/core/lang/lang-nl.php index bf24626946e97188eacb1dac1f9072933b52d5b9..eafc0d8851ab95072954c7473fb6cca4e98d6246 100644 --- a/src/core/lang/lang-nl.php +++ b/src/core/lang/lang-nl.php @@ -460,3 +460,5 @@ define('_AR_DISPLAYING', 'Displaying acknowledgement receipt_TO_TRANSLATE'); define('_M2M_ACTION_DONE', 'in werking gesteld door'); define('_M2M_ENTITY_DESTINATION', 'De brief is in de dienst'); + +define('_ACKNOWLEDGEMENT_RECEIPT_DISPLAYING', 'Displaying acknowledgement receipt_TO_TRANSLATE'); diff --git a/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts b/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts index 037cf4fbbd940f454ef46f5f511772465ef32577..a9227debc327158a82d369f4698f1d9fc1b5e6d1 100644 --- a/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts +++ b/src/frontend/app/actions/create-acknowledgement-receipt-action/create-acknowledgement-receipt-action.component.ts @@ -32,7 +32,6 @@ export class CreateAcknowledgementReceiptActionComponent implements OnInit { this.loadingInit = true; this.http.post('../../rest/resourcesList/users/' + this.data.currentBasketInfo.ownerId + '/groups/' + this.data.currentBasketInfo.groupId + '/baskets/' + this.data.currentBasketInfo.basketId + '/checkAcknowledgementReceipt', {resources : this.data.selectedRes}) .subscribe((data : any) => { - console.log(data); this.acknowledgement = data; this.loadingInit = false; }, (err) => {