Re: [pgAdmin4][RM#3155] Allow user to lock the Layout - Mailing list pgadmin-hackers

From Dave Page
Subject Re: [pgAdmin4][RM#3155] Allow user to lock the Layout
Date
Msg-id CA+OCxoxvyRjJGNS0KW8G35hdLu5WTkW8gfWx1_MOyxFJ9OQt-A@mail.gmail.com
Whole thread Raw
In response to Re: [pgAdmin4][RM#3155] Allow user to lock the Layout  (Victoria Henry <vhenry@pivotal.io>)
List pgadmin-hackers


On Wed, Apr 4, 2018 at 4:46 PM, Victoria Henry <vhenry@pivotal.io> wrote:
Hi Hackers,

We just reread the issue in Redmine, and our take is a little bit different. Looks like the problem the person is complaining the tabs sticking to the mouse when clicked. We also experience that problem while developing.

There isn't just one issue. Various people have asked for the ability to lock the view in the configuration they like.
 

How hard would it be to eliminate the Drag and Drop of tabs in the current implementation?
Do we think this might be a problem for the majority of the users?

When it comes to removing features, I don't really care about the majority. Creating annoyance or inconvenience by removing working, useful features for even a small percentage of users is not something I consider an option unless absolutely essential.
 

Thanks
Victoria & Joao

On Wed, Apr 4, 2018 at 10:41 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote:
On Wed, Apr 4, 2018 at 8:09 PM, Dave Page <dpage@pgadmin.org> wrote:


On Wed, Apr 4, 2018 at 12:54 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
On Wed, Apr 4, 2018 at 5:00 PM, Dave Page <dpage@pgadmin.org> wrote:


On Wed, Apr 4, 2018 at 10:45 AM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
On Wed, Apr 4, 2018 at 2:47 PM, Dave Page <dpage@pgadmin.org> wrote:


On Wed, Apr 4, 2018 at 7:20 AM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi Dave,

On Tue, Apr 3, 2018 at 9:03 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Tue, Apr 3, 2018 at 12:56 PM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
Hi,

Thanks Joao for reviewing.

PFA updated patch.

On Tue, Apr 3, 2018 at 1:11 AM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello,

On Mon, Apr 2, 2018 at 10:07 AM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:

​Hello,

Please find updated patch, 

Now layout will be locked after user updates its preferences, w
e have used ​
templated variable in the javascript file
​ because we do not have preference module or preference cache available when the page loads and panels gets rendered, 
​I
​ also 
made changes in JS tests as per Joao's review comments.
Looks like everything is working when we change the lock.
As a personal preferences I would prefer to see this in at least 2 commits, one that is related to the preference issue and another one that is related to this story.


All the tests are working, but he linter is failing:
/tmp/build/4a5630c2/pivotal-rm-3155/web /tmp/build/4a5630c2
./pgadmin/misc/__init__.py:78: [E303] too many blank lines (2)
1 E303 too many blank lines (2) 
1 
​Fixed​
 


@Dave/Pivotal team,
The given patch is working fine for all the Tabs/Panels (all the panels from main window as well as from Query tool and Debugger) but I'm facing an issue while handling the Browser tree section, It is a wcDocer frame and not a wcDocker panel. Like wcDocker panel, wcDocker frame do not provide any API so that a developer can prevent drag-drop functionality on it.

It's not working fine for me. For example, if I put the SQL Panel on it's own below the properties/stats panels (so it looks like pgAdmin 3 used to by default), and then lock the layout, I can un-dock the SQL panel into a dialogue, but then cannot re-dock it. I can do weird things with the browser tree as well, probably because it's a frame as you say.
 
​That is expected behaviour ​because once you drag the panel out of the group of Panels then it becomes individual Frame, That is what the author of the wcDocker replied on my question, 
"A panel must either be initialized as movable or non-movable from the beginning and never changed because it generates a different arrangement of elements depending. This feature should only ever be used within the onCreate method of the panel. I should probably have been more clear about this limitation in the documentation."


So does it become a panel again if a second panel is added to the new tab group?
​No, it stays Frame.​
 
As far as I understand Panel needs a Frame to render itself if it is not attached to the main docker instance.​

There must be some way we can lock a tab that's not part of a group.
At a moment there is no way of ​
locking frames out of the box :(

Hmm, so the question becomes: do we include the lock feature, but rename it to "Lock Tabs" or something similar, or leave it out altogether? It clearly doesn't do everything we want right now. 
​I would say lets include the feature by adding warning note that this feature works with default layout only, And I don't think most user will try to drag drop Browser panel ​
anyway, meanwhile I'll check what changes are required in main source code to make the Frame lock.

Anyone else have any thoughts on this? Personally I don't like including half-baked features.
+1

-- Thanks, Ashesh 

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

pgadmin-hackers by date:

Previous
From: Victoria Henry
Date:
Subject: Re: [pgAdmin4][RM#3155] Allow user to lock the Layout
Next
From: Dave Page
Date:
Subject: Re: [pgadmin4][patch] Initial patch to decouple from ACI Tree