Tap Forms – Organizer Database App for Mac, iPhone, and iPad › Forums › Script Talk › “When did I…?” functionality
- This topic has 8 replies, 4 voices, and was last updated 3 years, 12 months ago by Sam Moffatt.
-
AuthorPosts
-
August 25, 2020 at 11:21 AM #41740
cfParticipantI just recently started using TapForms and this is amazing. I can’t believe this app isn’t better known. I’ve tried many different options for organizing my information (Notion, Coda, AirTable, MyBase, and many more) and none come close to the functionality I wanted or in many cases their performance was terrible. TapForms hits the right balance of capability and simplicity.
TapForms is beginning to replace multiple apps with its flexibility. One example is an app called “When did I…?”. The premise is simple, it just has a list of actions on the main screen, like “walked the dog” or “washed the car” etc… and you tap one of the rows to log that action (see screenshot above). That’s it. I was able replicate this functionality in TapForms with two tables and a script:
The first table is a list of actions which includes a field that calculates the relative time string (“1 hour ago” etc…) based on the last recorded event. This mimics the main screen of WDI. There is a one-to-many field to a history table that holds the individual history items for all actions. This is like the middle tab of WDI. The default style of entering data in a form is a bit tedious compared to WDI: I would have to select an action, select the linked field, hit “+”, tap to set the date, tap to set the date. The thing that makes WDI great is the one-tap quick logging of events like this.
As a workaround I created a script that adds a linked entry with the current datetime pre-filled, but it also takes several taps to get to scripts so I abused the ability to run scripts via URL to create a “button” on each action record. Basically, this is a URL field where the URL is a TapForms link to run a script with parameters containing the name of the action to log. With one tap I can now easily log that event (almost, I have to navigate to the action details first but this is a huge improvement). See screenshot attached for example.
Amazingly this works! Though there are a few issues.
- When navigating back and forth from the documents screen TapForms keeps trying to run whatever the last script was run when opening the document. I’m guessing the parameters from the URL are held in some state somewhere and persisting after the script is run, but not sure why it would even try running the script in the first place. Quitting and relaunching the app works around this, I suppose I should also try just opening a URL the clears the params as the last step of the script.
- The relative date string has to be manually refreshed
- I use the “mask field value” option to hide the URL itself but it seems the mask will just replace each character its masking with “.”, which for really long URLs doesn’t look great.
- The summary badge on the “history” linked field is truncated on iOS(see screenshot attached)
I imagine you already have a large backlog but here’s my feature requests for what it’s worth.
- A new “button” field type that runs a script for that specific record.
- A date format option for relative dates.
- Ability for scripts to fetch location.
One thing that WDI does is that every time you log an event it automatically tracks the current location. I wasn’t able to replicate this since scripts don’t seem to be able to fetch location data so #3 would fix that. Right now I have a script that calculates the relative date but having that be a formatting option on dates would be more flexible since it would happen whenever a call is rendered which is useful for relative dates.
But most of all, #1. This would be the most powerful addition to TapForms. Right now we can run a script on a whole form or on an individual field, but no way to run a script for a single selected record. The idea is: you would select the “button” field type and select which script for it to run, and possibly some input params. The script would run for that record only when the button is tapped. This small change could have a big impact on the type of workflows forms can be used for.
August 26, 2020 at 7:34 AM #41751
Daniel LeuParticipant1 A new “button” field type that runs a script for that specific record.
There is already a button where you can favorite scripts. This button doesn’t appear if you don’t have a script marked as favorite… For the least amount of GUI interactions, create a script for each activity and mark them as ‘favorite’ in the options inside the script editor. Obviously you could use the prompter feature and just use one script. But then you have one more ‘click’ to do.
Yep, if there is only one script, it would be nice if it is directly executed.
August 26, 2020 at 9:28 AM #41756
Sam MoffattParticipantI haven’t seen #1 on your issues list but I’ve seen issues where it doesn’t launch the right document from cold start (though I’m not sure I’ve seen it recently, I usually make sure TF is warm and on the doc I want) and I have seem sometimes scripts don’t execute at all. That’s a new quirk!
To clarify the relative dates thing, you want a formatter to display as “18 days ago” or similar?
I’d also like the ability to set a default value on location fields to default to set current location just like you can default the date fields to set current date. Getting it via a script would be good as well but having it as default would alleviate some of the pain as I feel it could safely run in the background and set the field value once it’s stable.
August 26, 2020 at 10:15 AM #41757
cfParticipantThere is already a button where you can favorite scripts. This button doesn’t appear if you don’t have a script marked as favorite…
Thank you for the suggestion. Yes I have seen that this is possible but as you mentioned this does require more interaction than just having a button right there in the form. Additionally it’s more setup, having to create a script for each action record.
As far as the prompter goes it doesn’t seem offer a way to select from a list of actions, seems like the inputs on the prompter are fairly limited. In any case a prompter would also be more than just one-tap and go.
To clarify the relative dates thing, you want a formatter to display as “18 days ago” or similar?
Yes, rather than requiring the use of a script to accomplish this I feel like a formatter is a better solution. It is actually supported natively in iOS (see RelativeDateTimeFormatter here and here). This would allow the actual data value backing the row to remain unchanged, only having the formatter used for rendering the date/time.
August 26, 2020 at 10:27 AM #41758
cfParticipantI should clarify that my request for a “button” field type can essentially be restated as “make scripts more easily accessible when viewing a record details screen on iOS”. Unlike the records list screen where favorite scripts can be more easily surfaced (ad Daniel Leu pointed out), the details screen requires more taps to get to the scripts, and the popup form is harder to thumb-reach than the action sheet.
That said, in my opinion the best way to trigger scripts on the record details screen is to offer a button/action field type. This gives us the flexibility to decide which scripts should be easily triggered and even lay it out in the field as desired (and even use other scripts to show/hide the button like any other field).
I really think that a button field type that triggers a script can have wide-reaching implications for what kind of powerful work flows can be enabled in tap forms with very little effort.
August 26, 2020 at 1:26 PM #41764
cfParticipantI just discovered that TapForms does have script buttons! But only for mac as it’s part of the custom layouts feature.
Bringing this into the default layout for mobile would be amazing!
August 26, 2020 at 5:58 PM #41766
Daniel LeuParticipantI just discovered that TapForms does have script buttons! But only for mac as it’s part of the custom layouts feature.
Sorry, I didn’t mention this since your example image was for the iPhone and custom layouts are not supported on mobile.
December 25, 2020 at 7:39 AM #42982
john cestaParticipantYea, I went and bought a macbook just to use the best features of tapforms!
December 25, 2020 at 11:44 AM #42984
Sam MoffattParticipantHopefully one of those powerful new M1 Macs, can’t wait to see what the larger form factor MBP looks like next year.
-
AuthorPosts
You must be logged in to reply to this topic.