Commit Graph

277 Commits

Author SHA1 Message Date
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
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
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
Yogesh Mahajan
6410ae5f69
Fixed some more styling issues broken due to JSS changes. #7363 2024-06-20 17:18:38 +05:30
Akshay Joshi
2b04f3ca1d Fixed incorrect handling of the code smell for the reject API call 2024-06-17 18:22:38 +05:30
Akshay Joshi
5866da8194 Fixed SonarQube code smells. 2024-06-13 18:48:02 +05:30
Aditya Toshniwal
e03d65d547
Fixed an issue where query tool shortcuts for find/replace are not working. #7555 2024-06-13 17:26:47 +05:30
Akshay Joshi
dea5335ce5 Fixed the following SonarQube code smells:
1) Do not use the Array index in keys.
2) Import from the same module should be merged.
3) Mutable variables should not be exported.
4) Variables should not be initialized to undefined.
5) startswith or endswith method should be used.
6) Unwrap this unnecessarily grouped subpattern.

Additionally, addressed many other SonarQube rules.
2024-06-12 18:09:06 +05:30
Akshay Joshi
8857f0d179 Fix SonarQube code smells:
1) String literals should not be duplicated.
2) Prefer using an optional chain expression instead, as it's more concise and easier to read.
3) Expected the Promise rejection reason to be an Error.
2024-06-10 18:04:32 +05:30
Yogesh Mahajan
cc999ae5a5
Remove the usage of MUI makeStyles as it doesn't support React 18. #7363 2024-06-06 17:13:12 +05:30
Ahmad
5c30695d66
Fixed Typos 2024-05-23 12:52:41 +05:30
Pravesh Sharma
afc28d95cf
1. Disable ERD for system Catalogs. #5849
2. Disable Debugger for system catalogs. #6060
3. Fixed an issue where the keyboard shortcut for launching the debugger from Object Explorer was not working.
2024-05-08 15:29:01 +05:30
Aditya Toshniwal
b85d8c1446
Changes in Query Tool, Debugger, and ERD Tool shortcuts to remove the use of Accesskey which will allow them to be customized. #7192 2024-05-06 11:15:44 +05:30
Khushboo Vashi
f4761f55f7 Fixed Multi-Factor Authentication bypass vulnerability (CVE-2024-4215). #7425 2024-04-29 13:41:02 +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
Aditya Toshniwal
cc1ce09b73 More CodeMirror fixes. #7268
Fix query tool autocomplete results when cursor is in between the SQL query. #7299
Fix an issue in query tool where custom keyboard shortcuts are not working for some. #7305
2024-03-23 18:22:06 +05:30
Aditya Toshniwal
a5530f59f7 Fix sonarqube issues for the rule - 'If' statement should not be the only statement in 'else' block 2024-02-26 11:55:36 +05:30
Aditya Toshniwal
d3ede3151a
Upgrade CodeMirror from version 5 to 6. #7097 2024-02-21 11:15:25 +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
Akshay Joshi
0e0cbc40b8 Fixed SonarQube code smell Replace the unused local variable with '_'. 2024-01-24 18:33:43 +05:30
Yogesh Mahajan
a166f8dc89
Skip debugger test cases to fix "too many clients" error on github actions. 2024-01-18 16:41:18 +05:30
Akshay Joshi
740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +05:30
Aditya Toshniwal
c4a5f8d707 Fix a crash issue occurring when debugging a function with arguments when using pgAdmin with external config database. #6904 2023-11-15 17:42:58 +05:30
Aditya Toshniwal
85dd1e92ad Fix issues found when testing Flask upgrade and wcDocker changes. #6479 2023-11-08 18:07:32 +05:30
Aditya Toshniwal
ef0b30b1ca Continue fixing multiple UI issues found when testing wcDocker changes. #6479 2023-11-06 18:08:16 +05:30
Aditya Toshniwal
b11b2a2f50 Continue fixing multiple UI and SonarQube issues found when testing wcDocker changes. #6479 2023-10-27 15:51:45 +05:30
Aditya Toshniwal
3bcac26ff9 Fix multiple UI and SonarQube issues found when testing wcDocker changes. #6479 2023-10-26 12:06:28 +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
Akshay Joshi
4050545f7c Fixed an issue where the wrong message 'Current database has been moved or renamed' is displayed when debugging any function. #6482 2023-09-26 18:07:25 +05:30
Aditya Toshniwal
d6cddd8c29
Remove Bootstrap and jQuery from authentication pages and rewrite them in ReactJS. #6295 2023-06-30 16:08:33 +05:30
Khushboo Vashi
d98f411ea9
Show proper message if the debugger is stopped by the user. #6059 2023-04-20 17:05:05 +05:30
Khushboo Vashi
bc5e710d49
Fixed error while executing continue in debugging session after some time of debug execution. #5953 2023-04-03 15:28:11 +05:30
Khushboo Vashi
5cb64f7602
Fix Debugger restart issue. 2023-03-24 14:33:07 +05:30
Aditya Toshniwal
b923f5fcfa
Use fetch instead of axios to close connections in SQLEditor, ERD, Schema Diff and Debugger to ensure it completes. When closing a browser tab, axios does not guarantee AJAX request completion. #5894 2023-03-20 18:20:48 +05:30
Khushboo Vashi
366dd3a973
Remove psycopg2 completely. 2023-03-20 16:57:30 +05:30
Aditya Toshniwal
42ac0d577d
Add .ts and .tsx files under linter and fix linter issues. #5830 2023-03-16 17:22:26 +05:30
Khushboo Vashi
66c4b9d05a
Fix Debugger test cases. 2023-03-13 11:51:15 +05:30
Akshay Joshi
3c56c0e4b7 Revert "Update SQLAlchemy, Flask, Flask-SQLAlchemy, and other packages to current versions. #5901"
This reverts commit 31818bb67a.
2023-03-09 16:53:43 +05:30
Aditya Toshniwal
31818bb67a
Update SQLAlchemy, Flask, Flask-SQLAlchemy, and other packages to current versions. #5901
Remove the python version check from the requirements.txt.
2023-03-08 18:26:51 +05:30
Khushboo Vashi
5e0daccf76 Added support for psycopg3 along with psycopg2. #5011 2023-02-15 11:31:29 +05:30
Matěj Cepl
7a4951f211
Remove dependency on simplejson package. 2023-02-15 11:10:12 +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
Nikhil Mohite
a48828e7a3
Improve performance by removing signal-based zoom-in, zoom-out, etc functionality from the runtime environment. #5723 2023-01-17 17:18:35 +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
Mark Mayo
41508f7f67
python 3 updates
- Fix super() calls for python 3
- No need to inherit objects.
- No need for u at the start of strings
- Tidied up some brackets and f-strings too
2022-11-19 10:13:41 +05:30
Akshay Joshi
e17c50d304
Added support for storing configurations of pgAdmin in an external database. #1832 2022-10-20 16:18:41 +05:30
Nikhil Mohite
98c50afe8e
Ensure that the continue/start button should be disabled if the user stops the Debugger for the procedures. #5188 (#5353) 2022-09-23 11:11:23 +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