Compare commits

..
375 Commits
Author SHA1 Message Date
Paresh More e987fe9d37 Ensure the MAC OSX app should be notarized for Catalina.
Added post-build script in Jenkins to notarize appbundle.

Fixes #4817
2019-10-16 11:23:32 +05:30
Akshay Joshi d7b1e2cd9c Update version for release. 2019-10-15 14:27:56 +05:30
Akshay Joshi 2790689d26 1) Fix issue where validate switch for the foreign key is enabled from table dialog even if the key is validated.
2) Fix issue where validate the foreign key from the table dialog, rename the foreign key constraint to none.
2019-10-14 18:19:32 +05:30
Akshay Joshi 7c271d21ae Fix 'placeholders are incompatible' issue in the message catalog.
Replace % with %% used in the explain module.
2019-10-14 12:51:34 +05:30
Identifier Anonymous 75e2167165 Update Japanese translation. 2019-10-14 12:09:28 +05:30
Akshay Joshi 94170757e8 Update message catalogs. 2019-10-11 17:36:02 +05:30
Dave Page 9bdb5ea5e0 Include PostgreSQL 12 binaries in the container. Fixes #4823 2019-10-11 11:13:06 +01:00
Akshay Joshi c3e11bd390 Fix issue where VALID foreign keys show as NOT VALID in the SQL tab for tables.
Corrected the condition for valid foreign key.

Fixes #4791
2019-10-10 18:55:13 +05:30
Aditya Toshniwal d056a94f0c popen() function strips the quotes from the arguments, so backup fails
for the schema name that needs quoting.

Code is changed to add escapers.

Fixes #4590
2019-10-10 17:58:32 +05:30
Aditya Toshniwal f16498a8a7 Optimize Webpack to improve overall performance.
Changes include:
1) Remove underscore-string and sprintf-js packages as we were using only %s. Instead, added a function to do the same. Also changed gettext to behave like sprintf directly.
2) backgrid.sizeable.columns was not used anywhere, removed. @babel/polyfill is deprecated, replaced it with core-js.
3) Moved few css to make sure they get minified and bundled.
4) Added Flask-Compress to send static files as compressed gzip. This will reduce network traffic and improve initial load time for pgAdmin.
5) Split few JS files to make code reusable.
6) Lazy load few modules like leaflet, wkx is required only if geometry viewer is opened. snapsvg loaded only when explain plan is executed. This will improve sqleditor initial opening time.

Reviewed By: Khushboo Vashi
Fixes #4701
2019-10-10 12:05:28 +05:30
Akshay Joshi e5638b520d Feature test should work with Python 2.7.
Import print_function from __future__
2019-10-09 11:57:35 +05:30
Ashesh Vashi 6e4923d762 Fixes # 4778 - Implement the query plan analyzer
Look 'n' Feel and implementation logic are inspired from
'http://explain.depsez.com'.

It now creates three tabs under the 'Explain' panel when executing a
query using the Explain Analyze/Explain button from the toolbar of the
Query tool.

Graphical
---------
-> Graphical Explain Plan

Analysis
--------
-> Table to show details of the explain plan analyse.
-> Each row represents the statistics per Explain Plan Node
-> It may contains columns like node information, exclusive timing
   (time spent for this explain node excluding the child nodes),
   inclusive timing, actual rows, plan rows,
   rowsx (misestimation between planned vs actual rows), loop.
-> Background color of exclusive, inclusive, rows changes based on
   their values.
i.e.
If Percentage of exclusive, and inclusive timings of total query time
is:
> 90 - Red Color
> 50 - Orange (Between Red & Yellow Color)
> 10 - Yellow color

If planner misestimation for the rows is
> 1000 times - Red Color
> 100 times - Orange (Between Red & Yellow Color)
> 10 times - Yellow Color
Also - if actual rows <= planned rows then it shows up arrow, else it
shows down arrow.

Statistics
----------
-> It contains a HTML table for the statistics per Node Type, and
   a HTML table for the statistics per table.

Reviewed by: Akshay Joshi
2019-10-08 16:44:24 +05:30
Akshay Joshi 1e4fd552ac Ensure backup a partition table should not backup the whole database.
For the partition table same argument '--table' is used with pg_dump.

Fixes #3386
2019-10-07 16:32:37 +05:30
Akshay Joshi 55c6fa0d93 Fix an error where 'false' string is displayed when we add a new parameter in the Parameters tab,
also clear the old value when the user changes the parameter name.

Corrected the implementation of BooleanCellFormatter.

Fixes #4753
2019-10-07 16:00:28 +05:30
Akshay Joshi 7489c372e5 The search path should not be quoted while setting as a parameter, if it is
quoted then that string considers to be a single schema.

Quoting not added for the 'search_path' parameter.

Fixes #4760, #4780
2019-10-07 12:28:00 +05:30
Dave Page 893ef4701d Fix the default value for PROXY_X_PROTO_COUNT per Aditya. 2019-10-04 12:34:59 +01:00
Aditya Toshniwal 41ee58e79a Highlighted the color of closing or opening parenthesis when user select them in CodeMirror. Fixes #4728 2019-10-04 13:55:00 +05:30
Akshay Joshi bf2c001c87 Export job fails when deselecting all the columns.
Select2 parameter 'first_empty' should be set to false for the controls of type array.
If it is true then on deselecting/clearing all the values, an empty entry is still there. 

Fixes #4751
2019-10-04 13:00:39 +05:30
Aditya Toshniwal 245a6e6f57 Added backward compatible code for reverse proxy in case werkzeug is older.
Make werkzeug greater than equal to 0.15.0
2019-10-01 17:55:43 +05:30
Dave Page 6c662ae672 PEP-8 fix. 2019-09-27 11:16:08 +01:00
Dave Page 8249e66419 Tidy up formatting and wording. 2019-09-27 10:51:18 +01:00
Aditya Toshniwal 6032692de0 Unable to open Query tool on Internet Explorer.
Remove extra comma in the function argument while starting the query tool.
Other browsers had no problems, but it is an issue on Internet explorer.

Fixes #4769
2019-09-27 14:32:52 +05:30
Akshay Joshi c580c9d4b3 Fix PEP8 issue 2019-09-27 14:27:50 +05:30
Akshay Joshi 8e974b80ca Fix documentation issue single quote is not allowed in reStructuredText. 2019-09-27 13:45:09 +05:30
Aditya Toshniwal faf8062830 pgAdmin4 unable to work behind Nginx reverse proxy running on a non-standard port.
Werkzeug middleware allows us to set the number of trusted ports and few other params
behind the proxy. By default values are set to zero.

Added 'X-Forwarded-*' configuration options and set the default value of the port to 1 to work with non-standard port.

Fixes #4768
2019-09-27 13:24:35 +05:30
Khushboo Vashi 56e00d74ad There is no option to Copy data with headers from Query Tool/View Data.
Added drop-down 'Copy with headers' near to the copy button in Query Tool/View Data.

Fixes #3009
2019-09-27 12:14:39 +05:30
Akshay Joshi 051e5038b5 Fix issue where query history is not visible in the query history tab. Fixes #4777 2019-09-25 13:18:33 +05:30
Akshay Joshi c54017eac5 Add Reverse Engineered and Modified SQL tests for Synonyms. Fixes #4472 2019-09-24 18:33:07 +05:30
Aditya Toshniwal 73dc130908 Fix issue where pgAdmin does not load completely if loaded in an iframe. Fixes #4756 2019-09-23 12:55:02 +05:30
Aditya Toshniwal 82aa2d1819 Ensure that pgAdmin should work behind reverse proxy if the inbuilt server is used as it is. Fixes #4755 2019-09-23 11:50:32 +05:30
Akshay Joshi 1bef98fdfa Ensure that 'ENTER' key in the data filter should not run the query. Fixes #4199 2019-09-20 18:13:44 +05:30
Akshay Joshi faa6236580 Add Reverse Engineered and Modified SQL tests for Unique Constraints. Fixes #4628 2019-09-20 12:12:01 +05:30
Dave Page a1b0139c9b Don't use Python to get the app details from the Makefile. Fixes #4757 2019-09-19 09:58:44 +01:00
Akshay Joshi f881542834 Fix RESQL/MSQL test cases for Python 2.7 2019-09-17 11:41:57 +05:30
Akshay Joshi e64d6edc73 Update version for release. 2019-09-17 11:06:58 +05:30
Akshay Joshi b10378fe70 Fix query history issue for Python 2.7, it is a regression of #4750. 2019-09-17 11:01:13 +05:30
Murtuza Zabuawala 80b05973c6 Fix query history exception for Python 3.6. Fixes #4750. 2019-09-16 19:09:22 +05:30
Akshay Joshi 426d9d5872 Fix SQL issue of length and precision when changing the data type of Column. Fixes #4698 2019-09-16 18:57:57 +05:30
Dave Page 110a51c5b2 Refactor Dockerfile to avoid needing to run supporting scripts (i.e. 'docker build .' will work) and minimise layers. Fixes #4752 2019-09-16 13:48:11 +01:00
Khushboo Vashi aa668856f7 1) Add Reverse Engineered and Modified SQL tests for Primary Keys. Fixes #4624.
2) Ensure Primary Key should be created with Index. Fixes #4742.
2019-09-16 12:05:29 +05:30
Murtuza Zabuawala d923dcf98b Added MSQL test cases for Roles. 2019-09-16 11:41:48 +05:30
Identifier Anonymous 6e7759f1d5 Update Japanese translation. 2019-09-16 11:30:20 +05:30
Akshay Joshi 2acd2a5615 Update message catalogs. 2019-09-13 18:13:21 +05:30
Akshay Joshi f5a6df4ddb Fix issue where EXEC script doesn't write the complete script for Procedures. Fixes #4727 2019-09-13 16:58:25 +05:30
Akshay Joshi da553eec9b Ensure port and username should not be mandatory when a service is provided. Fixes #4642 2019-09-13 11:54:16 +05:30
Aditya Toshniwal 9a69d27009 Fix webpack issue where multiple assets emit to the same file. 2019-09-13 11:08:08 +05:30
Aditya Toshniwal 83170a0e94 Fix display of validation error message in SlickGrid cells. Fixes #4408 2019-09-12 20:27:44 -04:00
Akshay Joshi 6d8c53bffd Fix query tool and view data issue with the Italian language. Fixes #4736 2019-09-12 17:20:35 +05:30
Akshay Joshi 7944e75695 Ensure sequence with negative value should be created. Fixes #4726 2019-09-12 14:18:30 +05:30
Dave Page 31653aef70 Remove quotes that shouldn't be there. 2019-09-11 16:00:53 -04:00
Akshay Joshi 6a931588aa 1) Add Reverse Engineered and Modified SQL tests for Foreign Keys. Fixes #4616
2) Fix issue where Validated switch option is inverted for the Foreign Key. Fixes #4412
2019-09-11 15:59:13 +05:30
Dave Page b4a754bdc0 Remove copy of file that's now created on the fly. 2019-09-09 13:35:55 -04:00
Domenico Sgarbossa 199844e82c Italian translation improvements. 2019-09-09 11:33:51 +05:30
Nagesh Dhope db06dd0275 Add msql tests for FTS Dictionaries 2019-09-06 16:00:33 +01:00
Dave Page 72505b27cb Update feature test to support changed editor options. 2019-09-06 13:32:13 +01:00
Nagesh Dhope 9f26e7ed20 Added MSQL test cases for Extension. 2019-09-06 16:28:41 +05:30
Akshay Joshi 8e4e8b3e5a 1) Add Reverse Engineered and Modified SQL tests for Indexes. Fixes #4621
2) Fix modified SQL for Index when reset the value of Fill factor and Clustered?. Fixes #4702
3) Fix reversed engineered SQL for btree Index when provided sort order and NULLs. Fixes #4703
2019-09-06 14:10:46 +05:30
Akshay Joshi 9eff2e9926 Modified RE-SQL/MSQL test cases of foreign tables for EPAS 9.4 and 9.5 2019-09-05 12:01:03 +05:30
Aditya Toshniwal 1c2ba72f02 Add editor options for plain text mode and to disable block folding to
workaround rendering speed issues in CodeMirror with very large scripts.
Fixes #4631.

Re-arrange editor options in the Preferences dialogue to tidy things up.
2019-09-04 15:46:08 +01:00
Akshay Joshi 5e54f20578 Add Reverse Engineered and Modified SQL tests for Foreign Tables. Fixes #4618. 2019-09-04 18:33:07 +05:30
Ashesh Vashi 2d4429fa64 Update yarn.lock to update the vulnerable javascripts
i.e.
eslint-utils >= 1.4.1
2019-09-04 10:20:28 +05:30
Ganesh Jaybhay 85baa22ca1 Added Modified SQL test cases for FTS Configurations. 2019-09-03 17:42:44 +05:30
navnath gadakh 4690700a24 Added Modified SQL test cases for Packages. 2019-09-03 17:33:57 +05:30
Akshay Joshi 4745ad56e9 1) Add Reverse Engineered and Modified SQL tests for Foreign Servers. Fixes #4617
2) Add Reverse Engineered and Modified SQL tests for User Mappings. Fixes #4627
2019-09-03 16:27:41 +05:30
Aditya Toshniwal 04357b7a55 Fix error while importing data to a table using Import/Export dialog and providing Not null columns option. Fixes #4461. 2019-09-03 11:19:33 +05:30
Shubham Agarwal a0f6e5272a Add MSQL test cases for FTS Parser. 2019-09-03 10:28:11 +05:30
Murtuza Zabuawala eeeb350ed2 Add Modified SQL tests for Resource Group. Fixes #4690 2019-09-03 10:18:09 +05:30
Aditya Toshniwal a68f0702e2 Re-fix database name unescaping the query tool title bar. 2019-09-02 16:57:28 +01:00
Domenico Sgarbossa 60a6c501fb Add an Italian translation. 2019-09-02 13:35:32 +01:00
Akshay Joshi 5ff3f40116 Add Reverse Engineered and Modified SQL tests for FTS Templates. Fixes #4619 2019-09-02 15:24:41 +05:30
Akshay Joshi 662266a367 Added MSQL test cases for Cast and Language. 2019-09-02 14:11:59 +05:30
Aditya Toshniwal bc91a7c7b2 Increase cache control max age for static files to improve performance over longer run. Fixes #4681 2019-09-02 12:17:43 +05:30
Neel Patel 0ca65d7cfe Added MSQL test cases for Domain. 2019-09-02 11:52:19 +05:30
Aditya Toshniwal 47f26cc377 Fix exception in query history for python 2.7. Fixes #4663 2019-08-30 09:07:03 +05:30
Akshay Joshi e0c53e7d1d Add Reverse Engineered SQL tests for Schemas. Fixes #4575 2019-08-29 18:32:08 +05:30
Aditya Toshniwal d6da1cf25c Added MSQL test cases for Sequences and cover missing ACL RE-SQL test cases. 2019-08-29 14:15:34 +05:30
Shubham Agarwal fc4bef56a0 Further code refactoring to stabilise the Feature Tests. Fixes #3936 2019-08-28 18:04:08 +05:30
Aditya Toshniwal 028473eb83 Fix an issue where oid column should not be pasted when copy/paste row is used on query output containing the oid column. Fixes #4381 2019-08-28 13:35:40 +05:30
Usman Muzaffar ac298b03c0 1) Add Reverse Engineered SQL tests for Views. Fixes #4576
2) Ensure View should be created with special characters. Fixes #4486
2019-08-28 12:48:59 +05:30
Aditya Toshniwal 06ad6b8ba8 1) Ensure Boolean columns should be editable using keyboard keys. Fixes #3778
2) Ensure Boolean columns should be editable in View/Edit data and Query Tool. Fixes #4487
2019-08-28 11:09:30 +05:30
Aditya Toshniwal dbbbb2e5ed Fix query tool launch error if user name contain html characters. Fixes #4674 2019-08-28 10:46:28 +05:30
Akshay Joshi 28b741a13a Fixed timezone issue in RE-SQL test cases for Roles. 2019-08-27 19:54:30 +05:30
Murtuza Zabuawala 1ddc9cc889 Modified RE-SQL test to cover Password, Account Expire, Connection Limit and Variables for Roles. 2019-08-26 18:25:48 +05:30
Aditya Toshniwal 53ab4d7e8d Fix an error that could be seen when click on any system column of a table. Fixes #4577 2019-08-26 14:36:07 +05:30
Yosry Muhammad f8f7d5ac6f Ensure editable and read-only columns in Query Tool should be identified by icons and tooltips in the column header. Fixes #4667 2019-08-26 14:17:40 +05:30
Yosry Muhammad 5887fb3815 Some refactoring of sqleditor.js. 2019-08-23 16:15:43 +01:00
Aditya Toshniwal 234efc3be7 Don't wait for the database connection before rendering the Query Tool UI, for improved UX. Fixes #4453
In addition, unescape HTML entities in database names in the Query Tool title bar. Fixes #4584
2019-08-23 12:14:20 +01:00
Dave Page 25f85fe123 Fix PGADMIN_SERVER_JSON_FILE environment variable support in the container. Fixes #4657 2019-08-23 09:53:24 +01:00
Aditya Toshniwal 3dadb8989b Fix a debugger error when using Python 2.7. Fixes #4419
Also fixes a minor bug where a reload warning was unnecessarily given when closing the debugger.
2019-08-23 09:43:51 +01:00
Akshay Joshi 232fe286ee Fix SQL tab issue for Views. It's a regression of compound triggers. Fixes #4650 2019-08-23 10:22:20 +05:30
Dave Page 6192c48ef9 Further tweaks for formatting. 2019-08-22 15:41:24 +01:00
Dave Page 92aabb215f Improve formatting. 2019-08-22 15:34:04 +01:00
Dave Page c76b30e353 Allow configuration options to be set from the environment in the container distribution. Fixes #4651 2019-08-22 15:24:04 +01:00
Dave Page 1795141aec Minor doc styling tweaks. 2019-08-22 15:11:59 +01:00
Shubham Agarwal 9f455a514e Feature test improvement and fix intermittent failures part of #3936 2019-08-22 14:50:51 +05:30
Akshay Joshi 7090c02014 Move schema precondition logic into separate function for RE-SQL. 2019-08-21 18:12:33 +05:30
Neel Patel dc64ce331a Fix length and precision enable/disable issue when changing the data type for Domain node. Fixes #4644. 2019-08-21 16:27:23 +05:30
Akshay Joshi 094e5577e8 Add Reverse Engineered SQL tests for Rules. Fixes #4600 2019-08-21 16:06:05 +05:30
Akshay Joshi 41e2a674e3 Fix Truncate option deselect issue for compound triggers. Fixes #4643 2019-08-20 17:09:26 +05:30
Akshay Joshi bdff046c57 1) Added ProjectSet icon for explain module. Fixes #2706
2) Added Gather Merge, Named Tuple Store Scan and Table Function Scan icon for explain module. Fixes #2828
2019-08-20 16:47:53 +05:30
Akshay Joshi 5c8aefc01e Update version for release 2019-08-20 10:26:49 +05:30
Khushboo Vashi ed76787b76 Fix the Transaction Status failed test cases. 2019-08-20 10:22:11 +05:30
Akshay Joshi f3e4721a90 Added missing file for function selectivity feature. Fixes #4333 2019-08-20 10:02:43 +05:30
Akshay Joshi 0d6f07a035 1) Ensure compound triggers should be displayed under Views. Fixes #4638.
2) Ensure Truncate option should be available for Compound Triggers. Fixes #4641.
2019-08-20 09:39:31 +05:30
Akshay Joshi 624f229ce7 Comment out the failed Transaction Status API test cases for successful Jenkins build 2019-08-20 09:33:42 +05:30
Murtuza Zabuawala 3155380621 Fix issue where Deleting N number of rows makes first N number of rows disable. Fixes #3605 2019-08-19 12:12:28 +05:30
Yosry Muhammad 663e8382f3 1) Added new python test that checks the transaction status after executing queries and saving data when auto-commit is on/off.
2) Some refactoring of previously written python tests.
2019-08-19 11:45:36 +05:30
Identifier Anonymous 659d0b8436 Update Japanese translation. 2019-08-17 16:49:59 +05:30
Akshay Joshi 24f9f65b1b Ensure compound triggers for event should be updated properly. Fixes #4635 2019-08-17 15:58:50 +05:30
Akshay Joshi 177def1e58 Update message catalogs. 2019-08-16 17:55:38 +05:30
Murtuza Zabuawala 3f541200d9 Add Reverse Engineered SQL tests for Columns. Fixes #4546 2019-08-16 17:36:13 +05:30
Yosry Muhammad 687204771c Add support in query history to show internal queries generated by pgAdmin during save data operations. Fixes #4612 2019-08-16 17:17:12 +05:30
Akshay Joshi 4403f326e9 Fix PEP8 issue 2019-08-12 14:41:22 +05:30
Akshay Joshi 35bbee3023 Fix generation of reverse engineered SQL for Rules. Fixes #4586 2019-08-12 14:27:02 +05:30
Aditya Toshniwal a51de78292 Fix issue in drag drop feature. It's regression of RM #4552 2019-08-12 13:11:56 +05:30
Aditya Toshniwal a850e7bd5a Update the documentation for pgAgent to clarify Batch jobs won't run on remote servers. Fix minor css issue in docs. 2019-08-12 11:45:54 +05:30
Yosry Muhammad b618dfe286 Fix double click issue to expand the contents of a cell if the resultset was not editable. Fixes #4585 2019-08-09 11:45:05 +05:30
Aditya Toshniwal 99b51f8f20 Remove HardSourceWebpackPlugin as WebPack 4 is fast enough and it causes more problems than it solves. 2019-08-08 15:38:47 +01:00
Aditya Toshniwal bfca1e3ac8 Set the Werkzeug logger to the same log level as the rest of the app. 2019-08-08 15:36:22 +01:00
Dave Page 7f667f5761 Add support for OpenSSL 1.1.1 to the Windows installer build. 2019-08-08 15:07:11 +01:00
Aditya Toshniwal 1281f5cd6c Fix console error when changing kind(SQL/BATCH) for pgAgent job step. Fixes #4582 2019-08-08 18:43:38 +05:30
Akshay Joshi 350ffcce7c 1) Add support of Compound Triggers for EPAS 12+. Fixes #4144.
2) Ensure enable trigger menu should be visible when trigger is disabled. Fixes #4578.
2019-08-08 16:59:11 +05:30
Dave Page 8331f62e1c Fix PEP-8 issue. 2019-08-08 10:09:28 +01:00
Khushboo Vashi c29275011a Ensure the comment on a Primary Key constraint can be edited under the Table node. Fixes #4581 2019-08-08 09:52:10 +01:00
Akshay Joshi 7f53e13aa7 Fix generation of reverse engineered SQL for partition table, partitions were shown as a child of indexes. Fixes #4414 2019-08-07 17:49:13 +05:30
Dave Page d1530015ee Stupid tabs 2019-08-07 11:27:39 +01:00
Fahar Abbas 228d3dde5b Improve consistency of the regression README. Fixes #4579 2019-08-07 11:24:10 +01:00
Dave Page 3a5464b278 Display the row count in the popup message when counting table rows, not just in the properties list. Fixes #4574 2019-08-07 11:17:57 +01:00
Dave Page b9d5e08e8f Make sure the package-lock.json file is removed. 2019-08-07 11:07:10 +01:00
Aditya Toshniwal 4067d65a30 Improve test messages 2019-08-07 10:17:34 +01:00
Dave Page ee2099d9c6 Further message tweak. 2019-08-06 16:43:37 +01:00
Dave Page bfb05d3f9f Improve message wording. 2019-08-06 16:40:29 +01:00
Aditya Toshniwal 9cdb3b40ab Add Reverse Engineered SQL tests for Trigger Functions. Fixes #4554
Fix the reverse engineered SQL for trigger functions with the WINDOW option selected. Fixes #4565
2019-08-06 14:26:11 +01:00
Aditya Toshniwal 6800b1f723 Add an optimisation to the internal code responsible for searching for treeview nodes. Fixes #4570
Attached is a tiny but very effective patch to improve the speed of
finding a node using path (used internally).
If you right click or just click on a node, internally the node is
traversed using its path. But currently, it compares with the path of
all the open nodes to find a match.
So if you 1000+ tables and the tables node is open and if you click on
a view, the view path is compared with all the 1000+ tables (and with
any other open nodes above) before arriving to path. You're at bad luck
if you have more open servers above.

Code is changed to check if the path of node to be found starts with the
current node path. If it doesn't match, why bother the children's of
current node.
This change will not show much effect for small data, but it does matter
for large servers.

One more change is to remove unnecessary calls to find node and use the
data available with Main Menu -> Object to enable/disable node context
menu items.
2019-08-06 14:02:57 +01:00
Aditya Toshniwal db7a2e3023 Add a --modules option to the RE-SQL test suite to allow testing of specific object types. Fixes #4560 2019-08-06 13:43:49 +01:00
Murtuza Zabuawala ee8fec6d7f Allow enhanced cookie protection to be disabled for compatibility with dynamically addressed hosting environments. Fixes #4566 2019-08-06 09:21:31 +01:00
Khushboo Vashi f8afe2ef94 Add Reverse Engineered SQL tests for Exclusion Constraint. Fixes #4555 2019-08-05 16:25:55 +05:30
Ma Yanhong efbad77dbe Update Chinese translation. 2019-08-05 08:57:34 +01:00
Aditya Toshniwal b5c8c85c90 Ensure triggers should be updated properly for EPAS server. Fixes #4559 2019-08-05 12:49:33 +05:30
Dave Page d7ee4bb932 Update library inventory. 2019-08-02 15:50:44 +01:00
Aditya Toshniwal 8780462708 Add various make targets for auditing the Python and JS modules. Update the install-node target so that it de-dupes JS modules.
Original patch by Aditya, with further work from Ashesh and I.
2019-08-02 14:05:09 +01:00
Aditya Toshniwal 99a8b70e00 Fix some errors thrown on the JS console when dragging text in the Query Tool. Fixes #4552 2019-08-02 11:28:57 +01:00
Yosry Muhammad 0cfd76c279 Fix load on demand in View/Edit data mode. Fixes #4536 2019-08-02 10:39:19 +01:00
Akshay Joshi 537c27a58e Use the full tab space for CodeMirror instances on dialogues where appropriate. Fixes #4540 2019-08-02 10:25:21 +01:00
Aditya Toshniwal aab5fadc01 Update wcDocker to allow the browser's context menu to be used except in tab strips and panel headers. Fixes #4229
Update wcDocker to prevent window state loading creating blank dialogues. Fixes #4489
2019-08-01 15:36:40 +01:00
Yosry Muhammad 97e39699ea Ensure the Query Tool doesn't throw an error when viewing the contents of a table with no columns. Fixes #4492 2019-08-01 14:39:02 +01:00
Yosry Muhammad 76e658ee12 Ensure command tags are shown in the messages tab of the Query Tool. Fixes #4520 2019-08-01 14:29:38 +01:00
Yosry Muhammad 7b65507533 Ensure the query tool will work with older versions of psycopg2 than we officially support, albeit without updateable resultsets. Fixes #4520 2019-08-01 13:59:53 +01:00
Dave Page cbe40176c1 PEP-8 fix. 2019-08-01 13:47:18 +01:00
Aditya Toshniwal bcb1392a1a Ensure type names are properly encoded in the results grid. Fixes #4401 2019-08-01 13:17:00 +01:00
Dave Page 9a8a28e4f9 Allow a banner to be displayed on the login and other related pages showing custom text. Fixes #4549 2019-08-01 11:39:40 +01:00
Akshay Joshi 1ff007d1cb Swap the Schema and Schemas icons and Catalog and Catalogs icons that had been used the wrong way around. 2019-08-01 11:39:49 +05:30
Dave Page 3cb02bcdc3 Add a warning to notify packagers of dependency updates. 2019-07-29 11:24:54 +01:00
Yosry Muhammad 82d209946f Added support for editing of result sets from tables with OIDs in query tool. 2019-07-29 12:26:53 +05:30
Akshay Joshi 2ef3080d0e Add support for generated columns in Postgres 12+. Fixes #4334
Ensure columns can be created when they are IDENTITY fields with the CYCLE option enabled. Fixes #4496
Ensure purely numeric comments can be saved on new columns. Fixed #4497
2019-07-25 16:38:26 +01:00
Daniel Gustafsson 5b322d94e8 Fix generation of reverse engineered SQL for tables with Greenplum 5.x. Fixes #4179 2019-07-25 16:16:44 +01:00
Khushboo Vashi adb5cd34bf Add support for planner support functions in PostgreSQL 12+ functions. Fixes #4333 2019-07-25 16:09:37 +01:00
Murtuza Zabuawala 108af5c10b Fix accessibility issue for Datetime cell in backgrid. Fixes #4508 2019-07-25 17:54:24 +05:30
Ganesh Jaybhay 136bb412a1 1) Fix accessibility issue for checkbox in IE11. Fixes #4490
2) Fix adjacent switch cell focus issue in backgrid for IE.
2019-07-25 17:23:56 +05:30
Akshay Joshi 8cfe39e837 Fix syntax error in query tool feature test for Python 2.7 2019-07-25 11:26:45 +05:30
Dave Page ec968dbc14 Remove duplicated blank message entry which is illegal. 2019-07-24 15:17:59 +01:00
Akshay Joshi b4d9fea83d Update version for release 2019-07-23 10:40:51 +05:30
Khushboo Vashi c019778a47 1) Fix an error while retrieving json data from the table. Fixes #4427
2) Fix an issue where Explain and Explain Analyze are not working, it's regression of #1760. Fixes #4484
3) Fix an issue where Filter toolbar button is not working in view/edit data, it's regression of keyboard navigation. Fixes #4485
2019-07-22 18:42:48 +05:30
Fred Escallier 6e49c9c36f Update French translation 2019-07-22 17:05:27 +05:30
Nagesh Dhope 1813eca1ca Add support for pre-condition SQL in RE-SQL testsuite,
and use it to ensure that the right extensions are installed for the
extension tests.
2019-07-22 09:44:17 +01:00
Identifier Anonymous 4a6991d0df Update Japanese translation 2019-07-22 11:06:58 +05:30
Akshay Joshi 003ab44a91 Update message catalogs. 2019-07-19 17:46:45 +05:30
Akshay Joshi 5a0aae0c1c Correct the issue number and sequence in release note. 2019-07-18 12:41:54 +05:30
Yosry Muhammad f5b927b925 Randomise table names for tests. 2019-07-17 16:50:59 +01:00
Akshay Joshi d78dfbd30f Ensure Selenium is started only when it's needed. 2019-07-17 15:38:14 +01:00
Khushboo Vashi 8168f623c4 Add Reverse Engineered SQL tests for Constraints. Fixes #4475 2019-07-17 13:25:08 +01:00
Yosry Muhammad 710d520631 Add support for editing of resultsets in the Query Tool, if the data can be identified as updatable. Fixes #1760
When a query is run in the Query Tool, check if the source of the columns
can be identified as being from a single table, and that we have all
columns that make up the primary key. If so, consider the resultset to
be editable and allow the user to edit data and add/remove rows in the
grid. Changes to data are saved using SAVEPOINTs as part of any
transaction that's in progress, and rolled back if there are integrity
violations, without otherwise affecting the ongoing transaction.

Implemented by Yosry Muhammad as a Google Summer of Code project.
2019-07-17 11:45:20 +01:00
Dave Page beb06a4c76 Fix typo 2019-07-16 14:36:29 +01:00
Dave Page aed6b9e636 Improve error output for the RE-SQL tests. 2019-07-16 09:35:00 +01:00
Dave Page 2c2c738f31 Cleanup wording. 2019-07-15 16:02:19 +01:00
Akshay Joshi ab87035658 pgAgent fixes:
"malformed array literal error when updating pgagent job". Fixes #4428
"Error when updating connection string in pgagent Jobs.". Fixes #4448
When user create a schedule using Create->Schedule dialog browser tree is not showing newly created node.
Properties tab showing same properties for all the created schedule.
Added validation in "pga_jobstep.js", throws error on browser when we modify step from the pgagent dialog and select the same node.
2019-07-15 15:54:57 +01:00
Aditya Toshniwal d3ef1137d9 Add Reverse Engineered SQL tests for Sequences. Fixes #4469 2019-07-15 14:56:22 +01:00
Aditya Toshniwal 0b82a4ad92 Fix sequence reverse engineered SQL generation with quoted names on PG/EPAS 10+. Fixes #4470 2019-07-15 14:55:07 +01:00
Murtuza Zabuawala f4453e33cc Stabilise ordering of ACLs in Type RE-SQL tests to prevent random failures. 2019-07-15 14:48:22 +01:00
Shubham Agarwal 809e0682bd Add Reverse Engineered SQL tests for FTS Parsers. Fixes #4471 2019-07-15 12:02:44 +01:00
Murtuza Zabuawala 1831c9e70a Use ROLE consistently when generating RE-SQL for roles, not USER. Fixes #4446 2019-07-15 11:31:27 +01:00
Murtuza Zabuawala 1dcf46cc5f Add Reverse Engineered SQL tests for Types. Fixes #4468 2019-07-15 10:25:04 +01:00
Neel Patel 88ab6db976 Add Reverse Engineered SQL tests for Domains. Fixes #4463 2019-07-12 14:39:49 +01:00
Khushboo Vashi 79e6f4c008 Add Reverse Engineered SQL tests for Collations. Fixes #4464
This also adds the ability to test the msql output in ALTER steps.
2019-07-12 14:37:00 +01:00
Dave Page 6b5ca07715 Fix external utility tests to run on Windows 2019-07-12 13:55:18 +01:00
Dave Page 3f4d5a687b Rename horribly named function. 2019-07-12 13:00:23 +01:00
Navnath Gadakh ce8a2bb266 Fix re-sql tests for packages on EPAS 9.4-9.6. 2019-07-12 11:32:29 +01:00
Dave Page 3dd1e8e102 Fix wording. 2019-07-12 11:17:35 +01:00
Akshay Joshi 29fd83dc6c Fix dropping of pgAgent schedules through the Job properties. Fixes #3996 2019-07-12 10:37:41 +01:00
Akshay Joshi ed01274f7b Fix an error that could be seen when editing column privileges. Fixes #4389 2019-07-12 10:16:18 +01:00
Murtuza Zabuawala 20a5899c7d Fix some minor UI issues on IE11. Fixes #4462
Includes some Jasmine test case fixes from Ganesh.
2019-07-12 10:06:30 +01:00
Dave Page 1df26cb731 Make the RE-SQL test output a little more consistent with other tests. 2019-07-11 14:12:41 +01:00
Nagesh Dhope 379b92729a Add Reverse Engineered SQL tests for FTS Dictionaries. Fixes #4460 2019-07-11 14:00:11 +01:00
Ganesh Jaybhay 4cbc1f2f59 Allow keyboard navigation of all controls on subnode grids. Partially fixes #3919 2019-07-11 10:14:01 +01:00
Navnath Gadakh 28585110dd Add Reverse Engineered SQL tests for Packages. Fixes #4456 2019-07-11 09:23:13 +01:00
Akshay Joshi cdf655f7db Add Reverse Engineered SQL tests for Languages. Fixes #4452 2019-07-11 09:20:01 +01:00
Nagesh Dhope e6c067025c Fixed resql test cases for Extensions specific to database servers. 2019-07-11 13:16:00 +05:30
Akshay Joshi 6c7e95a463 Added re_sql test cases for privileges in Foreign Data Wrappers 2019-07-10 17:57:11 +05:30
Dave Page 49503dc73d Add documentation on using Traefik with pgAdmin mounted under a subdirectory, and tidy up the reverse proxying docs a little. 2019-07-10 12:03:37 +01:00
Ganesh Jaybhay f7d6966d60 Add Reverse Engineered SQL tests for FTS Configurations. Fixes #4454 2019-07-09 17:02:55 +01:00
Dave Page bf0d53bc2c Add an example Traefik configuration. 2019-07-09 14:14:46 +01:00
Dave Page 2a56e47c5c Fix typo 2019-07-09 14:11:38 +01:00
Nagesh Dhope 84b712a008 Add RE-SQL tests for Extensions. Fixes #4453 2019-07-09 13:23:26 +01:00
Akshay Joshi f085460453 Remove some files which was committed by mistake. 2019-07-09 16:47:23 +05:30
Akshay Joshi 1a9d8f01aa 1) Ensure re_sql tests should not abort at the first failure, it should run all the test cases.
2) Added place holder for owner, so we won't need to create separate pg/ppas folder just because of change in the owner name.
2019-07-09 15:37:53 +05:30
Khushboo Vashi f4ac1e804e Modified the creation logic of custom schema and added support for schema id in re_sql test framework. 2019-07-09 13:09:32 +05:30
Akshay Joshi a17687e27c Fix reverse engineered sql for Foreign Data Wrapper created on EPAS server in redwood mode. Fixes #4450 2019-07-09 12:21:13 +05:30
Dave Page 08e6d54184 Add an example of reverse proxying from HTTPS to HTTP using Nginx. 2019-07-08 17:12:31 +01:00
Dave Page 07089785be Add examples of reverse proxying with nginx. 2019-07-08 16:38:11 +01:00
Akshay Joshi 8c39b10d9c Ensure browser should not be started by Selenium when feature tests are excluded from a test run. Fixes #4442 2019-07-08 17:38:06 +05:30
Dave Page bd0e4a5a8f Remove some files committed in error. 2019-07-08 12:07:50 +01:00
Dave Page 863f62f4d8 Use special characters in names for RE-SQL tests to exercise quoting. 2019-07-08 11:03:30 +01:00
Khushboo Vashi 7c38c1cb38 Fix small issue which is required to support the custom schema in re_sql test cases. 2019-07-08 12:33:31 +05:30
Akshay Joshi 11a3aa56be Use different folders for pg vs. ppas RE-SQL tests. Fall back to the tests folder without a subdirectory if neither exist. 2019-07-05 14:40:51 +01:00
Dave Page e4bf52f355 Don't distinguish between issue types in their URL text. 2019-07-05 11:38:12 +01:00
Aditya Toshniwal ba32c98241 Add Reverse Engineered SQL tests for FDWs. Fixes #4441 2019-07-05 11:24:54 +01:00
Khushboo Vashi 954c0d3101 Added logic to provide custom schema name in re_sql test framework. 2019-07-05 15:35:33 +05:30
Dave Page 6a2ba22f75 Fxi a couple of colors in the doc theme per Aditya. 2019-07-05 09:32:19 +01:00
Akshay Joshi 776884860e Ensure parameter values are quoted when needed when editing roles. Fixes #4393 2019-07-04 15:00:29 +01:00
Aditya Toshniwal 0aa18fd466 Ensure drag/drop from the treeview works as expected on Firefox. Fixes #4429 2019-07-04 14:49:09 +01:00
Aditya Toshniwal 15427334af Set the mouse cursor appropriately based on the layout lock state. Fixes #4318 2019-07-04 14:33:05 +01:00
Dave Page 3487b3360e Use our own doc theme. 2019-07-04 14:10:01 +01:00
Akshay Joshi fabb644230 Update the version number in release note. 2019-07-04 18:09:31 +05:30
Akshay Joshi bf1f9a4b07 Fix table icon issue when updating any existing field. Fixes #4437 2019-07-04 17:34:47 +05:30
Murtuza Zabuawala 588e3814d1 Add RE-SQL tests for Roles and Resource Groups. Fixes #4415 2019-07-03 14:38:29 +01:00
Aditya Toshniwal f4bc4475cd Add more comprehensive feature tests for the data grid editor. 2019-07-03 14:30:12 +01:00
Aditya Toshniwal 0340b8fb28 Add EXPLAIN options for SETTINGS and SUMMARY. Fixes #4335
Prevent flickering of large tooltips on the Graphical EXPLAIN canvas. Fixes #4224
EXPLAIN options should be Query Tool instance-specific. Fixes #4395
2019-07-03 13:57:56 +01:00
Aditya Toshniwal 15556f9f89 Correct the condition to compare version for Windows installer. Regression of last commit. 2019-07-02 20:12:00 +05:30
Aditya Toshniwal b76e0bea83 Ensure the version comparision should be correct for windows installer. Fixes #4421 2019-07-02 14:58:18 +05:30
Akshay Joshi 252429df50 Update version for release 2019-06-28 09:40:31 -04:00
Akshay Joshi d6c6b4a15a update the release date and message catalogs 2019-06-28 09:38:20 -04:00
Dave Page 64d31b9d3f Fix a quoting issue that caused a blank UI to be displayed when running in French. Fixes #4407 2019-06-28 08:54:58 -04:00
Aditya Toshniwal 24ec882f45 Properly escape dragged node text. Fixes #4139 2019-06-28 08:17:04 -04:00
Andrew Coleman d397959f6a Allow the path to /pgadmin4/servers.json to be overridden in the container distribution. Fixes #4400 2019-06-27 10:56:37 -04:00
Aditya Toshniwal da8cf14047 Prevent an error that may occur when editing data with an integer primary key. Fixes #4404 2019-06-27 10:43:25 -04:00
Aditya Toshniwal 2451db8797 Ensure the browser close confirmation is only shown when closing a Query Tool which is running in a separate browser tab. Fixes #4403 2019-06-27 10:37:50 -04:00
Aditya Toshniwal 173b812b93 Allow some objects to be dragged/dropped into the Query Tool to insert their signature into the query text. Fixes #4139 2019-06-27 10:30:05 -04:00
Usman Muzaffar bdb8f20aed Feature test fixes:
The query tool element while running on jenkins, is present on the DOM but not visible due to comparatively small page size. So handle it , would work in both cases(if element is visible or not).
The tab name handles XSS characters due to which table name <h1> is shown modified accordingly in the tab name.
2019-06-27 10:19:57 -04:00
Aditya Toshniwal 0d42f8026c Fix SSH tunnel password decryption. Fixes #4320 2019-06-25 07:06:04 -04:00
Ma Yanhong c69ffaa91c Update Chinese translation. 2019-06-25 07:03:45 -04:00
Akshay Joshi 173acd46a5 Update version for release 2019-06-25 01:44:21 +05:30
Aditya Toshniwal c39d257bf6 Fix an XSS issue when username contains XSS vulnerable text. Fixes #4386 2019-06-24 16:06:03 +05:30
Identifier Anonymous b3490ba3de Update Japanese translation 2019-06-24 05:52:53 +05:30
Fred Escallier 4e5d8fe8e2 Update French translation 2019-06-21 16:46:13 +05:30
Akshay Joshi c4de5474a4 Update message catalogs 2019-06-21 15:59:14 +05:30
Aditya Toshniwal ebb5e3fe65 Ensure Python escaping matched JS escaping and fix a minor XSS issue in the Query Tool that required superuser access to trigger. Fixes #4378 2019-06-21 09:53:57 +01:00
Dave Page 644624eabe PEP-8 fixes. 2019-06-20 14:30:31 +01:00
Dave Page 9dbb74367d Fix regression tests. 2019-06-20 14:02:15 +01:00
Khushboo Vashi c07e52b9de Ensure that both columns and partitions can be edited at the same time in the table dialog. Fixes #4380 2019-06-20 13:37:36 +01:00
Aditya Toshniwal 78d55c7cc0 Fix regression tests. 2019-06-20 13:26:06 +01:00
Dave Page 81752bb998 Remove additional "SETOF" included when generating CREATE scripts for trigger functions. Fixes #4362 2019-06-20 13:18:30 +01:00
Dave Page fb4afce629 Fix formatting change which inadvertently broke the feature tests. 2019-06-20 12:43:07 +01:00
Aditya Toshniwal 6e8ebbd375 Allow editing of data where a primary key column includes a % sign in the value. Fixes #4036
Fix an XSS issue seen in View/Edit data mode if a column name includes HTML. Fixes #4367
2019-06-20 12:21:37 +01:00
Akshay Joshi 5c0ea0c012 Capitalize the word 'export' used in Import/Export module. Fixes #4345 2019-06-19 16:17:29 +05:30
Aditya Toshniwal ce7679c4bd Added missing __init__.py file in debugger utils which is required for Python 2.7 2019-06-19 13:31:48 +05:30
Akshay Joshi b36d5d153b Ensure the debugger control buttons are only enabled once initialisation is complete. Fixes #4360 2019-06-18 14:46:28 +01:00
Akshay Joshi 9e65c971a3 Add a framework for testing reversed engineered SQL and CRUD API endpoints. Fixes #4202 2019-06-18 14:28:25 +01:00
Dave Page 71919a4ce9 Prevent the "Please login to access this page" message displaying multiple times. Fixes #4306 2019-06-17 14:12:36 +01:00
Aditya Toshniwal 402dfd07db Change icons for table inheritance (icons by Chethana Kumar) Fixes #3174
Along with this, I have also fixed few other issues/icons found on the way:
1) Dependencies tab for inherited tables/foreign keys shows partial text (Fixes ##3994).
2) Dependencies tab for child partition table shows parent partition table as Function.
3) Dependencies tab for triggers shows trigger functions as plain functions.
4) Dependents tab for partitioned table shows the child partition tables as normal table instead for partitioned tables.
2019-06-17 10:36:30 +01:00
Akshay Joshi bf548dda3f Fix help links for backup globals and backup server. Fixes #4365 2019-06-17 13:27:21 +05:30
Aditya Toshniwal 2894c6cd14 Add minor change missed in previous commit. Fixes #4329 2019-06-14 12:46:48 +01:00
Aditya Toshniwal 3b69f92d70 Ensure strings are properly encoded in the Query History. Fixes #4349 2019-06-14 09:17:02 +01:00
Aditya Toshniwal 82bd94e696 Fix connection restoration issue when pgAdmin server is restarted and the page is refreshed. Fixes #4357 2019-06-14 11:50:01 +05:30
Akshay Joshi 04328b76ba Fix syntax error for Default value of column. It is a regression of #4253 2019-06-13 18:04:43 +05:30
Murtuza Zabuawala 08b78fb6a1 Ensure we include the CSRF token when uploading files. Fixes #4350 2019-06-12 13:52:18 +01:00
Aditya Toshniwal 23364464c2 Ensure the correct label is used in panel headers when viewing filtered rows. Fixes #4228 2019-06-11 15:11:23 +01:00
Akshay Joshi d774a0ff67 Fix issue where property dialog of column should open properly for EPAS v12. Fixes #4343 2019-06-11 17:48:01 +05:30
Aditya Toshniwal 5437a8adab Fix an initialisation error when two functions with parameters are debugged in parallel. Fixes #4329 2019-06-10 14:58:07 +01:00
Dave Page 6d52f2b911 Initial support for PostgreSQL 12. Fixes #4283. Fixes #4288. Fixes #4290. 2019-06-10 14:24:45 +01:00
Dave Page 2ca11c84e8 Ensure that the Return key can be used to submit the Master Password dialogue. Fixes #4310
Ensure that browser auto-fill doesn't cause Help pages to be opened unexpectedly. Fixes #4317
2019-06-10 14:03:56 +01:00
Aditya Toshniwal f561c0cee6 Fix keyboard navigation in "inner" tabsets such as the Query Tool and Debugger. Fixes #4195 2019-06-10 11:10:49 +01:00
Fred Escallier 321b445a7e Update French translation. 2019-06-10 10:08:27 +01:00
Aditya Toshniwal 7ff85903e4 Fix issue where reverse engineered SQL was failing for foreign tables, if it had = in the options. Fixes #4171 2019-06-10 12:15:12 +05:30
Aditya Toshniwal 8b9c50ee5c Fix issue where new column should be created with Default value. Fixes #4235 2019-06-10 11:53:16 +05:30
Ma Yanhong 4b6e9b031c Update Chinese translation. 2019-06-06 10:06:28 +01:00
Dave Page e691885881 Clarify warnings about disabling the master password. 2019-06-05 15:32:47 +01:00
Dave Page caf181d5e3 Clarify docs around configuration files and disabling the master password. 2019-06-05 15:20:38 +01:00
Aditya Toshniwal d90136d93d Prevent the geometry viewer grabbing key presses when not in focus under Firefox, IE and Edge. Fixes #4255 2019-06-05 12:00:09 +01:00
Aditya Toshniwal 9a00a8a60b Update codemirror version. Fixes #4035 2019-06-05 12:12:56 +05:30
Aditya Toshniwal a588c2994d 1) Fix issue where SSH tunnel connection using password is failing, it's regression of Master Password. Fixes #4320
2) Fix some more issues related to SSH Tunnel(By: Akshay Joshi)
2019-06-05 12:07:24 +05:30
Dave Page 13704a4f34 Disable upgrade checks whilst testing. 2019-06-03 11:35:59 -04:00
Usman Muzaffar 912db8913f Ensure that successful maintenance tasks don't leave a notifier window behind when running regression tests. 2019-06-03 11:33:32 -04:00
Akshay Joshi 969a2961fe Update version for release. 2019-06-01 14:19:28 +05:30
Akshay Joshi 6b80523872 Update message catalogs. 2019-06-01 14:14:04 +05:30
Akshay Joshi c16c593322 Update the release date in the release note. 2019-06-01 14:11:34 +05:30
Akshay Joshi 6a7339bbe4 Fix syntax error while opening properties tab of functions and procedures inside packages. 2019-06-01 14:02:33 +05:30
Dave Page 41a20e0252 Fix PEP-8 issue. 2019-05-31 12:12:04 -04:00
Dave Page 2dd075161d Allow the UI layout to be fully locked or to prevent docking changes. Fixes #2653 2019-05-31 11:51:30 -04:00
Aditya Toshniwal 91075cc3f5 Disable the master password in test mode (for now). 2019-05-31 10:19:04 -04:00
Akshay Joshi 26c7d76d4f Fix the issue of accessing the SQL for Views and Materialized Views. Regression of pluralisation of folder names. Fixes #4308 2019-05-31 11:02:37 +05:30
Aditya Toshniwal 2185ea302d Omit the geometry viewer in the Query Tool from layout saving. Fixes #4169 2019-05-30 15:15:37 -04:00
Murtuza Zabuawala 32defc91cc Improve the performance of explain plan by embedding the images only when downloading it. Fixes #4307 2019-05-30 17:49:43 +05:30
Dave Page 37bde4aaf4 Credit reporter who provided test script. 2019-05-29 16:34:04 -04:00
Dave Page 1f76d207f2 Minor phrasing fix. 2019-05-29 16:32:35 -04:00
Dave Page 8eab534c95 Fix typo 2019-05-29 16:27:56 -04:00
Dave Page 0eb3008426 Tidy up keyboard shortcut docs. 2019-05-29 16:24:29 -04:00
Aditya Toshniwal dd187b9122 Prevent Alertify from inadvertently opening help pages. 2019-05-29 13:46:39 -04:00
Aditya Toshniwal 15252b0a26 Added Help button on all master password dialogs. 2019-05-29 13:07:50 +05:30
Akshay Joshi aa95ff9f57 Fix encoding issue for background process, it is regression of Master Password. Fixes #4303 2019-05-29 12:50:48 +05:30
Fred Escallier dad0d690db Update French translation. 2019-05-29 12:25:37 +05:30
Dave Page 2fa849dc26 Also need openssl-dev 2019-05-28 18:11:42 -04:00
Dave Page f340cd044b build-deps doesn't exist any more. 2019-05-28 18:09:06 -04:00
Dave Page 991f667f9f Argh, they are Alpine packages, not Python. 2019-05-28 18:01:56 -04:00
Dave Page 307637b969 Looks like we also need build tools for the cryptography module. 2019-05-28 17:56:54 -04:00
Dave Page 91595593d3 Doc builds now need the cryptography module. 2019-05-28 17:50:11 -04:00
Identifier Anonymous 12186a0fd6 Update Japanese translation. 2019-05-28 17:11:27 +05:30
Ashesh Vashi 9fdf68d559 Fix fatal error on launch of pgAdmin4. Fixes #4298 2019-05-28 17:05:54 +05:30
Akshay Joshi 8851cb0704 Update version for release 2019-05-28 12:09:33 +05:30
Akshay Joshi a936f708de Update message catalogs. 2019-05-28 12:06:44 +05:30
Aditya Toshniwal dfa892d2a2 1. Added Master Password to increase the security of saved passwords. Fixes #4184
2. In server(web) mode, update all the saved server credentials when user password is changed. Fixes #3377
2019-05-28 12:00:18 +05:30
Khushboo Vashi 6f0eafb223 Fixed CSRF security vulnerability issue. per Alvin Lindstam. Fixes #4217
Initial patch by: Khushboo Vashi
Modified by: Ashesh Vashi and Murtuza Zabuawala
2019-05-28 10:59:51 +05:30
Akshay Joshi 90a45557b9 1. Fix syntax error when adding more than one column to the existing table. Fixes #4162
2. Fix syntax error when creating a table with a serial column. Fixes #4284
2019-05-27 13:09:11 +05:30
Akshay Joshi 2790d01c31 Update message catalogs. 2019-05-24 17:26:26 +05:30
Dave Page 4d23bb24a5 Add a missing fix. 2019-05-24 09:36:33 +01:00
Aditya Toshniwal 361f7077fd Update the UI logo. Artwork by Chethana Kumar. Fixes #4208 2019-05-23 16:39:10 +01:00
Usman Muzaffar dcd163ac02 Feature test stabilisation. 2019-05-23 09:31:52 +01:00
Aditya Toshniwal ee37be56f9 Fix handling of JSON in the Query Tool with NULL elements. Fixes #4263 2019-05-23 08:53:29 +01:00
Dave Page f1ef7b0346 Validate permissions on the session directory itself, not it's parent, per Felix Pusch. Fixes #4276 2019-05-21 12:14:36 +01:00
Dave Page 0ee50ac248 Clarify wording for the NO INHERIT option on constraints, per Michel Feinstein. Fixes #4275 2019-05-21 11:51:19 +01:00
Dave Page ea4dbd31e8 Don't try to set permissions on Windows. It won't work anyway. Fixes #4276 2019-05-20 13:53:08 +01:00
Murtuza Zabuawala 155768a2d7 Prevent Backgrid Password cells from losing focus if the browser opens an autocomplete list. Fixes #4278 2019-05-20 13:34:47 +01:00
Dave Page da8da7bb49 Relax the permission check on the directory containing the config database, as it may fail in some environments such as OpenShift. Fixes #4276 2019-05-20 09:46:02 +01:00
Murtuza Zabuawala 5786c17569 Fix navigation of switch cells in grids. Fixes #4269 2019-05-17 16:27:14 +01:00
Dave Page 941dea99f5 Fix typo. 2019-05-17 09:04:04 +01:00
Sander Eikelenboom ab5f35da8d Fixed error on displaying table properties of a table partitioned by list having a default partition. Fixes #4262 2019-05-15 18:36:16 +05:30
Aditya Toshniwal db4bb22cc6 Ensure that element should get highlighted when they get focus on using Tab key. Fixes #4245 2019-05-15 17:42:07 +05:30
Aditya Toshniwal 2cd58efcdd 1) Fixed Tab key navigation for Maintenance dialog. Fixes #4227
2) Fix Tab key issue for Toggle switch controls and button on the dialog footer in Safari browser. Fixes #4244
2019-05-15 16:37:06 +05:30
Aditya Toshniwal ed8d1cde00 Fix accessibility issue for menu navigation. Fixes #4194 2019-05-15 15:38:33 +05:30
Akshay Joshi b7121bb2d2 1) Make folder name pluralise inside 'templates' folder and fix naming inconsistency.
2) Remove unwanted functions "module_js()" from the code.
3) Change naming convention for 'Roles' module.
2019-05-15 15:11:54 +05:30
Dave Page 3364350b01 Fix the check target. 2019-05-15 10:03:29 +01:00
Dave Page 4b421550d3 Stop using application/x-javascript as a mime type and use the RFC-compliant application/javascript instead. Fixes #4261 2019-05-15 09:44:57 +01:00
Dave Page 020d9bb018 Clarify when the container will load server definitions. 2019-05-14 09:27:47 +01:00
Murtuza Zabuawala eb189844e7 Fixed console error when subnode control is used in panels. Fixes #4246 2019-05-10 11:24:15 +05:30
Akshay Joshi 20c42d878b Updated jQuery version as they have fixed some vulnerability issue. 2019-05-03 16:47:35 +05:30
Aditya Toshniwal 036bd66638 Fix file browser path issue which occurs when client is on Windows and server is on Mac/Linux. Fixes #4164 2019-05-03 11:58:06 +05:30
Dave Page f02f91cbf1 Ensure popper.js is installed when needed. Fixes #4219 2019-04-30 13:57:10 +01:00
Neel Patel 34b59da526 Properly assign dropdownParent in Select2 controls. Fixes #4218 2019-04-30 12:57:17 +01:00
Fred Escallier 277bf85645 Update French translation. 2019-04-30 11:47:17 +05:30
Akshay Joshi 991fe3d797 Update version for release. 2019-04-30 10:49:49 +05:30
Identifier Anonymous 4009ac3108 Update Japanese translation 2019-04-29 09:21:55 +01:00
Akshay Joshi 92e6a47713 Update message catalogs. 2019-04-26 17:39:45 +05:30
Dave Page e53c2b1a5d Ensure the treeview shows all sequences except those used to implement IDENTITY columns (which can be edited as part of the column). Show all if Show System Objects is enabled. Fixes #4154 2019-04-26 12:36:56 +01:00
Dave Page e536408ce2 Don't try to install Chromedriver using the chromedriver_installer module as it no longer works and doesn't seem to be supported. 2019-04-25 09:41:40 +01:00
Dave Page f74448a1b2 Add a script for installing the required Chromedriver version. 2019-04-25 09:38:52 +01:00
Akshay Joshi 9b5a6e2bb7 Prevent duplicate columns being included in reverse engineered SQL for tables. Fixes #4163 2019-04-24 11:35:20 +01:00
Aditya Toshniwal 3fef078ec8 Remove some unecessary React libraries. 2019-04-24 09:29:01 +01:00
Khushboo Vashi 74af8976c9 Ensure that newly added row in backgrid should be visible. 2019-04-23 17:32:00 +05:30
Khushboo Vashi ecded18333 Fix an issue where 'GRANT UPDATE' sql should be displayed for default sequence privileges. Fixes #4087 2019-04-22 12:24:47 +05:30
Khushboo Vashi 5452bff49e Fixed 'Increment value cannot be empty' error for existing tables. Fixes #4160 2019-04-22 12:04:49 +05:30
Aditya Toshniwal 05ae330030 Improvement for 'beforeunload' event, bind the event only from where it is required. 2019-04-22 11:30:33 +05:30
Dave Page 94e1820ccd Fix skip on Windows. 2019-04-18 11:18:06 +01:00
Aditya Toshniwal 49b318c39e Ensure that confirmation dialog should be popped up before reload of query tool or debugger
if it is opened in a new browser tab. Fixes #4101
2019-04-18 15:39:36 +05:30
Dave Page 4ac064de42 Urgh. Typo. 2019-04-18 09:13:55 +01:00
Dave Page 2ef71cf749 Skip the permissions test on Windows which doesn't support Unix style file permissions. 2019-04-18 09:13:00 +01:00
Aditya Toshniwal d96f453e7f Fixed 'Location cannot be empty' error when open Tablespace properties. Fixes #4134 2019-04-18 12:31:35 +05:30
Khushboo Vashi 0b47d1dbf6 1) Fix an issue where Deleting N number of rows makes first N number of rows disable. Fixes #3605
2) Ensure that on clicking Delete button should not delete rows immediately from the database server,
   it should be deleted when Save button will be clicked. Fixes #2392
2019-04-18 12:09:35 +05:30
Dave Page d728ee7436 Ensure sanity of the permissions on the storage and session directories and the config database. Fixes #4182 2019-04-17 16:57:34 +01:00
Dave Page 1a192109d6 Ensure we create a DMG file that's compatible with macOS 10.10+ 2019-04-15 12:12:46 +01:00
Aditya Toshniwal 024cfd2fab 1) Ensure that JSON strings as comments should be added properly for all the objects. Fixes #3582
2) Fixed alignment issue of columns in definition section of Index node. Fixes #4121
2019-04-12 15:07:07 +05:30
Murtuza Zabuawala a25bb2b7db Add tests for the CSV download. 2019-04-11 17:15:01 +01:00
Fred Escallier fd3337024f Update French translation. 2019-04-11 13:51:40 +01:00
Dave Page ded446fe8a Depend on psycopg2-binary in the Python wheel, rather than psycopg2. Fixes #4165 2019-04-11 10:08:44 +01:00
Khushboo Vashi a9d964b5ca 1) Added support for Default Partition. Fixes #3938
2) Ensure that record should be add/edited for root partition table with primary keys. Fixes #4104
2019-04-11 13:25:24 +05:30
Akshay Joshi 9c3925e448 Ensure that parameters of procedures for EPAS server 10 and below should be set/reset properly. Fixes #4161 2019-04-10 13:22:52 +05:30
Murtuza Zabuawala 6016a5ee98 Fix an issue where the dropdown becomes misaligned/displaced. Fixes #4138 2019-04-09 12:09:25 +05:30
Akshay Joshi 490999f528 Updated release notes 2019-04-08 18:33:20 +05:30
Akshay Joshi ceb0e39e14 Update version for release 2019-04-08 18:31:51 +05:30
Akshay Joshi 3bed332439 Update message catalogs. 2019-04-08 18:24:36 +05:30
Khushboo Vashi c21ea3c342 Ensure that pgAdmin4 should work properly with psycopg2 v2.8. Fixes #4143 2019-04-08 17:49:50 +05:30
Murtuza Zabuawala 84ecffa4d9 Added recommended ESLinter checks. Fixes #4142 2019-04-05 13:07:43 +05:30
Akshay Joshi 9bff6c7157 Fixed pep8 issue 2019-04-05 12:53:50 +05:30
Usman Muzaffar 5c4c09f237 Fixed feature test issues 2019-04-05 12:25:03 +05:30
Dave Page f706f7ed0c Relabel the Save button on the datagrid text editor to avoid confusion with the actual Save button that updates the database. Fixes #4131 2019-04-02 17:20:43 +01:00
Identifier Anonymous fb12b2e2fc Updated Japanese tanslation. 2019-04-02 14:41:05 +01:00
Fred Escallier badbbade08 Updated French tanslation. 2019-04-02 14:38:47 +01:00
1938 changed files with 89363 additions and 90475 deletions

No files matched your search

+2
View File
@@ -43,3 +43,5 @@ web/pgAdmin/static/js/generated
web/pgadmin/static/js/generated
web/yarn-error.log
/web/cacert.pem
auditjs.html
auditpy.txt
+180
View File
@@ -0,0 +1,180 @@
########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2018, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
#########################################################################
# Create a Node container which will be used to build the JS components
# and clean up the web/ source code
#########################################################################
FROM node:8-alpine AS app-builder
RUN apk add --no-cache \
autoconf \
automake \
bash \
g++ \
libc6-compat \
libjpeg-turbo-dev \
libpng-dev \
make \
nasm \
git \
zlib-dev
# Create the /pgadmin4 directory and copy the source into it. Explicitly
# remove the node_modules directory as we'll recreate a clean version, as well
# as various other files we don't want
COPY web /pgadmin4/web
RUN rm -rf /pgadmin4/web/*.log \
/pgadmin4/web/config_*.py \
/pgadmin4/web/node_modules \
/pgadmin4/web/regression \
`find /pgadmin4/web -type d -name tests` \
`find /pgadmin4/web -type f -name .DS_Store`
WORKDIR /pgadmin4/web
# Build the JS vendor code in the app-builder, and then remove the vendor source.
RUN npm install && \
npm audit fix && \
rm -f yarn.lock && \
yarn import && \
yarn audit && \
rm -f package-lock.json && \
yarn run bundle && \
rm -rf node_modules \
yarn.lock \
package.json \
.[^.]* \
babel.cfg \
webpack.* \
karma.conf.js \
./pgadmin/static/js/generated/.cache
#########################################################################
# Now, create a documentation build container for the Sphinx docs
#########################################################################
FROM python:3.7-alpine3.10 as docs-builder
# Install only dependencies absolutely required for documentation building
RUN apk add --no-cache \
make \
build-base \
openssl-dev \
libffi-dev && \
pip install --no-cache-dir \
sphinx \
flask_security \
flask_paranoid \
python-dateutil \
flask_sqlalchemy \
flask_gravatar \
flask_migrate \
simplejson \
cryptography
# Copy the docs from the local tree. Explicitly remove any existing builds that
# may be present
COPY docs /pgadmin4/docs
COPY web /pgadmin4/web
RUN rm -rf /pgadmin4/docs/en_US/_build
# Build the docs
RUN LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C /pgadmin4/docs/en_US -f Makefile.sphinx html
#########################################################################
# Create additional builders to get all of the PostgreSQL utilities
#########################################################################
FROM postgres:9.4-alpine as pg94-builder
FROM postgres:9.5-alpine as pg95-builder
FROM postgres:9.6-alpine as pg96-builder
FROM postgres:10-alpine as pg10-builder
FROM postgres:11-alpine as pg11-builder
FROM postgres:12-alpine as pg12-builder
FROM alpine:3.10 as tool-builder
# Copy the PG binaries
COPY --from=pg94-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-9.4/
COPY --from=pg94-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-9.4/
COPY --from=pg94-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-9.4/
COPY --from=pg94-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-9.4/
COPY --from=pg95-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-9.5/
COPY --from=pg95-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-9.5/
COPY --from=pg96-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-9.6/
COPY --from=pg96-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-9.6/
COPY --from=pg96-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-9.6/
COPY --from=pg96-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-9.6/
COPY --from=pg10-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-10/
COPY --from=pg10-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-10/
COPY --from=pg11-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-11/
COPY --from=pg11-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-11/
COPY --from=pg12-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-12/
COPY --from=pg12-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-12/
#########################################################################
# Assemble everything into the final container.
#########################################################################
FROM python:3.7-alpine3.10
COPY --from=tool-builder /usr/local/pgsql /usr/local/
WORKDIR /pgadmin4
ENV PYTHONPATH=/pgadmin4
# Copy in the code and docs
COPY --from=app-builder /pgadmin4/web /pgadmin4
COPY --from=docs-builder /pgadmin4/docs/en_US/_build/html/ /pgadmin4/docs
COPY requirements.txt /pgadmin4/requirements.txt
# Install build-dependencies, build & install C extensions and purge deps in
# one RUN step
RUN apk add --no-cache --virtual \
build-deps \
build-base \
postgresql-dev \
libffi-dev \
linux-headers && \
apk add \
postfix \
postgresql-client \
postgresql-libs && \
pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt && \
pip install --no-cache-dir gunicorn && \
apk del --no-cache build-deps
# Copy the runner script
COPY pkg/docker/run_pgadmin.py /pgadmin4
COPY pkg/docker/entrypoint.sh /entrypoint.sh
# Precompile and optimize python code to save time and space on startup
RUN python -O -m compileall -x node_modules /pgadmin4
# Finish up
VOLUME /var/lib/pgadmin
EXPOSE 80 443
ENTRYPOINT ["/entrypoint.sh"]
+9 -2
View File
@@ -280,8 +280,15 @@ REM Main build sequence Ends
ECHO Staging PostgreSQL components...
COPY "%PGDIR%\bin\libpq.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
COPY "%PGDIR%\bin\ssleay32.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
COPY "%PGDIR%\bin\libeay32.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
IF EXIST "%PGDIR%\bin\libcrypto-1_1.dll" (
REM OpenSSL 1.1.1
COPY "%PGDIR%\bin\libcrypto-1_1.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
COPY "%PGDIR%\bin\libssl-1_1.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
) ELSE (
REM OpenSSL 1.0.2
COPY "%PGDIR%\bin\ssleay32.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
COPY "%PGDIR%\bin\libeay32.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
)
IF EXIST "%PGDIR%\bin\libintl-*.dll" COPY "%PGDIR%\bin\libintl-*.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
IF EXIST "%PGDIR%\bin\libiconv-*.dll" COPY "%PGDIR%\bin\libiconv-*.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
IF EXIST "%PGDIR%\bin\zlib.dll" COPY "%PGDIR%\bin\zlib.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
+31 -8
View File
@@ -9,6 +9,10 @@
SHELL = /bin/sh
APP_NAME := $(shell grep ^APP_NAME web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
APP_RELEASE := $(shell grep ^APP_RELEASE web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
#########################################################################
# High-level targets
#########################################################################
@@ -20,7 +24,13 @@ appbundle: docs
./pkg/mac/build.sh
install-node:
cd web && yarn install
cd web && npm install
cd web && npm audit fix
rm -f web/yarn.lock
cd web && yarn import
cd web && yarn audit
rm -f package-lock.json
rm -f web/package-lock.json
bundle:
cd web && yarn run bundle
@@ -31,8 +41,20 @@ bundle-dev:
linter:
cd web && yarn run linter
check: install-node bundle linter
cd web && pycodestyle --config=.pycodestyle . && yarn run karma start --single-run && python regression/runtests.py
check: install-node bundle linter check-pep8
cd web && yarn run karma start --single-run && python regression/runtests.py
check-audit:
cd web && yarn run audit
check-auditjs:
cd web && yarn run auditjs
check-auditjs-html:
cd web && yarn run auditjs-html
check-auditpy:
cd web && yarn run auditpy
check-pep8:
pycodestyle --config=.pycodestyle docs/
@@ -43,6 +65,9 @@ check-pep8:
check-python:
cd web && python regression/runtests.py --exclude feature_tests
check-resql:
cd web && python regression/runtests.py --pkg resql --exclude feature_tests
check-feature: install-node bundle
cd web && python regression/runtests.py --pkg feature_tests
@@ -56,7 +81,7 @@ runtime:
cd runtime && qmake CONFIG+=release && make
# Include all clean sub-targets in clean
clean: clean-appbundle clean-docker clean-dist clean-docs clean-node clean-pip clean-src clean-runtime
clean: clean-appbundle clean-dist clean-docs clean-node clean-pip clean-src clean-runtime
rm -rf web/pgadmin/static/js/generated/*
rm -rf web/pgadmin/static/js/generated/.cache
rm -rf web/pgadmin/static/css/generated/*
@@ -69,9 +94,6 @@ clean-runtime:
clean-appbundle:
rm -rf mac-build/
clean-docker:
rm -rf docker-build/
clean-dist:
rm -rf dist/
@@ -88,7 +110,8 @@ clean-src:
rm -rf src-build/
docker:
./pkg/docker/build.sh
echo $(APP_NAME)
docker build -t ${APP_NAME} -t $(APP_NAME):latest -t $(APP_NAME):$(APP_RELEASE) -t $(APP_NAME):$(APP_RELEASE).$(APP_REVISION) .
docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html
+3 -2
View File
@@ -33,8 +33,9 @@ Click the *Definition* tab to continue.
Use the fields in the *Definition* tab to define the check constraint:
* Provide the expression that a row must satisfy in the *Check* field.
* Move the *No Inherit?* switch to the *Yes* position to specify this constraint
is automatically inherited by a table's children. The default is *No*.
* Move the *No Inherit?* switch to the *Yes* position to specify that this
constraint is not automatically inherited by a table's children. The default
is *No*, meaning that the constraint will be inherited by any children.
* Move the *Don't validate?* switch to the *No* position to skip validation of
existing data; the constraint may not hold for all rows in the table. The
default is *Yes*.
+60
View File
@@ -39,9 +39,69 @@ are disabled if inapplicable.)
a text value.
* Use the drop-down listbox next to *Collation* to apply a collation setting to
the column.
Click the *Constraints* tab to continue.
.. image:: images/column_constraints.png
:alt: Column dialog constraints tab
:align: center
Use the fields in the *Constraints* tab to specify constraints for the column.
(Fields are disabled if inapplicable.)
* Use the *Default Value* field to specify a default data value.
* Move the *Not Null* switch to the *Yes* position to specify the column may not
contain null values. The default is *No*.
* Use the *Type* field to specify the column type (NONE/IDENTITY/GENERATED).
The default is *NONE*.
Click the *IDENTITY* type to create Identity column.
.. image:: images/column_constraint_identity.png
:alt: Column dialog constraints tab
:align: center
Use the following fields to create *IDENTITY* column. Identity columns are
applicable for PG/EPAS version 10 and above.
* Use the *Identity* field to specify ALWAYS or BY DEFAULT. This clause is
used to determine how the sequence value is given precedence over a
user-specified value in an INSERT statement.
* Use the *Increment* field to specify which value is added to the current
sequence value to create a new value.
* Provide a value in the *Start* field to specify the beginning value of the
sequence. The default starting value is MINVALUE for ascending sequences and
MAXVALUE for descending ones.
* Provide a value in the *Minimum* field to specify the minimum value a sequence
can generate. If this clause is not supplied or NO MINVALUE is specified,
then defaults will be used. The defaults are 1 and -263-1 for ascending and
descending sequences, respectively.
* Provide a value in the *Maximum* field to specify the maximum value for the
sequence. If this clause is not supplied or NO MAXVALUE is specified, then
default values will be used. The defaults are 263-1 and -1 for ascending and
descending sequences, respectively.
* Provide a value in the *Cache* field to specify how many sequence numbers are
to be preallocated and stored in memory for faster access. The minimum value
is 1 (only one value can be generated at a time, i.e., no cache), and this is
also the default.
* Move the *Cycled* switch to the *Yes* position to allow the sequence to wrap
around when the MAXVALUE or the MINVALUE has been reached by an ascending or
descending sequence respectively. If the limit is reached, the next number
generated will be the MINVALUE or MAXVALUE, respectively. The default is *No*.
Click the *GENERATED* type to create Generated column.
.. image:: images/column_constraint_generated.png
:alt: Column dialog constraints tab
:align: center
Use the following fields to create *GENERATED* column. Generated columns are
applicable for PG/EPAS version 12 and above.
* Use the *Expression* field to specify the generation expression. It can
refer to other columns in the table, but not other generated columns.
Any functions and operators used must be immutable. References to other
tables are not allowed.
Click the *Variables* tab to continue.
+76
View File
@@ -0,0 +1,76 @@
.. _compound_trigger_dialog:
********************************
`Compound Trigger Dialog`:index:
********************************
Use the *Compound Trigger* dialog to create a compound trigger or modify an
existing compound trigger. *Compound Trigger* is supported only for EPAS server
12 and above. A compound trigger executes a specified code when certain events
occur.
The *Compound Trigger* dialog organizes the development of a compound trigger
through the following dialog tabs: *General*, *Events*, and *Code*. The *SQL*
tab displays the SQL code generated by dialog selections.
.. image:: images/compound_trigger_general.png
:alt: Compound Trigger dialog general tab
:align: center
Use the fields in the *General* tab to identify the compound trigger:
* Use the *Name* field to add a descriptive name for the compound trigger. This
must be distinct from the name of any other compound trigger for the same table.
The name will be displayed in the *pgAdmin* tree control.
* Store notes about the compound trigger in the *Comment* field.
Click the *Events* tab to continue.
.. image:: images/compound_trigger_events.png
:alt: Compound Trigger dialog events tab
:align: center
Use the fields in the *Events* tab to specify how and when the compound trigger fires:
* Select the type of event(s) that will invoke the compound trigger; to select
an event type, move the switch next to the event to the *YES* position.
The supported event types are *INSERT*, *UPDATE*, *DELETE* and *TRUNCATE*.
Views cannot have TRUNCATE triggers.
* Use the *When* field to provide a boolean condition that will invoke the
compound trigger.
* If defining a column-specific compound trigger, use the *Columns* field to
specify the columns or columns that are the target of the compound trigger.
Click the *Code* tab to continue.
.. image:: images/compound_trigger_code.png
:alt: Compound Trigger dialog code tab
:align: center
Use the *Code* field to specify the code for the five timing events
*BEFORE STATEMENT*, *AFTER STATEMENT*, *BEFORE EACH ROW*, *AFTER EACH ROW*,
*INSTEAD OF EACH ROW* that will be invoked when the compound trigger fires.
Basic template is provided with place holders.
Click the *SQL* tab to continue.
Your entries in the *Compound Trigger* dialog generate a SQL command (see an example
below). Use the *SQL* tab for review; revisit or switch tabs to make any changes
to the SQL command.
Example
*******
The following is an example of the sql command generated by user selections in
the *Compound Trigger* dialog:
.. image:: images/compound_trigger_sql.png
:alt: Compound Trigger dialog sql tab
:align: center
The example demonstrates creating a compound trigger named *test_ct*.
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
* Click the *Cancel* button to exit without saving work.
* Click the *Reset* button to restore configuration parameters.
+19 -19
View File
@@ -107,26 +107,26 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'classic'
html_theme = 'pgadmin4'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {
'collapsiblesidebar': True,
'relbarbgcolor': '#326690',
'sidebarbgcolor': '#E2E2E2',
'sidebarbtncolor': '#326690',
'sidebartextcolor': '#222222',
'sidebarlinkcolor': '#326690',
'footerbgcolor': '#222222',
'codebgcolor': '#d6effc',
'textcolor': '#222222',
'headbgcolor': '#E2E2E2',
'headtextcolor': '#326690',
'bodyfont': '"Helvetica Neue", Helvetica, Arial, sans-serif',
'headfont': '"Helvetica Neue", Helvetica, Arial, sans-serif'
}
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['./theme'] # make sphinx search for themes in current dir
# html_theme_options = {
# 'collapsiblesidebar': True,
# 'relbarbgcolor': '#326690',
# 'sidebarbgcolor': '#E2E2E2',
# 'sidebarbtncolor': '#326690',
# 'sidebartextcolor': '#222222',
# 'sidebarlinkcolor': '#326690',
# 'footerbgcolor': '#222222',
# 'codebgcolor': '#d6effc',
# 'textcolor': '#222222',
# 'headbgcolor': '#E2E2E2',
# 'headtextcolor': '#326690',
# 'bodyfont': '"Helvetica Neue", Helvetica, Arial, sans-serif',
# 'headfont': '"Helvetica Neue", Helvetica, Arial, sans-serif'
# }
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
+34
View File
@@ -0,0 +1,34 @@
.. _config_py:
***************************
`The config.py File`:index:
***************************
There are multiple configuration files that are read at startup by pgAdmin. These
are as follows:
* ``config.py``: This is the main configuration file, and should not be modified.
It can be used as a reference for configuration settings, that may be overridden
in one of the following files.
* ``config_distro.py``: This file is read after ``config.py`` and is intended for
packagers to change any settings that are required for their pgAdmin distribution.
This may typically include certain paths and file locations. This file is optional,
and may be created by packagers in the same directory as ``config.py`` if
needed.
* ``config_local.py``: This file is read after ``config_distro.py`` and is intended
for end users to change any default or packaging specific settings that they may
wish to adjust to meet local preferences or standards.This file is optional,
and may be created by users in the same directory as ``config.py`` if
needed.
.. note:: If the SERVER_MODE setting is changed in ``config_distro.py`` or ``config_local.py``,
you will most likely need to re-set the LOG_FILE, SQLITE_PATH, SESSION_DB_PATH
and STORAGE_DIR values as well as they will have been set based on the default
configuration or overridden by the runtime.
The default ``config.py`` file is shown below for reference:
.. literalinclude:: ../../web/config.py
:language: python
+7
View File
@@ -24,6 +24,13 @@ dialog, right-click on the *Servers* node of the tree control, and select
server_dialog
A master password is required to secure and later unlock saved server passwords.
It is set by the user and can be disabled using config.
.. toctree::
master_password
After defining a server connection, right-click on the server name, and select
*Connect to server* to authenticate with the server, and start using pgAdmin to
manage objects that reside on the server.
+258 -26
View File
@@ -22,6 +22,7 @@ server:
* PostgreSQL 9.6: */usr/local/pgsql-9.6*
* PostgreSQL 10: */usr/local/pgsql-10*
* PostgreSQL 11: */usr/local/pgsql-11*
* PostgreSQL 12: */usr/local/pgsql-12*
The most recent version of the utilities is used by default; this may be
changed in the :ref:`preferences`.
@@ -31,19 +32,19 @@ Environment Variables
The container will accept the following variables at startup:
*PGADMIN_DEFAULT_EMAIL*
**PGADMIN_DEFAULT_EMAIL**
This is the email address used when setting up the initial administrator account
to login to pgAdmin. This variable is required and must be set at launch time.
*PGADMIN_DEFAULT_PASSWORD*
**PGADMIN_DEFAULT_PASSWORD**
This is the password used when setting up the initial administrator account to
login to pgAdmin. This variable is required and must be set at launch time.
*PGADMIN_ENABLE_TLS*
**PGADMIN_ENABLE_TLS**
Default: <null>
*Default: <null>*
If left un-set, the container will listen on port 80 for connections in plain
text. If set to any value, the container will listen on port 443 for TLS
@@ -53,29 +54,51 @@ When TLS is enabled, a certificate and key must be provided. Typically these
should be stored on the host file system and mounted from the container. The
expected paths are /certs/server.crt and /certs/server.key
*PGADMIN_LISTEN_ADDRESS*
**PGADMIN_LISTEN_ADDRESS**
Default: [::]
*Default: [::]*
Specify the local address that the servers listens on. The default should work
for most users - in IPv4-only environments, this may need to be set to
127.0.0.1.
*PGADMIN_LISTEN_PORT*
**PGADMIN_LISTEN_PORT**
Default: 80 or 443 (if TLS is enabled)
*Default: 80 or 443 (if TLS is enabled)*
Allows the port that the server listens on to be set to a specific value rather
than using the default.
*GUNICORN_THREADS*
**PGADMIN_SERVER_JSON_FILE**
Default: 25
*Default: /pgadmin4/servers.json*
Override the default file path for the server definition list. See the
/pgadmin4/servers.json mapped file below for more information.
**GUNICORN_THREADS**
*Default: 25*
Adjust the number of threads the Gunicorn server uses to handle incoming
requests. This should typically be left as-is, except in highly loaded systems
where it may be increased.
**PGADMIN_CONFIG_**
This is a variable prefix that can be used to override any of the configuration
options in pgAdmin's *config.py* file. Add the *PGADMIN_CONFIG_* prefix to any
variable name from *config.py* and give the value in the format 'string value'
for strings, True/False for booleans or 123 for numbers. See below for an
example.
Settings are written to */pgadmin4/config_distro.py* within the container, which
is read after */pgadmin4/config.py* and before */pgadmin4/config_local.py*.
Any settings given will therefore override anything in config.py, but can be
overridden by settings in config_local.py.
See :ref:`config_py` for more information on the available configuration settings.
Mapped Files and Directories
****************************
@@ -83,31 +106,33 @@ The following files or directories can be mapped from the container onto the
host machine to allow configuration to be customised and shared between
instances:
*/var/lib/pgadmin*
**/var/lib/pgadmin**
This is the working directory in which pgAdmin stores session data, user files,
configuration files, and it's configuration database. Mapping this directory
onto the host machine gives you an easy way to maintain configuration between
invocations of the container.
*/pgadmin4/config_local.py*
**/pgadmin4/config_local.py**
This file can be used to override configuration settings in pgAdmin. Settings
found in config.py can be overridden with deployment specific values if
required.
required. Settings in config_local.py will also override anything specified in
the container environment through *PGADMIN_CONFIG_* prefixed variables.
*/pgadmin4/servers.json*
**/pgadmin4/servers.json**
If this file is mapped, server definitions found in it will be loaded at launch
time. This allows connection information to be pre-loaded into the instance of
pgAdmin in the container.
pgAdmin in the container. Note that server definitions are only loaded on first
launch, i.e. when the configuration database is created, and not on subsequent
launches using the same configuration database.
*/certs/server.cert*
**/certs/server.cert**
If TLS is enabled, this file will be used as the servers TLS certificate.
*/certs/server.key*
**/certs/server.key**
If TLS is enabled, this file will be used as the key file for the servers TLS
certificate.
@@ -121,8 +146,21 @@ Run a simple container over port 80:
docker pull dpage/pgadmin4
docker run -p 80:80 \
-e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \
-e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \
-d dpage/pgadmin4
Run a simple container over port 80, setting some configuration options:
.. code-block:: bash
docker pull dpage/pgadmin4
docker run -p 80:80 \
-e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \
-e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \
-e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \
-e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \
-d dpage/pgadmin4
Run a TLS secured container using a shared config/storage directory in
@@ -133,11 +171,205 @@ Run a TLS secured container using a shared config/storage directory in
docker pull dpage/pgadmin4
docker run -p 443:443 \
-v "/private/var/lib/pgadmin:/var/lib/pgadmin" \
-v "/path/to/certificate.cert:/certs/server.cert" \
-v "/path/to/certificate.key:/certs/server.key" \
-v "/tmp/servers.json:/servers.json" \
-v /private/var/lib/pgadmin:/var/lib/pgadmin \
-v /path/to/certificate.cert:/certs/server.cert \
-v /path/to/certificate.key:/certs/server.key \
-v /tmp/servers.json:/servers.json \
-e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \
-e 'PGADMIN_ENABLE_TLS=True' \
-d dpage/pgadmin4
Reverse Proxying
****************
Sometimes it's desirable to have users connect to pgAdmin through a reverse
proxy rather than directly to the container it's running in. The following
examples show how this can be achieved. With traditional reverse proxy servers
such as `Nginx <https://www.nginx.com/>`_, pgAdmin is running in a container on
the same host, with port 5050 on the host mapped to port 80 on the container,
for example:
.. code-block:: bash
docker pull dpage/pgadmin4
docker run -p 5050:80 \
-e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \
-e "PGADMIN_ENABLE_TLS=True" \
-d dpage/pgadmin4
-d dpage/pgadmin4
pgAdmin X-Forwarded-* Configuration
-----------------------------------
pgAdmin needs to understand how many proxies set each header so it knows what
values to trust. The configuration parameters for the X-Forwarded-* options
which are used for this purpose are shown below, along with their default
values.
pgAdmin is configured by default to be able to run behind a reverse proxy even
on a non-standard port and these config options don't normally need to be
changed. If you're running an unusual configuration (such as multiple reverse
proxies) you can adjust the configuration to suit.
.. code-block:: python
# Number of values to trust for X-Forwarded-For
PROXY_X_FOR_COUNT = 1
# Number of values to trust for X-Forwarded-Proto.
PROXY_X_PROTO_COUNT = 0
# Number of values to trust for X-Forwarded-Host.
PROXY_X_HOST_COUNT = 0
# Number of values to trust for X-Forwarded-Port.
PROXY_X_PORT_COUNT = 1
# Number of values to trust for X-Forwarded-Prefix.
PROXY_X_PREFIX_COUNT = 0
HTTP via Nginx
--------------
A configuration similar to the following can be used to create a simple HTTP
reverse proxy listening for all hostnames with `Nginx
<https://www.nginx.com/>`_:
.. code-block:: nginx
server {
listen 80;
server_name _;
location / {
proxy_set_header Host $host;
proxy_pass http://localhost:5050/;
proxy_redirect off;
}
}
If you wish to host pgAdmin under a subdirectory rather than on the root of the
server, you must specify the location and set the *X-Script-Name* header which
tells the pgAdmin container how to rewrite paths:
.. code-block:: nginx
server {
listen 80;
server_name _;
location /pgadmin4/ {
proxy_set_header X-Script-Name /pgadmin4;
proxy_set_header Host $host;
proxy_pass http://localhost:5050/;
proxy_redirect off;
}
}
If Nginx is also running in a container, there is no need to map the pgAdmin
port to the host, provided the two containers are running in the same Docker
network. In such a configuration, the *proxy_pass* option would be changed to
point to the pgAdmin container within the Docker network.
HTTPS via Nginx
---------------
The following configuration can be used to serve pgAdmin over HTTPS to the user
whilst the backend container is serving plain HTTP to the proxy server. In this
configuration we not only set *X-Script-Name*, but also *X-Scheme* to tell the
pgAdmin server to generate any URLs using the correct scheme. A redirect from
HTTP to HTTPS is also included. The certificate and key paths may need to be
adjusted as appropriate to the specific deployment:
.. code-block:: nginx
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name _;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location /pgadmin4/ {
proxy_set_header X-Script-Name /pgadmin4;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $host;
proxy_pass http://localhost:5050/;
proxy_redirect off;
}
}
Traefik
-------
Configuring `Traefik <https://traefik.io/>`_ is straightforward for either HTTP
or HTTPS when running pgAdmin in a container as it will automatically configure
itself to serve content from containers that are running on the local machine,
virtual hosting them at *<container_name>.<domain_name>*, where the domain
name is that specified in the Traefik configuration. The container is typically
launched per the example below:
.. code-block:: bash
docker pull dpage/pgadmin4
docker run --name "pgadmin4" \
-e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \
-d dpage/pgadmin4
Note that the TCP/IP port has not been mapped to the host as it was in the
Nginx example, and the container name has been set to a known value as it will
be used as the hostname and may need to be added to the DNS zone file.
The following configuration will listen on ports 80 and 443, redirecting 80 to
443, using the default certificate shipped with Traefik. See the Traefik
documentation for options to use certificates from LetsEncrypt or other issuers.
.. code-block:: ini
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[docker]
domain = "domain_name"
watch = true
If you wish to host pgAdmin under a subdirectory using Traefik, the
configuration changes are typically made to the way the container is launched
and not to Traefik itself. For example, to host pgAdmin under */pgadmin4/*
instead of at the root directory, the Traefik configuration above may be used if
the container is launched like this:
.. code-block:: bash
docker pull dpage/pgadmin4
docker run --name "pgadmin4" \
-e "PGADMIN_DEFAULT_EMAIL=user@domain.com" \
-e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" \
-e "SCRIPT_NAME=/pgadmin4" \
-l "traefik.frontend.rule=PathPrefix:/pgadmin4" \
-d dpage/pgadmin4
The *SCRIPT_NAME* environment variable has been set to tell the container it is
being hosted under a subdirectory (in the same way as the *X-Script-Name* header
is used with Nginx), and a label has been added to tell Traefik to route
requests under the subdirectory to this container.
+3 -2
View File
@@ -12,7 +12,8 @@ will provide detailed information about creating a custom deployment.
.. toctree::
:maxdepth: 2
config_py
desktop_deployment
server_deployment
container_deployment
container_deployment
+2 -20
View File
@@ -36,28 +36,10 @@ this is overridden by the desktop runtime at startup. In most environments, no
Python configuration is required unless you wish to override other default
settings.
There are multiple configuration files that are read at startup by pgAdmin. These
are as follows:
* ``config.py``: This is the main configuration file, and should not be modified.
It can be used as a reference for configuration settings, that may be overridden
in one of the following files.
* ``config_distro.py``: This file is read after ``config.py`` and is intended for
packagers to change any settings that are required for their pgAdmin distribution.
This may typically include certain paths and file locations.
* ``config_local.py``: This file is read after ``config_distro.py`` and is intended
for end users to change any default or packaging specific settings that they may
wish to adjust to meet local preferences or standards.
.. note:: If the SERVER_MODE setting is changed in ``config_distro.py`` or ``config_local.py``,
you will most likely need to re-set the LOG_FILE, SQLITE_PATH, SESSION_DB_PATH
and STORAGE_DIR values as well as they will have been set based on the default
configuration or overridden by the runtime.
See :ref:`config_py` for more information on configuration settings.
Runtime
-------
*******
When executed, the runtime will automatically try to execute the pgAdmin Python
application. If execution fails, it will prompt you to adjust the Python Path
+9 -4
View File
@@ -35,6 +35,8 @@ disabled in either mode. Please see
:ref:`The Query Tool Toolbar <query_tool_toolbar>` for a description of the
available controls.
.. _data-grid:
The Data Grid
*************
@@ -48,7 +50,7 @@ To modify the displayed data:
the field. Modify the content in the square in which it is displayed.
* To change a non-numeric value within the grid, double-click the content to
access the edit bubble. After modifying the contentof the edit bubble, click
the *Save* button to display your changes in the data grid, or *Cancel* to
the *Ok* button to display your changes in the data grid, or *Cancel* to
exit the edit bubble without saving.
To enter a newline character, click Ctrl-Enter or Shift-Enter. Newline
@@ -70,9 +72,7 @@ quotes to the table, you need to escape these quotes, by typing \'\'
To delete a row, press the *Delete* toolbar button. A popup will open, asking
you to confirm the deletion.
To commit the changes to the server, select the *Save* toolbar button.
Modifications to a row are written to the server automatically when you select
a different row.
To commit the changes to the server, select the *Save Data* toolbar button.
**Geometry Data Viewer**
@@ -138,3 +138,8 @@ To delete a row from the grid, click the trash icon.
* Click the *Help* button (?) to access online help.
* Click the *Ok* button to save work.
* Click the *Close* button to discard current changes and close the dialog.
.. toctree::
:maxdepth: 2
viewdata_filter
+26 -25
View File
@@ -9,7 +9,7 @@ a function, the new function is not the same entity as the old; you must drop
existing rules, views, triggers, etc. that refer to the old function.
The *Function* dialog organizes the development of a function through the
following dialog tabs: *General*, *Definition*, *Options*, *Arguments*,
following dialog tabs: *General*, *Definition*, *Code*, *Options*,
*Parameters*, and *Security*. The *SQL* tab displays the SQL code generated by
dialog selections.
@@ -39,6 +39,27 @@ Use the fields in the *Definition* tab to define the function:
returned by the function, if any.
* Use the drop-down listbox next to *Language* to select the implementation
language. The default is *sql*.
* Use the fields in the *Arguments* to define an argument. Click the *Add*
icon (+) to set parameters and values for the argument:
* Use the drop-down listbox in the *Data type* field to select a data type.
* Use the drop-down listbox in the *Mode* field to select a mode. Select *IN*
for an input parameter; select *OUT* for an output parameter; select *INOUT*
for both an input and an output parameter; or, select *VARIADIC* to specify a
VARIADIC parameter.
* Provide a name for the argument in the *Argument Name* field.
* Specify a default value for the argument in the *Default Value* field.
Click the *Add* icon (+) to define another argument; to discard an argument,
click the trash icon to the left of the row and confirm deletion in the *Delete
Row* popup.
Click the *Code* tab to continue.
.. image:: images/function_code.png
:alt: Function dialog code tab
:align: center
* Use the *Code* field to write the code that will execute when the function
is called.
@@ -87,27 +108,8 @@ function:
The default assumption is 1000 rows.
* Move the *Leak proof?* switch to indicate whether the function has side
effects. The default is *No*. This option can only be set by the superuser.
Click the *Arguments* tab to continue.
.. image:: images/function_arguments.png
:alt: Function dialog arguments tab
:align: center
Use the fields in the *Arguments* tab to define an argument. Click the *Add*
icon (+) to set parameters and values for the argument:
* Use the drop-down listbox in the *Data type* field to select a data type.
* Use the drop-down listbox in the *Mode* field to select a mode. Select *IN*
for an input parameter; select *OUT* for an output parameter; select *INOUT*
for both an input and an output parameter; or, select *VARIADIC* to specify a
VARIADIC parameter.
* Provide a name for the argument in the *Argument Name* field.
* Specify a default value for the argument in the *Default Value* field.
Click the *Add* icon (+) to define another argument; to discard an argument,
click the trash icon to the left of the row and confirm deletion in the *Delete
Row* popup.
* Use the *Support function* field to specify a planner support function to
use for the function.
Click the *Parameters* tab to continue.
@@ -175,9 +177,8 @@ the *Function* dialog:
:alt: Function dialog sql tab
:align: center
The example demonstrates creating an *edbspl* function named *emp_comp*. The
function adds two columns (p_sal and p_comm), and then uses the result to
compute a yearly salary, returning a NUMERIC value.
The example demonstrates creating an *plpgsql* function named *hire_salesmen*. The
function have three columns (p_ename, p_sal and p_comm).
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 43 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 37 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 42 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 62 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 57 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 70 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 39 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 57 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 89 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 43 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 112 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 79 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 100 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 104 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 143 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 49 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 84 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 123 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 44 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 35 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 59 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 45 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 58 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 75 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 45 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 63 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 125 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 43 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 92 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 39 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 45 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 111 KiB

+92 -65
View File
@@ -64,6 +64,29 @@ Use the shortcuts below to navigate the tabsets on dialogs:
| Control+Shift+] | Dialog tab forward |
+----------------------------+-------------------------------------------------------+
Property Grid Controls
**********************
Use the shortcuts below when working with property grid controls:
.. table::
:class: longtable
:widths: 2 3
+----------------------------+-------------------------------------------------------+
| Shortcut for all platforms | Function |
+============================+=======================================================+
| Control+Shift+A | Add row in Grid |
+----------------------------+-------------------------------------------------------+
| Tab | Move focus to the next control |
+----------------------------+-------------------------------------------------------+
| Shift+Tab | Move focus to the previous control |
+----------------------------+-------------------------------------------------------+
| Return | Pick the selected an item in a combo box |
+----------------------------+-------------------------------------------------------+
| Control+Shift+A | Add row in Grid |
+----------------------------+-------------------------------------------------------+
SQL Editors
***********
@@ -73,49 +96,49 @@ When using the syntax-highlighting SQL editors, the following shortcuts are avai
:class: longtable
:widths: 2 2 3
+--------------------------+------------------+-------------------------------------+
| Shortcut (Windows/Linux) | Shortcut (Mac) | Function |
+==========================+==================+=====================================+
| Alt+Left | Option+Left | Move to the beginning of the line |
+--------------------------+------------------+-------------------------------------+
| Alt+Right | Option+Right | Move to the end of the line |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Alt+Left | Cmd+Option+Left | Move left one word |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Alt+Right | Cmd+Option+Right | Move right one word |
+--------------------------+------------------+-------------------------------------+
| Ctrl+/ | Cmd+/ | Comment selected code (Inline) |
+--------------------------+------------------+-------------------------------------+
| Ctrl+. | Cmd+. | Uncomment selected code (Inline) |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Shift+/ | Cmd+Shift+/ | Comment/Uncomment code (Block) |
+--------------------------+------------------+-------------------------------------+
| Ctrl+A | Cmd+A | Select all |
+--------------------------+------------------+-------------------------------------+
| Ctrl+C | Cmd+C | Copy selected text to the clipboard |
+--------------------------+------------------+-------------------------------------+
| Ctrl+R | Cmd+R | Redo last edit un-done |
+--------------------------+------------------+-------------------------------------+
| Ctrl+V | Cmd+V | Paste text from the clipboard |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Z | Cmd+Z | Undo last edit |
+--------------------------+------------------+-------------------------------------+
| Tab | Tab | Indent selected text |
+--------------------------+------------------+-------------------------------------+
| Shift+Tab | Shift+Tab | Un-indent selected text |
+--------------------------+------------------+-------------------------------------+
| Alt+G | Alt+G | Jump (to line:column) |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Space | Ctrl+Space | Auto-complete |
+--------------------------+------------------+-------------------------------------+
| Ctrl+F | Cmd+F | Find |
+--------------------------+------------------+-------------------------------------+
| Ctrl+G | Cmd+G | Find next |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Shift+G | Cmd+Shift+G | Find previous |
+--------------------------+------------------+-------------------------------------+
| Ctrl+Shift+F | Cmd+Shift+F | Replace |
+--------------------------+------------------+-------------------------------------+
+--------------------------+----------------------+-------------------------------------+
| Shortcut (Windows/Linux) | Shortcut (Mac) | Function |
+==========================+======================+=====================================+
| Alt + Left | Option + Left | Move to the beginning of the line |
+--------------------------+----------------------+-------------------------------------+
| Alt + Right | Option + Right | Move to the end of the line |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Alt + Left | Cmd + Option + Left | Move left one word |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Alt + Right | Cmd + Option + Right | Move right one word |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + / | Cmd + / | Comment selected code (Inline) |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + . | Cmd + . | Uncomment selected code (Inline) |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Shift + / | Cmd + Shift + / | Comment/Uncomment code (Block) |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + a | Cmd + a | Select all |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + c | Cmd + c | Copy selected text to the clipboard |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + r | Cmd + r | Redo last edit un-done |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + v | Cmd + v | Paste text from the clipboard |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + z | Cmd + z | Undo last edit |
+--------------------------+----------------------+-------------------------------------+
| Tab | Tab | Indent selected text |
+--------------------------+----------------------+-------------------------------------+
| Shift + Tab | Shift + Tab | Un-indent selected text |
+--------------------------+----------------------+-------------------------------------+
| Alt + g | Option + g | Jump (to line:column) |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Space | Ctrl + Space | Auto-complete |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + f | Cmd + f | Find |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + g | Cmd + g | Find next |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Shift + g | Cmd + Shift + g | Find previous |
+--------------------------+----------------------+-------------------------------------+
| Ctrl + Shift + f | Cmd + Shift + f | Replace |
+--------------------------+----------------------+-------------------------------------+
Query Tool
**********
@@ -131,9 +154,11 @@ When using the Query Tool, the following shortcuts are available:
+==========================+====================+===================================+
| F5 | F5 | Execute query |
+--------------------------+--------------------+-----------------------------------+
| F6 | F6 | Save data changes |
+--------------------------+--------------------+-----------------------------------+
| F7 | F7 | EXPLAIN query |
+--------------------------+--------------------+-----------------------------------+
| Shift+F7 | Shift+F7 | EXPLAIN ANALYZE query |
| Shift + F7 | Shift + F7 | EXPLAIN ANALYZE query |
+--------------------------+--------------------+-----------------------------------+
| F8 | F8 | Execute query to CSV file |
+--------------------------+--------------------+-----------------------------------+
@@ -190,11 +215,11 @@ When using the Debugger, the following shortcuts are available:
+--------------------------+--------------------+-----------------------------------+
| <accesskey> + s | <accesskey> + s | Stop |
+--------------------------+--------------------+-----------------------------------+
| Alt + Shift + q | Alt + Shift + q | Enter or Edit values in Grid |
| Alt + Shift + q | Option + Shift + q | Enter or Edit values in Grid |
+--------------------------+--------------------+-----------------------------------+
Inner Panel Navigation
**********************
Inner Tab and Panel Navigation
******************************
When using the Query Tool and Debugger, the following shortcuts are available
for inner panel navigation:
@@ -203,13 +228,15 @@ for inner panel navigation:
:class: longtable
:widths: 2 2 3
+--------------------------+---------------------------+------------------------------+
| Shortcut (Windows/Linux) | Shortcut (Mac) | Function |
+==========================+===========================+==============================+
| Alt + Shift + Right Arrow| Alt + Shift + Right Arrow | Move to next inner panel |
+--------------------------+---------------------------+------------------------------+
| Alt + Shift + Left Arrow | Alt + Shift + Left Arrow | Move to previous inner panel |
+--------------------------+---------------------------+------------------------------+
+--------------------------+---------------------------+------------------------------------+
| Shortcut (Windows/Linux) | Shortcut (Mac) | Function |
+==========================+===========================+====================================+
| Alt + Shift + ] | Alt + Shift + ] | Move to next tab within a panel |
+--------------------------+---------------------------+------------------------------------+
| Alt + Shift + [ | Alt + Shift + [ | Move to previous tab within a panel|
+--------------------------+---------------------------+------------------------------------+
| Alt + Shift + Tab | Alt + Shift + Tab | Move between inner panels |
+--------------------------+---------------------------+------------------------------------+
Access Key
**********
@@ -221,14 +248,14 @@ default access keys for supported browsers.
:class: longtable
:widths: 2 1 1 1
+-------------------+------------+------------+------------+
| | Windows | Linux | Mac |
+===================+============+============+============+
| Internet Explorer | Alt | Alt | |
+-------------------+------------+------------+------------+
| Chrome | Alt | Alt | Ctrl+Alt |
+-------------------+------------+------------+------------+
| Firefox | Alt+Shift | Alt+Shift | Ctrl+Alt |
+-------------------+------------+------------+------------+
| Safari | Alt | | Ctrl+Alt |
+-------------------+------------+------------+------------+
+-------------------+-------------+-------------+---------------+
| | Windows | Linux | Mac |
+===================+=============+=============+===============+
| Internet Explorer | Alt | Alt | |
+-------------------+-------------+-------------+---------------+
| Chrome | Alt | Alt | Ctrl + Option |
+-------------------+-------------+-------------+---------------+
| Firefox | Alt + Shift | Alt + Shift | Ctrl + Option |
+-------------------+-------------+-------------+---------------+
| Safari | Alt | | Ctrl + Option |
+-------------------+-------------+-------------+---------------+
+1
View File
@@ -16,6 +16,7 @@ Use the fields in the *Login* dialog to authenticate your connection:
field.
* Provide your password in the *Password* field.
* Click the *Login* button to securely log into pgAdmin.
* Please note that, if the pgAdmin server is restarted then you will be logged out. You need to re-login to continue.
Recovering a Lost Password
**************************
+57
View File
@@ -0,0 +1,57 @@
.. _master_password:
************************
`Master Password`:index:
************************
A master password is required to secure and later unlock the saved server
passwords. This is applicable only for desktop mode users.
* You are prompted to enter the master password when you open the window for
the first time after starting the application.
* Once you set the master password, all the existing saved passwords will be
re-encrypted using the master password.
* The server passwords which are saved in the SQLite DB file are encrypted and
decrypted using the master password.
.. image:: images/master_password_set.png
:alt: Set master password
:align: center
* You can disable the master password by setting the configuration parameter
*MASTER_PASSWORD_REQUIRED=False*. See :ref:`Desktop Deployment <desktop_deployment>`
for more information.
.. note:: If the master password is disabled, then all the saved passwords will
be removed.
.. warning:: If the master password is disabled, then the saved passwords will
be encrypted using a key which is derived from information within the
configuration database. Use of a master password ensures that the encryption
key does not need to be stored anywhere, and thus prevents possible access
to server credentials if the configuration database becomes available to an
attacker.
It is **strongly** recommended that you use the master password if you use
the *Save Password* option.
* The master password is not stored anywhere on the physical storage. It is
temporarily stored in the application memory and it does not get saved when
the application is restarted.
* You are prompted to enter the master password when pgAdmin server is
restarted.
.. image:: images/master_password_enter.png
:alt: Enter master password
:align: center
* If you forget the master password, you can use the *Reset Master Password*
button to reset the password.
.. image:: images/master_password_reset.png
:alt: Reset master password
:align: center
.. warning:: Resetting the master password will also remove all saved passwords
and close all existing established connections.
+3
View File
@@ -25,6 +25,9 @@ Use the *File* menu to access the following options:
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Reset Layout* | If you have modified the workspace, click to restore the default layout. |
+-------------------------+---------------------------------------------------------------------------------------------------------+
| *Lock Layout* | Click to open a submenu to select the level for locking the UI layout |
| | This can also be changed from browser display :ref:`preferences <preferences>` |
+-------------------------+---------------------------------------------------------------------------------------------------------+
The Object Menu
***************
Loaded 100 of 1938 files, more files were not shown because too many files have changed in this diff. Show more