Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The following tutorial is prepared with a Macbook Pro and the Joget Source Code is version 58.0.1-Snapshot. 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
languagebash
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
languagebash
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
languagejs
[{
    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 ให้ตรวจสอบอีกครั้งว่ามีการอัปโหลดและเปิดใช้งานปลั๊กอินอย่างถูกต้อง


Image RemovedImage Added

Check the Slack Notification plugin is available in Plugin Default Properties.

Thai

ตรวจสอบว่าปลั๊กอินการแจ้งเตือน Slack มีอยู่ใน Plugin Default Properties


Image RemovedImage Added

Now, let us configure the Incoming Webhooks in Slack platform.

...

Thai

กำหนดค่าปลั๊กอินการแจ้งเตือน Slack เราสามารถเห็นตัวเลือกคุณสมบัติค่อนข้างคล้ายกับปลั๊กอิน User Notification Plugin


Image RemovedImage Added

Image RemovedImage Added

Image RemovedImage Added

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/ (เร็ว ๆ นี้)