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; // // @@ -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); @@ -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; @@ -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; // // @@ -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); @@ -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; @@ -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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?uncap_first}"> + + <% + ${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> + <#-- ---------------- --> <#-- 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"%> - <%-- --%> @@ -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); + + + ${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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?cap_first}"> + + <% + 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> - + <#-- ---------------- --> <#-- 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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?uncap_first}"> + + <% + ${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> + <#-- ---------------- --> <#-- 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"%> @@ -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); + + + ${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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?cap_first}"> + + <% + 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> - + <#-- ---------------- --> <#-- 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 @@ - - <#-- ---------------- --> - <#-- / Fields Finders --> - <#-- ---------------- --> - <#-- TODO: Relations need to be implimented --> - <#if false > - <#list app.relations as relation > - - - - - - - - - - - <#-- TODO: Validations need to be implimented --> - <#if false > - <#list app.fields as field > - <#list field.validations as validation > - - - - - - - - - - - - - - - - + + + + + + + + + @@ -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 + 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; // // @@ -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); @@ -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; @@ -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; // // @@ -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); @@ -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; @@ -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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?uncap_first}"> + + <% + ${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> + <#-- ---------------- --> <#-- 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"%> - <%-- --%> @@ -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); + + + ${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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?cap_first}"> + + <% + 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> - + <#-- ---------------- --> <#-- 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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?uncap_first}"> + + <% + ${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> + <#-- ---------------- --> <#-- 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"%> @@ -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); + + + ${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}"> + + + <#assign orderByField = "PrimaryKey"> + <#if field.validation.orderByField??> + <#assign orderByField = "${field.validation.orderByField?cap_first}"> + + <% + 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> - + <#-- ---------------- --> <#-- 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 @@ - - <#-- ---------------- --> - <#-- / Fields Finders --> - <#-- ---------------- --> - <#-- TODO: Relations need to be implimented --> - <#if false > - <#list app.relations as relation > - - - - - - - - - - - <#-- TODO: Validations need to be implimented --> - <#if false > - <#list app.fields as field > - <#list field.validations as validation > - - - - - - - - - - - - - - - - + + + + + + + + + @@ -173,4 +145,4 @@ - \ No newline at end of file +