Subject: [pgAdmin4][RM#3055] Allow user to sort the data in View data mode

From: Murtuza Zabuawala <[email-masked]>
Date: Sun, 25 Mar 2018 23:43:44 +0530

Hi,

PFA patch which allow user to sort the data in View data mode.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Dave Page <[email-masked]>
Date: Mon, 26 Mar 2018 13:22:49 +0100

Hi

> PFA patch which allow user to sort the data in View data mode.

The patch looks good in general, however I'm not sure about the UI, in
particular that the closely-linked dialogue for filtering is a completely
different design. I think it would be better to combine the Sort/Filter
options and use a single dialogue for both, as pgAdmin 3 did (though, maybe
not using separate tabs for each part, but the top and bottom of the same
dialogue.

That would certainly fix the consistency of the dialogues (obviously, as
there would only be one!), and I think would perhaps be a more simple
overall UI, particularly for those that want to sort and filter.

Thoughts?

Thanks.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Murtuza Zabuawala <[email-masked]>
Date: Mon, 26 Mar 2018 21:43:05 +0530

On Mon, Mar 26, 2018 at 5:52 PM, Dave Page <[email-masked]> wrote:

> Hi
>
> On Sun, Mar 25, 2018 at 7:13 PM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi,
>>
​Sure, I'll send updated it accordingly.​

---

From: Joao De Almeida Pereira <[email-masked]>
Date: Mon, 26 Mar 2018 18:07:38 +0000

Hi Hackers,

@Murtuza: The patch codewise looks good. Nice to see that we are using
axios instead of jquery ajax calls and that there is some coverage for the
change.
Nevertheless the Javascript testing looks a bit slim and could be improved.
Also the DataSorting class could have some other member functions like the
model validation could be extracted out so that it is easily tested.

@Hackers: This was how we tried to test this feature:
1 - Started pgAdmin
2 - Opened the query tool for a specific server
3 - Executed a SQL statment
4 - Pressed the column header to try to order, nothing happened
5 - Right clicked the column header to see if it was there the option,
nothing

This is the behavior that we were expecting, not to have to open Data View
and then press the icon that is not even near the grid in order to sort the
column. Is this really the way we want people to use the grid in pgAdmin?
Should it be more intuitive?

PS: Also that Orange after the selection is like a push in the eyes and not
in a good way. Maybe we should think about changing the color of the icon
to blue to match the rest of the website or something.

Thanks
Victoria & Joao

---

From: Robert Eckhardt <[email-masked]>
Date: Mon, 26 Mar 2018 16:26:18 -0400

On Mon, Mar 26, 2018 at 2:07 PM, Joao De Almeida Pereira <
[email-masked]> wrote:

> Nevertheless the Javascript testing looks a bit slim and could be
> improved. Also the DataSorting class could have some other member functions
> like the model validation could be extracted out so that it is easily
> tested.
>
>

Have we considered making the grid behave more like excel or other grids? I
think that having the ascending and descending inside the column header, we
could similarly provide filtering. Something that would give users a more
intuitive place to look.

-- Rob

>
>
> PS: Also that Orange after the selection is like a push in the eyes and
> not in a good way. Maybe we should think about changing the color of the
> icon to blue to match the rest of the website or something.
>
> Thanks
> Victoria & Joao
>
> On Mon, Mar 26, 2018 at 12:13 PM Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>

---

From: Dave Page <[email-masked]>
Date: Tue, 27 Mar 2018 10:43:35 +0100

On Mon, Mar 26, 2018 at 9:26 PM, Robert Eckhardt <[email-masked]>
wrote:

>> This is the behavior that we were expecting, not to have to open Data
>> View and then press the icon that is not even near the grid in order to
>> sort the column. Is this really the way we want people to use the grid in
>> pgAdmin? Should it be more intuitive?
>>
>
> Have we considered making the grid behave more like excel or other grids?
> I think that having the ascending and descending inside the column header,
> we could similarly provide filtering. Something that would give users a
> more intuitive place to look.
>

Doing the sorting via header clicks is convenient but very restrictive. How
do you specify multiple columns to sort by for example? The current design
allows you to select columns and the sort order as you see fit.

---

From: Murtuza Zabuawala <[email-masked]>
Date: Tue, 27 Mar 2018 15:55:18 +0530

On Tue, Mar 27, 2018 at 3:13 PM, Dave Page <[email-masked]> wrote:

> Doing the sorting via header clicks is convenient but very restrictive.
> How do you specify multiple columns to sort by for example? The current
> design allows you to select columns and the sort order as you see fit.
>

Another reason we can't use that because w
e have already occupied that behaviour for selecting entire column
​ when user clicks on header.
As Dave suggested, I will be merging it with filter dialog meaning it will
be accessible via direct button on toolbar & keyboard shortcut.​
​

---

From: Robert Eckhardt <[email-masked]>
Date: Tue, 27 Mar 2018 09:36:57 -0400

On Tue, Mar 27, 2018 at 6:25 AM, Murtuza Zabuawala <
[email-masked]> wrote:

>>> Have we considered making the grid behave more like excel or other
>>> grids? I think that having the ascending and descending inside the column
>>> header, we could similarly provide filtering. Something that would give
>>> users a more intuitive place to look.
>>>
>>
Honestly I'm not sold on my idea, I was just proposing an alternative in an
effort to start a discussion about the user experience. Ideally what I'd
like to see, maybe this happened, is some user research. When we initial
worked on refactoring the results grid we made a bunch of changes. One of
the things we intended to do was to follow up to see how people were using
the grid now so that we could better understand how it was now being used
in order to design and implement features just like this. Clearly we
haven't gotten there yet.

> be accessible via direct button on toolbar & keyboard shortcut.​

How are users currently interacting with that filter dialog?

What I'm suggesting is that we understand how users want to interact with
their results, be those the results of a query or a table view, then we can
design something that meets those needs. I agree that changing the column
selection behavior isn't desirable, however, I also feel like providing the
best user experience is better than holding onto a particular feature
implementation.

-- Rob

---

From: Murtuza Zabuawala <[email-masked]>
Date: Tue, 27 Mar 2018 19:24:06 +0530

On Tue, Mar 27, 2018 at 7:06 PM, Robert Eckhardt <[email-masked]>
wrote:

>
>
> On Tue, Mar 27, 2018 at 6:25 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
> Honestly I'm not sold on my idea, I was just proposing an alternative in
> an effort to start a discussion about the user experience. Ideally what I'd
>> As Dave suggested, I will be merging it with filter dialog meaning it
>> will be accessible via direct button on toolbar & keyboard shortcut.​
>> ​
>>
>

​By clicking on the toolbar button as well as keyboard shortcut.
​

---

From: Robert Eckhardt <[email-masked]>
Date: Tue, 27 Mar 2018 20:37:48 -0400

On Tue, Mar 27, 2018 at 9:54 AM, Murtuza Zabuawala <murtuza.zabuawala@
enterprisedb.com> wrote:

>>>>>> @Murtuza: The patch codewise looks good. Nice to see that we are
>>>>>> using axios instead of jquery ajax calls and that there is some coverage
>>>>>> for the change.
>>>>>> 5 - Right clicked the column header to see if it was there the
>>>>>> option, nothing
>>>>>>

Sorry I wasn't clear. My question was more along the lines of, do we know
if people are using the filter functionality?  What kind of filters are
people using?  What do they like about it? What do they wish they could do
above and beyond sorting, etc.

-- Rob

---

From: Murtuza Zabuawala <[email-masked]>
Date: Wed, 28 Mar 2018 12:49:28 +0530

Hi Dave,

Please find updated patch with following changes,
- Combined Filter and Data sorting together same as pgAdmin3.
- Extracted model into separate file
- Change the colour of filter button from orange to blue.
- Updated docs and screenshot.

@Joao,
Could you please provide any reference for learning more about jasmine test
framework?
​

On Wed, Mar 28, 2018 at 6:07 AM, Robert Eckhardt <[email-masked]>
wrote:

>
>
> On Tue, Mar 27, 2018 at 9:54 AM, Murtuza Zabuawala <
>>>>> On Mon, Mar 26, 2018 at 9:26 PM, Robert Eckhardt <[email-masked]
>>>>> > wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>> This is the behavior that we were expecting, not to have to open
>>>>>>> Data View and then press the icon that is not even near the grid in order
>>>>>>> to sort the column. Is this really the way we want people to use the grid
>>>>>>> in pgAdmin? Should it be more intuitive?
>>>>>>>
>>>>>>
>>>>> Doing the sorting via header clicks is convenient but very
>>>>> restrictive. How do you specify multiple columns to sort by for example?
>>>>> The current design allows you to select columns and the sort order as you
>>>>> see fit.
>>>>>
>>>>
​I have not done any data gathering from users so I can't comment on your
queries.
​ but a​
​s far as I understood from the feature requests that most of the users
expect to have functionality which will allow then to sort columns as it
was in pgAdmin3.​

> -- Rob
>
>
>>
>>> What I'm suggesting is that we understand how users want to interact
>>> with their results, be those the results of a query or a table view, then
>>> we can design something that meets those needs. I agree that changing the
>>> column selection behavior isn't desirable, however, I also feel like
>>> providing the best user experience is better than holding onto a particular
>>> feature implementation.
>>> ​
>>>
>>>
>>
>>> -- Rob
>>>
>>>
>>>>
>>>>
>>>>> --
>>>>> Dave Page

---

From: Dave Page <[email-masked]>
Date: Wed, 28 Mar 2018 09:12:50 +0100

> above and beyond sorting, etc.

Yes, they are, based on the fact we've had issues reported in the past. We
have no idea how they are using it.

Sorting is a separate feature that is often requested. The only reason it's
connected here is that both functionalities in pgAdmin 3 were managed
through the same dialogue which based on lack of complaints from users,
generally worked for them. I do know that the proposed "click on headers"
approach will not work for me, as I have multi-part keys in databases which
I like to sort by in specific ways.

---

From: Robert Eckhardt <[email-masked]>
Date: Wed, 28 Mar 2018 09:54:10 -0400

On Wed, Mar 28, 2018 at 4:12 AM, Dave Page <[email-masked]> wrote:

>>>>>> On Mon, Mar 26, 2018 at 9:26 PM, Robert Eckhardt <
>>>>>> [email-masked]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>> Honestly I'm not sold on my idea, I was just proposing an alternative
>>>> in an effort to start a discussion about the user experience. Ideally what
>>>> I'd like to see, maybe this happened, is some user research. When we
>>>> initial worked on refactoring the results grid we made a bunch of changes.
>>>> One of the things we intended to do was to follow up to see how people were
>>>> using the grid now so that we could better understand how it was now being
>>>> used in order to design and implement features just like this. Clearly we
>> Sorry I wasn't clear. My question was more along the lines of, do we
>> know if people are using the filter functionality?  What kind of filters
>> are people using?  What do they like about it? What do they wish they could
>> do above and beyond sorting, etc.
>>
>
> Sorting is a separate feature that is often requested. The only reason
> it's connected here is that both functionalities in pgAdmin 3 were managed
As far as the 'click on header' is concerned I think Murtuza's objection is
very valid. I think my overall point is that I believe that sorting and
filtering is a legitimate pain but it is a pain I don't fully understand.
The solution as presented certainly works it just doesn't feel nice. My
concern is that it won't be clear to users what they should do or expect
since the UX is unique to pgAdmin. Less of a concern is that all of these
changes are only happening with the 'view data' section of the code and I
would assume that people who have queried the DB will also have the need to
sort and filter without necessarily rewriting their SQL.

-- Rob

---

From: Dave Page <[email-masked]>
Date: Wed, 28 Mar 2018 16:20:01 +0100

On Wed, Mar 28, 2018 at 2:54 PM, Robert Eckhardt <[email-masked]>
wrote:

>>> know if people are using the filter functionality?  What kind of
>>> filters are people using?  What do they like about it? What do they wish
>>> they could do above and beyond sorting, etc.
>>>
>>
>> Yes, they are, based on the fact we've had issues reported in the past.
>> We have no idea how they are using it.
>>
> As far as the 'click on header' is concerned I think Murtuza's objection
> is very valid. I think my overall point is that I believe that sorting and
> since the UX is unique to pgAdmin.
>

Right now my concern is getting us back to feature parity in this area with
pgAdmin 3, as users are complaining. Longer term we can look at further
improvements or redesigns as resources allow.

> Less of a concern is that all of these changes are only happening with the
> 'view data' section of the code and I would assume that people who have
> queried the DB will also have the need to sort and filter without
> necessarily rewriting their SQL.
>

That doesn't concern me - there are already very distinct differences in
the two modes for the tool. If/when we have a suitable parser on the front
end we'll be able to dynamically switch between read-write modes and update
sorting criteria in hand-crafted SQL. Until that large amount of work is
done, we have two distinct modes, one with generated SQL and writeable
data, the other with hand-crafted SQL and read-only data.

---

From: Robert Eckhardt <[email-masked]>
Date: Wed, 28 Mar 2018 11:28:33 -0400

On Wed, Mar 28, 2018 at 11:20 AM, Dave Page <[email-masked]> wrote:

>>>>> On Tue, Mar 27, 2018 at 7:06 PM, Robert Eckhardt <[email-masked]
>>>>> > wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>> As Dave suggested, I will be merging it with filter dialog meaning
>>>>>>> it will be accessible via direct button on toolbar & keyboard shortcut.​
>>>>>>> ​
>>>>>>>
>>>>>>
> Right now my concern is getting us back to feature parity in this area
> with pgAdmin 3, as users are complaining. Longer term we can look at
> further improvements or redesigns as resources allow.
>

Totally fair.

>
>
>
>> Less of a concern is that all of these changes are only happening with
>> the 'view data' section of the code and I would assume that people who have

Also totally fair. As an aside, we are about to spin up some user
interviews for the large number of objects but during those interviews we
were planning to add some follow up questions on the work we did on the
data grid. If pushing this as is until it can be prioritized is something
that is needed to get the heat off of you I'm ok with that.

I do think we will spend a little time with users so I can better
understand the issues being faced and we will absolutely share that
feedback here.

-- Rob

---

From: Dave Page <[email-masked]>
Date: Wed, 28 Mar 2018 16:30:51 +0100

On Wed, Mar 28, 2018 at 4:28 PM, Robert Eckhardt <[email-masked]>
wrote:

>>>>>> On Tue, Mar 27, 2018 at 7:06 PM, Robert Eckhardt <
>>>>>>>>>>> Nevertheless the Javascript testing looks a bit slim and could
>>>>>>>>>>> be improved. Also the DataSorting class could have some other member
>>>>>>>>>>> functions like the model validation could be extracted out so that it is
>>>>>>>>>>> easily tested.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> Have we considered making the grid behave more like excel or
>>>>>>>>>> other grids? I think that having the ascending and descending inside the
>>>>>>>>>> column header, we could similarly provide filtering. Something that would
>>>>>>>>>> give users a more intuitive place to look.
>>>>>>>>>>
>>>>>>>>>
>>>>>>> Honestly I'm not sold on my idea, I was just proposing an
>>>>>>> alternative in an effort to start a discussion about the user experience.
>>>>>>> Ideally what I'd like to see, maybe this happened, is some user research.
>>>>>>> When we initial worked on refactoring the results grid we made a bunch of
>>>>>>> changes. One of the things we intended to do was to follow up to see how
>>>>>>> people were using the grid now so that we could better understand how it
>>>>>>> was now being used in order to design and implement features just like
>>>>>>> this. Clearly we haven't gotten there yet.
>>>>>>>
>>>>>>>
>>>>>>>>

That will certainly be helpful, thanks.

---

From: Dave Page <[email-masked]>
Date: Thu, 5 Apr 2018 11:45:50 +0100

Can you rebase this please?

On Wed, Mar 28, 2018 at 8:19 AM, Murtuza Zabuawala <
[email-masked]> wrote:

> Could you please provide any reference for learning more about jasmine
> test framework?
> ​
>
> --
> Regards,
> Murtuza Zabuawala

---

From: Murtuza Zabuawala <[email-masked]>
Date: Thu, 5 Apr 2018 16:59:46 +0530

Hi Dave,

Please find rebased patch.

On Thu, Apr 5, 2018 at 4:15 PM, Dave Page <[email-masked]> wrote:

> On Wed, Mar 28, 2018 at 8:19 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi Dave,
>>

---

From: Joao De Almeida Pereira <[email-masked]>
Date: Thu, 05 Apr 2018 13:25:13 +0000

Murtuza I tried to apply the patch to master:

git apply ~/Downloads/RM_3055_v2.diff
error: cannot apply binary patch to
'docs/en_US/images/editgrid_filter_dialog.png' without full index line
error: docs/en_US/images/editgrid_filter_dialog.png: patch does not apply

On Thu, Apr 5, 2018 at 7:30 AM Murtuza Zabuawala <
[email-masked]> wrote:

>>> ​I have not done any data gathering from users so I can't comment on
>>> your queries.
>>> ​ but a​

---

From: Dave Page <[email-masked]>
Date: Thu, 5 Apr 2018 16:25:59 +0100

Thanks, applied.

---

From: Joao De Almeida Pereira <[email-masked]>
Date: Thu, 05 Apr 2018 17:50:11 +0000

Hi Murtuza,
I forgot to mention this in my review........
Do you think we can start using only ES6 instead of keep using requirejs
syntax on new things that we are building?
How much effort do you think it will be?

Like this patch, as an example, do you think it could have been implemented
without using requirejs?

Thanks

---

From: Murtuza Zabuawala <[email-masked]>
Date: Fri, 6 Apr 2018 09:13:06 +0530

Hi Joao,

> How much effort do you think it will be?
​Yes, we can.
Let me try to change the code to use ES6 and I'll send patch.​

>
> Like this patch, as an example, do you think it could have been
> implemented without using requirejs?
>

>> On Thu, Apr 5, 2018 at 12:29 PM, Murtuza Zabuawala <murtuza.zabuawala@
>> enterprisedb.com> wrote:
>>
>>> Hi Dave,
>>>
>>>>> On Wed, Mar 28, 2018 at 6:07 AM, Robert Eckhardt <[email-masked]
>>>>> > wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>>>>>>> @Murtuza: The patch codewise looks good. Nice to see that we
>>>>>>>>>>>> are using axios instead of jquery ajax calls and that there is some
>>>>>>>>>>>> coverage for the change.
>>>>>>>>>>>> This is the behavior that we were expecting, not to have to
>>>>>>>>>>>> open Data View and then press the icon that is not even near the grid in
>>>>>>>>>>>> order to sort the column. Is this really the way we want people to use the
>>>>>>>>>>>> grid in pgAdmin? Should it be more intuitive?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>> ​s far as I understood from the feature requests that most of the
>>>>> users expect to have functionality which will allow then to sort columns as
>>>>> it was in pgAdmin3.​
>>>>>
>>>>>
>>>>>
>>>>>> -- Rob
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>> What I'm suggesting is that we understand how users want to
>>>>>>>> interact with their results, be those the results of a query or a table
>>>>>>>> view, then we can design something that meets those needs. I agree that
>>>>>>>> changing the column selection behavior isn't desirable, however, I also
>>>>>>>> feel like providing the best user experience is better than holding onto a
>>>>>>>> particular feature implementation.
>>>>>>>> ​
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>> -- Rob
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Dave Page

---

From: Murtuza Zabuawala <[email-masked]>
Date: Fri, 6 Apr 2018 11:14:41 +0530

Hi,

Please find the patch which will change the syntax from requirejs syntax to
ES6 from previous commit.

On Fri, Apr 6, 2018 at 9:13 AM, Murtuza Zabuawala <
[email-masked]> wrote:

>>>>>> Could you please provide any reference for learning more about
>>>>>> jasmine test framework?
>>>>>> ​
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Murtuza Zabuawala
>>>>>> On Wed, Mar 28, 2018 at 6:07 AM, Robert Eckhardt <
>>>>>>>>>> As Dave suggested, I will be merging it with filter dialog
>>>>>>>>>> meaning it will be accessible via direct button on toolbar & keyboard
>>>>>>>>>> shortcut.​
>>>>>>>>>> ​
>>>>>>>>>>
>>>>>>>>>
>>>>>>> Sorry I wasn't clear. My question was more along the lines of, do
>>>>>>> we know if people are using the filter functionality?  What kind of

---

From: Dave Page <[email-masked]>
Date: Fri, 6 Apr 2018 10:38:15 +0100

Thanks, applied.

On Fri, Apr 6, 2018 at 6:44 AM, Murtuza Zabuawala <
[email-masked]> wrote:

> Hi,
>
> Please find the patch which will change the syntax from requirejs syntax
> to ES6 from previous commit.
>
> --
> Regards,
> Murtuza Zabuawala
> On Fri, Apr 6, 2018 at 9:13 AM, Murtuza Zabuawala <murtuza.zabuawala@
> enterprisedb.com> wrote:
>
>> Hi Joao,
>>
>>
>>>>>>>>>>>>>> Nevertheless the Javascript testing looks a bit slim and
>>>>>>>>>>>>>> could be improved. Also the DataSorting class could have some other member
>>>>>>>>>>>>>> 5 - Right clicked the column header to see if it was there
>>>>>>>>>>>>>> the option, nothing
>>>>>>>>>>>>>>
>>>>>>>> we know if people are using the filter functionality?  What kind
>>>>>>>> of filters are people using?  What do they like about it? What do they wish

---

From: Joao De Almeida Pereira <[email-masked]>
Date: Fri, 06 Apr 2018 13:15:35 +0000

Pretty cool, Thanks Murtuza

On Fri, Apr 6, 2018 at 5:38 AM Dave Page <[email-masked]> wrote:

>>>> Do you think we can start using only ES6 instead of keep using
>>>> requirejs syntax on new things that we are building?
>>>>>>>> ​I have not done any data gathering from users so I can't comment
>>>>>>>> on your queries.
>>>>>>>> ​ but a​