Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f3jbW-0005xG-PJ for pgadmin-hackers@arkaria.postgresql.org; Wed, 04 Apr 2018 14:41:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f3jbV-0008II-C0 for pgadmin-hackers@arkaria.postgresql.org; Wed, 04 Apr 2018 14:41:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f3jbV-0008I6-2d for pgadmin-hackers@lists.postgresql.org; Wed, 04 Apr 2018 14:41:37 +0000 Received: from mail-it0-x244.google.com ([2607:f8b0:4001:c0b::244]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1f3jbQ-0008Ar-Db for pgadmin-hackers@postgresql.org; Wed, 04 Apr 2018 14:41:36 +0000 Received: by mail-it0-x244.google.com with SMTP id b5-v6so17649834itj.1 for ; Wed, 04 Apr 2018 07:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=32SrgOgfITxMdsx3jj/TFYVbcsgPtA8dsWh1y9B+xHc=; b=WY7565uhmXoMBmwoUCnmOScThFFSwBo++a6WC5jcOywpjpUhMRqEyrqpPRENFziEXN suKTawQWfy7r9Z1wAHmboNYJ2/CpGrxVf4Un0lfkgNhOB/FMldj1ohbGsoaebNGbQXdb W2afPUslHjKwQSzwZKEtT6X9vMGW0lm8WbiO7//QY47W3Rw1UecB5ieUMRRmH6NSvbVU ukaN2l8o9Qni5hzS+iRgqse6QQ5nqVSqzVSibHidpRW8/rfVvlAlcKDoqzaKMLimzz+h P/xN13kye7U2gs+GC455pqP/NvLX2dSpkJ0X0oHlmTUyyiCbQX0RhDMmG/rMcKdcIx6I kN9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=32SrgOgfITxMdsx3jj/TFYVbcsgPtA8dsWh1y9B+xHc=; b=aFWbQubVBVMAU82eC5t9j+Itty59tfXpYsOu/rtWycu/VE6O/Tx5wnBCzREnzvUO+w 2fV8dYyv9Bpyyj3A23pX3Fa+x9Wwwqk1hGyvvgU17rZdjVS12+89FdRVbFmxmhsD+gim ksPLSEJAClqI+Bs9YL/4KkFUCnmK1xUwsHQoNfM8gcSsVSy7enkG34el6Yi016sWvj1J AEepwg37NZC1yNhVl7OAB085rf+Ma+Az6U7u0yhm75wBG+FfmVeOAON+nKoATz9wXqdD QQMYUk4TLxdDlvlkwwGcNytwXvABJnVcFfUcjUBHe3kcbYVcMWn7AuCqabHu3+wJs+Bk txrQ== X-Gm-Message-State: ALQs6tCH7umi/K+gCa0pEyhYbu46kgsjacrFGGIYxXS0Bh7/c/Bci8+Q S4IiEzbIkgWgOYltNfgKYBTUo/N8SB5wVjkrW7b//Q== X-Google-Smtp-Source: AIpwx49sAwlwUdT6Bat78fCXho9/oxFQN13D1kom8UssU4BKHBQPO48WLncTac7gD6/nDVUUX1ic44q48xJWC9dr9PM= X-Received: by 2002:a24:d09:: with SMTP id 9-v6mr10401202itx.144.1522852890415; Wed, 04 Apr 2018 07:41:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.141.195 with HTTP; Wed, 4 Apr 2018 07:41:09 -0700 (PDT) In-Reply-To: References: From: Ashesh Vashi Date: Wed, 4 Apr 2018 20:11:09 +0530 Message-ID: Subject: Re: [pgAdmin4][RM#3155] Allow user to lock the Layout To: Dave Page Cc: Murtuza Zabuawala , Joao De Almeida Pereira , pgadmin-hackers Content-Type: multipart/alternative; boundary="000000000000946a49056906d1c6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000946a49056906d1c6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 4, 2018 at 8:09 PM, Dave Page wrote: > > > On Wed, Apr 4, 2018 at 12:54 PM, Murtuza Zabuawala enterprisedb.com> wrote: > >> On Wed, Apr 4, 2018 at 5:00 PM, Dave Page 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 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 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: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> =E2=80=8BHello, >>>>>>>>>> >>>>>>>>>> Please find updated patch, >>>>>>>>>> >>>>>>>>>> Now layout will be locked after user updates its preferences, w >>>>>>>>>> e have used =E2=80=8B >>>>>>>>>> templated variable in the javascript file >>>>>>>>>> =E2=80=8B because we do not have preference module or preference= cache >>>>>>>>>> available when the page loads and panels gets rendered, >>>>>>>>>> =E2=80=8BI >>>>>>>>>> =E2=80=8B 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 >>>>>>>>> >>>>>>>> =E2=80=8BFixed=E2=80=8B >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> @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 o= n >>>>>>> it's own below the properties/stats panels (so it looks like pgAdmi= n 3 used >>>>>>> to by default), and then lock the layout, I can un-dock the SQL pan= el 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. >>>>>>> >>>>>> >>>>>> =E2=80=8BThat is expected behaviour =E2=80=8Bbecause once you drag t= he panel out of >>>>>> the group of Panels then it becomes individual Frame, That is what t= he >>>>>> 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? >>>>> >>>> =E2=80=8BNo, it stays Frame.=E2=80=8B >>>> >>>> As far as I understand Panel needs a Frame to render itself if it is >>>> not attached to the main docker instance.=E2=80=8B >>>> >>>>> >>>>> 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 =E2=80=8B >>>> locking frames out of the box :( >>>> =E2=80=8B >>>> >>> >>> Hmm, so the question becomes: do we include the lock feature, but renam= e >>> it to "Lock Tabs" or something similar, or leave it out altogether? It >>> clearly doesn't do everything we want right now. >>> >> =E2=80=8BI would say lets include the feature by adding warning note tha= t this >> feature works with default layout only, And I don't think most user will >> try to drag drop Browser panel =E2=80=8B >> 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 > --000000000000946a49056906d1c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On W= ed, Apr 4, 2018 at 8:09 PM, Dave Page <dpage@pgadmin.org> wr= ote:


On Wed, A= pr 4, 2018 at 12:54 PM, Murtuza Zabuawala <murtuza.zabuaw= ala@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:4= 5 AM, Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
On Wed, Apr 4, 2018 at 2:47 PM, Dave Page <dpage@pgadmin.org&g= t; = 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 P= age <dpage@pgadmin.org> wrote:
Hi

On Tue, Apr 3, 2018 at 12:56 PM, Mu= rtuza Zabuawala <murtuza.zabuawala@enterprisedb.com<= /a>> wrote:
=
Hi,

Thanks Joao for reviewing.

PFA updated patch.

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

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

=E2=80=8BHello,

Please find updated patch,=C2=A0

Now layout will be locked after user = updates its preferences, w
e have = used =E2=80=8B
templated varia= ble in the javascript file
=
=E2=80=8B because we do not have prefer= ence module or preference cache available when the page loads and panels ge= ts rendered,=C2=A0
=E2=80=8BI
=E2=80=8B also=C2=A0
made chang= es in JS tests as per Joao's review comments.
<= /div>
Looks like= everything is working when we change the lock.
As a personal pre= ferences I would prefer to see this in at least 2 commits, one that is rela= ted to the preference issue and another one that is related to this story.<= /div>


All the tests are working, but he l= inter is failing:
/tmp/build/4a5630c2/pivotal-rm-3155/web /tmp/build/4= a5630c2
./pgadmin/misc/__init__.py:78: [E3= 03] too many blank lines (2)
1 E303 too many blank lin= es (2)=C2=A0
= 1=C2=A0
=E2=80=8BFix= ed=E2=80=8B
=C2=A0


@Dave/Pivotal team,
The given patch is= working fine for all the Tabs/Panels (all the panels from main window as w= ell as from Query tool and Debugger) but I'm facing an issue while hand= ling the Browser tree section, It is a wcDocer frame and not a wcDocker panel.=C2=A0Like wcDocker panel, wcDocker frame do not pro= vide 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 t= he 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-doc= k 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.
=C2=A0
=
=E2=80=8B= That is expected behaviour =E2=80=8Bbecause once you drag the panel out of = the group of Panels then it becomes individual Frame, That is what the auth= or of the wcDocker replied on my question,=C2=A0
"A panel must either be initialized as movable or non-mo= vable from the beginning and never changed because it generates a different= arrangement of elements depending. This feature should only ever be used w= ithin the onCreate method of the panel. I should probably have been more cl= ear about this limitation in the documentation."


So does it become a pa= nel again if a second panel is added to the new tab group?
=E2=80=8BNo, it stays Frame.=E2= =80=8B
=C2=A0
As far as I understand Panel needs a Fra= me to render itself if it is not attached to the main docker instance.=E2= =80=8B

Ther= e must be some way we can lock a tab that's not part of a group.
<= /div>
At a moment there is no way= of =E2=80=8B
locking frames out of the = box :(
=E2=80=8B
=
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.=C2= =A0
=E2=80=8BI w= ould 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 =E2=80=8B
anyway, meanwhile I'll ch= eck what changes are required in main source code to make the Frame lock.

An= yone else have any thoughts on this? Personally I don't like including = half-baked features.
+1
=
-- Thanks, Ashesh=C2=A0
=

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

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Compan= y

--000000000000946a49056906d1c6--