diff --git a/README.md b/README.md
index d556ebe..da77a81 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,7 @@
[![Build Status](https://travis-ci.org/yasuflatland-lf/damascus.svg?branch=master)](https://travis-ci.org/yasuflatland-lf/damascus)
[![Coverage Status](https://coveralls.io/repos/github/yasuflatland-lf/damascus/badge.svg?branch=master)](https://coveralls.io/github/yasuflatland-lf/damascus?branch=master)
[![Build status](https://ci.appveyor.com/api/projects/status/qqpdw6drt8w07ljp?svg=true)](https://ci.appveyor.com/project/yasuflatland-lf/damascus)
+[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/liferay-damascus/community)
Damascus is a Liferay Blade tool extension for generating scaffoldings of Service builder portlet with CRUD functionality based on a configuration json file, base.json. For more detailed usage, please see [this official document](https://yasuflatland-lf.github.io/damascus-doc/)
@@ -14,9 +15,9 @@ The list of what Damascus automatically generate is as follows
* Workflow
* Trashbox
* Search (Including Advanced search for individual fields)
-* Comments
+* Comments (Deprecated in 7.2 templates)
* Related assets
-* Ratings
+* Ratings (Deprecated in 7.2 templates)
* Activities (The activities on the portlet will be recorded and visible on an activity portlet)
* Multiple service builder portlets at once
* Exporting entities by xls file format
@@ -65,7 +66,7 @@ Please see more detailed settings [here](https://github.com/yasuflatland-lf/dama
### IDE settings
Damascus is including lombok library, so annotation library for lombok needs to be properly installed on IDEs. Here are how to apply lombok to Eclipse / IntelliJ
-##### Eclipse
+##### Eclipse (Not Liferay Developer Studio)
1. Download lombok https://projectlombok.org/download
2. double click ```lombok.jar``` and select the directory where ```eclipse.exe``` exist
3. Run ```gradle eclipse``` at the project directory and restart IDE, and right click on the project and display context name, and choose ```gradle > Refresh gradle project```
diff --git a/build.gradle b/build.gradle
index 3944132..4ed2f31 100644
--- a/build.gradle
+++ b/build.gradle
@@ -58,7 +58,7 @@ jar {
manifest {
attributes(
"Bundle-SymbolicName": "com.liferay.damascus.cli",
- "Bundle-Version": "1.1.1",
+ "Bundle-Version": "1.1.2",
"Bundle-Description": "Liferay extension tool for scaffolding service builder portlet",
"Main-Class": "com.liferay.damascus.cli.Damascus",
"JPM-Command": "damascus"
diff --git a/latest/damascus.jar b/latest/damascus.jar
index e992655..0782819 100644
Binary files a/latest/damascus.jar and b/latest/damascus.jar differ
diff --git a/src/main/java/com/liferay/damascus/cli/Damascus.java b/src/main/java/com/liferay/damascus/cli/Damascus.java
index 2ebc4f2..4651ea5 100644
--- a/src/main/java/com/liferay/damascus/cli/Damascus.java
+++ b/src/main/java/com/liferay/damascus/cli/Damascus.java
@@ -19,7 +19,7 @@
@Slf4j
public class Damascus {
- public final static String VERSION = "1.1.1";// + "_" + LocalDateTime.now().toString();
+ public final static String VERSION = "1.1.2";// + "_" + LocalDateTime.now().toString();
/**
* Main
diff --git a/src/main/resources/templates/7.1/service.xml b/src/main/resources/templates/7.1/service.xml
index 403cc40..8be1ddd 100644
--- a/src/main/resources/templates/7.1/service.xml
+++ b/src/main/resources/templates/7.1/service.xml
@@ -1,4 +1,3 @@
-
@@ -174,4 +173,4 @@
-
\ No newline at end of file
+
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl b/src/main/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
index a22b64d..cc7c5ae 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
@@ -1007,7 +1007,7 @@ public class ${capFirstModel}LocalServiceImpl extends ${capFirstModel}LocalServi
newEntry.setModifiedDate(now);
newEntry.setUuid(serviceContext.getUuid());
- newEntry.setUrlTitle(getUniqueUrlTitle(entry, entry.getTitle()));
+ newEntry.setUrlTitle(getUniqueUrlTitle(entry, entry.getUrlTitle()));
newEntry.set${application.asset.assetTitleFieldName?cap_first}(entry.get${application.asset.assetTitleFieldName?cap_first}());
newEntry.set${application.asset.assetSummaryFieldName?cap_first}(entry.get${application.asset.assetSummaryFieldName?cap_first}());
@@ -1060,7 +1060,7 @@ public class ${capFirstModel}LocalServiceImpl extends ${capFirstModel}LocalServi
updateEntry.setUuid(entry.getUuid());
updateEntry.setUrlTitle(
- getUniqueUrlTitle(updateEntry, updateEntry.getTitle()));
+ getUniqueUrlTitle(updateEntry, updateEntry.getUrlTitle()));
updateEntry.set${application.asset.assetTitleFieldName?cap_first}(entry.get${application.asset.assetTitleFieldName?cap_first}());
updateEntry.set${application.asset.assetSummaryFieldName?cap_first}(entry.get${application.asset.assetSummaryFieldName?cap_first}());
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
index 7d4ce35..ee4855f 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
@@ -30,6 +30,7 @@ import ${packageName}.web.upload.${capFirstModel}ItemSelectorHelper;
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
import ${packageName}.service.${capFirstValidationModel}LocalService;
import ${packageName}.web.constants.${capFirstValidationModel}WebKeys;
+import ${packageName}.web.util.${capFirstValidationModel}ViewHelper;
#if>
#list>
// //
@@ -115,9 +116,11 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
// //
<#list application.fields as field >
<#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
<#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ request.setAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER, _${uncapFirstValidationModel}ViewHelper);
request.setAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE, _${uncapFirstValidationModel}LocalService);
#if>
#list>
@@ -229,6 +232,9 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ @Reference
+ private ${capFirstValidationModel}ViewHelper _${uncapFirstValidationModel}ViewHelper;
+
@Reference
private ${capFirstValidationModel}LocalService _${uncapFirstValidationModel}LocalService;
#if>
@@ -238,4 +244,4 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
@Reference
private ${capFirstModel}ItemSelectorHelper _${uncapFirstModel}ItemSelectorHelper;
-}
\ No newline at end of file
+}
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
index bd8cd44..d7f8f62 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
@@ -30,6 +30,7 @@ import ${packageName}.web.upload.${capFirstModel}ItemSelectorHelper;
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
import ${packageName}.service.${capFirstValidationModel}LocalService;
import ${packageName}.web.constants.${capFirstValidationModel}WebKeys;
+import ${packageName}.web.util.${capFirstValidationModel}ViewHelper;
#if>
#list>
// //
@@ -114,9 +115,11 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
// //
<#list application.fields as field >
<#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
<#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ request.setAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER, _${uncapFirstValidationModel}ViewHelper);
request.setAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE, _${uncapFirstValidationModel}LocalService);
#if>
#list>
@@ -230,7 +233,10 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
- @Reference
+ @Reference
+ private ${capFirstValidationModel}ViewHelper _${uncapFirstValidationModel}ViewHelper;
+
+ @Reference
private ${capFirstValidationModel}LocalService _${uncapFirstValidationModel}LocalService;
#if>
#list>
@@ -239,4 +245,4 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
@Reference
private ${capFirstModel}ItemSelectorHelper _${uncapFirstModel}ItemSelectorHelper;
-}
\ No newline at end of file
+}
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
index 334d816..7ac0be0 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
@@ -98,10 +98,45 @@ String redirect = ParamUtil.getString(request, "redirect");
field.type?string == "com.liferay.damascus.cli.json.fields.Integer" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Text"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?uncap_first}">
+ #if>
+ <%
+ ${capFirstValidationModel}ViewHelper ${uncapFirstValidationModel}ViewHelper = (${capFirstValidationModel}ViewHelper) request
+ .getAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER);
+
+ SearchContainerResults<${capFirstValidationModel}> ${uncapFirstValidationModel}Results = ${uncapFirstValidationModel}ViewHelper.getListFromDB(
+ renderRequest, -1, -1, "${orderByField?uncap_first}", "asc", new int[] {WorkflowConstants.STATUS_APPROVED});
+ %>
+
+
+
+ <%=LanguageUtil.get(request, "please-select") %>
+ <% for(${capFirstValidationModel} ${uncapFirstValidationModel} : ${uncapFirstValidationModel}Results.getResults()) { %>
+ <%=${uncapFirstValidationModel}.get${orderByField?cap_first}() %>
+ <% } %>
+
+
+ <#else>
+ #if>
#if>
<#-- ---------------- -->
<#-- Document Library -->
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
index 6e275d6..0f3aec6 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
@@ -55,10 +55,10 @@ page import="com.liferay.trash.util.TrashWebKeys" %>
<#if field.validation?? && field.validation.className??>
<%@page import="${packageName}.model.${field.validation.className}"%>
<%@page import="${packageName}.web.constants.${field.validation.className}WebKeys"%>
+<%@page import="${packageName}.web.util.${field.validation.className}ViewHelper"%>
<%@page import="${packageName}.service.${field.validation.className}LocalService"%>
#if>
#list>
-
<%-- --%>
@@ -87,4 +87,4 @@ datetimeFormatVal = HtmlUtil.escape(portletPreferences.getValue("datetimeFormat"
datePickerFormatVal = HtmlUtil.escape(portletPreferences.getValue("datePickerFormat", ${uncapFirstModel}Configuration.datePickerFormat()));
}
-%>
\ No newline at end of file
+%>
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
index f2ca2d4..a98a366 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
@@ -12,6 +12,16 @@ String iconUnchecked = "unchecked";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatVal);
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(datetimeFormatVal);
+<#list application.fields as field >
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ ${capFirstValidationModel}LocalService ${uncapFirstValidationModel}LocalService = (${capFirstValidationModel}LocalService) request
+ .getAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE);
+ #if>
+#list>
+
${capFirstModel}DisplayContext ${uncapFirstModel}DisplayContext = (${capFirstModel}DisplayContext)request.getAttribute(${capFirstModel}WebKeys.${uppercaseModel}_DISPLAY_CONTEXT);
String displayStyle = ${uncapFirstModel}DisplayContext.getDisplayStyle();
@@ -104,6 +114,30 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
field.type?string == "com.liferay.damascus.cli.json.fields.DocumentLibrary" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Integer"
>
+
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?cap_first}">
+ #if>
+ <%
+ String ${field.name}Text = "";
+ try {
+ ${capFirstValidationModel} ${uncapFirstValidationModel} = ${uncapFirstValidationModel}LocalService.get${capFirstValidationModel}(GetterUtil.getLong(${uncapFirstModel}.get${field.name?cap_first}()));
+ ${field.name}Text = ${uncapFirstValidationModel}.get${orderByField}();
+ } catch(Exception e) {}
+ %>
+
+ <#else>
-
+ #if>
#if>
<#-- ---------------- -->
<#-- Date -->
@@ -179,4 +213,4 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
submitForm(form, '');
}
}
-
\ No newline at end of file
+
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
index 536aaa6..f47742f 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
@@ -100,10 +100,45 @@
field.type?string == "com.liferay.damascus.cli.json.fields.Integer" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Text"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?uncap_first}">
+ #if>
+ <%
+ ${capFirstValidationModel}ViewHelper ${uncapFirstValidationModel}ViewHelper = (${capFirstValidationModel}ViewHelper) request
+ .getAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER);
+
+ SearchContainerResults<${capFirstValidationModel}> ${uncapFirstValidationModel}Results = ${uncapFirstValidationModel}ViewHelper.getListFromDB(
+ renderRequest, -1, -1, "${orderByField?uncap_first}", "asc", new int[] {WorkflowConstants.STATUS_APPROVED});
+ %>
+
+
+
+ <%=LanguageUtil.get(request, "please-select") %>
+ <% for(${capFirstValidationModel} ${uncapFirstValidationModel} : ${uncapFirstValidationModel}Results.getResults()) { %>
+ <%=${uncapFirstValidationModel}.get${orderByField?cap_first}() %>
+ <% } %>
+
+
+ <#else>
+ #if>
#if>
<#-- ---------------- -->
<#-- Document Library -->
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
index b0dc7a5..f522b65 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
@@ -54,6 +54,7 @@ page import="com.liferay.trash.util.TrashWebKeys" %>
<#if field.validation?? && field.validation.className??>
<%@page import="${packageName}.model.${field.validation.className}"%>
<%@page import="${packageName}.web.constants.${field.validation.className}WebKeys"%>
+<%@page import="${packageName}.web.util.${field.validation.className}ViewHelper"%>
<%@page import="${packageName}.service.${field.validation.className}LocalService"%>
#if>
#list>
@@ -85,4 +86,4 @@ datetimeFormatVal = HtmlUtil.escape(portletPreferences.getValue("datetimeFormat"
datePickerFormatVal = HtmlUtil.escape(portletPreferences.getValue("datePickerFormat", ${uncapFirstModel}Configuration.datePickerFormat()));
}
-%>
\ No newline at end of file
+%>
diff --git a/src/main/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl b/src/main/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
index 748fde4..ff9234d 100644
--- a/src/main/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
+++ b/src/main/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
@@ -12,6 +12,16 @@ String iconUnchecked = "unchecked";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatVal);
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(datetimeFormatVal);
+<#list application.fields as field >
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ ${capFirstValidationModel}LocalService ${uncapFirstValidationModel}LocalService = (${capFirstValidationModel}LocalService) request
+ .getAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE);
+ #if>
+#list>
+
${capFirstModel}DisplayContext ${uncapFirstModel}DisplayContext = (${capFirstModel}DisplayContext)request.getAttribute(${capFirstModel}WebKeys.${uppercaseModel}_DISPLAY_CONTEXT);
String displayStyle = ${uncapFirstModel}DisplayContext.getDisplayStyle();
@@ -86,6 +96,29 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
field.type?string == "com.liferay.damascus.cli.json.fields.DocumentLibrary" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Integer"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?cap_first}">
+ #if>
+ <%
+ String ${field.name}Text = "";
+ try {
+ ${capFirstValidationModel} ${uncapFirstValidationModel} = ${uncapFirstValidationModel}LocalService.get${capFirstValidationModel}(GetterUtil.getLong(${uncapFirstModel}.get${field.name?cap_first}()));
+ ${field.name}Text = ${uncapFirstValidationModel}.get${orderByField}();
+ } catch(Exception e) {}
+ %>
+
+ <#else>
-
+ #if>
#if>
<#-- ---------------- -->
<#-- Date -->
@@ -160,4 +193,4 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
submitForm(form, '');
}
}
-
\ No newline at end of file
+
diff --git a/src/main/resources/templates/7.2/service.xml b/src/main/resources/templates/7.2/service.xml
index 048ffd7..54d3c0f 100644
--- a/src/main/resources/templates/7.2/service.xml
+++ b/src/main/resources/templates/7.2/service.xml
@@ -125,44 +125,16 @@
-
#list>
- <#-- ---------------- -->
- <#-- / Fields Finders -->
- <#-- ---------------- -->
- <#-- TODO: Relations need to be implimented -->
- <#if false >
- <#list app.relations as relation >
-
-
-
-
-
-
-
-
- #list>
- #if>
- <#-- TODO: Validations need to be implimented -->
- <#if false >
- <#list app.fields as field >
- <#list field.validations as validation >
-
-
-
-
- #list>
- #list>
- #if>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
#list>
@@ -173,4 +145,4 @@
-
\ No newline at end of file
+
diff --git a/src/test/groovy/com/liferay/damascus/cli/CreateCommandTest.groovy b/src/test/groovy/com/liferay/damascus/cli/CreateCommandTest.groovy
index 1027bb3..6c7040c 100644
--- a/src/test/groovy/com/liferay/damascus/cli/CreateCommandTest.groovy
+++ b/src/test/groovy/com/liferay/damascus/cli/CreateCommandTest.groovy
@@ -466,6 +466,7 @@ class CreateCommandTest extends Specification {
where:
projectName | liferayVersion | packageName | expectedProjectDirName
+ "SampleSB" | DamascusProps.VERSION_72 | "com.liferay.test" | "sample-sb"
"SampleSB" | DamascusProps.VERSION_71 | "com.liferay.test" | "sample-sb"
"SampleSB" | DamascusProps.VERSION_70 | "com.liferay.test" | "sample-sb"
@@ -495,7 +496,34 @@ class CreateCommandTest extends Specification {
where:
projectName | version | packageName | base_json_name
+ "Employee" | DamascusProps.VERSION_72 | "com.liferay.sb.employee" | "base_relation_fail.json"
"Employee" | DamascusProps.VERSION_71 | "com.liferay.sb.employee" | "base_relation_fail.json"
-
}
+
+ @Unroll("Relation Create Test <#projectName> <#version> <#packageName> <#base_json_name>")
+ def "Relation Create Test"() {
+ when:
+ //Initialize
+ setupEx(version);
+
+ def buffer = new ByteArrayOutputStream()
+ System.err = new PrintStream(buffer)
+
+ // Read test base.json file
+ def target_file_path = workTempDir + DS + DamascusProps.BASE_JSON
+ def file_path = DS + DamascusProps.TEMPLATE_FOLDER_NAME + DS + version + DS + base_json_name;
+ def json = CommonUtil.readResource(CreateCommandTest.class, file_path);
+ FileUtils.writeStringToFile(new File(target_file_path), json, StandardCharsets.UTF_8)
+
+ //Run damascus create
+ String[] args = ["create"]
+ Damascus.main(args)
+
+ then:
+ buffer.toString() == ""
+
+ where:
+ projectName | version | packageName | base_json_name
+ "Employee" | DamascusProps.VERSION_72 | "com.liferay.sb.employee" | "base_relation_success.json"
+ }
}
diff --git a/src/test/groovy/com/liferay/damascus/cli/relation/validators/RelationValidatorTest.groovy b/src/test/groovy/com/liferay/damascus/cli/relation/validators/RelationValidatorTest.groovy
index a040358..6527d40 100644
--- a/src/test/groovy/com/liferay/damascus/cli/relation/validators/RelationValidatorTest.groovy
+++ b/src/test/groovy/com/liferay/damascus/cli/relation/validators/RelationValidatorTest.groovy
@@ -30,6 +30,7 @@ class RelationValidatorTest extends Specification {
where:
version | base_json_name | caseName | statusFlag
+ DamascusProps.VERSION_72 | "base_relation_success.json" | "success pattern" | true
DamascusProps.VERSION_71 | "base_relation_success.json" | "success pattern" | true
DamascusProps.VERSION_71 | "base_activity_false.json" | "fail pattern" | false
}
diff --git a/src/test/resources/templates/7.1/service.xml b/src/test/resources/templates/7.1/service.xml
index 93a6028..8be1ddd 100644
--- a/src/test/resources/templates/7.1/service.xml
+++ b/src/test/resources/templates/7.1/service.xml
@@ -1,8 +1,11 @@
-<#include "./valuables.ftl">
-<#assign createPath = "${createPath_val}/service.xml">
-
+
+
+<#include "./valuables.ftl">
+<#assign createPath = "${createPath_val}/service.xml">
+
+
${camelcaseProjectName}
@@ -165,8 +168,9 @@
<#list damascus.applications as app >
NoSuch${app.model}
- ${app.model?cap_first}ValidateException
+ ${app.model?cap_first}Validate
#list>
+
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl b/src/test/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
index a22b64d..cc7c5ae 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXSVC_LocalServiceImpl.java.ftl
@@ -1007,7 +1007,7 @@ public class ${capFirstModel}LocalServiceImpl extends ${capFirstModel}LocalServi
newEntry.setModifiedDate(now);
newEntry.setUuid(serviceContext.getUuid());
- newEntry.setUrlTitle(getUniqueUrlTitle(entry, entry.getTitle()));
+ newEntry.setUrlTitle(getUniqueUrlTitle(entry, entry.getUrlTitle()));
newEntry.set${application.asset.assetTitleFieldName?cap_first}(entry.get${application.asset.assetTitleFieldName?cap_first}());
newEntry.set${application.asset.assetSummaryFieldName?cap_first}(entry.get${application.asset.assetSummaryFieldName?cap_first}());
@@ -1060,7 +1060,7 @@ public class ${capFirstModel}LocalServiceImpl extends ${capFirstModel}LocalServi
updateEntry.setUuid(entry.getUuid());
updateEntry.setUrlTitle(
- getUniqueUrlTitle(updateEntry, updateEntry.getTitle()));
+ getUniqueUrlTitle(updateEntry, updateEntry.getUrlTitle()));
updateEntry.set${application.asset.assetTitleFieldName?cap_first}(entry.get${application.asset.assetTitleFieldName?cap_first}());
updateEntry.set${application.asset.assetSummaryFieldName?cap_first}(entry.get${application.asset.assetSummaryFieldName?cap_first}());
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
index 7d4ce35..ee4855f 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_AdminCrudMVCRenderCommand.java.ftl
@@ -30,6 +30,7 @@ import ${packageName}.web.upload.${capFirstModel}ItemSelectorHelper;
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
import ${packageName}.service.${capFirstValidationModel}LocalService;
import ${packageName}.web.constants.${capFirstValidationModel}WebKeys;
+import ${packageName}.web.util.${capFirstValidationModel}ViewHelper;
#if>
#list>
// //
@@ -115,9 +116,11 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
// //
<#list application.fields as field >
<#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
<#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ request.setAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER, _${uncapFirstValidationModel}ViewHelper);
request.setAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE, _${uncapFirstValidationModel}LocalService);
#if>
#list>
@@ -229,6 +232,9 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ @Reference
+ private ${capFirstValidationModel}ViewHelper _${uncapFirstValidationModel}ViewHelper;
+
@Reference
private ${capFirstValidationModel}LocalService _${uncapFirstValidationModel}LocalService;
#if>
@@ -238,4 +244,4 @@ public class ${capFirstModel}AdminCrudMVCRenderCommand implements MVCRenderComma
@Reference
private ${capFirstModel}ItemSelectorHelper _${uncapFirstModel}ItemSelectorHelper;
-}
\ No newline at end of file
+}
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
index bd8cd44..d7f8f62 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_CrudMVCRenderCommand.java.ftl
@@ -30,6 +30,7 @@ import ${packageName}.web.upload.${capFirstModel}ItemSelectorHelper;
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
import ${packageName}.service.${capFirstValidationModel}LocalService;
import ${packageName}.web.constants.${capFirstValidationModel}WebKeys;
+import ${packageName}.web.util.${capFirstValidationModel}ViewHelper;
#if>
#list>
// //
@@ -114,9 +115,11 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
// //
<#list application.fields as field >
<#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
<#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ request.setAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER, _${uncapFirstValidationModel}ViewHelper);
request.setAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE, _${uncapFirstValidationModel}LocalService);
#if>
#list>
@@ -230,7 +233,10 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
<#assign capFirstValidationModel = "${field.validation.className?cap_first}">
<#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
- @Reference
+ @Reference
+ private ${capFirstValidationModel}ViewHelper _${uncapFirstValidationModel}ViewHelper;
+
+ @Reference
private ${capFirstValidationModel}LocalService _${uncapFirstValidationModel}LocalService;
#if>
#list>
@@ -239,4 +245,4 @@ public class ${capFirstModel}CrudMVCRenderCommand implements MVCRenderCommand {
@Reference
private ${capFirstModel}ItemSelectorHelper _${uncapFirstModel}ItemSelectorHelper;
-}
\ No newline at end of file
+}
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
index 334d816..7ac0be0 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_edit.jsp.ftl
@@ -98,10 +98,45 @@ String redirect = ParamUtil.getString(request, "redirect");
field.type?string == "com.liferay.damascus.cli.json.fields.Integer" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Text"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?uncap_first}">
+ #if>
+ <%
+ ${capFirstValidationModel}ViewHelper ${uncapFirstValidationModel}ViewHelper = (${capFirstValidationModel}ViewHelper) request
+ .getAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER);
+
+ SearchContainerResults<${capFirstValidationModel}> ${uncapFirstValidationModel}Results = ${uncapFirstValidationModel}ViewHelper.getListFromDB(
+ renderRequest, -1, -1, "${orderByField?uncap_first}", "asc", new int[] {WorkflowConstants.STATUS_APPROVED});
+ %>
+
+
+
+ <%=LanguageUtil.get(request, "please-select") %>
+ <% for(${capFirstValidationModel} ${uncapFirstValidationModel} : ${uncapFirstValidationModel}Results.getResults()) { %>
+ <%=${uncapFirstValidationModel}.get${orderByField?cap_first}() %>
+ <% } %>
+
+
+ <#else>
+ #if>
#if>
<#-- ---------------- -->
<#-- Document Library -->
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
index 6e275d6..0f3aec6 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_init.jsp.ftl
@@ -55,10 +55,10 @@ page import="com.liferay.trash.util.TrashWebKeys" %>
<#if field.validation?? && field.validation.className??>
<%@page import="${packageName}.model.${field.validation.className}"%>
<%@page import="${packageName}.web.constants.${field.validation.className}WebKeys"%>
+<%@page import="${packageName}.web.util.${field.validation.className}ViewHelper"%>
<%@page import="${packageName}.service.${field.validation.className}LocalService"%>
#if>
#list>
-
<%-- --%>
@@ -87,4 +87,4 @@ datetimeFormatVal = HtmlUtil.escape(portletPreferences.getValue("datetimeFormat"
datePickerFormatVal = HtmlUtil.escape(portletPreferences.getValue("datePickerFormat", ${uncapFirstModel}Configuration.datePickerFormat()));
}
-%>
\ No newline at end of file
+%>
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
index f2ca2d4..a98a366 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_admin_view.jsp.ftl
@@ -12,6 +12,16 @@ String iconUnchecked = "unchecked";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatVal);
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(datetimeFormatVal);
+<#list application.fields as field >
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ ${capFirstValidationModel}LocalService ${uncapFirstValidationModel}LocalService = (${capFirstValidationModel}LocalService) request
+ .getAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE);
+ #if>
+#list>
+
${capFirstModel}DisplayContext ${uncapFirstModel}DisplayContext = (${capFirstModel}DisplayContext)request.getAttribute(${capFirstModel}WebKeys.${uppercaseModel}_DISPLAY_CONTEXT);
String displayStyle = ${uncapFirstModel}DisplayContext.getDisplayStyle();
@@ -104,6 +114,30 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
field.type?string == "com.liferay.damascus.cli.json.fields.DocumentLibrary" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Integer"
>
+
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?cap_first}">
+ #if>
+ <%
+ String ${field.name}Text = "";
+ try {
+ ${capFirstValidationModel} ${uncapFirstValidationModel} = ${uncapFirstValidationModel}LocalService.get${capFirstValidationModel}(GetterUtil.getLong(${uncapFirstModel}.get${field.name?cap_first}()));
+ ${field.name}Text = ${uncapFirstValidationModel}.get${orderByField}();
+ } catch(Exception e) {}
+ %>
+
+ <#else>
-
+ #if>
#if>
<#-- ---------------- -->
<#-- Date -->
@@ -179,4 +213,4 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
submitForm(form, '');
}
}
-
\ No newline at end of file
+
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
index 536aaa6..f47742f 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_edit.jsp.ftl
@@ -100,10 +100,45 @@
field.type?string == "com.liferay.damascus.cli.json.fields.Integer" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Text"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?uncap_first}">
+ #if>
+ <%
+ ${capFirstValidationModel}ViewHelper ${uncapFirstValidationModel}ViewHelper = (${capFirstValidationModel}ViewHelper) request
+ .getAttribute(${capFirstValidationModel}WebKeys.${uppercaseValidationModel}_VIEW_HELPER);
+
+ SearchContainerResults<${capFirstValidationModel}> ${uncapFirstValidationModel}Results = ${uncapFirstValidationModel}ViewHelper.getListFromDB(
+ renderRequest, -1, -1, "${orderByField?uncap_first}", "asc", new int[] {WorkflowConstants.STATUS_APPROVED});
+ %>
+
+
+
+ <%=LanguageUtil.get(request, "please-select") %>
+ <% for(${capFirstValidationModel} ${uncapFirstValidationModel} : ${uncapFirstValidationModel}Results.getResults()) { %>
+ <%=${uncapFirstValidationModel}.get${orderByField?cap_first}() %>
+ <% } %>
+
+
+ <#else>
+ #if>
#if>
<#-- ---------------- -->
<#-- Document Library -->
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
index b0dc7a5..f522b65 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_init.jsp.ftl
@@ -54,6 +54,7 @@ page import="com.liferay.trash.util.TrashWebKeys" %>
<#if field.validation?? && field.validation.className??>
<%@page import="${packageName}.model.${field.validation.className}"%>
<%@page import="${packageName}.web.constants.${field.validation.className}WebKeys"%>
+<%@page import="${packageName}.web.util.${field.validation.className}ViewHelper"%>
<%@page import="${packageName}.service.${field.validation.className}LocalService"%>
#if>
#list>
@@ -85,4 +86,4 @@ datetimeFormatVal = HtmlUtil.escape(portletPreferences.getValue("datetimeFormat"
datePickerFormatVal = HtmlUtil.escape(portletPreferences.getValue("datePickerFormat", ${uncapFirstModel}Configuration.datePickerFormat()));
}
-%>
\ No newline at end of file
+%>
diff --git a/src/test/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl b/src/test/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
index 748fde4..ff9234d 100644
--- a/src/test/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
+++ b/src/test/resources/templates/7.2/Portlet_XXXXWEB_view.jsp.ftl
@@ -12,6 +12,16 @@ String iconUnchecked = "unchecked";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateFormatVal);
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(datetimeFormatVal);
+<#list application.fields as field >
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+ <#assign uppercaseValidationModel = "${field.validation.className?upper_case}">
+ ${capFirstValidationModel}LocalService ${uncapFirstValidationModel}LocalService = (${capFirstValidationModel}LocalService) request
+ .getAttribute(${capFirstModel}WebKeys.${uppercaseValidationModel}_LOCAL_SERVICE);
+ #if>
+#list>
+
${capFirstModel}DisplayContext ${uncapFirstModel}DisplayContext = (${capFirstModel}DisplayContext)request.getAttribute(${capFirstModel}WebKeys.${uppercaseModel}_DISPLAY_CONTEXT);
String displayStyle = ${uncapFirstModel}DisplayContext.getDisplayStyle();
@@ -86,6 +96,29 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
field.type?string == "com.liferay.damascus.cli.json.fields.DocumentLibrary" ||
field.type?string == "com.liferay.damascus.cli.json.fields.Integer"
>
+ <#if field.validation?? && field.validation.className??>
+ <#assign capFirstValidationModel = "${field.validation.className?cap_first}">
+ <#assign uncapFirstValidationModel = "${field.validation.className?uncap_first}">
+
+ <#assign fieldName = "PrimaryKey">
+ <#if field.validation.fieldName??>
+ <#assign fieldName = "${field.validation.fieldName?cap_first}">
+ #if>
+
+ <#assign orderByField = "PrimaryKey">
+ <#if field.validation.orderByField??>
+ <#assign orderByField = "${field.validation.orderByField?cap_first}">
+ #if>
+ <%
+ String ${field.name}Text = "";
+ try {
+ ${capFirstValidationModel} ${uncapFirstValidationModel} = ${uncapFirstValidationModel}LocalService.get${capFirstValidationModel}(GetterUtil.getLong(${uncapFirstModel}.get${field.name?cap_first}()));
+ ${field.name}Text = ${uncapFirstValidationModel}.get${orderByField}();
+ } catch(Exception e) {}
+ %>
+
+ <#else>
-
+ #if>
#if>
<#-- ---------------- -->
<#-- Date -->
@@ -160,4 +193,4 @@ ${capFirstModel}ManagementToolbarDisplayContext ${uncapFirstModel}ManagementTool
submitForm(form, '');
}
}
-
\ No newline at end of file
+
diff --git a/src/test/resources/templates/7.2/base_relation_fail.json b/src/test/resources/templates/7.2/base_relation_fail.json
new file mode 100644
index 0000000..a4535a4
--- /dev/null
+++ b/src/test/resources/templates/7.2/base_relation_fail.json
@@ -0,0 +1,100 @@
+{
+ "projectName": "Employee",
+ "packageName": "com.liferay.sb.employee",
+ "liferayVersion": "7.1",
+ "applications": [{
+ "model": "Employee",
+ "title": "Employee Test",
+ "web": "true",
+ "asset": {
+ "assetTitleFieldName": "employeeTitleName",
+ "assetSummaryFieldName": "employeeSummaryName",
+ "categories": "true",
+ "discussion": "true",
+ "ratings": "true",
+ "tags": "true",
+ "relatedAssets": "true",
+ "fullContentFieldName": "employeefullContent",
+ "workflow": "true",
+ "generateActivity": "true",
+ "trash": "true",
+ "advancedSearch": "true",
+ "exportExcel": "true"
+ },
+ "fieldsName": "Employees",
+ "fields": [{
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "primary": true,
+ "name": "employeeId",
+ "title": "Employee Id",
+ "showFieldInView": "false",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Varchar",
+ "name": "name",
+ "title": "Name",
+ "length": "80",
+ "showFieldInView": "true",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "name": "position",
+ "title": "Position",
+ "showFieldInView": "false",
+ "required": "true",
+ "validation": {
+ "className": "Skills",
+ "fieldName": "skillId",
+ "orderByField": "title"
+ }
+ }
+ ],
+ "customValue": {
+ "your_own_id": "your_custom_value_for_template_here"
+ }
+ },
+ {
+ "model": "Position",
+ "title": "Position Test",
+ "web": "true",
+ "asset": {
+ "assetTitleFieldName": "positionTitleName",
+ "assetSummaryFieldName": "positionSummaryName",
+ "categories": "true",
+ "discussion": "true",
+ "ratings": "true",
+ "tags": "true",
+ "relatedAssets": "true",
+ "fullContentFieldName": "positionfullContent",
+ "workflow": "true",
+ "generateActivity": "true",
+ "trash": "true",
+ "advancedSearch": "true",
+ "exportExcel": "true"
+ },
+ "fieldsName": "Positions",
+ "fields": [{
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "primary": true,
+ "name": "positionId",
+ "title": "Position Id",
+ "showFieldInView": "false",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Varchar",
+ "name": "title",
+ "title": "Title",
+ "length": "80",
+ "showFieldInView": "true",
+ "required": "true"
+ }
+ ],
+ "customValue": {
+ "your_own_id": "your_custom_value_for_template_here"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/templates/7.2/base_relation_success.json b/src/test/resources/templates/7.2/base_relation_success.json
new file mode 100644
index 0000000..0b01a65
--- /dev/null
+++ b/src/test/resources/templates/7.2/base_relation_success.json
@@ -0,0 +1,100 @@
+{
+ "projectName": "Employee",
+ "packageName": "com.liferay.sb.employee",
+ "liferayVersion": "7.1",
+ "applications": [{
+ "model": "Employee",
+ "title": "Employee Test",
+ "web": "true",
+ "asset": {
+ "assetTitleFieldName": "employeeTitleName",
+ "assetSummaryFieldName": "employeeSummaryName",
+ "categories": "true",
+ "discussion": "true",
+ "ratings": "true",
+ "tags": "true",
+ "relatedAssets": "true",
+ "fullContentFieldName": "employeefullContent",
+ "workflow": "true",
+ "generateActivity": "true",
+ "trash": "true",
+ "advancedSearch": "true",
+ "exportExcel": "true"
+ },
+ "fieldsName": "Employees",
+ "fields": [{
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "primary": true,
+ "name": "employeeId",
+ "title": "Employee Id",
+ "showFieldInView": "false",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Varchar",
+ "name": "name",
+ "title": "Name",
+ "length": "80",
+ "showFieldInView": "true",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "name": "position",
+ "title": "Position",
+ "showFieldInView": "false",
+ "required": "true",
+ "validation": {
+ "className": "Position",
+ "fieldName": "positionId",
+ "orderByField": "title"
+ }
+ }
+ ],
+ "customValue": {
+ "your_own_id": "your_custom_value_for_template_here"
+ }
+ },
+ {
+ "model": "Position",
+ "title": "Position Test",
+ "web": "true",
+ "asset": {
+ "assetTitleFieldName": "positionTitleName",
+ "assetSummaryFieldName": "positionSummaryName",
+ "categories": "true",
+ "discussion": "true",
+ "ratings": "true",
+ "tags": "true",
+ "relatedAssets": "true",
+ "fullContentFieldName": "positionfullContent",
+ "workflow": "true",
+ "generateActivity": "true",
+ "trash": "true",
+ "advancedSearch": "true",
+ "exportExcel": "true"
+ },
+ "fieldsName": "Positions",
+ "fields": [{
+ "type": "com.liferay.damascus.cli.json.fields.Long",
+ "primary": true,
+ "name": "positionId",
+ "title": "Position Id",
+ "showFieldInView": "false",
+ "required": "true"
+ },
+ {
+ "type": "com.liferay.damascus.cli.json.fields.Varchar",
+ "name": "title",
+ "title": "Title",
+ "length": "80",
+ "showFieldInView": "true",
+ "required": "true"
+ }
+ ],
+ "customValue": {
+ "your_own_id": "your_custom_value_for_template_here"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/templates/7.2/service.xml b/src/test/resources/templates/7.2/service.xml
index 048ffd7..54d3c0f 100644
--- a/src/test/resources/templates/7.2/service.xml
+++ b/src/test/resources/templates/7.2/service.xml
@@ -125,44 +125,16 @@
-
#list>
- <#-- ---------------- -->
- <#-- / Fields Finders -->
- <#-- ---------------- -->
- <#-- TODO: Relations need to be implimented -->
- <#if false >
- <#list app.relations as relation >
-
-
-
-
-
-
-
-
- #list>
- #if>
- <#-- TODO: Validations need to be implimented -->
- <#if false >
- <#list app.fields as field >
- <#list field.validations as validation >
-
-
-
-
- #list>
- #list>
- #if>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
#list>
@@ -173,4 +145,4 @@
-
\ No newline at end of file
+