diff --git a/all/pom.xml b/all/pom.xml
index a2b9ce708..5f04e4e20 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -7,7 +7,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-all
diff --git a/core/pom.xml b/core/pom.xml
index 68ced1e82..1403c7bc6 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -7,7 +7,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-core
diff --git a/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/HtmlLinkRules.java b/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/HtmlLinkRules.java
index 7490c201e..870d8e135 100644
--- a/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/HtmlLinkRules.java
+++ b/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/HtmlLinkRules.java
@@ -53,14 +53,14 @@
/**
* Defines the {@code target} attribute for a link to an internal resource
* @see LinkTarget
- * @return One of {@code LinkTarget} values
+ * @return String value
*/
- LinkTarget targetInternal() default LinkTarget.AUTO;
+ String targetInternal() default LinkTarget.AUTO;
/**
* Defines the {@code target} attribute for a link to an external resource
* @see LinkTarget
- * @return One of {@code LinkTarget} values
+ * @return String value
*/
- LinkTarget targetExternal() default LinkTarget.AUTO;
+ String targetExternal() default LinkTarget.AUTO;
}
diff --git a/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/LinkTarget.java b/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/LinkTarget.java
index 21b4f6982..97410733f 100644
--- a/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/LinkTarget.java
+++ b/core/src/main/java/com/exadel/aem/toolkit/api/annotations/widgets/rte/LinkTarget.java
@@ -14,26 +14,27 @@
package com.exadel.aem.toolkit.api.annotations.widgets.rte;
/**
- * Contains possible values of {@link HtmlLinkRules#targetExternal()} and {@link HtmlLinkRules#targetInternal()} properties
+ * Enumerates values of {@link HtmlLinkRules#targetExternal()} and {@link HtmlLinkRules#targetInternal()} properties.
+ * These properties define the value of `target` attribute for an anchor tag
*/
-public enum LinkTarget {
- AUTO {
- @Override
- public String toString() {
- return "";
- }
- },
- MANUAL {
- @Override
- public String toString() {
- return "manual";
- }
- },
- BLANK {
- @Override
- public String toString() {
- return "blank";
- }
- },
+public class LinkTarget {
+ public static final String AUTO = "";
+
+ public static final String BLANK = "_blank";
+
+ @Deprecated
+ public static final String MANUAL = "manual";
+
+ public static final String PARENT = "_parent";
+
+ public static final String SELF = AUTO;
+
+ public static final String TOP = "_top";
+
+ /**
+ * Default (instantiation-preventing) constructor
+ */
+ private LinkTarget() {
+ }
}
diff --git a/core/src/main/java/com/exadel/aem/toolkit/core/CoreConstants.java b/core/src/main/java/com/exadel/aem/toolkit/core/CoreConstants.java
index b531ce239..2d03b8f45 100644
--- a/core/src/main/java/com/exadel/aem/toolkit/core/CoreConstants.java
+++ b/core/src/main/java/com/exadel/aem/toolkit/core/CoreConstants.java
@@ -60,6 +60,8 @@ public class CoreConstants {
public static final String EQUALITY_SIGN = "=";
public static final String WILDCARD = "*";
+ public static final String CONTENT_TYPE_JSON = "application/json;charset=utf-8";
+
/**
* Default (instantiation-restricting) constructor
*/
diff --git a/core/src/main/java/com/exadel/aem/toolkit/core/lists/servlets/ListsServlet.java b/core/src/main/java/com/exadel/aem/toolkit/core/lists/servlets/ListsServlet.java
index ccdbc952e..26dd362f7 100644
--- a/core/src/main/java/com/exadel/aem/toolkit/core/lists/servlets/ListsServlet.java
+++ b/core/src/main/java/com/exadel/aem/toolkit/core/lists/servlets/ListsServlet.java
@@ -52,8 +52,8 @@
import com.exadel.aem.toolkit.core.lists.ListConstants;
/**
- * Provides the collection of AEM resources that either represent Exadel Toolbox Lists or serve as folders for Exadel
- * Toolbox Lists to be displayed in the Exadel Toolbox Lists console
+ * Provides the collection of AEM resources that either represent an EToolbox Lists or serve as folders for EToolbox
+ * Lists to be displayed in the EToolbox Lists console
*
Note: This class is not a part of the public API and is subject to change. Do not use it in your own
* code
*/
diff --git a/core/src/main/java/com/exadel/aem/toolkit/core/optionprovider/servlets/OptionProviderServlet.java b/core/src/main/java/com/exadel/aem/toolkit/core/optionprovider/servlets/OptionProviderServlet.java
index 3e992b6d0..6b60fae41 100644
--- a/core/src/main/java/com/exadel/aem/toolkit/core/optionprovider/servlets/OptionProviderServlet.java
+++ b/core/src/main/java/com/exadel/aem/toolkit/core/optionprovider/servlets/OptionProviderServlet.java
@@ -20,7 +20,6 @@
import javax.annotation.Nonnull;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.sling.api.SlingHttpServletRequest;
@@ -59,7 +58,6 @@
"sling.servlet.methods=" + HttpConstants.METHOD_GET
})
public class OptionProviderServlet extends SlingSafeMethodsServlet {
- private static final String CONTENT_TYPE_JSON = "application/json;charset=utf-8";
private static final String QUERY_KEY_OUTPUT = "output";
private static final String QUERY_VALUE_JSON = "json";
@@ -74,28 +72,28 @@ public class OptionProviderServlet extends SlingSafeMethodsServlet {
* @param response {@code SlingHttpServletResponse} instance
*/
@Override
- protected void doGet(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHttpServletResponse response) throws ServletException, IOException {
+ protected void doGet(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHttpServletResponse response)
+ throws ServletException, IOException {
List options = optionProvider.getOptions(request);
- if (CollectionUtils.isEmpty(options) && isJsonOutput(request)) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ if (!isJsonOutput(request)) {
+ DataSource ds = new SimpleDataSource(options.iterator());
+ request.setAttribute(DataSource.class.getName(), ds);
return;
}
- if (isJsonOutput(request)) {
- response.setContentType(CONTENT_TYPE_JSON);
- response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
- try {
- response.getWriter().print(getJsonOutput(options));
- } catch (JSONException | NullPointerException e) {
- throw new ServletException(e);
- }
+ response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
+ response.setContentType(CoreConstants.CONTENT_TYPE_JSON);
+ if (CollectionUtils.isEmpty(options)) {
+ response.getWriter().write(CoreConstants.ARRAY_OPENING + CoreConstants.ARRAY_CLOSING);
return;
}
-
- DataSource ds = new SimpleDataSource(options.iterator());
- request.setAttribute(DataSource.class.getName(), ds);
+ try {
+ response.getWriter().print(getJsonOutput(options));
+ } catch (JSONException | NullPointerException e) {
+ throw new ServletException(e);
+ }
}
/**
@@ -104,6 +102,9 @@ protected void doGet(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHtt
* @return True or false
*/
private static boolean isJsonOutput(SlingHttpServletRequest request) {
+ if (QUERY_VALUE_JSON.equalsIgnoreCase(request.getRequestPathInfo().getExtension())) {
+ return true;
+ }
RequestParameter jsonParameter = request.getRequestParameter(QUERY_KEY_OUTPUT);
if (jsonParameter == null) {
return false;
diff --git a/docs/content/authoring-tools/etoolbox-lists.md b/docs/content/authoring-tools/etoolbox-lists.md
index a5b3b32ac..ee2797f2a 100644
--- a/docs/content/authoring-tools/etoolbox-lists.md
+++ b/docs/content/authoring-tools/etoolbox-lists.md
@@ -123,3 +123,9 @@ public class MyComponent {
String optionList;
}
```
+
+## Retrieving Lists' content via HTTP
+
+Your website's authoring logic may require fetching the content of a list via HTTP — e.g., with an AJAX request. This can be achieved with the OptionSource / [OptionProvider](../dev-tools/option-provider.md) servlet. Make a GET request to `/apps/etoolbox-authoring-kit/datasources/option-provider.json?path=`.
+
+By default, the servlet returns a JSON array of objects with `text` and `value` properties matching the same-named attributes of list items. You will probably want to modify the mapping. To say, a typical EToolbox List makes use of `jcr:title` and `value` attributes. Add `&textMember=jcr:title` to expose _jcr:title_. Similarly, you can alter the `valueMember` parameter, add some `attributeMembers`, etc. Please remember that if an item doesn't have a non-blank mapping for both _text_ and _value_, it won't be displayed.
diff --git a/docs/content/dev-tools/component-management/customizing-toolkit.md b/docs/content/dev-tools/component-management/customizing-toolkit.md
index 5e9c527c2..c2673f24f 100644
--- a/docs/content/dev-tools/component-management/customizing-toolkit.md
+++ b/docs/content/dev-tools/component-management/customizing-toolkit.md
@@ -313,7 +313,7 @@ mvn clean test -Pintegration -D"aem.host"=192.168.0.81 -D"aem.port"=8080 -D"aem.
### Doing regression testing
-The ToolKit supports regression testing as well. Regression testing is done using an external AEM project. The aim is to make sure that a version of ToolKit (namely, the plugin) produces essentially the same XML markup as an one. The version is considered a "reference" and is used as a baseline for comparison.
+The ToolKit supports regression testing as well. Regression testing is done using an external AEM project. The aim is to make sure that a _newer_ version of ToolKit (namely, the plugin) produces essentially the same XML markup as an _older_ one. The _older_ version is used as a baseline for comparison.
To run regression tests, you need to specify the dedicated Maven profile like the following:
```
diff --git a/docs/content/getting-started/installation.md b/docs/content/getting-started/installation.md
index fe9557eca..7eb2333c8 100644
--- a/docs/content/getting-started/installation.md
+++ b/docs/content/getting-started/installation.md
@@ -11,7 +11,7 @@ seoTitle: Installation - Exadel Authoring Kit
com.exadel.etoolbox
etoolbox-authoring-kit-core
- 2.5.3
+ 2.5.4
provided
```
@@ -21,7 +21,7 @@ seoTitle: Installation - Exadel Authoring Kit
com.exadel.etoolbox
etoolbox-authoring-kit-plugin
- 2.5.3
+ 2.5.4
@@ -79,7 +79,7 @@ You need to do two steps.
com.exadel.etoolbox
etoolbox-authoring-kit-all
- 2.5.3
+ 2.5.4
content-package
```
diff --git a/docs/website/package-lock.json b/docs/website/package-lock.json
index 575cc02d3..d9cd03300 100644
--- a/docs/website/package-lock.json
+++ b/docs/website/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "eak-website",
- "version": "2.5.3",
+ "version": "2.5.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "eak-website",
- "version": "2.5.3",
+ "version": "2.5.4",
"license": "ISC",
"dependencies": {
"@exadel/esl": "^5.0.0",
diff --git a/docs/website/package.json b/docs/website/package.json
index a57e83369..011841ea7 100644
--- a/docs/website/package.json
+++ b/docs/website/package.json
@@ -1,6 +1,6 @@
{
"name": "eak-website",
- "version": "2.5.3",
+ "version": "2.5.4",
"description": "EAK website package definition",
"main": "index.js",
"scripts": {
diff --git a/it.tests/pom.xml b/it.tests/pom.xml
index daf6562ff..a48a171e5 100644
--- a/it.tests/pom.xml
+++ b/it.tests/pom.xml
@@ -20,7 +20,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-it.tests
diff --git a/plugin/pom.xml b/plugin/pom.xml
index 5d7765969..552a63309 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -7,7 +7,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-plugin
diff --git a/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/common/cases/components/ScriptedComponent.java b/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/common/cases/components/ScriptedComponent.java
index e9362181b..9904f4789 100644
--- a/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/common/cases/components/ScriptedComponent.java
+++ b/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/common/cases/components/ScriptedComponent.java
@@ -76,7 +76,7 @@ public class ScriptedComponent extends ScriptedParent {
},
maxUndoSteps = 25,
htmlLinkRules = @HtmlLinkRules(
- targetInternal = LinkTarget.MANUAL,
+ targetInternal = LinkTarget.TOP,
targetExternal = LinkTarget.BLANK,
protocols = {"http:", "https:"},
defaultProtocol = "http:"
diff --git a/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/widgets/cases/RichTextEditorWidget.java b/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/widgets/cases/RichTextEditorWidget.java
index 4005c7964..cbd6266ad 100644
--- a/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/widgets/cases/RichTextEditorWidget.java
+++ b/plugin/src/test/com/exadel/aem/toolkit/plugin/handlers/widgets/cases/RichTextEditorWidget.java
@@ -103,7 +103,7 @@ public class RichTextEditorWidget {
indentSize = 1,
maxUndoSteps = 25,
htmlLinkRules = @HtmlLinkRules(
- targetInternal = LinkTarget.MANUAL,
+ targetInternal = LinkTarget.PARENT,
targetExternal = LinkTarget.BLANK,
protocols = {"http:", "https:"},
defaultProtocol = "http:"
diff --git a/plugin/src/test/resources/handlers/common/components/generic/scriptedComponent/_cq_dialog.xml b/plugin/src/test/resources/handlers/common/components/generic/scriptedComponent/_cq_dialog.xml
index 3321f5677..ef9f916b1 100644
--- a/plugin/src/test/resources/handlers/common/components/generic/scriptedComponent/_cq_dialog.xml
+++ b/plugin/src/test/resources/handlers/common/components/generic/scriptedComponent/_cq_dialog.xml
@@ -131,8 +131,8 @@
protocols="[http:,https:]">
+ targetExternal="_blank"
+ targetInternal="_top"/>
-
+
diff --git a/pom.xml b/pom.xml
index e679ce836..ce4d67a58 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
Exadel Toolbox Authoring Kit
Automates generating and managing rich and responsive authoring interfaces for Adobe Experience Manager
@@ -462,25 +462,25 @@
com.exadel.etoolbox
etoolbox-anydiff-core
- 1.0.0
+ 1.1.1
test
com.fasterxml.jackson.core
jackson-annotations
- 2.13.4
+ 2.18.0
compile
com.fasterxml.jackson.core
jackson-core
- 2.13.4
+ 2.18.0
compile
com.fasterxml.jackson.core
jackson-databind
- 2.13.4.2
+ 2.18.0
compile
diff --git a/ui.apps/package-lock.json b/ui.apps/package-lock.json
index 682fc20be..98bcf644a 100644
--- a/ui.apps/package-lock.json
+++ b/ui.apps/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "depends-on",
- "version": "2.5.3",
+ "version": "2.5.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "depends-on",
- "version": "2.5.3",
+ "version": "2.5.4",
"license": "Apache-2.0",
"devDependencies": {
"eslint": "^9.19.0",
diff --git a/ui.apps/package.json b/ui.apps/package.json
index d4ed77523..ac95e1627 100644
--- a/ui.apps/package.json
+++ b/ui.apps/package.json
@@ -1,7 +1,7 @@
{
"name": "depends-on",
"description": "A clientlib that executes defined action on dependent fields",
- "version": "2.5.3",
+ "version": "2.5.4",
"private": true,
"devDependencies": {
"eslint": "^9.19.0",
diff --git a/ui.apps/pom.xml b/ui.apps/pom.xml
index b2ebe4e60..dfcb90a4d 100644
--- a/ui.apps/pom.xml
+++ b/ui.apps/pom.xml
@@ -7,7 +7,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-ui.apps
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/depends-on/js/dependsOnQueryObserver.js b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/depends-on/js/dependsOnQueryObserver.js
index 448fffc1d..3776ec1ff 100644
--- a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/depends-on/js/dependsOnQueryObserver.js
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/depends-on/js/dependsOnQueryObserver.js
@@ -130,7 +130,11 @@
return true;
}
const queryResult = ns.QueryProcessor.evaluateQuery(this.parsedQuery, this.$el);
- ns.ActionRegistry.getAction(this.action).call(this, queryResult, this.data, this);
+ try {
+ ns.ActionRegistry.getAction(this.action).call(this, queryResult, this.data, this);
+ } catch (e) {
+ console.debug('[DependsOn]: Error while executing an action', e);
+ }
}
}
diff --git a/ui.content/pom.xml b/ui.content/pom.xml
index f3602689b..50afd361b 100644
--- a/ui.content/pom.xml
+++ b/ui.content/pom.xml
@@ -8,7 +8,7 @@
com.exadel.etoolbox
etoolbox-authoring-kit
- 2.5.3
+ 2.5.4
etoolbox-authoring-kit-ui.content