Starts a navigation mode that allows manual definition of paging intents.
The read-manual
mode allows you to define intents to be used for previous and next commands. This lets you execute custom goal actions when the user moves forward and backward in a result list. These actions could, for example, use an API's pagination cursor to request specific result sets from a web service.
result-view {
match-pattern: MyResultList (list)
render {
list-of (list.results) {
navigation-mode {
read-manual {
page-selection-question (Do you like one of these?)
item-selection-question (Which one would you like?)
previous-page {
intent {
goal: MyResultList
value: MyPageNumber$expr(list.curPage - 1)
}
}
next-page {
intent {
goal: MyResultList
value: MyPageNumber$expr(list.curPage + 1)
}
}
// optional
with-previous-page-conversation-driver (!list.isFirstPage)
with-next-page-conversation-driver (!list.isLastPage)
}
}
}
}
The previous-page
and next-page
block support if-else
conditionals, but must return an intent
. If you specify an if
block, you must also specify an else
block, and both must return an intent
.
Use with-previous-page-conversation-driver
or with-next-page-conversation-driver
to indicate whether the default previous/next navigation drivers should be shown if the specified boolean expression is true
.
next-page required | Define the intent for the next page command in manual navigation mode |
previous-page required | Define the intent for the previous page command in manual navigation mode |
item-selection-question optional | Asks the user to choose an option from the available list |
page-selection-question optional | Asks the user to confirm if they want to choose one of the items on the current page |
with-next-page-conversation-driver optional | Controls whether to use the next page conversation driver in manual navigation mode |
with-previous-page-conversation-driver optional | Controls whether to use the previous page conversation driver in manual navigation mode |