Added ERD Diagram support with basic table fields, primary key, foreign key, and DDL SQL generation. Fixes #1802
Branch ------ master Details ------- https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=0c8226ff39b7ae8dcbe6fd141730ad7b9e4cbb3b Author: Aditya Toshniwal <aditya.toshni...@enterprisedb.com> Modified Files -------------- docs/en_US/release_notes_4_30.rst | 1 + web/.eslintrc.js | 1 + web/package.json | 31 +- web/pgadmin/browser/__init__.py | 1 + .../browser/register_browser_preferences.py | 3 +- .../servers/databases/schemas/tables/__init__.py | 155 +- .../tables/constraints/foreign_key/utils.py | 17 +- .../schemas/tables/partitions/__init__.py | 3 +- .../templates/foreign_key/sql/default/create.sql | 6 +- .../servers/databases/schemas/tables/utils.py | 167 +- .../servers/databases/schemas/utils.py | 30 +- .../servers/databases/static/js/database.js | 13 + web/pgadmin/browser/templates/browser/js/utils.js | 1 + web/pgadmin/static/bundle/browser.js | 1 + web/pgadmin/static/js/backform.pgadmin.js | 4 + web/pgadmin/static/js/backgrid.pgadmin.js | 10 +- web/pgadmin/static/js/custom_prop_types.js | 10 + web/pgadmin/static/scss/_bootstrap.overrides.scss | 14 + web/pgadmin/static/scss/_pgadmin.style.scss | 6 + web/pgadmin/static/scss/_tippy.overrides.scss | 9 + web/pgadmin/static/scss/pgadmin.scss | 2 +- .../static/scss/resources/_default.variables.scss | 17 +- .../scss/resources/dark/_theme.variables.scss | 8 + .../datagrid/static/js/datagrid_panel_title.js | 13 +- .../tools/datagrid/static/js/show_query_tool.js | 25 +- web/pgadmin/tools/erd/__init__.py | 553 ++++ web/pgadmin/tools/erd/static/js/erd_module.js | 215 ++ .../tools/erd/static/js/erd_tool/ERDCore.js | 395 +++ .../tools/erd/static/js/erd_tool/ERDModel.js | 21 + .../static/js/erd_tool/dialogs/DialogWrapper.js | 158 ++ .../static/js/erd_tool/dialogs/ManyToManyDialog.js | 140 + .../static/js/erd_tool/dialogs/OneToManyDialog.js | 140 + .../erd/static/js/erd_tool/dialogs/TableDialog.js | 739 +++++ .../tools/erd/static/js/erd_tool/dialogs/index.js | 32 + web/pgadmin/tools/erd/static/js/erd_tool/index.js | 30 + .../erd/static/js/erd_tool/links/OneToManyLink.jsx | 288 ++ .../erd/static/js/erd_tool/nodes/TableNode.jsx | 202 ++ .../erd/static/js/erd_tool/ports/OneToManyPort.js | 43 + .../js/erd_tool/ui_components/BodyWidget.jsx | 681 +++++ .../js/erd_tool/ui_components/ConnectionBar.jsx | 57 + .../js/erd_tool/ui_components/FloatingNote.jsx | 71 + .../static/js/erd_tool/ui_components/Loader.jsx | 34 + .../static/js/erd_tool/ui_components/ToolBar.jsx | 136 + web/pgadmin/tools/erd/static/js/erd_tool_hook.js | 35 + web/pgadmin/tools/erd/static/js/index.js | 23 + web/pgadmin/tools/erd/static/scss/_erd.scss | 189 ++ web/pgadmin/tools/erd/templates/erd/index.html | 55 + web/pgadmin/tools/erd/tests/__init__.py | 15 + .../erd/tests/sql/12_plus/test_sql_output.sql | 25 + .../erd/tests/sql/default/test_sql_output.sql | 34 + web/pgadmin/tools/erd/tests/test_close.py | 55 + web/pgadmin/tools/erd/tests/test_initialize.py | 54 + web/pgadmin/tools/erd/tests/test_panel.py | 44 + web/pgadmin/tools/erd/tests/test_prequisite.py | 52 + web/pgadmin/tools/erd/tests/test_sql.py | 90 + .../tools/erd/tests/test_sql_input_data.json | 106 + web/pgadmin/tools/erd/tests/test_tables.py | 79 + web/pgadmin/tools/erd/utils.py | 71 + web/pgadmin/tools/sqleditor/static/js/sqleditor.js | 8 +- web/pgadmin/utils/csrf.py | 3 +- web/regression/javascript/erd/erd_core_spec.js | 382 +++ web/regression/javascript/erd/erd_model_spec.js | 34 + .../erd/keyboard_shortcut_action_spec.js | 61 + .../javascript/erd/onetomany_link_spec.js | 133 + .../javascript/erd/onetomany_port_spec.js | 21 + web/regression/javascript/erd/table_node_spec.js | 305 +++ web/regression/javascript/erd/test_tables.js | 651 +++++ .../erd/ui_components/body_widget_spec.js | 514 ++++ .../erd/ui_components/connection_bar_spec.js | 25 + .../erd/ui_components/erd_preferences.js | 147 + .../erd/ui_components/floating_note_spec.js | 39 + .../javascript/erd/ui_components/loader_spec.js | 23 + .../javascript/erd/ui_components/toolbar_spec.js | 76 + web/regression/javascript/fake_endpoints.js | 6 + web/webpack.config.js | 4 +- web/webpack.shim.js | 6 + web/webpack.test.config.js | 1 + web/yarn.lock | 2886 +++++++++++--------- 78 files changed, 9276 insertions(+), 1459 deletions(-)