My first App (a Safety Management System) is pretty much built and whilst there are a couple of stubborn UI/UX niggles the final hurdle for me is implementing application logic.
So for example if a user marks a safety issue as ‘Closed’ I want them to be informed this will close the child records for hazards, risk controls etc. I want to then obviously go and update the status of these records to Closed also.
There could be other things like you can’t create a date on a risk control which predates the creation date on its parent hazard. In fact as I work through the application there will be a fair amount of this type of logic check.
My initial thoughts were that I would have to create a load of popups with the custom ‘error’ messages in but this seems like it will be a headache!! Also, if I need the check to be carried out on change of a specific item (which would be best) how would I implement this?
If there are any best practice approches for this type of thing I would be grateful!!
So, for example, when they mark something as closed, you open up a panel below (show the element in Bubble speak) that they can then use the close the child records.
Love quality/safety control systems. I have much experience implementing them in no code apps. Even created an mvp in Bubble with a dynamic form builder.
So, your app is pretty much done. But you are now optimizing it and realize that additional logic is needed. Complementing @NigelG 's great suggestion you could also consider:
Prevent the user from doing something by disabling his/her ability to click a button. You can change a button from gray to blue (as an example) … where a grayed out button cannot be clicked until something else has been completed and blue tells the user that the button can be clicked.
Or alternatively … when the user clicks issue an alert to him/her that something else needs to be completed prior to the action being able to be executed. Restrict the action to take place until the “something else” has taken place.
In terms of carrying out a check on change of a specific item I mean, for example, when the user changes a dropdown from open to closed they get a warning at that point to say ‘This action will close child records’. It isn’t a showstopper if this can only be done on submit of the page as long as I can stop the page saving so they have the chance to change it back again.
I think I can find ways of doing most of what is needed but I want the UX to be slick and I dont want a huge overhead of tons of popups just for custom ‘error’ messages.
I am assuming this type of thing is done regularly but examples seem to be thin on the ground.
My plan always was to look at the business logic part last. In the first pass I built the data model, built the forms and implemented some of the basic validation and this all works pretty well (minus a couple of things I don’t like now I have learned more about how bubble works). As it stands the app is usable enough for me to capture all of the safety data I have currently sat in spreadsheets and documents. However, to improve the app it would benefit from applying additional logic in quite a few places.
It is an app that ony a small team will use so it isn’t essential but given I am using this example to learn Bubble I would still like to have a pattern for dealing with this type of thing.
Sorry, to just sharpen up the question I have on this one. What is the best way to make changes to a value on one thing after changing the value of another. So when it comes to changing the status of an issue in a popup I want to go off (even if it is after the issue has just been saved) and find one or mre related hazards and change their status too. I assume I can trigger a custom event on save of the issue popup?
I think you can create a variable say isChange (with yes/no option) to indicate whether field A changed or not, then set condition to change field B if isChange is “yes”, then reset isChange to “no”.
I am not sure whether this is the best way, but it is one of the ways changes the related fields.