You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(harmonia): a view: calendar child renders as an embedded calendar on the DOCUMENT surface too - power and personal (#6364)
The embedded calendar for a composition child (intent view: calendar) existed
on the master layout's detail panels and the my-form child panels, but a
DOCUMENT master rendered the same child as a plain table in its secondary
panels - and the personal document did not render non-item children at all.
The concrete case: a day-allocation calendar on a timesheet document.
- perspective/document: the secondary detail panels honor def.calendar exactly
like the master layout (embedded x-h-calendar; event-click edits the child,
empty-day click creates one with the document FK + clicked date preset) -
the shared detailPanel component already carried the whole behavior.
- my-document: renders the non-item scope-inheriting children below the totals
(the SAME panels the my-form renders - calendar for a view: calendar child,
table otherwise), reading through the children's scoped My controllers.
- embedded event titles naming a RELATION resolve to the referenced label
(the raw-FK-id class, completing the standalone-calendar fix): detailPanel
reuses its existing column lookups and re-renders events when maps arrive;
the my-form/my-document child calendars fetch the title lookup emitted into
the child config (parameterUtils), raw value as the fail-soft fallback.
IntentEmissionCoverageIT: the fixture gains TicketVisit (view: calendar
composition child of the personal chat Document, relation title) and asserts
the power document's calendar branch, the detail registration's calendar +
lookup config, and the personal document's children loading, titleLookup and
panel markup. Ran green locally (1/1).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: components/resources/application-core/src/main/resources/META-INF/dirigible/application-core/shell/js/components/detailPanel.js
+14-2Lines changed: 14 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -67,6 +67,9 @@ function detailPanel(def, masterId) {
67
67
}
68
68
}
69
69
this.lookups=all;
70
+
// A calendar def re-renders its events once the maps arrive - a title naming a relation
71
+
// column resolves to the referenced label instead of the raw FK id.
Copy file name to clipboardExpand all lines: components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-document-page.js.template
Copy file name to clipboardExpand all lines: components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-document-view.html.template
+62Lines changed: 62 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -184,6 +184,68 @@
184
184
</div>
185
185
#end
186
186
187
+
#set($docChildren = [])
188
+
#if($myChildren)
189
+
#foreach($child in $myChildren)
190
+
#if($child.name != "$!{documentItemsEntity}")
191
+
#set($ignore = $docChildren.add($child))
192
+
#end
193
+
#end
194
+
#end
195
+
#if($docChildren.size() > 0)
196
+
197
+
<!-- Non-item children inheriting the personal scope: an embedded calendar (view: calendar on
198
+
the child) or a table - the SAME panels the my-form renders (e.g. the day-allocation
199
+
calendar on a timesheet document). Only once the document exists. -->
200
+
<template x-if="mode === 'edit'">
201
+
<div class="vbox gap-4" style="max-width: 900px">
202
+
<template x-for="child in children" :key="child.name">
Copy file name to clipboardExpand all lines: components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-form-page.js.template
Copy file name to clipboardExpand all lines: components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/perspective/document/document-view.html.template
Copy file name to clipboardExpand all lines: components/ui/service-generate/src/main/resources/META-INF/dirigible/service-generate/template/parameterUtils.js
+8Lines changed: 8 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -311,6 +311,14 @@ export function process(model, parameters) {
311
311
start: c.calendarStartProperty||null,
312
312
end: c.calendarEndProperty||null,
313
313
title: c.calendarTitleProperty||null,
314
+
// a title naming a RELATION resolves to its referenced label on the panel
Copy file name to clipboardExpand all lines: tests/tests-integrations/src/main/java/org/eclipse/dirigible/integration/tests/api/IntentEmissionCoverageIT.java
+30Lines changed: 30 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -216,6 +216,19 @@ class IntentEmissionCoverageIT extends IntegrationTest {
0 commit comments