From 40594b89cf9bd2a3c0207adcfcc3ed920056d232 Mon Sep 17 00:00:00 2001 From: Cris Rockwell Date: Fri, 6 Aug 2021 17:19:51 -0400 Subject: [PATCH 1/2] started new component for using external content such embedded iframes --- .../themecleanflex/models/ExternalModel.java | 78 +++++++++++++++++++ fragments/external/hatch.js | 5 ++ fragments/external/model.json | 15 ++++ fragments/external/sample.json | 7 ++ fragments/external/template.html | 1 + fragments/external/template.vue | 12 +++ .../components/external/.content.xml | 5 ++ .../components/external/dialog.json | 12 +++ .../components/external/template.vue | 14 ++++ 9 files changed, 149 insertions(+) create mode 100644 core/src/main/java/com/themecleanflex/models/ExternalModel.java create mode 100644 fragments/external/hatch.js create mode 100644 fragments/external/model.json create mode 100644 fragments/external/sample.json create mode 100644 fragments/external/template.html create mode 100644 fragments/external/template.vue create mode 100644 ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml create mode 100644 ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json create mode 100644 ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/template.vue diff --git a/core/src/main/java/com/themecleanflex/models/ExternalModel.java b/core/src/main/java/com/themecleanflex/models/ExternalModel.java new file mode 100644 index 000000000..dc056b0be --- /dev/null +++ b/core/src/main/java/com/themecleanflex/models/ExternalModel.java @@ -0,0 +1,78 @@ +package com.themecleanflex.models; + +import com.peregrine.nodetypes.models.AbstractComponent; +import com.peregrine.nodetypes.models.IComponent; +import com.peregrine.nodetypes.models.Container; +import org.apache.sling.api.resource.Resource; +import org.apache.sling.models.annotations.Default; +import org.apache.sling.models.annotations.DefaultInjectionStrategy; +import org.apache.sling.models.annotations.Exporter; +import org.apache.sling.models.annotations.Model; +import java.util.List; + +import javax.inject.Inject; +import javax.inject.Named; + +/* + //GEN[:DATA + { + "definitions": { + "External": { + "type": "object", + "x-type": "component", + "properties": { + "text": { + "type": "string", + "x-source": "inject", + "x-form-type": "texteditor" + } + } + } + }, + "name": "External", + "componentPath": "themecleanflex/components/external", + "package": "com.themecleanflex.models", + "modelName": "External", + "classNameParent": "AbstractComponent" +} +//GEN] +*/ + +//GEN[:DEF +@Model( + adaptables = Resource.class, + resourceType = "themecleanflex/components/external", + defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL, + adapters = IComponent.class +) +@Exporter( + name = "jackson", + extensions = "json" +) + +//GEN] +public class ExternalModel extends AbstractComponent { + + public ExternalModel(Resource r) { super(r); } + + //GEN[:INJECT + /* {"type":"string","x-source":"inject","x-form-type":"texteditor"} */ + @Inject + private String text; + + +//GEN] + + //GEN[:GETTERS + /* {"type":"string","x-source":"inject","x-form-type":"texteditor"} */ + public String getText() { + return text; + } + + +//GEN] + + //GEN[:CUSTOMGETTERS + //GEN] + +} diff --git a/fragments/external/hatch.js b/fragments/external/hatch.js new file mode 100644 index 000000000..c478156d7 --- /dev/null +++ b/fragments/external/hatch.js @@ -0,0 +1,5 @@ +module.exports = { + convert: function($, f) { + f.bindPath($) + } +} \ No newline at end of file diff --git a/fragments/external/model.json b/fragments/external/model.json new file mode 100644 index 000000000..c80c4cc73 --- /dev/null +++ b/fragments/external/model.json @@ -0,0 +1,15 @@ +{ + "definitions": { + "External": { + "type": "object", + "x-type": "component", + "properties": { + "htmlCode": { + "type": "string", + "x-source": "inject", + "x-form-type": "textarea" + } + } + } + } +} \ No newline at end of file diff --git a/fragments/external/sample.json b/fragments/external/sample.json new file mode 100644 index 000000000..641e4369a --- /dev/null +++ b/fragments/external/sample.json @@ -0,0 +1,7 @@ +{ + "title": "External", + "group": "", + "model": { + "htmlCode": "

code

" + } +} \ No newline at end of file diff --git a/fragments/external/template.html b/fragments/external/template.html new file mode 100644 index 000000000..e44ce188b --- /dev/null +++ b/fragments/external/template.html @@ -0,0 +1 @@ +
external
\ No newline at end of file diff --git a/fragments/external/template.vue b/fragments/external/template.vue new file mode 100644 index 000000000..65a635363 --- /dev/null +++ b/fragments/external/template.vue @@ -0,0 +1,12 @@ + + + + diff --git a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml new file mode 100644 index 000000000..ea9103e1e --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json new file mode 100644 index 000000000..29d852b85 --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json @@ -0,0 +1,12 @@ +{ + "fields":[ + { + "type":"material-textarea", + "rows":50, + "placeholder":"text", + "label":"text", + "model":"text", + "x_form_group": "content" + } + ] +} \ No newline at end of file diff --git a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/template.vue b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/template.vue new file mode 100644 index 000000000..1476f7218 --- /dev/null +++ b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/template.vue @@ -0,0 +1,14 @@ + + + + From 79ff3d14bed3af10ad744ceeab28019b7d211492 Mon Sep 17 00:00:00 2001 From: Cris Rockwell Date: Tue, 10 Aug 2021 11:47:19 -0400 Subject: [PATCH 2/2] updated External title and dialog --- .../apps/themecleanflex/components/external/.content.xml | 3 ++- .../apps/themecleanflex/components/external/dialog.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml index ea9103e1e..a8679c9bd 100644 --- a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml +++ b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/.content.xml @@ -1,5 +1,6 @@ \ No newline at end of file diff --git a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json index 29d852b85..b77d0cbc7 100644 --- a/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json +++ b/ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/external/dialog.json @@ -4,8 +4,9 @@ "type":"material-textarea", "rows":50, "placeholder":"text", - "label":"text", + "label":"HTML Code", "model":"text", + "hint": "Embed external code with caution", "x_form_group": "content" } ]