Skip to content

Commit 3a54d43

Browse files
committed
KNOWAGE-9909
- add min date to analytical drivers lovs - apply min/max date to parameter sidebar
1 parent 41a9cac commit 3a54d43

12 files changed

Lines changed: 89 additions & 21 deletions

File tree

src/components/UI/KnParameterSidebar/KnParameterSidebar.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ export interface iParameter {
3535
lovDependentParameters?: iParameter[]
3636
driverMaxValue?: string | null
3737
driverMaxDateValue?: Date | null
38+
driverMinValue?: string | null
39+
driverMinDateValue?: Date | null
3840
valueColumnNameMetadata?: string
3941
descriptionColumnNameMetadata: string
4042
initialValue?: string | number | Date | null

src/components/UI/KnParameterSidebar/KnParameterSidebar.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
'p-invalid': parameter.mandatory && parameter.parameterValue && !parameter.parameterValue[0]?.value
8484
}"
8585
:maxDate="parameter.driverMaxDateValue ?? undefined"
86+
:minDate="parameter.driverMinDateValue ?? undefined"
8687
:data-test="'parameter-date-input-' + parameter.id"
8788
@change="updateDependency(parameter)"
8889
@date-select="updateDependency(parameter)"

src/i18n/en-US/messages.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,6 @@
601601
"generalSettings": {
602602
"aiSettingsError": "No dataset available for AI settings. Please add a dataset in the Dataset Editor.",
603603
"aiSettingsHint": "These settings are used by the AI algorithm to understand the data and provide better results. You can set the desired dataset to be investigated and columns specifid informations.",
604-
"selectDataset": "Select Dataset",
605604
"aisettings": "AI Settings",
606605
"attribute": "Attribute",
607606
"background": {
@@ -637,6 +636,7 @@
637636
"xlsxExportFileName": "Dashboard XLSX export file name"
638637
},
639638
"profile": "Profile",
639+
"selectDataset": "Select Dataset",
640640
"themes": {
641641
"applyTheme": "Apply Theme",
642642
"dashboardTheme": "Dashboard Theme",
@@ -3292,6 +3292,7 @@
32923292
"layerProp": "Layer property",
32933293
"lov": "LOV",
32943294
"maxValue": "Max value",
3295+
"minValue": "Min value",
32953296
"modality": "Select modality",
32963297
"roles": "Roles",
32973298
"selectDefaultFormula": "Select",

src/modules/documentExecution/documentDetails/DocumentDetails.d.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export interface iAnalyticalDriver {
6060
modalityValue: any
6161
modalityValueForDefault: any
6262
modalityValueForMax: any
63+
modalityValueForMin: any
6364
name: string
6465
selectedLayer: any
6566
selectedLayerProp: any
@@ -229,24 +230,24 @@ export interface iDocumentType {
229230
}
230231

231232
export interface iMondrianSchema {
232-
id: number,
233-
currentContentId: number,
234-
name: string,
235-
description: string,
236-
type: string,
237-
modelLocked: boolean,
233+
id: number
234+
currentContentId: number
235+
name: string
236+
description: string
237+
type: string
238+
modelLocked: boolean
238239
modelLocker: string | null
239240
}
240241

241242
export interface iXMLATemplate {
242-
address: string;
243-
parameters: { name: string, value: string }[]
243+
address: string
244+
parameters: { name: string; value: string }[]
244245
}
245246

246247
export interface iMondrianTemplate {
247-
id: number,
248-
mondrianSchema: string,
249-
mondrianSchemaId: number,
250-
mdxQuery: string,
248+
id: number
249+
mondrianSchema: string
250+
mondrianSchemaId: number
251+
mdxQuery: string
251252
mondrianMdxQuery: string
252-
}
253+
}

src/modules/documentExecution/main/DocumentExecutionDriverHelpers.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,10 @@ const formatDateDriver = (el: any, dateFormat: string) => {
170170
const validDate = getValidDate('' + el.driverMaxValue, dateFormat)
171171
el.driverMaxDateValue = validDate === '' ? null : validDate
172172
}
173+
if (el.driverMinValue) {
174+
const validDate = getValidDate('' + el.driverMinValue, dateFormat)
175+
el.driverMinDateValue = validDate === '' ? null : validDate
176+
}
173177
}
174178
}
175179

src/modules/managers/behaviouralModelLineage/BehaviouralModelLineage.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export interface iAnalyticalDriver {
2222
modalityValue: any
2323
modalityValueForDefault: any
2424
modalityValueForMax: any
25+
modalityValueForMin: any
2526
name: string
2627
selectedLayer: any
2728
selectedLayerProp: any

src/modules/managers/driversManagement/DriversManagement.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export interface iDriver {
1111
modalityValue?: any
1212
modalityValueForDefault?: any
1313
modalityValueForMax?: any
14+
modalityValueForMin?: any
1415
defaultFormula?: string
1516
valueSelection?: any
1617
selectedLayer?: any

src/modules/managers/driversManagement/DriversManagementDetail.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,12 +147,16 @@ export default defineComponent({
147147
if (mode.idLovForMax === null) {
148148
mode.idLovForMax = -1
149149
}
150+
if (mode.idLovForMin === null) {
151+
mode.idLovForMin = -1
152+
}
150153
151154
const obj = JSON.parse(JSON.stringify(mode))
152155
delete obj.numberOfErrors
153156
delete obj.defLov
154157
delete obj.typeLov
155158
delete obj.maxLov
159+
delete obj.minLov
156160
delete obj.edited
157161
this.modesToSave.push(obj)
158162
})

src/modules/managers/driversManagement/useModes/DriversManagementUseMode.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export default defineComponent({
112112
if (event.value) {
113113
this.selectedUseMode = event.value
114114
} else {
115-
this.selectedUseMode = { useID: -1, idLov: null, defaultFormula: null, idLovForMax: null, idLovForDefault: null, associatedRoles: [], associatedChecks: [] }
115+
this.selectedUseMode = { useID: -1, idLov: null, defaultFormula: null, idLovForMax: null, idLovForMin: null, idLovForDefault: null, associatedRoles: [], associatedChecks: [] }
116116
this.modes.push(this.selectedUseMode)
117117
}
118118
this.disabledRoles = []

src/modules/managers/driversManagement/useModes/DriversManagementUseModeDetailsCard.vue

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,17 @@
6969
</q-input>
7070
</div>
7171
</q-expansion-item>
72+
73+
<q-expansion-item v-if="isDate" default-opened dense icon="lock_clock" :label="$t('managers.driversManagement.useModes.minValue')" class="col-12 q-ma-none q-pa-none bg-grey-2 q-mt-sm">
74+
<div class="row q-col-gutter-sm q-pa-sm">
75+
<q-select dense class="col-4" filled v-model="selectedMin" :options="useModeDescriptor.minValues" option-label="name" option-value="label" emit-value map-options @update:model-value="setMin" :label="$t('managers.driversManagement.useModes.minValue')" autocomplete="" />
76+
<q-input v-if="selectedMin === 'lov'" dense class="col-8" filled v-model="mode.minLov.name" :error="v$.mode.minLov.$invalid && v$.mode.minLov.$dirty" :error-message="v$.mode.minLov.$invalid && v$.mode.minLov.$dirty ? $t('common.validation.required', { fieldName: $t('managers.driversManagement.useModes.lov') }) : null" disable :label="$t('managers.driversManagement.useModes.lov') + '*'" autofocus>
77+
<template v-slot:after>
78+
<q-icon name="search" class="cursor-pointer" @click="showLovsDialog('min')" />
79+
</template>
80+
</q-input>
81+
</div>
82+
</q-expansion-item>
7283
</form>
7384
<LovsDialog :dialog-visible="dialogVisiable" :lovs="lovs" :selected-lov-prop="lov" @close="dialogVisiable = false" @apply="applyLov"></LovsDialog>
7485
</q-card-section>
@@ -119,6 +130,7 @@ export default defineComponent({
119130
selectedType: null,
120131
selectedDefault: null as any,
121132
selectedMax: null as any,
133+
selectedMin: null as any,
122134
lov: null as any,
123135
lovType: null as any,
124136
dialogVisiable: false,
@@ -142,6 +154,9 @@ export default defineComponent({
142154
},
143155
required_lov_for_max: () => {
144156
return this.selectedMax != 'lov' || this.mode.maxLov.name != null
157+
},
158+
required_lov_for_min: () => {
159+
return this.selectedMin != 'lov' || this.mode.minLov.name != null
145160
}
146161
}
147162
return {
@@ -196,6 +211,10 @@ export default defineComponent({
196211
this.lov = this.mode.maxLov
197212
this.lovType = 'max'
198213
break
214+
case 'min':
215+
this.lov = this.mode.minLov
216+
this.lovType = 'min'
217+
break
199218
}
200219
},
201220
handleDropdowns() {
@@ -213,6 +232,12 @@ export default defineComponent({
213232
} else {
214233
this.selectedMax = 'none'
215234
}
235+
236+
if (this.mode.idLovForMin != null) {
237+
this.selectedMin = 'lov'
238+
} else {
239+
this.selectedMin = 'none'
240+
}
216241
},
217242
setType() {
218243
this.selectedDefault = 'none'
@@ -256,6 +281,13 @@ export default defineComponent({
256281
}
257282
this.modeChanged()
258283
},
284+
setMin() {
285+
if (this.selectedMin == 'none') {
286+
this.mode.idLovForMin = null
287+
this.mode.minLov = { name: null }
288+
}
289+
this.modeChanged()
290+
},
259291
setDirty() {
260292
this.$emit('touched')
261293
},
@@ -278,6 +310,10 @@ export default defineComponent({
278310
this.mode.maxLov = lov
279311
this.mode.idLovForMax = lov.id
280312
break
313+
case 'min':
314+
this.mode.minLov = lov
315+
this.mode.idLovForMin = lov.id
316+
break
281317
}
282318
this.modeChanged()
283319
},
@@ -291,6 +327,9 @@ export default defineComponent({
291327
if (this.mode.idLovForMax) {
292328
this.mode.maxLov = this.lovs?.filter((lov: any) => lov.id == this.mode.idLovForMax)[0]
293329
} else this.mode.maxLov = { name: null }
330+
if (this.mode.idLovForMin) {
331+
this.mode.minLov = this.lovs?.filter((lov: any) => lov.id == this.mode.idLovForMin)[0]
332+
} else this.mode.minLov = { name: null }
294333
}
295334
}
296335
})

0 commit comments

Comments
 (0)