Perform Action When User Taps Record in Table List

I would like to perform the following action/behavior, and I’m not sure if it’s possible or how to do it. I read all about actions and behaviors and played around, but couldn’t figure it out.

When a user clicks a record in a table list, I want to pop up a screen to say “Start Install?” and if the answer is yes, log the current time into the “Start Time” field. If No, continue on to view the data.

I saw in the list of Actions that you can send the user to another view; perhaps I could try to accomplish something similar that way. How do I tell AppSheet to perform an action if the user taps a record in a table list with Status = “Red”?

1 Like

Thanks! I was able to get this to work - i.e., record the start time when a user selects a record, but I’m not sure how to tell the app to only trigger the action if the status is “red”. Also, for the confirmation, where do I put the “No” path. I want the user to proceed to the record if “No” is selected. Right now, the app leaves me at the list.

1 Like

ConnieMaldonado:

I’m not sure how to tell the app to only trigger the action if the status is “red”.

Thanks Steve. Right as you responded, I figured it out. Duh!

I added the logic and it works; however, if I click on a record with “green” status, I don’t proceed to the record. It just hangs. Also, how do I specify the “No” path. Shouldn’t it take me into the record?

1 Like

ConnieMaldonado:

I want the user to proceed to the record if “No” is selected.

Create an action of type App: go to another view within this app with a Target of LINKTOVIEW([_THISROW], "Tasks_Detail").

Create an action of type Grouped: execute a sequence of actions, add the set-start-time action as the first action and the navigate-to-details action the second.

Set the Row selected event action to the group action.

I see your response. Let me try this. Didn’t see it when I responded earlier. Thanks!

1 Like

ConnieMaldonado:

Shouldn’t it take me into the record?

Nope. The default action if you don’t specify one is effectively an action of type App: go to another view within this app with a Target of LINKTOVIEW([_THISROW], "Tasks_Detail"). In setting a Row selected action, you replace the default action with your own.

I’m so close! I put everything in (and think I understand it too :)), but I receive an error when the Tasks Detail view loads. If I take out the actions, the view loads fine, so I’m not sure what’s tripping it up. I’ve tried several things, but no go. Any ideas?

Eek! My bad! LINKTOVIEW should be LINKTOROW: LINKTOROW([_THISROW], "Tasks_Detail").

I should have been able to figure that out! Next time. When I make this change everything works EXCEPT when I select No to the confirmation, it does not take me into the details, but leaves me at the screen. If the user says No to record start time, that means they want to edit the record, so how do I see go to details if confirmation is no? I really appreciate it. Thank you.

1 Like

Hmmm… You may have to approach this a different way: you could attach the set-start-time action to a column by setting the actions’s Prominence to Display inline. Then add the column to the table. The action button will occur in place of the column in the table display.

Whoa! That worked. Impressive. Thank you Steve.

1 Like

Steve - I can’t tell you how ecstatic I am that this works! Hah! I have another question though. I created another action to record End Time. It’s set up the exact same way - prominence inline. The popup appears as with the Start Time, but of course the End Time only appears for records with status=yellow meaning in progress. See below - why don’t the icons line up?

1 Like

The buttons are tied to columns, two columns. Both columns occur in the table even if the button they contain doesn’t for any given row. That empty space is where the other button would be were it displayed for that row.

Consider using different icons for the two actions to make it clearer which is which.

There are other display alternatives, but they’re a bit more complex.

1 Like

Maybe I could do a “Record Time” action and have it conditionally set either start or end time based on whether status is red or yellow. If that’s even possible. It would be the same icon, but I prefer that over the misalignment.

1 Like

Nice! And do-able, indeed. Lemme know if you need any help.

I guess the problem is what column to display. I need a new column to display the icon and then set either Start Time or End Time based on that.

ConnieMaldonado:

I need a new column to display the icon and then set either Start Time or End Time based on that.

That’s what I’d do.

Ok, so I believe I have that working beautifully. NOW, is there any way to alter the confirmation message conditionally based on whether status is red or yellow?