diff --git a/src/components/UI/KnParameterSidebar/KnParameterSidebar.d.ts b/src/components/UI/KnParameterSidebar/KnParameterSidebar.d.ts index cc19e5cc6..771eca814 100644 --- a/src/components/UI/KnParameterSidebar/KnParameterSidebar.d.ts +++ b/src/components/UI/KnParameterSidebar/KnParameterSidebar.d.ts @@ -35,6 +35,8 @@ export interface iParameter { lovDependentParameters?: iParameter[] driverMaxValue?: string | null driverMaxDateValue?: Date | null + driverMinValue?: string | null + driverMinDateValue?: Date | null valueColumnNameMetadata?: string descriptionColumnNameMetadata: string initialValue?: string | number | Date | null diff --git a/src/components/UI/KnParameterSidebar/KnParameterSidebar.vue b/src/components/UI/KnParameterSidebar/KnParameterSidebar.vue index 7aa7c137a..51b823cbc 100644 --- a/src/components/UI/KnParameterSidebar/KnParameterSidebar.vue +++ b/src/components/UI/KnParameterSidebar/KnParameterSidebar.vue @@ -83,6 +83,7 @@ 'p-invalid': parameter.mandatory && parameter.parameterValue && !parameter.parameterValue[0]?.value }" :maxDate="parameter.driverMaxDateValue ?? undefined" + :minDate="parameter.driverMinDateValue ?? undefined" :data-test="'parameter-date-input-' + parameter.id" @change="updateDependency(parameter)" @date-select="updateDependency(parameter)" diff --git a/src/i18n/en-US/messages.json b/src/i18n/en-US/messages.json index 02f527a84..12ee00a6d 100644 --- a/src/i18n/en-US/messages.json +++ b/src/i18n/en-US/messages.json @@ -601,7 +601,6 @@ "generalSettings": { "aiSettingsError": "No dataset available for AI settings. Please add a dataset in the Dataset Editor.", "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.", - "selectDataset": "Select Dataset", "aisettings": "AI Settings", "attribute": "Attribute", "background": { @@ -637,6 +636,7 @@ "xlsxExportFileName": "Dashboard XLSX export file name" }, "profile": "Profile", + "selectDataset": "Select Dataset", "themes": { "applyTheme": "Apply Theme", "dashboardTheme": "Dashboard Theme", @@ -3292,6 +3292,7 @@ "layerProp": "Layer property", "lov": "LOV", "maxValue": "Max value", + "minValue": "Min value", "modality": "Select modality", "roles": "Roles", "selectDefaultFormula": "Select", diff --git a/src/modules/documentExecution/documentDetails/DocumentDetails.d.ts b/src/modules/documentExecution/documentDetails/DocumentDetails.d.ts index df6e76282..8ee52b50d 100644 --- a/src/modules/documentExecution/documentDetails/DocumentDetails.d.ts +++ b/src/modules/documentExecution/documentDetails/DocumentDetails.d.ts @@ -60,6 +60,7 @@ export interface iAnalyticalDriver { modalityValue: any modalityValueForDefault: any modalityValueForMax: any + modalityValueForMin: any name: string selectedLayer: any selectedLayerProp: any @@ -229,24 +230,24 @@ export interface iDocumentType { } export interface iMondrianSchema { - id: number, - currentContentId: number, - name: string, - description: string, - type: string, - modelLocked: boolean, + id: number + currentContentId: number + name: string + description: string + type: string + modelLocked: boolean modelLocker: string | null } export interface iXMLATemplate { - address: string; - parameters: { name: string, value: string }[] + address: string + parameters: { name: string; value: string }[] } export interface iMondrianTemplate { - id: number, - mondrianSchema: string, - mondrianSchemaId: number, - mdxQuery: string, + id: number + mondrianSchema: string + mondrianSchemaId: number + mdxQuery: string mondrianMdxQuery: string -} \ No newline at end of file +} diff --git a/src/modules/documentExecution/main/DocumentExecutionDriverHelpers.ts b/src/modules/documentExecution/main/DocumentExecutionDriverHelpers.ts index 736c20240..411ac8cc6 100644 --- a/src/modules/documentExecution/main/DocumentExecutionDriverHelpers.ts +++ b/src/modules/documentExecution/main/DocumentExecutionDriverHelpers.ts @@ -170,6 +170,10 @@ const formatDateDriver = (el: any, dateFormat: string) => { const validDate = getValidDate('' + el.driverMaxValue, dateFormat) el.driverMaxDateValue = validDate === '' ? null : validDate } + if (el.driverMinValue) { + const validDate = getValidDate('' + el.driverMinValue, dateFormat) + el.driverMinDateValue = validDate === '' ? null : validDate + } } } diff --git a/src/modules/managers/behaviouralModelLineage/BehaviouralModelLineage.d.ts b/src/modules/managers/behaviouralModelLineage/BehaviouralModelLineage.d.ts index 32b9924a9..4ffaab0a5 100644 --- a/src/modules/managers/behaviouralModelLineage/BehaviouralModelLineage.d.ts +++ b/src/modules/managers/behaviouralModelLineage/BehaviouralModelLineage.d.ts @@ -22,6 +22,7 @@ export interface iAnalyticalDriver { modalityValue: any modalityValueForDefault: any modalityValueForMax: any + modalityValueForMin: any name: string selectedLayer: any selectedLayerProp: any diff --git a/src/modules/managers/driversManagement/DriversManagement.d.ts b/src/modules/managers/driversManagement/DriversManagement.d.ts index 5ff226f7d..c9d26e92c 100644 --- a/src/modules/managers/driversManagement/DriversManagement.d.ts +++ b/src/modules/managers/driversManagement/DriversManagement.d.ts @@ -11,6 +11,7 @@ export interface iDriver { modalityValue?: any modalityValueForDefault?: any modalityValueForMax?: any + modalityValueForMin?: any defaultFormula?: string valueSelection?: any selectedLayer?: any diff --git a/src/modules/managers/driversManagement/DriversManagementDetail.vue b/src/modules/managers/driversManagement/DriversManagementDetail.vue index 5a2d1fc66..354f7c663 100644 --- a/src/modules/managers/driversManagement/DriversManagementDetail.vue +++ b/src/modules/managers/driversManagement/DriversManagementDetail.vue @@ -147,12 +147,16 @@ export default defineComponent({ if (mode.idLovForMax === null) { mode.idLovForMax = -1 } + if (mode.idLovForMin === null) { + mode.idLovForMin = -1 + } const obj = JSON.parse(JSON.stringify(mode)) delete obj.numberOfErrors delete obj.defLov delete obj.typeLov delete obj.maxLov + delete obj.minLov delete obj.edited this.modesToSave.push(obj) }) diff --git a/src/modules/managers/driversManagement/useModes/DriversManagementUseMode.vue b/src/modules/managers/driversManagement/useModes/DriversManagementUseMode.vue index 06e269808..c2ba3bcd1 100644 --- a/src/modules/managers/driversManagement/useModes/DriversManagementUseMode.vue +++ b/src/modules/managers/driversManagement/useModes/DriversManagementUseMode.vue @@ -112,7 +112,7 @@ export default defineComponent({ if (event.value) { this.selectedUseMode = event.value } else { - this.selectedUseMode = { useID: -1, idLov: null, defaultFormula: null, idLovForMax: null, idLovForDefault: null, associatedRoles: [], associatedChecks: [] } + this.selectedUseMode = { useID: -1, idLov: null, defaultFormula: null, idLovForMax: null, idLovForMin: null, idLovForDefault: null, associatedRoles: [], associatedChecks: [] } this.modes.push(this.selectedUseMode) } this.disabledRoles = [] diff --git a/src/modules/managers/driversManagement/useModes/DriversManagementUseModeDetailsCard.vue b/src/modules/managers/driversManagement/useModes/DriversManagementUseModeDetailsCard.vue index bc62843f2..d9b519431 100644 --- a/src/modules/managers/driversManagement/useModes/DriversManagementUseModeDetailsCard.vue +++ b/src/modules/managers/driversManagement/useModes/DriversManagementUseModeDetailsCard.vue @@ -69,6 +69,17 @@ + + +
+ + + + +
+
@@ -119,6 +130,7 @@ export default defineComponent({ selectedType: null, selectedDefault: null as any, selectedMax: null as any, + selectedMin: null as any, lov: null as any, lovType: null as any, dialogVisiable: false, @@ -142,6 +154,9 @@ export default defineComponent({ }, required_lov_for_max: () => { return this.selectedMax != 'lov' || this.mode.maxLov.name != null + }, + required_lov_for_min: () => { + return this.selectedMin != 'lov' || this.mode.minLov.name != null } } return { @@ -196,6 +211,10 @@ export default defineComponent({ this.lov = this.mode.maxLov this.lovType = 'max' break + case 'min': + this.lov = this.mode.minLov + this.lovType = 'min' + break } }, handleDropdowns() { @@ -213,6 +232,12 @@ export default defineComponent({ } else { this.selectedMax = 'none' } + + if (this.mode.idLovForMin != null) { + this.selectedMin = 'lov' + } else { + this.selectedMin = 'none' + } }, setType() { this.selectedDefault = 'none' @@ -256,6 +281,13 @@ export default defineComponent({ } this.modeChanged() }, + setMin() { + if (this.selectedMin == 'none') { + this.mode.idLovForMin = null + this.mode.minLov = { name: null } + } + this.modeChanged() + }, setDirty() { this.$emit('touched') }, @@ -278,6 +310,10 @@ export default defineComponent({ this.mode.maxLov = lov this.mode.idLovForMax = lov.id break + case 'min': + this.mode.minLov = lov + this.mode.idLovForMin = lov.id + break } this.modeChanged() }, @@ -291,6 +327,9 @@ export default defineComponent({ if (this.mode.idLovForMax) { this.mode.maxLov = this.lovs?.filter((lov: any) => lov.id == this.mode.idLovForMax)[0] } else this.mode.maxLov = { name: null } + if (this.mode.idLovForMin) { + this.mode.minLov = this.lovs?.filter((lov: any) => lov.id == this.mode.idLovForMin)[0] + } else this.mode.minLov = { name: null } } } }) diff --git a/src/modules/managers/driversManagement/useModes/UseModeValidationDescriptor.json b/src/modules/managers/driversManagement/useModes/UseModeValidationDescriptor.json index 078e54475..edf35ed4e 100644 --- a/src/modules/managers/driversManagement/useModes/UseModeValidationDescriptor.json +++ b/src/modules/managers/driversManagement/useModes/UseModeValidationDescriptor.json @@ -76,6 +76,14 @@ "key": "required_lov_for_max" } ] + }, + { + "fieldName": "minLov", + "validators": [ + { + "key": "required_lov_for_min" + } + ] } ] } diff --git a/src/modules/managers/driversManagement/useModes/UseModesDescriptor.json b/src/modules/managers/driversManagement/useModes/UseModesDescriptor.json index facd432ed..ef273d0e0 100644 --- a/src/modules/managers/driversManagement/useModes/UseModesDescriptor.json +++ b/src/modules/managers/driversManagement/useModes/UseModesDescriptor.json @@ -46,11 +46,7 @@ "width": "70vw" } }, - "globalFilterFields": [ - "label", - "name", - "description" - ], + "globalFilterFields": ["label", "name", "description"], "maxValues": [ { "label": "none", @@ -61,6 +57,16 @@ "name": "Use a LOV" } ], + "minValues": [ + { + "label": "none", + "name": "None" + }, + { + "label": "lov", + "name": "Use a LOV" + } + ], "table": { "column": { "style": { @@ -85,4 +91,4 @@ "valueSelection": "man_in" } ] -} \ No newline at end of file +}