Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
Generate Zip Process Tool plugin allows users to zip all files residing in a file upload form field of the selected form. The plugin also offers the option to password-protect the generated zip file.
You can check the source code: https://github.com/jogetoss/generate-zip-file
https://www.7-zip.org/download.html
You can download the plugin here:
No password zip generation
Figure 1: No password
Password-protected zip generation
Figure 2: Password-protected
The plugin has numerous use cases, this article will explain how to use the plugin by building an example app.
Create a form, drag a single text field, and file upload form element into it. Configure each form element as shown below:
Field Label | Field ID |
---|---|
Item Name | item_name |
File Upload | file_upload |
Zip Upload | zip_file_upload |
Figure 3: Form layout
Tick the "Enable Multiple Files Upload" option for the File Upload form element. This will allow multiple files to be uploaded.
Figure 4: Tick "Enable Multiple Files Upload"
Once completed, generate a CRUD through the "Generate App" option
Go to "settings" > "advanced", and scroll down to the "Post Form Submission Processing" section. In the Post Processing Tool field, select "Generate Zip Tool". Change the "Run Tool on" from "Data Creation" to "Both data creation and update". This configuration will run the plugin upon new record creation or update.
Figure 5: Configure Post Form Submission Processing
Configure the Generate Zip Tool plugin
From
Figure 6: Plugin "From" properties configuration
Label | Field |
---|---|
Select Form to obtain file | Select the form created in step 1 |
File Upload Field ID of the file | Insert the ID of the file upload form element Figure 7: File Upload ID |
Record ID | Record ID uses the hash variable "#form.generated_zip_sample.id#" This will point to the record ID in the selected record row that executes the process tool plugin. In this example, generated_zip_sample is the table name. You may replace the table name in the hash variable with yours. Figure 8: Form table name |
To
Figure 9: Plugin "To" properties configuration
Label | Field |
---|---|
Select Form to Store Zip | Select the form created in step 1 |
Target Form Field ID to store Zip File | Insert the ID of the zip file upload form element Figure 10: Zip File Upload ID |
Target Record ID | Record ID uses the hash variable "#form.generated_zip_sample.id#" This will point to the record ID in the selected record row that executes the process tool plugin. In this example, generated_zip_sample is the table name. You may replace the table name in the hash variable with yours. Figure 11: Form table name |
Zip File Name | The Zip file name is "Zip File #data.mm ss a#" in this example. It will display the time generated and ensure that the Zip file name will be dynamic. |
Zip Password(optional) | Insert any password. The password used in this example is "test". |
Once finished, save the changes.
Test the app, upon "new record creation" or "record update". The plugin will generate a Zip File in the configured File Upload form element as shown below:
No password zip generation
Figure 12: No password
Password-protected zip generation
Figure 13: Password-protected
Figure 14: Plugin "From" properties
Field | Description |
---|---|
Select Form to obtain file | Select the form to obtain the desired files |
Form Field ID of the file | The form field ID of the file upload form element contains the files you wish to zip. It must be a File Upload form element otherwise, it wouldn't work. |
Record ID | The record ID that stored the files |
Figure 15: Plugin "To" properties
Field | Description |
---|---|
Select Form to Store Zip | Select the form to store the generated zip file |
Target Form Field ID to store Zip File | Form Upload field in the selected form to store the generated Zip File |
Target Record ID | The record ID to store the zip files |
Zip File Name | Generated zip file name |
Zip Password (optional) | Zip password Inputting a password to this field will enable the plugin to generate a password-protect zip. |