From 118468784c46aa339dd7e134dbd03e8b12b3e188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr> Date: Mon, 10 Oct 2022 12:39:42 +0200 Subject: [PATCH] Add default ra dec unit (degree or hms) --- .../cone-search-config-form.component.html | 8 ++++++ .../cone-search-config-form.component.ts | 3 +++ .../components/cone-search.component.ts | 5 ++++ .../cone-search/components/dec.component.ts | 7 ++++- .../cone-search/components/ra.component.ts | 7 ++++- .../criteria/cone-search-tab.component.html | 1 + .../models/cone-search-config.model.ts | 1 + conf-dev/create-db.sh | 2 +- .../__CG__AppEntityConeSearchConfig.php | 26 +++++++++++++++++-- server/src/Action/ConeSearchConfigAction.php | 3 +++ server/src/Entity/ConeSearchConfig.php | 24 ++++++++++++++--- 11 files changed, 79 insertions(+), 8 deletions(-) diff --git a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.html b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.html index 09c4b3e1..f75a949f 100644 --- a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.html +++ b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.html @@ -43,6 +43,14 @@ <label for="default_radius">Default radius</label> <input type="number" class="form-control" id="default_radius" name="default_radius" formControlName="default_radius"> </div> + <div class="form-group"> + <label for="default_ra_dec_unit">Default Ra & Dec unit</label> + <select class="form-control" id="default_ra_dec_unit" name="default_ra_dec_unit" formControlName="default_ra_dec_unit"> + <option></option> + <option value="degree">Degree</option> + <option value="hms">HMS</option> + </select> + </div> <div class="custom-control custom-switch"> <input class="custom-control-input" type="checkbox" id="plot_enabled" name="plot_enabled" formControlName="plot_enabled"> <label class="custom-control-label" for="plot_enabled">Plot enabled</label> diff --git a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.ts b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.ts index 6b9300cb..d42ca619 100644 --- a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.ts +++ b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config-form.component.ts @@ -31,6 +31,7 @@ export class ConeSearchConfigFormComponent implements OnInit { default_ra: new UntypedFormControl({value: null, disabled: true}), default_dec: new UntypedFormControl({value: null, disabled: true}), default_radius: new UntypedFormControl({value: 2.0, disabled: true}), + default_ra_dec_unit: new UntypedFormControl({value: 'degree', disabled: true}), plot_enabled: new UntypedFormControl({value: false, disabled: true}) }); @@ -48,6 +49,7 @@ export class ConeSearchConfigFormComponent implements OnInit { this.form.controls.default_ra.enable(); this.form.controls.default_dec.enable(); this.form.controls.default_radius.enable(); + this.form.controls.default_ra_dec_unit.enable(); this.form.controls.plot_enabled.enable(); } else { this.form.controls.opened.setValue(false); @@ -58,6 +60,7 @@ export class ConeSearchConfigFormComponent implements OnInit { this.form.controls.default_ra.disable(); this.form.controls.default_dec.disable(); this.form.controls.default_radius.disable(); + this.form.controls.default_ra_dec_unit.disable(); this.form.controls.plot_enabled.disable(); } } diff --git a/client/src/app/instance/cone-search/components/cone-search.component.ts b/client/src/app/instance/cone-search/components/cone-search.component.ts index d84ac055..e6b5921b 100644 --- a/client/src/app/instance/cone-search/components/cone-search.component.ts +++ b/client/src/app/instance/cone-search/components/cone-search.component.ts @@ -28,6 +28,7 @@ import { nanValidator, rangeValidator } from '../validators'; export class ConeSearchComponent implements OnChanges, OnInit, OnDestroy { @Input() coneSearch: ConeSearch; @Input() defaultRadius: number; + @Input() defaultRaDecUnit: string; @Input() resolverEnabled: boolean; @Input() resolverIsLoading: boolean; @Input() resolverIsLoaded: boolean; @@ -67,6 +68,10 @@ export class ConeSearchComponent implements OnChanges, OnInit, OnDestroy { if (this.defaultRadius) { this.form.controls.radius.setValue(this.defaultRadius); } + + if (this.defaultRaDecUnit) { + this.unit = this.defaultRaDecUnit; + } } ngOnChanges(changes: SimpleChanges): void { diff --git a/client/src/app/instance/cone-search/components/dec.component.ts b/client/src/app/instance/cone-search/components/dec.component.ts index 7d8c3180..c6f3a72a 100644 --- a/client/src/app/instance/cone-search/components/dec.component.ts +++ b/client/src/app/instance/cone-search/components/dec.component.ts @@ -38,7 +38,12 @@ export class DecComponent implements OnInit, OnDestroy, OnChanges { public decDmsSubscription: Subscription; ngOnInit(): void { - this.form.controls.dec_dms.disable(); + if (this.unit === 'degree') { + this.form.controls.dec_dms.disable(); + } else { + this.form.controls.dec.disable(); + } + this.decControlSubscription = this.form.controls.dec.valueChanges.pipe(debounceTime(250)) .subscribe(deg => this.deg2DMS(deg)); } diff --git a/client/src/app/instance/cone-search/components/ra.component.ts b/client/src/app/instance/cone-search/components/ra.component.ts index a177faac..3dec1ea4 100644 --- a/client/src/app/instance/cone-search/components/ra.component.ts +++ b/client/src/app/instance/cone-search/components/ra.component.ts @@ -38,7 +38,12 @@ export class RaComponent implements OnInit, OnDestroy, OnChanges { public raHmsFormSubscription: Subscription; ngOnInit(): void { - this.form.controls.ra_hms.disable(); + if (this.unit === 'degree') { + this.form.controls.ra_hms.disable(); + } else { + this.form.controls.ra.disable(); + } + this.raControlSubscription = this.form.controls.ra.valueChanges.pipe(debounceTime(250)) .subscribe(deg => this.deg2HMS(deg)); } diff --git a/client/src/app/instance/search/components/criteria/cone-search-tab.component.html b/client/src/app/instance/search/components/criteria/cone-search-tab.component.html index 93a49003..ce576d70 100644 --- a/client/src/app/instance/search/components/criteria/cone-search-tab.component.html +++ b/client/src/app/instance/search/components/criteria/cone-search-tab.component.html @@ -17,6 +17,7 @@ <app-cone-search [coneSearch]="coneSearch" [defaultRadius]="coneSearchConfig.default_radius" + [defaultRaDecUnit]="coneSearchConfig.default_ra_dec_unit" [resolverEnabled]="coneSearchConfig.resolver_enabled" [resolverIsLoading]="resolverIsLoading" [resolverIsLoaded]="resolverIsLoaded" diff --git a/client/src/app/metamodel/models/cone-search-config.model.ts b/client/src/app/metamodel/models/cone-search-config.model.ts index e9adcd5d..85228e87 100644 --- a/client/src/app/metamodel/models/cone-search-config.model.ts +++ b/client/src/app/metamodel/models/cone-search-config.model.ts @@ -22,5 +22,6 @@ export interface ConeSearchConfig { default_ra: number; default_dec: number; default_radius: number; + default_ra_dec_unit: string; plot_enabled: boolean; } diff --git a/conf-dev/create-db.sh b/conf-dev/create-db.sh index b31c0258..d2bc1ce1 100644 --- a/conf-dev/create-db.sh +++ b/conf-dev/create-db.sh @@ -96,7 +96,7 @@ curl -d '{"id":6,"name":"zflag","label":"zflag","form_label":"zflag","descriptio curl -d '{"id":7,"name":"sel_mag","label":"sel_mag","form_label":"sel_mag","description":null,"primary_key":false,"output_display":70,"criteria_display":70,"search_type":"between","type":"decimal","operator":null,"dynamic_operator":true,"min":null,"max":null,"placeholder_min":null,"placeholder_max":null,"renderer":null,"renderer_config":null,"detail_display":70,"selected":true,"order_by":true,"archive":false,"detail":false,"options":null,"vo_utype":null,"vo_ucd":null,"vo_unit":null,"vo_description":null,"vo_datatype":null,"vo_size":null,"id_criteria_family":4,"id_output_category":5,"id_detail_output_category":null}' --header 'Content-Type: application/json' -X POST http://localhost/dataset/vvds_f02_udeep/attribute # Add vvds_f02_udeep cone search -curl -d '{"enabled":true,"opened":false,"column_ra":3,"column_dec":4,"resolver_enabled":true,"default_ra":null,"default_dec":null,"default_radius":2.0,"plot_enabled":true}' --header 'Content-Type: application/json' -X POST http://localhost/dataset/vvds_f02_udeep/cone-search-config +curl -d '{"enabled":true,"opened":false,"column_ra":3,"column_dec":4,"resolver_enabled":true,"default_ra":null,"default_dec":null,"default_radius":2.0,"default_ra_dec_unit":"degree","plot_enabled":true}' --header 'Content-Type: application/json' -X POST http://localhost/dataset/vvds_f02_udeep/cone-search-config # Add vvds_f02_udeep image curl -d '{"label":"Mag i","file_path":"/IMAGES/CFHTLS_D-85_i_022559-042940_T0007_MEDIAN.fits","file_size":1498320000,"ra_min":35.994643451078,"ra_max":36.99765934121,"dec_min":-3.9943006310031,"dec_max":-4.9941936740893,"stretch":"linear","pmin":0.2,"pmax":99}' --header 'Content-Type: application/json' -X POST http://localhost/dataset/vvds_f02_udeep/image diff --git a/server/doctrine-proxy/__CG__AppEntityConeSearchConfig.php b/server/doctrine-proxy/__CG__AppEntityConeSearchConfig.php index 34418046..ddb98c40 100644 --- a/server/doctrine-proxy/__CG__AppEntityConeSearchConfig.php +++ b/server/doctrine-proxy/__CG__AppEntityConeSearchConfig.php @@ -67,10 +67,10 @@ class ConeSearchConfig extends \App\Entity\ConeSearchConfig implements \Doctrine public function __sleep() { if ($this->__isInitialized__) { - return ['__isInitialized__', 'id', 'enabled', 'opened', 'columnRa', 'columnDec', 'resolverEnabled', 'defaultRa', 'defaultDec', 'defaultRadius', 'plotEnabled']; + return ['__isInitialized__', 'id', 'enabled', 'opened', 'columnRa', 'columnDec', 'resolverEnabled', 'defaultRa', 'defaultDec', 'defaultRadius', 'defaultRaDecUnit', 'plotEnabled']; } - return ['__isInitialized__', 'id', 'enabled', 'opened', 'columnRa', 'columnDec', 'resolverEnabled', 'defaultRa', 'defaultDec', 'defaultRadius', 'plotEnabled']; + return ['__isInitialized__', 'id', 'enabled', 'opened', 'columnRa', 'columnDec', 'resolverEnabled', 'defaultRa', 'defaultDec', 'defaultRadius', 'defaultRaDecUnit', 'plotEnabled']; } /** @@ -368,6 +368,28 @@ class ConeSearchConfig extends \App\Entity\ConeSearchConfig implements \Doctrine return parent::setDefaultRadius($defaultRadius); } + /** + * {@inheritDoc} + */ + public function getDefaultRaDecUnit() + { + + $this->__initializer__ && $this->__initializer__->__invoke($this, 'getDefaultRaDecUnit', []); + + return parent::getDefaultRaDecUnit(); + } + + /** + * {@inheritDoc} + */ + public function setDefaultRaDecUnit($defaultRaDecUnit) + { + + $this->__initializer__ && $this->__initializer__->__invoke($this, 'setDefaultRaDecUnit', [$defaultRaDecUnit]); + + return parent::setDefaultRaDecUnit($defaultRaDecUnit); + } + /** * {@inheritDoc} */ diff --git a/server/src/Action/ConeSearchConfigAction.php b/server/src/Action/ConeSearchConfigAction.php index 0ac63186..a6ab51ea 100644 --- a/server/src/Action/ConeSearchConfigAction.php +++ b/server/src/Action/ConeSearchConfigAction.php @@ -112,6 +112,7 @@ final class ConeSearchConfigAction extends AbstractAction 'default_ra', 'default_dec', 'default_radius', + 'default_ra_dec_unit', 'plot_enabled' ); @@ -143,6 +144,7 @@ final class ConeSearchConfigAction extends AbstractAction $coneSearchConfig->setDefaultRa($parsedBody['default_ra']); $coneSearchConfig->setDefaultDec($parsedBody['default_dec']); $coneSearchConfig->setDefaultRadius($parsedBody['default_radius']); + $coneSearchConfig->setDefaultRaDecUnit($parsedBody['default_ra_dec_unit']); $coneSearchConfig->setPlotEnabled($parsedBody['plot_enabled']); $dataset->setConeSearchConfig($coneSearchConfig); @@ -169,6 +171,7 @@ final class ConeSearchConfigAction extends AbstractAction $coneSearchConfig->setDefaultRa($parsedBody['default_ra']); $coneSearchConfig->setDefaultDec($parsedBody['default_dec']); $coneSearchConfig->setDefaultRadius($parsedBody['default_radius']); + $coneSearchConfig->setDefaultRaDecUnit($parsedBody['default_ra_dec_unit']); $coneSearchConfig->setPlotEnabled($parsedBody['plot_enabled']); $this->em->flush(); } diff --git a/server/src/Entity/ConeSearchConfig.php b/server/src/Entity/ConeSearchConfig.php index 78423043..9ec28c9f 100644 --- a/server/src/Entity/ConeSearchConfig.php +++ b/server/src/Entity/ConeSearchConfig.php @@ -66,26 +66,33 @@ class ConeSearchConfig implements \JsonSerializable protected $resolverEnabled; /** - * @var bool + * @var float * * @Column(type="float", name="default_ra", nullable=true) */ protected $defaultRa; /** - * @var bool + * @var float * * @Column(type="float", name="default_dec", nullable=true) */ protected $defaultDec; /** - * @var bool + * @var float * * @Column(type="float", name="default_radius", nullable=false, options={"default" : "2.0"})) */ protected $defaultRadius; + /** + * @var string + * + * @Column(type="string", name="default_ra_dec_unit", nullable=false, options={"default" : "degree"})) + */ + protected $defaultRaDecUnit; + /** * @var bool * @@ -178,6 +185,16 @@ class ConeSearchConfig implements \JsonSerializable $this->defaultRadius = $defaultRadius; } + public function getDefaultRaDecUnit() + { + return $this->defaultRaDecUnit; + } + + public function setDefaultRaDecUnit($defaultRaDecUnit) + { + $this->defaultRaDecUnit = $defaultRaDecUnit; + } + public function getPlotEnabled() { return $this->plotEnabled; @@ -200,6 +217,7 @@ class ConeSearchConfig implements \JsonSerializable 'default_ra' => $this->getDefaultRa(), 'default_dec' => $this->getDefaultDec(), 'default_radius' => $this->getDefaultRadius(), + 'default_ra_dec_unit' => $this->getDefaultRaDecUnit(), 'plot_enabled' => $this->getPlotEnabled() ]; } -- GitLab