From 8dedb94272b3b4f3e7ad40b6f3fab289357d4372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr> Date: Fri, 25 Mar 2022 11:29:55 +0100 Subject: [PATCH] Add export result by json format --- .../dataset/dataset-form.component.html | 4 ++++ .../dataset/dataset-form.component.ts | 4 ++++ .../dataset-by-family.component.spec.ts | 2 ++ .../dataset-card-doc.component.spec.ts | 1 + .../components/result/download.component.html | 4 ++++ .../result/download.component.spec.ts | 6 ++++++ .../result/reminder.component.spec.ts | 4 ++++ .../result/url-display.component.spec.ts | 4 ++++ .../components/summary.component.spec.ts | 2 ++ .../effects/search-multiple.effects.spec.ts | 1 + .../src/app/metamodel/models/dataset.model.ts | 1 + client/src/test-data.ts | 3 +++ conf-dev/create-db.sh | 10 +++++----- server/src/Action/DatasetAction.php | 1 + server/src/Action/DatasetListAction.php | 1 + .../src/Action/StartTaskCreateResultAction.php | 6 ++++-- server/src/Entity/Dataset.php | 18 ++++++++++++++++++ server/tests/Action/DatasetActionTest.php | 1 + server/tests/Action/DatasetListActionTest.php | 1 + 19 files changed, 67 insertions(+), 7 deletions(-) diff --git a/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.html b/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.html index 6c2a8cfc..7434b275 100644 --- a/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.html +++ b/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.html @@ -109,6 +109,10 @@ <input class="custom-control-input" type="checkbox" id="download_opened" name="download_opened" formControlName="download_opened"> <label class="custom-control-label" for="download_opened">Opened</label> </div> + <div class="custom-control custom-switch"> + <input class="custom-control-input" type="checkbox" id="download_json" name="download_json" formControlName="download_json"> + <label class="custom-control-label" for="download_json">Display download results button in JSON format</label> + </div> <div class="custom-control custom-switch"> <input class="custom-control-input" type="checkbox" id="download_csv" name="download_csv" formControlName="download_csv"> <label class="custom-control-label" for="download_csv">Display download results button in CSV format</label> diff --git a/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.ts b/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.ts index 3e7080a1..fa37612c 100644 --- a/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.ts +++ b/client/src/app/admin/instance/dataset/components/dataset/dataset-form.component.ts @@ -53,6 +53,7 @@ export class DatasetFormComponent implements OnInit, OnChanges { cone_search_plot_enabled: new FormControl(false), download_enabled: new FormControl(true), download_opened: new FormControl(false), + download_json: new FormControl(true), download_csv: new FormControl(true), download_ascii: new FormControl(true), download_vo: new FormControl(false), @@ -155,6 +156,7 @@ export class DatasetFormComponent implements OnInit, OnChanges { checkDownloadDisableOpened() { if (this.form.controls.download_enabled.value) { this.form.controls.download_opened.enable(); + this.form.controls.download_json.enable(); this.form.controls.download_csv.enable(); this.form.controls.download_ascii.enable(); this.form.controls.download_vo.enable(); @@ -162,6 +164,8 @@ export class DatasetFormComponent implements OnInit, OnChanges { } else { this.form.controls.download_opened.setValue(false); this.form.controls.download_opened.disable(); + this.form.controls.download_json.setValue(false); + this.form.controls.download_json.disable(); this.form.controls.download_csv.setValue(false); this.form.controls.download_csv.disable(); this.form.controls.download_ascii.setValue(false); diff --git a/client/src/app/instance/documentation/components/dataset-by-family.component.spec.ts b/client/src/app/instance/documentation/components/dataset-by-family.component.spec.ts index 3878a0cd..7479e1df 100644 --- a/client/src/app/instance/documentation/components/dataset-by-family.component.spec.ts +++ b/client/src/app/instance/documentation/components/dataset-by-family.component.spec.ts @@ -28,6 +28,7 @@ const DATASET_LIST: Dataset[] = [ cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -60,6 +61,7 @@ const DATASET_LIST: Dataset[] = [ cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/instance/documentation/components/dataset-card-doc.component.spec.ts b/client/src/app/instance/documentation/components/dataset-card-doc.component.spec.ts index 43226caf..2f4958f7 100644 --- a/client/src/app/instance/documentation/components/dataset-card-doc.component.spec.ts +++ b/client/src/app/instance/documentation/components/dataset-card-doc.component.spec.ts @@ -35,6 +35,7 @@ const DATASET: Dataset = { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/instance/search/components/result/download.component.html b/client/src/app/instance/search/components/result/download.component.html index cf29bc57..b4b0570b 100644 --- a/client/src/app/instance/search/components/result/download.component.html +++ b/client/src/app/instance/search/components/result/download.component.html @@ -18,6 +18,10 @@ <p>Download results just here:</p> </div> <div class="col"> + <a *ngIf="getConfigDownloadResultFormat('download_json')" (click)="downloadResult('json')" class="btn btn-outline-primary" title="Download results in JSON format"> + <span class="fas fa-file"></span> JSON + </a> + <a *ngIf="getConfigDownloadResultFormat('download_csv')" (click)="downloadResult('csv')" class="btn btn-outline-primary" title="Download results in CSV format"> <span class="fas fa-file-csv"></span> CSV </a> diff --git a/client/src/app/instance/search/components/result/download.component.spec.ts b/client/src/app/instance/search/components/result/download.component.spec.ts index a98834b7..c6a1b42d 100644 --- a/client/src/app/instance/search/components/result/download.component.spec.ts +++ b/client/src/app/instance/search/components/result/download.component.spec.ts @@ -52,6 +52,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -84,6 +85,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: false, download_opened: false, + download_json: true, download_csv: false, download_ascii: false, download_vo: false, @@ -125,6 +127,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -157,6 +160,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: false, download_opened: false, + download_json: true, download_csv: false, download_ascii: false, download_vo: false, @@ -198,6 +202,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: false, download_vo: true, @@ -230,6 +235,7 @@ describe('[Instance][Search][Component][Result] DownloadComponent', () => { cone_search_plot_enabled: false, download_enabled: false, download_opened: false, + download_json: true, download_csv: false, download_ascii: false, download_vo: false, diff --git a/client/src/app/instance/search/components/result/reminder.component.spec.ts b/client/src/app/instance/search/components/result/reminder.component.spec.ts index 6e648e0a..6f373fcf 100644 --- a/client/src/app/instance/search/components/result/reminder.component.spec.ts +++ b/client/src/app/instance/search/components/result/reminder.component.spec.ts @@ -51,6 +51,7 @@ describe('[Instance][Search][Component][Result] ReminderComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -83,6 +84,7 @@ describe('[Instance][Search][Component][Result] ReminderComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -124,6 +126,7 @@ describe('[Instance][Search][Component][Result] ReminderComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -156,6 +159,7 @@ describe('[Instance][Search][Component][Result] ReminderComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/instance/search/components/result/url-display.component.spec.ts b/client/src/app/instance/search/components/result/url-display.component.spec.ts index e09ba2f9..eb4df7de 100644 --- a/client/src/app/instance/search/components/result/url-display.component.spec.ts +++ b/client/src/app/instance/search/components/result/url-display.component.spec.ts @@ -55,6 +55,7 @@ describe('[Instance][Search][Component][Result] UrlDisplayComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -87,6 +88,7 @@ describe('[Instance][Search][Component][Result] UrlDisplayComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -128,6 +130,7 @@ describe('[Instance][Search][Component][Result] UrlDisplayComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -160,6 +163,7 @@ describe('[Instance][Search][Component][Result] UrlDisplayComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/instance/search/components/summary.component.spec.ts b/client/src/app/instance/search/components/summary.component.spec.ts index 1a49dfa7..f01e4aaf 100644 --- a/client/src/app/instance/search/components/summary.component.spec.ts +++ b/client/src/app/instance/search/components/summary.component.spec.ts @@ -51,6 +51,7 @@ describe('[Instance][Search][Component] SummaryComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -83,6 +84,7 @@ describe('[Instance][Search][Component] SummaryComponent', () => { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts index 88b5adb0..f593f267 100644 --- a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts +++ b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts @@ -256,6 +256,7 @@ describe('[Instance][Store] SearchMultipleEffects', () => { cone_search_plot_opened: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/client/src/app/metamodel/models/dataset.model.ts b/client/src/app/metamodel/models/dataset.model.ts index eb041a85..fe4804db 100644 --- a/client/src/app/metamodel/models/dataset.model.ts +++ b/client/src/app/metamodel/models/dataset.model.ts @@ -29,6 +29,7 @@ export interface Dataset { cone_search_plot_enabled: boolean; download_enabled: boolean; download_opened: boolean; + download_json: boolean; download_csv: boolean; download_ascii: boolean; download_vo: boolean; diff --git a/client/src/test-data.ts b/client/src/test-data.ts index 1f984854..bd9375ff 100644 --- a/client/src/test-data.ts +++ b/client/src/test-data.ts @@ -208,6 +208,7 @@ export const DATASET_LIST: Dataset[] = [ cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -240,6 +241,7 @@ export const DATASET_LIST: Dataset[] = [ cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, @@ -274,6 +276,7 @@ export const DATASET: Dataset = { cone_search_plot_enabled: false, download_enabled: true, download_opened: true, + download_json: true, download_csv: true, download_ascii: true, download_vo: true, diff --git a/conf-dev/create-db.sh b/conf-dev/create-db.sh index 8fb223cc..fed4add6 100644 --- a/conf-dev/create-db.sh +++ b/conf-dev/create-db.sh @@ -73,11 +73,11 @@ curl -d '{"label":"SVOM dataset family","display":20,"opened":true}' --header 'C curl -d '{"label":"IRiS dataset family","display":30,"opened":true}' --header 'Content-Type: application/json' -X POST http://localhost/instance/default/dataset-family # Add datasets -curl -d '{"name":"vipers_dr2_w1","table_ref":"aspic_vipers_dr2_w1","label":"VIPERS-W1 (DR2)","description":"VIPERS W1 dataset","display":10,"data_path":"\/ASPIC\/VIPERS_DR2","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"anis_survey"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/1/dataset -curl -d '{"name":"sp_cards","table_ref":"sp_cards","label":"SP Metadata","description":"Contains metadata of scientific products (Core Program & General Program)","display":30,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"svom"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/2/dataset -curl -d '{"name":"observations","table_ref":"v_observation","label":"IRiS obs","description":"IRiS observations","display":10,"data_path":"\/IRIS\/observations","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"iris"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/3/dataset -curl -d '{"name":"vvds_f02_udeep","table_ref":"aspic_vvds_f02_udeep","label":"VVDS2h Ultra Deep","description":"VVDS2h Ultra Deep","display":20,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"anis_survey"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/1/dataset -curl -d '{"name":"products","table_ref":"products","label":"Scientific Products","description":"SR3 & SR4 products list","display":20,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"svom"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/2/dataset +curl -d '{"name":"vipers_dr2_w1","table_ref":"aspic_vipers_dr2_w1","label":"VIPERS-W1 (DR2)","description":"VIPERS W1 dataset","display":10,"data_path":"\/ASPIC\/VIPERS_DR2","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_json":true,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"anis_survey"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/1/dataset +curl -d '{"name":"sp_cards","table_ref":"sp_cards","label":"SP Metadata","description":"Contains metadata of scientific products (Core Program & General Program)","display":30,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_json":true,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"svom"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/2/dataset +curl -d '{"name":"observations","table_ref":"v_observation","label":"IRiS obs","description":"IRiS observations","display":10,"data_path":"\/IRIS\/observations","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_json":true,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"iris"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/3/dataset +curl -d '{"name":"vvds_f02_udeep","table_ref":"aspic_vvds_f02_udeep","label":"VVDS2h Ultra Deep","description":"VVDS2h Ultra Deep","display":20,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_json":true,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"anis_survey"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/1/dataset +curl -d '{"name":"products","table_ref":"products","label":"Scientific Products","description":"SR3 & SR4 products list","display":20,"data_path":"","public":true,"info_survey_enabled":true,"info_survey_label":"More about this survey","cone_search_enabled":false,"cone_search_opened":true,"cone_search_column_ra":null,"cone_search_column_dec":null,"cone_search_plot_enabled":false,"download_enabled":true,"download_opened":false,"download_json":true,"download_csv":true,"download_ascii":true,"download_vo":false,"download_archive":true,"summary_enabled":true,"summary_opened":false,"server_link_enabled":false,"server_link_opened":false,"datatable_enabled":true,"datatable_opened":false,"datatable_selectable_rows":false,"survey_name":"svom"}' --header 'Content-Type: application/json' -X POST http://localhost/dataset-family/2/dataset # Add vipers_dr2_w1 attributes curl -d '{"label":"Default","display":10,"opened":true}' --header 'Content-Type: application/json' -X POST http://localhost/dataset/vipers_dr2_w1/criteria-family diff --git a/server/src/Action/DatasetAction.php b/server/src/Action/DatasetAction.php index e4cb81c4..54ad9509 100644 --- a/server/src/Action/DatasetAction.php +++ b/server/src/Action/DatasetAction.php @@ -130,6 +130,7 @@ final class DatasetAction extends AbstractAction $dataset->setConeSearchPlotEnabled($parsedBody['cone_search_plot_enabled']); $dataset->setDownloadEnabled($parsedBody['download_enabled']); $dataset->setDownloadOpened($parsedBody['download_opened']); + $dataset->setDownloadJson($parsedBody['download_json']); $dataset->setDownloadCsv($parsedBody['download_csv']); $dataset->setDownloadAscii($parsedBody['download_ascii']); $dataset->setDownloadVo($parsedBody['download_vo']); diff --git a/server/src/Action/DatasetListAction.php b/server/src/Action/DatasetListAction.php index 9f73779d..1d84aad1 100644 --- a/server/src/Action/DatasetListAction.php +++ b/server/src/Action/DatasetListAction.php @@ -134,6 +134,7 @@ final class DatasetListAction extends AbstractAction $dataset->setConeSearchPlotEnabled($parsedBody['cone_search_plot_enabled']); $dataset->setDownloadEnabled($parsedBody['download_enabled']); $dataset->setDownloadOpened($parsedBody['download_opened']); + $dataset->setDownloadJson($parsedBody['download_json']); $dataset->setDownloadCsv($parsedBody['download_csv']); $dataset->setDownloadAscii($parsedBody['download_ascii']); $dataset->setDownloadVo($parsedBody['download_vo']); diff --git a/server/src/Action/StartTaskCreateResultAction.php b/server/src/Action/StartTaskCreateResultAction.php index fc1e34e0..ebe42849 100644 --- a/server/src/Action/StartTaskCreateResultAction.php +++ b/server/src/Action/StartTaskCreateResultAction.php @@ -109,7 +109,7 @@ final class StartTaskCreateResultAction extends AbstractAction ); $token = $request->getHeader('Authorization')[0]; } - + $queryParams = $request->getQueryParams(); // The parameter "a" is mandatory @@ -121,7 +121,9 @@ final class StartTaskCreateResultAction extends AbstractAction } // Search extension - if ($queryParams['f'] === 'csv') { + if ($queryParams['f'] === 'json') { + $extension = '.json'; + } elseif ($queryParams['f'] === 'csv') { $extension = '.csv'; } elseif ($queryParams['f'] === 'ascii') { $extension = '.txt'; diff --git a/server/src/Entity/Dataset.php b/server/src/Entity/Dataset.php index 3c78fddf..d425e5bb 100644 --- a/server/src/Entity/Dataset.php +++ b/server/src/Entity/Dataset.php @@ -136,6 +136,13 @@ class Dataset implements \JsonSerializable */ protected $downloadOpened; + /** + * @var bool + * + * @Column(type="boolean", name="download_json", nullable=false) + */ + protected $downloadJson; + /** * @var bool * @@ -402,6 +409,16 @@ class Dataset implements \JsonSerializable $this->downloadOpened = $downloadOpened; } + public function getDownloadJson() + { + return $this->downloadJson; + } + + public function setDownloadJson($downloadJson) + { + $this->downloadJson = $downloadJson; + } + public function getDownloadCsv() { return $this->downloadCsv; @@ -556,6 +573,7 @@ class Dataset implements \JsonSerializable 'cone_search_plot_enabled' => $this->getConeSearchPlotEnabled(), 'download_enabled' => $this->getDownloadEnabled(), 'download_opened' => $this->getDownloadOpened(), + 'download_json' => $this->getDownloadJson(), 'download_csv' => $this->getDownloadCsv(), 'download_ascii' => $this->getDownloadAscii(), 'download_vo' => $this->getDownloadVo(), diff --git a/server/tests/Action/DatasetActionTest.php b/server/tests/Action/DatasetActionTest.php index b33db343..be0328d6 100644 --- a/server/tests/Action/DatasetActionTest.php +++ b/server/tests/Action/DatasetActionTest.php @@ -136,6 +136,7 @@ final class DatasetActionTest extends TestCase 'cone_search_plot_enabled' => false, 'download_enabled' => true, 'download_opened' => false, + 'download_json' => true, 'download_csv' => true, 'download_ascii' => true, 'download_vo' => false, diff --git a/server/tests/Action/DatasetListActionTest.php b/server/tests/Action/DatasetListActionTest.php index d6e843b6..c37563b1 100644 --- a/server/tests/Action/DatasetListActionTest.php +++ b/server/tests/Action/DatasetListActionTest.php @@ -132,6 +132,7 @@ final class DatasetListActionTest extends TestCase 'cone_search_plot_enabled' => false, 'download_enabled' => true, 'download_opened' => false, + 'download_json' => true, 'download_csv' => true, 'download_ascii' => true, 'download_vo' => false, -- GitLab