Re: [pgAdmin4] [Patch] Implementation of the Data Grid and Query Tool

From: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4] [Patch] Implementation of the Data Grid and Query Tool
Date: 2016-04-07 13:03:35
Message-ID: CANxoLDcp=sjd=P8U7qUP3tOQThAXDx+GUFyoE6F9xNDKwa5MnA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi

On Thu, Apr 7, 2016 at 6:01 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Thu, Apr 7, 2016 at 10:07 AM, Akshay Joshi <
> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>
>>
>>> - The View Data menu option should be on the Object menu
>>>
>>
>> OK.
>>
>>
>>> , which should mirror the Context menu, except options should be
>>> disabled when not applicable instead of hidden.
>>>
>>
>> Context menu code is generic code, to do this we need to change that
>> code and it impacts other menu items like (Connect/Disconnect server,
>> Connect/Disconnect Database etc ...)
>>
>
> I think you misunderstand. The Context menu is fine - but options that are
> on it, should also be on the main "Object" menu. The difference is that
> where options are hidden on the context menu, they should be disabled on
> the object menu.
>

The same behaviour I have already added in "Tools" menu, so you want me
to shift that menu from "Tools" to "Object"??

>
>
>>
>>> - The Query Tool menu icon should be a glyphicon, to match the others.
>>>
>>
>> There is no glyphicon available which match the Query Tool icon. I
>> have found one like below which is "database-search" or can you please
>> suggest some other icon.
>> [image: Inline image 1]
>>
>
> That one looks perfect.
>
>
>>
>> - Please merge the functionality of the Refresh and Execute buttons into
>>> one button. We shouldn't have two buttons that do essentially the same
>>> thing.
>>>
>>
>> I have modified the button toolbar, we will show buttons on the
>> toolbar specific to the module (QueryTool/EditGrid). Please refer the
>> attached screenshots (QueryTool and EditGrid).
>>
>
> No - please leave all buttons visible in either mode, but disable them as
> appropriate. Then, merge the execute/refresh buttons into one.
>

In that case we will have to use either refresh icon or execute icon
(play button) or any other, as a user's perspective it's not good to have
play button works as "Refresh" in EG mode or refresh button works as
"Execute" in QT mode.

>
> The reason for doing it this way is that eventually we will add query
> parsing support to the client so that we can start enabling some of the
> Edit Grid features when running in Query Tool mode - e.g. if a Query Tool
> authored query is determined to be updatable, we can enable buttons like
> "Add Row", "Save" etc.
>

OK.

>
>
>>
>>
>>> - In Edit Grid mode, the History panel should log all queries (SELECTs,
>>> UPDATEs, DELETEs etc) as it would in the Query Tool.
>>>
>>> - In Edit Grid mode, the Messages panel should display any messages from
>>> the most recent action as it would in the Query Tool.
>>>
>>
>> OK.
>>
>
> Thanks.
>
>
>>
>>> - Please add an SQL button. This should show/hide the SQL panel in
>>> *both* Query Tool and Edit Grid modes. In Edit Grid mode, that textbox
>>> should be read-only, but should display the SQL used (including any
>>> LIMIT/FILTER clauses)
>>>
>>
>> I think we don't need an SQL button, because I have added a Splitter
>> to split SQL panel and Output Panel, so user can any time resize the SQL/Output
>> panel. Please refer the attached screenshots (QueryTool and EditGrid).
>>
>>
>
> Right, but I'd also like to be able to hide it entirely (which would be
> the default in Edit Grid mode).
>

To achieve this we need to hide the top half of the splitter, that I am
not sure how we can do that. We can't remove the splitter, because it
provide's ease to user to expand the SQL panel for reading the long SQL
queries/functions.

>
>
>>
>>> - Please remove the border from the SQL box, such that it fills all
>>> available space.
>>>
>>
>> Done. Please refer the attached screenshots (QueryTool and EditGrid).
>>
>>>
>>> - The Filter box should be in a modal overlay over the top of the SQL
>>> box/Results tabs as required. Those elements should be grayed whilst it is
>>> open.
>>>
>>
>> Done. Please refer the attached screenshot (Filter).
>>
>
> Cool.
>
>
>>
>>> - Please adjust the height of the Delete icon in the Edit Grid, such
>>> that it doesn't force the row height to be higher than it should be.
>>>
>>
>> OK.
>>
>>>
>>> - If a field has been edited, but not saved, can we highlight it
>>> somehow? Maybe make the text dark blue?
>>>
>>
>> OK, not sure right now but will try.
>>
>>>
>>> - I think the names of the tabs are far too long. Can we change them to
>>> "Query 1", "Query 2" etc, then rename them to the filename if the user
>>> saves/loads a file?
>>>
>>
>> I personally feel it's been difficult for user to identify the tab if
>> we will give names like "Query 1" . What we can do in case of edit grid we
>> will only show the servername-objectname (remove database and schema) or
>> only objectname, and in case of query tool we will show servername-
>> databasename. What do you think?
>>
>
> I think they're all ambiguous enough to not be useful for many users :-( -
> plus the tabs are so long, they look awful.
>
> We should perhaps add a small panel (below the toolbar?) that shows Server
> -> Database in QT mode, and Server -> Database -> Schema -> Table/View in
> EG mode.
>

OK.

>
>
>>
>>
>>> - Ashesh and I discussed changing the History tab to be a grid, showing:
>>> Date/Time, Query (first line only), Rows affected, Runtime and Status, in a
>>> row per query executed. Ashesh suggested using a sub-form that can be
>>> expanded for each row, which could show the full query and error details
>>> (SQL State etc). New rows should be added to the top of the list.
>>>
>>> - We should add an "Edit" button, which opens a drop-down menu. This
>>> would eventually include options as found on the Edit menu in the pgAdmin3
>>> query tool, such as the "Clear SQL" option.
>>>
>>> - Errors should be highlighted in the SQL box - a marker in the margin
>>> to note the line, and spellcheck-style underlining for the error word.
>>>
>>
>> OK.
>>
>>>
>>> - Query results should have spaces converted to "&nbsp;", so that proper
>>> indenting is maintained (for example, on EXPLAIN queries).
>>>
>>
>> Instead of converting spaces to "&nbsp;" we can have css style
>> "white-space: pre-wrap;". I have tested it and works fine.
>>
>>>
>>> - The "Add Row" button only works if you're on the last page of the
>>> resultset.
>>>
>>
>> OK.
>>
>>>
>>> - Can the "Copy Row" button also populate the clipboard with CSV data
>>> for the row?
>>>
>>
>> This required some research, not sure at the moment.
>>
>>>
>>> - In Edit mode, we need to be able to represent/set values to NULL.
>>>
>>
>> This will be taken care as part of multi-type rendering task.
>>
>
> OK.
>
>
>>
>>> - If I shutdown my pgAdmin server, then execute a query, I get no error,
>>> 0 rows displayed, and a message in the messages panel saying:
>>>
>>> Total query runtime: 46 msec
>>> 3 rows retrieved.
>>>
>>> If I restart the server, the query will execute correctly, however I
>>> should see appropriate messages when it's not running.
>>>
>>> - The layout of the result tabs should be maintained if new Query Tool
>>> or Edit Grid tabs are opened.
>>>
>>
>> OK.
>>
>
> Cool - thanks!
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

--
*Akshay Joshi*
*Principal Software Engineer *

*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2016-04-07 13:08:50 Re: [pgAdmin4] [Patch] Implementation of the Data Grid and Query Tool
Previous Message Dave Page 2016-04-07 12:41:51 Re: Styling tab navigation and close buttons