Frontend
1. Actions
a. AddTask
Implement an AddTask action to add a new task to the TaskSheet spreadsheet.
ensure action AddTask kind: rowInsert
label: "Add Task"
modules: ["TaskList"]
icon: "AddTaskRounded"
spreadsheet: TaskSheet
sendMessageToInbox: true
b. EditTaskSheet
Implement an EditTaskSheet action to modify existing tasks in the TaskSheet spreadsheet.
// switch context to TaskSheet
ensure spreadsheet TaskSheet
//************
// Table layout
//************
ensure layoutSpreadsheet TableLayout kind: table
showComps: [Date, Task, Priority, Status, $CreatedBy]
columnSizeSet: ["AutoSize", "Flex"]
columnAlignmentArray: ["Center", "Start", "End"]
showCommentCount: true
//************
// Calendar layout
//************
ensure layoutSpreadsheet CalendarLayout kind: calendar
fromDateField: DueDate
titleField: Task
showFields: [Task, Priority, Status, DueDate, Notes]
//************
// Kanban layout
//************
ensure layoutSpreadsheet KanbanLayout kind: kanban
sortByFields: [Date]
sortOrder: ascending
kanbanField: Status
ensure swimlane Swimlane1
valueOptionId: "keyPending"
color.value: yellow
color.shade: s50
ensure swimlane Swimlane2
valueOptionId: "keyStarted"
color.value: blue
color.shade: s50
ensure swimlane Swimlane3
valueOptionId: "keyDone"
color.value: green
color.shade: s50
ensure swimlane Swimlane4
color.value: red
color.shade: s50
ensure layoutSpreadsheet CalendarLayout
allowToSwitchLayouts: [TableLayout, KanbanLayout]
ensure layoutSpreadsheet KanbanLayout
allowToSwitchLayouts: [TableLayout, CalendarLayout]
ensure layoutSpreadsheet TableLayout
allowToSwitchLayouts: [CalendarLayout, KanbanLayout]
//******************************
// Action to expose EditNoteSheet
//******************************
ensure action EditTaskSheet kind: spreadsheetEditor
modules: ["TaskList"]
icon: "DensitySmallRounded"
spreadsheet: TaskSheet
layoutSpreadsheet: KanbanLayout
c. TaskReport
Implement a TaskReport action to get tasks based on filter condition.
ensure var VarConditionFilterTasks kind: condition
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "<root>
<and>
<or>
<and>
<stmt>${in:Details.Priority} has value</stmt>
<stmt>${f:Details.Priority} == ${in:Details.Priority}</stmt>
</and>
<stmt>${in:Details.Priority} has no value</stmt>
</or>
<or>
<and>
<stmt>${in:Details.Status} has value</stmt>
<stmt>${f:Details.Status} == ${in:Details.Status}</stmt>
</and>
<stmt>${in:Details.Status} has no value</stmt>
</or>
</and>
</root>"
sourceForm: EntityTask
inputForm: FilterTask
ensure action TaskReport kind: spreadsheetEditor
modules: ["TaskList"]
icon: "PendingActionsRounded"
spreadsheet: TaskSheet
inputForm: FilterTask
layoutSpreadsheet: TableLayout
filterConditionVar: VarConditionFilterTasks
2. Prompts
ensure root
promptMap.acceptPromptViaEmail: true
promptMap.acceptPromptViaWhatsapp: true
//** prompt, AddTaskCompact
ensure prompt AddTaskCompact
modules: ["TaskList"]
action: AddTask
promptText: "task ${f:Task}"
permissionRoles: [Member]
//** prompt, AddTaskBasic
ensure prompt AddTaskBasic
modules: ["TaskList"]
action: AddTask
promptText: "task ${f:Task}${sep}${f:Priority}${sep}${f:Description}"
permissionRoles: [Member]
//** prompt, AddTaskWithoutDate
ensure prompt AddTaskWithoutDate
modules: ["TaskList"]
action: AddTask
promptText: "task ${f:Task}${sep}${f:Priority}${sep}${f:Status}${sep}${f:Description}"
permissionRoles: [Member]
//** prompt, AddTaskWithDate
ensure prompt AddTaskWithDate
modules: ["TaskList"]
action: AddTask
promptText: "task ${f:Task}${sep}${f:Priority}${sep}${f:Status}${sep}${f:DueDate}${sep}${f:Description}"
permissionRoles: [Member]
//** prompt, AddTaskFull
ensure prompt AddTaskFull
modules: ["TaskList"]
action: AddTask
promptText: "task ${f:Date}${sep}${f:Task}${sep}${f:Priority}${sep}${f:Status}${sep}${f:DueDate}${sep}${f:Description}"
permissionRoles: [Member]
3. Group actions
Group these actions under a section named TaskList for easy access.
ensure group TaskList
modules: ["TaskList"]
allowPromptAssistant: true
hideActionMenu: true
pinnedActions: [AddTask, EditTaskSheet, TaskReport]
pinnedActionSetMobile: [AddTask, EditTaskSheet, TaskReport]
actionPermission: {
'AddTask': {
'menuGroup': '1',
'roles': [
'Member'
]
},
'EditTaskSheet': {
'menuGroup': '2',
'roles': [
'Member'
]
},
'TaskReport': {
'menuGroup': '2',
'roles': [
'Member'
]
}
}