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

From: Akshay Joshi <[email-masked]>
Date: Tue, 5 Apr 2016 14:50:10 +0530

Hi All

I have implemented the Data Grid and Query Tool as one component.

*Functionality working for Data Grid*:

   - Add/Update/Delete rows if object is editable.
   - Copy row
   - Paste row
   - Refresh
   - Client Filter provided by the Backgrid.
   - Filter (User specified, By cell Selection, Exclude Selection
   - Add Limit to the query result
   - Download the data as CSV.

*Todo's for the Data Grid*:

   - Find a way to select backgrid cell when rows are not editable. If
   backgrid rows are not editable then Filter by selection and Exclude
   selection won't work

*Functionality working for Query Tool*:

   - Execute sql query.
   - Execute the Highlighted sql.
   - Cancel the running query.
   - Download the data as CSV

*Todo's for the Query Tool*:

   - Open as SQL file.
   - Save to SQL file.
   - Auto Commit/ Rollback.
   - Output Panel should be resizable, so that user can

Attached is the patch file. Please review it and let me know the review
comments if any.

-- 
*Akshay Joshi*
*Principal Software Engineer *

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

-- 
Sent via pgadmin-hackers mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

---

From: Dave Page <[email-masked]>
Date: Wed, 6 Apr 2016 15:58:53 +0100

Hi

On Tue, Apr 5, 2016 at 10:20 AM, Akshay Joshi <[email-masked]
> wrote:

> Attached is the patch file. Please review it and let me know the review

Initial feedback based on my playing with it, and discussion with Ashesh:

- The View Data menu option should be on the Object menu, which should
mirror the Context menu, except options should be disabled when not
applicable instead of hidden.

- The Query Tool menu icon should be a glyphicon, to match the others.

- 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.

- 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.

- 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)

- Please remove the border from the SQL box, such that it fills all
available space.

- 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.

- 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.

- If a field has been edited, but not saved, can we highlight it somehow?
Maybe make the text dark blue?

- 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?

- 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.

- Query results should have spaces converted to "&nbsp;", so that proper
indenting is maintained (for example, on EXPLAIN queries).

- The "Add Row" button only works if you're on the last page of the
resultset.

- Can the "Copy Row" button also populate the clipboard with CSV data for
the row?

- In Edit mode, we need to be able to represent/set values to NULL.

- 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.

Thanks!

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

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

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 7 Apr 2016 14:37:19 +0530

Hi

On Wed, Apr 6, 2016 at 8:28 PM, Dave Page <[email-masked]> wrote:

> Hi
>
> On Tue, Apr 5, 2016 at 10:20 AM, Akshay Joshi <
> [email-masked]> wrote:
>
>> Hi All
>>
> - 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 ...)

> - 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.

> one button. We shouldn't have two buttons that do essentially the same

    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).

> the most recent action  as it would in the Query Tool.

   OK.

> read-only, but should display the SQL used (including any LIMIT/FILTER

    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).

> - Please remove the border from the SQL box, such that it fills all

   Done. Please refer the attached screenshots (QueryTool and EditGrid).

> box/Results tabs as required. Those elements should be grayed whilst it is

   Done. Please refer the attached screenshot (Filter).

> it doesn't force the row height to be higher than it should be.

   OK.

> Maybe make the text dark blue?

   OK, not sure right now but will try.

> "Query 1", "Query 2" etc, then rename them to the filename if the user

   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?

> note the line, and spellcheck-style underlining for the error word.

    OK.

> 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

   OK.

> - Can the "Copy Row" button also populate the clipboard with CSV data for

   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.

> If I restart the server, the query will execute correctly, however I
> should see appropriate messages when it's not running.
>

   OK.

---

From: Dave Page <[email-masked]>
Date: Thu, 7 Apr 2016 13:31:43 +0100

Hi

On Thu, Apr 7, 2016 at 10:07 AM, Akshay Joshi <[email-masked]

> 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.

>    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.
>

That one looks perfect.

>     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.

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.

>> the most recent action  as it would in the Query Tool.

Thanks.

>     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

Right, but I'd also like to be able to hide it entirely (which would be the
default in Edit Grid mode).

>    Done. Please refer the attached screenshot (Filter).

Cool.

>    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

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.

>> - 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.
>>

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:
>>

Cool - thanks!

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 7 Apr 2016 18:33:35 +0530

Hi

On Thu, Apr 7, 2016 at 6:01 PM, Dave Page <[email-masked]> wrote:

> Hi
>
> On Thu, Apr 7, 2016 at 10:07 AM, Akshay Joshi <
>>> , which should mirror the Context menu, except options should be
>>> disabled when not applicable instead of hidden.
>>>
>>

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

> 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.

    OK.

>>> - 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)
>>>
>>
> 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 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.

>>> - 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.
>>
>>>
>>> - Can the "Copy Row" button also populate the clipboard with CSV data
>>> for the row?
>>>
>>
>>> - The layout of the result tabs should be maintained if new Query Tool
>>> or Edit Grid tabs are opened.
>>>
>>
>>    OK.
>>
>
> Cool - thanks!
>
> --
> Dave Page

---

From: Dave Page <[email-masked]>
Date: Thu, 7 Apr 2016 14:08:50 +0100

On Thu, Apr 7, 2016 at 2:03 PM, Akshay Joshi <[email-masked]>
wrote:

>>>      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,
>> 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
>     The same behaviour I have already added in "Tools" menu, so you want
> me to shift that menu from "Tools" to "Object"??
>

Just for the View/Edit options. The Query Tool is never shown on the
Context menu, so it should be on Tools.

> play button works as "Refresh" in EG mode or refresh button works as

MySQL Workbench uses something like glyphicon-flash.

>>>> - 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.
>>
>>
>>>
>>>     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).
>>>
>>
>     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

You could put the small panel (discussed below) that displays the name of
the object in the splitter panel as well. Then, you wouldn't have to hide
the whole thing. It might look a little weird unless you force the splitter
to move when you hide the SQL box though.

>>> will only show the servername-objectname (remove database and schema)
>>> or only objectname, and in case of query tool we will show servername-
>> 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.
>>>>
>>>> - Query results should have spaces converted to "&nbsp;", so that
>>>> proper indenting is maintained (for example, on EXPLAIN queries).
>>>>
>>>
>>>> - 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:
>>>>
> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246*
>

---

From: Akshay Joshi <[email-masked]>
Date: Fri, 8 Apr 2016 12:13:45 +0530

Hi

On Thu, Apr 7, 2016 at 6:38 PM, Dave Page <[email-masked]> wrote:

>
>
> On Thu, Apr 7, 2016 at 2:03 PM, Akshay Joshi <
           We can't use this icon because it's not come with Bootstrap , I
have picked this from "http://glyphicons.com/" and I am not sure we can use
it as per the Licence.

>
>>>
>>>>
>>>> - 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.
>>>>>
>>>>
>>> No - please leave all buttons visible in either mode, but disable them
>>> as appropriate. Then, merge the execute/refresh buttons into one.
>>>
>>
>>>>> - In Edit Grid mode, the History panel should log all queries
>>>>> (SELECTs, UPDATEs, DELETEs etc) as it would in the Query Tool.
>>>>>
>>>>> - 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?
>>>>
>>>

---

From: Dave Page <[email-masked]>
Date: Fri, 8 Apr 2016 10:02:40 +0100

On Fri, Apr 8, 2016 at 7:43 AM, Akshay Joshi <[email-masked]>
wrote:
> have picked this from "http://glyphicons.com/" and I am not sure we can
> use it as per the Licence.
>

At the risk of annoying everyone immensely, on reflection I'm thinking we
should use Font Awesome as our default generic icons, and fall back to
Bootstrap's Glyphicons. I really hadn't realised how much larger the FA set
is.

For this particular issue, could we use FA's stacking? e.g. something like:
https://jsfiddle.net/pa8x6nt3/

If not, how about using the execute icon we discussed, e.g. fa-bolt?

---

From: Akshay Joshi <[email-masked]>
Date: Fri, 8 Apr 2016 20:09:20 +0530

Hi Dave

On Fri, Apr 8, 2016 at 2:32 PM, Dave Page <[email-masked]> wrote:

>
>
> On Fri, Apr 8, 2016 at 7:43 AM, Akshay Joshi <
>>>>>>    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.
>>>>>>
>>>>>
>>>>> That one looks perfect.
>>>>>
>>>>
>>            We can't use this icon because it's not come with Bootstrap ,
>> I have picked this from "http://glyphicons.com/" and I am not sure we
>> can use it as per the Licence.
>>
>
> For this particular issue, could we use FA's stacking? e.g. something
> like: https://jsfiddle.net/pa8x6nt3/
>

   I have used fa-bolt. Apart from that I have completed below review
comments

   - The View Data menu option should be on the Object menu, which should
   mirror the Context menu, except options should be disabled when not
   applicable instead of hidden. *Note*: - With current implementation
   "Object" menu is re-created dynamically depending on the node clicked, so
   we will have to re-create the "View Data" menu as well and it require
   change in the generic code. For the time being "View Data" menu is visible
   in "Object" menu when appropriate node is selected.
   - 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.
   - In Edit Grid mode, that textbox should be read-only, but should
   display the SQL used (including any LIMIT/FILTER clauses). Please refer
   the attached screenshot (Modified-Data-Grid).
   - 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.
   - 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? *Note*: - As discussed I have added one
   more container to show the title. Please refer the attached screenshots
   (Modified-Query-Tool)
   - Query results should have spaces converted to "&nbsp;", so that proper
   indenting is maintained (for example, on EXPLAIN queries)
   - To fix this we have added css style "*white-space: pre-wrap;*", but it
      changes the backgrid cell size. Please refer the screenshot
      (Modified-Data-Grid).

   Please review the screenshots and please let me know will it looks good.

---

From: Dave Page <[email-masked]>
Date: Fri, 8 Apr 2016 17:19:29 +0100

OK.

>    display the SQL used (including any LIMIT/FILTER clauses). Please
>    refer the attached screenshot (Modified-Data-Grid).
>    to "Query 1", "Query 2" etc, then rename them to the filename if the
>    user saves/loads a file? *Note*: - As discussed I have added one
>    proper indenting is maintained (for example, on EXPLAIN queries)
>    - To fix this we have added css style "*white-space: pre-wrap;*", but
>       it changes the backgrid cell size. Please refer the screenshot
>       (Modified-Data-Grid).
>
> Hmmm. I'd rather that the heights didn't change (or at least the rows were
resizeable like in pga3. Can we set the column to hide vertical overflow,
unless it gets focus or something?

>    Please review the screenshots and please let me know will it looks good.

Bar the cell size, certainly it's good :-)

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 12 Apr 2016 17:41:25 +0530

Hi Dave

As per suggestion, I have changed History tab to be a grid. Attached is the
two screenshot one for Query Tool and other is for the Data Grid where some
of the transaction gets rollback while saving the data due to one of the
error condition. Please review the screenshots and let me know the comments
if any.

On Fri, Apr 8, 2016 at 9:49 PM, Dave Page <[email-masked]> wrote:

>
>
> On Fri, Apr 8, 2016 at 3:39 PM, Akshay Joshi <
>>>>>>>>    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.
>>>>>>>>
>>>>>>>
>>>>>>> That one looks perfect.
>>>>>>>
>>>>>>
>>>>            We can't use this icon because it's not come with Bootstrap
>>>> , I have picked this from "http://glyphicons.com/" and I am not sure
>>>> we can use it as per the Licence.
>>>>
>>>
>>> At the risk of annoying everyone immensely, on reflection I'm thinking
>>> we should use Font Awesome as our default generic icons, and fall back to
>>    - The View Data menu option should be on the Object menu, which
>>    should mirror the Context menu, except options should be disabled when not
>> Hmmm. I'd rather that the heights didn't change (or at least the rows
> were resizeable like in pga3. Can we set the column to hide vertical
> overflow, unless it gets focus or something?
>
>

---

From: Dave Page <[email-masked]>
Date: Tue, 12 Apr 2016 13:40:54 +0100

Very nice!

On Tue, Apr 12, 2016 at 1:11 PM, Akshay Joshi <[email-masked]

> Hi Dave
>
> As per suggestion, I have changed History tab to be a grid. Attached is
> the two screenshot one for Query Tool and other is for the Data Grid where
> some of the transaction gets rollback while saving the data due to one of
> the error condition. Please review the screenshots and let me know the
> comments if any.
>
>>>    - To fix this we have added css style "*white-space: pre-wrap;*",
>>>       but it changes the backgrid cell size. Please refer the
>>>       screenshot (Modified-Data-Grid).
>>>

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 14 Apr 2016 18:28:37 +0530

Hi All

I have fixed review comments given by Dave and couple of them are remaining

*Fixed Review Comments:*

   display the SQL used (including any LIMIT/FILTER clauses)
   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
   - on shutdown pgAdmin server , appropriate message should be displayed.

*Remaining review comments*:

   *both* Query Tool and Edit Grid modes.

*TODO's* (apart from above)

   - Open/Save SQL file.
   - Cut, Copy, Paste functionality.

 Attached is the patch file which contains complete DataGrid and Query Tool
code with fixed review comments. Can you please review the patch and let me
know the review comments if any else can you please commit the code if it
looks good to you.

On Tue, Apr 12, 2016 at 6:10 PM, Dave Page <[email-masked]> wrote:

> Very nice!
>
>
> On Tue, Apr 12, 2016 at 1:11 PM, Akshay Joshi <
>>>>>>            We can't use this icon because it's not come with
>>>>>> Bootstrap , I have picked this from "http://glyphicons.com/" and I
>>>>>> am not sure we can use it as per the Licence.
>>>>>>
>>>>>
>>>>    - 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.
>>>>    - 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? *Note*: - As discussed I have added
>>>>    one more container to show the title. Please refer the attached screenshots
>>>>    (Modified-Query-Tool)

---

From: Dave Page <[email-masked]>
Date: Thu, 14 Apr 2016 15:10:17 +0100

Hi

On Thu, Apr 14, 2016 at 1:58 PM, Akshay Joshi <[email-masked]

>    user saves/loads a file?
>    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.
Awesome!

I've made a few minor style changes - mostly colouring, but I also widened
the Execute button and it was easier to push it's dropdown than it - and
pushed the code.

> Agreed on the above.

My only real suggestion on the code itself (which looks good and clean on a
quick review), is that:

- The button bar be moved out into an HTML template
- create.sql should perhaps be renamed to insert.sql
- It looks like we only allow updates if we have a pkey. Should we allow
use of OIDs when present, if a pkey isn't there?

I'll continue to log additional issues if/when I find them.

-- 
Dave Page
VP, Chief Architect, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Akshay Joshi <[email-masked]>
Date: Fri, 15 Apr 2016 12:33:46 +0530

On Thu, Apr 14, 2016 at 7:40 PM, Dave Page <[email-masked]>
wrote:

> Hi
>
> On Thu, Apr 14, 2016 at 1:58 PM, Akshay Joshi <
>>    and error details (SQL State etc). New rows should be added to the
>>    top of the list.
>>    - 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.
>>    - The layout of the result tabs should be maintained if new Query
>>    Tool or Edit Grid tabs are opened.
>>
> My only real suggestion on the code itself (which looks good and clean on
> a quick review), is that:
>

   Thanks for committing the patch. I'll work on the above comments.
Meanwhile I have found one issue where "View Filtered Row" is not working,
so attached is the patch file to fix that. Can you please review/commit it.

---

From: Dave Page <[email-masked]>
Date: Fri, 15 Apr 2016 08:52:42 +0100

Thanks - committed.

On Fri, Apr 15, 2016 at 8:03 AM, Akshay Joshi <[email-masked]

>>>    - In Edit Grid mode, the History panel should log all queries (
>>>    SELECTs, UPDATEs, DELETEs etc) as it would in the Query Tool.
>> I've made a few minor style changes - mostly colouring, but I also
>> widened the Execute button and it was easier to push it's dropdown than it
>> - and pushed the code.
>>
>>
>>>    - Can the "Copy Row" button also populate the clipboard with CSV
>>>    data for the row?

---

From: Akshay Joshi <[email-masked]>
Date: Thu, 21 Apr 2016 14:00:18 +0530

Hi

I have fixed following review comments given by Dave and attached is the
patch file:

I have tried to fix the following review comments, but unable to figure out
the solution

           I have changed the design and have only one wcDocker and add SQL
panel to the Top and remaining panel to the Bottom, then I have tried to
hide the top panel, but not able to fix it.

           For this we have "backgrid:edited" event in which we get model
and column, but not sure how we can find the cell to add the class to
change the colour and if we will have solution then, we will have to remove
that class again once user will enter the original value again.

   - Can the "Copy Row" button also populate the clipboard with CSV data
   for the row?
   - Cut, Copy and Paste to Clipboard.

           I have googled for solution and found some of them which have
only "Copy" feature, some of them works for limited browsers. One solution
is to use "document.execCommand("Copy")" but it works for TextArea and we
have CodeMirror.

To solve the above I need some help/suggestions here.

On Fri, Apr 15, 2016 at 1:22 PM, Dave Page <[email-masked]>
wrote:

> Thanks - committed.
>
> On Fri, Apr 15, 2016 at 8:03 AM, Akshay Joshi <
>>>>    - 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.
>>>>    if the user saves/loads a file?
>>>>    - 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.
>>> My only real suggestion on the code itself (which looks good and clean
>>> on a quick review), is that:
>>>

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 3 May 2016 12:11:01 +0530

Hi All

Added support of code-folding for QueryTool. Please ignore previous patch,
attached is the new combined patch.

On Thu, Apr 21, 2016 at 2:00 PM, Akshay Joshi <[email-masked]

> I have tried to fix the following review comments, but unable to figure
> out the solution
>
>
>
>            I have changed the design and have only one wcDocker and add
> SQL panel to the Top and remaining panel to the Bottom, then I have tried
> to hide the top panel, but not able to fix it.
>
>>>>>    - 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.
>>>>>    - In Edit Grid mode, the Messages panel should display any
>>>>>    messages from the most recent action  as it would in the Query Tool.
>>>>>    - Please remove the border from the SQL box, such that it fills
>>>>>    all available space.
>>>>>    - The "Add Row" button only works if you're on the last page of
>>>>>    the resultset.
>>>> - It looks like we only allow updates if we have a pkey. Should we
>>>> allow use of OIDs when present, if a pkey isn't there?
>>>>