Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nRvGe-0004qf-5w for pgadmin-hackers@arkaria.postgresql.org; Wed, 09 Mar 2022 12:18:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nRvGc-00021m-Id for pgadmin-hackers@arkaria.postgresql.org; Wed, 09 Mar 2022 12:18:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nRvGb-00021c-TI for pgadmin-hackers@lists.postgresql.org; Wed, 09 Mar 2022 12:18:10 +0000 Received: from mail-io1-xd2c.google.com ([2607:f8b0:4864:20::d2c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nRvGY-00042G-1B for pgadmin-hackers@postgresql.org; Wed, 09 Mar 2022 12:18:09 +0000 Received: by mail-io1-xd2c.google.com with SMTP id q11so2472708iod.6 for ; Wed, 09 Mar 2022 04:18:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=yZhsiLG/LM9708/LqALiioQf50B5pbHCHtltNHfBLjg=; b=GRKaslb5sUPYQxF1aV0ctk+l8NcjRMy64w87kFcIuGHGqVRrZMoSlsv1LpMuWAwxsq xY60v/UCACDJ0vPTWJ32bzpuxH+bHGp5fBG5NoNjdT0DSzsPkZO2lSFlCynDZVButBtD ARdc6H8wWpB28Eg8AQd5maglXRDATOcuwWnooRGMDj5w1DVGHLuh/VNdnb/PKXAyV8gB NqsN/rHmbqQOkPcINBPtPRqbPiWXGu26bwtgJhFGn4Og3Rh1EwTzylQ9TJKVwCO+MsD/ GHGO4jsWvmshF/OOiwRqM1NVtBD4y53tOUxAoceMvFqrgcKAPckxQMIO0b3jnsJs0RIi tF3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=yZhsiLG/LM9708/LqALiioQf50B5pbHCHtltNHfBLjg=; b=ispLFAvBuA86xXa2BJLXDlWwx3oPLacPNUwA/CsgvRF2uq65YVkmrTgXL3u+zGes6h g76ZdqiJirvIaNQS4xnujXiYv5Cg7zLGG1GNCdT3abknFI0bU3DhCuUNaPZQxrclKBw7 zzn9+3BAioE6d2gxJudrsH1Ayw/Bd3rae9JifWd8kfqy6R8UNTpyeBba+5S9Brq+qxAz F8A8kcHD0XEF3QVDWz1R+F93Kvss1g3SphT/cwM52MrohPidiNvn977xzQgxyOhL460x UdYampDwok9TmVWwxTfs0Qh0RMkIy7Umt8ZytVk5XqAKObCfC09IBN+EOay3NsmYQIOo PuXQ== X-Gm-Message-State: AOAM530DPQW/TivR3RovWcm1w923Nyin6HENP4wfcsc156GoX4tuCd2K o0mQpiz2xka/qfxbSmTKfqpb0T6on9O7RZdQh06RY96v09MQSzMaMe3ZTaQ7J947LEdfysCNEsa 3VQwMYuMb9B4KDDL+fOGstzgJ8XzSYKChbnu0aX7trkAN2Y7tR1BUg8HBcYEg522LtQDN6i5yYy n5Ih5uzaGla0mKxgB3GGmbK17otVeiWTxlv22fM2s0/35OXJ9keF+QdfZBhdAeTYA= X-Google-Smtp-Source: ABdhPJwrko7vMnzeTjg637qMNC0V008hllNAk8BrxLOFD81niLba/Pwto8xHSARBEhGfdVGHU7c9jAjQDrLEHA80Cxw= X-Received: by 2002:a5d:984f:0:b0:63d:a956:cdbc with SMTP id p15-20020a5d984f000000b0063da956cdbcmr18431990ios.37.1646828283654; Wed, 09 Mar 2022 04:18:03 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Akshay Joshi Date: Wed, 9 Mar 2022 17:47:52 +0530 Message-ID: Subject: Re: [pgAdmin][RM-7149]: [React] Port preferences dialog to React. To: Nikhil Mohite , pgadmin-hackers Content-Type: multipart/related; boundary="000000000000daaf6605d9c8162f" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000daaf6605d9c8162f Content-Type: multipart/alternative; boundary="000000000000daaf6505d9c8162e" --000000000000daaf6505d9c8162e Content-Type: text/plain; charset="UTF-8" Hi Nikhil Below are the review comments: *GUI:* - By default, all nodes should be expanded, and at least one node should be selected (Check existing behavior). - Reduce the space between the expand/collapse (>) icon and the tress node label. It is most likely icons that are taking up that space. - Unable to select parent node. With old behavior when we select the parent node its immediate first child is selected and the appropriate page is displayed on the right side. - The maximize button should be consistent with all other dialogs. - Maximize not working properly, move the dialog bit up, and then click Maximize button, dialog is not visible correctly. - The help button is missing at the bottom. - A documentation update is missing. - Keyboard Shortcuts (Browser, Debugger, Query Tool, and ERD Tool) *Fix for all* - Between the 'Key' label and control, there should be a margin. - Reduce the width of the key control. - The key control loses focus when the key is pressed. Verify old behavior. - Nodes: Can we add a message or label at the top about settings? Previously, we had a switch control with a 'Show/Hide' label that was clear to the end-user. - Dashboard -> Display -> Long-running query thresholds: - Between the 'Warning'/'Alert' label and their control, there should be a margin. - There is no '*in minutes*' label at the end. - Miscellaneous -> Themes: Themes preview is not visible. - Binary Paths: - 'Set as default' should be disabled until a path is provided. - 'Set as default' must be a radio button, only one binary path can be set to default not all. - Unable to select binary path as select dialog is hidden behind the preferences dialog. It seems the preferences dialog is the modal dialog. - Adjust the validation icon properly, space should not be there at the end. - [image: Screenshot 2022-03-09 at 4.34.08 PM.png] - Query Tool: CSV/TXT Output node should be after Auto completion. - Browser -> Tab settings and Storage -> Options have identical right side page. Remove the controls appropriately. *Code:* - Add comments/function header for all the new functions created. On Mon, Mar 7, 2022 at 5:54 PM Nikhil Mohite wrote: > Hi Hackers, > > Please find attached the patch for RM-7149 > : [React] Port preferences > dialog to React. > > -- > *Thanks & Regards,* > *Nikhil Mohite* > *Senior Software Engineer.* > *EDB Postgres* > *Mob.No: +91-7798364578.* > -- *Thanks & Regards* *Akshay Joshi* *pgAdmin Hacker | Principal Software Architect* *EDB Postgres * *Mobile: +91 976-788-8246* --000000000000daaf6505d9c8162e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Nikhil=C2=A0

Below are the review comments:= =C2=A0
GUI:
  • By default, all nodes sh= ould be expanded, and at least one node should be selected (Check existing = behavior).
  • Reduce the space between the expand/collapse (>) icon= and the tress=C2=A0node label. It is most likely icons that are taking up = that space.
  • Unable to select parent node. With old=C2=A0behavior wh= en we select the parent node its immediate=C2=A0first child is selected and= the appropriate page is displayed on the right=C2=A0side.
  • The maxi= mize button should be consistent with all other dialogs.
  • Maximize n= ot working properly, move the dialog bit up, and then click Maximize button= , dialog is not visible correctly.
  • The help button is missing at th= e bottom.=C2=A0
  • A documentation update is missing.
  • Keyboard= Shortcuts (Browser, Debugger, Query Tool, and ERD Tool) Fix for all=
    • Between the 'Key' label and control, there should be a= margin.
    • Reduce=C2=A0the width of the key control.
    • The key = control loses focus when the key is pressed. Verify old behavior.
    =
  • Nodes: Can we add a message or label at the top about settings? Previou= sly, we had a switch control with a 'Show/Hide' label that was clea= r to the end-user.
  • Dashboard -> Display -> Long-running query= thresholds:=C2=A0
    • Between the 'Warning'/'Alert'= ; label and their control, there should be a margin.
    • There is no &#= 39;in minutes' label=C2=A0at the end.
  • Miscellaneous= -> Themes: Themes preview is not visible.
  • Binary Paths:
  • 'Set as default' should be disabled until a path is provided.<= /li>
  • 'Set as default' must be a radio button, only one binary pa= th can be set to default not all.
  • Unable to select binary path as s= elect dialog is hidden behind the preferences dialog. It seems the preferen= ces dialog is the modal dialog.
  • Adjust the validation icon properly= , space should not be there at the end.=C2=A0=C2=A0
  • 3D"Screenshot
  • Query Tool: CSV/TXT Output node should be aft= er Auto completion.
  • Browser -> Tab settings and Storage -> Op= tions have identical right side page. Remove the controls appropriately.

  • Code:
    • Add comment= s/function header for all the new functions created.
    <= br>
    On Mon,= Mar 7, 2022 at 5:54 PM Nikhil Mohite <nikhil.mohite@enterprisedb.com> w= rote:
    Hi Hackers,

    Please find attached the patch for= =C2=A0RM-7149: [React] Port preferences dialog to React.

    --
    Thanks & Regards,
    Nikhil Mohite
    = Senior Software Engineer.
    Mob.No: = +91-7798364578.


    --
    Thank= s & Regards
    Akshay Joshi
    pgAdmin Hacker | Principal Softw= are Architect
    EDB Po= stgres
    Mobile: +91 976-788-8246

    --000000000000daaf6505d9c8162e-- --000000000000daaf6605d9c8162f Content-Type: image/png; name="Screenshot 2022-03-09 at 4.34.08 PM.png" Content-Disposition: inline; filename="Screenshot 2022-03-09 at 4.34.08 PM.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_l0jhv3r30 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 /t9/yPrh+oGYA60H2Qfrf7T/ccMhxqHyBqRhRkNPo7hR1ZTe1HF4zOHW5sDmQz+5/7TziPWR6qPG R5cdox5beKz/eMnx3hZZS/eJ3BMPWye33j45/uTVtnFt7adiTp35OfLnk6c5p4+fCTpz5GzA2cPn 2Ocaz/ueb7jgc+HQLz6/HGr3bW+46Hex6ZL/peaO0R3HLodcPnEl/MrPV3lXz1+Lu9ZxPeX6zRuZ N1Q3hTef3iq49eLX4l/7bs+7Q7hTflf/buU983s1vzn/tk/lqzp6P/z+hQdJD24/FDx89kjx6EPn wsf0x5VPrJ7UPvV8eqQrsuvS7xN+73wme9bXXfaHwR8bnjs9//HP0D8v9Izv6Xwhf9H/15KXpi93 vvJ+1dqb0HvvdeHrvjflb03f7nrHfnf6fdr7J33TPpA+VH10/tj8KebTnf7C/n4ZX84fOApgsKE5 OQD8tRMAejoAjEvw/DBBc+cbEERzTx1A4D9hzb1wQHwBqIed+rjObQFgP2wO8yA3bOqjenIoQL28 hppWFDlenhouGrzxEN7297+0AIDUDMBHeX9/38b+/o/wjordAqBlquauqRYivBtsCVWjaybZg/6H RHMP/SLHr3ugjsAbfN3/C3OHiQperIjSAAAAimVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsA BQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA5KG AAcAAAASAAAAeKACAAQAAAABAAAAlqADAAQAAAABAAAAXgAAAABBU0NJSQAAAFNjcmVlbnNob3Sl yWAxAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB1WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6 eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAi PgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRm LXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAg ICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAg IDxleGlmOlBpeGVsWERpbWVuc2lvbj4xNTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAg ICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICAg ICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8 L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KDZKCFAAAABxpRE9U AAAAAgAAAAAAAAAvAAAAKAAAAC8AAAAvAAAVQmKShTUAABUOSURBVHgB7J1rbF3VlcfXtU1eJE7i PJy3X3migSkMBFUqg6aiUiRoRwOolaB8CKQdgUQ7EBFKQgCJhBYSUICigRn4woBgPgBpKUKdl4RG RWJECFVnmoQQ7Dh2YufppE6c2LE967fO/V+fXHz9SOwQUu9w79577fXYa63/2Xufc+81mW4vVqAw xCuTyUTd1dVlRUVF0Uaks7MzJKHDQ18v5GifOnXKDh48aNU11Tk5M+fvdj0ZF4+3UGN0fYA36/Kq yFv0YClyQtPBA7bizhVO77bX33jTxo+/1Fm7XG+RFWU6ra2tw1Y/9JDt3LnTBTJWNnmya8rYwcOH fd7dVlU93578+c9tzNhRZ9jfvn2brV69xk53dLgt9xf7XWajRl1iN930XXt789u2yOe/cdOzPsIU u308Y+ueWG//89GHPptiN3faJ1rsr25beu1Sa/a51n1Ra4898ohddc1Sj0+3bdnyiT322GNWWTHP fvn8L3P+t7W12YMPrrK62rqwP3vWbNdXbA2Ne1BnpRNL7Xm3PXna1Jx9fI5YpfzH/tatW+wXv3jK jredCN7y6dNt2owZduzYUauvr7duj+OoUcV23z+stG9d960kuO4TeXroZz+znbt2uhyxKyMNdujQ 4ZjnwupqW//kkzZ2zJjwH/u//fd/cz822TeuvMbWPb428d9zy5jHiKkXLgzrBRdtAU3tDk8IBSCd Pn06B7729vbo79u3zxYuWOB4crB5wjOeFAKdgAI3gBrT8AkFsLzNMNDywbDjowc8WXcuvzMcfeON N2zC+PE+6KAP5mC0o8da7LVXX7M//OF/be/eBh8uspkzy+0vL7/Sfnj7bVZa5mDrxX7jvkb7+OMt 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 --000000000000daaf6605d9c8162f--