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 1jJxaK-0004sZ-MZ for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 11:00:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jJxaJ-0004vS-8u for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 11:00:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jJxaI-0004vL-I6 for pgadmin-hackers@lists.postgresql.org; Thu, 02 Apr 2020 11:00:30 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jJxaB-0007Kx-GD for pgadmin-hackers@postgresql.org; Thu, 02 Apr 2020 11:00:29 +0000 Received: by mail-ed1-x536.google.com with SMTP id cf14so3512043edb.13 for ; Thu, 02 Apr 2020 04:00:23 -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=Jt7PHhCOf0VQKYlq9SUD6kKtQQ04ZH4KnmABjzA3FBQ=; b=aZ/gaiWT1rYvtBd1NBGnfKUDzdaqxDphZO78Egv8tSIERhxK8I0K5dWScL4fEz/n6q Oe0ccSrQ/6yUeKMRkDZoj0sTWkkRe2E0MCvE0DVlooXlwhzVpIUragkfaAr//33gGawO GZccBQbfTeb0yDNAZxyflMdpKSYDewEcw4mszrBp0FsVTJwlvWQOk/ENBLeO4sDpfn0W 84y1Np7MxkiBBJFqmbVMtECFe9WH04AagcoXzglV6qfjI3pKJDJsEh9rwSFdI19to6y2 dw5wlUXPu4lbjtPCytuvcz5uSkOC3rl2U96ioXQt01Wp4vMcx99B3kWwTNm9ucmCnEFn 1GVw== 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=Jt7PHhCOf0VQKYlq9SUD6kKtQQ04ZH4KnmABjzA3FBQ=; b=ikx/1fq6Fs5n9DWMsmky83yb13R1An5mq8uSMsg376jII8PXncDMWL1huEPjmsUeHL UGzuy1d7nG41tjiMpxCPb764I9B5aWltxdvsqOcCJlOQ/w9wwyhQInIz8QAsl61raojY J6Ul9aqibD6G3HP6bAsQA7BLP5+Me3bOfF9moQ4YythkFvn6U4gfCLdVcTHt7VxD1ced /r0aAnhOTzRGrfN2lHxjL3VpN+IXnKq2c3eJUrLU27rS5ENgcWVumaIdKbOzxQU6XsGb 37adFyQfFsAtc9b2cpPtWXXtS1k2vHL/oHHvF3ZQkJsXGYJRSAUAmyWO+/HbX20zHrqn aQcQ== X-Gm-Message-State: AGi0PuZVA4ase7gw+EjFX2AVfmAKdm7EnGAQF2ZV/6JH7SPOxuLzy/JN oNFMUBtIsrdtSTWOBA4oDm8KsgjaHB0NuiPrG+ru94xJVz8c5YGUV3Y7kfxDzUphOdIl4FNEZsy IpPiqugsqTHMb1eegkfpHCEMYH+aR8FETc2xV+vHU6rM+3KLrKLnEnV8hoMfgOFHJm0umAJ5FL7 blaWLfuutKVq76y0EMTCMXzm1ttyj7AFG4hk6pGTG9WOTLGQrS2W8= X-Google-Smtp-Source: APiQypIvzy630iQA0xLiNeHpcmKbrQwk1Q1S2hD2b+2DC/HqhpNRMNBUg70ES3bWtWyxpCL4MCD3CC/Z3YlZm6rgqkU= X-Received: by 2002:a50:a285:: with SMTP id 5mr2188866edm.360.1585825221825; Thu, 02 Apr 2020 04:00:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Thu, 2 Apr 2020 16:29:45 +0530 Message-ID: Subject: Re: [pgAdmin][RM2172] Search Objects Functionality To: Khushboo Vashi Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/alternative; boundary="00000000000005ec8305a24cb56a" 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 --00000000000005ec8305a24cb56a Content-Type: text/plain; charset="UTF-8" Hi Khushboo, Thank you for reviewing. On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > 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. > I'll fix all above. > 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. > I've actually kept the most frequently used controls together. The probability of using the types filter is less and a user would generally go for full search. This is how even we generally do. We search first and then apply filter if required > 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. > I'll look into this. My only concern is the data may be outdated, but I agree to filter in slickgrid on type change. The user can hit search again if required. > *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. > The reason is, we do not support all objects for search objects. Only objects under a database are supported. The probability of node type change is very less. > 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. > The intention is to keep SearchObjectsHelper stateless. The object is created based on the request data and it is easier to maintain independently. > > Note: The functionality is working fine. > Great. Thanks. > > 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 < >> akshay.joshi@enterprisedb.com> 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* >>> >> -- Thanks and Regards, Aditya Toshniwal pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --00000000000005ec8305a24cb56a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Khushboo,

Thank you for reviewin= g.


On Thu, Apr 2, 2020 at 4:09 PM Khushboo Vashi <khushboo.vashi@enterprisedb.com= > wrote:
=
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.
I'll fix all above.=C2=A0
6= . Suggestion: The search button should be at the end (after type combobox).= =C2=A0 The current position of the controls suggest that search for the obj= ects and then filter it out but that's not the case.
=
I've actually kept the most frequently used controls toge= ther. The probability=C2=A0of using the types filter is less and a=C2=A0use= r would generally go for full search. This is how even we generally do. We = search first and then apply filter if required
After changing=C2=A0the type, we have to click on the search = button.
In the current po= sitioning, 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 redu= ce the server requests and slickgrid is efficient it do so.
I'll look into this. My only concern is the data may be= outdated, but I agree to filter in slickgrid on type change. The user can = hit search again if required.

=
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.
The reason is, we do not support all objects= for search objects. Only objects under a database are supported. The proba= bility of node type change is very less.
2. While searching the object, we = create an object of=C2=A0SearchObjectsHelper on each request. We can= create it once while initializing and utilize it on every search.
The intention is= to keep SearchObjectsHelper stateless. The object is created bas= ed on the request data and it is easier to maintain independently.

Note:=C2=A0The functionality is working fine.
Great.= Thanks.

<= /div>
Thanks,=
Khushboo

<= /div>


<= /div>
O= n Thu, Apr 2, 2020 at 9:31 AM Khushboo Vashi <khushboo.vashi@enterprisedb.com<= /a>> wrote:
<= div dir=3D"ltr">


Hi Khushboo,

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

On Mon, Mar 30, 202= 0 at 2:39 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wro= te:
Hi Hackers,

Attached is the patch to implement search objects funct= ionality in pgadmin.
The= feature will allow a user to search for any object in a database.
Highlights=C2=A0of the feature:<= /div>
1) Search any object wit= h user input text with at least 3 characters.
2) Search can be done on a specific object type by se= lecting 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 a= re sortable.
4) The = object nodes which are disabled (hidden) using preferences will not be visi= ble in the types dropdown. However, in the case of all types, the search re= cords will be visible for those types greyed out.
5) You can also access= search=C2=A0objects dialog using the button on the browser toolbar.
<= div style=3D"font-family:verdana,sans-serif">
Python and JS test cases added. Docs updated.
Please review.

--
Thanks= and Regards,
= Aditya Tosh= niwal
= 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=


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