public inbox for [email protected]
help / color / mirror / Atom feedFrom: Aditya Toshniwal <[email protected]>
To: Akshay Joshi <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin][RM6131] Port query tool to React
Date: Fri, 29 Apr 2022 13:12:25 +0530
Message-ID: <CAM9w-_kqHdBwXsF6sSEEMeTu5hvYTKJv_i_mfjNeWQOrm3qHig@mail.gmail.com> (raw)
In-Reply-To: <CANxoLDcvz+5a4Gmru0CrJ2BES4mTVJejKT=QNHbj5TsOnyiRdw@mail.gmail.com>
References: <CAM9w-_=7+yaGeh=m=-jo8ZMtqQBVYeyKBFJgarGUU09Ff+w68w@mail.gmail.com>
<CANxoLDdeFxtgGVAJZvyoCZ8kCFEHVCRyi2eBL35HqGuR6301AA@mail.gmail.com>
<CAM9w-_kASJCjN1pHrMeTe3+eFc2DYDT7qdTCGj+EuhC54AxJNw@mail.gmail.com>
<CAM9w-_=pGojP3aG_FY56BNJjZFK1ziOJrZXyVJ1COKtaFtqfpQ@mail.gmail.com>
<CANxoLDc+cNawZ=LCbfU_2Cx4rCWkbfjMVfv8mmY=Wk7GSUjcJg@mail.gmail.com>
<CAM9w-_mvwZ221u8ZnY7i4f_3ujKTyoJ3=4qiSEUdqAegScFxaw@mail.gmail.com>
<CAM9w-_=F5vUWkeAL+52NfcQvf+W3MoLCa0Kac2N031qA9eet2g@mail.gmail.com>
<CAM9w-_k4sam2RbKxgKKp2ceNBQQn72zAOU4W7uFGWD_CEWpWCQ@mail.gmail.com>
<CAM9w-_m2m5WFOroN_mkbbT39mYHWWTXjniv=Vcqrxv6Y=+ZpfA@mail.gmail.com>
<CANxoLDeKDRYY3Woq13MxOrL9Wcfkz5533iFtdLJqwZaDoCA4cA@mail.gmail.com>
<CAM9w-_=HuBA6a1uZkPNyjLHqA3H-yHKoMsF4yv6=MU7Kd4=tdg@mail.gmail.com>
<CANxoLDe-oXPfN-btVLjfaQLUiDm88++ezskK64Kn7261PNSROw@mail.gmail.com>
<CAM9w-_kuvmj91hVoyW25MCJU0iOS7hX9xpUwSuSB4-U7sJc_2Q@mail.gmail.com>
<CANxoLDdbw8Em301fA1mq2LAFqnxASjTkk-9P+GT1j1B3CJ4Z9w@mail.gmail.com>
<CAM9w-_ngk8sm+VKZP7C-J=co+VgeTtLX5TVFArpg8LQbsGGoDA@mail.gmail.com>
<CANxoLDeA4qgQULu4sc2Yc+gTPTCkU9oay3AbxZ_r2nJ9n=Qo-Q@mail.gmail.com>
<CAM9w-_nVaKUnG3k7LK+q9K8h-xcKtw0t79B9k-6Kz=_F8dNwrw@mail.gmail.com>
<CAM9w-_mp2OtdLEVM9HwPaArR-FrzQGwWw+NA=GWLxD70A_qHVA@mail.gmail.com>
<CANxoLDfKBFNAaX6gV7uvFpTmkBWq9x2iJPXm1h7yobU7vGyD2Q@mail.gmail.com>
<CAM9w-_msBjfi85gJOfB7yccRibTKzFuEJWL-pWQ=a8nm_H5bFw@mail.gmail.com>
<CANxoLDcvz+5a4Gmru0CrJ2BES4mTVJejKT=QNHbj5TsOnyiRdw@mail.gmail.com>
Hi,
Attached patch fixes:
1. Filter dialog doesn't work in edit mode (getting back end errors),
reverting it back to create mode of SchemaView.
2. Enable the copy button when a cell is selected.
3. Exclude, Include related fixes.
Please review.
On Thu, Apr 28, 2022 at 6:02 PM Akshay Joshi <[email protected]>
wrote:
> Thanks, the patch applied.
>
> On Thu, Apr 28, 2022 at 5:53 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Hi,
>>
>> Attached patch disables the "Save results" button when there are no rows.
>>
>> On Tue, Apr 26, 2022 at 4:30 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Thanks, the patch applied.
>>>
>>> On Tue, Apr 26, 2022 at 4:23 PM Aditya Toshniwal <
>>> [email protected]> wrote:
>>>
>>>> Please ignore the previous patch. Attached is the new one.
>>>> Fixes:
>>>>
>>>> 1. In Dark mode > Replace/Find dialogue forward & reverse buttons
>>>> are stuck to each other.
>>>> 2. In Dark/High contrast mode > Checkbox is not visible for false
>>>> value.
>>>> 3. Wrap toolbar when size goes very small.
>>>> 4. Replace functionality does not work when tried in sequence 2
>>>> times. Codemirror search is not cyclic. So, changes are made to always
>>>> search from the start.
>>>> 5. Replace all does not work when tried in sequence 2 times. Same
>>>> reason as above.
>>>> 6. Fix broken macros $SELECTION$ feature.
>>>> 7. Make query history SQL readonly.
>>>> 8. The Filter dialog save button should be disabled when opened.
>>>>
>>>>
>>>> On Tue, Apr 26, 2022 at 3:05 PM Aditya Toshniwal <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Attached path fixes:
>>>>>
>>>>> 1. In Dark mode > Replace/Find dialogue forward & reverse buttons
>>>>> are stuck to each other.
>>>>> 2. In Dark/High contrast mode > Checkbox is not visible for false
>>>>> value.
>>>>> 3. Wrap toolbar when size goes very small.
>>>>> 4. Replace functionality does not work when tried in sequence 2
>>>>> times. Codemirror search is not cyclic. So, changes are made to always
>>>>> search from the start.
>>>>> 5. Replace all does not work when tried in sequence 2 times. Same
>>>>> reason as above.
>>>>> 6. Fix broken macros $SELECTION$ feature.
>>>>> 7. Make query history SQL readonly.
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Apr 25, 2022 at 6:13 PM Akshay Joshi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Thanks, the patch applied.
>>>>>>
>>>>>> On Mon, Apr 25, 2022 at 6:07 PM Aditya Toshniwal <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Attached path fixes:
>>>>>>>
>>>>>>> 1. Failed to fetch query history error sometimes.
>>>>>>> 2. In copy paste row, if a copied row has [null], then those are
>>>>>>> pasted as empty string.
>>>>>>> 3. When Dataoutput is empty, show an empty grid.
>>>>>>> 4. Schema diff generate script button results in empty window.
>>>>>>> Fixes #7306.
>>>>>>> 5. Detach the DataOutput panel > Try editing text cell > Text
>>>>>>> editor is hidden behind data output panel
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Apr 22, 2022 at 6:18 PM Akshay Joshi <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Thanks, the patch applied
>>>>>>>>
>>>>>>>> On Fri, Apr 22, 2022 at 6:02 PM Aditya Toshniwal <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Attached patch fixes:
>>>>>>>>> 1. Add min width to panels.
>>>>>>>>> 2. Fix issues related to New connection in query tool. Also fixed
>>>>>>>>> some existing bugs related to this.
>>>>>>>>>
>>>>>>>>> Please review.
>>>>>>>>>
>>>>>>>>> On Wed, Apr 20, 2022 at 7:04 PM Akshay Joshi <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks, the patch applied.
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 20, 2022 at 6:31 PM Aditya Toshniwal <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Attached patch fixes following issues:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 1. Find/Replace both opens the same dialogue box.(by
>>>>>>>>>>> clicking menu option)
>>>>>>>>>>> 2. Add New Server Connection > Server options keep
>>>>>>>>>>> loading(For multiple Server groups & should have some server)
>>>>>>>>>>> 3. Fixed CSS issues of slickgrid at various places.
>>>>>>>>>>> 4. Try to edit cell with char varying data type(which opens
>>>>>>>>>>> text editor, leave editor open) > Scroll result grid verticall so that
>>>>>>>>>>> ediot disappaears > Click on another cell > query edior shows white screen
>>>>>>>>>>> & refresh is the only option left.(TypeError: Cannot read properties of
>>>>>>>>>>> null (reading 'querySelector’) - Issue is not reproducible if you scroll
>>>>>>>>>>> horizontally
>>>>>>>>>>> 5. C should be captial in ’<New connection…>'
>>>>>>>>>>> 6. In pop title for New Connection, all words should be
>>>>>>>>>>> capital.(Add new connection)
>>>>>>>>>>> 7. Explain > Analaysis tab > Column heading missing ROWS PLAN with
>>>>>>>>>>> cost & In explain only.
>>>>>>>>>>> 8. Explain > Analaysis tab > with cost enabled > Upward
>>>>>>>>>>> arrow size does not match with font of number. Arrow is little bigger than
>>>>>>>>>>> number.
>>>>>>>>>>> 9. Boolean default is not considered while ading new
>>>>>>>>>>> row.(try table from feature test defaults)
>>>>>>>>>>> 10. In query history , when not query history present,
>>>>>>>>>>> warning icon size big. Match it to warning message - No history found
>>>>>>>>>>> 11. Select table/db object > Open query tool from Tools menu
>>>>>>>>>>> > NOT FOUND error is shown. Existing issue, fixed.
>>>>>>>>>>> 12. Any cell just open by clicking it > Do NOT change any
>>>>>>>>>>> thing > Click Ok > Cell is shown as edited.
>>>>>>>>>>>
>>>>>>>>>>> Please review.
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Apr 18, 2022 at 12:54 PM Akshay Joshi <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Thanks, the patch applied.
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Apr 18, 2022 at 11:27 AM Aditya Toshniwal <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>> Attached is the patch to fix the issues raised. Few of them
>>>>>>>>>>>>> are pending and will send it later.
>>>>>>>>>>>>> Fixed:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1. Add New Server Connection > Server options keep
>>>>>>>>>>>>> loading(For empty Server group).
>>>>>>>>>>>>> 2. After clicking indent/Unindent(for all operations) for
>>>>>>>>>>>>> large query option left as it is till operation completes
>>>>>>>>>>>>> 3. Also check sign beside options in Execute Option/Copy
>>>>>>>>>>>>> Header is little bit big
>>>>>>>>>>>>> 4. In explain > Analysis tab does not show ROWS column
>>>>>>>>>>>>> 5. In explain > Explain > analysis previous explain output
>>>>>>>>>>>>> is NOT cleared. New rows are appended. Same applies to the statistics tab.
>>>>>>>>>>>>> 6. Update new query tool connection tool tip.(7289)
>>>>>>>>>>>>> 7. Explain-Analyze > Loops column is empty.
>>>>>>>>>>>>> 8. Explain-Analyze with Verbose & Costs > in ROW X columns
>>>>>>>>>>>>> upward arrows are missing.
>>>>>>>>>>>>> 9. Explain-Analyze with all option checked > background
>>>>>>>>>>>>> colors are missing for timing.
>>>>>>>>>>>>> 10. Explain-Analyze > Additional bullet is added before
>>>>>>>>>>>>> Hash Cond.
>>>>>>>>>>>>> 11. Browser Tree > Filtered rows icon is not working.
>>>>>>>>>>>>> 12. Create table with timestamp and default value as
>>>>>>>>>>>>> function now() > Add new row > Enter mandatory columns except column where
>>>>>>>>>>>>> default value is function(now()) > Click Save > New row added but column
>>>>>>>>>>>>> with default value has value [default]. not updated to actual value. /
>>>>>>>>>>>>> Default values are not considered for any column while adding a new entry.
>>>>>>>>>>>>> 13. Disable execute options in View/Edit data.
>>>>>>>>>>>>> 14. The Boolean column always shows null.
>>>>>>>>>>>>> 15. In Query history Remove & Remove all buttons are stuck
>>>>>>>>>>>>> to each other.
>>>>>>>>>>>>> 16. On Remove all, the right panel is empty.
>>>>>>>>>>>>> 17. Create a column with boolean[]/ text[], Try to add a
>>>>>>>>>>>>> new entry from data grid, enter “” quotes > Click Ok > Now try edit cell >
>>>>>>>>>>>>> You can not change value.
>>>>>>>>>>>>> 18. In query history - Select queries are suffixed by
>>>>>>>>>>>>> ’Save Data’ icon
>>>>>>>>>>>>> 19. Edit any table with PK > Try to insert duplicate PK >
>>>>>>>>>>>>> Error thrown > Correct pK value > Still old error shown > Not able to add
>>>>>>>>>>>>> new entry (This works when focus is moved from edited cell)
>>>>>>>>>>>>> 20. Clicking arrows after opening dropdown options, does
>>>>>>>>>>>>> not collapse dropdown.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I was not able to reproduce some of the bugs on webpack dev
>>>>>>>>>>>>> mode, but reproducible on webpack prod mode bundles. After a lot of
>>>>>>>>>>>>> debugging it turned out that webpack/babel transpile was changing the
>>>>>>>>>>>>> meaning of a piece of code in prod mode. I tweaked the code then most
>>>>>>>>>>>>> issues were not reproducible anymore.
>>>>>>>>>>>>> That said, following issues were not reproducible and this fix
>>>>>>>>>>>>> could be the reason:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1. Not able to load more than 1000 rows.
>>>>>>>>>>>>> 2. Find/Replace both opens the same dialogue box.
>>>>>>>>>>>>> 3. Try to edit cell with char varying data type(which
>>>>>>>>>>>>> opens text editor) > Scroll result grid > Click on another cell > query
>>>>>>>>>>>>> edior shows white screen & refresh is the only option left.(TypeError:
>>>>>>>>>>>>> Cannot read properties of null (reading 'querySelector')
>>>>>>>>>>>>> at getCellElement (sqleditor.js?ver=60800:1:995456))
>>>>>>>>>>>>> 4. Generate script is not working for schema diff for
>>>>>>>>>>>>> tables with target only/ not working for any.(TypeError: Cannot read
>>>>>>>>>>>>> properties of undefined (reading 'database'))
>>>>>>>>>>>>> 5. Query results are appended in the Notification tab.
>>>>>>>>>>>>> 6. Panel name is NOT updated on opening file. Panel-name
>>>>>>>>>>>>> should be filename
>>>>>>>>>>>>> 7. Open a file in query tool > Open another file > Check
>>>>>>>>>>>>> panel name > It is the first file name.
>>>>>>>>>>>>> 8. Incorrect CSV downloaded (film table) when CSV quotes
>>>>>>>>>>>>> select single quote from preferences. *CSV generated at
>>>>>>>>>>>>> backend. No changes done.*
>>>>>>>>>>>>> 9. In Data grid > Add New data to cell > without clicking
>>>>>>>>>>>>> on other cell click on Add New row > previous data is gone.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Please find the comment inline for other issues:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1. Small white line is added below Total rows status bar.
>>>>>>>>>>>>> This is an existing issue with wcDocker. It is somehow not
>>>>>>>>>>>>> getting the correct size for the query tool. You can verify this by opening
>>>>>>>>>>>>> query tool in new tab.
>>>>>>>>>>>>> 2. In explain > Data output > Query Plan is editable.
>>>>>>>>>>>>> To be precise, the JSON editor is editable but does not
>>>>>>>>>>>>> allow saving it. This is inline with other editors like text editor which
>>>>>>>>>>>>> allows editing but no save.
>>>>>>>>>>>>> 3. Color is NOT fainted in View/Edit data when query tool
>>>>>>>>>>>>> is NOT editable.
>>>>>>>>>>>>> This is inline with other places where the SQL is read
>>>>>>>>>>>>> only like the properties dialog SQL tab or the RE-SQL tab. Plus, greying
>>>>>>>>>>>>> out of SQL affects query readability.
>>>>>>>>>>>>> 4. If data in result grid is edited & changes are
>>>>>>>>>>>>> reverted, then also Save button remain enabled/ Cell is shown in bold
>>>>>>>>>>>>> indicating data is edited.
>>>>>>>>>>>>> This is based on existing behaviour. A separate RM can be
>>>>>>>>>>>>> raised to have any improvement in this.
>>>>>>>>>>>>> 5. When the Save button is disabled then 'Save as' should
>>>>>>>>>>>>> be disabled as well.
>>>>>>>>>>>>> Save and Save As are different in behaviour. You can
>>>>>>>>>>>>> change a file and save it. The save will be disabled but the user should be
>>>>>>>>>>>>> allowed. I also checked the behaviour of VS-Code and PyCharm. They never
>>>>>>>>>>>>> disable the "save as" button. After all, there is no harm in allowing a
>>>>>>>>>>>>> user to save as even if it is empty.
>>>>>>>>>>>>> 6. Manage Macros - Help button is disabled. Remove SQL
>>>>>>>>>>>>> help button(Not sure).
>>>>>>>>>>>>> As I already mentioned in the review by Askhay, the
>>>>>>>>>>>>> existing help button opens the query tool help. Query tool help is
>>>>>>>>>>>>> already added on the toolbar and so this one is disabled.
>>>>>>>>>>>>> 7. Macros defined in one database are shown for other
>>>>>>>>>>>>> databases also/even across servers.
>>>>>>>>>>>>> As per the existing design.
>>>>>>>>>>>>> 8. Query tool notifier setting is missing in preferences.
>>>>>>>>>>>>> Previously, the total time and number of rows were shown
>>>>>>>>>>>>> in the notifier. And so, the notifier setting was added so that users can
>>>>>>>>>>>>> tweak it to keep it open for a longer time. Now, we do not show those
>>>>>>>>>>>>> details on the notifier since we have a fixed status bar for that. This
>>>>>>>>>>>>> setting is not relevant anymore.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Issues that need to be checked and pending:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1. Explain-Analyze with all option checked > Statistics
>>>>>>>>>>>>> tab > % of query is always 0 for node type. Need to check all the
>>>>>>>>>>>>> calculations.
>>>>>>>>>>>>> 2. In the Result grid multiple rows can not be selected
>>>>>>>>>>>>> with shift + down arrow.
>>>>>>>>>>>>> 3. In Geometry Viewer , map disappears if taken to bottom.
>>>>>>>>>>>>> 4. Keyboard shortcut - Focus in query tool and try
>>>>>>>>>>>>> Previous/Next tab is Not working add quotes in query tool
>>>>>>>>>>>>> 5. Keyboard shortcut Switch Panel is not working
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Apr 7, 2022 at 3:37 PM Aditya Toshniwal <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Please find an updated patch with PEP8 issues fixed.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Apr 7, 2022 at 3:12 PM Aditya Toshniwal <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Hackers,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Attached is updated patch which now also includes:
>>>>>>>>>>>>>>> Can't copy and paste row correctly if first column contains
>>>>>>>>>>>>>>> no data #7294
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Apr 5, 2022 at 5:45 PM Aditya Toshniwal <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Akshay,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you for doing such a detailed review. Please find my
>>>>>>>>>>>>>>>> comments inline below and attached patch.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Thu, Mar 17, 2022 at 4:05 PM Akshay Joshi <
>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi Aditya
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Following are the review comments:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> *GUI:*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - The Maximize/Minimize button on the panel should be
>>>>>>>>>>>>>>>>> consistent with other panels.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Scratch Pad is missing or is there any new setting
>>>>>>>>>>>>>>>>> to add a scratch pad?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Added. The layout lib currently does not have a context
>>>>>>>>>>>>>>>> menu on the header to add a panel. For now, you can use the reset layout
>>>>>>>>>>>>>>>> button to add the scratch pad again if closed. Context menu can be added
>>>>>>>>>>>>>>>> separately later. Reset layout will not refresh the page.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Press "Cmd + G" on Query Tool it opens the old
>>>>>>>>>>>>>>>>> search bar is it still valid
>>>>>>>>>>>>>>>>> - [image: Screenshot 2022-03-16 at 7.02.34 PM.png]
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>> - In case of any error, we should move the cursor to
>>>>>>>>>>>>>>>>> the error location. We are highlighting the error row but it should be
>>>>>>>>>>>>>>>>> scroll to that location in the editor.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Existing behaviour. Improvement done.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Error highlighting color should be aligned with the
>>>>>>>>>>>>>>>>> theme, check the existing color.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Error highlighting color is not cleared when running
>>>>>>>>>>>>>>>>> the successful query. Run "SELECT * from pg_class123" and then run "SELECT
>>>>>>>>>>>>>>>>> * from pg_class".
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *ToolBar buttons*:
>>>>>>>>>>>>>>>>> - When the Save button is disabled then 'Save as'
>>>>>>>>>>>>>>>>> should be disabled as well.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> This is not correct. A user should be allowed to "Save as"
>>>>>>>>>>>>>>>> a file even if it is saved and save button is disabled.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Open any SQL file, change some text and click on the
>>>>>>>>>>>>>>>>> 'Save' button, No notifier message has been flashed that 'File saved
>>>>>>>>>>>>>>>>> successfully' and the button does not get disabled as well.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Format SQL not working.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Clear Query keyboard shortcut not working.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>> - Clicking on the 'Clear Query' menu should pop up
>>>>>>>>>>>>>>>>> a confirmation dialog 'Are you sure you wish to discard the current
>>>>>>>>>>>>>>>>> changes?'
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Open any SQL file, change some text, and try to open
>>>>>>>>>>>>>>>>> another file, it should pop up a confirmation dialog 'Are you sure you wish
>>>>>>>>>>>>>>>>> to discard the current changes?'
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - When clicking on the New Query Tool button it is
>>>>>>>>>>>>>>>>> not opening the new query tool window.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Shortcut Key for Replace is not correct on *Windows*
>>>>>>>>>>>>>>>>> (Tooltip showing Alt + Ctrl + F) but actual is (Shift + Ctrl + F)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Most of the Keyboard shortcuts are not working on
>>>>>>>>>>>>>>>>> Windows at all.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *New Connection Dialog:*
>>>>>>>>>>>>>>>>> - The close button should be right-aligned.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Unable to test further because when selecting any
>>>>>>>>>>>>>>>>> disconnected server it should pop up the password dialog to connect and
>>>>>>>>>>>>>>>>> then fetch the details like databases, users, roles.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Help buttons are disabled.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The existing help button opens the query tool help. Query
>>>>>>>>>>>>>>>> tool help is already added on the toolbar.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Query History*:
>>>>>>>>>>>>>>>>> - For some queries like 'ROLLBACK' and 'COMMIT,'
>>>>>>>>>>>>>>>>> Rows affected shows in the negative (-1).
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Based on existing. I have made it blank.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Remove All* should warn the user before removing
>>>>>>>>>>>>>>>>> everything "Are you sure you wish to remove all the history? This will
>>>>>>>>>>>>>>>>> remove all of your query histories from this and other sessions for this
>>>>>>>>>>>>>>>>> database."
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Duration is missing. It should be there with the
>>>>>>>>>>>>>>>>> Date and Rows affected.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Status Bar*:
>>>>>>>>>>>>>>>>> - We should display Milliseconds as well in Query
>>>>>>>>>>>>>>>>> Complete.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> It will now display in <hr>:<min>:<sec>.<msec> format.
>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Total Rows: *N of N, *I always observe the same, can
>>>>>>>>>>>>>>>>> you please change it to *N *only, Or am I missing
>>>>>>>>>>>>>>>>> some scenario where it is changed?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> We're fetching rows on demand. "X of N" says total X rows
>>>>>>>>>>>>>>>> fetched till now but total N are available.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Data output*:
>>>>>>>>>>>>>>>>> - Default message "No data output......" should be
>>>>>>>>>>>>>>>>> shown when there are no rows/data, check the old behavior.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Extra space in the JSON Editor, even if I resize it,
>>>>>>>>>>>>>>>>> its height is not adjusted. Check the second screenshot
>>>>>>>>>>>>>>>>> - [image: Screenshot 2022-03-17 at 11.29.21 AM.png]
>>>>>>>>>>>>>>>>> [image: Screenshot 2022-03-17 at
>>>>>>>>>>>>>>>>> 11.29.59 AM.png]
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>> - *Explain*:
>>>>>>>>>>>>>>>>> - Old content should be cleared from the panel if
>>>>>>>>>>>>>>>>> we run the new query by clicking the play button. It should show an
>>>>>>>>>>>>>>>>> informative message, check the old behavior.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Macros*:
>>>>>>>>>>>>>>>>> - The close button should be right-aligned.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Help buttons are disabled.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The existing help button opens the query tool help. Query
>>>>>>>>>>>>>>>> tool help is already added on the toolbar.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *View/Edit Data*:
>>>>>>>>>>>>>>>>> - Clipboard issues.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Unable to edit table data even if the primary key is
>>>>>>>>>>>>>>>>> defined.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Select All rows is missing at the left corner of the
>>>>>>>>>>>>>>>>> 'Data Output' Panel.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Change some data and try to save if an error comes
>>>>>>>>>>>>>>>>> then Spinner is not cleared.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Filtered Rows not working. Click on the 'Filtered
>>>>>>>>>>>>>>>>> Rows ...' context menu.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Sort/Filter Dialog is missing.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The sort/filter dialog is present and opens when you click
>>>>>>>>>>>>>>>> the filter button. I have removed the "Sort/Filter" menu item which does
>>>>>>>>>>>>>>>> the same thing.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Select any cell of the table content, click on any
>>>>>>>>>>>>>>>>> filter menu 'Filter by selection' or 'Exclude by selection' multiple times.
>>>>>>>>>>>>>>>>> It updates the query every time and adds the condition which is not there
>>>>>>>>>>>>>>>>> previously.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Limit (100 rows, 500 rows ...) not working. View
>>>>>>>>>>>>>>>>> data of any table having 1000+ rows and then apply the limit.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I am not able to reproduce this. Works fine.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - *Themes*:
>>>>>>>>>>>>>>>>> - Check and Fix all the issues related to the theme.
>>>>>>>>>>>>>>>>> - [image: Screenshot 2022-03-17 at 1.43.01 PM.png].
>>>>>>>>>>>>>>>>> [image: Screenshot
>>>>>>>>>>>>>>>>> 2022-03-17 at 1.44.10 PM.png].
>>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>> - [image: Screenshot 2022-03-17 at 1.44.53 PM.png]
>>>>>>>>>>>>>>>>> [image: Screenshot
>>>>>>>>>>>>>>>>> 2022-03-17 at 1.45.54 PM.png]
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> *Code:*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Fix pep8 issues.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Fixed.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> - Can we fix the *Deprecation Warnings?*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I think those are coming from bootstrap. Need to check
>>>>>>>>>>>>>>>> that separately. Not related to the query tool.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> *Note: *Code review still remains, meanwhile you can
>>>>>>>>>>>>>>>>> start fixing the above issues.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Forgot to mention in initial mail - I have removed
>>>>>>>>>>>>>>>> dependency on Snap.svg and have written Explain SVG codes from scratch.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Wed, Mar 16, 2022 at 5:54 PM Aditya Toshniwal <
>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Attached is an updated one with few more improvements and
>>>>>>>>>>>>>>>>>> fixes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Wed, Mar 16, 2022 at 1:40 PM Aditya Toshniwal <
>>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Please find the attached patch :)
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Wed, Mar 16, 2022 at 12:16 PM Akshay Joshi <
>>>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Hi Aditya
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I think you forgot to attach the patch.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Tue, Mar 15, 2022 at 4:00 PM Aditya Toshniwal <
>>>>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Hi Hackers,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Attached is the initial patch that migrates the SQL
>>>>>>>>>>>>>>>>>>>>> Editor tool to React based. Change highlights:
>>>>>>>>>>>>>>>>>>>>> 1. Complete rewrite to React code.
>>>>>>>>>>>>>>>>>>>>> 2. UI improvements based on suggestions and requests.
>>>>>>>>>>>>>>>>>>>>> 3. Work towards stability and performance improvement.
>>>>>>>>>>>>>>>>>>>>> 4. Keep row numbers in view when scrolling
>>>>>>>>>>>>>>>>>>>>> horizontally. Fixes #3989
>>>>>>>>>>>>>>>>>>>>> 5. Fixed status bar at the bottom with useful details.
>>>>>>>>>>>>>>>>>>>>> Fixes #3253
>>>>>>>>>>>>>>>>>>>>> 6. Relocate GIS Viewer Button to the Left Side of
>>>>>>>>>>>>>>>>>>>>> Results Table. Fixed #6830
>>>>>>>>>>>>>>>>>>>>> 7. Allow to remove single history records. Refs #4113
>>>>>>>>>>>>>>>>>>>>> 8. Macros usability improvements. Ref #6969
>>>>>>>>>>>>>>>>>>>>> 9. Connection bar visibility issue. Fixes #7188
>>>>>>>>>>>>>>>>>>>>> 10. Query tool layout issues. Fixes #6725
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Please note, there are still few minor niggles at some
>>>>>>>>>>>>>>>>>>>>> places but the patch qualified to be reviewed. We will need a good amount
>>>>>>>>>>>>>>>>>>>>> of time to test this properly. So, I am sending the feature patch. JS
>>>>>>>>>>>>>>>>>>>>> test cases and documentation patches will follow soon.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Please review.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> [image: image.png]
>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect |
>>>>>>>>>>>>>>>>>>>>> *edbpostgres.com* <http://edbpostgres.com;
>>>>>>>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>>>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>>>
>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>
>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Thanks,
>>>>>>>>> Aditya Toshniwal
>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Thanks & Regards*
>>>>>>>> *Akshay Joshi*
>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>
>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Thanks,
>>>>>>> Aditya Toshniwal
>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>> <http://edbpostgres.com;
>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Thanks & Regards*
>>>>>> *Akshay Joshi*
>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>
>>>>>> *Mobile: +91 976-788-8246*
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Thanks,
>>>>> Aditya Toshniwal
>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>> <http://edbpostgres.com;
>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>
>>>>
>>>>
>>>> --
>>>> Thanks,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>> <http://edbpostgres.com;
>>>> "Don't Complain about Heat, Plant a TREE"
>>>>
>>>
>>>
>>> --
>>> *Thanks & Regards*
>>> *Akshay Joshi*
>>> *pgAdmin Hacker | Principal Software Architect*
>>> *EDB Postgres <http://edbpostgres.com>*
>>>
>>> *Mobile: +91 976-788-8246*
>>>
>>
>>
>> --
>> Thanks,
>> Aditya Toshniwal
>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>> <http://edbpostgres.com;
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres <http://edbpostgres.com>*
>
> *Mobile: +91 976-788-8246*
>
--
Thanks,
Aditya Toshniwal
pgAdmin Hacker | Software Architect | *edbpostgres.com*
<http://edbpostgres.com;
"Don't Complain about Heat, Plant a TREE"
Attachments:
[image/png] image.png (177.9K, 3-image.png)
download | view image
[image/png] Screenshot 2022-03-16 at 7.02.34 PM.png (25.0K, 4-Screenshot%202022-03-16%20at%207.02.34%20PM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 11.29.21 AM.png (70.5K, 5-Screenshot%202022-03-17%20at%2011.29.21%20AM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 11.29.59 AM.png (82.7K, 6-Screenshot%202022-03-17%20at%2011.29.59%20AM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 1.43.01 PM.png (315.4K, 7-Screenshot%202022-03-17%20at%201.43.01%20PM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 1.44.10 PM.png (105.7K, 8-Screenshot%202022-03-17%20at%201.44.10%20PM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 1.44.53 PM.png (49.7K, 9-Screenshot%202022-03-17%20at%201.44.53%20PM.png)
download | view image
[image/png] Screenshot 2022-03-17 at 1.45.54 PM.png (158.6K, 10-Screenshot%202022-03-17%20at%201.45.54%20PM.png)
download | view image
[application/octet-stream] RM6131.part9.patch (13.0K, 11-RM6131.part9.patch)
download | inline diff:
diff --git a/web/pgadmin/static/js/Theme/index.jsx b/web/pgadmin/static/js/Theme/index.jsx
index 2dbcadbe3..1f6be3d4c 100644
--- a/web/pgadmin/static/js/Theme/index.jsx
+++ b/web/pgadmin/static/js/Theme/index.jsx
@@ -372,6 +372,14 @@ function getFinalTheme(baseTheme) {
}
},
},
+ MuiSelect: {
+ icon: {
+ color: baseTheme.palette.text.primary,
+ '&.Mui-disabled': {
+ color: baseTheme.palette.text.muted,
+ }
+ },
+ },
MuiIconButton: {
root: {
color: baseTheme.palette.text.primary,
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolConstants.js b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolConstants.js
index a6635dc2d..ba6b038ca 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolConstants.js
+++ b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolConstants.js
@@ -36,7 +36,7 @@ export const QUERY_TOOL_EVENTS = {
CURSOR_ACTIVITY: 'CURSOR_ACTIVITY',
SET_MESSAGE: 'SET_MESSAGE',
ROWS_FETCHED: 'ROWS_FETCHED',
- SELECTED_ROWS_COLS_CHANGED: 'SELECTED_ROWS_COLS_CHANGED',
+ SELECTED_ROWS_COLS_CELL_CHANGED: 'SELECTED_ROWS_COLS_CELL_CHANGED',
DATAGRID_CHANGED: 'DATAGRID_CHANGED',
HIGHLIGHT_ERROR: 'HIGHLIGHT_ERROR',
FOCUS_PANEL: 'FOCUS_PANEL',
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/index.jsx b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/index.jsx
index 664497451..26079553a 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/index.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/index.jsx
@@ -8,7 +8,7 @@
//////////////////////////////////////////////////////////////
import { Box, makeStyles } from '@material-ui/core';
import _ from 'lodash';
-import React, {useState, useEffect, useCallback, useContext, useRef} from 'react';
+import React, {useState, useEffect, useMemo, useContext, useRef} from 'react';
import ReactDataGrid, {Row, useRowSelection} from 'react-data-grid';
import LockIcon from '@material-ui/icons/Lock';
import EditIcon from '@material-ui/icons/Edit';
@@ -19,7 +19,7 @@ import clsx from 'clsx';
import { PgIconButton } from '../../../../../../static/js/components/Buttons';
import MapIcon from '@material-ui/icons/Map';
import { QueryToolEventsContext } from '../QueryToolComponent';
-import PropTypes, { number } from 'prop-types';
+import PropTypes from 'prop-types';
import gettext from 'sources/gettext';
export const ROWNUM_KEY = '$_pgadmin_rownum_key_$';
@@ -99,15 +99,22 @@ const useStyles = makeStyles((theme)=>({
}));
export const RowInfoContext = React.createContext();
+export const DataGridExtrasContext = React.createContext();
function CustomRow(props) {
const rowRef = useRef();
+ const dataGridExtras = useContext(DataGridExtrasContext);
const rowInfoValue = {
rowIdx: props.rowIdx,
getCellElement: (colIdx)=>{
return rowRef.current?.querySelector(`.rdg-cell[aria-colindex="${colIdx+1}"]`);
}
};
+ if(!props.isRowSelected && props.selectedCellIdx > 0) {
+ dataGridExtras.onSelectedCellChange?.([props.row, props.viewportColumns?.[props.selectedCellIdx]]);
+ } else if(props.selectedCellIdx == 0) {
+ dataGridExtras.onSelectedCellChange?.(null);
+ }
return (
<RowInfoContext.Provider value={rowInfoValue}>
<Row ref={rowRef} {...props} />
@@ -116,7 +123,11 @@ function CustomRow(props) {
}
CustomRow.propTypes = {
- rowIdx: number,
+ rowIdx: PropTypes.number,
+ isRowSelected: PropTypes.bool,
+ selectedCellIdx: PropTypes.number,
+ row: PropTypes.object,
+ viewportColumns: PropTypes.array,
};
function SelectAllHeaderRenderer(props) {
@@ -134,9 +145,14 @@ SelectAllHeaderRenderer.propTypes = {
onAllRowsSelectionChange: PropTypes.func,
};
-function SelectableHeaderRenderer({column, selectedColumns, onSelectedColumnsChange}) {
+function SelectableHeaderRenderer({column, selectedColumns, onSelectedColumnsChange, isCellSelected}) {
const classes = useStyles();
const eventBus = useContext(QueryToolEventsContext);
+ const dataGridExtras = useContext(DataGridExtrasContext);
+
+ if(isCellSelected) {
+ dataGridExtras.onSelectedCellChange?.(null);
+ }
const onClick = ()=>{
eventBus.fireEvent(QUERY_TOOL_EVENTS.FETCH_MORE_ROWS, true, ()=>{
@@ -176,6 +192,7 @@ SelectableHeaderRenderer.propTypes = {
column: PropTypes.object,
selectedColumns: PropTypes.objectOf(Set),
onSelectedColumnsChange: PropTypes.func,
+ isCellSelected: PropTypes.bool,
};
function setEditorFormatter(col) {
@@ -345,14 +362,6 @@ export default function QueryToolDataGrid({columns, rows, totalRowCount, dataCha
});
}, [dataChangeStore, selectedColumns]);
- const onRowClick = useCallback((row, column)=>{
- if(column.key === ROWNUM_KEY) {
- onSelectedCellChange && onSelectedCellChange(null);
- } else {
- onSelectedCellChange && onSelectedCellChange([row, column]);
- }
- }, []);
-
function handleCopy() {
if (window.isSecureContext) {
eventBus.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_COPY_DATA);
@@ -360,22 +369,23 @@ export default function QueryToolDataGrid({columns, rows, totalRowCount, dataCha
}
return (
- <ReactDataGrid
- id="datagrid"
- columns={readyColumns}
- rows={rows}
- className={classes.root}
- headerRowHeight={40}
- rowHeight={25}
- mincolumnWidthBy={50}
- enableCellSelect={true}
- onRowClick={onRowClick}
- onCopy={handleCopy}
- components={{
- rowRenderer: CustomRow,
- }}
- {...props}
- />
+ <DataGridExtrasContext.Provider value={useMemo(()=>({onSelectedCellChange}), [])}>
+ <ReactDataGrid
+ id="datagrid"
+ columns={readyColumns}
+ rows={rows}
+ className={classes.root}
+ headerRowHeight={40}
+ rowHeight={25}
+ mincolumnWidthBy={50}
+ enableCellSelect={true}
+ onCopy={handleCopy}
+ components={{
+ rowRenderer: CustomRow,
+ }}
+ {...props}
+ />
+ </DataGridExtrasContext.Provider>
);
}
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/dialogs/FilterDialog.jsx b/web/pgadmin/tools/sqleditor/static/js/components/dialogs/FilterDialog.jsx
index efd1c9bc7..336b47d31 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/dialogs/FilterDialog.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/dialogs/FilterDialog.jsx
@@ -136,7 +136,7 @@ export default function FilterDialog({onClose, onSave}) {
getInitData={getInitData}
schema={filterSchemaObj}
viewHelperProps={{
- mode: 'edit',
+ mode: 'create',
}}
onSave={onSaveClick}
onClose={onClose}
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
index e971c0520..f766ff927 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
@@ -253,7 +253,7 @@ export function MainToolBar({containerRef, onFilterClick, onManageMacros}) {
eventBus.registerListener(QUERY_TOOL_EVENTS.DATAGRID_CHANGED, (isDirty)=>{
setDisableButton('save-data', !isDirty);
});
- eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CHANGED, (rows)=>{
+ eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CELL_CHANGED, (rows)=>{
setDisableButton('delete-rows', !rows);
});
eventBus.registerListener(QUERY_TOOL_EVENTS.SET_FILTER_INFO, (canFilter, filterApplied)=>{
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSet.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSet.jsx
index 1167ce2b3..3394edc89 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSet.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSet.jsx
@@ -730,11 +730,18 @@ export function ResultSet() {
const [selectedRows, setSelectedRows] = useState(new Set());
const [selectedColumns, setSelectedColumns] = useState(new Set());
const selectedCell = useRef([]);
- const setSelectedCell = (val)=>selectedCell.current=val;
+ const setSelectedCell = (val)=>{
+ selectedCell.current=val;
+ fireRowsColsCellChanged();
+ };
const [rowsResetKey, setRowsResetKey] = useState(true);
rsu.current.setEventBus(eventBus);
+ const fireRowsColsCellChanged = ()=>{
+ eventBus.fireEvent(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CELL_CHANGED, selectedRows.size, selectedColumns.size, selectedCell.current?.length);
+ };
+
const executionStartCallback = async (query, explainObject, external=false, reconnect=false)=>{
/* Reset */
eventBus.fireEvent(QUERY_TOOL_EVENTS.HIGHLIGHT_ERROR, null);
@@ -778,6 +785,30 @@ export function ResultSet() {
}
};
+ const triggerFilter = async (include)=>{
+ if(_.isEmpty(selectedCell.current)) {
+ return;
+ }
+ setLoaderText(gettext('Applying the new filter...'));
+ try {
+ let data = {
+ [selectedCell.current[1].key]: selectedCell.current[0][selectedCell.current[1].key],
+ };
+ if(include) {
+ await rsu.current.includeFilter(data);
+ } else {
+ await rsu.current.excludeFilter(data);
+ }
+ setLoaderText('');
+ eventBus.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_EXECUTION);
+ } catch(err) {
+ eventBus.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, err, {
+ checkTransaction: true,
+ });
+ setLoaderText('');
+ }
+ };
+
useEffect(()=>{
eventBus.registerListener(QUERY_TOOL_EVENTS.TRIGGER_STOP_EXECUTION, async ()=>{
try {
@@ -831,6 +862,7 @@ export function ResultSet() {
setLoaderText('');
}
});
+ eventBus.registerListener(QUERY_TOOL_EVENTS.TRIGGER_INCLUDE_EXCLUDE_FILTER, triggerFilter);
}, []);
useEffect(()=>{
@@ -841,36 +873,7 @@ export function ResultSet() {
}, [queryToolCtx.docker]);
useEffect(()=>{
- const triggerFilter = async (include)=>{
- if(_.isEmpty(selectedCell.current)) {
- return;
- }
- setLoaderText(gettext('Applying the new filter...'));
- try {
- let data = {
- [selectedCell.current[1].key]: selectedCell.current[0][selectedCell.current[1].key],
- };
- if(include) {
- await rsu.current.includeFilter(data);
- } else {
- await rsu.current.excludeFilter(data);
- }
- setSelectedCell([]);
- setLoaderText('');
- eventBus.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_EXECUTION);
- } catch(err) {
- eventBus.fireEvent(QUERY_TOOL_EVENTS.HANDLE_API_ERROR, err, {
- checkTransaction: true,
- });
- setLoaderText('');
- }
- };
- eventBus.registerListener(QUERY_TOOL_EVENTS.TRIGGER_INCLUDE_EXCLUDE_FILTER, triggerFilter);
- return ()=>eventBus.deregisterListener(QUERY_TOOL_EVENTS.TRIGGER_INCLUDE_EXCLUDE_FILTER, triggerFilter);
- }, [selectedCell.current]);
-
- useEffect(()=>{
- eventBus.fireEvent(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CHANGED, selectedRows.size, selectedColumns.size);
+ fireRowsColsCellChanged();
}, [selectedRows.size, selectedColumns.size]);
useEffect(()=>{
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
index 34c34c8db..bdab9e7d8 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/ResultSetToolbar.jsx
@@ -104,9 +104,9 @@ export function ResultSetToolbar({containerRef, canEdit, totalRowCount}) {
eventBus.registerListener(QUERY_TOOL_EVENTS.DATAGRID_CHANGED, (isDirty)=>{
setDisableButton('save-data', !isDirty);
});
- eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CHANGED, (rows, cols)=>{
+ eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CELL_CHANGED, (rows, cols, cells)=>{
setDisableButton('delete-rows', !rows);
- setDisableButton('copy-rows', (!rows && !cols));
+ setDisableButton('copy-rows', (!rows && !cols && !cells));
});
}, []);
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx
index 446075cd9..7e0e8118c 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/StatusBar.jsx
@@ -73,7 +73,7 @@ export function StatusBar() {
eventBus.registerListener(QUERY_TOOL_EVENTS.ROWS_FETCHED, (fetched, total)=>{
setRowsCount([fetched||0, total||0]);
});
- eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CHANGED, (rows)=>{
+ eventBus.registerListener(QUERY_TOOL_EVENTS.SELECTED_ROWS_COLS_CELL_CHANGED, (rows)=>{
setSelectedRowsCount(rows);
});
eventBus.registerListener(QUERY_TOOL_EVENTS.DATAGRID_CHANGED, (_isDirty, dataChangeStore)=>{
view thread (25+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: [pgAdmin][RM6131] Port query tool to React
In-Reply-To: <CAM9w-_kqHdBwXsF6sSEEMeTu5hvYTKJv_i_mfjNeWQOrm3qHig@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox