Skip to content

Commit d4a7bfd

Browse files
committed
Merge branch 'master' into feature/dashboard-editor-rework
2 parents a41ceaa + 6abadec commit d4a7bfd

8 files changed

Lines changed: 256 additions & 93 deletions

File tree

src/i18n/en-US/messages.json

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -2797,62 +2797,12 @@
27972797
},
27982798
"locale": {
27992799
"dateFormat": "mm/dd/yy",
2800-
"dayNames": [
2801-
"Sunday",
2802-
"Monday",
2803-
"Tuesday",
2804-
"Wednesday",
2805-
"Thursday",
2806-
"Friday",
2807-
"Saturday"
2808-
],
2809-
"dayNamesMin": [
2810-
"Su",
2811-
"Mo",
2812-
"Tu",
2813-
"We",
2814-
"Th",
2815-
"Fr",
2816-
"Sa"
2817-
],
2818-
"dayNamesShort": [
2819-
"Sun",
2820-
"Mon",
2821-
"Tue",
2822-
"Wed",
2823-
"Thu",
2824-
"Fri",
2825-
"Sat"
2826-
],
2800+
"dayNames": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
2801+
"dayNamesMin": ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
2802+
"dayNamesShort": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
28272803
"firstDayOfWeek": 0,
2828-
"monthNames": [
2829-
"January",
2830-
"February",
2831-
"March",
2832-
"April",
2833-
"May",
2834-
"June",
2835-
"July",
2836-
"August",
2837-
"September",
2838-
"October",
2839-
"November",
2840-
"December"
2841-
],
2842-
"monthNamesShort": [
2843-
"Jan",
2844-
"Feb",
2845-
"Mar",
2846-
"Apr",
2847-
"May",
2848-
"Jun",
2849-
"Jul",
2850-
"Aug",
2851-
"Sep",
2852-
"Oct",
2853-
"Nov",
2854-
"Dec"
2855-
],
2804+
"monthNames": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
2805+
"monthNamesShort": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
28562806
"today": "Today",
28572807
"weekHeader": "Wk"
28582808
},
@@ -4784,4 +4734,4 @@
47844734
"title": "Schedulations"
47854735
}
47864736
}
4787-
}
4737+
}

src/modules/documentExecution/dashboard/widget/WidgetEditor/WidgetEditorSettingsTab/MapWidget/configuration/MapControlPanelSettings.vue

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@
2727
<div class="kn-action-handle kn-action-handle-disabled"></div>
2828
</div>
2929
</div>
30+
31+
<div v-if="widgetModel?.settings?.visualizations?.length" class="p-col-12">
32+
<label class="kn-material-input-label">{{ $t('common.fields') }}</label>
33+
34+
<div v-for="visualization in widgetModel.settings.visualizations" :key="visualization.id ?? visualization.label" class="p-grid p-ai-center p-col-12 p-px-0 p-mt-2 control-panel-visualization-row">
35+
<div class="p-col-12 p-lg-3 control-panel-visualization-label">{{ visualization.label }}</div>
36+
<div class="p-col-12 p-lg-9">
37+
<MultiSelect class="kn-width-full" :model-value="getSelectedFilterColumnNames(visualization)" :options="getAvailableFilterColumns(visualization)" option-label="alias" option-value="name" display="chip" :placeholder="$t('common.fields')" @update:model-value="(value) => onFilterColumnsChanged(value, visualization)" />
38+
</div>
39+
</div>
40+
</div>
3041
</div>
3142
</div>
3243
</template>
@@ -35,7 +46,6 @@
3546
import { IWidget } from '@/modules/documentExecution/dashboard/Dashboard'
3647
import { IMapNormalisedInteractionColumn, IMapWidgetControlPanel, IMapWidgetLayer, IMapWidgetVisualizationType } from '@/modules/documentExecution/dashboard/interfaces/mapWidget/DashboardMapWidget'
3748
import { defineComponent, PropType } from 'vue'
38-
3949
import { mapActions } from 'pinia'
4050
import appStore from '@/App.store'
4151
import { getPropertiesByLayerLabel } from '../../../../MapWidget/MapWidgetDataProxy'

src/modules/documentExecution/dashboard/widget/WidgetEditor/WidgetEditorSettingsTab/MapWidget/dialog/MapDialogSettings.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,14 @@ export default defineComponent({
280280
border-radius: 4px;
281281
overflow: hidden;
282282
}
283+
284+
.map-info-column-row {
285+
padding: 0.5rem 0;
286+
border-top: 1px solid #e5e7eb;
287+
}
288+
289+
.map-info-column-label {
290+
font-weight: 600;
291+
overflow-wrap: anywhere;
292+
}
283293
</style>

src/modules/documentExecution/dashboard/widget/WidgetEditor/WidgetEditorSettingsTab/MapWidget/tooltips/MapTooltips.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,4 +261,14 @@ export default defineComponent({
261261
border-radius: 4px;
262262
overflow: hidden;
263263
}
264+
265+
.map-info-column-row {
266+
padding: 0.5rem 0;
267+
border-top: 1px solid #e5e7eb;
268+
}
269+
270+
.map-info-column-label {
271+
font-weight: 600;
272+
overflow-wrap: anywhere;
273+
}
264274
</style>

src/modules/documentExecution/documentDetails/dialogs/dossierDesignerDialog/DocumentDetailDossierDesignerDialog.vue

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ import Divider from 'primevue/divider'
151151
import DashboardControllerSaveDialog from '@/modules/documentExecution/dashboard/DashboardControllerSaveDialog.vue'
152152
import { formatDateWithLocale } from '@/helpers/commons/localeHelper'
153153
import { v4 as uuidv4 } from 'uuid'
154-
import { getDossierDriverParameterUrlName, mergeDossierPlaceholderParameters, normalizeDossierTemplate, serializeDossierDriver } from '@/modules/documentExecution/documentDetails/dialogs/dossierDesignerDialog/DossierDesignerDriversHelper'
154+
import { getDossierDriverParameterUrlName, mergeDossierPlaceholderParameters, normalizeDossierTemplate, serializeDossierDriver, serializeInheritDriverForPersist } from '@/modules/documentExecution/documentDetails/dialogs/dossierDesignerDialog/DossierDesignerDriversHelper'
155155
156156
export default defineComponent({
157157
name: 'document-detail-dossier-designer-dialog',
@@ -674,6 +674,7 @@ export default defineComponent({
674674
.finally(() => this.setLoading(false))
675675
},
676676
async handleDrivers() {
677+
this.inheritedDrivers = false
677678
const objToSave = normalizeDossierTemplate(this.activeTemplate)
678679
objToSave.placeholders = objToSave.placeholders.filter((x) => x.label)
679680
const tempDrivers = objToSave.placeholders.filter((x) => x.label)
@@ -713,41 +714,46 @@ export default defineComponent({
713714
dossierUrlName: existing[0].parameterUrlName
714715
}
715716
} else {
716-
const newDriver = { ...placeholder.parameters[j] }
717-
newDriver.parameterUrlName = parameterUrlName
718-
newDriver.modifiable = 0
719-
delete newDriver.id
720-
newDriver.biObjectID = this.getDocument()?.id
721-
delete newDriver.type
722-
newDriver.prog = this.document?.drivers?.length ?? 1
717+
const newDriver = serializeInheritDriverForPersist(placeholder.parameters[j], this.getDocument()?.id, this.document?.drivers?.length ?? 1)
718+
if (!newDriver || !newDriver.biObjectID || !newDriver.parameterUrlName) {
719+
this.setError({
720+
title: this.$t('common.error.generic'),
721+
msg: this.$t('documentExecution.dossier.designerDialog.driverNotHandled', {
722+
driverName: placeholder.parameters[j].label,
723+
placeholderName: placeholder.imageName
724+
})
725+
})
726+
return
727+
}
723728
724-
this.setLoading(true)
725-
await this.$http
726-
.post(import.meta.env.VITE_KNOWAGE_CONTEXT + `/restful-services/2.0/documentdetails/${newDriver.biObjectID}/drivers`, newDriver, {
729+
try {
730+
this.setLoading(true)
731+
await this.$http.post(import.meta.env.VITE_KNOWAGE_CONTEXT + `/restful-services/2.0/documentdetails/${newDriver.biObjectID}/drivers`, newDriver, {
727732
headers: {
728733
'X-Disable-Errors': 'true'
729734
}
730735
})
731-
.then(() => {
732-
placeholder.parameters[j] = {
733-
urlName: newDriver.parameterUrlName,
734-
type: 'dynamic',
735-
dossierUrlName: newDriver.dossierUrlName
736-
}
736+
737+
placeholder.parameters[j] = {
738+
urlName: newDriver.parameterUrlName,
739+
type: 'dynamic',
740+
dossierUrlName: newDriver.parameterUrlName
741+
}
742+
} catch {
743+
this.setError({
744+
title: this.$t('common.error.generic'),
745+
msg: this.$t('documentExecution.documentDetails.drivers.persistError')
737746
})
738-
.catch(() =>
739-
this.setError({
740-
title: this.$t('common.error.generic'),
741-
msg: this.$t('documentExecution.documentDetails.drivers.persistError')
742-
})
743-
)
744-
.finally(() => this.setLoading(false))
747+
return
748+
} finally {
749+
this.setLoading(false)
750+
}
745751
746752
this.setLoading(true)
747753
await this.$http
748754
.get(import.meta.env.VITE_KNOWAGE_CONTEXT + `/restful-services/2.0/documentdetails/${newDriver.biObjectID}/drivers`)
749755
.then((response: AxiosResponse<any>) => {
750-
if (this.document && this.document.drivers) this.document.drivers = response.data
756+
if (this.document) this.document.drivers = response.data
751757
})
752758
.finally(() => this.setLoading(false))
753759
}

src/modules/documentExecution/documentDetails/dialogs/dossierDesignerDialog/DossierDesignerDriversHelper.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,34 @@ export function serializeDossierDriver(driver: iDossierDriver): iDossierDriver |
5454
}
5555
}
5656

57+
export function serializeInheritDriverForPersist(driver: iDossierDriver, biObjectID?: number, prog?: number): Partial<iDriver> | null {
58+
const normalizedDriver = normalizeDossierDriver(driver)
59+
const parameterUrlName = getDossierDriverParameterUrlName(normalizedDriver)
60+
if (!parameterUrlName) return null
61+
62+
const {
63+
id: _id,
64+
type: _type,
65+
urlName: _urlName,
66+
dossierUrlName: _dossierUrlName,
67+
urlNameDescription: _urlNameDescription,
68+
value: _value,
69+
inherit: _inherit,
70+
newDriver: _newDriver,
71+
numberOfErrors: _numberOfErrors,
72+
isChanged: _isChanged,
73+
...persistableDriver
74+
} = normalizedDriver
75+
76+
return {
77+
...persistableDriver,
78+
parameterUrlName,
79+
biObjectID,
80+
modifiable: 0,
81+
prog
82+
}
83+
}
84+
5785
export function mergeDossierPlaceholderParameters(existingParameters: iDossierDriver[] = [], availableDrivers: iDriver[] = []): iDossierDriver[] {
5886
const normalizedExistingParameters = existingParameters.map((driver) => normalizeDossierDriver(driver))
5987
const mergedParameters = normalizedExistingParameters.map((driver) => {

src/modules/documentExecution/documentDetails/dialogs/dossierDesignerDialog/__tests__/DossierDesignerDriversHelper.spec.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, expect, it } from 'vitest'
22
import type { iDriver } from '@/modules/documentExecution/documentDetails/DocumentDetails'
33
import type { iDossierDriver } from '../DossierTemplate'
4-
import { mergeDossierPlaceholderParameters, serializeDossierDriver } from '../DossierDesignerDriversHelper'
4+
import { mergeDossierPlaceholderParameters, serializeDossierDriver, serializeInheritDriverForPersist } from '../DossierDesignerDriversHelper'
55

66
describe('mergeDossierPlaceholderParameters', () => {
77
it('preserves saved static values while backfilling parameterUrlName from driver metadata', () => {
@@ -43,3 +43,33 @@ describe('serializeDossierDriver', () => {
4343
})
4444
})
4545
})
46+
47+
describe('serializeInheritDriverForPersist', () => {
48+
it('removes dossier-only fields and keeps the document driver payload expected by documentdetails drivers', () => {
49+
const serialized = serializeInheritDriverForPersist({
50+
id: 9,
51+
label: 'Family',
52+
parameterUrlName: 'Family',
53+
parID: 10,
54+
modifiable: 1,
55+
prog: 3,
56+
parameter: { id: 7, type: 'STRING' } as any,
57+
type: 'inherit',
58+
urlName: 'Family',
59+
dossierUrlName: 'DOSSIER_FAMILY',
60+
urlNameDescription: 'Family description',
61+
value: 'Food',
62+
inherit: true
63+
}, 12, 4)
64+
65+
expect(serialized).toEqual({
66+
label: 'Family',
67+
parameterUrlName: 'Family',
68+
parID: 10,
69+
modifiable: 0,
70+
prog: 4,
71+
parameter: { id: 7, type: 'STRING' },
72+
biObjectID: 12
73+
})
74+
})
75+
})

0 commit comments

Comments
 (0)