Display To-Do Items in the UI
Now we will look at how to display the to-do items that we can create.
What We Are Going To Do
When the user clicks on a project in the left column a list of to-do items should appear to the right. We are now going to add the code that does that.
Update the uiPopulateToDos Command
Replace the uiPopulateToDos command in the card script with the RevTalk code below. After you insert the code we will go through the relevant parts.
Copy & Paste The Following Code
put the uSelectedProjectID of group "ProjectsPeople" into theProjectID
put sqlquery_createObject("todo_items") into theQueryA
sqlquery_set theQueryA, "order by", "sequence"
sqlquery_set theQueryA, "conditions", "project_id is :1", theProjectID
sqlquery_retrieveAsRecords theQueryA, theRecordsA
put the result into theError
if the result is empty then
set the dgData of group "ToDo" to theRecordsA
if theError is not empty then
answer "Error populating to-do items:" && theError & "."
Using the 'conditions' Property of a SQL Query Object
The RevTalk that displays to-do items is very similar to the RevTalk that displays projects. The only real difference is that you need to set the conditions property of the SQL Query object in order to filter the list of to-do items that are returned.
The 'conditions' property is part of what defines the WHERE clause of the SQL query that is generated. Since to-do items are linked to projects we only want to retrieve to-do items that are linked to the currently selected project (1).
I would like to point out two things in the line that sets the 'conditions' property. First is that you can use english search terms. For example, I use 'is' rather than '=' (2). You can also use terms like 'begins with', 'ends with' and 'is in'.
Second is that when setting the 'conditions' property you can using bindings. Notice the ':1' in the string (3). Using bindings can make your code easier to read. In addition, SQL Yoga will cleanse special characters that appear in strings that you add using bindings. The ':1' in the string is replaced by the next parameter passed to sqlquery_set (4). I could also include a ':2' or ':3' in the string if I passed in additional parameters.
To verify that the to-do item was created click on New Projects and execute uiPopulateToDos in the message box (1). You should see the New Task entry appear in the to-do list (2).