I could be wrong, er… correction, there’s probably at least a 50% chance I am, but I think that functionality is already in Glide Pages?
If my response, or understanding of the problem is out of whack then I’ll appologise in advance - I’m very much a n00b here and finding stuff out by massive over-reach of my own abilities and then trying to figure it out as I go.,
If I’m understanding you correctly, and perhaps adding to it, you want to have an edit screen that doesn’t just have ‘all the fields’ that are in the data set, and requires specific user action to submit and commit an edit instead of just overwriting information and it being commited to the database without their specific acknowledgment?
If that’s the case then I think that there are two issues at play here:
- You’re not using the form fields correctly for the way that you intend the page to be used
- Custom edit foms that do what I think you’re describing are available already.
Point 1:
This confused me a bit, but the field entry components don’t always work the same way - they respond to their environment. Specifically if they’re in a ‘form container’ / ‘form screen’, or if they’re not in either of those places, and instead placed on a page outside of those two ‘containers’.
When within a ‘form screen’ or ‘form container’ then data is not written to the table until the submit button is pressed. BUT if they’re outside of those two then they look and feel the same from a UI and App Builder perspective, but they actually are very much directly linked to their respective cells in the data source. And by directly I mean, live, in real time, type something and it’s already in the cell. No ’submit’, nothing. It’s just ’there’. That sounds like the problem that you’re describing, and if so then join the club - I made that mistake too. I’m sure many if not most people have at some point.
To stop this happening then the fields need to be placed inside a form container. The ’Form Screen’ is a container, and there’s also a component called ‘form container’ that you can put the fields in. There’s not a lot of documentation that goes into the detail of ‘what if’, but there’s a form one here>>
Glide • Forms
and form container one here (no documentation, video only, but it’s a short one) >>
Glide • Form Container
That gives you the ‘submit’ action that you’re after, and stops the ‘instant’ edit that I think you’re experiencing.
Moving to Point 2
There are a number of ways to make edits. There’s the ‘dirty’/‘high risk’ way that you’ve experienced (but it really does have its place too, there’s a reason for Glide allowing the action), there’s also ‘edit’ screens, but I’ll assume you know about them. The other way can be done in a number of different ways, but ultimately leads to a similar place - custom forms.
If you have an empty screen, or not, you can put the ‘form container’ component in it, and that’ll give you complete ability to place fields in it wherever you’d like (I think they might need to be putting data onto the same table though). This works great for quick in-line data edits.
For what I think of as more ‘discreet’ edit screen I go to either a ‘New Screen’ action or ‘Form Screen’. ‘New Screen’ is a completely blank screen. It isn’t a form screen - so you need to add a container for that, but it gives you the custom linked screen that I think you’re after.
If you’re going ‘deep’, and need to have greater control of the UI, then the only way to go is the ‘Form Screen’. The reason is that ‘Form Containers’ don’t mix well with ‘Container’ components that you use for setting your screen layout and making it alll pretty or whatnot. On the ‘Form Screen’ however, you can place as many containers as you’d like, allowing you to very much customise the look and feel of your form, getting away from the more ‘cookie cutter’ look of some of the other screen options if that’s not appropriate for what you’re doing. You then have the ‘submit’ button that you’re after, as well as some custom looking pages.
Of course, your mileage may vary, I haven’t tried every combination so I could have it wrong, or be remembering it incorrectly, but I hope that if I was correct in my assessment of the problem then that might help a bit.
ATB, Jon