diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php index 34ddb7e84a..63b5cd0917 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php @@ -54,6 +54,7 @@ class ToolsController extends Controller /** @Ignore */ $JSFields[$meta->get_id()] = [ + 'id' => $meta->get_id(), 'name' => $meta->get_name(), '_value' => $record->getCaption([$meta->get_name()]), ]; @@ -442,4 +443,29 @@ class ToolsController extends Controller unset($media); $this->getFilesystem()->remove($fileName); } + + /** + * @param $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + */ + public function saveMetasAction(Request $request) + { + $record = new \record_adapter($this->app, + (int)$request->request->get("databox_id"), + (int)$request->request->get("record_id")); + + $metadatas[0] = [ + 'meta_struct_id' => (int)$request->request->get("meta_struct_id"), + 'meta_id' => '', + 'value' => $request->request->get("value") + ]; + try { + $record->set_metadatas($metadatas); + } + catch (Exception $e) { + return $this->app->json(['success' => false, 'errorMessage' => $e->getMessage()]); + } + + return $this->app->json(['success' => true, 'errorMessage' => '']); + } } diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php index b49e8dda86..dfef3af2e6 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php @@ -69,6 +69,10 @@ class Tools implements ControllerProviderInterface, ServiceProviderInterface $controllers->post('/sharing-editor/{base_id}/{record_id}/', 'controller.prod.tools:editRecordSharing'); + $controllers->post('/metadata/save/', 'controller.prod.tools:saveMetasAction') + ->bind('prod_tools_metadata_save'); + + return $controllers; } } diff --git a/templates/web/prod/actions/Tools/index.html.twig b/templates/web/prod/actions/Tools/index.html.twig index f564f3d543..7ca006134e 100644 --- a/templates/web/prod/actions/Tools/index.html.twig +++ b/templates/web/prod/actions/Tools/index.html.twig @@ -358,6 +358,7 @@ var toolsConfig = { selectionLength: {{ selectionLength }}, databaseId: {% if selectionLength == 1%}{{record.get_base_id}}{% else %}0{% endif %}, + databoxId: {% if selectionLength == 1 %}{{ record.get_sbas_id() }}{% else %}0{% endif %}, recordId: {% if selectionLength == 1%}{{record.get_record_id}}{% else %}0{% endif %}, translations: { alertTitle: '{{ "alert" | trans }}',