Button loading widget to invoke a client action
Question
Application Type
Reactive

Hi, 

I'm trying to use the button loading widget to invoke a very slow client action (1-3 seconds). But the load rotation button is not shown. The screen freezes and after (1-3 seconds) the screen is rendered.

A workaround for this is to call a dummy server action at the start of the client action, then the screen is rendered showing the load button immediately after calling the client action and finally the screen is rendered again at the end of the client action showing the result of the calculation performed.

It seems to me that it's necessary to interrupt the client action for React to do its magic and render the screen.

Does anyone know how to get this behavior without having to call a server action?

Hi,

I created an application to better explain the behavior. Hope it helps in understanding.

ButtonLoading.oml

Hi Sergio,

To me is rotating, or I didn't understand well?

Here is a gif of the action:


Regards,

Luis

Hi Luis,

Yes it works. But only with a dummy server action. I would like to know how to get this behavior without having to call a dummy server action. Sometimes the application will go offline so it will not be possible to call the server action. Also, the server action is unnecessary... it's just a trick... a workround...

Try the left button "Without Dummy Server Action". It's not rotating...

Regards

Sérgio Silva.

Ahh, I understand it now.

Someone can correct me if I am wrong, but for client actions will not work. https://success.outsystems.com/Documentation/11/Developing_an_Application/Design_UI/Patterns/Using_Mobile_and_Reactive_Patterns/Utilities/Button_Loading?_gl=1*1ikjpp7*_ga*NDQwNzE0MzgxLjE2MzAwNDYyMzE.*_ga_ZD4DTMHWR2*MTYzMTEwODEzNy4zLjEuMTYzMTExNDU0NS41MQ..

In here it says that "to call actions that don't run immediately " so I am assuming server actions. To accomplish that it's better to build your own (maybe clone it).


Regards,

Luis Oliveira 

I'm trying to do that:


The Button Loading Widget is very simple, it's just change an Is Loading variable to show or hide an icon. But the Screen is only rendered after the client action ends or when a server action is called.

It seems to me that the server action splits the client action in two (before and after calling it). Rendering the screen twice, thus showing the icon rotating


I wonder if there is a way to break a client action in two (without calling a server action )... 

Like a "commit in a database transaction" Something like that... hehehe


Thank you Luis.

I tried to do a widget click in another button but doesn't work also. Maybe someone have some clues on how to accomplish it.


Regards,

Luis

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.