การสร้างมินิโปรแกรม
มินิโปรแกรมช่วยให้คุณขยายฟังก์ชันหลักของ Tommy ได้ในแทบทุกรูปแบบ ความยืดหยุ่นนี้เป็นหนึ่งในคุณสมบัติสำคัญของแพลตฟอร์ม Tommy
มีส่วนเสริม (addon) สามประเภทที่สามารถใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน:
- มินิโปรแกรมแบบมีส่วนติดต่อผู้ใช้ (Visual) มินิโปรแกรมที่ผสานรวมและขยายส่วนติดต่อผู้ใช้ของแอป Tommy
- ส่วนเสริมแบบไม่มีส่วนติดต่อผู้ใช้ (Non-Visual) ส่วนเสริมที่ผสานรวมกับ ระบบ Action ของ Tommy
- การผสมผสานทั้งแบบมีและไม่มีส่วนติดต่อผู้ใช้
โครงสร้างไฟล์
โครงสร้างโฟลเดอร์ของส่วนเสริมนั้นเรียบง่ายมาก:
มินิโปรแกรมที่เรียบง่ายที่สุดซึ่งไม่มีมุมมอง (view) หรืองาน (task) อาจประกอบด้วยไฟล์ manifest.yml เพียงไฟล์เดียว
มาต่อกันด้วยคำอธิบายเกี่ยวกับไฟล์ manifest.yml กันเลย
ไฟล์ Manifest
ไฟล์ manifest manifest.yml เป็นไฟล์ที่สำคัญที่สุดในมินิโปรแกรม มินิโปรแกรมแต่ละตัวต้องมีไฟล์ manifest เพียงไฟล์เดียว ซึ่งมีข้อมูลเมทาดาทาทั้งหมด ตัวเลือกการกำหนดค่า และรายการของมุมมองและ action ที่มินิโปรแกรมของคุณจะเปิดให้ใช้งาน
ตัวอย่าง manifest ด้านล่างนำมาจากมินิโปรแกรม Poke พื้นฐานอย่างมาก มินิโปรแกรมนี้มีเพียงหนึ่งมุมมอง หนึ่งงาน และหนึ่ง action และไฟล์ manifest มีลักษณะดังนี้:
ตัวเลือกของ manifest มีดังต่อไปนี้:- title: (String) ชื่อของมินิโปรแกรมที่มนุษย์อ่านได้
- package: (String) ชื่อของมินิโปรแกรมที่เครื่องอ่านได้ในรูปแบบ underscore case
- version: (String) หมายเลขเวอร์ชันที่ปล่อยออกมา (ต้องเพิ่มขึ้นในทุกครั้งที่ปล่อยเวอร์ชันใหม่)
- author: (String) ชื่อผู้พัฒนาส่วนเสริม (อาจเป็นบุคคลหรือองค์กร)
- private: (Boolean) การตั้งค่าความเป็นส่วนตัวที่กำหนดว่ามินิโปรแกรมนี้สามารถใช้งานได้โดยผู้ใช้ Tommy คนอื่นหรือไม่
- views: (Object) ออบเจกต์ที่มีมุมมองต่าง ๆ ที่จะเปิดให้ใช้งานบนส่วนติดต่อผู้ใช้
- actions: (Object) ออบเจกต์ที่มี action ที่กำหนดไว้ล่วงหน้าซึ่งมินิโปรแกรมนำมาใช้
- triggers: (Object) ออบเจกต์ที่มีตัวกระตุ้น action (action trigger) ที่มินิโปรแกรมนำมาใช้
- conditions: (Object) ออบเจกต์ที่มีเงื่อนไข action (action condition) ที่มินิโปรแกรมนำมาใช้
- activities: (Object) ออบเจกต์ที่มีกิจกรรม action (action activity) ที่มินิโปรแกรมนำมาใช้
- roles: (Array) สามารถเป็นบทบาทใดก็ได้ที่ถูกกำหนดให้กับสมาชิกทีมแบบไดนามิก หรือหนึ่งในบทบาทที่มีมาให้ในตัว: “Team Member”, “Team Manager”, “Team Admin”
มุมมอง (Views)
มินิโปรแกรมแต่ละตัวอาจมีหลายมุมมองที่จะเปิดให้ใช้งานบนส่วนติดต่อผู้ใช้ มุมมองถูกกำหนดไว้ภายในตัวเลือก views ในไฟล์ manifest.yml
ตัวเลือกของ manifest มีดังต่อไปนี้:- id: (String) id ของหน้ามุมมอง (ต้องไม่ซ้ำกันภายในขอบเขตของส่วนเสริม)
- name: (String) ชื่อของหน้ามุมมอง
- file: (String) พาธสัมพัทธ์ของมุมมองที่ชี้ไปยังไฟล์ HTML ของมุมมอง เช่น client/main.html
- type: (String) ประเภทของมุมมอง ปัจจุบันที่รองรับได้แก่ page และ form
- index: (Boolean) ตั้งค่าเป็น true สำหรับมุมมองหลักที่จะถูกโหลดเมื่อเริ่มมินิโปรแกรม
- framed: (Boolean) กำหนดว่ามุมมองควรถูกโหลดภายใน iframe หรือไม่
- roles: (Array) สามารถเป็นบทบาทใดก็ได้ที่ถูกกำหนดให้กับสมาชิกทีมแบบไดนามิก หรือหนึ่งในบทบาทที่มีมาให้ในตัว: “Team Member”, “Team Manager”, “Team Admin”
- lockable: (Boolean) อนุญาตให้มุมมอง index แสดงเลย์เอาต์แบบล็อกได้