Initial WIP ERD Tool implementation. Branch ------ ERDTool
Details ------- https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=05cf2f66da0e04b74b4cacc7f0072ddee381b31d Author: Aditya Toshniwal <aditya.toshni...@enterprisedb.com> Modified Files -------------- web/.eslintrc.js | 1 + web/package.json | 31 +- .../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/static/bundle/browser.js | 1 + web/pgadmin/static/js/backform.pgadmin.js | 4 + web/pgadmin/static/js/backgrid.pgadmin.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 | 15 + web/pgadmin/static/scss/pgadmin.scss | 2 +- .../static/scss/resources/_default.variables.scss | 16 +- .../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 | 587 ++++++++ web/pgadmin/tools/erd/static/js/erd_module.js | 216 +++ .../tools/erd/static/js/erd_tool/ERDCore.js | 354 +++++ .../tools/erd/static/js/erd_tool/ERDModel.js | 12 + .../static/js/erd_tool/dialogs/DialogWrapper.js | 140 ++ .../erd/static/js/erd_tool/dialogs/EntityDialog.js | 671 +++++++++ .../static/js/erd_tool/dialogs/ManyToManyDialog.js | 116 ++ .../static/js/erd_tool/dialogs/OneToManyDialog.js | 116 ++ .../tools/erd/static/js/erd_tool/dialogs/index.js | 14 + web/pgadmin/tools/erd/static/js/erd_tool/index.js | 20 + .../erd/static/js/erd_tool/links/OneToManyLink.jsx | 291 ++++ .../erd/static/js/erd_tool/nodes/TableNode.jsx | 193 +++ .../erd/static/js/erd_tool/ports/OneToManyPort.js | 34 + .../js/erd_tool/ui_components/BodyWidget.jsx | 674 +++++++++ .../js/erd_tool/ui_components/ConnectionBar.jsx | 34 + .../js/erd_tool/ui_components/FloatingNote.jsx | 48 + .../static/js/erd_tool/ui_components/Loader.jsx | 18 + .../static/js/erd_tool/ui_components/ToolBar.jsx | 73 + 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 + 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 | 67 + .../tools/erd/tests/test_sql_input_data.json | 106 ++ web/pgadmin/tools/erd/tests/test_sql_output.sql | 25 + web/pgadmin/tools/erd/tests/test_tables.py | 79 + web/pgadmin/tools/erd/utils.py | 71 + web/pgadmin/tools/sqleditor/static/js/sqleditor.js | 7 +- web/pgadmin/utils/csrf.py | 3 +- web/pgadmin/utils/driver/psycopg2/connection.py | 2 +- 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 | 494 +++++++ .../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 | 1539 ++++++++++++-------- 73 files changed, 8208 insertions(+), 769 deletions(-)