diff --git a/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php index f33487b65a..8ee6462c2a 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php @@ -7,6 +7,7 @@ use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher; use DateTime; use Doctrine\DBAL\Driver\Connection; use Doctrine\ORM\EntityRepository; +use Doctrine\ORM\Query\ResultSetMappingBuilder; use Exception; use PDO; @@ -391,6 +392,44 @@ class WorkerRunningJobRepository extends EntityRepository return $qb->getQuery()->getResult(); } + public function updateStatusRunningToCanceledSinceCreated($hour = 0) + { + $sql = ' + UPDATE WorkerRunningJob w + SET w.status = :canceled + WHERE w.status = :running + AND (TO_SECONDS(CURRENT_TIMESTAMP()) - TO_SECONDS(w.created)) > :second' + ; + + $this->_em->getConnection()->executeUpdate($sql, [ + 'second' => $hour * 3600, + 'running' => 'running', + 'canceled' => 'canceled' + ]); + } + + public function getRunningSinceCreated($hour = 0) + { + $rsm = new ResultSetMappingBuilder($this->_em); + $rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\WorkerRunningJob', 'w'); + $selectClause = $rsm->generateSelectClause(); + + $sql = ' + SELECT ' . $selectClause . ' + FROM WorkerRunningJob w + WHERE w.status = :running + AND (TO_SECONDS(CURRENT_TIMESTAMP()) - TO_SECONDS(w.created)) > :second' + ; + + $q = $this->_em->createNativeQuery($sql, $rsm); + $q->setParameters([ + 'second' => $hour * 3600, + 'running' => 'running' + ]); + + return $q->getResult(); + } + /** * @param $commitId * @return bool diff --git a/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php b/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php index 9e909ddbec..59666c9527 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php @@ -174,6 +174,38 @@ class AdminConfigurationController extends Controller return $this->app->json(['success' => true]); } + public function changeStatusCanceledAction(PhraseaApplication $app, Request $request) + { + /** @var WorkerRunningJobRepository $repoWorker */ + $repoWorker = $this->app['repo.worker-running-job']; + + $result = $repoWorker->getRunningSinceCreated($request->get('hour')); + return $this->render('admin/worker-manager/worker_info_change_status.html.twig', [ + 'jobCount' => count($result) + ]); + } + + public function doChangeStatusToCanceledAction(PhraseaApplication $app, Request $request) + { + /** @var WorkerRunningJobRepository $repoWorker */ + $repoWorker = $this->app['repo.worker-running-job']; + $repoWorker->updateStatusRunningToCanceledSinceCreated($request->request->get('hour')); + + return $this->app->json(['success' => true]); + } + + public function getRunningAction(PhraseaApplication $app, Request $request) + { + /** @var WorkerRunningJobRepository $repoWorker */ + $repoWorker = $this->app['repo.worker-running-job']; + $result = $repoWorker->getRunningSinceCreated($request->get('hour')); + + return $this->app->json([ + 'success' => true, + 'count' => count($result) + ]); + } + public function queueMonitorAction(PhraseaApplication $app, Request $request) { $reload = ($request->query->get('reload') == 1); diff --git a/lib/Alchemy/Phrasea/WorkerManager/Provider/ControllerServiceProvider.php b/lib/Alchemy/Phrasea/WorkerManager/Provider/ControllerServiceProvider.php index 5fcda98415..f023376057 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Provider/ControllerServiceProvider.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Provider/ControllerServiceProvider.php @@ -135,6 +135,21 @@ class ControllerServiceProvider implements ControllerProviderInterface, ServiceP ->assert('workerId', '\d+') ->bind('worker_admin_change_status'); + /** @uses AdminConfigurationController::changeStatusCanceledAction */ + $controllers->match('/change-status/canceled', 'controller.worker.admin.configuration:changeStatusCanceledAction') + ->method('GET') + ->bind('worker_admin_change_status_canceled'); + + /** @uses AdminConfigurationController::doChangeStatusToCanceledAction */ + $controllers->match('/change-status/canceled', 'controller.worker.admin.configuration:doChangeStatusToCanceledAction') + ->method('POST') + ->bind('worker_admin_do_change_status_canceled'); + + /** @uses AdminConfigurationController::getRunningAction */ + $controllers->match('/running', 'controller.worker.admin.configuration:getRunningAction') + ->method('GET') + ->bind('worker_admin_get_running'); + return $controllers; } diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/DeleteRecordWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/DeleteRecordWorker.php index d37a09ec50..ad1fc0a492 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/DeleteRecordWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/DeleteRecordWorker.php @@ -52,13 +52,21 @@ class DeleteRecordWorker implements WorkerInterface $em->rollback(); } + try { + $databox = $this->findDataboxById($payload['databoxId']); + $record = $databox->get_record($payload['recordId']); - $databox = $this->findDataboxById($payload['databoxId']); - $record = $databox->get_record($payload['recordId']); + $record->delete(); - $record->delete(); + $this->messagePublisher->pushLog(sprintf("record deleted databoxname=%s databoxid=%d recordid=%d", $databox->get_viewname(), $payload['databoxId'], $payload['recordId'])); + } catch (\Exception $e) { + $this->messagePublisher->pushLog(sprintf("%s (%s) : Error %s", __FILE__, __LINE__, $e->getMessage()), 'error'); + if ($workerRunningJob != null) { + $workerRunningJob->setInfo('error : ' . $e->getMessage()); + $em->persist($workerRunningJob); + } + } - $this->messagePublisher->pushLog(sprintf("record deleted databoxname=%s databoxid=%d recordid=%d", $databox->get_viewname(), $payload['databoxId'], $payload['recordId'])); // tell that the delete is finished if ($workerRunningJob != null) { $workerRunningJob diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/SubdefCreationWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/SubdefCreationWorker.php index 4cd29e640d..19f857d9ce 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/SubdefCreationWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/SubdefCreationWorker.php @@ -65,8 +65,14 @@ class SubdefCreationWorker implements WorkerInterface $databoxId = $payload['databoxId']; $subdefName = $payload['subdefName']; - $databox = $this->findDataboxById($databoxId); - $record = $databox->get_record($recordId); + try { + $databox = $this->findDataboxById($databoxId); + $record = $databox->get_record($recordId); + } catch (\Exception $e) { + $this->logger->error(sprintf("%s (%s) : record not found %s", __FILE__, __LINE__, $e->getMessage())); + + return; + } if ($record->isStory()) { return; diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/WebhookWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/WebhookWorker.php index 9c8e6aff14..b615aa2cc5 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/WebhookWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/WebhookWorker.php @@ -114,7 +114,15 @@ class WebhookWorker implements WorkerInterface $this->messagePublisher->pushLog(sprintf('Processing event "%s" with id %d', $webhookevent->getName(), $webhookevent->getId())); // send requests - $this->deliverEvent($httpClient, $thirdPartyApplications, $webhookevent, $payload); + try { + $this->deliverEvent($httpClient, $thirdPartyApplications, $webhookevent, $payload); + } catch (\Exception $e) { + if ($workerRunningJob != null) { + $workerRunningJob->setInfo('error ' . $e->getMessage()); + $em->persist($workerRunningJob); + } + } + } if ($workerRunningJob != null) { diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/WriteMetadatasWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/WriteMetadatasWorker.php index c7773526c0..7e0a9ed33a 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/WriteMetadatasWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/WriteMetadatasWorker.php @@ -89,7 +89,13 @@ class WriteMetadatasWorker implements WorkerInterface // here we can work - $record = $databox->get_record($recordId); + try { + $record = $databox->get_record($recordId); + } catch (\Exception $e) { + $this->repoWorker->markFinished($workerRunningJobId, "error " . $e->getMessage()); + + return; + } if ($record->getMimeType() == 'image/svg+xml') { diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index b057e9ee2a..fcf365dc81 100644 --- a/resources/locales/messages.de.xlf +++ b/resources/locales/messages.de.xlf @@ -1,14 +1,14 @@ - + - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.
- - + + Form/Configuration/EmailFormType.php Form/Login/PhraseaAuthenticationForm.php @@ -195,7 +195,7 @@ Bridge/Dailymotion/element_informations.html.twig - %number% documents<br/>selectionnes + selectionnes]]> ausgewählt]]> Controller/Prod/QueryController.php @@ -1181,6 +1181,16 @@ Controller/Prod/LanguageController.php prod/templates/push.html.twig + + Are you sure you want to erase all job informations ? + Are you sure you want to erase all job informations ? + admin/worker-manager/worker_info.html.twig + + + Are you sure you want to erase finished job informations ? + Are you sure you want to erase finished job informations ? + admin/worker-manager/worker_info.html.twig + Are you sure you want to rebuild the sub-definitions of selected records? Sind Sie sicher, dass Sie die Unterauflösungen von ausgewählte Datensätzen wiederherstellen möchten? @@ -2502,7 +2512,7 @@ Form/Configuration/ActionsFormType.php - Display & action settings + Anzeige und Handlung-Einstellungen admin/fields/templates.html.twig @@ -9496,62 +9506,67 @@ admin::workermanager:tab:workerinfo: Display error work Arbeiten Fehler - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display finished work Abgeschlossene Arbeiten - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display manually interrupt work Arbeiten Unterbrechen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display running work Laufende Arbeiten - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all finished Abgeschlossene Arbeiten löschen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all information Alle Arbeiten löschen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Manually interrupt Unterbrechen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Refresh list Liste aktualisieren - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all finished Alle abgeschlossene Arbeiten löschen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all information Vorsicht! Es wird alle Informationen auf abgeschlossene, einschliesslich laufende Arbeiten, löschen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: change status to canceled + admin::workermanager:tab:workerinfo: change status to canceled + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: created Begonnen - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: databox_name Databox - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: description @@ -9561,27 +9576,42 @@ admin::workermanager:tab:workerinfo: duration Dauer - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: finished Beendet - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: published Erstellt - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: record_id Record ID - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: refresh job count + admin::workermanager:tab:workerinfo: refresh job count + admin/worker-manager/worker_info_change_status.html.twig + + + admin::workermanager:tab:workerinfo: running job find + admin::workermanager:tab:workerinfo: running job find + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: status Status - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: title @@ -9591,12 +9621,12 @@ admin::workermanager:tab:workerinfo: work Auftrag - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: work_on Auftrag auf - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin:databases:database:file-size-detail-warning-message @@ -11014,6 +11044,11 @@ Entschuldigung, Ihre Suche liefert keine Ergebnisse prod/results/help.html.twig + + hour + hour + admin/worker-manager/worker_info_change_status.html.twig + image Bild @@ -12005,7 +12040,7 @@ Controller/Root/AccountController.php - phraseanet::account: << your account can be deleted via admin interface >> + >]]> Ihr Benutzerkonto kann nur durch die Administration Anwendung gelöscht werden. web/account/account.html.twig @@ -13207,7 +13242,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben Benutzer verwalten prod/WorkZone/Basket.html.twig - + prod::workzone:manual feedback reminder button Ein Email senden prod/WorkZone/Basket.html.twig @@ -15004,7 +15039,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben web/thesaurus/thesaurus.html.twig - thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation) + web/thesaurus/thesaurus.html.twig diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 41dd2e4bb7..2d1951c010 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,14 +1,14 @@ - + - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.
- - + + Form/Configuration/EmailFormType.php Form/Login/PhraseaAuthenticationForm.php @@ -195,7 +195,7 @@ Bridge/Dailymotion/element_informations.html.twig
- %number% documents<br/>selectionnes + selectionnes]]> selected]]> Controller/Prod/QueryController.php @@ -290,12 +290,12 @@ %user% has made an %opening_link% order %end_link% eventsmanager/notify/order.php
- + %user% a refuse %quantity% elements de votre commande %user% has refused to deliver %quantity% document(s) from your order Notification/Mail/MailInfoOrderCancelled.php - + %user% a refuse la livraison de %quantity% document(s) pour votre commande %user% has refused to deliver %quantity% document(s) from your order eventsmanager/notify/ordernotdelivered.php @@ -335,7 +335,7 @@ %user% has delivered %quantity% document(s) from your order %title% eventsmanager/notify/orderdeliver.php - + %user% vous a delivre votre commande, consultez la en ligne a l'adresse suivante %user% has delivered your order. Retrieve it online at the following address Notification/Mail/MailInfoOrderDelivered.php @@ -1182,6 +1182,16 @@ Controller/Prod/LanguageController.php prod/templates/push.html.twig + + Are you sure you want to erase all job informations ? + Are you sure you want to erase all job informations ? + admin/worker-manager/worker_info.html.twig + + + Are you sure you want to erase finished job informations ? + Are you sure you want to erase finished job informations ? + admin/worker-manager/worker_info.html.twig + Are you sure you want to rebuild the sub-definitions of selected records? Are you sure you want to rebuild the subviews of the selected records? @@ -2505,7 +2515,7 @@ Form/Configuration/ActionsFormType.php - Display & action settings + Display and action settings admin/fields/templates.html.twig @@ -7843,7 +7853,7 @@ Your account on %application% Notification/Mail/MailRequestPasswordSetup.php - + Your account with the login %login% as been created Your account with the login %login% has been created Notification/Mail/MailRequestPasswordSetup.php @@ -9499,62 +9509,67 @@ admin::workermanager:tab:workerinfo: Display error work Job in error - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display finished work Display Finished Job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display manually interrupt work interrupted job - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display running work Running Job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all finished Clear Finished Job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all information Clear all job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Manually interrupt Manually Acknowledge - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Refresh list Refresh list - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all finished Erase line about finished Job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all information Warning! This will delete all jobs logs, including running job(s) - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: change status to canceled + admin::workermanager:tab:workerinfo: change status to canceled + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: created Started - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: databox_name Databox - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: description @@ -9564,27 +9579,42 @@ admin::workermanager:tab:workerinfo: duration Duration - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: finished Finished - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: published Created - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: record_id Record ID - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: refresh job count + admin::workermanager:tab:workerinfo: refresh job count + admin/worker-manager/worker_info_change_status.html.twig + + + admin::workermanager:tab:workerinfo: running job find + admin::workermanager:tab:workerinfo: running job find + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: status Status - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: title @@ -9594,12 +9624,12 @@ admin::workermanager:tab:workerinfo: work Job - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: work_on Work On - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin:databases:database:file-size-detail-warning-message @@ -11017,6 +11047,11 @@ Sorry, your search doesn't return any results. prod/results/help.html.twig + + hour + hour + admin/worker-manager/worker_info_change_status.html.twig + image Image @@ -12008,7 +12043,7 @@ Controller/Root/AccountController.php - phraseanet::account: << your account can be deleted via admin interface >> + >]]> Your rights do not allow to perform this action. Your account can only be deleted via the Administration interface. web/account/account.html.twig @@ -15014,7 +15049,7 @@ It is possible to place several search areas web/thesaurus/thesaurus.html.twig - thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation) + web/thesaurus/thesaurus.html.twig diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 7699baa1b0..beb0858ece 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,14 +1,14 @@ - + - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.
- - + + Form/Configuration/EmailFormType.php Form/Login/PhraseaAuthenticationForm.php @@ -195,7 +195,7 @@ Bridge/Dailymotion/element_informations.html.twig
- %number% documents<br/>selectionnes + selectionnes]]> sélectionnés]]> Controller/Prod/QueryController.php @@ -1181,6 +1181,16 @@ Controller/Prod/LanguageController.php prod/templates/push.html.twig
+ + Are you sure you want to erase all job informations ? + Are you sure you want to erase all job informations ? + admin/worker-manager/worker_info.html.twig + + + Are you sure you want to erase finished job informations ? + Are you sure you want to erase finished job informations ? + admin/worker-manager/worker_info.html.twig + Are you sure you want to rebuild the sub-definitions of selected records? Êtes-vous sûr de vouloir reconstruire les fichiers de sous-définitions des enregistrements sélectionnés ? @@ -2502,7 +2512,7 @@ Form/Configuration/ActionsFormType.php - Display & action settings + Paramétrage d'affichage et d'action admin/fields/templates.html.twig @@ -9497,62 +9507,67 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le admin::workermanager:tab:workerinfo: Display error work Travaux en erreur - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display finished work Travaux terminés - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display manually interrupt work Travaux interrompus - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display running work Travaux en cours - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all finished Effacer les travaux terminés - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all information Effacer tous les travaux - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Manually interrupt Interrompre - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Refresh list Rafraîchir la liste - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all finished Effacer tous les travaux terminés - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all information Attention ! Cela supprimera toutes les informations sur les travaux, y compris ceux en cours - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: change status to canceled + admin::workermanager:tab:workerinfo: change status to canceled + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: created Démarré - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: databox_name Databox - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: description @@ -9562,27 +9577,42 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le admin::workermanager:tab:workerinfo: duration Durée - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: finished Terminé - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: published Créé - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: record_id Record ID - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: refresh job count + admin::workermanager:tab:workerinfo: refresh job count + admin/worker-manager/worker_info_change_status.html.twig + + + admin::workermanager:tab:workerinfo: running job find + admin::workermanager:tab:workerinfo: running job find + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: status Etat - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: title @@ -9592,12 +9622,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le admin::workermanager:tab:workerinfo: work Travaux - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: work_on Objet - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin:databases:database:file-size-detail-warning-message @@ -11015,6 +11045,11 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Désolé, votre recherche ne retourne aucun résultat. prod/results/help.html.twig + + hour + hour + admin/worker-manager/worker_info_change_status.html.twig + image images @@ -12006,7 +12041,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Controller/Root/AccountController.php - phraseanet::account: << your account can be deleted via admin interface >> + >]]> Vos droits ne vous permettent pas de réaliser cette action, votre compte ne peut être supprimé que via l'interface d'Administration. web/account/account.html.twig @@ -13210,7 +13245,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles Gérer les utilisateurs prod/WorkZone/Basket.html.twig - + prod::workzone:manual feedback reminder button Envoyer un email prod/WorkZone/Basket.html.twig @@ -15013,7 +15048,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles web/thesaurus/thesaurus.html.twig - thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation) + web/thesaurus/thesaurus.html.twig diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index e2aedeb60d..9e4dd32be3 100644 --- a/resources/locales/messages.nl.xlf +++ b/resources/locales/messages.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -1182,6 +1182,16 @@ Controller/Prod/LanguageController.php prod/templates/push.html.twig + + Are you sure you want to erase all job informations ? + Are you sure you want to erase all job informations ? + admin/worker-manager/worker_info.html.twig + + + Are you sure you want to erase finished job informations ? + Are you sure you want to erase finished job informations ? + admin/worker-manager/worker_info.html.twig + Are you sure you want to rebuild the sub-definitions of selected records? Are you sure you want to rebuild the sub-definitions of selected records? @@ -9502,62 +9512,67 @@ admin::workermanager:tab:workerinfo: Display error work admin::workermanager:tab:workerinfo: Display error work - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display finished work admin::workermanager:tab:workerinfo: Display finished work - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display manually interrupt work admin::workermanager:tab:workerinfo: Display manually interrupt work - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Display running work admin::workermanager:tab:workerinfo: Display running work - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all finished admin::workermanager:tab:workerinfo: Erase all finished - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Erase all information admin::workermanager:tab:workerinfo: Erase all information - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Manually interrupt admin::workermanager:tab:workerinfo: Manually interrupt - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Refresh list admin::workermanager:tab:workerinfo: Refresh list - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all finished admin::workermanager:tab:workerinfo: Warning! Erase all finished - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: Warning! Erase all information admin::workermanager:tab:workerinfo: Warning! Erase all information - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: change status to canceled + admin::workermanager:tab:workerinfo: change status to canceled + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: created admin::workermanager:tab:workerinfo: created - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: databox_name admin::workermanager:tab:workerinfo: databox_name - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: description @@ -9567,27 +9582,42 @@ admin::workermanager:tab:workerinfo: duration admin::workermanager:tab:workerinfo: duration - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: finished admin::workermanager:tab:workerinfo: finished - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin::workermanager:tab:workerinfo: manually mark as canceled job running + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: published admin::workermanager:tab:workerinfo: published - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: record_id admin::workermanager:tab:workerinfo: record_id - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig + + + admin::workermanager:tab:workerinfo: refresh job count + admin::workermanager:tab:workerinfo: refresh job count + admin/worker-manager/worker_info_change_status.html.twig + + + admin::workermanager:tab:workerinfo: running job find + admin::workermanager:tab:workerinfo: running job find + admin/worker-manager/worker_info_change_status.html.twig admin::workermanager:tab:workerinfo: status admin::workermanager:tab:workerinfo: status - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: title @@ -9597,12 +9627,12 @@ admin::workermanager:tab:workerinfo: work admin::workermanager:tab:workerinfo: work - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin::workermanager:tab:workerinfo: work_on admin::workermanager:tab:workerinfo: work_on - admin/worker-manager/worker_info.html.twig + admin/worker-manager/worker_info.html.twig admin:databases:database:file-size-detail-warning-message @@ -11020,6 +11050,11 @@ help::help-section-title: sorry-no-result prod/results/help.html.twig + + hour + hour + admin/worker-manager/worker_info_change_status.html.twig + image Beeld diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index c141801397..db98f1848d 100644 --- a/resources/locales/validators.de.xlf +++ b/resources/locales/validators.de.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.en.xlf b/resources/locales/validators.en.xlf index 295df02373..630ae1075b 100644 --- a/resources/locales/validators.en.xlf +++ b/resources/locales/validators.en.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.fr.xlf b/resources/locales/validators.fr.xlf index da634586d5..42aadb7ff2 100644 --- a/resources/locales/validators.fr.xlf +++ b/resources/locales/validators.fr.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.nl.xlf b/resources/locales/validators.nl.xlf index adb411a8d5..96471bab86 100644 --- a/resources/locales/validators.nl.xlf +++ b/resources/locales/validators.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/templates/web/admin/index.html.twig b/templates/web/admin/index.html.twig index 8b3af10ba2..27d5e20e97 100644 --- a/templates/web/admin/index.html.twig +++ b/templates/web/admin/index.html.twig @@ -110,5 +110,6 @@
+
{% endblock %} diff --git a/templates/web/admin/worker-manager/worker_info.html.twig b/templates/web/admin/worker-manager/worker_info.html.twig index 067f00aca6..4b37aca429 100644 --- a/templates/web/admin/worker-manager/worker_info.html.twig +++ b/templates/web/admin/worker-manager/worker_info.html.twig @@ -2,20 +2,23 @@

{{ 'admin::workermanager:tab:workerinfo: description' |trans }}

-
+

+ +

+

- {{ "admin::workermanager:tab:workerinfo: Warning! Erase all information" |trans }} -

-
+

-

- @@ -23,8 +26,7 @@

-
-

+

@@ -164,6 +166,85 @@ }); + var buttons = { + 'Apply': function () { + save_status_canceled(); + }, + 'Cancel': function () { + $('#change_status_job_dialog').dialog('close'); + } + }; + + $('#change_status_job_dialog').dialog({ + resizable: false, + autoOpen: false, + draggable: false, + buttons: buttons, + width: 600, + height: 300, + modal: true + }); + + $('.change-status-jobs').on('click', function () { + $.ajax({ + type: "GET", + url: "/admin/worker-manager/change-status/canceled", + success: function (data) { + let $dialog = $('#change_status_job_dialog'); + $dialog.html(data).dialog('open'); + $dialog.on('click', '.refresh-job-count', function() { + let hour = $dialog.find('input[name="hour"]').val(); + $.ajax({ + type: "GET", + url: "/admin/worker-manager/running", + data: { + hour: hour ? hour : 0 + }, + success: function (data) { + $dialog.find('#job-count').empty().html(data.count); + } + }); + }) + } + }); + }); + + function save_status_canceled() { + let hour = $('input[name="hour"]').val(); + $.ajax({ + type: 'POST', + url: '/admin/worker-manager/change-status/canceled', + data: { + hour: hour ? hour : 0 + }, + success: function (data) { + $('#change_status_job_dialog').dialog('close'); + } + }); + } + + $('.erase-all').on('click', function () { + if (confirm("{{ 'Are you sure you want to erase all job informations ?' | trans }}")) { + $.ajax({ + type: 'POST', + url: '/admin/worker-manager/truncate', + success: function (data) { + } + }); + } + }); + + $('.erase-finished').on('click', function () { + if (confirm("{{ 'Are you sure you want to erase finished job informations ?' | trans }}")) { + $.ajax({ + type: 'POST', + url: '/admin/worker-manager/delete-finished', + success: function (data) { + } + }); + } + }); + {% endif %} diff --git a/templates/web/admin/worker-manager/worker_info_change_status.html.twig b/templates/web/admin/worker-manager/worker_info_change_status.html.twig new file mode 100644 index 0000000000..65a959d6af --- /dev/null +++ b/templates/web/admin/worker-manager/worker_info_change_status.html.twig @@ -0,0 +1,13 @@ +
+ {{ 'admin::workermanager:tab:workerinfo: manually mark as canceled job running' | trans }} + +
+ {{ 'hour' | trans }} +
+ +
+ {{ jobCount }} {{ 'admin::workermanager:tab:workerinfo: running job find'| trans }} + + +
+