Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a73e516
allow guideTextDraw element as firstFillableField (#122)
doris-sun Apr 16, 2026
fa31e77
Merge branch 'supreme-court-changes' into dev
heldersrvio Apr 20, 2026
d17874e
Merge pull request #125 from ytgov/petition-changes-1
heldersrvio Apr 20, 2026
e9c43b3
Merge pull request #129 from ytgov/dev
heldersrvio Apr 22, 2026
818b1ef
add replication logic for repeatable panels
doris-sun Apr 29, 2026
7fd7851
add notes, need to change outsideYukonIndividualNames to endorsementDoR
doris-sun Apr 29, 2026
e7f2be5
clean up
doris-sun Apr 29, 2026
bf9e25c
remove .vscode/settings.json from tracking
doris-sun Apr 30, 2026
b0d35c2
Merge pull request #131 from ytgov/replicate-repeatable-panel-info
heldersrvio May 1, 2026
e58dfb7
Merge branch 'main' into helderservio/replicating-repeatable-panels
heldersrvio May 4, 2026
9c1fb0f
Merge pull request #133 from ytgov/helderservio/replicating-repeatabl…
heldersrvio May 5, 2026
1260241
Merge pull request #136 from ytgov/helderservio/numbered-paragraphs
heldersrvio May 8, 2026
fce1f77
Merge pull request #140 from ytgov/helderservio/repeatable-signatures
heldersrvio May 12, 2026
d2fd81a
Merge pull request #141 from ytgov/helderservio/reenable-focus-fillab…
heldersrvio May 13, 2026
21022ff
Merge pull request #145 from ytgov/helderservio/navigation-fixes
heldersrvio May 14, 2026
7b50b9d
Merge pull request #148 from ytgov/helderservio/accordions-keyboard
heldersrvio May 19, 2026
caf38d9
Add function for setting options of choice fields (radio buttons and …
heldersrvio May 22, 2026
7da6e53
Add function for getting the display value of a date field
heldersrvio May 22, 2026
7bc7728
Set focus to scribble field itself after user enters signature
heldersrvio May 22, 2026
a864bcf
Merge pull request #151 from ytgov/heldersrvio/affidavit-administrato…
heldersrvio May 25, 2026
b02fa01
Merge pull request #152 from ytgov/dynamic-signatures
heldersrvio May 29, 2026
7782330
create a new branch from main
samshao Jun 9, 2026
bfb0e91
Merge pull request #156 from ytgov/canada-post-address-new
heldersrvio Jun 9, 2026
fbc0f93
add review-summary component
samshao Jun 11, 2026
d19c85b
remove sectionHeadingTag
samshao Jun 11, 2026
d06db09
bug fixes
samshao Jun 11, 2026
4d03dd7
use flat structure to show result
samshao Jun 16, 2026
b1fa0a2
code clean
samshao Jun 16, 2026
4094c2e
Merge branch 'review-summary' into review-summary-to-dev
samshao Jun 16, 2026
089aecb
remove yukon-forms.typeahead
samshao Jun 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package ca.yukon.aem.core.models;

import com.adobe.cq.export.json.ExporterConstants;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Exporter;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;

import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
* Sling Model for the Review Summary component.
*
* Reads authoring dialog properties and exposes them to the HTL template
* as data attributes consumed by review-summary.js at runtime.
*
* Resource type: yourproject/components/form/review-summary
*/
@Model(
adaptables = SlingHttpServletRequest.class,
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL
)
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME,
extensions = ExporterConstants.SLING_MODEL_EXTENSION)
public class ReviewSummaryModel {

private static final ObjectMapper MAPPER = new ObjectMapper();

/** Comma-separated field names (or Somerset names) to suppress from the review. */
@ValueMapValue
private String[] excludedFields;

/** Whether to render an "Edit" link next to each section heading. Default: true. */
@ValueMapValue
private boolean showEditLinks = true;

private String excludedFieldsJson;

@PostConstruct
protected void init() {
List<String> fields = (excludedFields != null)
? Arrays.asList(excludedFields)
: Collections.emptyList();

try {
excludedFieldsJson = MAPPER.writeValueAsString(fields);
} catch (JsonProcessingException e) {
excludedFieldsJson = "[]";
}
}

public String getExcludedFieldsJson() {
return excludedFieldsJson;
}

public boolean isShowEditLinks() {
return showEditLinks;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root
xmlns:jcr="http://www.jcp.org/jcr/1.0"
xmlns:cq="http://www.day.com/jcr/cq/1.0"
xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
jcr:primaryType="cq:Component"
jcr:title="Review Summary"
jcr:description="Dynamically renders all visible, non-empty form field values for the Review / Finish and Submit step. No per-form configuration required."
componentGroup="Adaptive Form"
sling:resourceSuperType="wcm/foundation/components/responsivegrid" />
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:granite="http://www.adobe.com/jcr/granite/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
jcr:primaryType="nt:unstructured"
jcr:title="\0"
sling:resourceType="cq/gui/components/authoring/dialog">
<content
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/container">
<items jcr:primaryType="nt:unstructured">
<accordion
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/accordion">
<items jcr:primaryType="nt:unstructured">
<address
jcr:primaryType="nt:unstructured"
jcr:title="General"
sling:resourceType="granite/ui/components/coral/foundation/container">
<items jcr:primaryType="nt:unstructured">
<!-- Excluded fields (multifield of textfield) -->
<excludedFields
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/multifield"
fieldLabel="Excluded Field Names"
fieldDescription="Somerset/API names of fields to hide from the review (e.g. hidden tokens, internal IDs)."
name="./excludedFields">
<field
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
name="./excludedFields"
emptyText="e.g. trackingToken" />
</excludedFields>

<!-- Show edit links -->
<showEditLinks
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/checkbox"
text="Show Edit Links"
fieldDescription="Display an Edit link next to each section heading to navigate back."
name="./showEditLinks"
checked="{Boolean}true"
value="{Boolean}true"
uncheckedValue="{Boolean}false" />
</items>
</address>
</items>
</accordion>
</items>
</content>
</jcr:root>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[yukon-forms.components.review-summary]"
/>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#base=css

review-summary.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/*
* review-summary.css
*
* Styles for the flat-list Review Summary component.
*/

/* ── Design tokens ── */
.review-summary {
--rs-label-color: #6b7280;
--rs-value-color: #555;
--rs-panel-color: #1f2937;
--rs-divider-color: #e5e7eb;
--rs-font-size-sm: 0.875rem;
--rs-font-size-base: 1rem;
--rs-font-size-panel: 1rem;
}

/* ── Loading state ── */
.review-summary__loading {
color: var(--rs-label-color);
font-size: var(--rs-font-size-sm);
padding: 1rem 0;
}

/* ── Empty state ── */
.review-summary__empty {
color: var(--rs-label-color);
font-style: italic;
}

/* ── Sections ── */
.rs-panel-block + .rs-panel-block,
.rs-panel-block .rs-panel-block {
margin-top: 1rem;
}

.rs-section-header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 0.75rem;
border-bottom: 1px solid var(--rs-divider-color);
padding-bottom: 0.25rem;
}

.rs-section-title {
margin: 0;
color: var(--rs-panel-color);
font-weight: 600;
font-size: var(--rs-font-size-panel);
}

.rs-page-header {
font-size: 1.25rem;
padding: 10px 10px 10px 0;
font-weight: bold;
color: #000;
border-width: 0 0 4px;
border-style: solid;
border-color: #f1ab00;
}

.rs-page-header .rs-section-title {
font-size: inherit;
}

.rs-panel-block button.rs-page-goto-btn {
display: block;
margin-top: 0.75rem;
font-size: var(--rs-font-size-sm);
text-align: left;
cursor: pointer;
border-color: #00616d;
border-style: solid;
border-radius: 8px;
background: #ffffff;
color: #00616d;
}

.rs-field {
display: block;
padding: 0.375rem 0;
}

.rs-label {
font-size: var(--rs-font-size-base);
width: 100%;
color: black;
}

.rs-value {
color: var(--rs-value-color);
font-size: var(--rs-font-size-sm);
word-break: break-word;
width: 100%;
margin-top: .25rem;
padding-right: .75rem;
padding-top: .5rem;
margin-bottom: .25rem;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#base=js

review-summary.js
Loading