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 1f44XJ-0004iC-3S for pgadmin-hackers@arkaria.postgresql.org; Thu, 05 Apr 2018 13:02:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f44XI-0007CV-1e for pgadmin-hackers@arkaria.postgresql.org; Thu, 05 Apr 2018 13:02:40 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f44XH-0007CL-HI for pgadmin-hackers@lists.postgresql.org; Thu, 05 Apr 2018 13:02:39 +0000 Received: from mail-ua0-x22e.google.com ([2607:f8b0:400c:c08::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1f44X9-0005Kj-Ny for pgadmin-hackers@postgresql.org; Thu, 05 Apr 2018 13:02:37 +0000 Received: by mail-ua0-x22e.google.com with SMTP id q12so15404094uae.4 for ; Thu, 05 Apr 2018 06:02:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XvtQ/isiBkPB0YWViufU65z+ZandOfUkFir/djJsCDw=; b=CpeoXAn6pktqPHNxx+gn1sGVWUQwFB/hAyqvOl9f11n5uAmZASl7EwrZqHC1mFJuNh wC1nx0P6MIiUh/r3Oha0o9jZ9FVl5tSs7rMSIw4VaxVGff8i+Ab6w3c9ZRRIY5dtKm4D xkDOTxWK9HnkOMINx7oXSUUJfo6EFupkBDCdGXaNLystkY5eK7cHSyUyE4BDJcA88Xmx mr19I7XeblV3gifmEcGdmb8fq1QuOUM2XzKRpEfdaCTzF6a5S4qNIQIxCGTaIWXI7zxs sH/YjbEdxLJeDFcfJk03KGKmX8WAMzvM+EW3HjN1UMu5C7j8G7VSCVu6fAsi8dG448bV 5+QA== 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=XvtQ/isiBkPB0YWViufU65z+ZandOfUkFir/djJsCDw=; b=S6jDjLFQ2H1WF0nzmYcAS2pCrT9PI+SDEH/VQL1ZTOcGuD66ESAXVs0pvXtn5XaEwh 2E9lgffG4VXpS450IdJC1eCzUg6K10cj7kF9KfdQ3aw+zZKi4EL6TTgugwud3zlCN9s0 ZkqetQGdTrftBxGqU+MMJ45UuVoqOEWgklYKFDewLMIcrPYOFs7zuD0oX+uSj2B6IhyA hPadHw36S/raB/RJb76HAmYYMG4KPpQSanpMVkB7Tfn37xZ47A2eerxMZJY4Db5/yHfU xFPZFtOA8q3xH7OBJx2wx7zKWhABGc0H1BZs9Eoah0t7Fcur5F6NN2K7N8C71l27FdU2 74AQ== X-Gm-Message-State: AElRT7G7ApyrNTqJ3AWm7i3B8cQyrHGsLfr57/71cqr7cHvUCMblfLML FN5TRMlEKdbVCBV/zEV0DqN+kXZst4JVXVkqHG6Opw== X-Google-Smtp-Source: AIpwx49Enp3aPSicZtoD0G+s3Lup0g/LCqN1V5OVuymspvqOLJ5I2osxQDAXZsTbsl/7FcSkBaN3X25nQ0dRteb+oHo= X-Received: by 10.159.34.107 with SMTP id 98mr13811735uad.120.1522933350045; Thu, 05 Apr 2018 06:02:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.96.136 with HTTP; Thu, 5 Apr 2018 06:02:29 -0700 (PDT) In-Reply-To: References: From: Robert Eckhardt Date: Thu, 5 Apr 2018 09:02:29 -0400 Message-ID: Subject: Re: [pgAdmin4][RM#3155] Allow user to lock the Layout To: Khushboo Vashi Cc: Dave Page , Murtuza Zabuawala , Joao De Almeida Pereira , pgadmin-hackers Content-Type: multipart/alternative; boundary="001a1140a4da58c6100569198d2a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --001a1140a4da58c6100569198d2a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 4, 2018 at 11:31 PM, Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > > > On Wed, Apr 4, 2018 at 8:09 PM, Dave Page 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 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 preferenc= e 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 anoth= er 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 th= e >>>>>>>>>>> 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 pg= Admin 3 >>>>>>>> used to by default), and then lock the layout, I can un-dock the S= QL 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. >>>>>>>> >>>>>>> >>>>>>> =E2=80=8BThat 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 >>>>>>> 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 bee= n more >>>>>>> clear about this limitation in the documentation."* >>>>>>> >>>>>>> >>>>>> So does it become a panel again if a second panel is added to the ne= w >>>>>> 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 >>>> rename it to "Lock Tabs" or something similar, or leave it out altoget= her? >>>> It clearly doesn't do everything we want right now. >>>> >>> =E2=80=8BI would say lets include the feature by adding warning note th= at this >>> feature works with default layout only, And I don't think most user wil= l >>> 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, but we need to find out the way as this feature is requested by many > users. > 100% agree. I can convince my self that this feature request has to do with locking panels into a certain layout. I can also convince myself that the same request is simple because users are frustrated with the fact that the tabs and panes move around and they find that behavior annoying. -- Rob > -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > --001a1140a4da58c6100569198d2a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Wed, Apr 4, 2018 at 11:31 PM, Khushboo Vashi <<= a href=3D"mailto:khushboo.vashi@enterprisedb.com" target=3D"_blank">khushbo= o.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@enterprised<= wbr>b.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 <murtu= za.zabuawala@enterprisedb.com> wrote:
<= span style=3D"font-family:arial,sans-serif;color:rgb(34,34,34)">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 <<= a href=3D"mailto:murtuza.zabuawala@enterprisedb.com" target=3D"_blank">murt= uza.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, Murtuza Zabuawala <murtuza.zabuawala@e= nterprisedb.com> wrote:
Hi,

Thanks Joao for reviewing.

PFA updated patch.<= /div>

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,
<= br>
Please find upda= ted patch,=C2=A0
Now layout will b= e locked after user updates its preferences, w
e have used =E2=80=8B
<= /div>
templated variable in the javascript file<= /div>
=E2=80=8B because we do not have preference module= or preference cache available when the page loads and panels gets rendered= ,=C2=A0
=E2=80=8BI
=E2=80=8B also=C2=A0
made changes in JS te= sts 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.
<= br>

All the tests are working, but he linter is fa= iling:
=
/tmp/build/4a5630c2/pivota= l-rm-3155/web /tmp/build/4a5630c2
./pgadmin/mis= c/__init__.py:78: [E303] too many blank lines (2)
1 E3= 03 too many blank lines (2)=C2=A0
1=C2=A0
=E2=80=8BFixed=E2=80=8B
=C2=A0


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

It's not w= orking fine for me. For example, if I put the SQL Panel on it's own bel= ow the properties/stats panels (so it looks like pgAdmin 3 used to by defau= lt), 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.
=C2=A0
=E2=80=8BThat is expected behaviour =E2= =80=8Bbecause once you drag the panel out of the group of Panels then it be= comes individual Frame, That is what the author of the wcDocker replied on = my question,=C2=A0
"A panel mu= st either be initialized as movable or non-movable from the beginning and n= ever changed because it generates a different arrangement of elements depen= ding. This feature should only ever be used within the onCreate method of t= he panel. I should probably have been more clear about this limitation in t= he 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
=C2=A0
As far as I understand Panel needs a Frame to render itself if it is no= t 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 questi= on becomes: do we include the lock feature, but rename it to "Lock Tab= s" or something similar, or leave it out altogether? It clearly doesn&= #39;t do everything we want right now.=C2=A0
=E2=80=8BI would say lets include the feature = by adding warning note that this feature works with default layout only, An= d 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 m= ain source code to make the Frame lock.

Anyone else have any thoughts on thi= s? Personally I don't like including half-baked features.=C2=A0

+= 1, but we need to find out the way as this feature is requested by many use= rs.=C2=A0

100% agre= e. I can convince my self that this feature request has to do with locking = panels into a certain layout. I can also convince myself that the same requ= est is simple because users are frustrated with the fact that the tabs and = panes move around and they find that behavior annoying.=C2=A0
-- Rob
=C2=A0
--
Dave Pa= ge
Blog: http:= //pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterpris= edb.com
The Enterprise PostgreSQL Company


--001a1140a4da58c6100569198d2a--