@@ -3,15 +3,13 @@ import {MetaConst} from '../../data/MetaConst.js';
3
3
import { dispatchTableSearch } from '../../tables/TablesCntlr.js' ;
4
4
import { getMetaEntry } from '../../tables/TableUtil.js' ;
5
5
import { Logger } from '../../util/Logger.js' ;
6
- import { getDataLinkData } from '../../voAnalyzer/VoDataLinkServDef.js' ;
7
6
import { CONE_CHOICE_KEY , POLY_CHOICE_KEY } from '../../visualize/ui/CommonUIKeys.js' ;
7
+ import { getDataLinkData } from '../../voAnalyzer/VoDataLinkServDef.js' ;
8
8
import { CIRCLE , POINT , POLYGON } from './DynamicDef.js' ;
9
9
import {
10
10
convertCircleToPointArea , convertPointAreaToCircle , isCircleSearch , isPointAreaSearch , isPolySearch
11
11
} from './DynamicUISearchPanel.jsx' ;
12
- import { findFieldDefType , makeFieldDefs , makeServiceDescriptorSearchRequest } from './ServiceDefTools.js' ;
13
-
14
-
12
+ import { findFieldDefType , makeServiceDescriptorSearchRequest , sdToFieldDefAry } from './ServiceDefTools.js' ;
15
13
16
14
17
15
/**
@@ -44,8 +42,8 @@ export function analyzeQueries(tbl_id) {
44
42
}
45
43
46
44
47
- export function makeAllSearchRequest ( request , primeSd , concurrentSDAry , primaryFdAry , extraPrimaryMeta ) {
48
- const primeRequest = makeServiceDescriptorSearchRequest ( request , primeSd , extraPrimaryMeta ) ;
45
+ export function makeAllSearchRequest ( request , siaConstraints , primeSd , concurrentSDAry , primaryFdAry , extraPrimaryMeta ) {
46
+ const primeRequest = makeServiceDescriptorSearchRequest ( request , siaConstraints , primeSd , extraPrimaryMeta ) ;
49
47
const concurrentRequestAry = concurrentSDAry
50
48
. map ( ( sd ) => {
51
49
const newR = convertRequestToSecondary ( request , primaryFdAry ?. [ 0 ] , sd . serviceDef , primeSd . standardID ) ;
@@ -59,14 +57,14 @@ export function makeAllSearchRequest(request, primeSd, concurrentSDAry, primaryF
59
57
/**
60
58
* Do all the searches defined
61
59
* @param request
60
+ * @param siaConstraints
62
61
* @param {QueryAnalysis } qAna
63
62
* @param primaryFdAry
64
63
* @param idx
65
64
* @param {object } extraMeta // additional table meta to include with the TableSearch
66
65
* @param {String } selectedConcurrent - space separated name of searches to execute
67
- * @param docRows URLs to documentation
68
66
*/
69
- export function handleSearch ( request , qAna , primaryFdAry , idx , extraMeta = { } , selectedConcurrent ) {
67
+ export function handleSearch ( request , siaConstraints , qAna , primaryFdAry , idx , extraMeta = { } , selectedConcurrent ) {
70
68
const primeSd = qAna . primarySearchDef [ idx ] . serviceDef ;
71
69
const { coverage, bandDesc} = qAna . primarySearchDef [ idx ] ;
72
70
const { cisxUI} = qAna . primarySearchDef [ 0 ] . serviceDef ;
@@ -81,7 +79,7 @@ export function handleSearch(request, qAna, primaryFdAry, idx, extraMeta={}, sel
81
79
extraMeta = { coverage, bandDesc, ...extraMeta } ;
82
80
if ( preferredHips ) extraMeta [ MetaConst . COVERAGE_HIPS ] = preferredHips ;
83
81
84
- const tableRequestAry = makeAllSearchRequest ( request , primeSd , concurrentSDAry , primaryFdAry , extraMeta ) ;
82
+ const tableRequestAry = makeAllSearchRequest ( request , siaConstraints , primeSd , concurrentSDAry , primaryFdAry , extraMeta ) ;
85
83
86
84
tableRequestAry . forEach ( ( dataTableReq ) => {
87
85
Logger ( 'DLGeneratedDropDown' ) . debug ( dataTableReq ) ;
@@ -92,7 +90,7 @@ export function handleSearch(request, qAna, primaryFdAry, idx, extraMeta={}, sel
92
90
}
93
91
94
92
function convertRequestToSecondary ( request , primaryFdAry , secondServDef , primStandardID ) {
95
- const sFdAry = makeFieldDefs ( secondServDef . serDefParams ) ;
93
+ const sFdAry = sdToFieldDefAry ( { serviceDef : secondServDef } ) ;
96
94
if ( isCircleSearch ( primaryFdAry ) || isPointAreaSearch ( sFdAry ) ) {
97
95
return convertCircleToPointArea ( request , primaryFdAry , sFdAry , primStandardID , secondServDef . standardID ) ;
98
96
}
@@ -103,7 +101,7 @@ function convertRequestToSecondary(request, primaryFdAry, secondServDef, primSta
103
101
}
104
102
105
103
function getServiceDefSpacialSupports ( serviceDef ) {
106
- const fdAry = makeFieldDefs ( serviceDef . serDefParams ) ;
104
+ const fdAry = sdToFieldDefAry ( { serviceDef} ) ;
107
105
const retAry = [ ] ;
108
106
if ( isCircleSearch ( fdAry ) ) retAry . push ( CIRCLE ) ;
109
107
if ( isPointAreaSearch ( fdAry ) ) retAry . push ( POINT ) ;
@@ -116,7 +114,7 @@ export function hasSpatialTypes(serviceDef) {
116
114
}
117
115
118
116
export function isSpatialTypeSupported ( serviceDef , spacialType ) {
119
- const fdAry = makeFieldDefs ( serviceDef . serDefParams ) ;
117
+ const fdAry = sdToFieldDefAry ( { serviceDef} ) ;
120
118
if ( spacialType === CONE_CHOICE_KEY ) {
121
119
return isCircleSearch ( fdAry ) || isPointAreaSearch ( fdAry ) || Boolean ( findFieldDefType ( fdAry , POINT ) ) ;
122
120
}
@@ -135,6 +133,28 @@ export function isSpatialTypeSupported(serviceDef, spacialType) {
135
133
*/
136
134
137
135
136
+ /**
137
+ * @param {QueryAnalysis|ServiceDescriptorDef } qAnaOrSd - accept a QueryAnalysis or a ServiceDescriptorDef
138
+ * @return {CISXui|Array } ui parameters or an empty array
139
+ */
140
+ export function getCisxUI ( qAnaOrSd ) {
141
+ if ( ! qAnaOrSd ) return [ ] ;
142
+ if ( qAnaOrSd . primarySearchDef ) { // is QueryAnalysis
143
+ return qAnaOrSd . primarySearchDef [ 0 ] ?. serviceDef ?. cisxUI ?? [ ] ;
144
+ } else if ( qAnaOrSd . accessURL ) { // is ServiceDescriptorDef
145
+ return qAnaOrSd . cisxUI ?? [ ] ;
146
+ }
147
+ return [ ] ;
148
+ }
149
+
150
+ export function getCisxUIValue ( qAnaOrSd , name ) {
151
+ return getCisxUI ( qAnaOrSd ) . find ( ( e ) => e . name === name ) ?. value ;
152
+ }
153
+
154
+ export function getCisxUIUCD ( qAnaOrSd , name ) {
155
+ return getCisxUI ( qAnaOrSd ) . find ( ( e ) => e . name === name ) ?. UCD ;
156
+ }
157
+
138
158
/**
139
159
* @typedef {Object } SearchDefinition
140
160
* This object is a combination of a row and its service descriptor if one exist
@@ -148,4 +168,4 @@ export function isSpatialTypeSupported(serviceDef, spacialType) {
148
168
* @prop {String } semantic - from the semantic column
149
169
* @prop {ServiceDescriptorDef } serviceDef - the service descriptor
150
170
*
151
- */
171
+ */
0 commit comments