Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
Table of Contents |
---|
English |
---|
In this tutorial, we will follow the guideline for developing a plugin to develop our Slack Notification plugin. Please also refer to the very first tutorial How to develop a Bean Shell Hash Variable for more details steps. |
Thai |
---|
ในบทช่วยสอนนี้เราจะทำตามแนวทางในการพัฒนา guideline for developing a plugin การแจ้งเตือนของ Slack โปรดอ้างอิงถึงบทช่วยสอนแรกวิธีการ How to develop a Bean Shell Hash Variable สำหรับขั้นตอนรายละเอียดเพิ่มเติม |
...
The following tutorial is prepared with a Macbook Pro and the Joget Source Code is version 58.0-Snapshot. 1. Please refer to the the Guideline for developing Developing a pluginPlugin article for other platform commands.
...
Thai |
---|
เราจำเป็นต้องให้ซอร์สโค้ด Joget Workflow ของเราพร้อมและสร้างโดยปฏิบัติตาม this guideline บทช่วยสอนต่อไปนี้จัดทำขึ้นด้วย Macbook Pro และรหัสแหล่งที่มาของ Joget เป็นรุ่น 58.0.1 โปรดอ้างอิง -Snapshot โปรดอ้างอิง Guideline for developing Developing a pluginPlugin สำหรับคำสั่งแพลตฟอร์มอื่น ๆ สมมติว่าไดเรกทอรีโฟลเดอร์ของเรามีดังนี้ |
Code Block |
---|
- Home
- joget
- plugins
- jw-community
-5.0.1 |
The "plugins" directory is the folder we will create and store all our plugins and the "jw-community" directory is where the Joget Workflow Source code is stored.
...
Code Block | ||
---|---|---|
| ||
cd joget/plugins/ ~/joget/jw-community/5.0.1/wflow-plugin-archetype/create-plugin.sh org.joget slack_notification 58.0.1-Snapshot |
Then, the shell script will ask us to key in a version number for the plugin and ask us for a confirmation before it generates the maven project.
...
Code Block | ||
---|---|---|
| ||
Define value for property 'version': 1.0-SNAPSHOT: : 58.0.0-Snapshot [INFO] Using property: package = org.joget Confirm properties configuration: groupId: org.joget artifactId: slack_notification version: 5.0.0 package: org.joget Y: : y |
...
In the properties definition options file, we will need to provide options as below. Please note that we can use "@@message.key@@" syntax to support i18n in our properties options. Here, we can actually copy the properties options of User Notification plugin and modify from there. Please refer to userNotificationAuditTrail.json.
Thai |
---|
ในไฟล์ตัวเลือกคำจำกัดความของคุณสมบัติเราจะต้องระบุตัวเลือกดังต่อไปนี้ โปรดทราบว่าเราสามารถใช้ไวยากรณ์ "@@ message.key @@" เพื่อรองรับ i18n ในตัวเลือกคุณสมบัติของเรา ที่นี่เราสามารถคัดลอกตัวเลือกคุณสมบัติของปลั๊กอินการแจ้งเตือนผู้ใช้และแก้ไขจากที่นั่น โปรดอ้างอิงถึง userNotificationAuditTrail.json |
Code Block | ||
---|---|---|
| ||
[{ title : '@@SlackNotification.config@@', properties : [ { name : 'apiurl', label : '@@SlackNotification.url@@', type : 'textfield', required : 'true' }, { label : '@@SlackNotification.from@@', type : 'header' }, { name : 'username', label : '@@SlackNotification.fromUsername@@', type : 'textfield', value : '@@SlackNotification.fromUsername.value@@' }, { name : 'customIcon', label : '@@SlackNotification.customIcon@@', type : 'selectbox', value : 'joget', options : [{ value : '', label : '@@SlackNotification.customIcon.none@@' }, { value : 'joget', label : '@@SlackNotification.customIcon.joget@@' }, { value : 'url', label : '@@SlackNotification.customIcon.url@@' }, { value : 'emoji', label : '@@SlackNotification.customIcon.emoji@@' }] }, { name : 'iconUrl', label : '@@SlackNotification.customIcon.url@@', type : 'textfield', required : 'true', control_field: 'customIcon', control_value: 'url', control_use_regex: 'false' }, { name : 'iconEmoji', label : '@@SlackNotification.customIcon.emoji@@', type : 'textfield', required : 'true', control_field: 'customIcon', control_value: 'emoji', control_use_regex: 'false' }, { label : '@@SlackNotification.to@@', type : 'header' }, { name : 'usernameTransform', label : '@@SlackNotification.usernameTransform@@', description : '@@SlackNotification.usernameTransform.desc@@', type : 'textfield', value : '@@SlackNotification.usernameTransform.value@@', required : 'True' }, { label : '@@SlackNotification.message@@', type : 'header' }, { name : 'text', label : '@@SlackNotification.text@@', description : '@@SlackNotification.text.desc@@', type : 'codeeditor', required : 'True' }, { name : 'unfurl_links', label : '@@SlackNotification.unfurl_links@@', description : '@@SlackNotification.unfurl_links.desc@@', type : 'checkbox', value : 'true', options : [{ value : 'true', label : '' }] }, { name : 'unfurl_media', label : '@@SlackNotification.unfurl_media@@', description : '@@SlackNotification.unfurl_media.desc@@', type : 'checkbox', value : 'true', options : [{ value : 'true', label : '' }] }], buttons : [{ name : 'sendTestMessage', label : '@@SlackNotification.sendTestMessage@@', ajax_url : '[CONTEXT_PATH]/web/json/app[APP_PATH]/plugin/org.joget.SlackNotification/service?action=sendTestMessage', fields : ['url'], addition_fields : [ { name : 'testChannel', label : '@@SlackNotification.sendTestMessage.testChannel@@', type : 'textfield' } ] }] }, { title : '@@app.usernotificationaudittrail.notificationLink@@', properties : [ { name : 'base', label : '@@app.usernotificationaudittrail.baseUrl@@', type : 'textfield', description : '@@app.usernotificationaudittrail.baseUrl.desc@@', required : 'True' }, { name : 'url', label : '@@app.usernotificationaudittrail.url@@', type : 'textfield' }, { name : 'urlName', label : '@@app.usernotificationaudittrail.urlName@@', type : 'textfield' }, { name : 'parameterName', label : '@@app.usernotificationaudittrail.parameterName@@', description : '@@app.usernotificationaudittrail.parameterName.desc@@', type : 'textfield', value : 'activityId' }, { name : 'passoverMethod', label : '@@app.usernotificationaudittrail.passoverMethod@@', type : 'selectbox', value : 'param', options : [{ value : 'none', label : '@@app.usernotificationaudittrail.passoverMethod.none@@' }, { value : 'append', label : '@@app.usernotificationaudittrail.passoverMethod.append@@' }, { value : 'param', label : '@@app.usernotificationaudittrail.passoverMethod.param@@' }] }] }, { title : '@@app.usernotificationaudittrail.advanced@@', properties : [{ name : 'exclusion', label : '@@app.usernotificationaudittrail.activityExclusion@@', type : 'multiselect', size : '10', options_ajax : '[CONTEXT_PATH]/web/json/app[APP_PATH]/plugin/org.joget.apps.app.lib.UserNotificationAuditTrail/service?action=getActivities' }] }] |
...
Thai |
---|
มาสร้างปลั๊กอินของเรากัน เมื่อกระบวนการสร้างเสร็จสิ้นเราจะพบไฟล์ "slack_notification-5.0.0.jar" ที่สร้างขึ้นภายใต้ไดเรกทอรี "slack_notification / target" จากนั้นลองอัปโหลดปลั๊กอินขวดไปที่ Manage Plugins หลังจากอัปโหลดไฟล์ jar ให้ตรวจสอบอีกครั้งว่ามีการอัปโหลดและเปิดใช้งานปลั๊กอินอย่างถูกต้อง |
Check the Slack Notification plugin is available in Plugin Default Properties.
Thai |
---|
ตรวจสอบว่าปลั๊กอินการแจ้งเตือน Slack มีอยู่ใน Plugin Default Properties |
Now, let us configure the Incoming Webhooks in Slack platform.
...
Thai |
---|
กำหนดค่าปลั๊กอินการแจ้งเตือน Slack เราสามารถเห็นตัวเลือกคุณสมบัติค่อนข้างคล้ายกับปลั๊กอิน User Notification Plugin |
When test running a process, the message is received in Slack once a new assignment is created.
...
To download the ready-to-use plugin jar, please find it in Slack Notification at http://marketplace.joget.org/. (Coming Soon)
Thai |
---|
คุณสามารถดาวน์โหลดซอร์สโค้ดจาก slack_notification_src.zip หากต้องการดาวน์โหลด jar ปลั๊กอินที่พร้อมใช้งานโปรดค้นหาได้ที่ http://marketplace.joget.org/ (เร็ว ๆ นี้) |