Commit Graph

1243 Commits (master)

Author SHA1 Message Date
Akshay Joshi 96128f6a15 1) Enable the ability to close the 'Welcome' tab in the Query Tool/PSQL Workspace. #8436
2) Fixed an issue where the User Management and Change Password dialogs were hidden when selecting a menu while a workspace other than 'Default' was active. #8418
3) Revert the change of OS from Ubuntu 22.04 to 24.04 for github action failure.
2025-02-17 18:28:56 +05:30
Anil Sahoo e2a80b2465
Fixed an issue where pasting text containing JSON data into the query tool grid would result in incorrect parsing. #8296 2025-02-17 17:41:05 +05:30
Yogesh Mahajan 740a50680e
Fix the following SonarQube issues:
1. Do not use the Array index in keys
2. Visible, non-interactive elements with click handlers must have at least one keyboard listener.
3. Add replacement fields or use a normal string instead of an f-string.
4. Add a parameter to the parent lambda function
2025-02-13 11:56:10 +05:30
Akshay Joshi 58bb14253e Revert changes from the previous commit to restore the 'Object Explorer' title. 2025-02-11 20:18:10 +05:30
Akshay Joshi eb7c3ef361 Workspace Layout Update - Enhanced Query Tool and PSQL Behaviour:
With these changes, the Query Tool and PSQL tabs will now open in the same active workspace where the action is initiated.
2025-02-11 15:36:03 +05:30
Pravesh Sharma 2c37ff2893
Fixing following SonarQube Issues:
1. Ternary operators should not be nested.
2. "Exception" and "BaseException" should not be raised.
2025-02-11 12:03:43 +05:30
Yogesh Mahajan ebeb768a53
Ensure the double-click event is listened to even if the user clicks after the label. 2025-01-30 10:26:11 +05:30
Akshay Joshi 228156d0b6 1) Fixed an issue where the ad-hoc server with SSH Tunnel repeatedly prompted for the password.
2) Fixed an issue where the SSH Tunnel password was not being saved in the External Database if its encoded length exceeded 64 characters.
3) 'Save Password' check box should be hidden for SSH Tunnel password on the Welcome page.
2025-01-29 19:43:23 +05:30
Akshay Joshi 1607875a08 Fixed issues for Workspaces:
1) Unable to add ad-hoc server with External Database.
2) Server list not updating when password is saved on the Welcome page.
3) Icons for Query Tool and PSQL missing on the Welcome page.
4) Error when removing connection parameters.
2025-01-29 17:14:25 +05:30
Akshay Joshi 22b7ae6cdc 1) Fixed an issue where loadingText message is not shown in SchemaView.
2) Fixed SonarQube Bugs and Code Smells.
2025-01-24 13:58:21 +05:30
Akshay Joshi 84a8a522e3
1) Fixed an issue where Default Privileges and Privileges not working correctly. #8369
2) Fixed <br/> tag visible issue.
2025-01-22 19:40:13 +05:30
Khushboo Vashi 90eff9a596 Pass an empty string for the table cell tooltip if the cell value is an object. 2025-01-20 16:53:01 +05:30
Yogesh Mahajan 98f6b1ff12
Ensure the double-click event is not ignored in the browser tree. 2025-01-20 11:21:21 +05:30
Khushboo Vashi 72a3ed9068 Do not display the tooltip if the table cell value is an object. 2025-01-17 15:32:11 +05:30
Akshay Joshi bf69b16f1f 1) Added the MAINTAIN privilege for PostgreSQL version 17 and above. #8332
2) Updated JavaScript Dependecies.
2025-01-14 14:18:07 +05:30
Aditya Toshniwal a9974b418c Fixed an issue where cell background color is removed when copied in query tool data output grid. #8273 2025-01-09 15:37:20 +05:30
Rohit Bhati de6fbe7725
Fixed a button focus issue found while testing the dialog button changes. #6513 2025-01-08 17:22:11 +05:30
Khushboo Vashi 172edaa227
Fix an issue where wrong information is shown after using the filter on the Dashboard> State tab. #8320 2025-01-08 12:43:50 +05:30
Akshay Joshi 964d211260 Copyright updated for 2025 2025-01-01 11:26:42 +05:30
Rohit Bhati 7a9a45b065
Fixed an issue where tooltip on a dropdown button is blocking access to dropdown menu. #8255 2025-01-01 10:31:48 +05:30
Rohit Bhati 8af25ba0c1
Change button labels and color in delete confirmation dialog for all objects to improve UX. #6513 2024-12-18 17:25:36 +05:30
Aditya Toshniwal e84f4cd35b Fix an issue where view/edit tool is not opening in workspace layout.
Fixed few other theme related issues.
2024-12-17 17:03:37 +05:30
Akshay Joshi fe6e21a08b
Enhanced pgAdmin 4 with support for Workspace layouts. #7708 2024-12-16 14:52:56 +05:30
Aditya Toshniwal 9e58717321 Fix text wrapping issue for tags feature. #8192 2024-12-09 18:04:47 +05:30
Aditya Toshniwal 60078c37a3 Add a new config MAX_SERVER_TAGS_ALLOWED to limit the number of tags on server node. #8192 2024-12-06 12:16:15 +05:30
Rohit Bhati 621a48c642
More fixes related to query tool prompting for unsaved changes when there are no changes. #8127 2024-12-05 19:03:31 +05:30
Aditya Toshniwal bd2a484c2f
Added support for adding tags on a server node. #8192 2024-12-05 12:18:26 +05:30
Aditya Toshniwal 657b0f82ec
Fixed an issue where query tool throws syntax error if a newly added row is untouched and saved. #8028
Fixed an issue where auto-width of wide columns in data output is incorrectly calculated. #8158
2024-11-28 14:18:13 +05:30
Anil Sahoo cd2f48aeb1
Fixed an issue in schema diff where an error message popup was showing some garbage without any info. #8098 2024-11-28 10:16:41 +05:30
Aditya Toshniwal 88e515093c
Show auto-complete column names in filtered rows dialog of table and filter options of view/edit data tool. #3751
Allow setting NULL ordering for columns in view/edit data filter dialog. #3317
2024-11-28 10:13:57 +05:30
Pravesh Sharma 9ef5a53790
Add a user preference to enable/disable alternating row background colors in the data output of query tool. #8134
Fixed some theme related issues.
2024-11-27 11:23:13 +05:30
Aditya Toshniwal da530824d6 Fixed an issue where indent with space was not aligning to next tab position. #7486 2024-11-25 16:42:07 +05:30
Aditya Toshniwal ea693396b8
Update MUI from v5 to v6 2024-11-25 16:36:21 +05:30
Anil Sahoo 6d5b1673e6
Fix SonarQube code smells for PgTree directory. 2024-11-19 15:45:00 +05:30
Aditya Toshniwal 296befc881 Code refactoring at multiple places to improve re-usability 2024-11-14 14:16:38 +05:30
Aditya Toshniwal 00d3aaa1fd Refactor menu building code to support sub-menus of any depth 2024-11-14 13:36:42 +05:30
Aditya Toshniwal f9d881ffa6 Fix GUI test cases failing because of previous commit 2024-11-08 18:09:39 +05:30
Aditya Toshniwal 6fcc4ae6a2 More fixes for issues found while testing query tool pagination changes. #1780 2024-11-08 15:48:24 +05:30
Aditya Toshniwal 3417186df7 Fix issues found while testing pagination changes. #1780 2024-11-07 18:02:39 +05:30
Pravesh Sharma b51eef12b7
Add an object menu option to disconnect all server and database connections. #1984 2024-11-06 15:52:31 +05:30
Pravesh Sharma 2f4cae35bd
Updated the react-menu library from v2 to v4. #8061 2024-10-30 17:08:24 +05:30
Yogesh Mahajan 2cc8f5f272
Ensure server connection is successful for sslrootcert=system in server configuration. #7907 2024-10-14 16:17:46 +05:30
Aditya Toshniwal 8c45dea975 Fixed an issue where graphical explain keeps the node details open even after plan changed. #7993 2024-10-10 10:50:11 +05:30
Rohit Bhati 509c696aa3
Fixed an issue where the copy shortcut was not working in the Query Tool data grid. #7920 2024-10-09 17:06:51 +05:30
Rohit Bhati d736f4266c
Fixed an issue where default EOL in the query tool should be based on the OS. #7393 2024-10-03 17:29:58 +05:30
Aditya Toshniwal c6d7a0a8da
Add missing eslint React rules and fix the linter errors. 2024-10-01 16:32:04 +05:30
Ashesh Vashi 15c37b620e
Fixed issues reported in #7958
* Fixed issues reported in #7954

- Search wasn't working as we were using the wrong row-index, while
  rendering it.
- Fixed the CSS issue with the alignment of the search input box.
- Pass the row object while rendering the 'DataRow' component, to
  improve the performance as it repeatedly calls the filtering function for each row.
- Changed the order of the validators on a field to prioritize the
  'empty' string validator over the unique-id validator in a
  collection.
- Use 'row.index' instead of rowId, while rendering a grid row
2024-10-01 12:06:59 +05:30
Pravesh Sharma 535c7eeef8
Fixed an issue where the dock layout was not saved upon closing a tab. #7919 2024-09-27 16:22:48 +05:30
Rohit Bhati 4cb0f87dfd
Added support for auto-detecting and setting the End-of-line character (LF/CRLF) in the query tool editor. #7393 2024-09-24 16:39:08 +05:30
Ashesh Vashi 1f53baee8f
Fixed the dynamic column updation in the Unique & Primary Keys while creating a table.
* Updated the columns for the unique and primary keys while creating a table.
Use the 'editable' option for a Cell instead of 'disabled'.

* Don't need to define the hidden member as fields in GridHeaderSchema

* Updated the columns for the exclusion constraints while creating a
 table.

* Signaled the relevant field, when column options have changed, for all
the children of a table.

* Use current snapshot of data for the GrigFormHeadeer

* Fixed the styling for the search input box

* Don't check for the 'colOptions.editable' flag, as it could be
indirect call as well.
2024-09-19 18:57:09 +05:30
Ashesh Vashi b0cd028ff8
Fixed an issue introduced due to reloading of the tree due to changes in particular preferences (#7942)
* Fix an issue - when the object browser tree is being recreated due to reloading for changes in some of the preferences. Tree object returns object from the previous instance as 'selected', but - it does not have the 'treeNodeInfo' available. In this special case - we would consider that there is no node selected at that particular moment, and pass information accordingly.

* Fixed 'New Connection' dialog issue after connecting a disconnected server.

* Disable the 'Add' button in the GridHeader with form, when 'canAdd'
flag is set to false.

* Convert the access path to string array for correct comparision.

* Check the access path type before comparison.
When language is 'c', set the 'code' block read-only.

* Enabled 'Strict' control for EPAS >= 95
2024-09-18 20:55:01 +05:30
Aditya Toshniwal 100f59f78b Fixed an issue where "Quit App" confirmation modal in desktop app is not respecting "Confirm on close or refresh?". #7890 2024-09-18 16:43:57 +05:30
Aditya Toshniwal 23ea201325 Fixed an issue where graph visualizer pie chart was showing X axis, Y axis and grid lines. 2024-09-18 15:07:29 +05:30
Ashesh Vashi 441cc57bb8
Don't show 'Types of objects' for the 'Cluster' operation. Fixes #7884 2024-09-18 07:48:09 +05:30
Ashesh Vashi 315d1a40a4
Fixes issues #7884
* Introduced a 'exclude' option in the 'Field' to exclude it from the
change completely. Use the option 'exclude' to add field
'notNullColumns', which will be excluded from the data, but - can be
used to force rerender the 'Not Null Columns' select control on
change of it.

* Fixed the linter issue

* Rerender the cell as well, when dependent changes values. (#7884)

* Listen for the depenent changes even for the non-visible controls

* Use 'useRef' on every rendering to avoid the React 'Something wrong' page
2024-09-16 17:55:43 +05:30
Ashesh Vashi 92dd13e72a
Introduced a 'exclude' option in the 'Field' to exclude it from the change.
* Introduced a 'exclude' option in the 'Field' to exclude it from the
change completely. Use the option 'exclude' to add field
'notNullColumns', which will be excluded from the data, but - can be
used to force rerender the 'Not Null Columns' select control on
change of it.

* Fixed the linter issue
2024-09-16 15:28:33 +05:30
Akshay Joshi 53760dbf59 Fixed tree related issues. 2024-09-16 10:09:28 +05:30
Ashesh Vashi 5e96f0fd61
Fixes the Variable Schema UI issues and InlineView bug reported in #7884
* Show the icon for the 'Reset' button. (Reference #7884)

* Reload the server list after connecting to a server in the 'New
connection' dialog (QueryTool). (Reference: #7884)

* Pass the grid path during the bulk update (click on a radio action)

* Don't assign the cell value to the 'rowValue' variable.

* Don't rely on the 'optionsLoaded' for setting the variable types as it
is loaded asynchronously, and variable types data may not be available
while rendering the 'value' cell. (Fixes #7884)

* Fixed a type while checking for the 'inline-group'. fixes (#7884)

* 'vnameOptions' can be a Promise function too, hence - taken care accrodingly.

* Introduced a parameter 'reloadOnDepChanges' in the BaseSchemaUI field
to force reload the control on value change for one of the
dependencies.

* Reload on the components in case of dependent value changes.

* Introduced 'useSchemaStateSubscriber', which generates a state
subscriber mananager instance. It helps multiple subscribers in a
single control as we could have multiple subscribe within a control.
(For example - value, options, errors, etc).

* Fixed all the issues reported (#7884)
2024-09-16 00:04:37 +05:30
Ashesh Vashi e21911b1c6
All the issues are fixed reported in #7884
* Show the icon for the 'Reset' button. (Reference #7884)

* Reload the server list after connecting to a server in the 'New
connection' dialog (QueryTool). (Reference: #7884)

* Pass the grid path during the bulk update (click on a radio action)

* Don't assign the cell value to the 'rowValue' variable.
2024-09-11 12:21:41 +05:30
Ashesh Vashi e9af0c3226
Improved the extendability of the SchemaView and DataGridView. (#7876)
Restructured these modules for ease of maintenance and apply the single
responsibility principle (wherever applicable).

* SchemaView

 - Split the code based on the functionality and responsibility.
 - Introduced a new View 'InlineView' instead of using the
   'nextInline' configuration of the fields to have a better, and
   manageable view.
 - Using the separate class 'SchemaState' for managing the data and
   states of the SchemaView (separated from the 'useSchemaState'
   custom hook).
 - Introduced three new custom hooks 'useFieldValue',
   'useFieldOptions', 'useFieldError' for the individual control to
   use for each Schema Field.
 - Don't pass value as the parameter props, and let the
   'useFieldValue' and other custom hooks to decide, whether to
   rerender the control itself or the whole dialog/view. (single
   responsibility principle)
 - Introduced a new data store with a subscription facility.
 - Moving the field metadata (option) evaluation to a separate place
   for better management, and each option can be defined for a
   particular kind of field (for example - collection, row, cell,
   general, etc).
 - Allow to provide custom control for all kind of Schema field.

* DataGridView

 - Same as SchemaView, split the DataGridView call into smaller,
   manageable chunks. (For example - grid, row, mappedCell, etc).
 - Use context based approach for providing the row and table data
   instead of passing them as parameters to every component
   separately.
 - Have a facility to extend this feature separately in future.
   (for example - selectable cell, column grouping, etc.)
 - Separated the features like deletable, editable, reorder,
   expandable etc. cells using the above feature support.
 - Added ability to provide the CustomHeader, and CustomRow through the
   Schema field, which will extend the ability to customize better.
 - Removed the 'DataGridViewWithHeaderForm' as it has been achieved
   through providing 'CustomHeader', and also introduced
   'DataGridFormHeader' (a custom header) to achieve the same feature
   as 'DataGridViewWithHeaderForm'.
2024-09-09 14:27:31 +05:30
Pravesh Sharma f88ca891fa
Added feature to restore preferences to their default values. #1900 2024-08-30 12:24:24 +05:30
Aditya Toshniwal 1a1734cf5c Allow running non-continuous selected SQL code blocks in the query tool. #7293 2024-08-29 12:41:58 +05:30
Yogesh Mahajan 1257ec9969
Revamp the current password saving implementation to keyring and reducing repeated OS user password prompts. #7076
The new implementation will store the master password in the keyring instead of storing each and every server password separately. The master password will be used to encrypt/decrypt server password when storing in the pgAdmin config DB.
2024-08-22 16:44:57 +05:30
Ashesh Vashi 8cf316b853
Fixed some of the issues reported due to introduction of the custom hook 'useSchemaState'. #7776 2024-08-19 09:53:00 +05:30
Aditya Toshniwal 242dd48cbd Improve code highlighting in query editor. #7748 2024-08-14 16:48:51 +05:30
Pravesh Sharma 654dc0e2d7
Fixed an issue where the value in the find box is not updating with selected text in editor if find is already open and re-triggered. #7775 2024-08-06 11:59:22 +05:30
Ashesh Vashi 52af8d3e49
Introduce custom React Hook useSchemaState to simplify SchemaView component. #7776
Changes include: 
- Simplify current SchemaView code
- Add ability to reuse the schema data & state management implementation outside the SchemaDialogView component.
- Further split components in small and manageable separate files.
- Removed the 'DepListenerContext' context as there was no need for separate context.
- Added a reload functionality in the 'useSchemaState'
- Changes in feature tests.
2024-08-02 09:59:01 +05:30
Aditya Toshniwal c6e7ce03cc
Upgrade react-data-grid fork to latest and change pgAdmin accordingly. #7705 2024-07-31 19:12:36 +05:30
Kundan c45fb47b08
Make PgTreeView react component more customisable 2024-07-31 14:07:47 +05:30
Khushboo Vashi 1fcb1f0228 Fix Dashboard UI issues. 2024-07-25 12:43:02 +05:30
jcodeio 70a7c42be1
Set the MFA OTP field to be a normal textbox to eliminate the save password prompt. 2024-07-24 15:00:27 +05:30
Khushboo Vashi 3aedae1436 Call loadNextPage function only when it is required while loading the table. 2024-07-22 14:15:03 +05:30
Pravesh Sharma 3ec676194b
Fixed an issue where boolean values in node details of graphical explain plan were not interpreted correctly. #7662 2024-07-18 17:59:58 +05:30
Rohit Bhati 8030bc708b
Add support for highlighting selection matches in the query editor. #7530 2024-07-18 17:51:20 +05:30
Khushboo Vashi c9cc5257c7 Fix Server Log minor UI issues. 2024-07-18 09:40:49 +05:30
Aditya Toshniwal 8e16e000c3 Fix issues found in electron testing. #7494 2024-07-16 20:29:10 +05:30
Anil Sahoo 30051f3257
Fixed an issue where Reassign/Drop Owned dialog not opening for Role. #7663 2024-07-16 17:42:16 +05:30
Yogesh Mahajan c4a52687b6
Ensure that pgAdmin works when opened in an iframe. #7681 2024-07-16 16:32:52 +05:30
Khushboo Vashi b303693ae8 Fix Dashboard minor UI issues.
Fix the issue where PG logs doesn't display in CSV or JSON format even if it gets selected through the UI.
2024-07-11 10:26:42 +05:30
Aditya Toshniwal cd6ff48cc0 Fix query tool, ERD closing issue in Electron. #7494 2024-07-10 15:01:35 +05:30
Aditya Toshniwal dbdea181a9 Fixed an issue where pop-up notifications from Object Explorer wouldn't get dismissed automatically if the Query Tool was opened. #6571 2024-07-09 16:25:04 +05:30
Aditya Toshniwal 760e38293c Fix issues found during Electron testing. #7494
Fix application crash when using users dialog. #7607
2024-07-08 19:24:29 +05:30
Aditya Toshniwal dcfef154ce
- Set the browser target to ES6 and reduce the JS bundle size considerably
- Upgrade ESLint to v9.x and migrate the .eslintrc.js file to make it work
2024-07-04 18:25:47 +05:30
Pravesh Sharma 10b2e91e29
Update react-diagrams library which is used in ERD to the latest version. #7644
Added patch for DataGridView failing when adding a new row.
2024-07-03 18:19:27 +05:30
Khushboo Vashi 4f415f9768
Added support for viewing PostgreSQL Server Logs in Text, CSV and JSON formats. #3981 2024-07-03 16:17:29 +05:30
Aditya Toshniwal f8fa1cf6d6
- Fix few SonarQube issues.
- Cleanup NW.js related stuff.
2024-07-02 10:34:30 +05:30
Aditya Toshniwal 91eb60a363
Replace pgAdmin NW.js container with Electron container. #7494 2024-07-01 11:27:42 +05:30
Pravesh Sharma 4457a6a6a1
Updated to the latest version of the Notistack library. #7501 2024-07-01 11:26:45 +05:30
Pravesh Sharma 391db5131d
Fixed an issue where sorting the database activity table on the dashboard by any column caused the details to expand in the wrong position. #7554 2024-06-28 14:47:26 +05:30
Pravesh Sharma 62a61b403e
Fixed an issue where users could not autofill their saved passwords in the connect server dialog in the browser. #7627 2024-06-28 14:44:39 +05:30
Aditya Toshniwal feb3093c6d
Automatically apply virtualization in the DataGridView of SchemaView if the schema contains only one collection. #7607 2024-06-27 13:21:18 +05:30
Akshay Joshi 7d0bbf30ec Fixed the issue causing the 2FA dialog to appear distorted. 2024-06-25 14:46:30 +05:30
Yogesh Mahajan a8f0f5bb4f Fix one more styling issue broken due to JSS changes. #7363 2024-06-24 10:44:05 +05:30
Aditya Toshniwal 44d40f0785 Fixed an issue where delete button in Users data was enabled for incorrect rows. #7616 2024-06-24 10:31:47 +05:30
Yogesh Mahajan 6410ae5f69
Fixed some more styling issues broken due to JSS changes. #7363 2024-06-20 17:18:38 +05:30
Aditya Toshniwal 9026f46220 Fixed an issue where object explorer toolbar button not showing shortcut in the tooltip.#7316 2024-06-20 11:31:11 +05:30
Yogesh Mahajan fedbe550db
Optimise logic used for OS theme syncing. #5932 2024-06-20 11:05:47 +05:30
Aditya Toshniwal 31a91409a0 Fixed incorrect sorting of size in statistics tab. #7542 2024-06-19 18:27:43 +05:30
Aditya Toshniwal 9279393dcd Add missing files from last commit. #7593 2024-06-19 17:57:34 +05:30
Yogesh Mahajan 95ffd1b9a1
More fixes for issues reported while testing changes related to makeStyle JSS changes and auto-theme. #7363 2024-06-19 11:54:18 +05:30