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 AllTasksTableLayout kind: table
columnSizeSet: ["AutoSize", "Flex"]
showComps: [Date, Task, Priority, Status, $CreatedBy]
columnAlignmentArray: ["Center", "Start", "End"]
showCommentCount: true
//************
// Calendar layout
//************
ensure layoutSpreadsheet AllTaskCalendar kind: calendar
showFields: [Task, Priority, Status, DueDate, Description]
fromDateField: Details.Date
titleField: Details.Task
//************
// Kanban layout
//************
ensure layoutSpreadsheet AllTaskKanban kind: kanban
sortByFields: [Details.Date]
kanbanField: Details.Status
sortOrder: ascending
ensure swimlane Swimlane1
valueOptionId: "1"
color.value: yellow
color.shade: s50
ensure swimlane Swimlane2
valueOptionId: "2"
color.value: blue
color.shade: s50
ensure swimlane Swimlane3
valueOptionId: "3"
color.value: green
color.shade: s50
ensure swimlane Swimlane4
color.value: red
color.shade: s50
ensure layoutSpreadsheet AllTaskCalendar
allowToSwitchLayouts: [AllTasksTableLayout, AllTaskKanban]
ensure layoutSpreadsheet AllTaskKanban
allowToSwitchLayouts: [AllTasksTableLayout, AllTaskCalendar]
ensure layoutSpreadsheet AllTasksTableLayout
allowToSwitchLayouts: [AllTaskCalendar, AllTaskKanban]
//******************************
// Action to expose EditNoteSheet
//******************************
ensure action EditTaskSheet kind: spreadsheetEditor
label: "Edit Task Sheet"
modules: ["TaskList"]
icon: "DensitySmallRounded"
spreadsheet: TaskSheet
layoutSpreadsheet: AllTaskKanban
c. ViewTasks
Implement an ViewTasks action to get tasks based on filter condition.
ensure form FilterTask
ensure section: Details
ensure field Priority kind: pickText sourceVar: VarSetOfTextPriority
ensure field Status kind: pickText sourceVar: VarSetOfTextStatus
ensure var VarFilterConditionFilterTaskReport
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 ViewTasks kind: spreadsheetEditor
label: "View Tasks"
modules: ["TaskList"]
icon: "PendingActionsRounded"
spreadsheet: TaskSheet
layoutSpreadsheet: AllTasksTableLayout
filterConditionVar: VarFilterConditionFilterTaskReport
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, ViewTasks]
pinnedActionSetMobile: [AddTask, EditTaskSheet, ViewTasks]
actionPermission: {
'AddTask': {
'menuGroup': '1',
'roles': [
'Member'
]
},
'EditTaskSheet': {
'menuGroup': '2',
'roles': [
'Member'
]
},
'ViewTasks': {
'menuGroup': '2',
'roles': [
'Member'
]
}
}