Hi everyone,
I'm seeing this behaviour which I cannot explain. Could anyone recommend me a solution or reason for this behaviour?
I'm having an interface with gridField(), one of the grid column's value is richTextIcon() containing a submitLink() to kick off a process model. Please see below the code to build up my grid column:
a!gridColumn( align: "CENTER", label: "", value: a!localVariables( local!showLink: false, a!richTextDisplayField( value: a!richTextIcon( caption: "Re-open Case", icon: "folder-open", link: a!submitLink( showWhen: local!showLink = false(), saveInto: { a!startProcess( processModel: cons!PRO_PM_REACTIVATE_CASE processParameters: { noteContent: "This case was re-activated", caseId: fv!row['recordType!Test.field.caseId] }, onSuccess: { a!save(local!showLink, true) } ) } ), linkStyle: "STANDALONE" ) ) ) )
I'm expecting to disable the submit link after user clicking on the icon once. The icon was successfully disabled when I test on that interface, and behaved correctly when I tested on the parent interface also, but coming to site testing, after clicking the icon once, it is still active and I can re-click it as many times as I want.
Does any one have any idea of how to fix this or possible solution to find the reason? Please help if you do
Thank you!
Discussion posts and replies are publicly visible
Replace local!showLink = false() with not(local!showLink) in your showWhen attribute to properly evaluate the boolean condition.
local!showLink = false()
not(local!showLink)
showWhen
Ensure the interface where the grid is displayed refreshes after the process is triggered so it can reflect the updated state.
Note:
By implementing these changes, you can ensure the submitLink() is disabled after being clicked once, even when tested on the front-end site.
submitLink()
Hi , thanks for helping.
I changed local!showLink = false() with not(local!showLink),and I also added refreshOnVarChange: local!refreshCounter to the gridField(), but still it only works on interface level.
not(local!showLink),and I also added refreshOnVarChange: local!refreshCounter to the gridField(), but still it only works on interface level.
Not quite understand how to work on session variable, but will doing it solve the issue?