Commit Graph

114 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
Pravesh Sharma
f88ca891fa
Added feature to restore preferences to their default values. #1900 2024-08-30 12:24:24 +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
Khushboo Vashi
c9cc5257c7 Fix Server Log minor UI issues. 2024-07-18 09:40:49 +05:30
Yogesh Mahajan
c4a52687b6
Ensure that pgAdmin works when opened in an iframe. #7681 2024-07-16 16:32:52 +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
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
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
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
b0e7847962
Fixed bugs found while testing makeStyles JSS changes. #7363 2024-06-17 15:45:40 +05:30
Akshay Joshi
5866da8194 Fixed SonarQube code smells. 2024-06-13 18:48:02 +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
Aditya Toshniwal
0e786c519e Replace the current FontAwesome based PSQL tool icon with MUI Terminal icon. #7472 2024-05-14 11:05:27 +05:30
Khushboo Vashi
2324337149 Trigger the browser tree destroyed event so the consequences of destroying the tree are handled properly. 2024-04-26 11:59:53 +05:30
Yogesh Mahajan
f0185fbe7f
Fix issues reported while testing MUI5 library update. 2024-04-17 17:31:55 +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
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
29e85a6b06 Fix SonarQube issues 2024-02-22 16:54:20 +05:30
Anil Sahoo
47b2bc8a83
1) Fix the tabbed panel backward/forward shortcut for tabs. #6808
2) Remove shortcuts for the dialog tab backward/forward.
3) Used hotkeys.js in place of mousetrap for listening to keyboard shortcuts.
2024-02-09 16:33:30 +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
Pravesh Sharma
b28df5874e
Fixed an issue where multiple errors were showing if user does not have connect privileges. #7073 2024-01-12 17:20:51 +05:30
Akshay Joshi
740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +05:30
Aditya Toshniwal
c8d6ff8a6d Fixed an issue where query tool title did not change after 'Save As' until any new change is made. #6193 2023-12-21 17:41:27 +05:30
Nikhil Mohite
04580652ab
Allow users to convert View/Edit table into a Query tool to enable editing the SQL generated. #5908 2023-12-19 15:52:57 +05:30
Pravesh Sharma
e64f4f632d
1. Fixed an issue where all rows and filter rows buttons of object explorer toolbar were disabled for views and other supported nodes. #7011
2. Fixed an issue where View/Edit data -> Filter dialog was not editable for catalog objects.
2023-12-04 17:19:05 +05:30
Aditya Toshniwal
16d1df2a1b Fixed an issue where schema diff tool is not loading preferences on start. #7017 2023-11-30 15:31:23 +05:30
Aditya Toshniwal
19cbe8c39f More fixes related to rc-dock changes. #6479 2023-11-20 17:45:17 +05:30
Aditya Toshniwal
75a2d880f6 More fixes for UI issues found when testing wcDocker changes. #6479 2023-11-14 16:47:40 +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
17acce3e7b Continue fixing multiple UI issues found when testing wcDocker changes. #6479 2023-11-01 20:52:38 +05:30
Aditya Toshniwal
e30d2eca90 Continue fixing multiple UI and SonarQube issues found when testing wcDocker changes. #6479 2023-10-30 16:57:01 +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
Aditya Toshniwal
d6cddd8c29
Remove Bootstrap and jQuery from authentication pages and rewrite them in ReactJS. #6295 2023-06-30 16:08:33 +05:30
Aditya Toshniwal
f7bc826262 Fix an issue where all the menus are enabled when pgAdmin is opened and no object is selected in the object explorer. #6435 2023-06-22 13:52:39 +05:30
Aditya Toshniwal
745a91393c Fix JS test cases and other JS build issues caused due to dependabot updates. 2023-06-09 18:22:20 +05:30
Nikhil Mohite
fec63c6cf3
Text improvement for the OS secret store feature. #5123 2023-05-24 18:06:21 +05:30
Aditya Toshniwal
a93c0c8d94
Redirect pgAdmin main window console logs to NW.js server logs. 2023-04-06 15:16:14 +05:30
Aditya Toshniwal
f72f4aa359
Dashboard graph Y-axis width should increase with label. #5929 2023-03-14 11:04:08 +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
Khushboo Vashi
9ff015e73c
Added support of AWS provider for BigAnimal cloud deployment. #5569 2023-01-09 12:32:26 +05:30
Pravesh Sharma
33aea87dea
Incorporated review comments. #5647 2023-01-02 13:30:49 +05:30
Akshay Joshi
98184e5835 Update copyright notices for 2023 2023-01-02 11:53:55 +05:30