From feb240684dd86016e263e7caae0f5e3947822d4c Mon Sep 17 00:00:00 2001 From: Muskan Gupta Date: Wed, 8 Jul 2026 13:56:05 +0530 Subject: [PATCH 1/5] Update theme selector states for scribble component --- .../v1/scribble/_cq_styleConfig/.content.xml | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/scribble/v1/scribble/_cq_styleConfig/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/scribble/v1/scribble/_cq_styleConfig/.content.xml index 2834baf05d..949e0f8207 100644 --- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/scribble/v1/scribble/_cq_styleConfig/.content.xml +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/scribble/v1/scribble/_cq_styleConfig/.content.xml @@ -147,6 +147,24 @@ cssSelector=".cmp-adaptiveform-scribble__control-geo" longTitle="Scribble Control Geo" propertySheet="/mnt/overlay/fd/af/components/stylePropertySheet/common"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Date: Thu, 23 Jul 2026 14:31:26 +0530 Subject: [PATCH 2/5] Adding hamburger menu item support to add item styles --- .../v2/container/_cq_themeConfig/.content.xml | 18 ++++++++++++++++++ .../clientlibs/site/js/hamburgerMenu.js | 5 ++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/_cq_themeConfig/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/_cq_themeConfig/.content.xml index c6c16ccf52..db0cedbb0f 100644 --- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/_cq_themeConfig/.content.xml +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/_cq_themeConfig/.content.xml @@ -264,6 +264,24 @@ cssSelector=".cmp-adaptiveform-container__hamburger-menu-link:active"/> + + + + + + Date: Thu, 23 Jul 2026 15:17:37 +0530 Subject: [PATCH 3/5] Adding support to make reachable through theme editor --- .../fileinput/v3/fileinput/_cq_styleConfig/.content.xml | 9 ++++++++- .../fileinput/v4/fileinput/_cq_styleConfig/.content.xml | 9 ++++++++- .../v1/termsandconditions/_cq_styleConfig/.content.xml | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/_cq_styleConfig/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/_cq_styleConfig/.content.xml index 3b8753c173..6dbf230840 100644 --- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/_cq_styleConfig/.content.xml +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/_cq_styleConfig/.content.xml @@ -235,7 +235,14 @@ id="af2_fileinputfilename" cssSelector=".cmp-adaptiveform-fileinput__filename" longTitle="File Input File Name" - propertySheet="/mnt/overlay/fd/af/components/stylePropertySheet/common"/> + propertySheet="/mnt/overlay/fd/af/components/stylePropertySheet/common"> + + + + + propertySheet="/mnt/overlay/fd/af/components/stylePropertySheet/common"> + + + + + Date: Thu, 30 Jul 2026 17:24:23 +0530 Subject: [PATCH 4/5] FORMS-26630: Add show as popup property in guidecontainer model json (#1929) * FORMS-26630: Add show as popup property in guidecontainer model json * FORMS-26630: Update show as popup test * FORMS-26630: Move popup key out from condition --- .../internal/models/v1/form/TermsAndConditionsImpl.java | 2 ++ .../internal/models/v1/form/TermsAndConditionsImplTest.java | 2 ++ .../form/termsandconditions/exporter-termsandconditions.json | 1 + .../exporter-termsandconditionsNoWrapData.json | 3 ++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImpl.java b/bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImpl.java index ba467f2eab..390b2b4107 100644 --- a/bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImpl.java +++ b/bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImpl.java @@ -46,6 +46,7 @@ public class TermsAndConditionsImpl extends PanelImpl implements TermsAndConditions { private static final String CUSTOM_TNC_PROPERTY = "fd:tnc"; + private static final String SHOW_AS_POPUP_PROPERTY = "fd:showAsPopup"; @JsonIgnore @ValueMapValue(injectionStrategy = InjectionStrategy.OPTIONAL, name = ReservedProperties.PN_SHOW_APPROVAL_OPTION) @@ -88,6 +89,7 @@ public boolean isShowAsPopup() { if (resource.getValueMap().containsKey(CUSTOM_TNC_PROPERTY)) { properties.put(CUSTOM_TNC_PROPERTY, true); } + properties.put(SHOW_AS_POPUP_PROPERTY, isShowAsPopup()); return properties; } diff --git a/bundles/af-core/src/test/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImplTest.java b/bundles/af-core/src/test/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImplTest.java index 228abc2260..fcc80af614 100644 --- a/bundles/af-core/src/test/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImplTest.java +++ b/bundles/af-core/src/test/java/com/adobe/cq/forms/core/components/internal/models/v1/form/TermsAndConditionsImplTest.java @@ -105,6 +105,8 @@ public void testCustomFDProperty() { Map props = tnc.getProperties(); Assert.assertTrue(props.containsKey("fd:tnc")); Assert.assertTrue((Boolean) props.get("fd:tnc")); + Assert.assertTrue(props.containsKey("fd:showAsPopup")); + Assert.assertTrue((Boolean) props.get("fd:showAsPopup")); } diff --git a/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditions.json b/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditions.json index 135c166a6d..6f72c3d44e 100644 --- a/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditions.json +++ b/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditions.json @@ -6,6 +6,7 @@ "properties": { "fd:path": "/content/termsandconditions", "fd:tnc": true, + "fd:showAsPopup": true, "customProp": "customPropValue" }, "label": { diff --git a/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditionsNoWrapData.json b/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditionsNoWrapData.json index 17ad1f88c1..41dfbd898a 100644 --- a/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditionsNoWrapData.json +++ b/bundles/af-core/src/test/resources/form/termsandconditions/exporter-termsandconditionsNoWrapData.json @@ -4,7 +4,8 @@ "name": "termsandconditions1694159302516", "properties": { "fd:path": "/content/termsandconditionsNoWrapData", - "fd:tnc": true + "fd:tnc": true, + "fd:showAsPopup": true }, "label": { "value": "Terms And Conditions" From 590591f2b9f09126f1dcb6ff51d6a3f4e83f9d63 Mon Sep 17 00:00:00 2001 From: Mayank Jindal <54476227+mayankjindalmj@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:04:01 +0530 Subject: [PATCH 5/5] FORMS-26813 : Show custom acceptMessage for unsupported file type in File Attachment (#1943) * Fix custom accept error message not shown for unsupported file type in file input The file-input widget's invalidMessage() looked up constraintMessages.invalidMimeType for the unsupported-file-type alert, but invalidMimeType is not an authorable constraint message key - the schema only exposes constraintMessages.accept (backed by the acceptMessage dialog property). As a result the custom message authors configure for file type validation was always ignored in favor of the generic fallback string, while the analogous maxFileSize custom message worked correctly since its key matched. Updated both the webpack source (ui.frontend) and the apps clientlib copy (ui.af.apps) to read constraintMessages.accept, and added a Cypress assertion mirroring the existing maxFileSize custom-message test. * FORMS-26813 : populate sample.afe fixture so the unsupported-type test reaches the mime-type (accept) check instead of the empty-file check Co-Authored-By: Claude Opus 4.8 * FORMS-26813 : use existing sample.svg fixture on fileinput3 for the unsupported-type test Point the accept test at fileinput3 (accept=[application/pdf]) and upload sample.svg (an image, unsupported there) instead of populating a sample.afe placeholder. svg is non-empty so it passes the empty-file check and reaches the mime-type (accept) check. Matches the release/650 backport (#1940). Co-Authored-By: Claude Opus 4.8 --------- Co-authored-by: Farha Haroon Co-authored-by: Mayank Jindal Co-authored-by: Claude Opus 4.8 --- .../samples/fileinput/fileinputv4/basic/.content.xml | 1 + .../v4/fileinput/clientlibs/site/js/fileinputwidget.js | 2 +- ui.frontend/src/view/FormFileInputWidgetBase.js | 2 +- .../specs/fileinput/fileinputv4.runtime.cy.js | 10 ++++++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/fileinput/fileinputv4/basic/.content.xml b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/fileinput/fileinputv4/basic/.content.xml index fd4851bff2..595ea3b5ff 100644 --- a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/fileinput/fileinputv4/basic/.content.xml +++ b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/fileinput/fileinputv4/basic/.content.xml @@ -53,6 +53,7 @@ jcr:title="File Input - 3" sling:resourceType="core/fd/components/form/fileinput/v4/fileinput" accept="[application/pdf]" + acceptMessage="This file type is not supported!" description="This is long description" fieldType="file-input" id="fileinput_tooltip_scenario_test" diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v4/fileinput/clientlibs/site/js/fileinputwidget.js b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v4/fileinput/clientlibs/site/js/fileinputwidget.js index 91708f50f0..a94441a5ec 100644 --- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v4/fileinput/clientlibs/site/js/fileinputwidget.js +++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v4/fileinput/clientlibs/site/js/fileinputwidget.js @@ -191,7 +191,7 @@ if (typeof window.FileInputWidget === 'undefined') { const messages = { [this.invalidFeature.SIZE]: customMessages.maxFileSize || FormView.LanguageUtils.getTranslatedString(this.lang, "FileSizeGreater", [fileNames, this.options.maxFileSize]), [this.invalidFeature.NAME]: customMessages.invalidFileName || FormView.LanguageUtils.getTranslatedString(this.lang, "FileNameInvalid", [fileNames]), - [this.invalidFeature.MIMETYPE]: customMessages.invalidMimeType || FormView.LanguageUtils.getTranslatedString(this.lang, "FileMimeTypeInvalid", [fileNames]), + [this.invalidFeature.MIMETYPE]: customMessages.accept || FormView.LanguageUtils.getTranslatedString(this.lang, "FileMimeTypeInvalid", [fileNames]), [this.invalidFeature.SIZE_ZERO]: customMessages.zeroFileSize || FormView.LanguageUtils.getTranslatedString(this.lang, "FileSizeZero", [fileNames]) }; return messages[invalidFeature]; diff --git a/ui.frontend/src/view/FormFileInputWidgetBase.js b/ui.frontend/src/view/FormFileInputWidgetBase.js index e0a4d52097..1589cd0f82 100644 --- a/ui.frontend/src/view/FormFileInputWidgetBase.js +++ b/ui.frontend/src/view/FormFileInputWidgetBase.js @@ -340,7 +340,7 @@ class FormFileInputWidgetBase { const messages = { [this.invalidFeature.SIZE]: customMessages.maxFileSize || FormView.LanguageUtils.getTranslatedString(this.lang, "FileSizeGreater", [fileName, this.options.maxFileSize]), [this.invalidFeature.NAME]: customMessages.invalidFileName || FormView.LanguageUtils.getTranslatedString(this.lang, "FileNameInvalid", [fileName]), - [this.invalidFeature.MIMETYPE]: customMessages.invalidMimeType || FormView.LanguageUtils.getTranslatedString(this.lang, "FileMimeTypeInvalid", [fileName]) + [this.invalidFeature.MIMETYPE]: customMessages.accept || FormView.LanguageUtils.getTranslatedString(this.lang, "FileMimeTypeInvalid", [fileName]) }; alert(messages[invalidFeature]); diff --git a/ui.tests/test-module/specs/fileinput/fileinputv4.runtime.cy.js b/ui.tests/test-module/specs/fileinput/fileinputv4.runtime.cy.js index 428f17e1c1..35049b7c0a 100644 --- a/ui.tests/test-module/specs/fileinput/fileinputv4.runtime.cy.js +++ b/ui.tests/test-module/specs/fileinput/fileinputv4.runtime.cy.js @@ -272,6 +272,16 @@ describe('Click on button tag (V-4)', () => { }); }); + it('should display a custom error message configured by the user for unsupported file type', () => { + const [id, fieldView] = Object.entries(formContainer._fields)[2]; + const model = formContainer._model.getElement(id); + const fileInput = "input[name='fileinput3']"; + cy.attachFile(fileInput, ['sample.svg']); + cy.on('window:alert', (alertText) => { + expect(alertText).to.equal(model.getState().constraintMessages.accept); + }); + }); + it('file when uploaded again should give actual size', () => { let sampleFileNames = ['sample.svg']; const fileInput = "input[name='fileinput2']";