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 6c2a8cfc7cda339d78bac1f2f236f0dfb7f57d1f..7434b275297a35355f1d3af2a2601eb055e2a7fb 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 3e7080a1e198fcf53bbc01d0091f736d2f2ca6a1..fa37612c0b9cc3253b51b96592d89c09907400bf 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 3878a0cd4b70b8597a442c5658a383b1fab3610a..7479e1dfb0490beeeaea08ddc671f49626e88035 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 43226caf5679690abe1a52241b0f5d8684adc510..2f4958f7c4c8044fad4e7a9faba729fb3f78978a 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 cf29bc5791b3e7269884b54e8d9abafbe68ca7a2..b4b0570baa1b73b1c557d8913c3c2fae5e9cfa66 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 a98834b76cd5bfd2d9b0d363dffd6b427e0e9792..c6a1b42dca00844985d60e2c5e0613795c80d4e5 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 6e648e0a7dafd13959b5d6a9d51e89f846c142ee..6f373fcf051f75ad1fdd62c33867b4763bf7c397 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 e09ba2f9613ddb36abbcc5a2e828c2f18915fba8..eb4df7de30b3cd39bf580a8177f700d9dc76d298 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 1a49dfa756d539a2700765b817e9acfd7c522b64..f01e4aaf7a322949c1d155d1cf1597501c36e905 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 88b5adb0045d398714a11955d8bc6d0245975293..f593f2679ddd78c23fcd6354ddb09aa4946b4039 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 eb041a85bdef74d59f552a6acb687f29a2e75821..fe4804db5828fed33adab0ddd0651056c79be128 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 1f984854f536673ac1224c04151e0220c359f70d..bd9375ffacf8cae1f63a906841b5691e0af6a474 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 8fb223cc9562547380cddd7b75efcc40841cd3a2..fed4add657fa3065669d03cd2f97d5006a09464c 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 e4cb81c4cdb339866884143c6a3b6096cebd3979..54ad9509206978a6611fa1ff22957c0f8c4441f6 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 9f73779d3e08aebb64cad5a4c74f31cd05d65776..1d84aad10ddd0b270314fd9f05f648146cd3ca49 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 fc1e34e044b412c3b9181e913a364a4d30fa42c5..ebe428496b3ed464bdf0d88bcfc4935ef7b07062 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 3c78fddff2deacbf5d63d1d04a5a51c5a8d01278..d425e5bbea489727cc6f292895ad4f2f26ff1c54 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 b33db343393fdde428c6890aa2a6e4b590487e33..be0328d6927810201abab2f3b8d432e2fb3b0e9a 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 d6e843b6fdcee750f68aec1e8faa37846fb7266a..c37563b18ca3ec4ec2864ec46b6fa4ec4f0db354 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,