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 1jJxt4-0005rD-LY for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 11:19:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jJxt3-0003MI-Iz for pgadmin-hackers@arkaria.postgresql.org; Thu, 02 Apr 2020 11:19:53 +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 1jJxt3-0003KZ-AZ for pgadmin-hackers@lists.postgresql.org; Thu, 02 Apr 2020 11:19:53 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jJxsw-00029t-E5 for pgadmin-hackers@postgresql.org; Thu, 02 Apr 2020 11:19:52 +0000 Received: by mail-lj1-x22e.google.com with SMTP id p10so2845549ljn.1 for ; Thu, 02 Apr 2020 04:19:46 -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=6h261l7lRDRuZk/zQQtNgjd+bRnSblqDYarfcaXaptE=; b=zkMmMdMND4sfjozPcMyWLgFjv2yj0jIv4NXBiyDTIWYybKX67G/wqyonzQdbQgs0AF scK5DkoF9e3IgOfmIIHHBl/221bGOkmHF/hFZ0IpZdhbUqV/DmRVa13QKzcOtvnOMe49 mK97upIjO33EBMyrWXqWjm9RMhqnEAlZa60V8jfEBTYvNHuwE3+mDR8C74z9V/PT/7pW /SbjrF2O8Cr/bdfADBjJyY0MRBV+248V86+39l++40tu2jdip1MRt4X1bBlqg4Cyeo5l xJCwk0yiJIZhj0iBZ8deQupTT4q4ohoEaEQLk3Q7p/yLB2sR9168xEscnefWddpUq3nX PyLA== 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=6h261l7lRDRuZk/zQQtNgjd+bRnSblqDYarfcaXaptE=; b=JU9+TIg4pXTA9FjNmjco1q8RhiUTYSIGHab3ednng7xzri7hm8R2dqz+kljtGAH7O4 kh05+Ii//ObB2JywHAqdfJTT+S2S+hxE+yPrIdOMCd8Igxu+z04WhVU7ytKDSMAF1q09 y5x/liK3lNEOHukiGSKbhEBalFlZeQ4RXe0ooppF93n0pTvrQvWV/Bcvw9pDycTxFrsU 9TyWZ2I80jmMZv/aRZxZtCT2/Q/ERsU6ftpdBmc/nMZDI0zMZDvKzXKgYFwtt8bCCXv6 YFYdpMDaCVOytxFGsRQ4m3pvN9P8bwdoL3reQ8Aj2gfw7Lw3ygI5uFksDIFtOGfOkEI5 2+Yg== X-Gm-Message-State: AGi0PuZfKVkio1AOIehsGqb/yzD0JosGJZOXIJdDwHc6jgFozGO0i8Kp ij43EYQ8HXPtR3PgMsUDfZC80B+Dpv1WM1v9Ul5FHQnascyKd197zRnG4VKTnaeUGnGbp3J0KvB fDBT5dBKeRTQFL+Cu6OCptaihtHtp8E4KigZ8Deqi9ilfm8ul+XaklXgrTiWFt7BKxXFBD+4S7n R53L0gWQM00PoHNvbseV4L0yzQskaBrcoibSTZXxYZ0FjpGSpCPxt2hw== X-Google-Smtp-Source: APiQypJj+OMtGZdvKNO8WaOd0BTsc1UTWvJBZPhOd2PTb+wo5G7a4A6EHNCDA5rYw5z67Fv2L7a1a8cpB6fyXc+3qTg= X-Received: by 2002:a2e:9681:: with SMTP id q1mr1831468lji.179.1585826384514; Thu, 02 Apr 2020 04:19:44 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Khushboo Vashi Date: Thu, 2 Apr 2020 16:49:36 +0530 Message-ID: Subject: Re: [pgAdmin][RM2172] Search Objects Functionality To: Aditya Toshniwal Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/alternative; boundary="000000000000532c1305a24cfae1" 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 --000000000000532c1305a24cfae1 Content-Type: text/plain; charset="UTF-8" On Thu, Apr 2, 2020 at 4:30 PM Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > 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 > Right, so type based search on slickgrid data would be useful. > 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. > True but we can maintain the skip list (which would be less) and we do have bluprint start with NODE, so it will be easier to fetch. > 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" > --000000000000532c1305a24cfae1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Thu, Apr 2, 2020 at 4:30 PM Aditya= Toshniwal <aditya.= toshniwal@enterprisedb.com> wrote:
Hi Khushboo,

Thank you for reviewing.


On Thu, Apr 2, 2020 at 4:09 P= M 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" ?<= /font>
3. Full stop is missing i= n the message=C2=A0column objects are disabled in the browser. You c= an enable them in the preferences dialog ( :D )
and also, we should start the statement with the capital le= tter.
4. If possible, use= the multilevel partition table symbol same as the browser tree.
5. gettext is missing from the sear= ch grid header.
I'll fix all above.=C2=A0
6. Suggestion: The search bu= tton should be at the end (after type combobox).=C2=A0 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 actu= ally kept the most frequently used controls together. The probability=C2=A0= of using the types filter is less and a=C2=A0user would generally go for fu= ll search. This is how even we generally do. We search first and then apply= filter if required
Right, so typ= e based search on slickgrid data would be useful.=C2=A0
After changing=C2=A0the type, we have to= click on the search button.
In the current positioning, we should fetch all the records from the ba= ckend and then filter those out depending on the type at the client side on= ly, so that will reduce the server requests and slickgrid is efficient it d= o so.
I'll look into this. My only concern is the data may be ou= tdated, but I agree to filter in slickgrid on type change. The user can hit= search again if required.

Backend:<= /div>

1. We do have the list of blueprint, so we ca= n use that list instead of taking the hard coe list in the init method of= =C2=A0SearchObjectsHelper class.
The reason is, we do not support all objects = for search objects. Only objects under a database are supported. The probab= ility of node type change is very less.
True but we can maintain the skip list (which would be less) and we = do have bluprint start with NODE, so it will be easier to fetch.
2. While searching the object, we create an object of=C2=A0SearchO= bjectsHelper on each request. We can create it once while initializing and = utilize it on every search.
The intention is to keep SearchObjectsHe= lper= stateless. The object is created based on the request data and it is easie= r to maintain independently.

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

Thanks,
Khushboo




On Thu, Apr 2, 2020 at 9:31 AM Khushboo= Vashi <khushboo.vashi@enterprisedb.com> wrote:

<= /div>
O= n 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.=C2=A0

On Mon, Mar 30, 2020 at 2:39 PM Aditya Toshniwal <aditya.tos= hniwal@enterprisedb.com> wrote:
Hi Hackers,
<= br>
Attached is the patc= h to implement search objects functionality in pgadmin.
The feature will allow a user to search for= any object in a database.
Highlights=C2=A0of the feature:
1) Search any object with user input text with at least 3 charac= ters.
2) Search can be d= one 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 t= he case of all types, the search records will be visible for those types gr= eyed out.
5) You can also access search=C2=A0objects dialog using the bu= tton on the browser toolbar.

Python and JS = test cases added. Docs updated.
Please review.
<= br>
--
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer = |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE&qu= ot;


--
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. Software Engineer |=C2=A0Ent= erpriseDB India |=C2=A0Pune<= /span>
"Don't Complain about Heat, Plant a TREE"=
--000000000000532c1305a24cfae1--