Commit Graph

245 Commits

Author SHA1 Message Date
Pravesh Sharma
b51eef12b7
Add an object menu option to disconnect all server and database connections. #1984 2024-11-06 15:52:31 +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
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
4457a6a6a1
Updated to the latest version of the Notistack library. #7501 2024-07-01 11:26:45 +05:30
Aditya Toshniwal
b1f70b02ff Update object explorer icons for EPAS and replication related nodes 2024-05-27 12:29:38 +05:30
Pravesh Sharma
fd65f1b644
Fixed all input boxes in pgAdmin to show browser auto-fill only where it is relevant. #2410 2024-04-24 11:27:08 +05:30
Akshay Joshi
30d2d1b23e Fixed the following code smells:
1) useState call is not destructured into value + setter pair.
2) A fragment with only one child is redundant.
3) Unnecessary '.apply()' and '.call()'.
4) Expected the Promise rejection reason to be an Error.
2024-04-09 19:18:56 +05:30
Yogesh Mahajan
102e0a9839
- Update MUI v4 to v5
- Remove the SCSS dependency completely and use MUI for theming.
- Update - date-fns, @date-io, notistack. Remove - popper.js, sass-loader.
- Cleanup webpack config.
- Port PSQL tool to use MUI themes instead of SCSS theme.
- Theme change will reflect realtime without refreshing pgAdmin.
2024-04-09 08:21:14 +05:30
Akshay Joshi
edec9adbfb
Fixed SonarQube code smell 'Unnecessary use of boolean literals in conditional expression'. 2024-04-08 17:19:51 +05:30
Khushboo Vashi
fbbbfe22dd Fixed a remote code execution issue in the validate binary path (CVE-2024-3116). #7326 2024-04-01 11:34:01 +05:30
Akshay Joshi
639a28fbfc Fixed code smell 'Prefer using an optional chain expression instead, as it's more concise and easier to read'. 2024-01-25 16:51:40 +05:30
Yogesh Mahajan
2d08b0dd13
Added configurable parameter to enable support for PasswordExecCommand in server mode. #6792 2024-01-12 17:34:40 +05:30
Akshay Joshi
30509d1bc1
Added copy server support, allowing the duplication of existing servers with the option to make certain modifications. #6085 (#7106)
Added copy server support, allowing the duplication of existing servers with the option to make certain modifications. #6085
2024-01-08 12:16:49 +05:30
Akshay Joshi
740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +05:30
Nikhil Mohite
a4e9f04a2e
Fixed an issue where changes done to a node using edit dialog are not reflecting on the properties tab if the properties tab is active. #7041 2023-12-27 11:06:04 +05:30
Akshay Joshi
a22b2a6074
Added keep-alive support for SSH sessions when connecting to a PostgreSQL server via an SSH tunnel. #7016 2023-12-19 16:16:03 +05:30
Aditya Toshniwal
0358298090 Fix failing feature tests 2023-11-16 21:01:43 +05:30
Aditya Toshniwal
c9db4a0d16 Add DROP SQL for foreign keys in SQL generated by ERD when using WITH DROP option. #5770 2023-11-16 16:55:26 +05:30
Aditya Toshniwal
75a2d880f6 More fixes for UI issues found when testing wcDocker changes. #6479 2023-11-14 16:47:40 +05:30
Anil Sahoo
695c008245
Remove the max length of 255 from password exec command in server configuration dialog. #6877 2023-11-06 11:55:29 +05:30
Aditya Toshniwal
862f101772
Significant changes to use ReactJS extensively.
1. Replace the current layout library wcDocker with ReactJS based rc-dock. #6479
2. Have close buttons on individual panel tabs instead of common. #2821
3. Changes in the context menu on panel tabs - Add close, close all and close others menu items. #5394
4. Allow closing all the tabs, including SQL and Properties. #4733
5. Changes in docking behaviour of different tabs based on user requests and remove lock layout menu.
6. Fix an issue where the scroll position of panels was not remembered on Firefox. #2986
7. Reset layout now will not require page refresh and is done spontaneously.
8. Use the zustand store for storing preferences instead of plain JS objects. This will help reflecting preferences immediately.
9. The above fix incorrect format (no indent) of SQL stored functions/procedures. #6720
10. New version check is moved to an async request now instead of app start to improve startup performance.
11. Remove jQuery and Bootstrap completely.
12. Replace jasmine and karma test runner with jest. Migrate all the JS test cases to jest. This will save time in writing and debugging JS tests.
13. Other important code improvements and cleanup.
2023-10-23 17:43:17 +05:30
Aditya Toshniwal
3a62fc5a2a Fix issues found during testing. #6229, #6836 2023-10-12 16:58:46 +05:30
Aditya Toshniwal
10adb6a11b
Add support for setting prepare threshold in server connection. #6285 2023-10-12 16:54:06 +05:30
Aditya Toshniwal
fc411bfc49
Allow setting custom username for shared servers, with default as username of server being shared. #6229 2023-10-11 12:56:06 +05:30
Akshay Joshi
9666bd6c8d 1) Added 'load_balance_hosts' connection string parameter for PG 16 and above. #6802
2) Added EPAS 11 support back as its EOL is in November.
2023-10-04 17:55:37 +05:30
Anil Sahoo
7d7b8a71c1
1. Added Expression to CREATE INDEX. #2595
2. Added support for ALTER INDEX column statistics. #6375
2023-08-01 12:37:47 +05:30
Pravesh Sharma
62056cab14
Fixed sonaqube security smells and bugs
1. Delete unreachable code or refactor the code to make it reachable.
2. Unexpected var, use let or const instead.
3. Remove useless assignment to variable.
4. Define a constant instead of duplicating the literal
5. Remove commented out code
2023-07-10 10:36:15 +05:30
Akshay Joshi
ca01116700 Typecast some parameters before sending to GUI in server module. 2023-06-23 19:15:21 +05:30
Aditya Toshniwal
466e969776
Fix an issue where object explorer tree crashes occasionally. #5306 2023-06-21 11:05:58 +05:30
Anil Sahoo
789f169135
Add Password exec command and Expiration time to server export JSON and also allow them to import. #6258 2023-06-15 11:49:06 +05:30
Yogesh Mahajan
b6924a84d6
Fixed error occurring while opening query tool after togging Resume/Pause wal replay. #6026 2023-05-23 15:30:44 +05:30
Yogesh Mahajan
6c7f5d1a6b
Ensure that connection heartbeat signals are stopped on server disconnect. #6147 2023-05-17 12:07:49 +05:30
Yogesh Mahajan
30107e38f3
Ensure that "pause replay of wal"/"resume replay of wal" are enabled/disabled appropriately. #6026 2023-05-16 11:28:48 +05:30
Akshay Joshi
140494454a Fixed linter errors after eslint upgrade. 2023-03-29 17:22:50 +05:30
Aditya Toshniwal
9924fae378
Nomenclature changes:
1. Rename "Properties..." context menu option of object to "Edit Object...".
2. Rename "Browser" tree to "Object Explorer". #4734
2023-03-28 22:20:14 +05:30
Anil Sahoo
5303a36ff4
Fixed an issue where Clear Saved Password should be disabled if the password is already cleared. #5773 2023-02-14 15:47:40 +05:30
Aditya Toshniwal
be72cee6be
Fix failing jasmin test cases. #5701 2023-02-10 14:47:29 +05:30
Aditya Toshniwal
713ddb5f62
Remove usage of jQuery in pgAdmin.
Remove usage of Bootstrap in React components. #5701
2023-02-10 10:28:39 +05:30
Khushboo Vashi
7a18ceab64
Fixed the server heartbeat logging issue when server is removed. #5567 2023-01-30 15:39:34 +05:30
Akshay Joshi
a7cf698d09
1) Added support for setting PostgreSQL connection parameters. #4728
2) Fixed an issue where Kerberos authentication to the server is not imported/exported. #5732
3) Increase the length of the value column of the setting table. #5746
4) Upgrade Flask-Migrate to 4.0.0. #5525
2023-01-23 17:19:59 +05:30
Khushboo Vashi
6ae91592d1
Fix orphan database connections resulting in an inability to connect to databases. #5567 2023-01-19 15:57:02 +05:30
Akshay Joshi
98184e5835 Update copyright notices for 2023 2023-01-02 11:53:55 +05:30
Nikhil Mohite
2480d08e0f
Added native menu support in desktop mode. #5503 2022-12-06 18:16:36 +05:30
Aditya Toshniwal
8d74de09cc
Remove all traces of Backbone, Underscore. #5493 2022-11-21 10:54:15 +05:30
aelgn
a62fc2fbff
Added support for IAM token based authentication for AWS RDS or Azure DB. #3491 2022-10-15 14:49:04 +05:30
Akshay Joshi
01a9a41bd9 1) Warn the user when connecting to a server that is older than pgAdmin supports.
2) Fixed Debugger API test cases.
2022-09-15 13:12:46 +05:30
Aditya Toshniwal
93f5fbc797 Fixed SonarQube issues. 2022-09-12 11:28:00 +05:30
Khushboo Vashi
ca8b5c68fd Remove Backgrid and Backform. Fixes #6134 2022-09-10 14:22:49 +05:30
Aditya Toshniwal
b128ba2f57 Fixed a couple of SonarQube issues. 2022-09-10 14:04:28 +05:30
Akshay Joshi
3b95a416ca Fixed 'Remove the unnecessary boolean literals' code smell. 2022-09-09 15:23:18 +05:30