Dashboard - can display one time only

In my vanilla Tryton, now I can click on Dashboard menu and it shows a screen, not an error anymore. However, I can only click one time. After I close Dashboard and go to any other menu, click on Dashboard menu again doesn’t show anything - only blank screen and seems like no process happens.

On the other side, if at that time I try to logout (Administrator), nothing happen but when I try to refresh page, it’s already logged out.

Anybody has the same experience?

Trytond: 6.6.4
Dashboard module: 6.6.0
PostgreSQL 14.6
Python 3.10.9

I dont yet have this experience but do u try to check your log file incase the problem is in it

Here’s the result of my log file. When I click “Dashboard”

[Tue Feb 07 13:53:45 2023] INFO:trytond.wsgi:<JSONRequest 1@127.0.0.1http://localhost:8000/trytondb/’ [POST] model.ir.ui.icon.list_icons>
[Tue Feb 07 13:53:45 2023] INFO:trytond.wsgi:<JSONRequest 1@127.0.0.1http://localhost:8000/trytondb/’ [POST] model.ir.ui.menu.resources>
[Tue Feb 07 13:53:45 2023] INFO:trytond.wsgi:<JSONRequest 1@127.0.0.1http://localhost:8000/trytondb/’ [POST] model.ir.action.keyword.get_keyword>
[Tue Feb 07 13:53:45 2023] INFO:trytond.protocols.dispatcher:ir.ui.icon.list_icons({‘client’: ‘dd91d2ff-9a3b-423d-8f74-1c1510e3fc84’, ‘company_filter’: ‘one’, 'co [truncated]…) from admin@127.0.0.1/trytondb/ in 18 ms
[Tue Feb 07 13:53:45 2023] INFO:werkzeug:127.0.0.1 - - [07/Feb/2023 13:53:45] “POST /trytondb/ HTTP/1.1” 200 -
[Tue Feb 07 13:53:45 2023] INFO:trytond.wsgi:<JSONRequest 1@127.0.0.1http://localhost:8000/trytondb/’ [POST] model.ir.ui.icon.read>
[Tue Feb 07 13:53:45 2023] INFO:trytond.protocols.dispatcher:ir.ui.menu.resources(365, {‘client’: ‘dd91d2ff-9a3b-423d-8f74-1c1510e3fc84’, ‘company_filter’: ‘one’ [truncated]…) from admin@127.0.0.1/trytondb/ in 28 ms
[Tue Feb 07 13:53:45 2023] INFO:werkzeug:127.0.0.1 - - [07/Feb/2023 13:53:45] “POST /trytondb/ HTTP/1.1” 200 -
[Tue Feb 07 13:53:45 2023] INFO:trytond.protocols.dispatcher:ir.ui.icon.read([6, 17, 18, 19], [‘name’, ‘icon’], {‘client’: 'dd91d2ff-9a3b-423d-8f74-1c1510e3 [truncated]…) from admin@127.0.0.1/trytondb/ in 15 ms
[Tue Feb 07 13:53:45 2023] INFO:werkzeug:127.0.0.1 - - [07/Feb/2023 13:53:45] “POST /trytondb/ HTTP/1.1” 200 -
[Tue Feb 07 13:53:45 2023] INFO:trytond.protocols.dispatcher:ir.action.keyword.get_keyword(‘tree_open’, [‘ir.ui.menu’, 365], {‘client’: 'dd91d2ff-9a3b-423d-8f74-1c1510e3f [truncated]…) from admin@127.0.0.1/trytondb/ in 40 ms
[Tue Feb 07 13:53:45 2023] INFO:werkzeug:127.0.0.1 - - [07/Feb/2023 13:53:45] “POST /trytondb/ HTTP/1.1” 200 -
[Tue Feb 07 13:53:45 2023] INFO:trytond.wsgi:<JSONRequest 1@127.0.0.1http://localhost:8000/trytondb/’ [POST] model.ir.ui.view.view_get>
[Tue Feb 07 13:53:45 2023] INFO:trytond.protocols.dispatcher:ir.ui.view.view_get(1573, {‘client’: ‘dd91d2ff-9a3b-423d-8f74-1c1510e3fc84’, ‘company_filter’: 'one [truncated]…) from admin@127.0.0.1/trytondb/ in 20 ms
[Tue Feb 07 13:53:45 2023] INFO:werkzeug:127.0.0.1 - - [07/Feb/2023 13:53:45] “POST /trytondb/ HTTP/1.1” 200 -

then I close Dashboard module and start to click on any other menu randomly, then I when I click on Dashboard menu, nothing happened. This problem doesn’t exist when I use Tryton desktop. I suppose, there must be something wrong with sao?

Note: I use sao 6.6.4

You should check the JS console log. I guess there is a crash when closing the dashboard which makes the client think that there is still a tab for the dashboard open.

I open JS Console and watch the behaviour. When I open Dashboard for the first time, everything is fine. After I closed Dashboard window and try to open Dashboard again by clicking on the Dashboard menu, JS console shows this:

 jQuery.Deferred exception: this.content is undefined init/<@http://localhost:8000/dist/tryton-sao.min.js:4:186670 c@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28594 add@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28872 init@http://localhost:8000/dist/tryton-sao.min.js:4:186429 i@http://localhost:8000/dist/tryton-sao.min.js:4:2065 Sao.Tab.create@http://localhost:8000/dist/tryton-sao.min.js:4:165704 Sao.Action.exec_action/<@http://localhost:8000/dist/tryton-sao.min.js:4:391874 e@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30305 Deferred/then/l/</t<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30607 setTimeout handler*Deferred/then/l/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30816 c@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28594 add@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28872 Deferred/then/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30912 Deferred@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:31325 then@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30841 Sao.Action.exec_action@http://localhost:8000/dist/tryton-sao.min.js:4:391840 Sao.Action.exec_keyword/</<@http://localhost:8000/dist/tryton-sao.min.js:4:392692 e@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30305 Deferred/then/l/</t<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30607 setTimeout handler*Deferred/then/l/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30816 c@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28594 add@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28872 Deferred/then/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30912 Deferred@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:31325 then@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30841 Sao.Action.exec_keyword/<@http://localhost:8000/dist/tryton-sao.min.js:4:392664 Deferred/pipe/</</<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:30014 c@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28594 add@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:28872 Deferred/pipe/</<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:29991 each@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:3003 Deferred/pipe/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:29937 Deferred@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:31325 pipe@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:29914 Sao.Action.exec_keyword@http://localhost:8000/dist/tryton-sao.min.js:4:392510 Sao.main_menu_row_activate@http://localhost:8000/dist/tryton-sao.min.js:4:12511 switch_@http://localhost:8000/dist/tryton-sao.min.js:4:340877 switch_row@http://localhost:8000/dist/tryton-sao.min.js:4:353159 select_row@http://localhost:8000/dist/tryton-sao.min.js:4:353332 dispatch@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:43331 add/y.handle@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:41315 EventListener.handleEvent*add@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:41782 Se/<@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:40376 each@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:3003 each@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:1481 Se@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:40352 on@http://localhost:8000/bower_components/jquery/dist/jquery.min.js:2:46862 init@http://localhost:8000/dist/tryton-sao.min.js:4:346495 undefined [jquery.min.js:2:31860](http://localhost:8000/bower_components/jquery/dist/jquery.min.js)

Still try to find out, have no experience with JQuery.

It is always difficult to debug with the minified version of sao. It is better to use the plain one.

how do I use the plain sao for debugging purpose?

Just remove the minified version from the server, sao will pick automatically the non-minified version.

forgive my newbie-to-frontend question. this is the steps that I use to install sao:

  1. take the source
  2. did npm install as written in sao’s README.md. there will be node_modules and bower_components dirs.
  3. have it configured in conf file (sao location)

in which part I should “remove the minified version”?

thanks!

This should be under dist folder, same level as node_modules and bower_components.

An easier approach:
Open your Network tab in Developer Tools and block /dist/tryton-sao.min.js requests. SAO will take care of the rest like Cédrik said.
To block the request you locate it, right click it and click “Block request URL” (name will change depending on browser but will be very similar).

thanks, will try later.