Re: RM#3294 - User need to reset the layout to see the changed preferences parameters

From: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
To: Victoria Henry <vhenry(at)pivotal(dot)io>
Cc: Harshal Dhumal <harshal(dot)dhumal(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: RM#3294 - User need to reset the layout to see the changed preferences parameters
Date: 2018-06-14 13:24:07
Message-ID: CAM9w-_kJjczpv1=tNWDkNyVX=2hr0AaXzgQT0-RCjD1Q_e0Qaw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Victoria/Hackers,

On Tue, Jun 12, 2018 at 9:52 PM, Victoria Henry <vhenry(at)pivotal(dot)io> wrote:

> Hi Aditya,
>
>
> It is not possible to fire event in another tab/new browser window. For
>>>> example, query tool can be open in another tab. And thus, changes are not
>>>> reflected there. There are solutions available like updating the
>>>> localStorage of the browser but those are not reliable and does not work
>>>> properly on different browsers.
>>>>
>>> To communicate between browser tabs we can use cookie polling on client
>>> side it self (at least it will avoid polling over http).
>>> The main tab will update only preference specific cookie when preference
>>> is updated and other tabs will poll required cookies (not all)
>>> with specific interval (1 second can be configurable).
>>>
>> Polling is a solution but I think it should be the last option. http
>> polls will not be required anyway as we have preference cache in the
>> browser object.
>>
>
> Maybe it's better to poll only when an editor is open in a separate
> window? What would we be polling for and how would be tell the backend
> that something changed during the poll?
>

​Currently I am using the cache_preferences function to fire the events.​
cache_preferences is called whenever preferences are changed. I suggest we
add kind of version for the preference cache, lets say prefcache_version
and we can set it to current epoch time whenever the cache_preference is
called.

​ Now, when a new tab/window is opened, it will store the version of
prefcache it is having. When the main window changes the preferences and
cache_preference is called, the prefcache_version will increase to current
epoch time. New tab polling can check if the version has increased and can
update ​its preferences along with prefcache_version.

​Please let me know if any suggestions.​

> Thanks
> Victoria & Joao
>

--
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB Software Solutions | Pune
"Don't Complain about Heat, Plant a tree"

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2018-06-14 15:16:36 pgAdmin 4 commit: Enable building of the appbundle with Python 3.6.
Previous Message Akshay Joshi 2018-06-14 10:49:30 Fixed issue on index page of the pgAdmin4 documentation