diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87d78f0..bd4b9c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,4 +9,4 @@ on: jobs: build: - uses: axonivy-market/github-workflows/.github/workflows/ci.yml@v4 + uses: axonivy-market/github-workflows/.github/workflows/ci.yml@v5 diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index c2fee37..ae5e6c3 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -8,4 +8,4 @@ on: jobs: build: - uses: axonivy-market/github-workflows/.github/workflows/dev.yml@v4 + uses: axonivy-market/github-workflows/.github/workflows/dev.yml@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab5b0d7..bc801b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,4 +4,4 @@ on: workflow_dispatch jobs: build: - uses: axonivy-market/github-workflows/.github/workflows/release.yml@v4 + uses: axonivy-market/github-workflows/.github/workflows/release.yml@v5 diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/master-detail-demo/.classpath b/master-detail-demo/.classpath index aa20b3e..9baacfb 100644 --- a/master-detail-demo/.classpath +++ b/master-detail-demo/.classpath @@ -5,12 +5,7 @@ - - - - - - + diff --git a/master-detail-demo/.project b/master-detail-demo/.project index ba48614..1f4dfa0 100644 --- a/master-detail-demo/.project +++ b/master-detail-demo/.project @@ -1,49 +1,53 @@ - - - master-detail-demo - - - - - - ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder - - - - - ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - ch.ivyteam.ivy.project.IvyProjectNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.jem.beaninfo.BeanInfoNature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature - - + + + master-detail-demo + + + + + + ch.ivyteam.ivy.designer.dataClasses.ui.ivyDataClassBuilder + + + + + ch.ivyteam.ivy.designer.process.ui.ivyWebServiceProcessClassBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + ch.ivyteam.ivy.dialog.form.build.ivyDialogFormBuilder + + + + + ch.ivyteam.ivy.designer.ide.ivyModelValidationBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + ch.ivyteam.ivy.project.IvyProjectNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.jem.beaninfo.BeanInfoNature + org.eclipse.wst.common.project.facet.core.nature + + \ No newline at end of file diff --git a/master-detail-demo/.settings/.jsdtscope b/master-detail-demo/.settings/.jsdtscope deleted file mode 100644 index cf5ec79..0000000 --- a/master-detail-demo/.settings/.jsdtscope +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/master-detail-demo/.settings/ch.ivyteam.ivy.designer.prefs b/master-detail-demo/.settings/ch.ivyteam.ivy.designer.prefs index 9cf0343..dfcd648 100644 --- a/master-detail-demo/.settings/ch.ivyteam.ivy.designer.prefs +++ b/master-detail-demo/.settings/ch.ivyteam.ivy.designer.prefs @@ -1,5 +1,4 @@ -ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.demo.Data -ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.demo -ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11 -ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=100000 -eclipse.preferences.version=1 +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.demo +ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=13 +ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=120001 +eclipse.preferences.version=1 diff --git a/master-detail-demo/.settings/org.eclipse.core.resources.prefs b/master-detail-demo/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/master-detail-demo/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/master-detail-demo/.settings/org.eclipse.jdt.core.prefs b/master-detail-demo/.settings/org.eclipse.jdt.core.prefs index f78f7f7..96641ff 100644 --- a/master-detail-demo/.settings/org.eclipse.jdt.core.prefs +++ b/master-detail-demo/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 -org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=17 +org.eclipse.jdt.core.compiler.source=21 diff --git a/master-detail-demo/.settings/org.eclipse.wst.common.component b/master-detail-demo/.settings/org.eclipse.wst.common.component index 012ab85..5be9fc1 100644 --- a/master-detail-demo/.settings/org.eclipse.wst.common.component +++ b/master-detail-demo/.settings/org.eclipse.wst.common.component @@ -1,20 +1,10 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/master-detail-demo/.settings/org.eclipse.wst.common.project.facet.core.xml b/master-detail-demo/.settings/org.eclipse.wst.common.project.facet.core.xml index c2098f9..621b1f8 100644 --- a/master-detail-demo/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/master-detail-demo/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,8 +1,6 @@ - - - - - - - - + + + + + + \ No newline at end of file diff --git a/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container b/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container deleted file mode 100644 index 3bd5d0a..0000000 --- a/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.container +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name b/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name deleted file mode 100644 index 05bd71b..0000000 --- a/master-detail-demo/.settings/org.eclipse.wst.jsdt.ui.superType.name +++ /dev/null @@ -1 +0,0 @@ -Window \ No newline at end of file diff --git a/master-detail-demo/config/variables.yaml b/master-detail-demo/config/variables.yaml index 64c8fa0..4448394 100644 --- a/master-detail-demo/config/variables.yaml +++ b/master-detail-demo/config/variables.yaml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://json-schema.axonivy.com/app/12.0.0/variables.json # == Variables == # # You can define here your project Variables. diff --git a/master-detail-demo/dataclasses/Test/CreateTestDataData.d.json b/master-detail-demo/dataclasses/Test/CreateTestDataData.d.json new file mode 100644 index 0000000..0553c57 --- /dev/null +++ b/master-detail-demo/dataclasses/Test/CreateTestDataData.d.json @@ -0,0 +1,6 @@ +{ + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", + "simpleName" : "CreateTestDataData", + "namespace" : "Test", + "isBusinessCaseData" : false +} \ No newline at end of file diff --git a/master-detail-demo/dataclasses/Test/CreateTestDataData.ivyClass b/master-detail-demo/dataclasses/Test/CreateTestDataData.ivyClass deleted file mode 100644 index 6aefdca..0000000 --- a/master-detail-demo/dataclasses/Test/CreateTestDataData.ivyClass +++ /dev/null @@ -1,2 +0,0 @@ -CreateTestDataData #class -Test #namespace diff --git a/master-detail-demo/dataclasses/com/axonivy/demo/Data.d.json b/master-detail-demo/dataclasses/com/axonivy/demo/Data.d.json new file mode 100644 index 0000000..258256e --- /dev/null +++ b/master-detail-demo/dataclasses/com/axonivy/demo/Data.d.json @@ -0,0 +1,6 @@ +{ + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", + "simpleName" : "Data", + "namespace" : "com.axonivy.demo", + "isBusinessCaseData" : false +} \ No newline at end of file diff --git a/master-detail-demo/dataclasses/com/axonivy/demo/Data.ivyClass b/master-detail-demo/dataclasses/com/axonivy/demo/Data.ivyClass deleted file mode 100644 index b8d071b..0000000 --- a/master-detail-demo/dataclasses/com/axonivy/demo/Data.ivyClass +++ /dev/null @@ -1,2 +0,0 @@ -Data #class -com.axonivy.demo #namespace diff --git a/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.d.json b/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.d.json new file mode 100644 index 0000000..34dde9e --- /dev/null +++ b/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.d.json @@ -0,0 +1,10 @@ +{ + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", + "simpleName" : "MasterDetailDemoData", + "namespace" : "com.axonivy.demo", + "isBusinessCaseData" : false, + "fields" : [ { + "name" : "productID", + "type" : "String" + } ] +} \ No newline at end of file diff --git a/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.ivyClass b/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.ivyClass deleted file mode 100644 index 909bdf6..0000000 --- a/master-detail-demo/dataclasses/com/axonivy/demo/MasterDetailDemoData.ivyClass +++ /dev/null @@ -1,3 +0,0 @@ -MasterDetailDemoData #class -com.axonivy.demo #namespace -productID String #field diff --git a/master-detail-demo/pom.xml b/master-detail-demo/pom.xml index 8010533..7df17e0 100644 --- a/master-detail-demo/pom.xml +++ b/master-detail-demo/pom.xml @@ -3,10 +3,11 @@ 4.0.0 com.axonivy.demo.masterdetail master-detail-demo - 10.0.14-SNAPSHOT + 12.0.0-SNAPSHOT iar - 10.0.16 + 12.0.0 + UTF-8 @@ -21,7 +22,7 @@ com.axonivy.portal portal-components - [10.0.7, 11.0.0) + 12.0.1 iar diff --git a/master-detail-demo/processes/CreateTestData.p.json b/master-detail-demo/processes/CreateTestData.p.json index af2ecb7..a5365c3 100644 --- a/master-detail-demo/processes/CreateTestData.p.json +++ b/master-detail-demo/processes/CreateTestData.p.json @@ -1,5 +1,5 @@ { - "format" : "10.0.0", + "$schema" : "https://json-schema.axonivy.com/process/12.0.0/process.json", "id" : "1887B5D187E6060D", "config" : { "data" : "Test.CreateTestDataData" @@ -23,22 +23,29 @@ "visual" : { "at" : { "x" : 504, "y" : 152 } }, - "connect" : { "id" : "f10", "to" : "f9" } + "connect" : [ + { "id" : "f10", "to" : "f9" } + ] }, { "id" : "f7", "type" : "RequestStart", "name" : "createTestDataRepo.ivp", "config" : { - "callSignature" : "createTestData", - "outLink" : "createTestData.ivp", - "startName" : "Create Test Data Repo", - "tags" : "demo" + "signature" : "createTestData", + "request" : { + "name" : "Create Test Data Repo" + } }, + "tags" : [ + "demo" + ], "visual" : { "at" : { "x" : 344, "y" : 152 }, "labelOffset" : { "x" : 50, "y" : 37 } }, - "connect" : { "id" : "f8", "to" : "f3" } + "connect" : [ + { "id" : "f8", "to" : "f3" } + ] }, { "id" : "f9", "type" : "TaskEnd", diff --git a/master-detail-demo/processes/MasterDetailDemo.p.json b/master-detail-demo/processes/MasterDetailDemo.p.json index 5b6c8c2..f7ff1db 100644 --- a/master-detail-demo/processes/MasterDetailDemo.p.json +++ b/master-detail-demo/processes/MasterDetailDemo.p.json @@ -1,5 +1,5 @@ { - "format" : "10.0.0", + "$schema" : "https://json-schema.axonivy.com/process/12.0.0/process.json", "id" : "188341B154DAFDDD", "config" : { "data" : "com.axonivy.demo.MasterDetailDemoData" @@ -9,14 +9,17 @@ "type" : "RequestStart", "name" : "showProductList.ivp", "config" : { - "callSignature" : "showProductList", - "outLink" : "showProductList.ivp", - "startName" : "Show Product List" + "signature" : "showProductList", + "request" : { + "name" : "Show Product List" + } }, "visual" : { "at" : { "x" : 104, "y" : 80 } }, - "connect" : { "id" : "f8", "to" : "f7" } + "connect" : [ + { "id" : "f8", "to" : "f7" } + ] }, { "id" : "f6", "type" : "TaskEnd", @@ -28,8 +31,7 @@ "type" : "DialogCall", "name" : "List all products", "config" : { - "dialogId" : "com.axonivy.demo.masterdetail.ProductList", - "startMethod" : "start()", + "dialog" : "com.axonivy.demo.masterdetail.ProductList:start()", "output" : { "map" : { "out" : "in", @@ -40,39 +42,40 @@ "visual" : { "at" : { "x" : 232, "y" : 80 } }, - "connect" : { "id" : "f13", "to" : "f12" } + "connect" : [ + { "id" : "f13", "to" : "f12" } + ] }, { "id" : "f0", "type" : "RequestStart", "name" : "manageProduct.ivp", "config" : { - "callSignature" : "manageProduct", + "signature" : "manageProduct", "input" : { "params" : [ - { "name" : "productID", "type" : "String" } + { "name" : "productID", "type" : "String", "desc" : "" } ], "map" : { "out.productID" : "param.productID" } }, - "outLink" : "manageProduct.ivp", - "showInStartList" : false + "request" : { + "isVisibleOnStartList" : false + } }, "visual" : { "at" : { "x" : 104, "y" : 304 } }, - "connect" : { "id" : "f3", "to" : "f2" } + "connect" : [ + { "id" : "f3", "to" : "f2" } + ] }, { "id" : "f2", "type" : "DialogCall", "name" : "Product Detail", "config" : { - "dialogId" : "com.axonivy.demo.masterdetail.ProductDetail", - "startMethod" : "start(String)", + "dialog" : "com.axonivy.demo.masterdetail.ProductDetail:start(String)", "call" : { - "params" : [ - { "name" : "id", "type" : "String" } - ], "map" : { "param.id" : "in.productID" } @@ -81,17 +84,24 @@ "visual" : { "at" : { "x" : 232, "y" : 304 } }, - "connect" : { "id" : "f15", "to" : "f7" } + "connect" : [ + { "id" : "f15", "to" : "f7" } + ] }, { "id" : "f12", "type" : "Alternative", + "config" : { + "conditions" : { + "f17" : "in.productID.length() == 0" + } + }, "visual" : { "at" : { "x" : 424, "y" : 80 } }, "connect" : [ { "id" : "f17", "to" : "f6", "label" : { "name" : "exit" - }, "condition" : "in.productID.length() == 0" }, + } }, { "id" : "f9", "to" : "f14", "label" : { "name" : [ "edit", @@ -104,12 +114,8 @@ "type" : "DialogCall", "name" : "Product Detail", "config" : { - "dialogId" : "com.axonivy.demo.masterdetail.ProductDetail", - "startMethod" : "start(String)", + "dialog" : "com.axonivy.demo.masterdetail.ProductDetail:start(String)", "call" : { - "params" : [ - { "name" : "id", "type" : "String" } - ], "map" : { "param.id" : "in.productID" } @@ -118,6 +124,8 @@ "visual" : { "at" : { "x" : 424, "y" : 200 } }, - "connect" : { "id" : "f16", "to" : "f7", "via" : [ { "x" : 248, "y" : 200 } ] } + "connect" : [ + { "id" : "f16", "to" : "f7", "via" : [ { "x" : 248, "y" : 200 } ] } + ] } ] } \ No newline at end of file diff --git a/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/ProductRepoLazyDataModel.java b/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/ProductRepoLazyDataModel.java index de3fa03..954deb2 100644 --- a/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/ProductRepoLazyDataModel.java +++ b/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/ProductRepoLazyDataModel.java @@ -242,6 +242,7 @@ public void saveProduct(Product product) { DaoServiceRegistry.getProductRepoDAO().save(product); } + @SuppressWarnings("unchecked") private void addSelectOneMenuQueryFilter(Query query, String filterName, Map filters) { if(filters.get(filterName) != null) { if(filters.get(filterName).getFilterValue() instanceof ArrayList) { @@ -312,8 +313,9 @@ private void addStringContainsQueryFilter(Query query, String filterNam } } + @SuppressWarnings("unchecked") private void addDateRangeQueryFilter(Query query, String filterName, Map filters, boolean checkStatus) { - if(filters.get(filterName) != null) { + if(filters.get(filterName) != null) { List dateRange = (ArrayList) filters.get(filterName).getFilterValue(); if(dateRange.size() > 1) { Filter dateFilter = Ivy.repo().search(Product.class).dateTimeField(filterName).isAfterOrEqualTo(DateService.setTimeZero(dateRange.get(0))).and().dateTimeField(filterName).isBeforeOrEqualTo(DateService.setTimeMidnight(dateRange.get(1))); diff --git a/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/StateDataTableBean.java b/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/StateDataTableBean.java index 7559a9a..6fe828e 100644 --- a/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/StateDataTableBean.java +++ b/master-detail-demo/src/com/axonivy/demo/masterdetail/ui/StateDataTableBean.java @@ -124,7 +124,8 @@ private Map getFilterStateFromIUser() { return filters; } - + + @SuppressWarnings({ "rawtypes", "unchecked" }) private void setDropdownFilterValue(Entry filter, int filterSize, Class clazz) { Object[] resultObjectArray = new Object[filterSize]; List statusList = (List) filter.getValue().getFilterValue(); @@ -133,7 +134,8 @@ private void setDropdownFilterValue(Entry filter, int filter } filter.getValue().setFilterValue(resultObjectArray); } - + + @SuppressWarnings("unchecked") private void setDateFilterValue(Entry filter, String... filterNames) { for(String filterName : filterNames) { if(filterName.equals(filter.getKey())) { diff --git a/master-detail-demo/src/com/axonivy/demo/masterdetail/util/LinkHelper.java b/master-detail-demo/src/com/axonivy/demo/masterdetail/util/LinkHelper.java index 8ad38c6..d85e657 100644 --- a/master-detail-demo/src/com/axonivy/demo/masterdetail/util/LinkHelper.java +++ b/master-detail-demo/src/com/axonivy/demo/masterdetail/util/LinkHelper.java @@ -16,7 +16,7 @@ import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.request.IHttpRequest; -import ch.ivyteam.ivy.security.SecurityManagerFactory; +import ch.ivyteam.ivy.security.exec.Sudo; import ch.ivyteam.ivy.workflow.IProcessStart; @@ -86,7 +86,7 @@ public static String getFullLinkBySignatureAndPattern(String signature, String p public static List getFullLinksBySignature(String signature) { List links = new ArrayList<>(); try { - SecurityManagerFactory.getSecurityManager().executeAsSystem(() -> { + Sudo.get(() -> { if (Ivy.request() instanceof IHttpRequest){ HttpServletRequest httpReq = ((IHttpRequest)Ivy.request()).getHttpServletRequest(); Set processStarts = Ivy.wf().findProcessStartsBySignature(signature); diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetail.rddescriptor b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetail.rddescriptor deleted file mode 100644 index ae605f0..0000000 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetail.rddescriptor +++ /dev/null @@ -1,7 +0,0 @@ - - - - viewTechnology - JSF - - diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.d.json b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.d.json new file mode 100644 index 0000000..9410a14 --- /dev/null +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.d.json @@ -0,0 +1,15 @@ +{ + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", + "simpleName" : "ProductDetailData", + "namespace" : "com.axonivy.demo.masterdetail.ProductDetail", + "isBusinessCaseData" : false, + "fields" : [ { + "name" : "id", + "type" : "String", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "product", + "type" : "com.axonivy.demo.masterdetail.entity.Product", + "modifiers" : [ "PERSISTENT" ] + } ] +} \ No newline at end of file diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.ivyClass b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.ivyClass deleted file mode 100644 index 48040c3..0000000 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailData.ivyClass +++ /dev/null @@ -1,6 +0,0 @@ -ProductDetailData #class -com.axonivy.demo.masterdetail.ProductDetail #namespace -id String #field -id PERSISTENT #fieldModifier -product com.axonivy.demo.masterdetail.entity.Product #field -product PERSISTENT #fieldModifier diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailProcess.p.json b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailProcess.p.json index b2f0978..0c67434 100644 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailProcess.p.json +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductDetail/ProductDetailProcess.p.json @@ -1,5 +1,5 @@ { - "format" : "10.0.0", + "$schema" : "https://json-schema.axonivy.com/process/12.0.0/process.json", "id" : "1887BAFC2265728D", "kind" : "HTML_DIALOG", "config" : { @@ -10,10 +10,10 @@ "type" : "HtmlDialogStart", "name" : "start()", "config" : { - "callSignature" : "start", + "signature" : "start", "input" : { "params" : [ - { "name" : "id", "type" : "String" } + { "name" : "id", "type" : "String", "desc" : "" } ], "map" : { "out.id" : "param.id" @@ -24,7 +24,9 @@ "visual" : { "at" : { "x" : 96, "y" : 64 } }, - "connect" : { "id" : "f7", "to" : "f6" } + "connect" : [ + { "id" : "f7", "to" : "f6" } + ] }, { "id" : "f1", "type" : "HtmlDialogEnd", @@ -41,7 +43,9 @@ "visual" : { "at" : { "x" : 96, "y" : 160 } }, - "connect" : { "id" : "f5", "to" : "f4" } + "connect" : [ + { "id" : "f5", "to" : "f4" } + ] }, { "id" : "f4", "type" : "HtmlDialogExit", @@ -64,7 +68,9 @@ "visual" : { "at" : { "x" : 224, "y" : 64 } }, - "connect" : { "id" : "f2", "to" : "f1" } + "connect" : [ + { "id" : "f2", "to" : "f1" } + ] }, { "id" : "f8", "type" : "HtmlDialogEventStart", @@ -75,7 +81,9 @@ "visual" : { "at" : { "x" : 96, "y" : 232 } }, - "connect" : { "id" : "f11", "to" : "f9" } + "connect" : [ + { "id" : "f11", "to" : "f9" } + ] }, { "id" : "f9", "type" : "Script", @@ -93,6 +101,8 @@ "visual" : { "at" : { "x" : 224, "y" : 232 } }, - "connect" : { "id" : "f10", "to" : "f4", "via" : [ { "x" : 352, "y" : 232 } ] } + "connect" : [ + { "id" : "f10", "to" : "f4", "via" : [ { "x" : 352, "y" : 232 } ] } + ] } ] } \ No newline at end of file diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductDetail.xhtml b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductDetail.xhtml index 8b1c21b..6b703e5 100644 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductDetail.xhtml +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductDetail.xhtml @@ -109,9 +109,9 @@
+ styleClass="buttonMargin" icon="fa fa-check" actionListener="#{logic.save}" style="float:right" /> + icon="fa fa-times" style="float:right" />
diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.rddescriptor b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.rddescriptor deleted file mode 100644 index 6eafec9..0000000 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.rddescriptor +++ /dev/null @@ -1,19 +0,0 @@ - - - true - - guid - 182344B366DB4E52 - true - - - version - 1 - true - - - viewTechnology - JSF - true - - diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.xhtml b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.xhtml index 7cab2c3..768b3cb 100644 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.xhtml +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductList.xhtml @@ -210,24 +210,34 @@ - + - - + + - - + + - - - + + + @@ -242,7 +252,7 @@
- + @@ -343,19 +353,21 @@ - - + - - - + message="#{ivy.cms.co('/Dialogs/com/axonivy/demo/masterdetail/ui/ProductList/deletionMessage')}" + header="#{ivy.cms.co('/Dialogs/com/axonivy/demo/masterdetail/ui/ProductList/deletionHeader')}" + widgetVar="deleteProductsDialog" appendTo="@(body)" severity="alert" + responsive="true"> + + + diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.d.json b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.d.json new file mode 100644 index 0000000..ca12e57 --- /dev/null +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.d.json @@ -0,0 +1,75 @@ +{ + "$schema" : "https://json-schema.axonivy.com/data-class/12.0.0/data-class.json", + "simpleName" : "ProductListData", + "namespace" : "com.axonivy.demo.masterdetail.ProductList", + "isBusinessCaseData" : false, + "fields" : [ { + "name" : "copyValid", + "type" : "Boolean", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "editedRowKey", + "type" : "String", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "field", + "type" : "String", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "isProfileAdmin", + "type" : "Boolean", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "newObjects", + "type" : "List", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "numberOfCopies", + "type" : "Integer", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "privateProfiles", + "type" : "java.util.List", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "publicProfiles", + "type" : "java.util.List", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "selectedProduct", + "type" : "java.util.List", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "selectedProfile", + "type" : "com.axonivy.demo.masterdetail.entity.Profile", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "streamedContent", + "type" : "org.primefaces.model.DefaultStreamedContent", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "tableRows", + "type" : "Integer", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "stateDataTableBean", + "type" : "com.axonivy.demo.masterdetail.ui.StateDataTableBean", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "multiChangeState", + "type" : "com.axonivy.demo.masterdetail.enums.ProductStatus", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "product", + "type" : "com.axonivy.demo.masterdetail.entity.Product", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "readOnly", + "type" : "Boolean", + "modifiers" : [ "PERSISTENT" ] + }, { + "name" : "selectedProductID", + "type" : "String", + "modifiers" : [ "PERSISTENT" ] + } ] +} \ No newline at end of file diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.ivyClass b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.ivyClass deleted file mode 100644 index 0149cbb..0000000 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListData.ivyClass +++ /dev/null @@ -1,36 +0,0 @@ -ProductListData #class -com.axonivy.demo.masterdetail.ProductList #namespace -copyValid Boolean #field -copyValid PERSISTENT #fieldModifier -editedRowKey String #field -editedRowKey PERSISTENT #fieldModifier -field String #field -field PERSISTENT #fieldModifier -isProfileAdmin Boolean #field -isProfileAdmin PERSISTENT #fieldModifier -newObjects List #field -newObjects PERSISTENT #fieldModifier -numberOfCopies Integer #field -numberOfCopies PERSISTENT #fieldModifier -privateProfiles java.util.List #field -privateProfiles PERSISTENT #fieldModifier -publicProfiles java.util.List #field -publicProfiles PERSISTENT #fieldModifier -selectedProduct java.util.List #field -selectedProduct PERSISTENT #fieldModifier -selectedProfile com.axonivy.demo.masterdetail.entity.Profile #field -selectedProfile PERSISTENT #fieldModifier -streamedContent org.primefaces.model.DefaultStreamedContent #field -streamedContent PERSISTENT #fieldModifier -tableRows Integer #field -tableRows PERSISTENT #fieldModifier -stateDataTableBean com.axonivy.demo.masterdetail.ui.StateDataTableBean #field -stateDataTableBean PERSISTENT #fieldModifier -multiChangeState com.axonivy.demo.masterdetail.enums.ProductStatus #field -multiChangeState PERSISTENT #fieldModifier -product com.axonivy.demo.masterdetail.entity.Product #field -product PERSISTENT #fieldModifier -readOnly Boolean #field -readOnly PERSISTENT #fieldModifier -selectedProductID String #field -selectedProductID PERSISTENT #fieldModifier diff --git a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListProcess.p.json b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListProcess.p.json index 1e9950d..595d062 100644 --- a/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListProcess.p.json +++ b/master-detail-demo/src_hd/com/axonivy/demo/masterdetail/ProductList/ProductListProcess.p.json @@ -1,5 +1,5 @@ { - "format" : "10.0.0", + "$schema" : "https://json-schema.axonivy.com/process/12.0.0/process.json", "id" : "1883447E949FB220", "kind" : "HTML_DIALOG", "config" : { @@ -10,7 +10,7 @@ "type" : "HtmlDialogStart", "name" : "start()", "config" : { - "callSignature" : "start", + "signature" : "start", "input" : { "map" : { "out.isProfileAdmin" : "true", @@ -26,7 +26,7 @@ }, "result" : { "params" : [ - { "name" : "selectedProductId", "type" : "String" } + { "name" : "selectedProductId", "type" : "String", "desc" : "" } ], "map" : { "result.selectedProductId" : "in.selectedProductID" @@ -38,7 +38,9 @@ "at" : { "x" : 128, "y" : 40 }, "labelOffset" : { "x" : 11, "y" : 35 } }, - "connect" : { "id" : "f2", "to" : "f1" } + "connect" : [ + { "id" : "f2", "to" : "f1" } + ] }, { "id" : "f1", "type" : "HtmlDialogEnd", @@ -62,7 +64,9 @@ "at" : { "x" : 128, "y" : 112 }, "labelOffset" : { "x" : 8, "y" : 35 } }, - "connect" : { "id" : "f5", "to" : "f4" } + "connect" : [ + { "id" : "f5", "to" : "f4" } + ] }, { "id" : "f4", "type" : "HtmlDialogExit", @@ -74,7 +78,6 @@ "type" : "Script", "name" : "delete orders", "config" : { - "security" : "system", "output" : { "code" : [ "import com.axonivy.demo.masterdetail.dao.DaoServiceRegistry;", @@ -85,12 +88,15 @@ " in.stateDataTableBean.lazyModel.deleteOrder(product);", "}" ] - } + }, + "sudo" : true }, "visual" : { "at" : { "x" : 256, "y" : 184 } }, - "connect" : { "id" : "f19", "to" : "f17" } + "connect" : [ + { "id" : "f19", "to" : "f17" } + ] }, { "id" : "f17", "type" : "HtmlDialogEnd", @@ -108,7 +114,9 @@ "at" : { "x" : 128, "y" : 184 }, "labelOffset" : { "x" : 35, "y" : 35 } }, - "connect" : { "id" : "f20", "to" : "f16" } + "connect" : [ + { "id" : "f20", "to" : "f16" } + ] }, { "id" : "f31", "type" : "HtmlDialogEventStart", @@ -120,7 +128,9 @@ "at" : { "x" : 128, "y" : 304 }, "labelOffset" : { "x" : -14, "y" : 35 } }, - "connect" : { "id" : "f35", "to" : "f34" } + "connect" : [ + { "id" : "f35", "to" : "f34" } + ] }, { "id" : "f32", "type" : "HtmlDialogEnd", @@ -157,18 +167,20 @@ }, "visual" : { "at" : { "x" : 256, "y" : 304 }, - "size" : { "width" : 128, "height" : 60 } + "size" : { "width" : 128 } }, - "connect" : { "id" : "f33", "to" : "f32" } + "connect" : [ + { "id" : "f33", "to" : "f32" } + ] }, { "id" : "f36", "type" : "HtmlDialogMethodStart", "name" : "onEditByLinkClicked(String)", "config" : { - "callSignature" : "onEditByLinkClicked", + "signature" : "onEditByLinkClicked", "input" : { "params" : [ - { "name" : "id", "type" : "String" } + { "name" : "id", "type" : "String", "desc" : "" } ], "map" : { "out.selectedProductID" : "param.id" @@ -179,7 +191,9 @@ "visual" : { "at" : { "x" : 128, "y" : 856 } }, - "connect" : { "id" : "f40", "to" : "f37" } + "connect" : [ + { "id" : "f40", "to" : "f37" } + ] }, { "id" : "f37", "type" : "Script", @@ -201,9 +215,11 @@ }, "visual" : { "at" : { "x" : 256, "y" : 856 }, - "size" : { "width" : 128, "height" : 60 } + "size" : { "width" : 128 } }, - "connect" : { "id" : "f39", "to" : "f38" } + "connect" : [ + { "id" : "f39", "to" : "f38" } + ] }, { "id" : "f38", "type" : "HtmlDialogEnd", @@ -220,7 +236,9 @@ "visual" : { "at" : { "x" : 128, "y" : 504 } }, - "connect" : { "id" : "f43", "to" : "f42" } + "connect" : [ + { "id" : "f43", "to" : "f42" } + ] }, { "id" : "f42", "type" : "Script", @@ -238,16 +256,18 @@ "visual" : { "at" : { "x" : 256, "y" : 504 } }, - "connect" : { "id" : "f48", "to" : "f47" } + "connect" : [ + { "id" : "f48", "to" : "f47" } + ] }, { "id" : "f45", "type" : "HtmlDialogMethodStart", "name" : "onEditByViewsClicked(Product)", "config" : { - "callSignature" : "onEditByViewsClicked", + "signature" : "onEditByViewsClicked", "input" : { "params" : [ - { "name" : "product", "type" : "com.axonivy.demo.masterdetail.entity.Product" } + { "name" : "product", "type" : "com.axonivy.demo.masterdetail.entity.Product", "desc" : "" } ], "map" : { "out.product" : "param.product" @@ -258,7 +278,9 @@ "visual" : { "at" : { "x" : 128, "y" : 424 } }, - "connect" : { "id" : "f15", "to" : "f14" } + "connect" : [ + { "id" : "f15", "to" : "f14" } + ] }, { "id" : "f47", "type" : "HtmlDialogEnd", @@ -270,10 +292,10 @@ "type" : "HtmlDialogMethodStart", "name" : "onEditThroughProcessClicked(String)", "config" : { - "callSignature" : "onEditThroughProcessClicked", + "signature" : "onEditThroughProcessClicked", "input" : { "params" : [ - { "name" : "selectedId", "type" : "String" } + { "name" : "selectedId", "type" : "String", "desc" : "" } ], "map" : { "out.selectedProductID" : "param.selectedId" @@ -285,7 +307,9 @@ "at" : { "x" : 128, "y" : 656 }, "labelOffset" : { "x" : 51, "y" : 35 } }, - "connect" : { "id" : "f13", "to" : "f12" } + "connect" : [ + { "id" : "f13", "to" : "f12" } + ] }, { "id" : "f12", "type" : "HtmlDialogExit", diff --git a/master-detail-demo/webContent/layouts/frame-10.xhtml b/master-detail-demo/webContent/layouts/frame-10.xhtml index 936a73b..b6244a1 100644 --- a/master-detail-demo/webContent/layouts/frame-10.xhtml +++ b/master-detail-demo/webContent/layouts/frame-10.xhtml @@ -32,7 +32,7 @@ and refence it below in the head part. - + - master-detail - master-detail-modules - 10.0.14-SNAPSHOT + com.axonivy.demo.masterdetail + master-detail + master-detail-modules + 12.0.0-SNAPSHOT pom