display loading indicator immediately when necessary

This commit is contained in:
Géry Debongnie
2019-02-17 14:36:40 +01:00
parent d7d0912853
commit efc5e3a1d4
3 changed files with 7 additions and 8 deletions
+3 -4
View File
@@ -41,7 +41,6 @@ interface State {
stack: ActionStack; stack: ActionStack;
inHome: boolean; inHome: boolean;
currentApp: MenuItem | null; currentApp: MenuItem | null;
isLoading: boolean;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -56,8 +55,7 @@ export class Root extends Widget<Props, State> {
notifications: [], notifications: [],
stack: [], stack: [],
inHome: false, inHome: false,
currentApp: null, currentApp: null
isLoading: false
}; };
constructor(env: Env, props: Props) { constructor(env: Env, props: Props) {
@@ -77,7 +75,8 @@ export class Root extends Widget<Props, State> {
// loading indicator // loading indicator
this.env.ajax.on("rpc_status", this, status => { this.env.ajax.on("rpc_status", this, status => {
this.updateState({ isLoading: status === "loading" }); const method = status === "loading" ? "remove" : "add";
(<any>this.refs.loading_indicator).classList[method]("d-none");
}); });
// actions // actions
+1 -1
View File
@@ -14,7 +14,7 @@
<t t-widget="Notification" t-props="notif"/> <t t-widget="Notification" t-props="notif"/>
</t> </t>
</div> </div>
<div class="o_loading" t-if="state.isLoading">Loading</div> <div class="o_loading d-none" t-ref="loading_indicator">Loading</div>
</div> </div>
<div t-name="web.navbar" class="o_navbar" t-att-class="props.inHome ? 'o_navbar o_in_home' : 'o_navbar'"> <div t-name="web.navbar" class="o_navbar" t-att-class="props.inHome ? 'o_navbar o_in_home' : 'o_navbar'">
@@ -31,7 +31,7 @@ exports[`can be rendered (in home menu) 1`] = `
<div class=\\"o_notification_container\\"> <div class=\\"o_notification_container\\">
</div> </div>
<div class=\\"o_loading d-none\\">Loading</div>
</div>" </div>"
`; `;
@@ -107,7 +107,7 @@ exports[`if url has action_id, will render action and navigate to proper menu_id
<div class=\\"o_notification_container\\"> <div class=\\"o_notification_container\\">
</div> </div>
<div class=\\"o_loading\\">Loading</div>
</div>" </div>"
`; `;
@@ -174,6 +174,6 @@ exports[`start with no action => clicks on client action => discuss is rendered
<div class=\\"o_notification_container\\"> <div class=\\"o_notification_container\\">
</div> </div>
<div class=\\"o_loading d-none\\">Loading</div>
</div>" </div>"
`; `;