Commit Graph

203 Commits

Author SHA1 Message Date
Akshay Joshi
964d211260 Copyright updated for 2025 2025-01-01 11:26:42 +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
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
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
c47390e643 Fixed API test cases for BatchProcess 2024-06-11 12:59:48 +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
Khushboo Vashi
f4761f55f7 Fixed Multi-Factor Authentication bypass vulnerability (CVE-2024-4215). #7425 2024-04-29 13:41:02 +05:30
Pravesh Sharma
e18a8bf620
Fixed issue found during testing of #7163. 2024-04-29 13:12:21 +05:30
Pravesh Sharma
f143aa05a3
Added support for excluding multiple tables while taking Backup. #7163 2024-04-15 11:50:08 +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
Pravesh Sharma
1bcf343ceb
Fixed an issue where taking backup of a shared server was using server owner's user name. #7255 2024-03-26 11:28:20 +05:30
Florian
134e651989
Added support to exclude multiple tables while taking backup. #7163 2024-03-08 11:44:29 +05:30
Akshay Joshi
4c5324bd99 Fixed API test cases for Backup. 2024-01-25 18:07:40 +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
41fe1db884 Fixed PEP8 2024-01-25 12:51:29 +05:30
Akshay Joshi
cafe69c235 Fixed SonarQube Bugs and API test cases. 2024-01-25 12:46:55 +05:30
Akshay Joshi
0e0cbc40b8 Fixed SonarQube code smell Replace the unused local variable with '_'. 2024-01-24 18:33:43 +05:30
Nikhil Mohite
ad0567bd85
Add support for selecting a schema in the backup database dialog with no tables, mviews, views or foreign tables. #7053
Fixed a UI border issue on the dependencies tab for columns with icon. #7055
2024-01-12 17:19:27 +05:30
Akshay Joshi
740ce15bd7 Update copyright notices for 2024 2024-01-01 14:13:48 +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
Nikhil Mohite
6997d0149e
Fetch database objects after opening the backup dialog. #6799 2023-10-10 15:28:25 +05:30
Nikhil Mohite
541d9dfcb4
Fix API test cases for backup dialog. 2023-09-29 14:49:11 +05:30
Nikhil Mohite
aa973fc8ae
Added support to select/deselect objects in the Backup dialog. #642 2023-09-13 11:07:28 +05:30
Akshay Joshi
0f86b78d87 Added support for PostgreSQL and EPAS 16 to ensure it works without any errors. #6588 2023-08-02 11:26:09 +05:30
Akshay Joshi
8ec5fca4a0 Remove the 'Objects' tab from the backup dialog as the feature is not yet implemented 2023-07-24 17:30:54 +05:30
Akshay Joshi
a3c3d91515 Fixed some issues in Backup and PSQL tool 2023-07-19 20:31:29 +05:30
Akshay Joshi
bd4e14da89 Added new/missing parameters to pg_restore. #6562 2023-07-13 13:01:48 +05:30
Akshay Joshi
def1f31ba8 Ensure that Backup, Restore, and Maintenance should work properly when pgpass file is used. #6499 2023-07-11 15:34:27 +05:30
Akshay Joshi
fbb43f8c3e Align two switch controls inline for Backup Server and Backup Object dialog. 2023-07-10 18:47:07 +05:30
Aditya Toshniwal
a08714cd65
Allow two controls to be inline in SchemaView. 2023-07-10 17:42:20 +05:30
Akshay Joshi
7686280cb2 1) Added --exclude-database option for Backup Server.
2) Fixed Jasmine test cases.
2023-07-10 12:44:26 +05:30
Akshay Joshi
9aa116bf3f
1) Added new/missing parameters to pg_dumpall (Backup Server). #6416
2) Added new/missing parameters to pg_dump (Backup Objects). #6417
2023-07-10 10:34:30 +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
Akshay Joshi
12f82820c9 Fix an issue where Backup, Restore, and Maintenance not working if connection timeout is set in the server dialog. #5959 2023-03-27 17:41:19 +05:30
Pravesh Sharma
89c8a7f907
Added option to create unique constraint with nulls not distinct. #5855 2023-03-15 18:55:42 +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
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
Aditya Toshniwal
8b236e7bc8
Ensure that the authenticated users can't access each other's directories and files by providing relative paths. #5734 2023-01-13 12:29:21 +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
964c7b1d28 Fixed API test cases. 2022-10-20 17:47:27 +05:30
Aditya Toshniwal
04b1e26041 Fixed an issue where server names with special characters are not displayed correctly in the process tab. Fixes #7695 2022-09-15 16:43:37 +05:30
Akshay Joshi
b8f63adf41 Fixes following code smell reported by SonarQube:
1) Replace this if-then-else flow by a single return statement
 2) Remove the unnecessary boolean literals.
2022-09-08 19:56:02 +05:30
Akshay Joshi
7086719640 Fixed SonarQube issues. 2022-09-08 18:08:58 +05:30
Akshay Joshi
18b77f15dd Remove Alertify from pgAdmin completely. Fixes #7619 2022-09-08 15:16:48 +05:30
Akshay Joshi
084203debc Fixed Securtiy Hotspot reported by SonarQube. 2022-08-12 17:10:26 +05:30
Aditya Toshniwal
c2b23465cc 1) Added support to show all background processes in separate panel. Fixes #3709
2) Port process watcher to React. Fixes #7404
2022-08-11 10:49:45 +05:30
Akshay Joshi
81b0d1138b Remove Alertify dialog from Grant Wizard, Import/Export Servers and Cloud. 2022-07-28 10:14:04 +05:30