From 2eceded6d259752f21ee2c0ac704fdd7bab98c4e Mon Sep 17 00:00:00 2001 From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local> Date: Tue, 21 Jan 2020 11:33:55 +0100 Subject: [PATCH] Serial letter generate and download optimized --- entity/Document_entity/Document_entity.aod | 32 +++++++++++++++++ .../assignmentname_param/valueProcess.js | 3 ++ .../disallowcreate_param/valueProcess.js | 3 ++ entity/Document_entity/grantCreateProcess.js | 4 +++ .../SerialLetter_entity.aod | 34 +++++++++++++++++-- .../assignmentname_param/valueProcess.js | 3 ++ .../assignmentrowid_param/valueProcess.js | 4 +++ .../assignmenttable_param/valueProcess.js | 3 ++ .../downloadletter/iconIdProcess.js | 7 ---- .../downloadletter/onActionProcess.js | 15 +++----- .../downloadletter/stateProcess.js | 2 +- .../downloadletter/titleProcess.js | 8 ----- .../downloadletter/tooltipProcess.js | 8 ----- .../entityfields/generated/valueProcess.js | 4 +-- .../generateletter/onActionProcess.js | 4 +++ .../recordcontainers/db/onDBDelete.js | 2 +- .../SerialLetterMain_view.aod | 5 +++ .../SerialLetterPreview_view.aod | 3 +- .../process.js | 2 +- 19 files changed, 103 insertions(+), 43 deletions(-) create mode 100644 entity/Document_entity/entityfields/singledocument/children/assignmentname_param/valueProcess.js create mode 100644 entity/Document_entity/entityfields/singledocument/children/disallowcreate_param/valueProcess.js create mode 100644 entity/Document_entity/grantCreateProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/documents/children/assignmentname_param/valueProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js delete mode 100644 entity/SerialLetter_entity/entityfields/downloadletter/iconIdProcess.js delete mode 100644 entity/SerialLetter_entity/entityfields/downloadletter/titleProcess.js delete mode 100644 entity/SerialLetter_entity/entityfields/downloadletter/tooltipProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/generateletter/onActionProcess.js diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod index a1c6f39ed6..4a82b97ccc 100644 --- a/entity/Document_entity/Document_entity.aod +++ b/entity/Document_entity/Document_entity.aod @@ -4,6 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Document_entity/documentation.adoc</documentation> <title>Document</title> + <grantCreateProcess>%aditoprj%/entity/Document_entity/grantCreateProcess.js</grantCreateProcess> <iconId>VAADIN:FILE</iconId> <titlePlural>Documents</titlePlural> <recordContainer>jdito</recordContainer> @@ -308,6 +309,37 @@ <name>AssignmentTable_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>DisallowCreate_param</name> + <expose v="false" /> + </entityParameter> + </children> + </entityProvider> + <entityParameter> + <name>DisallowCreate_param</name> + <expose v="true" /> + </entityParameter> + <entityProvider> + <name>SingleDocument</name> + <titlePlural>Document</titlePlural> + <dependencies> + <entityDependency> + <name>91f87622-d0e8-43c6-99a0-5f9cebf79aaf</name> + <entityName>SerialLetter_entity</entityName> + <fieldName>Documents</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>AssignmentName_param</name> + <valueProcess>%aditoprj%/entity/Document_entity/entityfields/singledocument/children/assignmentname_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>DisallowCreate_param</name> + <valueProcess>%aditoprj%/entity/Document_entity/entityfields/singledocument/children/disallowcreate_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> </children> </entityProvider> </entityFields> diff --git a/entity/Document_entity/entityfields/singledocument/children/assignmentname_param/valueProcess.js b/entity/Document_entity/entityfields/singledocument/children/assignmentname_param/valueProcess.js new file mode 100644 index 0000000000..3e4bf7585b --- /dev/null +++ b/entity/Document_entity/entityfields/singledocument/children/assignmentname_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("DOCUMENT"); \ No newline at end of file diff --git a/entity/Document_entity/entityfields/singledocument/children/disallowcreate_param/valueProcess.js b/entity/Document_entity/entityfields/singledocument/children/disallowcreate_param/valueProcess.js new file mode 100644 index 0000000000..40effa0178 --- /dev/null +++ b/entity/Document_entity/entityfields/singledocument/children/disallowcreate_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string(true); \ No newline at end of file diff --git a/entity/Document_entity/grantCreateProcess.js b/entity/Document_entity/grantCreateProcess.js new file mode 100644 index 0000000000..e6afa18182 --- /dev/null +++ b/entity/Document_entity/grantCreateProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(!vars.get("$param.DisallowCreate_param")); \ No newline at end of file diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod index 0125d03905..df2c15d998 100644 --- a/entity/SerialLetter_entity/SerialLetter_entity.aod +++ b/entity/SerialLetter_entity/SerialLetter_entity.aod @@ -149,10 +149,8 @@ <title>Download letter</title> <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js</onActionProcess> <iconId>VAADIN:DOWNLOAD_ALT</iconId> - <iconIdProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/iconIdProcess.js</iconIdProcess> <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js</stateProcess> - <titleProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/titleProcess.js</titleProcess> - <tooltipProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/downloadletter/tooltipProcess.js</tooltipProcess> + <tooltip>Download letter</tooltip> </entityActionField> <entityActionField> <name>downloadTemplate</name> @@ -172,6 +170,36 @@ <name>generated</name> <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/generated/valueProcess.js</valueProcess> </entityField> + <entityConsumer> + <name>Documents</name> + <refreshParent v="true" /> + <dependency> + <name>dependency</name> + <entityName>Document_entity</entityName> + <fieldName>SingleDocument</fieldName> + </dependency> + <children> + <entityParameter> + <name>AssignmentRowId_param</name> + <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>AssignmentTable_param</name> + <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>AssignmentName_param</name> + <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/documents/children/assignmentname_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>generateLetter</name> + <title>Generate letter</title> + <onActionProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/generateletter/onActionProcess.js</onActionProcess> + <iconId>VAADIN:FILE_PROCESS</iconId> + <tooltip>Generate letter</tooltip> + </entityActionField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/SerialLetter_entity/entityfields/documents/children/assignmentname_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/documents/children/assignmentname_param/valueProcess.js new file mode 100644 index 0000000000..642fa1338e --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/documents/children/assignmentname_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("SERIALLETTERFILE"); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js new file mode 100644 index 0000000000..35957a3e3b --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.SERIALLETTERID")); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js new file mode 100644 index 0000000000..f7c562b9ec --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("SERIALLETTER"); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/downloadletter/iconIdProcess.js b/entity/SerialLetter_entity/entityfields/downloadletter/iconIdProcess.js deleted file mode 100644 index e06faf34c6..0000000000 --- a/entity/SerialLetter_entity/entityfields/downloadletter/iconIdProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.vars"); -import("system.result"); - -if (vars.get("$field.generated") == "1") - result.string("VAADIN:DOWNLOAD_ALT"); -else - result.string("VAADIN:FILE_PROCESS"); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js b/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js index bdee8964fe..11b5418889 100644 --- a/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js +++ b/entity/SerialLetter_entity/entityfields/downloadletter/onActionProcess.js @@ -8,19 +8,12 @@ import("system.notification"); import("Employee_lib"); var letterId = vars.get("$field.SERIALLETTERID"); -if (vars.get("$field.generated") == "1") +if (vars.get("$field.generated")) { - var metadata = SingleBinaryUtils.getMetadata("SERIALLETTER", "DOWNLOADFILE", letterId); + var metadata = SingleBinaryUtils.getMetadata("SERIALLETTER", "SERIALLETTERFILE", letterId); if (metadata) { - var document = SingleBinaryUtils.get("SERIALLETTER", "DOWNLOADFILE", letterId); - SingleBinaryUtils.remove("SERIALLETTER", "DOWNLOADFILE", letterId); + var document = SingleBinaryUtils.get("SERIALLETTER", "SERIALLETTERFILE", letterId); neon.download(document, metadata.filename); - neon.setFieldValue("$field.generated", "2"); - //neon.refreshAll(); } -} -else -{ - SerialLetterUtils.buildSerialLetterOnServer(letterId); -} +} \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js b/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js index 4728777c05..55c3f88f34 100644 --- a/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js +++ b/entity/SerialLetter_entity/entityfields/downloadletter/stateProcess.js @@ -2,4 +2,4 @@ import("system.neon"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.generated") == "2" ? neon.COMPONENTSTATE_DISABLED : neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file +result.string(vars.get("$field.generated") ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/downloadletter/titleProcess.js b/entity/SerialLetter_entity/entityfields/downloadletter/titleProcess.js deleted file mode 100644 index 8cb111c559..0000000000 --- a/entity/SerialLetter_entity/entityfields/downloadletter/titleProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -if (vars.get("$field.generated") == "1") - result.string(translate.text("Download letter")); -else - result.string(translate.text("Generate letter")); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/downloadletter/tooltipProcess.js b/entity/SerialLetter_entity/entityfields/downloadletter/tooltipProcess.js deleted file mode 100644 index a100945064..0000000000 --- a/entity/SerialLetter_entity/entityfields/downloadletter/tooltipProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -if (vars.get("$field.generated") == "1") - result.string(translate.text("Download letter")); -else - result.string(translate.text("Generate letter")); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/generated/valueProcess.js b/entity/SerialLetter_entity/entityfields/generated/valueProcess.js index 226641e5a0..72d106321d 100644 --- a/entity/SerialLetter_entity/entityfields/generated/valueProcess.js +++ b/entity/SerialLetter_entity/entityfields/generated/valueProcess.js @@ -3,5 +3,5 @@ import("system.neon"); import("system.vars"); import("system.result"); -result.string(vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET && SingleBinaryUtils.checkExistsOneTime("SERIALLETTER", "DOWNLOADFILE", vars.get("$field.SERIALLETTERID")) - ? "1" : "0"); \ No newline at end of file +result.string(vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET && SingleBinaryUtils.checkExistsOneTime("SERIALLETTER", "SERIALLETTERFILE", vars.get("$field.SERIALLETTERID")) + ? "true" : ""); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/generateletter/onActionProcess.js b/entity/SerialLetter_entity/entityfields/generateletter/onActionProcess.js new file mode 100644 index 0000000000..dde33c1f54 --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/generateletter/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("Bulkmail_lib"); + +SerialLetterUtils.buildSerialLetterOnServer(vars.get("$field.SERIALLETTERID")); \ No newline at end of file diff --git a/entity/SerialLetter_entity/recordcontainers/db/onDBDelete.js b/entity/SerialLetter_entity/recordcontainers/db/onDBDelete.js index 97c264a6ab..2a7c513ef7 100644 --- a/entity/SerialLetter_entity/recordcontainers/db/onDBDelete.js +++ b/entity/SerialLetter_entity/recordcontainers/db/onDBDelete.js @@ -6,4 +6,4 @@ newWhere("LETTERRECIPIENT.SERIALLETTER_ID", "$local.uid").deleteData(); var uid = vars.get("$local.uid"); SingleBinaryUtils.remove("SERIALLETTER", "DOCUMENT", uid); -SingleBinaryUtils.remove("SERIALLETTER", "DOWNLOADFILE", uid); \ No newline at end of file +SingleBinaryUtils.remove("SERIALLETTER", "SERIALLETTERFILE", uid); \ No newline at end of file diff --git a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod index 2fcb861bd5..79137d917d 100644 --- a/neonView/SerialLetterMain_view/SerialLetterMain_view.aod +++ b/neonView/SerialLetterMain_view/SerialLetterMain_view.aod @@ -24,6 +24,11 @@ <entityField>Activities</entityField> <view>ActivityFilter_view</view> </neonViewReference> + <neonViewReference> + <name>88fb3d1b-585b-4289-92c9-4a5c70e3748a</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> <neonViewReference> <name>5cba2de9-e00b-4548-8477-5fc76b1e3cb6</name> <entityField>LogHistories</entityField> diff --git a/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod b/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod index 4347328c11..7752f7627c 100644 --- a/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod +++ b/neonView/SerialLetterPreview_view/SerialLetterPreview_view.aod @@ -13,7 +13,8 @@ <iconField>ICON</iconField> <titleField>TITLE</titleField> <subtitleField>STATUS</subtitleField> - <favoriteAction1>downloadLetter</favoriteAction1> + <favoriteAction1>generateLetter</favoriteAction1> + <favoriteAction2>downloadLetter</favoriteAction2> <entityField>#ENTITY</entityField> </cardViewTemplate> <genericViewTemplate> diff --git a/process/buildSerialLetter_serverProcess/process.js b/process/buildSerialLetter_serverProcess/process.js index 275dc5a265..1bf95d3e4a 100644 --- a/process/buildSerialLetter_serverProcess/process.js +++ b/process/buildSerialLetter_serverProcess/process.js @@ -17,7 +17,7 @@ var document = SerialLetterUtils.buildSerialLetter(letterId, recipientIds) //if (document) // neon.download(document, template.filename); -SingleBinaryUtils.set("SERIALLETTER", "DOWNLOADFILE", letterId, document.content, document.filename, ""); +SingleBinaryUtils.set("SERIALLETTER", "SERIALLETTERFILE", letterId, document.content, document.filename, ""); var message = translate.text("Download ready"); var description = translate.withArguments("Serial letter \"%0\" can now be downloaded", [document.title]); -- GitLab