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 1jJxG4-00048A-I5 for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 10:39:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jJxG3-0002Zr-Ed for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 10:39:35 +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 1jJxG3-0002Xz-7j for pgadmin-hackers@lists.postgresql.org; Thu, 02 Apr 2020 10:39:35 +0000 Received: from mail-lj1-x241.google.com ([2a00:1450:4864:20::241]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jJxG0-0001lE-V0 for pgadmin-hackers@postgresql.org; Thu, 02 Apr 2020 10:39:34 +0000 Received: by mail-lj1-x241.google.com with SMTP id r7so2631229ljg.13 for ; Thu, 02 Apr 2020 03:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/JVJGbVbOdZYlwqjXtB9vb9BclR7eyh2w1gyQHKy30Y=; b=MHzFfJ+oWKC74LOnfl92WuekRb64yx+MPJuTjmu5Uss8rQKmn75BOiEuTyl2zCtHTY JkPRRpYB2THxDd+aLNk0w/77XLFE+jMqW6yKGpwsYEB6dXf2rHzfxnxfksJXBB5Vi143 9FUDO86M/R0ZmMuAr8UFtbOn8bCJR/qgnfX/8vF4BRYBFQL7fBpzjlSqRV1EKzYzLwHn VYWykdwjFw+9hYlbrHVGfhJTBMHB5vAhNCC20xvbaxLnQ/IHnYg9F8MLTzWQ/KIC/Vwh uONgTEcLEwdIrIviiY4Ca5P2HhD1WtJHq4lvNGJF/Ne/n5sUudNvkwq3VJq5GvjKkxhO h86A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/JVJGbVbOdZYlwqjXtB9vb9BclR7eyh2w1gyQHKy30Y=; b=KZXpml7TpHhWuHVledzksIZWaUIynfYDZk1Q1hQb/zf5tAliiTMs5Wg8epGoqdUv6j x4LxPMPG31AzePmo05oNDFIQyg3wVuQWNrjgyDy1lHXVgMape6N3Nm8jS8P3HuDhkIw5 BEco0137UsCbcM9M002ocCCtyZH+Du0pnIrUbBp5TOZJjrQxf17jPhaOgnRxCrEhNjZN 6TY7rd6dBDHA7MAWPi0lnFQbsijJ6JTWqzM9eqGNerzarMPb7wpIg6DhvWmWWjspKc9h dG36VpcUckJ5BggbVXt9tw5LeMcC070P7uvyFSWjI3BqXutp7Zh5ZudFL4uTXlIjQGjr r3MQ== X-Gm-Message-State: AGi0Pua+aM5Xe6pTLRNuyyYyiv7sq0yP87AJbBxA7ag0P+l6yADwsAcF h/OZA0vtlqqKZ/iRBR4pGa7b0Q5Fz+cZ5EMGcE+iYMQ07iGVPM9Rxc0TRvVERX1HUUjyLewfgs4 Ja/prgBBazoFN3bo7mUPlz5ymSkAgGAwOCbM91lmzL5Ka9wugP/YWXGHXpMSKNX8XncmKDzQGMX HPt3pQ6E9mKAr1MKgQVZM5ode0q+FoAEfPaOygkoEp202U1C1LP+A= X-Google-Smtp-Source: APiQypKvf+rOpJff4FlloYCOSJsUj2cIqLSZv1SMOrCrKTFkpIX51xpyYBtbEjybUMaIBSg82bgTXR/xzG8B5QODtj8= X-Received: by 2002:a2e:9706:: with SMTP id r6mr1608858lji.183.1585823971736; Thu, 02 Apr 2020 03:39:31 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Khushboo Vashi Date: Thu, 2 Apr 2020 16:09:24 +0530 Message-ID: Subject: Re: [pgAdmin][RM2172] Search Objects Functionality To: Akshay Joshi Cc: pgadmin-hackers , Aditya Toshniwal Content-Type: multipart/alternative; boundary="00000000000083231f05a24c6ae6" X-CLOUD-SEC-AV-Info: edb,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: Precedence: bulk --00000000000083231f05a24c6ae6 Content-Type: text/plain; charset="UTF-8" Hi Aditya, Review comments: *UI:* 1. When no object is found, the default message should be given, currently no message displayed. 2. Can we have a tooltip on the row "Double click to locate the object in the browser" ? 3. Full stop is missing in the message column objects are disabled in the browser. You can enable them in the preferences dialog ( :D ) and also, we should start the statement with the capital letter. 4. If possible, use the multilevel partition table symbol same as the browser tree. 5. gettext is missing from the search grid header. 6. Suggestion: The search button should be at the end (after type combobox). The current position of the controls suggest that search for the objects and then filter it out but that's not the case. After changing the type, we have to click on the search button. In the current positioning, we should fetch all the records from the backend and then filter those out depending on the type at the client side only, so that will reduce the server requests and slickgrid is efficient it do so. *Backend:* 1. We do have the list of blueprint, so we can use that list instead of taking the hard coe list in the init method of SearchObjectsHelper class. 2. While searching the object, we create an object of SearchObjectsHelper on each request. We can create it once while initializing and utilize it on every search. Note: The functionality is working fine. Thanks, Khushboo On Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > > > On Wed, Apr 1, 2020 at 6:00 PM Akshay Joshi > wrote: > >> Hi Khushboo, >> >> Can you please review it. >> > I am on it. > >> >> On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi Hackers, >>> >>> Attached is the patch to implement search objects functionality in >>> pgadmin. >>> The feature will allow a user to search for any object in a database. >>> Highlights of the feature: >>> 1) Search any object with user input text with at least 3 characters. >>> 2) Search can be done on a specific object type by selecting from the >>> types dropdown. >>> 3) The search results grid will show object name, object type and the >>> object path on the browser tree. On double clicking the record, it will >>> locate that object on the browser tree. The columns object name and type >>> are sortable. >>> 4) The object nodes which are disabled (hidden) using preferences will >>> not be visible in the types dropdown. However, in the case of all types, >>> the search records will be visible for those types greyed out. >>> 5) You can also access search objects dialog using the button on the >>> browser toolbar. >>> >>> Python and JS test cases added. Docs updated. >>> Please review. >>> >>> -- >>> Thanks and Regards, >>> Aditya Toshniwal >>> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune >>> "Don't Complain about Heat, Plant a TREE" >>> >> >> >> -- >> *Thanks & Regards* >> *Akshay Joshi* >> >> *Sr. Software Architect* >> *EnterpriseDB Software India Private Limited* >> *Mobile: +91 976-788-8246* >> > --00000000000083231f05a24c6ae6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Aditya,

Review comments:
<= br>
UI:

1. When no object is found, the default message should be given, cu= rrently no message displayed.
2. Can we have a tooltip on the row "Double click to locate the o= bject in the browser" ?
3. Full stop is missing in the message=C2=A0column objects are d= isabled in the browser. You can enable them in the preferences dialog ( :D = )
and also, we should start the = statement with the capital letter.
4. If possible, use the multilevel partition table symbol same as= the browser tree.
5. get= text is missing from the search grid header.
6. Suggestion: The search button should be at the end (= after type combobox).=C2=A0 The current position of the controls suggest th= at search for the objects and then filter it out but that's not the cas= e.
After changing=C2=A0th= e type, we have to click on the search button.
In the current positioning, we should fetch all the = records from the backend and then filter those out depending on the type at= the client side only, so that will reduce the server requests and slickgri= d is efficient it do so.
=
Backend:

= 1. We do have the list of blueprint, so we= can use that list instead of taking the hard coe list in the init method o= f=C2=A0SearchObjectsHelper class.
2. While searching the object, we create an object of=C2=A0Se= archObjectsHelper on each request. We can create it once while initializing= and utilize it on every search.

Note:=C2=A0<= /font>The functionality is wor= king fine.
Thanks,
Khushboo




On Thu, Apr 2, 2020 at 9:31 AM Khushboo Va= shi <khushboo.vashi@e= nterprisedb.com> wrote:


On Wed, Apr 1, 2020 = at 6:00 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
Hi Khushb= oo,

Can you please review it.
I am on it.=C2=A0

On Mo= n, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.c= om> wrote:
Hi Hackers= ,

Attached is the patch to implement sear= ch objects functionality in pgadmin.
The feature will allow a user to search for any object in a da= tabase.
Highlights=C2=A0= of the feature:
1) Searc= h any object with user input text with at least 3 characters.
2) Search can be done on a specific o= bject type by selecting from the types dropdown.
3) The search results grid will show object name, = object type and the object path on the browser tree. On double clicking the= record, it will locate that object on the browser tree. The columns object= name and type are sortable.
4) The object nodes which are disabled (hidden) using preferences = will not be visible in the types dropdown. However, in the case of all type= s, the search records will be visible for those types greyed out.
5) You= can also access search=C2=A0objects dialog using the button on the browser= toolbar.

Python and JS test cases added. D= ocs updated.
Please revi= ew.

--
=
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer |=C2=A0EnterpriseDB= India |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE"


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=
--00000000000083231f05a24c6ae6--