Compare commits

..
1311 Commits
Author SHA1 Message Date
Dave Page 405de59298 Fix name of release notes. 2018-01-10 10:45:29 +00:00
Karen Blatchley e8c05fbaa5 Add release notes for 2.1 2018-01-10 10:39:24 +00:00
Karen Blatchley 57f4131dfe Add release notes for 2.1 2018-01-10 10:38:51 +00:00
Dave Page f1e39dd20c Update version number for release. 2018-01-10 09:55:13 +00:00
Khushboo Vashi def2df9028 Fix view data for views/mat views. Fixes #2993 2018-01-10 09:32:42 +00:00
Murtuza Zabuawala aec86970f2 Add ALT tags to images for accessibility. Fixes #2902 2018-01-08 12:43:36 +00:00
Dave Page 89821c0d19 Update copyright notices for 2018. 2018-01-05 10:42:50 +00:00
Khushboo Vashi 711fbd5144 Allow use of transition tables in PG 10 triggers. Fixes #2933 2018-01-03 16:25:03 +00:00
Murtuza Zabuawala 0810c681c3 Ensure the switch animation is consistent on the table dialogue and avoid displaying an error incorrectly. Fixes #2624 2018-01-03 15:32:44 +00:00
Murtuza Zabuawala c15d814268 Clear the messages tab when running EXPLAIN/EXPLAIN ANALYZE. Fixes #2974 2018-01-03 15:19:56 +00:00
Murtuza Zabuawala e21f1e3291 Prevent multiple connections to new slow-to-respond servers being initiated in error. Fixes #2928 2018-01-03 14:49:08 +00:00
Khushboo Vashi 49dfd6fe31 Ensure invalid options can't be selected on triggers on views. Fixes #2945 2018-01-03 14:32:00 +00:00
Khushboo Vashi 90629da524 Close user language preference drop down when it loses focus. Fixes #2956 2018-01-03 13:36:49 +00:00
Murtuza Zabuawala 1dd1c10255 Do not decrypt the password when the password is 'None'. Fixes #2765
This should avoid the common but harmless exception "ValueError: IV must be 16 bytes long while decrypting the password."
2018-01-03 13:19:58 +00:00
Khushboo Vashi e64bc2a821 Show complete SQL for FTS dictionaries. Fixes #2949 2018-01-03 13:16:11 +00:00
Susan Douglas d8194e7c0f Correct the description for the host name field on the server dialogue. 2018-01-03 13:04:58 +00:00
Mark Deneen 3289a18a1a Remove any Apache HTTPD PID file before starting the container, to prevent failures during restart. 2018-01-03 12:54:52 +00:00
Neel Patel 90f5af8902 Avoid a potential crash when downloading. Fixes #2964 2017-12-19 12:20:01 +00:00
Harshal Dhumal 88bcd3b512 Make the query tool datatype test easily configurable and extendable and add support for multi-dimensional arrays and enums. 2017-12-18 15:10:47 +00:00
Dave Page 6577723a2a Fix duplicate link text 2017-12-18 11:20:41 +00:00
Dave Page 005abab7c4 Runtime version update 2017-12-18 11:13:28 +00:00
Susan Douglas 10d0307834 Doc updates for server connection dialogue and related info. 2017-12-18 11:00:11 +00:00
Dave Page d44328664a Bump version for some dev builds. 2017-12-18 10:35:58 +00:00
Begina Felicysym ebd096f5cc Updated Polish translation from Begina. Extract/update/compile as well for completeness. Current status:
1480 of 1857 messages (79%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1692 of 1857 messages (91%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1827 of 1857 messages (98%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1829 of 1857 messages (98%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1435 of 1857 messages (77%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-12-18 10:08:03 +00:00
Murtuza Zabuawala 3fe655e944 Allow selection of validation error text. Fixes #2954 2017-12-18 10:03:39 +00:00
Murtuza Zabuawala eae6f05b7c Allow files to be opened by double clicking on them. Fixes #2810 2017-12-18 09:48:14 +00:00
Murtuza Zabuawala 36d779df5d Add tab indexes for debugger controls. 2017-12-18 09:23:11 +00:00
Murtuza Zabuawala bceb6aef3c Don't try to render security URLs in desktop mode. Fixes #2952. Fixes #2922 2017-12-18 09:15:36 +00:00
Murtuza Zabuawala 937984f2dc Don't un-comment code with alt+. in the query tool. It's only supposed to respond to ctrl/cmd+. Fixes #2769 2017-12-13 15:58:00 +00:00
Susan Douglas d02a0de8c9 Preferences dialogue help update. 2017-12-13 15:47:15 +00:00
Khushboo Vashi 107795db10 Ensure column collation isn't lost when changing field size. Fixes #2779 2017-12-13 15:44:10 +00:00
Murtuza Zabuawala 96a2987ef6 Prevent attempts to select directories as files in the file dialogue. Fixes #2937 2017-12-13 15:35:08 +00:00
Murtuza Zabuawala c5d1fc8189 Ensure the datatype cache is updated when a domain is added. Fixes #2778 2017-12-13 15:17:17 +00:00
Dave Page b2e844c0ad Fix label inconsistency spotted by Susan. 2017-12-13 14:59:15 +00:00
Murtuza Zabuawala 4246a3b22f Ensure password changes are successful if authenticating using a pgpass file. Fixes #2720 2017-12-13 13:28:07 +00:00
Harshal Dhumal 55254a649f Re-hash the way that we handle rendering of special types such as arrays. Fixes #2782. Fixes #2822. 2017-12-13 11:53:27 +00:00
Khushboo Vashi 0c5a5ba9c2 Add support for editing data in tables with OIDs but no primary keys. Fixes #2849.
This patch also updates the editor to retrieve all row values on save, thus immediately showing default values and allowing subsequent editing without a refresh.
2017-12-13 10:28:31 +00:00
Susan Douglas 61080ce513 Update query tool docs. 2017-12-11 12:01:54 +00:00
Dave Page 4bcec932a3 Correct names for the Japanese translators:
Junichi Tado
Kosuke Kida
Nozomi Anzai
2017-12-07 21:31:46 +09:00
Murtuza Zabuawala 22c38e4562 Fix a reference before assignment error in the file dialogue. Fixes #2934 2017-12-06 13:42:05 +09:00
Murtuza Zabuawala f5718b9d56 Misc fixes for the pgAgent module:
1) User was allowed to enter start date ahead of end date while scheduling a job. Fixes #2921

2) Datetime picker was not displaying in the grid (sub-node collection control). Fixes #1749

3) Fixed UI issue where validation error was not displaying properly for Datetime control.
2017-12-06 12:25:45 +09:00
Chethana Kumar c74b348bac Update EXPLAIN icons. Fixes #2936 2017-12-06 11:45:02 +09:00
Dave Page 3b7656b3d5 Push HTTPD logs to container stdout/stderr as appropriate. Fixes #2920 2017-12-05 14:23:35 +09:00
Dave Page 67f0c8a39e Add license field to package.json to stop yarn bleating. 2017-12-05 14:21:13 +09:00
Murtuza Zabuawala 7fab041623 Prevent the user pressing the select button in the file manager when it is supposed to be disabled. Fixes #2923 2017-12-05 13:43:02 +09:00
Murtuza Zabuawala 136ed0d3e2 Fix debugging of self-referencing functions. Fixes #2524 2017-12-05 13:32:06 +09:00
Murtuza Zabuawala bac9c77c4e Cleanup some inconsistent error dialog titles. Fixes #2098 2017-12-02 05:12:40 +00:00
Dave Page 7e419d1bfe Add a note to the README on creating the bundle. 2017-12-02 05:12:40 +00:00
Harshal Dhumal 1a4e21e6dd Fix regression tests for password reset in server mode 2017-11-30 13:16:59 +00:00
Susan Douglas 54389595da Doc updates for resource groups and roles. 2017-11-30 12:22:22 +00:00
Harshal Dhumal f3256aef71 Don't login the user with every request in desktop mode. Just do it once. Fixes #2922 2017-11-30 12:02:41 +00:00
Harshal Dhumal 35a5cf22d5 Refuse password changes (and tell the user) if the notification email cannot be sent. Fixes #2892 2017-11-30 11:16:38 +00:00
Murtuza Zabuawala 2995d6e9c5 Fix the width of Role dialogue so tabs don't wrap. 2017-11-30 10:58:27 +00:00
Murtuza Zabuawala 389cf01af7 Cleanup the layout of the filter data dialogue. Fixes #2924 2017-11-30 10:53:48 +00:00
Chethana Kumar 709f646f5e Add a missing screenshot, and remove personal info from another. 2017-11-30 09:50:21 +00:00
Ashesh Vashi d54c35d74f Fixing the lint error messages in javascript using 'eslint --fix'
command.
2017-11-30 13:01:41 +05:30
Akshay Joshi ea82d92e41 Do not show success message, when there is an error saving the data in
the DataGrid.

Fixes #2907
2017-11-30 13:01:30 +05:30
Akshay Joshi 281b6c91b5 Using the correct type name (along with the internal name) while
generating the query for update/insert table data (Data grid).

Modified by Ashesh for array support.

Fixes #2830
2017-11-30 13:01:30 +05:30
Murtuza Zabuawala f10733e8d4 Ensure the auto-complete selection list can display longer names. Fixes #2726 2017-11-29 11:14:24 +00:00
Maxim Zakharov 4617a90123 Add missing __init__.py to backports.csv when building the MSVC windows build. Fixes #2918 2017-11-29 09:58:57 +00:00
Murtuza Zabuawala 362bd15c8e Format JSON/JSONB nicely when displaying it in the grid editor pop-up. Fixes #2748 2017-11-28 14:21:31 +00:00
Khushboo Vashi 5bfa450a5f Allow form validation messages to be close in case the eclipse anything on the form. Fixes #2859 2017-11-28 14:10:12 +00:00
Murtuza Zabuawala 9ae4a03784 Allow changing of the users password without leaving the app. Fixes #2891 2017-11-28 10:55:54 +00:00
Navnath Gadakh 035c134fed Cleanup properly after running the Foreign Table test cases. 2017-11-28 09:44:28 +00:00
Dave Page 10c8befb71 Illustrate how to set the default mail sender name. 2017-11-28 09:29:31 +00:00
Harshal Dhumal 7db7da5b0e Display process output as it happens. Fixes #2811 2017-11-27 13:00:47 +00:00
Navnath Gadakh 80c4a3fb1a Use sufficiently long random strings in test objects to avoid conflicts. 2017-11-27 12:01:50 +00:00
Murtuza Zabuawala fe7cfa35df Attempt to decode database errors based on lc_messages. Fixes #2806. Fixes #2821 2017-11-27 11:53:25 +00:00
Murtuza Zabuawala d614c88ada Ensure we don't show the full path on the server when using virtual filesystem roots in server mode for SSL certs. Fixes #2866 2017-11-27 11:25:50 +00:00
Dave Page 542f2911a3 Revert inadvertant change to doc page 2017-11-27 11:01:14 +00:00
Chethana Kumar b8c2326764 Doc screenshot update 2017-11-27 10:58:53 +00:00
Dave Page fd077e2536 Disable the line ending check entirely in eslint, as the previous platform-specific fix doesn't work with all versions. 2017-11-23 09:34:44 +00:00
Harshal Dhumal 05a00f4ac8 Make the "Save Changes" prompts in the query tool optional. Fixes #2845 2017-11-23 09:20:59 +00:00
Murtuza Zabuawala 38f111d969 Ensure the scroll location is retains in the query tool data grid if the user changes tab and then returns. Fixes #2875 2017-11-23 09:07:46 +00:00
Maxim Zakharov 5f5c590ffd Fix bundle creation on Windows which was failing due to \r\n line endings in code mirror. Fixes #2908 2017-11-23 09:02:00 +00:00
Murtuza Zabuawala fdb4fa454a Honour whitespace properly in the data grid. Fixes #2880 2017-11-22 16:48:36 +00:00
Murtuza Zabuawala 1bc318f091 Ensure newly added rows cannot be editted until we have key values. Fixes #RM2886 2017-11-22 16:38:18 +00:00
Murtuza Zabuawala f0db93cefd Improve clarity of the boolean checkbox. 2017-11-22 16:28:08 +00:00
Dave Page 8880826260 Fix a yarn warning: "warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts." 2017-11-21 17:25:28 +00:00
Murtuza Zabuawala 930dd8af1f Some browsers don't properly support tri-state checkboxes, so create our own control to handle true/false/null. Fixes #2848 2017-11-21 17:22:25 +00:00
Murtuza Zabuawala b284572afe Allow connections to be coloured in the treeview and query tool. Fixes #1383. Fixes #2802 2017-11-21 16:28:01 +00:00
Harshal Dhumal 9212699936 When selecting an SSL cert or key, update only the expected path in the UI, not all of them. Fixes #2760. Fixes #2867 2017-11-21 15:59:44 +00:00
Murtuza Zabuawala dd8e2fe8a6 Quote the owner name when creating types. Fixes #2787 2017-11-21 11:32:27 +00:00
Murtuza Zabuawala a85538a1fc Remove the artificial limit of 4000 characters from text areas. Fixes #2877 2017-11-21 11:02:21 +00:00
Neel Patel 5b5363e2c4 _blank is the correct HTML target for anchors, not _new. Fixes #2679. 2017-11-21 10:19:11 +00:00
Dave Page 182369cbab And remove the extra semicolons. Sigh. 2017-11-20 17:15:15 +00:00
Dave Page be8d3604fb Add missing semicolons. 2017-11-20 17:12:10 +00:00
Paresh More a539147a0e Fix /NOICONS switch in the windows installer. Fixes #1366 2017-11-20 16:58:35 +00:00
Murtuza Zabuawala ce246ecce4 Stop Python 2.6 barfing on newer versions of Selenium 2017-11-20 16:55:54 +00:00
Paresh More 8ff753deb8 Prevent the Windows installer accepting paths containing invalid characters. Fixes #1365 2017-11-20 16:38:20 +00:00
Khushboo Vashi 4568fe22f7 Decode the field separator and quote char if needed. 2017-11-20 16:28:13 +00:00
Neel Patel 8cc1a007b5 Ensure we can download large files and keep the user informed about progress. Fixes #2829. Fixes #2491. Fixes #2715 2017-11-20 14:43:34 +00:00
Khushboo Vashi 0c566f132e Allow configuration of CSV and clipboard formatting of query results. Fixes #2781 2017-11-20 13:50:47 +00:00
Murtuza Zabuawala 2579458091 Fix support for time without timezone. Fixes #2881 2017-11-20 13:36:50 +00:00
Murtuza Zabuawala 5fd3a7dd3d Display relevant error messages when access is denied creating a schema. Fixes #2094 2017-11-20 13:31:03 +00:00
Murtuza Zabuawala 2f17ecba76 Update selenium version 2017-11-16 14:22:44 +00:00
Harshal Dhumal 051788d040 Fix a referenced before assignment bug in connection management. Fixes #2868 2017-11-16 12:40:00 +00:00
Dave Page afd65018db Current versions of Chrome need a newer driver for selenium tests. 2017-11-16 12:13:53 +00:00
Dave Page 3c27d2fd7e Python tests don't need to have JS dependencies installed. 2017-11-16 12:01:22 +00:00
Murtuza Zabuawala 537f6f0ab1 Display long names appropriately in dialogue headers. Fixes #2278 2017-11-16 11:56:05 +00:00
Murtuza Zabuawala af2722faa3 Focus on the filter textarea when opening filter options in the query tool. 2017-11-16 11:01:40 +00:00
Dave Page cf1440f41d Properly set the hostname for SSL use in containers. 2017-11-16 09:54:44 +00:00
Neel Patel 96df3147d6 Check and attempt to fir the registry on Windows, if the text/css type is misconfigured. Fixes #2716 2017-11-15 16:33:24 +00:00
Alexander Lakhin 8f070f6095 Fix utility output capture encoding. Fixes #2854 2017-11-09 08:51:56 -05:00
Alexander Lakhin 3e1caa61e1 Russian translation update. 2017-11-09 08:45:56 -05:00
Dave Page 35b57477de Remove data grid icon for consistency with other menu options. 2017-11-07 21:20:01 -05:00
Murtuza Zabuawala be0e637718 Prevent error messages covering the last row in a grid. Fixes #2850 2017-11-07 21:07:30 -05:00
Khushboo Vashi 88cd68c2b9 Add an option to manually count rows in tables to render the properties. Fixes #2846 2017-11-07 20:27:10 -05:00
Neel Patel 8a4b2ea953 Confirm with the user before exiting the runtime. Fixes #2443 2017-11-07 20:10:55 -05:00
Murtuza Zabuawala 8b543a58fe Fix a number of graphical explain rendering issues. Fixes #2824. Fixes #2842. Fixes #2843. 2017-11-06 19:59:01 -05:00
Alexander Lakhin 187ab22d90 Further missing translation fixes. Stats now:
1481 of 1831 messages (80%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1694 of 1831 messages (92%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1748 of 1831 messages (95%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1750 of 1831 messages (95%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1436 of 1831 messages (78%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-06 19:49:20 -05:00
Chethana Kumar 2be418706d Updated colours of tree view icons, which is to be more comfortable in identifying. 2017-11-06 13:03:03 +05:30
Begina Felicysym 62e70f3c4f Update Polish translation.
1748 of 1750 messages (99%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
2017-11-05 08:36:24 -05:00
Alexander Lakhin f15f46592a Tag some translations that were not, well, tagged. Current stats:
1481 of 1777 messages (83%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1694 of 1777 messages (95%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1472 of 1777 messages (82%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1750 of 1777 messages (98%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1436 of 1777 messages (80%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-05 08:32:26 -05:00
Dave Page b2186db562 Revert "Fix a number of cases where strings were not properly marked for translation."
This reverts commit 1f23838a4c due to unintended side
effects it caused - specifically, expanding Databases on the treeview displayed
Servers again
2017-11-03 16:45:20 +00:00
Alexander Lakhin 1f23838a4c Fix a number of cases where strings were not properly marked for translation. 2017-11-03 13:10:42 +00:00
Khushboo Vashi f73ce2dfc3 Ensure estimated rows are included correctly in CREATE script for functions. Fixes #2651 2017-11-02 09:47:31 +00:00
Murtuza Zabuawala 897bf4857a Fix counted rows display in table properties. Fixes #2836 2017-11-02 09:35:44 +00:00
Alexander Lakhin 2dcd2cc77f Update Russian translation. 2017-11-01 20:23:59 +00:00
Dave Page 70d31be496 Another message catalog update. Stats:
1481 of 1750 messages (84%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1694 of 1750 messages (96%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1472 of 1750 messages (84%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1706 of 1750 messages (97%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1436 of 1750 messages (82%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-01 15:19:19 +00:00
Alexander Lakhin 23d431fb54 Remove more exclamation marks from error messages. 2017-11-01 15:18:07 +00:00
Dave Page 635d944e03 Message catalog update. Current stats look like:
1503 of 1756 messages (85%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1716 of 1756 messages (97%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1494 of 1756 messages (85%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1728 of 1756 messages (98%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1458 of 1756 messages (83%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-01 13:01:02 +00:00
Alexander Lakhin 9be1364d1a Various string improvements and fixes. 2017-11-01 12:58:19 +00:00
Murtuza Zabuawala 714a429879 Update psycopg2 requirement to ensure 10.x+ features work. 2017-11-01 12:45:00 +00:00
Dave Page 45be22b00e Output statistics when compiling messages 2017-10-31 09:16:47 +00:00
Dave Page 6a5ac730a0 Update translations 2017-10-31 09:10:17 +00:00
Alexander Lakhin 706ef38e95 Add a Russian translation 2017-10-31 09:10:00 +00:00
Alexander Lakhin 87549e0936 Add a Russian translation 2017-10-31 09:09:00 +00:00
Alexander Lakhin 8860bc3c3e Saved user language was not being picked up in case of non-server mode.
Because - the get_locale(...) function was being executed before any
request, and user login after first request. Hence - the values for
the labels in the Preferences are not being translated properly.

Fetch the raw value of user_language from configuration in case of
runtime/non-server mode to fix the issue.
2017-10-30 18:20:41 +05:30
Dave Page bc0320d21e Add a Japanese translation created by:
Junichi Tado
Nozomi Amzai
Kouske Kida
2017-10-27 14:00:09 +02:00
Dave Page 61e809b636 Update message catalogs. 2017-10-27 13:59:03 +02:00
Alexander Lakhin 0a1cf30abb Return the translations, and not empty array from the
'translations.js'.

It was regression of the commit-id:
4a91bcde30
2017-10-24 18:50:26 +05:30
Ashesh Vashi c53c6d2f48 Using 'categroy_id' instead of 'cid' in the preferences Backbone.Model,
as it is used by the Backbone.Collection to get the object by id.
2017-10-24 18:47:36 +05:30
Ashesh Vashi 8adf005ef8 Allow to send error, and warning on console from the javascript modules. 2017-10-24 16:56:17 +05:30
Dave Page a2c4fb02bc Show how the config/storage directory can be mounted on the host under docker. 2017-10-16 16:10:15 +01:00
Dave Page a9f10ddad1 Update yarn lock file. 2017-10-16 16:01:45 +01:00
Dave Page 890fece73a Fix check constraint regression tests. 2017-10-16 16:01:07 +01:00
Murtuza Zabuawala 784f3f59d8 Fix name of 'check-constraints' to follow the usual singular convention. 2017-10-16 15:40:15 +01:00
Murtuza Zabuawala 0cb57848f8 Ensure auto-indent honours the spaces/tabs config setting. Fixes #2780 2017-10-16 15:37:03 +01:00
Murtuza Zabuawala ce5f5015b3 Use HTTPS for accessing help docs. 2017-10-16 09:21:02 +01:00
Dave Page 845b296aed Add optional TLS support to the docker container. 2017-10-12 16:16:02 +01:00
Dave Page a8a2947da6 Remove the runtime zoom shortcuts from the SQL Editor shortcuts section. 2017-10-12 10:12:55 +01:00
Neel Patel 56e1fd85f4 Ensure line numbers form CodeMirror don't appear on top of menus. Fixes #2738 2017-10-12 10:07:18 +01:00
Dave Page cd7d80b650 Add a target for building PDF docs. 2017-10-11 14:57:58 +01:00
Dave Page 1f4a814e72 Remove some unused index directives. 2017-10-11 11:57:59 +01:00
Harshal Dhumal 04beec1309 Fix various issues that could cause an exception on startup. Fixes #2713 2017-10-10 09:50:47 +01:00
Murtuza Zabuawala 2f5a2b2392 Only allow specification of a pgpass file if libpq >= 10. Fixes #2768 2017-10-10 09:31:27 +01:00
Murtuza Zabuawala 63103c7a48 Remove panels for www.pgadmin.org and www.postgresql.org as they won't work with X-Frame-Options: SAMEORIGIN which is used now. 2017-10-10 09:16:23 +01:00
Khushboo Vashi 91406d2879 Ensure HTMLMIN is only used with Python 2.7+ 2017-10-10 09:14:23 +01:00
Murtuza Zabuawala f2929046fa Refactor to remove duplicate code for the cancel/terminate buttons in the dashboard. 2017-10-09 09:18:46 +01:00
Dave Page cb25bb0e93 Add missing date. 2017-10-05 16:11:24 +01:00
Dave Page d57072b156 Bump version number for release. 2017-09-29 16:00:21 +01:00
Ashesh Vashi 5860de838a Changed the wording for 'Terminated session successfully' 2017-09-29 20:20:27 +05:30
Ashesh Vashi 4b2b08174c Do not show the terminate session icon in red as per Dave 2017-09-29 20:17:51 +05:30
Ashesh Vashi 2b64834179 Allow to terminate a session from the server, and database dashboard. 2017-09-29 20:10:33 +05:30
Ashesh Vashi 0d754fc39f Remove the reference of font-mfizz completely. 2017-09-29 11:26:45 +05:30
Ashesh Vashi 9c6c32e936 Resolved the logo issue.
For some unknown reason, font-mfizz was showing the slonik icon in
italic. Even after upgrading it to the latest version of font-mfizz, the
problem was not resolved.

So - instead of using the vector font, using the PostgreSQL SVG logo as
the application icon, and documentation link on dashboard now.
2017-09-29 11:07:26 +05:30
Surinder Kumar bcce574e83 Using the correct path for the font-mfizz stylesheet.
Reported by: Neel Patel
2017-09-29 09:17:39 +05:30
Akshay Joshi 5a132a547f Ensure using an alternate role to connect to a database doesn't cause an error when checking recovery state. Fixes #2742 2017-09-28 15:09:49 +01:00
Dave Page 9588d76b75 Add missing issue, per Harshal. 2017-09-28 10:45:23 +01:00
Dave Page 8ea85221f0 Update message catalogs. 2017-09-28 10:29:46 +01:00
Dave Page 50a78abf48 Update release notes. 2017-09-28 10:21:40 +01:00
Dave Page 739d8e2f1f Dead code cleanup. 2017-09-28 10:16:49 +01:00
Murtuza Zabuawala f855ed88ce Allow selection of SSL certificates and pgpass files in connection properties. Fixes #2649. Fixes #2650 2017-09-28 10:02:33 +01:00
Dave Page 510bc6c974 Update release notes. 2017-09-27 16:46:03 +01:00
Ashesh Vashi cc10a4ee54 Upgraded the font-mfizz to latest version (v:2.4.1) to resolve an issue,
about showing the PostgreSQL logo in italic in runtime on windows.
2017-09-27 07:41:15 +05:30
Chethana Kumar 62c9376546 Improve icon alignment. 2017-09-22 14:29:34 +01:00
Dave Page bcba596408 Add the ability to build a basic Docker container. 2017-09-21 16:49:37 +01:00
Dave Page 18dc938556 Use the correct lexer in the Apache/Windows docs. 2017-09-20 16:42:47 +01:00
Surinder Kumar 263e235862 Clarify how virtual envs can be used in WSGI mode, and ensure we ship the required bits on Windows. 2017-09-20 16:22:51 +01:00
Dave Page 354679e69b Fix an issue where we were executing SELECT statements in transactions in query tool which probably is not required because SELECT statements are already protected from dirty reads. Fixes #2683 2017-09-20 11:59:37 +01:00
Murtuza Zabuawala 64159d11ce Fix font on alertify dialogues 2017-09-20 11:42:16 +01:00
Akshay Joshi 13665f68d8 Fix validation message styling on thegrant wizard. Fixes #2673 2017-09-20 11:34:01 +01:00
Murtuza Zabuawala 2ddbddba33 Improve display of error messages in the query tool. Fixes #2700 2017-09-20 11:29:24 +01:00
Akshay Joshi fe757c384b Filtered Rows dialog not opened from the context menu. Fixes #2699 2017-09-19 11:46:51 +05:30
Dave Page 62d7a1044e Remove unused import that was causing a hard error on Windows 2017-09-18 16:54:43 +01:00
Dave Page 5ae681f2ba Bump version for RC2 release. 2017-09-18 16:15:13 +01:00
Harshal Dhumal f0ad26ba7a Fix for Exception when the server is restarted. Fixes #2713
This issue was caused because we recently added session_write_delay in session.
So session won't be written/updated to disk from memory until specified seconds are elapsed.

However we must forcefully write/update session to disk if user loges in or out irrespective of session_write_delay to keep sessions from memory and disk in sync as user logged in status is kept in session.
2017-09-18 14:39:43 +01:00
Akshay Joshi bdc08d94c4 Fix View Data option and column config for Foreign Tables. Fixes #2691 2017-09-18 14:32:17 +01:00
Murtuza Zabuawala 8bededa859 Fix disable trigger menu option. Fixes #2707 2017-09-18 12:37:59 +01:00
Murtuza Zabuawala e64c52a446 Fix tablespace move prompt message. Fixes #2708 2017-09-18 12:36:04 +01:00
Murtuza Zabuawala 5ebfd88f11 Correct alignment of the X button on dismissable alerts. 2017-09-18 11:57:44 +01:00
Murtuza Zabuawala bc5a5a5b45 Fix error message regexp in the query tool that could fail in some cases. Fixes #2700 2017-09-18 11:55:04 +01:00
Harshal Dhumal da40573f0b Fix user manager role handling. Fixes #2641 2017-09-18 11:45:57 +01:00
Harshal Dhumal 765e130336 Support Flask-Security 3.0 2017-09-18 11:40:09 +01:00
Dave Page a317df1351 Ensure builtins.SERVER_MODE is set in the WSGI wrapper. 2017-09-18 10:33:26 +01:00
Surinder Kumar 026ef7b8b7 Support React v15.5 and later where the code fails to run because React's PropTypes is no more part of React Module. 2017-09-18 10:08:12 +01:00
Harshal Dhumal 30e7016077 Changed array representation and formatting for the data types in Query Tool and View Data. Fixes #2671 2017-09-18 12:07:15 +05:30
Murtuza Zabuawala 8150f93c06 Fix menu left-hand margin. 2017-09-15 14:45:02 +01:00
Atul Sharma c3ea3b7bdf Replace the "Roboto" font family with "Open Sans" for alertify dialogs. 2017-09-15 14:08:29 +01:00
Murtuza Zabuawala 9cfb2f3cbe Fix filtering of system schemas so pg_* is hidden but pg* is not. Fixes #2709 2017-09-15 13:50:06 +01:00
Ashesh Vashi 55e14e4d78 Handle the executor nodes, which are unknown to the Explain module,
gracefully by showing the 'ex_unknown.png' for such nodes.

Reported by: Murtuza
Refs #2706
2017-09-15 10:51:37 +05:30
Atul Sharma 788f7f3a69 Bundle fonts with pgAdmin so we have a standard set for all platforms.
Research by Shirley at Pivotal.
2017-09-13 16:01:14 +01:00
Surinder Kumar e819465e38 Always pack React in prod mode to avoid a bug in debug mode that prevents the history tab working. 2017-09-13 15:50:09 +01:00
Chethana Kumar ff79dfc186 Update cast icons with improved design. 2017-09-13 10:43:39 +01:00
Chethana Kumar 3779c36d0f Update server and database icons with a clearer design. 2017-09-13 09:59:07 +01:00
Murtuza Zabuawala 80ce889c3d Fix an issue in User mapping module where users were not listed. Fixes #2693 2017-09-13 09:53:25 +01:00
Murtuza Zabuawala 5891bda06a Fix an issue where base types are not displaying in the create/edit domain dialog, also corrected the condition to show hidden system types. Fixes #2692 2017-09-13 09:52:16 +01:00
Surinder Kumar 120dbcc7d8 Run webpack in production mode when building for releases. Fixes #2660 2017-09-13 09:47:01 +01:00
Teng Zhang 512afd6618 Highlighting greenplum keywords in sql editor 2017-09-11 19:39:50 +05:30
Chethana Kumar f79b7f26b1 Using the svg icons for domain constraint, and server browser nodes. 2017-09-11 18:24:04 +05:30
Dave Page 51fd8f29fb Add new icons to release notes. 2017-09-11 11:22:43 +01:00
Dave Page 732c373dfb Use wheel==0.29.0 with Python 2.6 and 3.3. 2017-09-11 11:06:29 +01:00
Dave Page cca7526b9b Remove menu icon tests that are no longer required. 2017-09-11 10:13:54 +01:00
Dave Page 4b5b3195c4 Bump the build suffix in preparation for release. 2017-09-11 10:04:20 +01:00
Ashesh Vashi 3bbd1a8a48 Remove icons from the menus to de-clutter the UI and make it more consistent with most OSs. 2017-09-11 09:51:26 +01:00
Dave Page 8b1aeadaf0 Stick with the older Flask-Script module for Python 2.6 2017-09-11 09:09:49 +01:00
Ashesh Vashi ac2512799e Rename the SecurityGroupUnderSchema to SecurityGroupSchema, and
redefined in the database (instead of schema) javascript module, as it
is also used by the foreign-server node too.

Reported by: Neel Patel
2017-09-11 13:13:40 +05:30
Ashesh Vashi 8c8c0e78ca Miscellaneous fixes for icon sizing issue, missing tree nodes to be
webpacked, etc.

- Fixed the background-size for the svg icons to 20x20 px such that it
  does not adjust it's size when a context menu height is different due
  to length of the node label, also - it allows us to fix the issue of
  icons sizes in the Grant Wizard.

- Added two missing browser tree nodes in the webpack configuration
  i.e. Foreign Server, and User Mapping
- Removed a redundant javascript file foreign-server.js
- Fixed the missing context menu icons for Foreign Table, and Tablespace
  nodes.

Thanks EDB development team to find the regression added after the icon
changes in quick time.
2017-09-11 12:55:42 +05:30
Ashesh Vashi 4018562bc7 Changes in the stylesheets to support the svg icons for the browser
tree nodes.
2017-09-11 11:22:55 +05:30
Chethana Kumar 23a00f9614 Replacing existing browser tree node png icons with the svg icons. Made
it compatible with the pgAdmin 4 color combination.

TODO::
Icons for the following nodes are in PNG format.
- Domain Constraint (Only the invalid icon)
- pgAgent Job Steps
- Green Plum database server
- Server (Only server.png, which is used in the create/edit dialog)
2017-09-11 11:17:31 +05:30
Karen Blatchley 23dd68b212 Initial draft of the 2.0 release notes. 2017-09-08 15:50:13 +01:00
Murtuza Zabuawala 8d248dab4c Fix quoting of index column names on tables. Fixes #2619 2017-09-07 16:36:35 +01:00
Murtuza Zabuawala d5f60e1a47 Fix layout of password prompt dialogue. Fixes #2684 2017-09-07 16:27:02 +01:00
Harshal Dhumal 263aa42725 Reset query tool options before running tests. Fixes #2681 2017-09-05 16:25:15 +01:00
Surinder Kumar c4393a7795 Fix Copy so it still works after query results have been copied. Fixes #2637 2017-08-31 14:50:39 +01:00
Akshay Joshi 47cf874460 1) Fixed error in alertify.pgNotifier when server connection is lost.
2) Change styling of alertify.pgNotifier as we did for success, error and info.
2017-08-31 18:02:03 +05:30
Surinder Kumar 2945b3fe93 Define the proper NODE_ENV environment during running the webpack.
Using the webpack.DefinePlugin during the development build too, not
just in production build.

Fixes #2596.

Also - passing option 'warning: false' for UglifyJsPlugin, which will
not show warning messages on the console during the production build.
2017-08-31 14:28:52 +05:30
Dave Cramer eae6f0427c Fix display of types in GPDB. 2017-08-31 09:57:27 +01:00
Harshal Dhumal dbf760c6e7 Improve datamodel validations for default Validator if user (developer) do not implement validate function in datamodel. Fixes #2670 2017-08-31 09:54:31 +01:00
Murtuza Zabuawala 52840d68a8 Fix RE-SQL for triggers with a single arg. Fixes #2668 2017-08-31 09:39:09 +01:00
Teng Zhang 821442ed8f GPDB compatibility fixes:
When connected to a Greenplum database server
- Hide items that not work with GPDB, such as Triggers, FDW, FTS_*, etc
- Tables/Views/Catalogs/Language node can expand correctly
- Views/Languages/Catalogs can show properties dialog with correct information
- Show a greenplum icon at the server node

Teng Zhang & Hao Wang
2017-08-30 11:18:14 +01:00
Harshal Dhumal 048205ead5 Rename the debugger XSS test function to 'a_test_function' to ensure it appears near the top of the tree and not off-screen.
This should not be a permanent fix (the test should be able to scroll the treeview), but works for now to stop tests failing.
2017-08-30 11:12:27 +01:00
Surinder Kumar 7835da267b Allow pgAdmin to run with config database versions from the future. Fixes #2664 2017-08-29 15:03:02 +01:00
Harshal Dhumal ceb9438000 Cleanup feature tests. Fixes #2586 2017-08-29 14:57:56 +01:00
Murtuza Zabuawala 401e13ca65 Fixed issue where 'backend_type' column is exist for database server version greater than 10.
Issue is regression of RM #2597.
2017-08-28 16:18:05 +05:30
Harshal Dhumal b1ad89fb4a Using the proper python syntax to fetch the default binary path for
different servers types.
2017-08-26 09:59:57 +05:30
Ashesh Vashi 6b727c43b9 Define the utility path lable, and help message for the Greenplum
database server, shown in the preferences dialog.

Also, fixed the issue, when server type is not defined in the
DEFAULT_BINARY_PATHS, in the configuration.
2017-08-25 21:35:57 +05:30
Murtuza Zabuawala 74db837417 Allow queries to be cancelled from the dashboard, and display additional info in the subnode control. Fixes #2597 2017-08-25 16:57:33 +01:00
Teng Zhang 46c5df4e7b Greenplum specific DDL and Dashboard display changes.
Initial patch by Sarah McAlear<smcalear@pivotal.io>.
2017-08-25 17:53:03 +05:30
Murtuza Zabuawala d3babd78aa Fixes #2560 - View is not fully qualified in Trigger definition. 2017-08-25 17:45:20 +05:30
Surinder Kumar f711336a6b Add package run scripts to allow to run the webpack in watch mode, also
added '--progress' option to make it more interactive.
2017-08-25 17:26:56 +05:30
Wenlin Zhang 5dd375dd20 Fix the feature tests failuers. 2017-08-25 17:16:36 +05:30
Dave Page 8579909558 Ensure the SERVER_MODE changes don't break the PIP build. 2017-08-25 12:17:47 +01:00
Dave Page 5c016f0993 Update docs to more accurately reflect the SERVER_MODE config requirements. 2017-08-25 12:13:03 +01:00
Dave Page a65f7b330b Ensure builtins.SERVER_MODE is handled if running setup.py standalone. 2017-08-25 11:56:44 +01:00
Dave Page 507d8b3fe4 Regression tests aren't run under the runtime, so no need to check for builtins.SERVER_MODE's existence. 2017-08-25 11:56:10 +01:00
Dave Page 0e5ea58294 Ensure builtins.SERVER_MODE is present so the docs build cleanly. 2017-08-25 11:19:27 +01:00
Dave Page f195b18f2d Ship with pre-configured paths that can work in both Server and Desktop modes out of the box. Fixes #2662
Ship the web code using server mode with appropriate paths by default and enable the runtime to override the mode, and force into desktop changing the appropriate paths to user-specific ones.

Note that this change will likely cause more advanced users to have to tweak configs.

RPMs will also need changes to create /var/lib/pgadmin and /var/log/pgadmin, owned by the webserver account.
2017-08-25 10:54:28 +01:00
Dave Page fb9eee47bd Bump the version number for 2.0. Let's get testing started ASAP! 2017-08-25 10:18:42 +01:00
Navnath Gadakh bd04cfaaa8 Properly cleanup after running the FTS test cases. 2017-08-25 09:32:46 +01:00
Akshay Joshi fe6e4686a2 Unable to add/update variables for columns of a table. Fixes #2659 2017-08-23 17:11:30 +05:30
Surinder Kumar ee20a10e94 Syntax error while saving changes for start/end time, weekdays, monthdays, month, hours, minutes while updating the pgAgent Job. Fixes #2657. 2017-08-23 14:05:54 +05:30
Surinder Kumar cb9a05a7e7 Datetimepicker will expand from bottom instead of Top, because of that user won't be able to select start and end time properly. Fixes #2656 2017-08-23 11:26:24 +05:30
Sarah McAlear b585063a26 Refactor keyboard shortcut functions in the query tool. Fix some incorrect keycodes and update docs.
Initial work by Sarah & Violet @ Pivotal, with additional tweaks by Murtuza @ EDB.
2017-08-21 15:27:29 +01:00
Murtuza Zabuawala 2e2ca26020 Ensure role names are escaped in the membership control. Fixes #2606 2017-08-21 14:00:33 +01:00
Murtuza Zabuawala 654326a0d1 Update CodeMirror version. Fixes #1697. Fixes #2168. Fixes #2447. Fixes #2562. 2017-08-21 13:43:41 +01:00
Murtuza Zabuawala d757d8698d Fix connection string validation for pgAgent jobs. Fixes #2655 2017-08-21 13:20:07 +01:00
Surinder Kumar 6d7b54eb62 Update datetime picker. Fixes #2654 2017-08-21 13:17:35 +01:00
Atul Sharma e6223c9a49 Fixes #2567 - Use the proper database connection to fetch the default
prileges in the properties tab of the database.

Reviewed by: Murtuza Zabuawala
2017-08-18 09:15:57 +05:30
Violet Cheng d527769bf8 Extract the generate_url(..) function from node.js, and collection.js 2017-08-17 21:43:07 +05:30
Murtuza Zabuawala e9b80dae9c User can not add New Server through Quick links. Fixes #2634 2017-08-17 18:14:06 +05:30
Sarah McAlear dee5186f65 Fixed alertify notification messages where checkmark box disconnected from frame. Fixes #2644 2017-08-17 17:54:12 +05:30
Surinder Kumar c7686dee05 Unset compression ratio if it is an empty string in Backup module. Fixes #2582 2017-08-17 16:35:42 +05:30
Surinder Kumar bff48e0b2d Fixed the path reference of load-node.gif which was referencing to vendor directory. Fixes #2646 2017-08-17 15:27:09 +05:30
Murtuza Zabuawala 2df4625ce0 1) Connection Type cell was not honouring to 'Kind' option in Subnode control.
2) Kind option was not saved properly
3) User was not be able to update Kind option in edit mode.

Fixes #2633
2017-08-17 15:00:08 +05:30
Murtuza Zabuawala 2c6c4a16ce Use dict based data instead of 2d-array in Type module as we are adding keys on the fly.
Reviewed By: Harshal Dhumal
2017-08-17 13:07:39 +05:30
Neel Patel deb5475b98 On certain linux operating systems, Qt application exits with an error
message such as 'X Error: BadDrawable'.

In order to resolve the issue, we need to let the Qt know not to load
the MIT-SHM extension.

Reference:
https://iwf1.com/quick-fix-one-kdes-common-xorg-errors-x-error-baddrawable/
2017-08-09 16:52:43 +05:30
Khushboo Vashi c4ca781ce2 Fixed some UX issue with the Import/Export tool.
- Couldn't click on the filename control once gets an error.
- Encoding is not in alphabetical order.
2017-08-09 16:52:43 +05:30
Hao Wang 5141debae7 UX improvements of the history in the query tool.
- Added copy button for query text.
- Historical queries are binned/grouped by day.

Patch By: Hao Wang, Sarah McAlear
2017-08-09 16:52:43 +05:30
Surinder Kumar 33bd9d4782 Enable source maps for debugging purpose in all webpack modules
(except for vendor, and codemirror).
2017-08-09 16:52:43 +05:30
Ashesh Vashi 845025db8f Some cosmetic changes.
- Loading 'pgadmin' as 'sources/pgadmin', as found under the 'sources'
  reference directory to be consistent with other files.
- Removed the 'pgadmin' reference from the base.html template.
- Renamed 'pgadmin.slickgrid.editors.js', and
  'pgadmin.slickgrid.formatters.js' as 'editors.js', and 'formatters.js'
  respectively, as they're already in the 'pgadmin/static/js/slickgrid'
  directory.
- Removed the duplicate entry of 'translations' from the webpack.shim.js
2017-08-09 16:52:12 +05:30
Akshay Joshi e418cb8387 Changed the mapping of cell from 'numeric' to 'integer' for integer control as numeric cell has been removed from the code. Fixes #2631 2017-08-07 14:02:59 +05:30
Akshay Joshi 801a05891e Set the database name to blank('') when job type is set to batch, while creating pgAgent job. Fixes #2620 2017-08-04 19:31:17 +05:30
Surinder Kumar 06a65ecf71 Added missing pgagent file in webpack.config.js Fixes #2617 2017-08-04 17:39:05 +05:30
Murtuza Zabuawala ef48c2ed91 Fixed issue in query tool where messages were not displaying from functions/procedures properly. Fixes #2555 2017-08-04 15:50:39 +05:30
Murtuza Zabuawala bebfc62721 Fixed collation tests on Windows, replace use of default 'POSIX' collation with 'C' collation for testing. Fixes #2501 2017-08-03 16:46:20 +05:30
Murtuza Zabuawala 6717aff8f5 Domain create dialog do not open and Font size issue in Security label control. Fixes #2616 2017-08-01 16:37:17 +05:30
Akshay Joshi e506fa1dbe Improved alertify notification logic. Remove AlertifyWrapper class and extend notification methods in alertify itself. 2017-07-31 18:59:44 +05:30
Akshay Joshi a7f58e2b92 1) Added partition module in webpack config.
2) Fixed missing logic of partition from primary_key.js and unique_constraint.js as this two files are newly created for webpack.
3) Changed the node name from 'check_constraint' to 'check_constraints'. Also changed the same in test case url.
2017-07-31 18:25:04 +05:30
Ashesh Vashi bdefdf5d4e Requests for statistics were not stopped even when Dashboard panel is
closed. It is a regression of webpack.
2017-07-31 16:48:52 +05:30
Surinder Kumar 6d5417709c Moved the javascripts of different modules from 'templates' to 'static' directory.
Moving the javascripts for the following modules:
 - About
 - Browser nodes
 - Dashboard
 - FileManager
 - Vendor/snap.svg
 - Preferences
 - Settings
 - Backup
 - Datagrid
 - Debugger
 - Sqleditor
 - Grant Wizard
 - Import & Export
 - Maintenance
 - Restore and
 - User Management
2017-07-27 17:25:08 +05:30
Harshal Dhumal 831c614a60 Store the file dialog view on toggle. 2017-07-26 14:35:43 +01:00
Murtuza Zabuawala af26d983e5 Fixup tests following label changes. 2017-07-26 13:45:44 +01:00
Harshal Dhumal 97cd74a373 Default the file browser view to list, and make it configurable. Fixes #2579 2017-07-26 13:09:52 +01:00
Khushboo Vashi d1e7254fbd Handle control visibility properly in javascript strict mode. 2017-07-26 12:55:46 +01:00
Murtuza Zabuawala 1fa9648a21 Update keyboard shortcuts per discussion. Also, make the labels platform sensitive. 2017-07-26 12:50:42 +01:00
Harshal Dhumal d339d6b816 Do not dump the session data on the disk on every request.
Session object is updated, everytime a request is being served, and
that was forcing the session object dumped on the dist on every request.

On windows, it was causing issues on slower system on startup. Because -
windows file system locks the file, when it is opened by any
application. And, frequent requests on the pgAdmin main UI rendering
was causing issues, because of that.

In order to resolve the issue, we will not write the session data on
disk for every request, but - only after certain delay (in seconds),
from it was last written. It can be configured using the attribute
'PGADMIN_SESSION_DISK_WRITE_DELAY' in the configuration file,
default vaule for the delay is 10.
(i.e. 10 seconds)
2017-07-25 15:52:32 +05:30
Murtuza Zabuawala 178d583bcd Fix paths under non-standard virtual directories. Fixes #2563 2017-07-25 10:15:18 +01:00
Murtuza Zabuawala 617e9dbb3a Allow queries to be cancelled from the dashboards. Fixes #1812 2017-07-24 12:13:24 +01:00
Joao Pedro De Almeida Pereira fe95b7670b Ensure the appropriate entry is focussed when entering the history tab. 2017-07-24 11:46:06 +01:00
Dave Page eb5bb5fcc0 Update yarn.lock 2017-07-21 16:17:24 +01:00
Sarah McAlear 2ebb409999 Fix test assertion. 2017-07-21 16:16:41 +01:00
Surinder Kumar 03657df82a Ensure babel-polyfill is loaded in older qWebKits. Fixes #2593 2017-07-21 16:15:03 +01:00
Harshal Dhumal 7182b59976 Ensure arrow keys work correctly when the pane is focused instead of the tab in the query tool history. 2017-07-21 13:33:59 +01:00
Atul Sharma 70418144cf Add a field to the Server Dialogue allowing users to specify a subset of databases they'd like to see in the treeview. Fixes #1918 2017-07-21 12:44:57 +01:00
Murtuza Zabuawala acaa79cf6b Fix disconnection of new databases. Fixes #2594 2017-07-21 11:11:03 +01:00
Murtuza Zabuawala b313cbce0d Fix regression tests after Dave broke them. 2017-07-21 10:57:29 +01:00
Surinder Kumar a49a3103e2 Prevent the Werkzeug reloader from causing a "double start" at init time. 2017-07-21 09:46:30 +01:00
Surinder Kumar ede6765f6b Add an editorconfig file to help maintain coding standards. 2017-07-21 09:39:23 +01:00
Sarah McAlear 86dc1e81f1 Move Query Tool keyboard shortcut code into a new module and add tests. 2017-07-20 22:22:25 +01:00
Matthew Kleiman e29cd8d83d Improve the history UI. 2017-07-20 20:50:37 +01:00
Matthew Kleiman 21bfcd83f4 Allow navigation of query history using the arrow keys. Fixes #2590 2017-07-20 20:47:40 +01:00
Murtuza Zabuawala 64f3a559ab Add the Flask-Paranoid module for a little extra, well, paranoia in web mode. Fixes #2584 2017-07-20 18:04:33 +01:00
Dave Page 83ac1f3555 Remove debug logging of the URL map which is extremely long now, and not of a great deal of use. 2017-07-20 16:15:53 +01:00
Surinder Kumar ae3acbdbbc Fix webpacking of loading icon. 2017-07-20 13:38:16 +01:00
Harshal Dhumal 54882e061c Don't attempt to render binary data in the query tool result grid. Fixes #2080. Fixes #2074. 2017-07-20 13:09:47 +01:00
Surinder Kumar 2eb151c2d9 More webpack cleanup - add comments liberally and rename lib.css to style.css 2017-07-20 12:52:15 +01:00
Akshay Joshi 4d4da67247 Fix regressions introduced by PG10's partitioning code. Fixes #2043. Fixes #2324. 2017-07-20 12:49:40 +01:00
Surinder Kumar dfa877262d Webpacking cleanups 2017-07-19 15:03:21 +01:00
Surinder Kumar 6046be7fba Fix typo in filename. 2017-07-19 11:57:11 +01:00
Dave Page 1e1a9f2cf4 Add controls and shortcuts for commenting/uncommenting code in the SQL Editor. Fixes #2456.
Take the opportunity to tidy up the menus and add access keys to appropriate buttons.
2017-07-19 11:43:45 +01:00
Surinder Kumar b90d368ee7 Resolve an issue where collection nodes sometimes wouldn't sort properly. 2017-07-18 16:31:05 +01:00
Surinder Kumar 659aeeb58e Add a missing dependency. 2017-07-18 16:30:18 +01:00
Murtuza Zabuawala bab3da24e6 Support SSL in the regression tests. Fixes #2170 2017-07-18 15:23:11 +01:00
Surinder Kumar 6396b8ce18 Add missing new files from the previous commit. Ooops. 2017-07-18 15:14:59 +01:00
Surinder Kumar 4a91bcde30 Webpack all the things! Fixes #2135
This significantly speeds up loading of the application; in an average of 3 tests, v1.6
loaded in 11.5s in the runtime on a Mac, whilst the webpacked version of the code
loaded in 5.53s.
2017-07-18 15:13:17 +01:00
Dave Page d04ac7656a Remove change made for debugging and committed in error. 2017-07-17 15:19:30 +01:00
Khushboo Vashi c546182789 Modify the runtime to use time-based timeouts rather than retry based. Fixes #2556
This allows for slow vs. fast connection failures (e.g. an active rejection vs. no response).
2017-07-17 15:17:58 +01:00
Harshal Dhumal 3942461c50 Correct for malformed query generated when using custom type. Fixes #2544 2017-07-17 11:14:34 +01:00
Khushboo Vashi 059d671af5 Fix typo 2017-07-17 10:59:29 +01:00
Neel Patel dc6a1936f5 Tidy up tab styling. Fixes #2557 2017-07-17 10:58:17 +01:00
Harshal Dhumal 8bbcf0ab36 Fix handline of large file uploads and properly show any errors that may occur. Fixes #2153 2017-07-17 10:51:26 +01:00
Neel Patel dcc74af87b Stop tool buttons from changing their styling unexpectedly. Fixes #2559 2017-07-17 10:45:16 +01:00
Murtuza Zabuawala 3f83780049 Remove the comma from PIDs in the statistics panel. 2017-07-17 10:18:31 +01:00
Neel Patel 1fe0d51925 Prevent the tab bar being hidden when detached tabs are being closed. Fixes #2558 2017-07-17 10:14:40 +01:00
Harshal Dhumal 07aa74eaf5 Show tablespace on partitions. Fixes #2551 2017-07-17 09:50:18 +01:00
Ashesh Vashi 4eefc52748 [PostgreSQL 10] Fixed the Pause/Resume Replay of WAL files for PostgreSQL 10. Fixes #2566 2017-07-14 18:39:19 +05:30
Murtuza Zabuawala 822e62c238 Fix privileges control on IE 10/11. Fixes #1166 2017-07-14 12:45:09 +01:00
Khushboo Vashi da67963094 Don't continually poll for graph data on the dashboard if the server is disconnected. Fixes #1165 2017-07-14 12:42:29 +01:00
Mammoth Power de06e63334 Fix a compiler error with older compilers. 2017-07-11 17:22:20 +01:00
Dave Page 68a6c496d9 Straighten line 2017-07-11 13:20:16 +01:00
Dave Page 374bf79911 Fix proxy support with Qt 5.9+ 2017-07-11 11:48:13 +01:00
Dave Page dad6031bd6 Revert "Ensure dependencies are packaged in the tarball"
This reverts commit 6ad4a623c4.

ENOCOFFEE error
2017-07-11 09:23:57 +01:00
Neel Patel c93aa3810d Fix a compiler error with older compilers. 2017-07-11 09:14:53 +01:00
Dave Page 6ad4a623c4 Ensure dependencies are packaged in the tarball 2017-07-11 09:12:09 +01:00
Surinder Kumar 2bfe640a08 Fix alignment of Object > delete/drop & properties icons 2017-07-10 16:14:40 +01:00
Ashesh Vashi b095d1f33a Ensure the initial password is properly hashed during setup in web mode. Fixes #2492 2017-07-10 16:08:35 +01:00
Akshay Joshi f06c3578f6 Fix drop/drop cascade for partitioned tables. Fixes #2550 2017-07-10 16:02:32 +01:00
Harshal Dhumal 7aa7ea0fe2 Couple of typos in the release notes. 2017-07-10 15:18:48 +01:00
Dave Page ea5dfe23a0 Bump version numbers prior to release. 2017-07-10 14:56:20 +01:00
Karen Blatchley 4bfb31b03b Release notes for 1.6. 2017-07-10 14:52:45 +01:00
Akshay Joshi ed3cb7df41 Handle partitioned tables created "OF TYPE". Fixes #2545 2017-07-10 14:16:30 +01:00
Murtuza Zabuawala 6d3d2cd458 Handle un-mounted drives correctly on Windows. Fixes #1999 2017-07-10 14:04:57 +01:00
Surinder Kumar 33e56272ca Fix IE11 alert layout again. 2017-07-10 13:49:47 +01:00
Khushboo Vashi ecd95141f3 Refresh nodes correctly when there is a single child that is updated. Fixes #2532 2017-07-10 13:25:23 +01:00
Dave Page 55b1e7b186 Update Mingw build for changes in QtWebKit 2017-07-10 12:12:25 +01:00
Dave Page 2dfa622357 Fix history font on IE. 2017-07-10 10:25:27 +01:00
Murtuza Zabuawala 907c5fe198 Use the correct font for alerts on IE. 2017-07-10 10:07:23 +01:00
Sarah McAlear c02ac2ac66 Fix history view in IE11. 2017-07-10 10:03:04 +01:00
Joao Pedro De Almeida Pereira d56f1d847c Update dialogue error styling to match alerts 2017-07-10 09:36:10 +01:00
Dave Page ec739b3392 Revert "Open query tool and debugger windows in new tabs by default."
This reverts commit 1a6fe946ce.

This is going to break the regression tests, so reverting it for now.
2017-07-07 17:06:12 +01:00
Dave Page 1a6fe946ce Open query tool and debugger windows in new tabs by default. 2017-07-07 16:53:45 +01:00
Murtuza Zabuawala 08e874a026 Fix alert animation on IE11 2017-07-07 16:50:47 +01:00
Harshal Dhumal d151bdb4cd Fix handling of CREATE TABLE OF <type>. Fixes #2534 2017-07-07 16:34:33 +01:00
Joao Pedro De Almeida Pereira 815c4b4c45 Improve spacing around delete icons in backform tables. 2017-07-07 16:06:51 +01:00
Murtuza Zabuawala acd3568f06 Fix the formatting of the ROWS option for functions etc. Fixes #2537 2017-07-07 15:57:43 +01:00
Sarah McAlear 8646e9e404 Enable pretty html output of our karma test results. While running yarn test:karma, visit localhost:9876/debug.html to see test output. 2017-07-07 15:54:42 +01:00
Harshal Dhumal fc78202600 Fix clear history. 2017-07-07 15:51:06 +01:00
Akshay Joshi fae185ff66 Partitioned table does not present in grant wizard. Fixes #2543 2017-07-07 15:15:15 +05:30
Akshay Joshi e793413d76 Fixed issue by adding extra check for 'relkind' column 2017-07-07 12:33:58 +05:30
Akshay Joshi c2fb0394bf Added support of Declarative Partitioning (Range, List) for PostgreSQL 10.
This allows the user to create partitioned table and it's partitions.

  - Edit partitions, Create/Listing of constraints, rules, triggers under partitions. (Implemented by Harshal)
  - Updating browser tree node when create/attach/detach partitions from table dialog.(Implemented by Ashesh)
2017-07-07 11:55:55 +05:30
Murtuza Zabuawala ca7fe9a520 Ensure the save password option is enabled when creating a server. Fixes #2540 2017-07-06 13:33:46 +01:00
George Gelashvili e5bedf088e In subnodes without dropdowns, the rows had smaller height, making them appear unintentionally different than those with dropdowns. Make them the same. 2017-07-06 13:11:40 +01:00
Matthew Kleiman e2cbaaef71 UI tweaks for the query history. 2017-07-06 13:08:29 +01:00
Dave Page 1291841d98 Remove unused minimisation code 2017-07-06 13:04:13 +01:00
Dave Page 592c70e655 Add some useful make targets for bundling and linting. 2017-07-06 13:02:43 +01:00
Murtuza Zabuawala 9de6c08d28 Allow use of Shift+Tab to un-indent selected text. Fixes #1988 2017-07-05 14:20:19 +01:00
Murtuza Zabuawala 2bb01e2d1a Fix alert layout when more than one are shown at once. 2017-07-05 12:04:48 +01:00
Harshal Dhumal 76939e4f63 Prompt the user to save dirty queries rather than discard them for a more natural workflow. Fixes #1972 2017-07-04 23:39:10 +01:00
Murtuza Zabuawala b211eb199c Improve styling for alerts by highlighting the icon. 2017-07-04 12:03:32 +01:00
Khushboo Vashi 66b101fe4c Resolve a number of issues with domains and domain constraints. Fixes #2529 2017-07-04 11:52:58 +01:00
Murtuza Zabuawala 0aa763b706 Remove unnecessary whitespace from stored procedure SQL. Fixes #2146 2017-07-03 16:32:19 +01:00
Murtuza Zabuawala 5c7dcaba81 Allow debugging of functions in packages. Fixes #1948 2017-07-03 16:30:12 +01:00
Khushboo Vashi 070a9c077e Allow breakpoints to be set on triggers on views. Fixes #2528 2017-07-03 16:15:42 +01:00
Khushboo Vashi f6b879233c Fix deletion of table rows with the column definition having NOT NULL TRUE and HAS NO DEFAULT VALUE. Fixes #2527 2017-07-03 15:49:59 +01:00
Murtuza Zabuawala 2d5e55964a Improve the debugger's default page layout, and prevent attempts to continue debugging after the user has stopped. Fixes #2512, Fixes #2511 2017-07-03 15:14:45 +01:00
Harshal Dhumal 1977a5fcda Fix clipboard handling with large datasets. Fixes #2489 2017-07-03 11:19:02 +01:00
Harshal Dhumal 4e21cdb64b Fix a syntax error in the SQL Editor. 2017-07-03 11:02:20 +01:00
Murtuza Zabuawala 1e427890de Fix an issue where duplicate entry is made of successful executed query, one with status message and one without status message. 2017-07-03 11:00:42 +01:00
Khushboo Vashi 7c09a8f827 Fix typo that caused a layout issue with the Edit Grid. 2017-06-30 12:58:47 +01:00
Dave Page ffb00b502a Fix a couple of gripes from the JS linter on Windows. 2017-06-30 10:34:06 +01:00
Joao Pedro De Almeida Pereira f2d2075d81 Update alertify alerts to use the styling defined in the styleguide (missed some files in the original commit). 2017-06-30 10:23:12 +01:00
Joao Pedro De Almeida Pereira 2a30a86e7d Update alertify alerts to use the styling defined in the styleguide. 2017-06-30 10:21:05 +01:00
Joao Pedro De Almeida Pereira ba3ab7b322 Add support for SCSS building in webpack. 2017-06-30 10:15:44 +01:00
Khushboo Vashi 501120701e Allow the dashboard panel to be closed. Fixes #2506 2017-06-30 10:11:34 +01:00
Harshal Dhumal 2d65312910 Improve speed of Select All in the results grid. Fixes #2522 2017-06-30 09:54:31 +01:00
Akshay Joshi c98b64fd82 1) Edit cellEditing function, in some cases grid object is undefined.
2) Modify SubNodeCollectionControl, so that user can pass custom backgrid row.
3) Handling of visible parameter in SubNodeCollectionControl.
4) Customise title and delete message for Delete Cell.
5) Added Backgrid.Extension.Select2DepCell and moved Backgrid.Extension.StringDepCell from user management to backgrid.pgadmin.js.
2017-06-29 19:01:29 +05:30
Harshal Dhumal 7389744ecf A number of minor cleanups to the recent changes to the query tool. 2017-06-28 09:49:39 -04:00
Khushboo Vashi 301798d87a Fix encoding issue when saving servers. Fixes #2518
Patch by Khushboo, based on a suggested fix from Ladislav Jech
2017-06-28 09:44:32 -04:00
Dave Page ed5c74affe Fix image size. 2017-06-27 17:09:52 -04:00
Murtuza Zabuawala f0066d6006 Update preferences docs. 2017-06-27 17:04:56 -04:00
Murtuza Zabuawala a9fa093d4b Allow non-superusers to debug their own functions and prevent them from setting global breakpoints. Fixes #2162
Based on a patch from Kit Yam Tse
2017-06-27 16:58:07 -04:00
Joao Pedro De Almeida Pereira 7f55412059 Overhaul the query history tab to allow browsing of the history and full query text. Fixes #2282
Patch by Joao and the team at Pivotal.
2017-06-27 10:55:57 -04:00
Dave Page e413186d23 Add stylesheet to override brace matching styles, missed from the feature commit. 2017-06-27 10:41:26 -04:00
Dave Page 96412b3219 Revert "Allow the user to close the dashboard panel. Fixes #2506"
This reverts commit a87ee6d059.
2017-06-27 10:35:43 -04:00
Murtuza Zabuawala 1b49bb8b22 Add preferences to enable brace matching and brace closing in the SQL editors. Fixes #2513 2017-06-27 09:57:38 -04:00
Khushboo Vashi a87ee6d059 Allow the user to close the dashboard panel. Fixes #2506 2017-06-27 09:21:24 -04:00
Harshal Dhumal c65158312d Use on-demand loading for results in the query tool. Fixes #2137
With a 27420 row query, pgAdmin III runs the query in 5.873s on my laptop. pgAdmin 4 now takes ~1s.
2017-06-27 09:03:04 -04:00
Atul Sharma 15cb9fc35b Add support for the hostaddr connection parameter. This helps us play nicely with Kerberos/SSPI and friends. Fixes #2191 2017-06-26 15:48:59 -04:00
Surinder Kumar 3f4781cdcb Un-break query tool feature tests. 2017-06-26 15:25:05 -04:00
Khushboo Vashi 27bc5c803f Ensure saved passwords are effective immediately, not just following a restart when first saved. Fixes #1920 2017-06-26 07:55:34 -04:00
Khushboo Vashi d4e77deda4 Ensure revoked public privileges are displayed in the RE-SQL for functions. Fixes #2507 2017-06-26 07:50:39 -04:00
Surinder Kumar cfb4b11573 Use client-side url_for in the sql editor and data grid modules. 2017-06-26 07:43:03 -04:00
Khushboo Vashi 6b6d3369b3 Wait for the Tools menu to be populated when running the feature tests, instead of failing.
Fix by Khushboo, based on Harshal's previous work.
2017-06-23 14:07:31 +01:00
Dave Page 92b1b1365e Tidy up About box formatting, 'cos it's been annoying me for ages. 2017-06-23 10:21:40 +01:00
Dave Page 6fabf4764b Add access keys for top level menus. 2017-06-23 09:58:46 +01:00
Murtuza Zabuawala 7a4945ff9e Fix removal of sizes from column definitions. Fixes #2155 2017-06-23 09:42:46 +01:00
Matthew Kleiman 9af29364c7 Fix cell selection window alignment for the updated SlickGrid. 2017-06-23 09:37:58 +01:00
Matthew Kleiman 94aa5487fb Update Slickgrid to 2.3.7. As this version includes all the features we need, it can be moved out of the vendor directory and we'll use yarn to pull it in. 2017-06-23 09:35:56 +01:00
Matthew Kleiman b98fcaa829 Ensure the relevant Makefile targets install node modules before running. 2017-06-23 09:23:31 +01:00
Khushboo Vashi 25282f3094 Additional preference fix. 2017-06-22 14:55:45 +01:00
Murtuza Zabuawala 0ab637c7ab Fix import/export to work as expected with TSV data. Fixes #1934 2017-06-22 13:57:32 +01:00
Khushboo Vashi 33e75d24f8 Fix preferences handling for utilities. 2017-06-22 12:18:56 +01:00
Murtuza Zabuawala 137bae1b04 Ensure default values are honoured when adding/editing columns. Fixes #1860 2017-06-22 12:11:02 +01:00
Ashesh Vashi d26337a1ba Moved the javascripts of the following browser node modules to the
'static' directory from 'templates' in the respective module directory:
- Server Group
- Server
- Database
- Schema
- Cast
- Event trigger
- Extension
- Foreign data wrapper
- Language
- Catalog Object
- Collation
- Domain Constraint
- Domain
- Foreign server
- FTS Configuration
- FTS Dictionary
- FTS Parser
- FTS Template
- Function
- Procedure
- Trigger Function
- Package
- Sequence
- Catalog
- Schema
- Synonym
- Table
- Type
- Materialized View
- View
- pgAgent Modules
  + Job (pga_job)
  + Schedule (pga_schedule)
  + Steps (pga_jobstep)

Added new dynanic modules for listing the supported server types, and
current user information.

NOTE: We've not yet moved the javascripts for the children of the table
module.
2017-06-22 15:58:32 +05:30
Khushboo Vashi 67fd119de8 Maintain a client-side cache of preference values, populated using an async call. Fixes #2487 2017-06-21 17:09:59 +01:00
Murtuza Zabuawala b9f6fb9545 Update MatView and pgAgent modules to work with recent integer/numeric changes. Fixes #2504 2017-06-21 17:03:43 +01:00
Murtuza Zabuawala b9736cbd74 Handle missing/dropped synonyms gracefully. Fixes #2503 2017-06-21 16:59:43 +01:00
George Gelashvili 5cfa22cf23 Fix React to work with QtWebKit
We learned that the underlying issue was related to react-dom's SyntheticEvent.augmentClass function being undefined.

This seems to be caused by attempted property assignment after the SyntheticEvent had been replaced by a Proxy of itself. This works fine in Chromium et al, but QtWebKit doesn't deal with Proxy Event objects well.
Moving the augmentClass definition and assignment up above the Proxy stuff resolves the issue in a PR to React: https://github.com/facebook/react/pull/10011
2017-06-21 11:25:22 +01:00
George Gelashvili a45b87d9b7 Vendorize React. This is required at this time because we need to modify it to work with QtWebKit.
The patch to do that has been submitted upstream; if accepted, we can un-vendorize again.
2017-06-21 11:20:02 +01:00
Shruti B Iyer 281b67952a Consolidate selection colors in the drop down menu and browser tree to match the light blue agreed upon in the styleguide. 2017-06-21 11:11:49 +01:00
Murtuza Zabuawala f0202228d0 Increase the default size of the Grant Wizard to enable it to properly display privileges at the default size on smaller displays. Fixes #2013 2017-06-21 11:08:23 +01:00
Dave Page bf5a2252af Install the Yarn deps before trying to bundle. 2017-06-20 12:06:35 +01:00
Dave Page 9829d74a04 Correct the v10 template path. 2017-06-20 12:04:13 +01:00
Dave Page c5616c7869 Run yarn tasks where required to run the tests. 2017-06-20 11:58:54 +01:00
Dave Page bd917f2348 Create a runner for the feature tests. 2017-06-20 11:51:22 +01:00
Murtuza Zabuawala 34518d328e No need for the menu icon to link to the homepage, as pgAdmin is a SPA. Fixes #2479 2017-06-20 10:28:35 +01:00
Murtuza Zabuawala d2ba57c1ab Properly handle bytea[], and 'infinity'::real/real[]. Fixes #2498. Fixes #2502. 2017-06-20 10:19:11 +01:00
Neel Patel a21dad4c45 Fix runtime support under Qt4 2017-06-16 11:26:31 +01:00
Khushboo Vashi 1ee555e468 Ensure the feature tests use the correct test settings database. Fixes #2486 2017-06-16 10:17:38 +01:00
Neel Patel 0056a94115 Add support for detachable tabs to the runtime.
This allows the Query Tool, Debugger and web browser tabs to be moved to different monitors as desired.

Fixes #1344
2017-06-16 09:57:19 +01:00
Ashesh Vashi 900ccebb50 Using client-side implementation of 'url_for' in the settings module. 2017-06-16 08:57:23 +05:30
Ashesh Vashi 5c140b3f58 Using client-side 'url_for' implementation in the user management
module.
2017-06-16 00:16:30 +05:30
Ashesh Vashi e65b605912 Using client-side 'url_for' implementation in the import/export module. 2017-06-16 00:00:17 +05:30
Ashesh Vashi 07580b8444 Using client-side 'url_for' implementation in the maintenance module. 2017-06-15 23:50:53 +05:30
Dave Page 5d45dee686 Fix Yarn tasks for Windows 2017-06-15 15:32:07 +01:00
Johan Van de Wauw 827aa72e99 Fix a typo in the config file 2017-06-15 15:18:59 +01:00
Surinder Kumar 2a87585665 Fix script options which were inadvertently broken in the query tool tab naming patch. 2017-06-15 12:19:47 +01:00
Murtuza Zabuawala d70c3003d3 Add double precision[] tests to the query tool. 2017-06-15 11:54:17 +01:00
Murtuza Zabuawala 8376d33d77 Fix canceling of Grant Wizard on Windows. Fixes #2142 2017-06-15 11:42:13 +01:00
Dave Page 6938fbafb5 Add some more Makefile targets for running different test suites. 2017-06-14 14:11:51 +01:00
Surinder Kumar fdc9eed514 Ensure text editors render in an appropriate place on the results grid. Fixes #2477 2017-06-14 12:18:27 +01:00
Surinder Kumar 2b4a8ed89c Un-break the feature tests. Fixes from Surinder and myself. 2017-06-14 09:59:11 +01:00
Joao Pedro De Almeida Pereira 4b846ae4e0 Fix the JS Bundler test to work when there are multiple servers defined in a test run. 2017-06-14 09:37:20 +01:00
Dave Page cb97722fc3 Temporarily disable the Javascript bundler test until it handle more than one run. 2017-06-13 14:21:41 +01:00
Surinder Kumar 57d866f7b7 Use a more sensible name for Query Tool tabs. Fixes #2482 2017-06-13 11:34:24 +01:00
Ashesh Vashi 467825c2d1 Package 'mock' is required for testing, and for Python < 3.3 only. 2017-06-13 15:57:56 +05:30
Akshay Joshi 794b70daea Fixed issue of opening file manager dialog from Query Tool. 2017-06-13 15:48:12 +05:30
Ashesh Vashi 903389d7b7 Required mock package for python < 3.3.
It was required for the commit:
1208206bc0

Also, do not fetch the scenario-name, when it is not avaiable (but - use
default vaule as the stringified test-case itself).
2017-06-13 15:43:31 +05:30
Joao Pedro De Almeida Pereira a9ce9c9717 Skip a test that uses the COLLATE option on PG versions below 9.1 (e.g. Greenplum). 2017-06-13 10:27:09 +01:00
Khushboo Vashi 3a5fda44e4 Add a shortcut (Ctrl/Cmd + 0 (zero)) to the runtime to allow the zoom level to be reset. Fixes #2485 2017-06-13 10:21:51 +01:00
Shruti B Iyer 1208206bc0 Initial re-vamp of the History tab. 2017-06-13 09:50:41 +01:00
Khushboo Vashi 16a15bf934 Fix the fix for RM2324. 2017-06-13 09:18:44 +01:00
Ashesh Vashi 0243d886c3 Using client-side 'url_for' implementation in the Grant-Wizard module. 2017-06-13 11:47:55 +05:30
Ashesh Vashi f9a3878220 Using client-side 'url_for' implementation in the restore module. 2017-06-13 11:00:17 +05:30
Ashesh Vashi 4a46f7b1eb Using client-side 'url_for' implementation in the backup module. 2017-06-13 10:59:11 +05:30
Ashesh Vashi 1a7c9d5ca1 Using client-side 'url_for' implementation in the module - bgprocess
(background-processes).
2017-06-13 09:18:48 +05:30
Shruti B Iyer f1acad85db Add a missing translation call. 2017-06-12 17:20:40 +01:00
Shruti B Iyer 3f4f8b9e77 Add linting support, and, well, lint. 2017-06-12 16:55:14 +01:00
Shruti B Iyer 659eb1c1e8 Bring React into the tree, and add linting and bundling framework for the JS etc. 2017-06-12 16:51:54 +01:00
Surinder Kumar af43ccfc07 Teach dialogues about Escape to cancel, Enter to Save/OK, and F1 for help. Fixes #1535 2017-06-12 16:43:29 +01:00
Murtuza Zabuawala ec5bc23dfd Allow editing of the WITH ADMIN option of role membership. Fixes #2086 2017-06-12 13:58:51 +01:00
Murtuza Zabuawala 3743c6e86e Refresh the SQL editor view on resize to ensure the contents are re-rendered for the new viewport. Fixes #2078 2017-06-12 13:25:52 +01:00
Murtuza Zabuawala c435d48885 Properly handle trigger functions with parameters. Fixes #2043 2017-06-12 13:19:49 +01:00
Atul Sharma 49cd578816 Fix error on the stats tab with PG10. Also, rename the 10.0_plus template directory to 10_plus to match the new versioning. Fixes #2450 2017-06-12 12:53:09 +01:00
Khushboo Vashi 8bd8ae001b Fix the PostGIS Datatypes in SQL tab, Create / Update dialogues for Table, Column, Foreign Table and Type node. Fixes #2324
Note that this doesn't add full support for PostGIS types to the table/column dialogues, which still can't handle the typmod usage. It does bring support to parity with pgAdmin 3 though.
2017-06-12 12:49:17 +01:00
George Gelashvili 59da69087c Stop ignoring yarn.lock, per discussion with Pivotal team. 2017-06-12 09:16:32 +01:00
Ashesh Vashi fd3ddbeafb Implementation of the client side 'url_for(...)' function.
Created a url_for function module to be used by different javascript
modules to use the same functionality of flask at client side.

A python module can expose the list of endpoints, used by its
javascripts, by overriding the 'get_exposed_url_endpoints(self)'
function.

In this patch, we have modified all the browser modules to use this
function. It will allow us to move the majority of the javascript
modules of browser nodes from templates directory to the static
directory.

TODO::
- Move these javascripts modules to the static directory.
- Use this function in all the applicable javascript modules.
  e.g. tools, miscellaneous modules
2017-06-12 12:01:25 +05:30
Dave Page dea850b503 Tune startup retry loop - try 50 times, with a 100ms pause between each attempt. 2017-06-11 14:38:22 +01:00
Dave Page ef4b8e8c1c Another minor perf tweak for the runtime. 2017-06-11 14:34:49 +01:00
Dave Page f0d287588a Couple of minor performance tweaks. Tests on my Windows VM show a consistent 30% startup time reduction. 2017-06-11 13:56:49 +01:00
Surinder Kumar 49976b1934 Fine tune result grid column sizing now we don't have checkboxes. 2017-06-09 09:24:20 +01:00
Sarah McAlear ee4a847784 Use the correct font for the treeview. 2017-06-09 09:09:39 +01:00
Surinder Kumar 73c6f1ca3b A little leanup of the styling of the edit grid 2017-06-08 17:06:34 +01:00
Harshal Dhumal aa400cbc12 Fix integer/numeric validation on various dialogues. Fixes #2421 2017-06-08 14:59:26 +01:00
Murtuza Zabuawala 3bcbc50525 Fix the handling of double precision[] type. Fixes #1928 2017-06-08 14:50:51 +01:00
Surinder Kumar c9b717ed68 Set focus on the first enabled field when a dialogue is opened. Fixes #1533 2017-06-08 14:37:31 +01:00
Sarah McAlear 01bfa88309 Improvements to the Query Results grid:
- Improve the UI
- Allow copy/paste from sets of rows, columns or arbitrary blocks of cells

Patch by Matt, Shruti, Joao and Sarah @ Pivotal

Fixes #2476
2017-06-08 13:31:36 +01:00
Surinder Kumar 2fddf750e6 Retain column sizing in the query tool results grid when the same query is re-run multiple times in a row. Fixes #1971 2017-06-08 12:41:56 +01:00
Murtuza Zabuawala 678b891ff7 Fix an intermittent error seen during result polling. Fixes #2470 2017-06-08 12:34:14 +01:00
Murtuza Zabuawala b149fe371e Fix various issues with pgAgent job steps and schedules:
1) Error on clicking SQL panel when Schedule OR Step node is selected in browser. Fixes #1888

2) Error while dropping Schedule OR Step node. Fixes #1889

3) Newly created Schedule/Step node was not displaying in browser. Fixes #1890
2017-06-08 12:30:00 +01:00
Surinder Kumar 88737248ab Fix a couple of missing greys. 2017-06-07 16:31:47 +01:00
Surinder Kumar 63c093248d Allow users to remove default values from columns properly. Fixes #2461 2017-06-07 14:33:28 +01:00
George Gelashvili f89aec867a Resolve the PG datatype feature test flakiness and make for a nice buttery crust. 2017-06-07 14:26:42 +01:00
George Gelashvili 8d8e7dab3c Extract row staging into it's own module with tests. 2017-06-07 14:17:10 +01:00
Shruti B Iyer 0d05385585 Update the styling to use the set of grays defined in the WIP style guide. 2017-06-07 13:57:49 +01:00
Murtuza Zabuawala 495a3cedb0 List packages in PPAS 9.2-9.4 when creating synonyms. Fixes #1813 2017-06-07 13:44:36 +01:00
Khushboo Vashi b134ae2cb4 Fix the RE-SQL for for views to properly qualify trigger function names. Fixes #2381 2017-06-07 13:40:11 +01:00
Ashesh Vashi ae80976689 Using the client-side translation using the client-side 'gettext'
implementation.

This is the first step towards 'Avoid creating the javascript modules
using Jinja templates'.
2017-06-07 15:53:05 +05:30
Murtuza Zabuawala 7e9f82bc17 Prevent attempts to debug procedures with variadic arguments. Fixes #1466 2017-06-06 12:58:52 +01:00
Surinder Kumar beda7ebbf2 Add feature tests for the View Data tool. 2017-06-06 12:54:20 +01:00
Murtuza Zabuawala 9803468a77 Properly display security labels on EPAS 9.2+. Fixes #1575 2017-06-06 11:46:49 +01:00
Murtuza Zabuawala cd3484d936 Make $ quoting consistent. Fixes #1525 2017-06-06 11:40:25 +01:00
Surinder Kumar b82e001478 Ensure that boolean checkboxes cycle values in the correct order. Fixes #2448 2017-06-06 11:29:18 +01:00
Murtuza Zabuawala bf06d82870 Fix validation for external and range types. Fixes #1795 2017-06-06 11:24:10 +01:00
Murtuza Zabuawala e6aa3e1494 Fix default values and SQL formatting for event triggers. Fixes #1229 2017-06-06 11:19:40 +01:00
Dave Page 4c2004d479 Correct the validation logic when modifying indexes/exclusion constraints. Fixes #2113 2017-06-06 11:15:51 +01:00
Khushboo Vashi d21cbb8b1f Handle composite primary keys correctly when deleting rows in the Edit Grid. Fixes #2425 2017-06-06 09:58:47 +01:00
Murtuza Zabuawala 4b74a5ff35 Enable dialogue help buttons on Language and Foreign Table dialogues. Fixes #2116 2017-06-06 09:52:44 +01:00
Murtuza Zabuawala 0bc9997a95 Properly refresh the parent node when renaming children. Fixes #2355 2017-06-06 09:50:05 +01:00
Dave Page 9e98ded06c Display and allow toggling of trigger enable/disable status from the trigger dialogue. Fixes #2386 2017-06-05 17:11:21 +01:00
Murtuza Zabuawala 3f150f3f4e Handle procedure flags (IMMUTABLE STRICT SECURITY DEFINER PARALLEL RESTRICTED) properly in RE-SQL on EPAS. Fixes #2280 2017-06-05 17:04:55 +01:00
Murtuza Zabuawala a4d86d24e6 Cache statistics more reliably. Fixes #2357 2017-06-05 17:01:03 +01:00
Dave Page 12fa023c6d Fix a couple of issue descriptions. 2017-06-01 13:00:36 +01:00
Karen Blatchley 54760ef3bb Add documented release notes. 2017-06-01 12:29:37 +01:00
Dave Page 1b23a7912a Fix permissions on some files. 2017-05-31 16:48:09 +01:00
Surinder Kumar 456096092d Avoid re-rendering the edit grid for every row that is pasted. 2017-05-30 16:22:11 +01:00
Neel Patel 6e24cb038a Ensure the runtime works correctly if a Windows user has a proxy server enabled. 2017-05-30 13:17:07 +01:00
Surinder Kumar 1f26953504 Cleanup handling of default/null values when data editting. FIxes #2400 2017-05-27 14:51:02 -04:00
George Gelashvili 10caae4dc6 Increase feature test timeouts. 2017-05-27 14:17:06 -04:00
Dave Page 6abc4c239a Improve docs on patch creation 2017-05-26 16:55:20 -04:00
Murtuza Zabuawala 8aabee352c Import the ordereddict module for Python 2.6 2017-05-26 12:34:05 -04:00
Murtuza Zabuawala 2c9af4784e Allow creation of ENUM types with no members. Fixes #2426 2017-05-26 12:21:23 -04:00
Murtuza Zabuawala dba64e77f1 Order columns in multi-column pkeys correctly. Fixes #2417 2017-05-26 11:04:32 -04:00
Murtuza Zabuawala 45d423c0ce Ensure the last placeholder is included when generating UPDATE scripts for tables. Fixes #2436 2017-05-26 10:59:09 -04:00
Murtuza Zabuawala a45bb905f5 Pass the database ID to the query tool when using the Script options. Fixes #2435 2017-05-26 10:57:31 -04:00
Khushboo Vashi 3216eca4a8 Add feature tests to ensure that data types are properly rendered in the query tool. 2017-05-26 10:46:58 -04:00
Dave Page 2f097cd016 Fix typo in freshly added check. 2017-05-25 17:10:41 -04:00
Murtuza Zabuawala e9da157cc7 Add numerous missing checks to ensure objects really exist when we think they do. Fixes #2427 2017-05-25 16:28:04 -04:00
Dave Page 04ce72a6ae Fix RE-SQL for rules which got the table name wrong in the header and DROP statement. Fixes #2422 2017-05-19 12:21:29 +01:00
Murtuza Zabuawala eb18320950 Improve error handling in cases where the user tries to rename or create a server group that would duplicate an existing group. Fixes #2414 2017-05-17 15:57:38 +01:00
Dave Page 17de7db70b Fix server stats display for EPAS 9.2, where inet needs casting to text for concatenation. Fixes #1831 2017-05-17 15:53:13 +01:00
Murtuza Zabuawala a3226b1eb5 Reverse engineer SQL for table-returning functions correctly. Fixes #1851 2017-05-17 15:49:56 +01:00
Murtuza Zabuawala 655d5888a6 Various FTS dictionary cleanups. Fixes #1126 2017-05-17 14:13:05 +01:00
Surinder Kumar 1db81da020 Fix JS error when selecting a single grid cell. 2017-05-16 08:44:29 +01:00
Dave Page 4817b37742 Include backports.csv as a python dependency in the wheel. 2017-05-15 16:42:40 +01:00
Dave Page be42b67f79 Ensure all required directories are created before we start logging. 2017-05-15 15:59:47 +01:00
Surinder Kumar d7d4bf475b Various improvements to the NULL/DEFAULT handling in the data editor. Fixes #2399 2017-05-15 15:04:16 +01:00
Dave Page aa554eb767 Ensure that there's an __init__.py file present in the backports module directory on Windows 2017-05-15 15:03:15 +01:00
Dave Page 001e0ce1cf Mac build fixes:
- Rebuild Python packages from scratch so we know what libraries they use
- Ensure the backports Python module has an __init__.py file.
2017-05-15 14:38:52 +01:00
Murtuza Zabuawala 1cb2a62fa8 Ensure object names are properly escaped for external process management. Fixes #2405 2017-05-15 13:01:12 +01:00
Dave Page f0e78309cb Bump version in preparation for release. 2017-05-15 12:25:28 +01:00
Neel Patel 07b06348ab While building runtime with QtWebEngine, we found 2 compilation errors which were introduced in a previous commit in runtime:
We set "setNetworkAccessManager" in WebEnginePage which was only required for Webkit so removed that statement.
"triggerAction" on WebPage is only required for Qt > 5 with WebKit only. Not required for WebEngine so added that condition.
2017-05-15 11:29:14 +01:00
Murtuza Zabuawala 2ad14b379e Validate table presence in SQL and Properties route handles. Fixes #2395 2017-05-15 10:15:09 +01:00
Joao Pedro De Almeida Pereira 3bf17d9df4 1) Splits the SQL query used to retrieve the Dependents, Dependencies, and Roles SQL file into multiple versioned files.
2) Add Unit Tests for each file.
3) Add ORDER BY into Copy Selection Feature test to ensure the results are retrieved always in the same order
4) Renamed the Scenario of the xss_checks_pgadmin_debugger_test and skip it for versions less than 9.1
5) Deleted unused __init__.py files.
2017-05-15 10:40:46 +05:30
Surinder Kumar 0e7efc0cf8 Track disabled rows properly in the edit grid. 2017-05-12 16:42:06 +01:00
Murtuza Zabuawala aea0d93390 Hide menu options for creating objects, if the object type is set to hidden. Includes Jasmine tests. Fixes #2225 2017-05-12 12:10:46 +01:00
Dave Page dd318e679d Minor colour tweaks for highlighted rows in the data editor. These are likely to be changed again when we overhaul and standardise the colouring, but at least now they're using colours from the style guide. 2017-05-12 11:29:46 +01:00
Akshay Joshi 1f903ba231 Updated psycopg2 version for PostgreSQL 10 compatibility. Fixes #2377 2017-05-12 15:43:03 +05:30
Surinder Kumar 4f9628ed43 Improve handling of nulls and default values in the data editor. Fixes #2257 2017-05-12 10:53:57 +01:00
Murtuza Zabuawala 05787fdba9 Properly handle non-ASCII column names in CSV. Fixes #2314 2017-05-12 10:38:23 +01:00
Murtuza Zabuawala 94cbd70370 Don't change the trigger icon back to "enabled" when the trigger is updated when it's disabled. Fixes #2271 2017-05-10 09:48:21 +01:00
Murtuza Zabuawala 9452e0699e Allow creation of tables with pure numeric names. Fixes #2284 2017-05-10 09:40:32 +01:00
Neel Patel 3ed00d3be7 1) Fixed compilation issue with QT4.
2) Make trigger action 'RequestClose' backword compatible with annulen webkit.
2017-05-10 13:34:39 +05:30
Andrei Antonov cbf2de6c27 HTML escape the label, when setting the collection node count along
with the label of the tree-nodes.
2017-05-10 13:26:18 +05:30
Magnus Hagander 29217946c3 Relax version dependency on psycopg2
Right now psycopg2 is required to be exactly version 2.6.2, which makes it mostly impossible to install pgadmin4 without having the postgresql C development packages installed (since you need to rebuild psycopg2 from source to make that work, given that few platforms ship *exactly* that version).
2017-05-09 12:32:20 +01:00
Murtuza Zabuawala 13f4432bbd Support loading files with Unicode BOMs. Fixes #2369 2017-05-09 12:06:49 +01:00
Neel Patel d0e9c82fea Fixes #2328
1) Fixed issue of opening Query Tool and Debugger in new Tab with QT 5.8 and annulen webkit
 2) Moved unload event of window from javascript files to html.
 3) Change alertify messages for debugger.
 4) Closed all connections created by debugger. Previously only one connection has been closed.
2017-05-09 13:03:44 +05:30
Murtuza Zabuawala 63d42745ef Fix various issues in CSV file download feature:
1) To handle non-ascii filenames which we set from table name. Fixes #2314

2) To handle non-ascii query data. Fixes #2253

3) To dump JSON type columns properly in csv. Fixes #2360
2017-05-08 13:36:11 +01:00
Harshal Dhumal a80f760933 Only reconnect to databases that were previously connected. Fixes #2292 2017-05-08 12:36:51 +01:00
Khushboo Vashi 94b7fc483a Fix sorting of sizes on the statistics views by sorting raw values and prettifying on the client side. Includes Jasmine tests for the prettyfying function. Fixes #2315 2017-05-08 11:29:13 +01:00
Navnath Gadakh c32bf7780e Windows compatibility fixes for the test suite. 2017-05-08 09:25:05 +01:00
Murtuza Zabuawala 155348d712 Fix the Backup module where it was not working if user changes its preference language other than english. Fixes #2354 2017-05-04 16:06:10 +01:00
Murtuza Zabuawala 95f763463f Fix an issue in NodeAjaxControl caching with cache-node field and add cache-node field in Trigger & Event trigger node so that whenever the user creates new Trigger Function we get new data from server in NodeAjaxControl. . Fixes #2242 2017-05-04 16:02:28 +01:00
Surinder Kumar 93df5e3e54 Ensure errors thrown when deleting rows in the query tool in edit mode are shown properly. Fixes #2356 2017-05-02 12:20:30 +01:00
Sarah McAlear 4acecfa59a Use a different server name for unit vs. feature tests to avoid some observed conflicts. 2017-05-02 12:00:30 +01:00
Murtuza Zabuawala 6790bfd0c0 Fixed handling of default parameters ordering in functions. Fixes #2350 2017-04-25 18:40:44 +05:30
Murtuza Zabuawala 1ce1f216ca Fixed handling of nested privileges. Fixes #2335 2017-04-25 12:39:46 +05:30
Murtuza Zabuawala 38c8a4fb60 Fix handling of bigint[] type. Fixes #2272 2017-04-25 12:24:02 +05:30
Murtuza Zabuawala 928c0d3de8 startsWith() function of java script is not supported in IE, instead use startsWith() function of underscore string. Fixes #2347 2017-04-25 12:00:15 +05:30
Joao Pedro De Almeida Pereira f718e1f49c Only display the header row in SlickGrid where columns actually exist. 2017-04-24 20:26:59 +01:00
Akshay Joshi a449be784e Initial support for PG 10.0, per #2214 (missed some files) 2017-04-24 13:56:01 +01:00
Akshay Joshi 59834fba31 Initial support for PG 10.0, per #2214 2017-04-24 13:55:29 +01:00
Joao Pedro De Almeida Pereira 3eb92f7ea3 Update test requirements for the latest rev of Chrome. 2017-04-24 13:07:04 +01:00
Ashesh Vashi 139a10e8f9 Added dependency on Flask-Migrate added by previous commit:
6283ef7f5e
2017-04-24 16:26:50 +05:30
Sarah McAlear 6283ef7f5e [Configuration][Migration] Use 'alembic' for migration of the SQLite
based configuration file from one version to another, and also allows us
to have a single path of creating the table instead of creating tables
using SQLAlchemy or hand rolled SQL

This allows us to run the migrations directly in the code, and it will
avoid the error prone version numbering.

Patched by: Sarah McAlear
Revisions: Joao Pedro De Almeida Pereira, George Gelashvili.
Reviewed by: Ashesh Vashi, Murtuza Zabuawala
2017-04-24 08:37:27 +05:30
Dave Page 04ccc84bf6 Revert "Update Chromedriver version for Chrome 58."
This reverts commit 70832286bc.

The Jenkins CI doesn't like this at all.
2017-04-21 10:15:17 +01:00
Dave Page f6ffaaff98 Revert "Ensure PIP is the latest version when running the CI tests."
This reverts commit bf1f4aefa6.
2017-04-21 10:15:05 +01:00
Dave Page bf1f4aefa6 Ensure PIP is the latest version when running the CI tests. 2017-04-21 10:04:47 +01:00
Khushboo Vashi 618d9bc7a9 Enable horizontal scrolling in the treeview. Fixes #2339 2017-04-21 10:00:22 +01:00
Joao Pedro De Almeida Pereira 70832286bc Update Chromedriver version for Chrome 58.
Note:
If you had previously installed the old driver you need to uninstall and install again it.

$ pip uninstall chromedriver_installer
$ pip install -r regression/requirements.txt
2017-04-21 09:54:18 +01:00
Jonas Thelemann 929a43c9fa Prevent the top-left logo from changing colour when clicked. 2017-04-18 15:09:09 +01:00
Jonas Thelemann 649b064cf3 Re-order Makefile targets for readability. 2017-04-18 15:05:32 +01:00
Jonas Thelemann 8e127cf4fa German translation update. 2017-04-18 15:03:36 +01:00
Jonas Thelemann 7deb570b61 Translation doc update:
- ...anonymized the language codes (ISO 639-1, $LANG)
 - ...clarified the "Updating and Merging" description and removed the examples as they were pretty useless in my eyes. Correct me if they had a meaning.
 - ...anonymized the bash user
 - ...updated the "New Language" section
2017-04-18 15:02:35 +01:00
Dave Page 9f6041b2a7 Revert "Ensure the treeview can be scrolled horizontally. Fixes #2339"
This reverts commit 78c25cef21 which apparently prevents tree nodes being collapsed.
2017-04-18 14:51:26 +01:00
Khushboo Vashi 8d6add13c0 Order foreign table columns correctly. Fixes #2318 2017-04-18 14:37:30 +01:00
Khushboo Vashi 78c25cef21 Ensure the treeview can be scrolled horizontally. Fixes #2339 2017-04-18 14:01:13 +01:00
Khushboo Vashi a3007b7335 Ensure database driver names and description strings can be translated. Fixes #2190 2017-04-18 13:33:27 +01:00
Matthew Kleiman d663d553c5 Allow column or row selection in the query tool. Fixes #2216 2017-04-18 13:28:45 +01:00
Murtuza Zabuawala c35dbc7211 Proper alignment of dropdown menu labels 2017-04-14 15:53:25 +05:30
Akshay Joshi 0d566a6f3a Changed switch label from True/False to Show/Hide for 'Package Functions' and 'Package Procedures' node in Preferences dialog. 2017-04-14 14:57:38 +05:30
Surinder Kumar 9bbc05051c Remove some unused events. 2017-04-12 15:46:31 +01:00
Murtuza Zabuawala 019c1302cb Update inode info when refreshing treeview nodes. Fixes #2336 2017-04-12 13:29:56 +01:00
Akshay Joshi cbee76eac8 Align labels with switches properly. 2017-04-12 13:28:07 +01:00
Navnath Gadakh 62716c4193 Include passed test results in the JSON output from the regression tests. 2017-04-12 13:11:53 +01:00
Murtuza Zabuawala 7dd9efd811 Fix binary search algorithm so new treeview nodes are added in the correct position. Fixes #2331 2017-04-12 13:01:24 +01:00
Dave Page 0c435154ac Adjust windows resources so they work consistently. 2017-04-10 15:15:15 +01:00
Dave Page 665ec46052 Fix application icon in mingw builds. 2017-04-10 14:29:53 +01:00
Dave Page fdf292964b Bump version numbers for release. 2017-04-10 14:24:46 +01:00
Murtuza Zabuawala a2a2b8b888 Ensure the query tool displays but does not render HTML returned by the server in the results grid. Fixes #2330. 2017-04-10 14:07:48 +01:00
Paresh More b86fa15dbc Ensure the web/ directory is cleared before upgrading Windows installations. Fixes #2187 2017-04-10 12:05:09 +01:00
Navnath Gadakh 79e81478e3 Fix a regression framework issue with Python 2.6. 2017-04-10 11:28:10 +01:00
RAJASEKAR G 024b97479d Recover properly if a database is renamed externally. Fixes #2077 2017-04-10 11:09:01 +01:00
RAJASEKAR G 14f3a57d82 Ensure menus are updated after disconnecting a server. Fixes #2281 2017-04-10 09:35:21 +01:00
Dave Page a2c4cb1606 Adding a delay clearly didn't fix the feature tests :-( 2017-04-07 15:33:41 +01:00
Dave Page a431937b50 Attempt to better catch errors in the CI tests. 2017-04-07 15:14:56 +01:00
Dave Page 8a01cdfaf9 Add a 0.5 second delay to treeview node expansion in the feature tests, to try to (temporarily) allow for script loading time. Tentatively enable the feature tests in CI to see if it works. 2017-04-07 12:41:54 +01:00
Dave Page de80545400 Include an example of running just the feature tests. 2017-04-07 12:37:00 +01:00
Murtuza Zabuawala 3dba7d8303 Fixes #2321 - [Browser Tree] Shows only the newly created node (not, all
other child node) of a parent node, when it has not been already loaded.

In order to resolve the issue - we will open the parent, and select the
created node, instead of adding it to parent node.
2017-04-07 08:58:43 +05:30
Dave Page d55b8394cf Oops, syntax error. 2017-04-06 16:13:42 +01:00
Dave Page fcc122f290 Swap entries in karma.conf so test-main.js is matched first, per suggestion from Atira to fix the failing Jasmine tests. 2017-04-06 15:34:05 +01:00
RAJASEKAR G 3880bc7eb8 Fix validation on the table dialogue so the Save button isn't enabled if the name is removed and autovac custom settings are enabled. Fixes #2105 2017-04-06 09:56:52 +01:00
RAJASEKAR G c758920890 Properly handle EXPLAIN queries entered directly by the user in the query tool. Fixes #2287 2017-04-06 09:46:42 +01:00
Begina Felicysym 9ac5bf4f12 Update the Polish translation 2017-04-06 09:36:10 +01:00
Dave Page a412e3226f Use a more appropriate output file name. 2017-04-06 09:34:19 +01:00
Navnath Gadakh dd23f71478 Write a JSON file when regression tests run, listing results. 2017-04-06 09:33:29 +01:00
Jonas Thelemann b8566a0127 Un-split some strings for translateability. And so begins the battle between gettext and pep8... 2017-04-05 15:05:11 +01:00
Dave Page 6d9cfa6679 Update translations 2017-04-05 14:03:17 +01:00
Jonas Thelemann e66616b1d8 Add German translation Fixes #2323 2017-04-05 14:02:46 +01:00
Jonas Thelemann ea2b3f43bd Remove unnecessary quotes. 2017-04-05 13:58:47 +01:00
Jonas Thelemann ddfa934357 Unified usage of "definition incomplete". 2017-04-05 13:55:00 +01:00
Jonas Thelemann 37120bf199 (De)Capitalized strings to fit the common/usual format, corrected spelling, removed unnecessary characters. 2017-04-05 13:50:49 +01:00
Jonas Thelemann 65f21a8cd7 Replace all occurrences of "can not" with "cannot". 2017-04-05 13:38:14 +01:00
Maxim Zakharov 85db82c7f4 Avoid an unauthorised error if clicking on the logo in desktop mode. 2017-04-05 13:33:12 +01:00
Dave Page a7cdd78ad7 Add targets to extract/merge and compile messages. 2017-04-05 13:27:32 +01:00
Dave Page 53c4e2df3b Add an appbundle-webkit build target to build an appbundle, but force the use of QtWebKit. 2017-04-05 12:35:07 +01:00
Dave Page ee17c77093 Ignore some MinGW related build files. 2017-04-03 20:59:42 +01:00
Dave Page e78865b2d4 Add a script for creating a Windows build using Qt with MinGW & QtWebKit Reloaded. 2017-04-03 20:58:47 +01:00
Ashesh Vashi 4d55e8abe8 Resolved a typo in the previous commit. 2017-04-03 19:00:06 +05:30
Ashesh Vashi 02a3919b06 As per Murtuza, we will have the '__module__', when running as a WSGI
application, but - it will not have the '__file__' attribute.
2017-04-03 18:55:24 +05:30
Ashesh Vashi b756407c3c When running pgAdmin as a WSGI application, we will not be able to find
the '__main__' module under 'sys.modules'.
2017-04-03 18:44:53 +05:30
Murtuza Zabuawala 74655e60a0 Replace the '$DIR' only when found in the binary directory string. 2017-04-03 18:32:50 +05:30
Dave Page e7cee870a7 Mingw32 compatibility fixes 2017-04-03 12:58:08 +01:00
Aravindraja Thinakaran bb0bd8acc5 Properly handle truncated table names (> NAMEDATALEN). Fixes #2277 2017-04-01 02:57:48 -04:00
Harshal Dhumal 9acf340400 Generic function qtLiteral was not adapting values properly when they contain non ascii characters. Fixes #2305 2017-03-31 21:11:25 -04:00
Dave Page 4ba9269a88 Remove debug code. 2017-03-31 20:27:41 -04:00
Akshay Joshi 6a861f7a91 Add the config option ALLOW_SAVE_PASSWORD to allow admins to disable saving of passwords. Fixes #2232 2017-03-31 20:14:37 -04:00
Khushboo Vashi efb077b7f7 Fix error highlighting in the query tool. Fixes #2291 2017-03-31 20:06:55 -04:00
Dave Page a4fd313371 Add missing semi-colon. 2017-03-31 17:05:29 -04:00
Dave Page c7fc21e3bb Update Babel version. 2017-03-31 17:03:36 -04:00
Dave Page f3e6fe5b64 Add missing bracket 2017-03-31 12:48:18 -04:00
Dave Page 4e50c186df Update CI script output for parsing with the Log Parser plugin in Jenkins 2017-03-31 12:45:56 -04:00
Dave Page 7a1bb8863a Include translation message catalogs in CI build/test runs. 2017-03-31 12:26:57 -04:00
Dave Page ac1637f281 Make sure each build/test starts in the correct directory. 2017-03-31 12:17:34 -04:00
Dave Page b6fa5f5b33 Add message catalog builds to CI, and run all tests from a runner script to enable test/build addition purely from the source tree. 2017-03-31 12:13:58 -04:00
Murtuza Zabuawala 08ff9d7422 Dialog Help was broken in case where query tool/Debugger opens in new browser tab. Fixes #2310 2017-03-31 16:08:05 +05:30
Maxim Zakharov 8005b05292 Fixes #2304, #2145 - Resolve the issue for restoring the table from the backup.
Earlier - implementation was generating the backup code like as below:
XXX/pg_restore.exe --host "x.x.x.x" --port "xxxx" --username "osboxes" --no-password --dbname "test" --data-only --verbose --table "tt.test2" "XXX-FILE.bak"

It should have been:
XXX/pg_restore.exe --host "x.x.x.x" --port "xxxx" --username "osboxes" --no-password --dbname "test" --data-only --verbose --schema "tt" --table "test2" "XXX-FILE.bak"
2017-03-31 13:16:17 +05:30
Dave Page 696343196a Fix Python 3 compatibility bug 2017-03-30 23:16:43 -04:00
Joao Pedro De Almeida Pereira eb89998dc0 From a visual standpoint, grey highlight makes selection look deselected rather than selected. A brighter color would quickly provide visual feedback on an action.
With this patch the color of selected rows look more highlighted.
2017-03-30 22:56:13 -04:00
Susan Douglas e58dce9425 Correct claims made in the management_basics.rst file 2017-03-30 22:52:17 -04:00
Dave Page 5ce6cd8ca0 Fix a thinko. Had to be one following those typos... 2017-03-30 22:47:05 -04:00
Dave Page 4e96692060 Fix a typo 2017-03-30 17:25:41 -04:00
Dave Page 256f42c64b Fix a typo 2017-03-30 17:19:22 -04:00
Dave Page 4b1781124a Use the correct Python binary. 2017-03-30 17:13:06 -04:00
Dave Page 8941756a9d Select the correct Sphinx version 2017-03-30 17:11:08 -04:00
Dave Page 0a381c4a53 Add scripts for building the PIP wheel and tarballs 2017-03-30 17:05:49 -04:00
Dave Page b826e0863c Clean the build from the correct directory. 2017-03-30 16:49:11 -04:00
Dave Page cdc1b70aea Ensure CI scripts are executable 2017-03-30 16:37:44 -04:00
Dave Page b65896b85b Add basic CI runner scripts for Jenkins 2017-03-30 16:34:24 -04:00
Maxim Zakharov 4e16345257 Add support for proxies in the runtime. Fixes #2301 2017-03-29 12:17:16 -04:00
Dave Page 87bbb5ef2c Revert to the old, arguably broken code for QT4 port selection, as QT4 doesn't support TCP socket binding as QT5 does. 2017-03-29 11:33:55 -04:00
Sarah McAlear 1d27341e21 Fix translation extraction for new client side translations, and update catalogs. 2017-03-28 15:21:49 -04:00
Khushboo Vashi 8745417926 Fix ascending/descending sort order in backgrid while clicking on the headers. Fixes #2303 2017-03-28 09:19:24 -04:00
Dave Page 44ce8985e0 Fix typo in variable name. 2017-03-28 08:55:38 -04:00
Dave Page 688c810300 Add header that seems to be needed with Python 3. 2017-03-28 08:41:38 -04:00
Maxim Zakharov 72548a99e1 Fix usage of QString::toUtf8(). Fixes #2299
Desktop runtime has a couple bugs using already freed memory supplied to embedded python leading to occasional crashes and failures to start maintenance processes (VACUUM, ANALYZE, REINDEX, CLUSTER).

This is caused by incorrect usage of QString::toUtf8() which returns newly created QByteArray which is automatically destroyed once closing context; e.g.
Py_SetPythonHome(pythonHome.toUtf8().data());
2017-03-28 08:26:16 -04:00
Dave Page f19fc307b1 Treat doc build warnings as errors for CI purposes and correctness. 2017-03-27 22:10:39 -04:00
Dave Page 7450c2df0d Revert code cleanup that wasn't 2.6 compatible. 2017-03-27 21:27:17 -04:00
Dave Page 95f43d59b8 Revert "Ensure client-side translations are correctly extracted into the message templates."
This reverts commit 82bd97aed0.

There are still issues extracting with these changes.
2017-03-27 13:53:40 -04:00
Sarah McAlear 82bd97aed0 Ensure client-side translations are correctly extracted into the message templates. 2017-03-27 13:24:47 -04:00
Khushboo Vashi 633d2ad28c Fix the bin path preferences. 2017-03-27 12:25:59 -04:00
Akshay Joshi 757500c478 Ensure preferences are properly saved the first time they're set. 2017-03-27 12:19:28 -04:00
Dave Page b2ab35e990 Don't require an auth key for the static help files. It doesn't play nicely with webkit. 2017-03-26 21:52:31 -04:00
Dave Page ea6d97c49d Add a couple of headers that Qt 5.8 seems to be more picky about, and fix the free port check to use TCP not UDP 2017-03-26 21:02:15 -04:00
Jonas Thelemann c391696054 Remove some unnecessary line breaks causing problems with translations. 2017-03-26 20:26:58 -04:00
Sarah McAlear 66815643a9 Fix a cleanup SQL query to enable running feature tests on CI against Greenplum. 2017-03-25 22:09:00 -04:00
Dave Page 6152d73f13 Fix some code inspection complaints 2017-03-25 22:04:52 -04:00
Dave Page a6fa35789c Fix broken markup 2017-03-25 22:04:52 -04:00
Dave Page 8bd648c5b6 Don't include the tools directory in the Mac & Windows packages 2017-03-25 22:04:52 -04:00
Dave Page 4f27afc99b Ensure the spinner doesn't obscure the version 2017-03-25 22:04:52 -04:00
Dave Page 232ebae3aa Make target for the minimise tool 2017-03-25 22:04:52 -04:00
Dave Page e0f7a1cde6 Add a simple tool to minimise CSS and JS files (for future use) 2017-03-25 22:04:52 -04:00
Akshay Joshi 569ceb3906 Modify the web code to allow the Query Tool and Debugger to be opened in new tabs, per settings in Preferences. Fixes #1344
Note that this does *not* enable the runtime to use multiple windows at this stage. It's really only useful in Server mode.
2017-03-24 14:43:56 +00:00
Khushboo Vashi 0eda6033df Allow users to select UI language at login or from Preferences rather than unpredictable behaviour from browsers. Fixes #2190 2017-03-24 14:20:10 +00:00
Dave Page 6cb9ece6fd Decode error messages before trying to use them. 2017-03-24 14:11:31 +00:00
Wayne Winch Jr 5f2a15dd6d Fix deletion of rows where the primary key isn't at ordinal zero. Fixes #2274 2017-03-24 13:32:56 +00:00
Dave Page ee73b5ba26 Fix path 2017-03-24 11:41:14 +00:00
Atira Odhner 73193a0d6d Update translation docs for client side JS translation support. 2017-03-24 11:40:51 +00:00
Murtuza Zabuawala d4e88217eb Added timeout in _wait_timeout function in our psycopg2 module.
Fixes debugger module, Added common function to covert 2d array data to dict for BackGrid.
2017-03-24 14:01:59 +05:30
Dave Page d205550b53 Fix Python 3 compatibility. 2017-03-23 13:43:24 +00:00
Dave Page 8748ee20cb Client side translation. 2017-03-23 12:35:28 +00:00
Dave Page 59a6a08e8a Add file missed from the previous commit. 2017-03-23 12:06:13 +00:00
Atira Odhner 10920404e1 Re-organised the regression directory now we have multiple test suites: move test_utils.py into python_test_utils/ 2017-03-23 11:59:31 +00:00
Atira Odhner fe9bc379c7 Replace the template selection feature test with one that tests table DDL generation (which also covers template selection). 2017-03-23 11:47:21 +00:00
Atira Odhner 77007996ed Support generation of DDL for tables in Greenplum DB. Fixes #2261 2017-03-23 11:40:06 +00:00
Atira Odhner 0ba0b25290 Move foreign key templates into a default directory. 2017-03-23 11:13:06 +00:00
Harshal Dhumal 720aefbe6f Select2Cell: Check if cell is in multiselect mode before setting default selection of multiple values. Fixes #2283 2017-03-23 10:45:42 +00:00
Dave Page 5b12fd6d5f Client-side translation for the About and Dashboard modules. 2017-03-22 12:57:59 +00:00
Ashesh Vashi 90a369b7de [Extendible][Dashboard] Allow to create a server clicking the
'Add New Server' button on the dashboard, even when the first node is
of not type of 'server-group' in the browser tree.
2017-03-21 22:58:07 +05:30
Harshal Dhumal 2142824448 PRevent an error being displayed if the user views data on a table with no columns. Fixes #2244 2017-03-21 16:40:21 +00:00
Surinder Kumar aee1492d0d Correct some EDB Postgres Advanced Server branding. 2017-03-21 10:12:26 +00:00
Dave Page 564ecc37db Ignore the Yarn lock file. 2017-03-21 10:11:19 +00:00
Ashesh Vashi 4eafdbeff6 Resolved a typo - show a '?' after the 'Show timing' preference. 2017-03-21 11:17:35 +05:30
Dave Page 4ff082ee74 Use correct file header for a JS file. 2017-03-20 19:32:52 +00:00
Ashesh Vashi 72128df75c [Extendible][Dashboard] Allow to show the dashboard of their choice for
the selected node in the browser tree.
2017-03-20 19:17:47 +05:30
Sarah McAlear c9e04fec8d Show tooltips for disabled buttons to help user learning. Fixes #2226 2017-03-20 10:33:35 +00:00
Murtuza Zabuawala 145983d544 Add miissing braces to reverse engineered SQL header block for Functions. Fixes #2246 2017-03-17 12:48:58 +00:00
Murtuza Zabuawala 461086c17d Fix View Data filter options. Fixes #2265 2017-03-17 12:45:59 +00:00
Murtuza Zabuawala e9702752d9 Fix hadling of DATERANGE[] type. Fixes #2258 2017-03-17 12:40:08 +00:00
Dave Page 6abb906b20 Remove test related files from the mac appbundle. 2017-03-17 12:21:15 +00:00
Harshal Dhumal e4134695e5 Fix dropping of databases with Unicode names. Fixes #2243
1. Pickup correct encoding in qtLiteral to decode.
2. While releasing database connection only decode database name if it's not unicode.
2017-03-17 10:33:03 +00:00
Dave Page 648c332488 Import from flask_babel instead of the deprecated flask.ext.babel. Fixes #2264 2017-03-17 10:22:41 +00:00
Atira Odhner 4464be6f43 Fix a typo and remove an unnecessary copy of the column properties template. 2017-03-17 10:02:52 +00:00
Dave Page b2a74ad26d Fix a bunch of file headers. 2017-03-16 14:27:55 +00:00
Joao Pedro De Almeida Pereira 6ad6bf5aab Update test requirements to include a version of Selenium that supports Chrome 57, and the chromedriver installer. 2017-03-16 09:53:26 +00:00
Atira Odhner 2abd3724c2 Ensure the screenshots directory exists before trying to save regression test screenshots 2017-03-15 22:06:04 +00:00
Dave Page cc4686f1bb README improvements. 2017-03-15 17:16:02 +00:00
Atira Odhner dbddad50bf Move the package.json file to the web/ directory 2017-03-15 17:15:16 +00:00
Atira Odhner c8fa0c4e28 Don't ship the node_modules directory with packages as it's only used for local testing. 2017-03-15 17:14:37 +00:00
Atira Odhner 5593faf2a4 Move the karma config and node_modules into the web directory. 2017-03-15 17:13:55 +00:00
Atira Odhner ae0d8e89eb Fix the path to JS 2017-03-15 17:12:58 +00:00
Atira Odhner 889050b71d Fix quotes to ensure we have valid JS. 2017-03-15 17:11:53 +00:00
Atira Odhner 172b41cba8 Refactor clipboard copying into a separate file for use outside the SQL Editor. 2017-03-15 17:11:11 +00:00
Atira Odhner 4445f9dd63 Add a mechanism for centralising JS translations, to avoid having to render many JS files with Jinja. 2017-03-15 17:10:22 +00:00
Atira Odhner 2f84156dc6 Add Jasmine test framework for JS testing. 2017-03-15 17:09:22 +00:00
Murtuza Zabuawala ff9d6cd3d5 Fix previous partial commit 2017-03-14 09:34:12 +00:00
Murtuza Zabuawala cc4c557122 Move Bootstrap files into the distribution format. 2017-03-14 09:23:30 +00:00
Dave Page 1c6f30a0ed Remove \n in translation that was causing a syntax error. 2017-03-13 10:39:36 +00:00
Ashesh Vashi 7767c085c3 Resolved an issue finding the python interpreter on *nix systems, and
Windows 2008 R2 (32 bit), while running the pgAdmin 4 as runtime for
the PostgreSQL one click installers.

- Found a typo in runtime code, we were appending the path using ';' on
  *nix systems too. We should have used ':', and that did not allow the
  os.environ['PATH'] to identify the correct path of the python
  interpreter under the 'venv' directory.

- On Windows 2008, it was not honouring the environment variables, set
  under the Qt application (e.g. pgAdmin4.exe runtime), in the python
  application. (e.g. pgAdmin4.py). We will need to assume that - the
  python interpreter resides under the 'venv' directory outside the
  'bin' directory.

- Also, on windows 2008, it was setting PYTHONHOME environment variable
  to the full path of the pgAdmin4.exe, we need to reset it to 'venv'
  directory, if we find the python interpreter under it.

Thanks Murtuza Zabuawala for tips, and help.
2017-03-10 21:19:06 +05:30
Atira Odhner 28deb34283 Remove some dead code. 2017-03-10 10:27:17 +00:00
Begina Felicysym 5e6c29d5db Update Polish translation 2017-03-10 09:03:18 +00:00
Joao Pedro De Almeida Pereira d756f2f6c6 Create screenshots when feature tests fail. 2017-03-09 15:34:51 +00:00
Harshal Dhumal 502c827697 Fix numeric control validation in nested schemas. Fixes #2241 2017-03-09 15:23:18 +00:00
Dave Page 670c8a2cc1 Disable HTMLMIN with Python 2.6 as it doesn't work on that older version. 2017-03-09 15:21:52 +00:00
Murtuza Zabuawala bc63652811 Fix the issue where Import/Export was failing in linux runtime. Fixes #2166
Issue:
Changes done by Ashesh in pgAdmin4.py file for setting up PYTHONHOME variable to sys.prefix was applicable only for windows only.

Additionally I have also added exception handling for file provided by user for Backup/Restore/Import/Export.
2017-03-09 09:54:55 +00:00
Murtuza Zabuawala 533833cb02 Cleanup some ugly code formatting. 2017-03-09 09:27:41 +00:00
Dave Page 18d465e7bc Fix some messages and update the Polish translation from Begina Felicysym 2017-03-09 09:23:19 +00:00
Begina Felicysym b6fefd89b6 Add a Polish translation 2017-03-08 10:14:18 +00:00
Dave Page fb44ffffa0 Fix a couple of translation issues, and remove the test French translation files. 2017-03-08 10:13:15 +00:00
Dave Page 981ebfbcf7 Ensure feature tests are compatible with Python 3.5.
This is required even if they aren't run, as RPM builds will try to byte compile all files in the distro.
2017-03-08 09:49:48 +00:00
Ashesh Vashi da9aa3ccbd Don't try to start chromedriver and friends if the feature tests are excluded. 2017-03-08 09:21:28 +00:00
Dave Page 3658ca6c55 Avoid leaving chromedriver processes cluttering the landscape after running the feature tests.
Per https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/3378, we were doing it wrong :-(
2017-03-07 13:49:52 +00:00
Ashesh Vashi 41e0a73ea6 Adding the directory containing 'config.py' in to the sys.path variable,
so that - when config.py refered from outside the pgAdmin itself (i.e.
during building the pip).
2017-03-07 17:10:34 +05:30
Dave Page 1f9fd507b0 Translation updates. 2017-03-07 11:20:20 +00:00
Ashesh Vashi 6cc1fbe739 Import config only when needed, it was causing cyclic dependency when
running the regression suite.
2017-03-07 16:07:10 +05:30
Jonas Thelemann 8435257e00 Fix some typos in comments. 2017-03-07 10:35:24 +00:00
Jonas Thelemann e3e951e86d Prevent the Slonik logo obscuring the login dialogue on small displays in server mode. Fixes #2230 2017-03-07 10:33:38 +00:00
Jonas Thelemann c34f5fd2d4 Use "could not" consistently, instead of "couldn't" which was used in some places. 2017-03-07 10:29:54 +00:00
Ashesh Vashi f2fc1ceba8 Resolved quite a few file-system encoding/decoding related cases.
In order to resolve the non-ascii characters in path (in user directory,
storage path, etc) on windows, we have converted the path into the
short-path, so that - we don't need to deal with the encoding issues
(specially with Python 2).

We've resolved majority of the issues with this patch.
We still need couple issues to resolve after this in the same area.

TODO
* Add better support for non-ascii characters in the database name on
  windows with Python 3
* Improve the messages created after the background processes by
  different modules (such as Backup, Restore, Import/Export, etc.),
  which does not show short-paths, and xml representable characters for
  non-ascii characters, when found in the database objects, and the file
  PATH.

Fixes #2174, #1797, #2166, #1940

Initial patch by: Surinder Kumar
Reviewed by: Murtuza Zabuawala
2017-03-07 15:31:03 +05:30
Dave Page 063177155e Bump version prior to release. 2017-03-06 15:35:08 +00:00
Dave Page 3317a02120 Fix regression tests with runtime auth. Fixes #2228 2017-03-06 15:24:52 +00:00
Dave Page 6696b3c316 Authenticate the runtime to the server. Fixes #2228 2017-03-06 14:53:49 +00:00
Murtuza Zabuawala 6d6a3753ee Fix the path to the busy indicator for the treeview which changed when the aciTree module was moved. 2017-03-06 10:36:07 +00:00
Murtuza Zabuawala da186ea77b Ensure servers are deleted when their parent group is deleted. Fixes #2212 2017-03-06 10:35:27 +00:00
Murtuza Zabuawala af499c0c9a Show the correct indeterminate state when editing new boolean values. Fixes #2218 2017-03-06 10:30:58 +00:00
Neel Patel 278c64c361 Add missing "Run Now" option for pgAdmin jobs. Fixes #1796 2017-03-06 10:24:43 +00:00
Dave Page 523cd6f34a Exclude a bunch of unnecessary files from the Windows package. 2017-03-02 12:08:56 +00:00
Dave Page d1b95aeb33 Revert "Rename the top level feature tests directory for consistency with other test directories"
The exclude command line option relies on the directory name. This needs fixing...

This reverts commit 9288d69b62.
2017-03-02 11:23:05 +00:00
Dave Page 9288d69b62 Rename the top level feature tests directory for consistency with other test directories 2017-03-02 11:09:08 +00:00
Harshal Dhumal ffa8d94e76 Better handling the non-ascii characters for different database objects.
Using 'psycopg2.extensions.UNICODE' (for Python < 3) in the psycopg2
driver for proper conversation of unicode characters. Also - adjusted
the string typecaster to take care of different character types (char,
character, text, name, character varying, and their array types).

Reviewed by: Dave Page, Murtuza Zabuawala & Akshay Joshi
2017-03-02 15:09:28 +05:30
Dave Page af29eac6ba Move another test-only dependency to web/regression/requirements.txt 2017-03-02 09:18:45 +00:00
Atira Odhner e89c54c15d Make feature test app teardown more reliable, and tests faster
- don't spin up app and chromedriver between each test
    - catching signals also tears down the app
    - do layout reset between tests, but assume that tests will not leave a modal opened.

 Use selenium built-in waiting function and fix flakiness around clicking the alertify OK button

    - we think the OK button does not have its event bound when it is created.

If you see more flakiness around clicking the alertify OK button, let us know. The element is clickable but we have to arbitrarily wait for the event to be bound and that timing may vary system to system.

The feature tests are about 7 seconds faster now.

Tira & Joao
2017-03-01 13:20:06 +00:00
Dave Page 59c6be534d Typo fixes. 2017-03-01 12:49:15 +00:00
Khushboo Vashi ddb8bad201 Fix Sequence ACL SQL for PG 9.3/9.2. 2017-03-01 12:46:58 +00:00
Murtuza Zabuawala 480e00fddf Query tool efficiency.Convert the data as a 2D array instead of dict. Fixes #2036
Incremental back off when polling. Fixes #2038

Initial Patch By: Dave Page
2017-03-01 16:58:51 +05:30
Murtuza Zabuawala 6d438fec5e Ignore Visual Studio code editor files. 2017-03-01 10:03:19 +00:00
Atira Odhner 5fa1e83f0a Ensure feature tests use the TEST_SQLITE_PATH, not SQLITE_PATH. 2017-02-28 17:09:32 +00:00
Dave Page 76d5dccc46 Further fixes and cleanups to the Windows build script, including some Python 3 compatibility changes. 2017-02-28 17:02:01 +00:00
Atira Odhner 0cd914f3f9 Improve visibility of syntax highlighting colours. Fixes #2215 2017-02-28 15:08:36 +00:00
Murtuza Zabuawala e2e000a371 Remove a debug message. 2017-02-28 14:44:58 +00:00
Navnath Gadakh 1f935d699e Testsuite fixes for 9.3 and 9.2 support. 2017-02-28 14:22:10 +00:00
Dave Page bc521dfc49 Various fixes and cleanups to the Windows build script. 2017-02-28 13:03:50 +00:00
Dave Page 5dc2326e9d Consistent dialogue configuration 2017-02-27 14:58:22 +00:00
Dave Page 3638d63330 Move pgadmin plugins for codemirror back out of the vendor area. 2017-02-27 13:18:28 +00:00
Dave Page 206b9255c5 Fix CSS path. Fixes #2213 2017-02-27 12:39:13 +00:00
Dave Page 5a7a82b4e9 Simplify runtime startup polling, and increase retries to 30.
Ensure the splash screen is hidden before showing errors.
2017-02-27 10:49:47 +00:00
Dave Page 2ebd256307 Fix startup complete tests to ensure we properly poll the server for completed startup. Fixes #2192 2017-02-26 11:52:42 +00:00
Dave Page 074f7a805e Build a universal Python wheel instead of per-python-version ones. Fixes #2210 2017-02-26 10:01:23 +00:00
Dave Page 631ddff485 Remove unused imports. 2017-02-26 09:16:19 +00:00
Dave Page ec0099255a Use the correct requirements file when building the PIP package, and update the supported Python versions. 2017-02-26 09:14:22 +00:00
Dave Page 1e5de7e66e Merge the Python 2 & 3 requirements files, and break out test requirements into a separate file. 2017-02-26 09:06:17 +00:00
Dave Page 2f69916372 Add selenium to the Pip requirements for the automated tests. 2017-02-24 17:06:59 +00:00
Sarah McAlear a0a31e55ae Move 3rd party client code into vendor/ directories for ease of maintenance. 2017-02-24 17:01:21 +00:00
Dave Page b19081421b Ensure primary key column names are quoted in View Data mode of the Query Tool. Fixes #2208 2017-02-24 13:58:23 +00:00
Surinder Kumar 40ff651ef3 Fix display of boolean nulls in the query tool. Fixes #2205 2017-02-24 13:47:37 +00:00
Surinder Kumar 88cae263b2 Fix display of long integers and decimals. Fixes #2039. Fixes #2119. Fixes #2154 2017-02-24 13:39:40 +00:00
Surinder Kumar c0f2aab001 Ensure we never sort columns on the treeview. Fixes #2185 2017-02-24 13:02:13 +00:00
Harshal Dhumal b961b2d929 Fix function arguments when generating create SQL. Fixes #2198 2017-02-24 12:42:25 +00:00
Khushboo Vashi 0ba9b7db43 Add PARALLEL SAFE|UNSAFE|RESTRICTED support. Fixes #2089 2017-02-24 12:21:05 +00:00
Harshal Dhumal 1c09b57a1a Fix casting issue with dependents queries. 2017-02-24 10:48:46 +00:00
Harshal Dhumal 685b1ea12f Fix renaming of check constraints when the table name is changed at the same time. Fixes #2201 2017-02-24 10:44:43 +00:00
Harshal Dhumal 5e33fe4e95 Properly handle event trigger functions in different schemas. Fixes #2200 2017-02-24 10:40:11 +00:00
Atira Odhner fe1aec5de0 Add feature test framework, using selenium and chromedriver for UI testing.
Written by both George and Atira at Pivotal.
2017-02-22 12:41:28 +00:00
Murtuza Zabuawala 89137f57b2 Display un-sized varlen column types correctly in the query tool. Fixes #2151 2017-02-21 13:12:50 +00:00
George Gelashvili 03a161cc0a Don't try to decode connection error strings that are null. 2017-02-16 16:42:19 +00:00
Dave Page 03f292ce51 Tidy up the regression test output a little. 2017-02-16 11:40:54 +00:00
Dave Page 05d2373c9a Add a makefile target to run the regression tests. 2017-02-16 11:31:13 +00:00
Dave Page d9ddd64a8b Qt 5.8 seems to generate an additional header we should ignore. 2017-02-16 11:27:14 +00:00
Atira Odhner e3041f1113 Ensure the Mac Appbundle builds correctly both with and without code signing.
Correct current versions of Python/Qt while we're passing.
2017-02-16 11:25:32 +00:00
Murtuza Zabuawala 9ad1316990 Various encoding fixes. Fixes #2160 2017-02-16 11:00:40 +00:00
Surinder Kumar 833629d438 Fix exclusion constraint reverse engineered SQL. Fixes #2115 2017-02-16 10:54:21 +00:00
Surinder Kumar cbaad81f00 Correct node labels in Preferences for EDB functions and procedures. Fixes #2126 2017-02-16 10:47:28 +00:00
Atira Odhner b6486f3d42 Test suite runner enhancements:
To chase down a set of tests that were failing together, we wanted to run
deeper trees of tests. We changed the behavior of the --pkg argument to
runtests.py so it runs tests under a package and its subpackages, instead
of for a single node.

It gave us more flexibility in what tests to run. This also includes the
--exclude option.

To run tests for a single node, ".tests" can be appended to the package path.

Tira & George.
2017-02-15 15:10:31 +00:00
Dave Page 30a3167c0c Remove some inaccurate docs copy/pasted from pgAdmin 3. 2017-02-15 14:37:22 +00:00
Dave Page 78ff4faf68 Remove some inaccurate docs copy/pasted from pgAdmin 3. 2017-02-15 14:36:47 +00:00
Dave Page 40f2520fa6 Add comment to note command line qmake usage. 2017-02-13 12:08:36 +00:00
Dave Page e103b2b315 Allow the Python interpreter to be overridden on the build command line. 2017-02-13 12:07:25 +00:00
Dave Page 88aac7a4c9 Update the runtime build to allow users to force building with QtWebKit in Qt5, instead of QtWebEngine. 2017-02-13 11:44:53 +00:00
Dave Page ae10da4371 Another Python 3.x compatibility fix. 2017-02-13 10:27:16 +00:00
Dave Page 56bd1f6c05 Fix Python 2.6 compatibility. 2017-02-13 10:18:22 +00:00
Dave Page 14f181d2ba Fix Python 3 compatibility. 2017-02-13 10:07:38 +00:00
Atira Odhner 1340c1c2ee Make syntax highlighting more visible by making keywords and numbers bolder. 2017-02-13 10:05:54 +00:00
Atira Odhner ec9e8b79a3 Basic support for viewing tables in Greenplum. Patch from George & Tira @ Pivotal. 2017-02-13 10:02:20 +00:00
Ashesh Vashi 2f6a0e01da Ensure that PYTHONHOME is set for sub-processes such as the background executor. 2017-02-10 22:42:44 +00:00
Dave Page 24a3f3ab42 Reduce the default log level to something more sensible. 2017-02-10 21:33:57 +00:00
Dave Page d3232b2449 Fix runtime version number. 2017-02-10 12:02:42 +00:00
Dave Page 3697bf0a2c Update supported Python versions. 2017-02-09 12:53:44 +00:00
Murtuza Zabuawala 6887920295 Ensure FTS parsers and templates are removed prior to creating them when testing. 2017-02-09 12:05:55 +00:00
Murtuza Zabuawala c34fdaf37d Fix the issue with Jinja conditions in Foreign Data Wrappers, Foreign Servers, User Mapping.
I also did some re-formatting & re-factoring to code to remove all the duplicate code.
2017-02-09 12:05:09 +00:00
Dave Page 9aa479ea2e Spit out an exit code when running the regression tests. 2017-02-08 16:52:03 +00:00
Murtuza Zabuawala a914ea088c Python 2.6 compatibility fixes. 2017-02-08 16:28:04 +00:00
Dave Page e95dc5f895 Fix indentation 2017-02-08 11:40:43 +00:00
Dave Page 2dc0eab057 Update translation files. 2017-02-06 16:25:16 +00:00
Dave Page 5abd62389d Bump version for release. 2017-02-06 15:45:14 +00:00
Murtuza Zabuawala ec93077040 Compatibility fixes for newer versions of Jinja2 (e.g. 2.9.5+). Fixes #2156 2017-02-06 12:53:16 +00:00
Murtuza Zabuawala c96da34c28 Fix handling of "char" columns. Fixes #2152 2017-02-06 10:59:03 +00:00
Murtuza Zabuawala 4d8683e13a Fix display of graphical query plans for UPDATE/DELETE queries. Fixes #2133 2017-02-06 10:43:31 +00:00
Murtuza Zabuawala 3ea8a7b211 Fix column addition regression test. 2017-02-06 09:46:34 +00:00
Surinder Kumar 4566877188 Handle NULL booleans in the data editor. Fixes #1790 2017-02-05 11:06:48 +01:00
Ashesh Vashi b7c5039416 Fix process execution. Fixes #1679. Fixes #2144.
Re-engineer the background process executor, to avoid using sqlite as some builds of
components it relies on do not support working in forked children.
2017-02-04 15:26:57 +01:00
Dave Page 426ee40a71 Add some help on data editing. 2017-02-04 14:35:02 +01:00
Dave Page 3cc58cf3de Remove help text for an option that no longer exists. 2017-02-04 14:23:43 +01:00
Surinder Kumar 54ba1fbe59 Support setting text fields to empty strings or NULL in the data editor grid. Fixes #1790 2017-02-04 14:10:30 +01:00
Neel Patel c17e201a92 Handle saved directories that no longer exist gracefully. Fixes #2110 2017-02-03 15:19:21 +01:00
Murtuza Zabuawala bf8c3c4180 Handle sized time/timestamp columns correctly. Fixes #2076 2017-02-03 14:51:58 +01:00
Khushboo Vashi f2ac6fc6a7 1) Wrong tablespace displayed in table properties. Fixes #2069
2) Message (Connection to the server has been lost.) displayed with Materialized view and view under sql tab. Fixes #2139
2017-02-03 16:13:07 +05:30
Harshal Dhumal 4ef26a528b Allow direct navigation (i.e. typing of paths) in the file manager. Fixes #1911 2017-02-03 10:51:36 +01:00
Murtuza Zabuawala 687a793383 Fix display of zeros in read-only grid editors. Fixes #2138 2017-02-01 13:48:46 +00:00
Murtuza Zabuawala 2d442da9ff Properly handle setting comments and other options on databases with allowconn = False. Fixes #2024 2017-02-01 10:23:45 +00:00
George Gelashvili 6d05302ca1 Rename the 9.1_plus templates to "default" to more appropriately support Greenplum which is based on 8.3. 2017-02-01 09:57:49 +00:00
Murtuza Zabuawala 0da8d1fe4c Another Python 3 fix. 2017-01-31 12:12:22 +00:00
Navnath Gadakh fd53e0c527 Disable upgrade checks during regression testing. 2017-01-31 10:29:07 +00:00
Murtuza Zabuawala 2e5771e164 Python 3 fix for the template loader test. 2017-01-31 10:02:20 +00:00
Atira Odhner c6b67fc66a Bypass recovery checks with older servers. This is required for Greenplum which is based on PG 8.3 at present. 2017-01-30 17:02:55 +00:00
Surinder Kumar 30e546208f Ensure dialogues cannot be moved under the navbar. Fixes #2047 2017-01-30 14:02:01 +00:00
Murtuza Zabuawala e8f0cf6d94 Resolve various trigger issues. Fixes #2015
- Allow changing of row/statement flag
- When user update any of the parameter - trigger gets disappear from browser tree. To make it visible user  has to do refresh.
- Edit Mode - 'Row level' trigger was not allowed to edit for "inline edb-spl" trigger function, even though "Row Trigger" is enabled.
- SQL was not generated properly when user change 'Row Trigger', Fires and events.
- Edit Mode - Fires and Events should be allowed to edit for "inline edb-spl" function mentioned with Code in description.
- Edit Mode - For trigger, if user edit parameters like Fires, Events, Code, Row trigger etc. then new OID is getting generated so we should fetch and return new OID in response rather then old trigger OID.
2017-01-30 13:05:15 +00:00
George Gelashvili 19be3529f8 Create a template loader for SQL templates.
This will automatically find the correct version of a template for the server version, and allows us to remove templates that were previously duplicated for different server versions.

Patch by George & Tira at Pivotal. Review by me and Murtuza from EDB.

Discussion: https://www.postgresql.org/message-id/flat/CAHowoHaU9_pkCt%2B1g8dpY3hsXXZmsJZiJH-3-_Hd%2BC1MxiGhtA%40mail.gmail.com#CAHowoHaU9_pkCt+1g8dpY3hsXXZmsJZiJH-3-_Hd+C1MxiGhtA@mail.gmail.com
2017-01-30 11:25:03 +00:00
Dave Page 42d3121369 Request Six>=1.9.0 as the current version is 1.10.0 and it gets pre-installed in every new virtualenv. 2017-01-27 09:20:05 +00:00
Surinder Kumar e01cf748ea Enable/disable NULLs and ASC/DESC options for index columns and exclusion constraints appropriately. Fixes #2061. Fixes #1840. 2017-01-25 13:21:39 +00:00
Dave Page 2ebaf56cc4 Update copyright year. Fixes #2109 2017-01-25 09:05:13 +00:00
Murtuza Zabuawala 29a6f2e124 Fix Reset Statistics operation for which the popup messages weren't displaying correctly. Fixes #2091 2017-01-24 10:19:33 +00:00
Dave Page 801c7688a3 A little message cleanup. 2017-01-24 10:18:30 +00:00
George Gelashvili b4d4cffc60 Python 3 fix for the regression tests 2017-01-20 15:29:57 +00:00
Harshal Dhumal 415119d581 Properly remove any event listeners added by subnode control. 2017-01-20 13:24:37 +00:00
Dave Page ac4178233b Revert "Handle comments on databases with datallowconn=False correctly. Fixes #2024"
This reverts commit e431eb9d8e.
2017-01-20 13:21:05 +00:00
Dave Page ff199f4582 Fix typo in virtualenvwrapper's name. Fixes #2083 2017-01-18 09:33:52 +00:00
Murtuza Zabuawala 6557433061 Fix display of enum GUCs on users/databases etc. Fixes #2067 2017-01-17 10:45:01 +00:00
Murtuza Zabuawala 28621999f2 Improve display of columns of exclusion contraints and foreign keys in the properties lists. Fixes #2065 2017-01-17 10:25:26 +00:00
Murtuza Zabuawala e431eb9d8e Handle comments on databases with datallowconn=False correctly. Fixes #2024 2017-01-16 15:42:25 +00:00
Neel Patel 0d4bc0d27d Store layout changes on each adjustment, rather than on unload which is unreliable. Fixes #1967
We also use an async request now, rather than a deprecated sync request.
2017-01-16 15:34:55 +00:00
Khushboo Vashi 024b664c21 Improve the display of role membership on both the properties panel and role dialogue. Fixes #1730 2017-01-16 14:48:25 +00:00
Dave Page a85861ca57 Remove some comments that don't fit with our normal presentation of generated SQL. 2017-01-16 14:46:44 +00:00
Jonas Thelemann 2db705ad80 Add runtime/pgAdmin4 to .gitignore, and re-order entries for ease of maintenance. 2017-01-16 14:46:44 +00:00
Dave Page fe1d2f9805 Fix copyright year on doc page. Fixes #2045 2017-01-09 17:16:34 +05:30
Surinder Kumar 86f6857cb7 Fix sorting of numerics in the statistics grids. Fixes #1938 2017-01-09 15:55:38 +05:30
Murtuza Zabuawala 4c19f93b3b Use the correct OID for retrieving properties of freshly created exclusion constraints. Fixes #1896 2017-01-09 15:05:22 +05:30
Surinder Kumar e400693126 Add BigNumberJS library for upcoming large number related fixes. 2017-01-09 09:07:21 +05:30
Surinder Kumar b14f8239d2 Fix a SQL error when reverse-engineering ROLE SQL on EPAS servers. Fixes #1830 2017-01-09 08:14:34 +05:30
Khushboo Vashi 01b2288d57 Ensure columns with types that are not in pg_catalog are handled properly in the table dialog. 2017-01-09 08:05:51 +05:30
Surinder Kumar d05534ad6c Prevent attempts to access what may be an empty list. Fixes #1832 2017-01-09 07:56:02 +05:30
Neel Patel d87345ef52 Ensure breakpoints are cleared properly when clearing all of them. Fixes #1745 2017-01-08 19:05:13 +05:30
Navnath Gadakh 1325b30e0b Various improvements to the regression tests, notably avoiding use of signals unavailable on Windows. 2017-01-08 18:48:04 +05:30
Murtuza Zabuawala bdf9761472 Improve consistency of dialogue controls offered. Fixes #1364 2017-01-08 16:05:34 +05:30
Neel Patel 8d71e888b4 Remember the last used directory in the file manager. Fixes #1910 2017-01-08 15:27:59 +05:30
Dave Page 5d0a0e57e7 Allow selection of message box contents for ease of error message copy/paste. 2017-01-08 15:27:58 +05:30
Neel Patel 2787c5c207 Reset the column list properly if the access method is changed on an index to ensure error handling works correctly. Fixes #2009 2017-01-08 15:27:58 +05:30
Surinder Kumar 6e14bef801 Show icons for unique and exclusion constraints in the dependency/dependents panels. Fixes #2033 2017-01-08 15:27:58 +05:30
Murtuza Zabuawala 879a6bef53 Fix keyboard control of switches in the column grid. Fixes #1394 2017-01-08 15:27:58 +05:30
Neel Patel a33ee2ae32 Improve detection of the pldbgapi extension and functions before allowing debugging. Fixes #2026 2017-01-08 15:27:58 +05:30
Surinder Kumar e3c8cb2706 Prevent attempts to create server groups with no name. Fixes #2012 2017-01-08 15:27:58 +05:30
Akshay Joshi ae809c4506 Properly detect when files have changed in the query tool and set the dirty flag accordingly. Fixes #1807
Note that (like pgAdmin 3) we don't make any attempt to detect if all changes have been undone and completely reverted as that could be very expensive with large scripts.
2017-01-08 15:27:58 +05:30
Surinder Kumar 07e1c61eea Allow setting of effective_io_concurrency on tablespaces in 9.6+. Fixes #2000 2017-01-08 15:27:58 +05:30
Dave Page a93a99fdc0 Improve query plan tooltip formatting. 2017-01-06 15:38:27 +00:00
Dave Page 1504d05cdd Format JSON more efficiently. This can significantly reduce response sizes from the server. 2017-01-06 14:09:36 +00:00
Dave Page fe9bdc62a1 Fix copyright notices. 2017-01-04 13:35:38 +00:00
Dave Page 560395e557 Tidy up file header 2017-01-04 13:34:17 +00:00
Dave Page f221194bcc Update copyright notices for 2017. 2017-01-04 13:33:32 +00:00
Dave Page 87d4937726 Minimise memory requirements for rendered cells and rows in SlickGrid. Fixes #2035
- The CSS class 'slick-row' has been renamed to 'sr'

- The CSS class 'slick-cell' has been renamed to 'sc'

- The SQL Editor included an unused 'normal_row' class on each row which has been removed as it was unreferenced in the code or CSS.

The intent of these changes is to minimise memory usage by the grid, by saving a few bytes per row/cell.
It's questionable how much difference this actually makes given that SlickGrid updates the document so it
only includes the visible rows on the fly, but every little helps.
2016-12-22 17:43:42 +00:00
Murtuza Zabuawala 43b9e53572 Fix word wrap in note control. 2016-12-21 13:17:11 +00:00
Dave Page 99299f022f Fix time formatting on dashboards. Fixes #2032 2016-12-21 12:01:43 +00:00
Dave Page d3862eef3f Fix some additional table styling inconsistencies. 2016-12-19 14:26:33 +00:00
Dave Page ef5b8fe603 Clarify the close browser warning. 2016-12-19 12:12:43 +00:00
Khushboo Vashi 5008872203 Ensure the SQL editor has enough space to show block folding arrows in the gutter. 2016-12-19 11:35:27 +00:00
Harshal Dhumal 5adc6b71ca fix display of double scrollbars on the grant wizard. Fixes #2028 2016-12-19 09:25:14 +00:00
Harshal Dhumal 2994c128f3 Fix inconsistent table styling. Fixes #2027 2016-12-19 09:21:49 +00:00
Murtuza Zabuawala 6fc8f040ff Allow users to enable wrapping of code in SQL boxes. Fixes#2025 2016-12-16 17:07:41 +00:00
Khushboo Vashi 1d571902da Fix regression when generating SQL for new databases, caused by an invalid check of datallowconn introduced in the fix for #1801. 2016-12-16 13:12:12 +00:00
Khushboo Vashi 53ea991907 Properly size the SQL Editor gutter as the width of the line numbers increases. Fixes #1780 2016-12-16 13:04:16 +00:00
Murtuza Zabuawala 1431dfcb01 Show index columns in the correct order in RE-SQL. Fixes #1842 2016-12-16 11:59:37 +00:00
Akshay Joshi 686237413c Use more sensible column sizes for the data output in the query tool. Fixes #1789
Per Akshay:

I have tried to get the width of the content but we are sending complete data as collection to the SlickGrid. We will have to fetch the content of each column and figure out the maximum length for that column by iterating all the rows is too expensive. Apart from that to set the width in 'ch' we will have to do it using css. With current implementation we are setting the column option of the SlickGrid from javascript code.

I have fixed this issue by setting the width of the columns based on data type. I have set the width of boolean column to 60, all the numeric/integer columns to 80 and for all other data types it is 20% of the container width as 33% is too wide.
2016-12-12 10:13:53 +00:00
Khushboo Vashi 53481023fa Properly sort rows by the pkey when viewing first/last 100. Fixes #2007 2016-12-12 10:06:34 +00:00
Ashesh Vashi dbff4f7977 Minor Python 3/encoding fix in the file manager. 2016-12-12 09:49:00 +00:00
Dave Page f80f271e0c Only include the triggerWebViewWindowEvents declaration where appropriate. 2016-12-12 09:40:46 +00:00
Dave Page 4a280b2517 Only show the filename in query tool tabs, not the whole path. 2016-12-09 12:42:30 +00:00
Akshay Joshi b8d03d5dc2 Don't cast data when saving in the edit grid, so errors are seen and data doesn't get silently modified. Fixes #1994 2016-12-09 12:05:46 +00:00
Khushboo Vashi 81841cdb3c Treat databases with datallowconn=false appropriately. Fixes #1801 2016-12-09 11:59:13 +00:00
Anthony DeBarros 6ff2fe64b8 Fix various mis-spellings of VACUUM. Fixes #2005 2016-12-08 10:35:53 +00:00
Dave Page fb780bd81a Fix a couple of typos. 2016-12-06 10:35:15 +00:00
Dave Page eb337cadce Remove unused rows per page config option. 2016-12-05 13:59:44 +09:00
Akshay Joshi e160909423 Quote identifiers correctly in auto-complete. Fixes #1992 2016-12-05 13:15:03 +09:00
Surinder Kumar a64824a851 Fix various encoding issues with multibyte paths and filenames.
Fixes #1986. Fixes #1940.
2016-12-05 13:10:56 +09:00
Dave Page c4c3d2b6b8 Change the org name and product name to ensure the the runtime config file is sensibly named.
This changes the default orgname to 'pgadmin' and product name to 'pgadmin4' in the runtime.
2016-12-02 11:24:32 +09:00
Dave Page 58910c4b62 Allow the ApplicationPath to be absolute. 2016-12-02 11:10:08 +09:00
Neel Patel 4bde18685b Pass copy/cut/paste events from the runtime to the webview on Mac under QtWebEngine. 2016-11-29 14:18:39 +09:00
Neel Patel 54e6336a58 Deal with Function arguments correctly in the properties dialogue. Fixes #1979 2016-11-25 10:55:10 +00:00
Murtuza Zabuawala 66b9e22d01 Handle the template property on databases appropriately. Fixes #1800 2016-11-25 10:11:40 +00:00
Dave Page 394381bf75 Add search/replace support to the Query Tool, including regexp matching. Fixes #1765 2016-11-24 15:38:39 +00:00
Dave Page 89ed2a7deb Windows dependencies have changed with Qt 5.7 2016-11-24 11:34:53 +00:00
Dave Page 6f90fbc4df Use QT 5.7 by default on Mac, and allow builds with Python 3.5. 2016-11-24 09:19:50 +00:00
Dave Page 478c7ba7a4 Use QT 5.7 by default on Windows. 2016-11-24 09:18:15 +00:00
Dave Page 7983f53a7e Ignore generated resource files 2016-11-23 14:38:27 +00:00
Dave Page 87a845a082 Specify the default PG binpath on Windows 2016-11-23 14:37:02 +00:00
Dave Page f6f020036f Fix a missing escape char 2016-11-23 13:43:12 +00:00
Dave Page d7d0ff02c6 Specify the default PG binpath on Mac 2016-11-23 13:38:17 +00:00
Dave Page 1a18e07329 Allow a placeholder ($DIR) to be used in utility paths to make it easier to use relative paths. 2016-11-23 13:35:27 +00:00
Dave Page 08396ce861 Allow default binary paths to be set in the config for each database driver. 2016-11-23 12:44:13 +00:00
Dave Page 961f946a76 Treat empty text settings as unset, to allow users to clear a string to get the default back. 2016-11-23 12:43:02 +00:00
Dave Page 388b477c71 Bunlde PostgreSQL utilities in the Windows installer. Note that this doesn't yet auto-configure pgAdmin to find them. 2016-11-23 10:27:52 +00:00
Dave Page 9dcf61931a Include PostgreSQL utilities in the Mac App Bundle. This doesn't auto-configure pgAdmin to find them yet though. 2016-11-23 10:03:40 +00:00
Dave Page e2459b75bc Actually Flask-HTMLmin *does not* require django-htmlmin - but uninstalling the latter breaks the htmlmin package which may need to be reinstalled. 2016-11-21 13:46:32 +00:00
Dave Page 8ae4a10c64 Apparently Flask-HTMLmin still requires django-htmlmin 2016-11-21 13:37:52 +00:00
Dave Page 020bf1d532 Minify HTML with Flask-HTMLMIN 2016-11-18 16:42:38 +00:00
Dave Page d5351ad657 Add file resources to the windows runtime. Fixes #1874 2016-11-18 15:46:39 +00:00
Murtuza Zabuawala b7c819e912 Render column headers at the correct width in the query tool under Firefox. Fixes #1680 2016-11-18 14:24:16 +00:00
Khushboo Vashi 54b35c711d Ensure dialogue panels show their errors themselves, and not in the properties panel. Fixes #1855 2016-11-18 14:05:39 +00:00
Murtuza Zabuawala 6e5126d571 Add newly created triggers to the treeview. Fixes #1747 2016-11-18 13:58:35 +00:00
Murtuza Zabuawala 6e68e7501a Display messages and notices received in the query tool. Fixes #1953 2016-11-18 13:53:57 +00:00
Khushboo Vashi 6567669798 Ensure the check_option is only set when editing views when appropriate. Fixes #1924 2016-11-18 13:44:43 +00:00
Dave Page 29743ad3c4 Allow selection of process output and commands. 2016-11-18 12:05:19 +00:00
Dave Page 687f1f640f Prevent users selecting elements of the UI that shouldn't be selectable. Fixes #1976 2016-11-18 10:55:00 +00:00
Dave Page 8e60f33e65 Ensure the Mac Appbundle builds properly with QtWebEngine. 2016-11-17 16:22:45 +00:00
Dave Page bfbafaac4b Update the Windows installer build to support QtWebEngine 2016-11-17 10:59:41 +00:00
Dave Page ca9d04a60c Clarify and correct dashboard graph descriptions. 2016-11-16 17:09:16 +00:00
Dave Page 3abfebce1a Create a docs tarball along with the source tarball. Fixes #1964 2016-11-16 10:39:03 +00:00
lambda e3c8b67767 Add a Chinese (Simplified) translation. Fixes #1963 2016-11-16 09:45:22 +00:00
lambda 3e541ecb41 Add a Chinese (Simplified) translation. Fixes #1963 2016-11-16 09:40:56 +00:00
Khushboo Vashi 48b0a3f2d2 Ensure treeview collection nodes are translated in the UI. Fixes #1962 2016-11-16 09:25:38 +00:00
Daniel Hahler c0da81e8ec Fix upgrade check on Python 3. Fixes #1961 2016-11-16 09:13:59 +00:00
Khushboo Vashi 12d75e0a51 Styling improvements for password input fields in backgrid. 2016-11-15 09:55:32 +00:00
Dave Page 7ce04bbaea Add missing translation tags. 2016-11-15 09:31:39 +00:00
Khushboo Vashi 83a1808bfd Move some DOM elements out of the global context. 2016-11-14 13:13:58 +00:00
Dave Page 052a9fc840 Add missing strings from the dashboards. 2016-11-14 12:04:28 +00:00
Dave Page 74e5b5a492 Include SQL templates in the translation template. 2016-11-14 11:53:20 +00:00
Murtuza Zabuawala 00d2ab0338 Cast OIDs to oid not int, otherwise we lose half the range which results in objects not being accessible. Fixes #1951 2016-11-11 14:36:41 +00:00
Murtuza Zabuawala 6f30cabdbb Resolve various debugger quirks. Fixes #1227
- Prevent the user from executing multiple options at once, resulting in "Execute cannot be used while an asynchronous query is underway********** Error ****" messages

- Stop polling when debugging is complete.

- Don't show the busy cursory when debugging is complete.

- Display info messages properly, and reset them between executions.
2016-11-11 14:25:11 +00:00
Murtuza Zabuawala f405cdf383 Ensure trigger function names are schema qualified in trigger RE-SQL. Fixes #1949 2016-11-11 13:46:06 +00:00
Dave Page d5361a62cb Fix a fairly improtant typo! 2016-11-11 10:55:31 +00:00
Navnath Gadakh 7b574b284d Fix TypeError. 2016-11-10 12:48:38 +00:00
Murtuza Zabuawala 36c909b1f9 Generate mSQL for new schemas correctly. Fixes #1937 2016-11-09 15:13:17 +00:00
Murtuza Zabuawala c345adaa52 Properly format arguments passed by triggers to functions. Fixes #1912 2016-11-09 15:00:35 +00:00
Susan Douglas 2c85850db1 Query tool doc update 2016-11-09 09:48:44 +00:00
Dave Page 297733634b Use a more reasonable dynamic default for the window size (90% x 90%). Fixes #1939 2016-11-08 11:37:57 +00:00
Neel Patel 6e5683064e Use QtWebEngine with Qt5.5+ instead of QtWebKit. Fixes #1375, fixes #1641,
fixes #1916, fixes #1815, fixes #1332
2016-11-08 10:57:42 +00:00
Akshay Joshi 7da3ece169 Ensure all changes to rows are stored in the data editor. Fixes #1919 2016-11-07 15:07:43 +00:00
Dave Page ca333ea6a7 Don't strip \r\n from "Download as CSV" batches of rows, as it leads to malformed data. Fixes #1936 2016-11-07 14:47:50 +00:00
Dave Page 7f940bb13a Add a note to not update AlertifyJS beyond v1.7.1 as it's changed to GPL3 in 1.8.0 2016-11-07 14:05:37 +00:00
Dave Page 8bb656c002 Translation catalog update. 2016-11-07 12:45:13 +00:00
Dave Page f736051309 Handle broken config databases much more gracefully. Fixes #1922 2016-11-02 17:00:26 +02:00
Dave Page 5be9d5f054 Fixes #1909 Handle startup errors more gracefully in the runtime 2016-11-02 13:42:08 +05:30
Akshay Joshi c2d9c0bb7c Improve display of role options. Fixes #1729 2016-11-01 11:44:32 +02:00
Murtuza Zabuawala a3622a380a Fix display of exclusion contraint dependencies. Partially fixes #1892 - requires icon display fix. 2016-11-01 11:35:09 +02:00
Murtuza Zabuawala ca57323ad1 Properly schema qualify domains when reverse engineering SQL. Fixes #1865 2016-10-28 16:45:06 +01:00
Murtuza Zabuawala 67e5dfa5a7 Fix refreshing of Unique constraints. Fixes #1893 2016-10-28 16:40:27 +01:00
Murtuza Zabuawala 8c48be3b0c Properly quote role names when specifying function ownership. Fixes #1899 2016-10-28 16:18:31 +01:00
Susan Douglas 6c45eea1a0 Package and synonym doc update. 2016-10-27 09:45:28 +01:00
Dave Page 60a0ed61b0 Improve the README to include comprehensive information on:
- Building the runtime
- Setting up the Python environment
- Configuring the runtime
- Building packages
2016-10-26 12:40:17 +01:00
Dave Page 4a5031c563 Fix typo in 32bit-only code 2016-10-26 10:30:24 +01:00
Dave Page 9c7a9305aa Fix licence attachment on Mac DMG file. 2016-10-24 17:18:12 +01:00
Dave Page 517a85866b Update version number for release. 2016-10-24 16:30:37 +01:00
Dave Page b346814534 Improve the documentation for desktop and server mode configuration. Note what different config files are user for, and give an example of paths to override when setting up server mode. 2016-10-24 14:02:50 +01:00
Dave Page c1c2fb9df9 Ensure sequence start value is shown in SQL and properties list. Fixes #1155 2016-10-24 09:27:16 +01:00
Surinder Kumar 19bd021696 Ensure select2 instances have a destroy property before calling destroy. 2016-10-21 16:16:10 +01:00
Harshal Dhumal 2952faab5e Fix exclusion constraint support on 9.6. Fixes #1875 2016-10-21 16:14:19 +01:00
Surinder Kumar 23a0fc2f22 Fix refreshing of FTS Dictionaries. Fixes #1837 2016-10-21 16:07:45 +01:00
Dave Page ef0d26c294 Ensure steps and schedules can be created in empty jobs. Fixes #1878 2016-10-21 16:00:23 +01:00
Murtuza Zabuawala e6d018c44f Ensure we handle external processes that fail to start. Fixes #1679 2016-10-21 15:35:06 +01:00
Surinder Kumar 8e9108e0f3 Allow package bodies to be dropped. Fixes #1867 2016-10-21 15:24:11 +01:00
Khushboo Vashi a97d21cc90 Ensure preferences values are stored properly. Fixes #1877 2016-10-21 15:06:45 +01:00
Khushboo Vashi 5a1795e4a0 Fix quoting of objects names for external utilities. Fixes #1603, fixes #1220, fixes #1221 2016-10-21 14:57:19 +01:00
Harshal Dhumal aef508ff91 Properly quote type names in RE-SQL for tables. Fixes #1863 2016-10-21 14:43:57 +01:00
Surinder Kumar da3a37ab19 Handle non-ascii responses from the server when connecting. Fixes #1822 2016-10-21 14:32:25 +01:00
Surinder Kumar 1e66119ef5 Ensure the File Manager honours the file type while traversing the directories. Fixes #1858
When a File Manager is closed by clicking cancel button. Its dom element not destroyed.. So on traversing into directories, when it tries to get currently selected file type, it looks into the dom element but it gets dom of previous dialogs not of currently dialog.

Now whenever an instance of File Manager is closed. its dom elements are also destroyed.
2016-10-21 14:26:12 +01:00
Surinder Kumar 406dab069d Show security labels in the reverse engineered SQL for domains. Fixes #1574 2016-10-21 12:49:50 +01:00
Surinder Kumar d806a9ce9e Fix the file manager when used under Python 3. Fixes #1872
Issues fixed:

1) In Python 3, parameter "cmp" is removed from sorted method. So File Manager won't open.
As we are sorting data on JS side using Natural sort, so on server side sorting is not required.

2) Improvement in Exception handling.
2016-10-21 12:43:02 +01:00
Murtuza Zabuawala d29ccea299 Don't allow setting of security labels on edbspl stored procedures (by correctly checking the node type). Fixes #1576 2016-10-21 12:37:47 +01:00
Navnath Gadakh 1908e86d22 Resolve a PG 9.6 compatibility issue in the regression test for Languages. 2016-10-21 12:24:26 +01:00
Surinder Kumar 48ee8490f0 Add new indexes to the correct parent on the treeview. Fixes #1880 2016-10-21 12:12:37 +01:00
Surinder Kumar 06039320b9 Don't specify ASC/DESC options for index types that don't support them. Fixes #1840 2016-10-21 12:08:41 +01:00
Harshal Dhumal 6874a1a247 Properly generate exclusion constraint SQL. Fixes #1861 2016-10-21 12:04:30 +01:00
Surinder Kumar 9155c2111f Ensure the grant wizard works with objects with special characters in the name. Fixes #1599 2016-10-21 11:58:46 +01:00
Akshay Joshi 76fb831554 Fixed issue where some parameter like 'Volatility, LeakProof , Variables etc..' not visible in SQL definition for functions and trigger functions. 2016-10-20 19:07:51 +05:30
Dan Vianello 6c5d81b6f5 Fixes #1843 Function definition does not match value returned from pg_get_functiondef() 2016-10-20 18:30:43 +05:30
Ashesh Vashi d4c439d64a Ensure the auto-generated CSRF_SESSION_KEY, SECRET_KEY,
SECURITY_PASSWORD_SALT keys are decoded as string for python 3
compatibility.

Fixes #1871
2016-10-20 13:16:31 +05:30
Sandeep Thakkar a1c0042a1e Use config_distro.py for all settings, and don't create/overwrite config_local.py. Partly fixes #1849 2016-10-19 14:10:28 +01:00
Ashesh Vashi 19df1e3f4b Ensure SECURITY_PASSWORD_SALT is set to something when initialising (to avoid errors, prior to being set to the 'real' value). Fixes #1871 2016-10-19 14:04:07 +01:00
Ashesh Vashi b17eb15742 Resolved - Integer type of preferences are not updated
Reason: IntegerControl assumes the model, passed to it, would always has errorModel variable set properly.

In order to resolve it, now using pgBrowser.DataModel instead of Backbone.Model, which initialize the errorModel by default.

Fixes #1868
2016-10-19 16:18:22 +05:30
Dave Page bc5cc964a3 Move security keys into the SQLite database, and auto-generate them.
This avoids packagers having to deal with the issue, which can be
difficult if they need to cater for both server and desktop modes.

Fixes #1849
2016-10-19 09:22:38 +01:00
Priyanka Shendge c4f1b8eb11 Add tests for Languages 2016-10-18 14:36:25 +01:00
Dave Page 62a35f24e7 Fix layout of DateTimePicker control help message. Fixes #1864 2016-10-18 12:43:58 +01:00
Murtuza Zabuawala b9571df4de Don't append new objects to the wrong parent, if the correct one isn't loaded. Fixes #1838 2016-10-18 12:37:44 +01:00
Navnath Gadakh e31ba5873b Add regression tests for resource groups on EPAS. 2016-10-18 12:01:01 +01:00
Dave Page 8d2dff1482 Always create databases from template0 when running regression tests, to ensure consistency and avoid concurrency issues. 2016-10-18 11:57:31 +01:00
Surinder Kumar df09f02e80 List files/folders alphabetically, and don't excessively truncate their names. Fixes #1792 2016-10-18 11:39:12 +01:00
Surinder Kumar 11e486f96d Fix unsafe schema lookups for types. Fixes #1728 2016-10-18 11:32:43 +01:00
Dave Page 345ce1b6d2 Fix attribute check. 2016-10-15 16:48:52 -07:00
Dave Page 056ed21148 Allow test servers to be enabled or disabled easily in the config 2016-10-15 08:44:40 -07:00
Dave Page d0a9b25c57 Cleanup the dashboard tables a little for readability 2016-10-14 17:42:29 -07:00
Dave Page faf517e12b Include wait information on the activity tab of the dashboards. Fixes #1859 2016-10-14 17:18:17 -07:00
Surinder Kumar dd6a69d845 Handle reverse engineering of synonyms with / in the name. Fixes #1622 2016-10-14 16:01:55 -07:00
Akshay Joshi 2d39b5fb41 Identify the collation correctly when reverse engineering table SQL. Fixes #1847 2016-10-14 15:57:55 -07:00
Surinder Kumar c7520cf86d Allow refreshing of synonym nodes. Fixes #1845 2016-10-14 15:50:20 -07:00
Surinder Kumar 17bd379cb6 Properly quote names when renaming FTS dictionaries and templates. Fixes #1857 2016-10-14 12:23:10 -07:00
Surinder Kumar 7f507f294e While clicking on Select2 control, it tries to destroy the control and thus it doesn't get this object sometimes and throws error.
It should attempt to destroy the select2 object only if this object is not undefined.
2016-10-14 12:20:29 -07:00
Surinder Kumar 0df968f679 Resolve issue with properties refreshing. Fixes #1728
1) If we create/update a node with non-default schema, It should return selected schema id in return response. but default schema id is returned every time due to which it throws error in properties panel.
Fixed in Domains, Collation, Types, Views & Table node.

2) Incorrect parent id of object node is returned from nodes method due to which wrong parent id is passed while updating object and
thus node didn't get refreshed.
Fixed in FTS Configuration, FTS Parser nodes.
2016-10-14 12:19:00 -07:00
Navnath Gadakh 404d4efd2e Add test cases for tables, types, views and their children. 2016-10-14 11:20:51 -07:00
Priyanka Shendge 22dadacb0f Add terst cases for packages, and update Synonym cases for recent API changes. 2016-10-14 10:59:36 -07:00
Dave Page f089744d6d Ignore patches and autosave files from QT Creator 2016-10-13 06:59:23 -07:00
Priyanka Shendge 540c389d92 Add regression tests for Foreignb Tables. 2016-10-13 06:57:16 -07:00
Priyanka Shendge 8b91babdc2 Add regression tests for FTS nodes. 2016-10-13 06:54:23 -07:00
Navnath Gadakh 36c185e9dc Fix regression test import issue. 2016-10-13 06:49:33 -07:00
Chris Mayo c2cd2d3d3b Clarify that patches should be sent as attachments. 2016-10-11 13:57:42 -07:00
Harshal Dhumal 713c692ddd Fix View privilege management. Fixes #1531
1. Fixed update privileges for views and materialized views.
2. Apart from this fixed wrong sql for privilege update.
3. Fixed: Error message was not got cleared even after removing entry with error on privilege tab.
2016-10-10 09:42:22 +01:00
Chris Mayo 5ac2cceac7 Fix mailto links and link to code_review doc. 2016-10-10 09:32:20 +01:00
Dave Page 148808a17b Fix label 2016-10-07 14:15:18 +01:00
Navnath Gadakh ae612f5403 Major update to the test suite:
1. Code changes (due to drop objects functionality).
2. Quoting for database names in drop databases.
3. Code changes for import errors for pickle_path and advanced_config variables.
2016-10-07 13:59:43 +01:00
Dave Page 50658808d9 Ensure variable is defined before use. 2016-10-07 13:59:10 +01:00
Khushboo Vashi 50859f8369 Correctly identify server type upon first connection. Fixes #1785 2016-10-07 12:57:36 +01:00
Neel Patel 4e86345c28 Allow debugging of functions and procedures in packages on EPAS. Fixes #1577 2016-10-07 12:46:34 +01:00
Surinder Kumar 3963272523 Don't show Upload File icon unless it is in capabilities list [Storage Manager]. Fixes #1739
Issue:
When clicked on upload icon while saving a file prompt user to leave page. It is because the icon is a button and its type is set to submit which makes it to prompt, instead it should be 'button'

Storage Manager's menu items depends on capabilities list set by the module using it. If capabilities doesn't have 'upload' in it, It won't work. Upload button is bound to click event only when it is in capabilities.

Solution:
As upload button is being added only when it is in capabilities, so upload button html is removed from html file. It will not shown on UI untill it is in capabilities list.
2016-10-07 12:31:38 +01:00
Murtuza Zabuawala c931d715ac Fix refresh of Synonyms. Fixes #1611 2016-10-07 12:08:19 +01:00
Dave Page a0aaa80029 Allow users to choose SELECT permissions for sequences in the Grant Wizard. Fixes #1835 2016-10-06 10:02:21 +01:00
Dave Page f9320811d7 Allow users to choose SELECT permissions for tables in the Grant Wizard. Fixes #1835 2016-10-06 09:56:44 +01:00
Murtuza Zabuawala bde3dd845b Fix SSL setup. Fixes #1817 2016-10-05 13:05:10 +01:00
Susan Douglas 8b2832bbc7 pgAgent docs. Fixes #1824 2016-10-04 14:48:57 +01:00
Dave Page 9893b1bee4 Attempt to sign the Windows installer, failing with a warning if there's no cert available. Fixes #1823 2016-10-04 14:34:08 +01:00
Justin Clift 3e743ad582 Minor fixes to the Mac appbundle build 2016-10-04 13:51:28 +01:00
Justin Clift 6458e4cafb Optionally sign both the Mac app bundle and the disk image. Fixes #1821 2016-10-04 12:51:14 +01:00
Ashesh Vashi e52aeecd20 Fixes# 1808 - Invalid date-time format was used in the Start/End time
for Job Schedule.

Thanks Susan for the report.
2016-10-04 10:18:37 +05:30
Dave Page df64108708 Fix pip wheel production status. 2016-10-03 16:42:36 +01:00
Dave Page fc9c4736c4 Fix python 3 compatibility 2016-10-03 16:37:20 +01:00
Dave Page d4af70aeb9 Label corrections. 2016-10-03 14:20:04 +01:00
Susan Douglas ead15018c2 First cut of the pgAgent docs. 2016-10-03 14:11:31 +01:00
Surinder Kumar e4d870cbe6 Ensure errorModel unset property properly in while adding a new server. Fixes #1786 2016-10-03 13:50:54 +01:00
Dave Page a91f19a21d Fix typo. Fixes #1596 2016-09-30 10:36:39 +01:00
Dave Page 49ee8abb72 Fix typo 2016-09-30 09:45:14 +01:00
Dave Page 66ba4575b1 Remove TODO list (use Redmine instead). 2016-09-27 12:43:23 +01:00
Dave Page 8db21345e1 Update README 2016-09-27 12:41:29 +01:00
Dave Page 30397476da Don't munge the windows installer filename if there's no app suffix. 2016-09-26 16:52:50 +01:00
Dave Page 7175929cab Ensure that the directory paths are as they should be under the runtime. Note that this change requires (for now) the regression tests to be run from the web/regression directory. 2016-09-26 16:38:27 +01:00
Dave Page e06fd21f3c Bump version for release 2016-09-26 16:16:13 +01:00
Dave Page 6790f14c6c Fix button label and colour 2016-09-26 16:10:00 +01:00
Dave Page 0ba2f46092 Update message catalogs 2016-09-26 15:57:03 +01:00
Ashesh Vashi 09c2d605c9 Prevent bigints getting rounded. Fixes #1547 2016-09-26 15:51:01 +01:00
Surinder Kumar 3b4776ab5f Improve network/server activity feedback for the user. Fixes #1751 2016-09-26 15:10:38 +01:00
Dave Page f9dacc5237 Fix label cpaitalisation 2016-09-26 15:04:47 +01:00
Surinder Kumar 0ae719dae0 Do not try to set in_recovery, is_replay_paused properties in the server
object, when data is not available.
2016-09-26 19:16:06 +05:30
Dave Page d077626cdc Improve layout of regression test format 2016-09-26 14:16:04 +01:00
Navnath Gadakh a4aae4c245 Update role and tablespace tests to cleanup properly following a failure. 2016-09-26 14:02:59 +01:00
Murtuza Zabuawala a0a6428e86 Ensure compatibility with newer sqlparse modules. Fixes #1725 2016-09-26 13:49:54 +01:00
Ashesh Vashi e591c6b5c0 pgAgent misc fixes:
1. When an existing schedule updated, or a new schedule is added from a pgAgent job dialog, it was not able to generate the proper update SQL Query.
2. The SubNodeCollectionControl was not removing the grid, when it is being getting removed.
2016-09-26 13:43:13 +01:00
Ashesh Vashi 237bfd4882 pgAgent - add modules for jobs, steps and schedules. Fixes #1341 2016-09-26 12:04:10 +01:00
Dave Page 7f3ca548cd Fix SQL box sizing. 2016-09-26 11:35:11 +01:00
Ashesh Vashi 912eebb583 Fix view creation. Fixes #1736 2016-09-26 11:00:18 +01:00
Dave Page f51d8c72ef Fix validation message 2016-09-26 10:57:16 +01:00
Ashesh Vashi 0bf48d06fb Ensure the view data filter box is usable. Fixes #1733 2016-09-26 10:50:09 +01:00
Dave Page 2d222067b9 Fix layout of the filter box. 2016-09-26 10:48:31 +01:00
Ashesh Vashi 6999249dcd Ensure the default schema is set when creating objects. Fixes #1735 2016-09-26 10:15:23 +01:00
Ashesh Vashi b80cd43ae6 Misc changes
- Setting the CodeMirror height when panel is resized, which you had mentioned.
- Added a new CellEditor (DatetimePickerEditor) for datetime picker.
2016-09-26 10:04:49 +01:00
Ashesh Vashi 1c623c56e7 Fixes#1737 - Setting the schedma-id as the pid (parent-id) for the
sequences node instead of the server-id.

Due to this - during updating the sequence node, it was not able to find
out the correct parent node, and it was updating the existing node, but
- later it (considering the old node) was removed by the replace logic.
2016-09-24 14:25:16 +05:30
Murtuza Zabuawala 5c855234f8 Ensure we go back to the login page after logging out, when installed at a virtual root. Fixes #1691 2016-09-23 13:10:48 +01:00
Ashesh Vashi 8797b3f3bf Change rolvaliduntil format to "YYYY-MM-DD HH:mm:ss Z" for consistency with the rest of the app. 2016-09-23 10:10:31 +01:00
Murtuza Zabuawala f18c455411 Don't offer CREATE Script options on servers or server groups. Fixes #1578 2016-09-23 10:06:50 +01:00
Susan Douglas e959c68358 Image updates 2016-09-22 15:59:54 +01:00
Ashesh Vashi 163ae4d53d Misc fixes and additions for pgAgent support:
- Added DatetimepickerControl, MomentCell (using moment.js)
- Used the 'DatetimepickerControl' in Role (Also - resolved an issue, when unset the datetime for 'Valid Until'.)
- Added a 'Select All/Unselect All' adaptor for Select2 used by pgAgent nodes.
- Fixed an issue with SubNodeCollectionControl, which was not starting the modification session of the child model, when created default value for collection is not null/undefined. And, hence - validation on the child model was not working.
- Fixed a memory leak with SqlFieldControl, and SqlTabControl, which was not releasing the CodeMirror properly.
2016-09-22 15:27:59 +01:00
Murtuza Zabuawala a113b43a1f Add Packages as a synonym target type. Fixes #1611 2016-09-22 14:56:00 +01:00
Dave Page 821f70663e Fix default zoom setting. 2016-09-22 14:43:32 +01:00
Murtuza Zabuawala f48f806657 Fix stats on PG 9.6. Fixes #1719 2016-09-22 14:17:47 +01:00
Murtuza Zabuawala 9a56fb552c Ensure the favicon can be found. Fixes #1692 2016-09-22 13:07:07 +01:00
Navnath Gadakh 1cb5a7c7ca Update regression tests to resolve issues where database/connections were getting mixed up. 2016-09-22 12:58:38 +01:00
Harshal Dhumal f117685d77 Drop all connections from the connection manager when a server is dropped to avoid issues if sqlite reuses an ID. Fixes #1720 2016-09-22 12:57:52 +01:00
Dave Page 0ba414f0ab Document keyboard shortcuts. Fixes #1727 2016-09-22 12:42:06 +01:00
Dave Page 8c913f5773 Allow zooming in the runtime with Ctrl/Cmd+Plus and Ctrl/Cmd+Minus. Fixes #1726 2016-09-22 12:37:38 +01:00
Dave Page e909429da7 Fix title syntax. 2016-09-22 12:30:01 +01:00
Dave Page 2077bd5fdc Prevent browsers caching responses. Fixes #1171 2016-09-21 16:18:22 +01:00
Dave Page 7a40171300 Handle nested JSON correctly in SlickGrid. Fixes #1713. Fixes #1404 2016-09-21 13:43:27 +01:00
Surinder Kumar 28ce31a022 Save error details when executing to CSV, if no data is returned. This ensures the user gets some feedback rather than nothing at all. Fixes #1592 2016-09-20 11:57:51 +01:00
Murtuza Zabuawala f991354f9a Handle composite type return values properly in the debugger. Fixes #1662 2016-09-20 11:27:51 +01:00
Surinder Kumar febb1b80b1 Ensure items are properly added to the treeview when their parent has no pre-existing children. Fixes #1627 2016-09-20 11:18:07 +01:00
Ashesh Vashi 7ab0eb158f Ensure jQuery is loaded before SlickGrid. Fixes #1712
Patch by Ashesh with contributions from Surinder.
2016-09-19 17:08:57 +01:00
Navnath Gadakh c84fd83595 Enhanced summary output for the test suite. 2016-09-19 16:49:06 +01:00
Murtuza Zabuawala 881d2a60a4 Fix an exception that could occur when the browser pings the server following a restart. Fixes #1707 2016-09-19 15:57:52 +01:00
Murtuza Zabuawala 2440f89a71 Fix an issue where the edit icon vanished and the default tab wasn't shown when advanced-editing a column in the table dialogue. Fixes #1704 2016-09-19 15:37:04 +01:00
Surinder Kumar cc0cb83277 Resolve a syntax error when updating packages with no body. Fixes #1588 2016-09-19 15:33:19 +01:00
Murtuza Zabuawala 82d63804c1 Resolve a refresh issue when updating packages. Fixes #1625 2016-09-19 09:41:13 +01:00
Murtuza Zabuawala fc5ce22de9 Allow creation of objects in schemas with special chars in the name. Fixes #1598
This was caused through generation of SQL based on HTML-escaped labels, not the raw versions.
2016-09-16 17:02:57 +01:00
Murtuza Zabuawala c044af9585 Bulk delete rows in SlickGrid. Fixes #1696 2016-09-16 16:46:58 +01:00
Murtuza Zabuawala c5f04d03c6 Fix an issue where several default privileges cause error on database. Fixes #1670 2016-09-16 16:06:29 +01:00
Surinder Kumar 92bc312d2d Fix updating of matview definitions. Fixes #1595 2016-09-16 15:41:07 +01:00
Magnus Hagander ce20dbc25a Add classid filter to queries on pg_depend. Fixes #1705
There are a number of cases where queries in both pgadmin4 and pgadmin3 are done against pg_depend but falis to constrain the query on classid.

In particular, if for example a constraint and a sequence exists with the same oid (which is perfectly valid, as they are in different tables), a column will suddenly refer sequences that are completely incorrect. When we look up sequences, we have to make sure we only match dependencies against pg_class.
2016-09-16 11:24:54 +01:00
Susan Douglas 3f98e6c207 Documentation update 2016-09-16 11:14:49 +01:00
Surinder Kumar 165b93a968 Fix a syntax error when creating a trigger function on PPAS 9.5+. Fixes #1600 2016-09-16 11:12:41 +01:00
Surinder Kumar 1ce5b38f4a Fix an issue when changing the length of a column in the table dialogue. Fixes #1669 2016-09-16 11:09:13 +01:00
Ashesh Vashi 2f32427c59 Fix an issue in the Query Tool which causes it to hang in some installations of Chrome 53.0.2785.116 on Mac.
This commit also modifies the Query Tool to load SlickGrid using require.js.
2016-09-16 10:18:49 +01:00
Surinder Kumar 016de5dc88 Fix scrolling in the query tool editor. Fixes #1579 2016-09-15 10:15:00 +01:00
Ashesh Vashi c48e8d415b The Switch Dependency Cell, implemented in schema module, has a special
case. Its purpose is now to handle certain scinarios specific to table
children modules.

Renamed it to 'TableChildSwitchCell' from 'SwitchDepCell' to avoid any
conflict in future.
2016-09-15 13:36:56 +05:30
Navnath Gadakh d3d8836f61 Introduce a test config database for the regression tests, and track/remove objects that are created during testing. 2016-09-14 16:26:12 +01:00
Murtuza Zabuawala 3807ba047b Don't have the query tool try to load arrow_right_spearmint.png. Fixes #1693 2016-09-14 16:12:49 +01:00
Dave Page fcc81d32cc Fix condition check for avoiding sorting of columns. 2016-09-14 12:33:54 +01:00
Murtuza Zabuawala db7b8a8fa5 Don't disable the save button when executing a query in the query tool. Fixes #1695 2016-09-14 11:22:54 +01:00
Surinder Kumar 3035ae13df Fix CMD+V (Paste) in the Mac runtime. Finally fixes #1478 2016-09-14 11:17:34 +01:00
Murtuza Zabuawala 4ba8f4830b Don't sort columns (tables, views, matviews, catalogs etc) on the treeview by name, but by ordinal. Fixes #1687 2016-09-14 11:13:50 +01:00
Surinder Kumar 2ee631d6fc Remove blank lines in the formatting of SELECT scripts for functions. Fixes #1690 2016-09-14 11:08:10 +01:00
Surinder Kumar f2469d113c Fix function signature generation for reverse engineered SQL. Fixes #1674
1) In SQL pane, the signature in comments had arguments with name and type, Now it will show arguments with type only.

2) There is no indent+newline between arguments (there isn't even a space). - Fixed

3) The default value for the last argument is omitted. - Fixed
Last argument is omitted because the value for the last argument we got from table is empty.
Now we form function signature in the get_definition.sql using 'pg_catalog.pg_get_function_arguments' method.

Above changes will reflect in Functions, Procedures & Trigger function Nodes.
2016-09-14 10:59:11 +01:00
Murtuza Zabuawala 751327eacc Ensure View Data on a table with zero columns doesn't throw an error. Fixes #1677 2016-09-14 10:43:08 +01:00
Murtuza Zabuawala 046f6dd442 Fix creation of DO INSTEAD rules. Fixes #1681 2016-09-14 10:39:16 +01:00
Murtuza Zabuawala a67c4fc1dc Fix a typo in the error handling in the browser that caused some errors to be reported to the console only. 2016-09-14 10:33:41 +01:00
Murtuza Zabuawala 071b609a44 Fix error when refreshing table node. Fixes #1686 2016-09-14 10:30:02 +01:00
Dave Page d848e9cefe Use SSL when loading Gravatar icons. Fixes #1694 2016-09-13 13:39:26 +01:00
Surinder Kumar f2ed6fa4dd Fix function signature generation. Fixes #1683 2016-09-12 15:20:46 +01:00
Murtuza Zabuawala ffc58b74d2 Allow viewing of long data values in the grid. Fixes #1672 2016-09-12 12:39:40 +01:00
Surinder Kumar 28b7a033bc Prevent creation of packages and rules in catalogs. Fixes #1682 2016-09-12 11:37:25 +01:00
Dave Page 70ea03a872 Add click as a python requirement. 2016-09-12 09:20:27 +01:00
Surinder Kumar 7cfcf14312 Move the declaration of a variable into the correct scope. 2016-09-09 14:50:51 +01:00
Murtuza Zabuawala 42e19d2169 Fix error highlighting, broken in d6391c7e9b. Fixes #1676 2016-09-09 14:45:03 +01:00
Murtuza Zabuawala 982c291a31 Confirm loss of changes with the user before clearing the query or history, or opening a new file in the Query Tool. Fixes #1666 2016-09-08 09:12:48 +01:00
Surinder Kumar f13de8b86b Ensure the query tool editor has focus when the tab is selected or when first shown so the user can immediately type/execute. Fixes #1581 2016-09-07 16:20:47 +01:00
Murtuza Zabuawala 35d3c396de Fix SQL generation for functions that return SETOF ... Fixes #1631 2016-09-07 14:53:22 +01:00
Surinder Kumar da21cabb1e Fix typo in connection handler. 2016-09-07 14:01:56 +01:00
Dave Page bd139bc83e Improve binary path settings hint. 2016-09-07 09:54:54 +01:00
Ashesh Vashi 2540e9687f Fixed some of the javascript syntax in menu.js 2016-09-06 23:20:38 +05:30
Ashesh Vashi aeaa4bcad1 Add an object in an parent properly, which was expanded earlier, and do
not have any child withing it.

Fixes #1481, #1627.
2016-09-06 23:20:38 +05:30
Murtuza Zabuawala 679ad6fca8 Support range types in the query tool. Fixes #1658 2016-09-06 14:26:43 +01:00
Murtuza Zabuawala 1b75679ec4 Python 2.6 fixes. Fixes #1636. Fixes #1659 2016-09-06 14:07:30 +01:00
Ashesh Vashi 8ac65070bc Improve the logic for Bad handling of missing connection database server RM #1387 2016-09-06 15:35:20 +05:30
Murtuza Zabuawala 8b61aa49d0 Warn the user about unsaved changes to SQL or data before closing the query tool. Fixes #1661 2016-09-05 17:18:43 +01:00
Surinder Kumar 3dace5ff22 Fix file navigator to properly show drives in Windows. Fixes #1665 2016-09-05 17:07:07 +01:00
Dave Page cd3b938179 Tweak splash screen image 2016-09-05 16:55:34 +01:00
Dave Page 1ce74fb8b1 Add a simple splash screen 2016-09-05 16:45:01 +01:00
Murtuza Zabuawala 15df12c924 Highlight invalid rows when saving data in the edit grid. Fixes #1637 2016-09-02 16:05:00 +01:00
Susan Douglas e810679592 Doc updates. 2016-09-02 15:50:17 +01:00
Susan Douglas da948a754b Doc updates. 2016-09-02 15:27:10 +01:00
Murtuza Zabuawala f3f7413701 Use ISO formatted dates when setting rolvaluntil. Fixes #1153 2016-09-02 15:24:34 +01:00
Dave Page 842d078142 Ensure the Mac package can find all the Python modules it needs, now that
PYTHONHOME is cleared for safety.
2016-09-02 15:19:54 +01:00
Murtuza Zabuawala 087332f32e Fix the boolean editor, and warn the user if there are unsaved changed in the edit grid before refreshing. 2016-09-01 11:50:48 +01:00
Susan Douglas fca331acb6 Updated screenshots. 2016-08-31 13:04:25 +01:00
Neel Patel 8dca4b0e0b Fixed an syntantical issue, which was not supported by QtWebkit.
The issue was regression of the patch for the 'SlickGrid'.

Fixes #1621
2016-08-30 14:43:50 +05:30
Ashesh Vashi f7dd8cbab4 Bump version for RC1 release 2016-08-29 20:37:44 +05:30
Murtuza Zabuawala c56e4667df SlickGrid Integration in to query tool. Fixes #1618 2016-08-29 20:17:01 +05:30
Murtuza Zabuawala 689ef8d8d1 Fixes issues specific to SYNONYMS
- On droping a synonyms - the query should be modified in SQL pane.
- A proper message should be given on trying to drop an already dropped
  synonyms.
- Handle the synonyms with special characters.

Fixes #1607, #1608, #1609
2016-08-29 20:25:18 +05:30
Ashesh Vashi b6f307256b Sorting the data during tree data loading using the natural sort
algorithm.

This patch takes care of:
* Consistent behaviour during create, update operation on any node.
  - It should return the node data during creating a new object, or
    updating the existing one.
* Now that - we have consistent behaviour during these operations, we
  can consistently move, update the tree item based the node data from
  the server.
* Implemented the methods for each node to get the information about
  that particular node only.
* Using the above changes to implement the 'refresh' operation on tree
  node properly.

I must thank Surinder, and Harshal for helping me implement the 'node'
method, and also changed the behaviour of create & update methods to
return the node data for most of the nodes.

Fixes #1244
2016-08-29 20:06:58 +05:30
Neel Patel 2c6f6609bc Debugger listener starting error displayed if user try to debug plpgsql cs_fmt_browser_version function that contains parameters. Fixes #1238 2016-08-29 13:47:15 +05:30
Neel Patel f5249f2e18 Set break point option should present in pgAdmin4 for trigger. Fixes #1226 2016-08-29 13:43:43 +05:30
Surinder Kumar 2d75eac117 SqlFieldControl enhancements 2016-08-29 13:21:45 +05:30
Ashesh Vashi f12d981a9d Handling the bad/lost connection of a database server.
Made backend changes for:
* Taking care of the connection status in the psycopg2 driver. And, when
  the connection is lost, it throws a exception with 503 http status
  message, and connection lost information in it.
* Allowing the flask application to propagate the exceptions even in the
  release mode.
* Utilising the existing password (while reconnection, if not
  disconnected explicitly).
* Introduced a new ajax response message 'service_unavailable' (http
  status code: 503), which suggests temporary service unavailable.

Client (front-end) changes:
* To handle the connection lost of a database server for different
  operations by generating proper events, and handle them properly.

Removed the connection status check code from different nodes, so that
- it generates the proper exception, when accessing the non-alive
  connection.

Fixes #1387
2016-08-29 12:01:35 +05:30
Akshay Joshi 1b05464a04 Getting 'AttributeError' in pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py. Fixes #1464 2016-08-26 14:25:33 +05:30
Murtuza Zabuawala 5a78dd7ad3 Implemented Synonym node for EPAS 2016-08-26 13:01:57 +05:30
Akshay Joshi 7b72448ec9 Internal sever error displayed if create New user mapping with public user. Fixes #1468 2016-08-26 11:23:15 +05:30
Murtuza Zabuawala 05473a7a35 domain node: id and pid is not being generated. Fixes #1586 2016-08-25 14:07:04 +05:30
Akshay Joshi e016869ad5 Trigger issues through right click. Fixes #1209 2016-08-24 12:10:54 +05:30
Murtuza Zabuawala 8d7b840e7e Fix startup navigation message. 2016-08-23 12:41:41 +01:00
Priyanka Shendge a535eddfcd Add schema and database child node regression tests. 2016-08-23 11:50:41 +01:00
Dave Page 0ce8b031f8 More sensible defaults for the mail server settings. 2016-08-23 11:41:45 +01:00
Ashesh Vashi 6775adc4c7 Cleanup old code in server_groups.js. Fixes #1247 2016-08-23 09:32:10 +05:30
Harshal Dhumal 58a79e4fc6 Fix parsing issue in packages. 2016-08-22 16:49:32 +01:00
Harshal Dhumal cf1be2a320 Add support for Packages on EPAS. 2016-08-22 12:30:16 +01:00
Surinder Kumar fe54a124da Don't offer to create resource groups on disconnected servers. Fixes #1569 2016-08-22 12:21:33 +01:00
Surinder Kumar 4c2020cdc7 Allow the use of the tab key to select options in combo boxes. Fixes #1251 2016-08-22 12:18:38 +01:00
Surinder Kumar 5690dfda16 Allow template databases to be used when creating new databases. Fixes #1570 2016-08-19 16:35:42 +01:00
Dave Page d5f6c63ead More string tweaks. 2016-08-19 11:48:34 +01:00
Surinder Kumar 761b54ce69 Allow the user to configure tabs in the SQL editor. Fixes #1406 2016-08-19 11:40:19 +01:00
Dave Page 0f99c3b60c Clarify font sizing description. 2016-08-19 11:23:07 +01:00
Dave Page 80f1c2e7ac Correct the win-build directory in .gitignore. 2016-08-19 11:20:29 +01:00
Khushboo Vashi eca47efb03 Update MFizz font library. Fixes #1311 2016-08-19 11:17:42 +01:00
Dave Page 33b4817008 Ensure fractional sizes work for the SQL font. 2016-08-19 11:08:42 +01:00
Akshay Joshi 86858b18f6 Fix validation of numeric preference min/max values. Fixes #1567 2016-08-19 11:00:05 +01:00
Surinder Kumar d5b0cd29d8 Display full text from backgrid cells that overflow in a tooltip. Fixes #1442 2016-08-19 10:54:13 +01:00
Akshay Joshi 7dffb020f1 Support CREATE LANGUAGE. Fixes #1252 2016-08-19 10:26:02 +01:00
Murtuza Zabuawala 013ff1090e Ensure PG/EPAS configuration warnings are shown appropriate for the server type. Fixes #1563 2016-08-18 17:18:20 +01:00
Murtuza Zabuawala d6391c7e9b Properly display messages from the server in the query tool. Fixes #1523 2016-08-18 17:08:40 +01:00
Akshay Joshi 2b1b60bc2b Reduce main menu height a little. Fixes #1453 2016-08-18 16:51:22 +01:00
Murtuza Zabuawala 8e0a61f556 Fixed typo in security labels macro Fixes #1457 2016-08-18 18:03:30 +05:30
Dave Page 050937a32a Fix WSGI support. 2016-08-18 13:43:00 +01:00
Neel Patel 48a50ce20b Give more useful error messages when unable to debug functions. Fixes #1224 2016-08-17 15:23:10 +01:00
Dave Page 6701bb191d String fix. 2016-08-17 15:10:33 +01:00
Harshal Dhumal 1056e9553f Show default database privileges in properties mode. Fixes #1538 2016-08-17 14:22:56 +01:00
Dave Page 91e3d3267f On reflection, don't allow the user to specify the unit when setting the SQL font size. Always use em's. 2016-08-17 13:45:52 +01:00
Dave Page b3f25cb4bb Allow customisation of the CodeMirror font size. Fixes #1565 2016-08-17 13:20:05 +01:00
Murtuza Zabuawala 9ec05d6bb1 Fix an issue where system level catalog are also displayed in PPAS server under relation of create new table like option. Fixes #1530 2016-08-16 16:29:50 +01:00
Murtuza Zabuawala c336e8a743 Fix an issue in foreign tables node where it was displaying catalog tables in inherits options causing internal server error. Fixes RM#1520 2016-08-16 15:44:44 +01:00
Dave Page 99b4a0fe5b Add unit tests for schemas, collations and trigger functions. 2016-08-16 12:54:02 +01:00
Surinder Kumar 67f481ab11 Prevent creation of FTS objects in catalogs. Fixes #1122 2016-08-16 12:49:19 +01:00
Surinder Kumar 6d839a2924 Prevent a query being executed whilst one is already in progress. Fixes #1532 2016-08-16 12:10:16 +01:00
Neel Patel a3e8ba93ae Ensure that argc/argv are set for the runtime interpretor, and that
PYTHONHOME is properly configured.
2016-08-16 11:29:42 +01:00
Akshay Joshi 035066bd41 Fix query tool button/menu inconsistencies. Fixes #1461 2016-08-09 16:23:24 +01:00
Navnath Gadakh 81e2bc1e80 Test suite enhancements:
1. The user will specify the tablespace path in test_config.json.in
2.  If tablespace path not found, skip the test cases for that server(Only tablespace test cases)
3.  Add the skipped test summary in the test result. (Now it's showing on console + in log file, but need to update in a final enhanced test summary report. Which is research point we will work on that after finishing all nodes API test cases)
4.  Removed the test_ prefix from the values in the config files.
5. Add tablespace and roles tests
2016-08-09 16:05:40 +01:00
Dave Page 2b13d55016 Add missing updates from the previous commit. 2016-08-09 12:17:02 +01:00
Akshay Joshi 9dfc7bff35 Add missing collection node child counts. Fixes #1250 2016-08-09 12:12:05 +01:00
Dave Page 33457e6a90 Update message catalog. 2016-08-08 16:51:03 +01:00
Dave Page 48384cd6cd Bump version. 2016-08-08 16:48:10 +01:00
Harshal Dhumal 8918b8894d Fixed privileges parsing issue while editing privileges of existing object. Fixes #1417 2016-08-08 16:31:57 +01:00
Dave Page a025c0ebf0 Missing comma. Sigh. 2016-08-08 15:39:06 +01:00
Dave Page 2aea97b798 Fix titles of help pages. 2016-08-08 15:30:24 +01:00
Surinder Kumar 1bcac0b67c Fix more of the funky keyboard shortcuts. 2016-08-08 15:26:37 +01:00
Neel Patel 37ca3579f3 Fix a JS error in the runtime caused by f78024808e (#1177) 2016-08-08 14:42:14 +01:00
Surinder Kumar 5900848842 Sequence related validation/fixes. Fixes #1119
1) Add proper validation checks for fields.
2) Fixed wrong sql generation due to incorrect conditions in template.
2016-08-08 12:47:20 +01:00
Surinder Kumar 7cf4ac2474 Fix RE-SQL for Trigger Functions which was missing an 'AS'. Fixes #1524 2016-08-08 12:17:54 +01:00
Harshal Dhumal f78024808e Prevent the user attempting to run external commands if the bin path is not configured. Fixes #1177 2016-08-08 11:59:37 +01:00
Khushboo Vashi 8e099e29c3 Fix various escaping issues. Fixes #1527 2016-08-05 12:20:00 +01:00
Surinder Kumar a43f053a10 Fix file upload in File Manager in pgAdmin4 Runtime. Fixes #1397 2016-08-04 16:34:30 +01:00
Khushboo Vashi b00e94e904 Fix drop trigger function, function and procedures. Fixes #1467 2016-08-04 15:24:03 +01:00
Surinder Kumar 42f8745aba Fix error running VACUUM FULL FREEZE ANALYZE VERBOSE. Fixes #1519 2016-08-04 12:13:34 +01:00
Harshal Dhumal cb35c46f03 Fix View Data options for tables with columns that need quoting. Fixes #1492 2016-08-04 11:54:36 +01:00
Murtuza Zabuawala 8c433fbfce Fix display of numerics in the query tool. Fixes #1463 2016-08-04 11:31:24 +01:00
Harshal Dhumal dfceb63986 Add save password option in sever create mode. Fixes #1450
Do a little string/layout cleanup whilst passing.
2016-08-03 15:55:45 +01:00
Khushboo Vashi 68497b00f6 Fix dropping of Domains. Fixes #1470 2016-08-03 15:44:24 +01:00
Harshal Dhumal de568b3021 Fix renaming of constraints from the table dialogue. Fixes #1500
1] datamodel.js: For collection type added check before adding model into "changed" list instead of adding it blindly.

2] Type casting from str to int of column properties like attlen, attpricision.

3] Added missing data formating when adding new column to existing table (from table edit mode).

4] Added more validation for Foreign key constraint.

5] Column.js: Column grid (in table edit mode) show proper disabled color for disabled cell when grid renders.

6] All constraints and index js added idattribute to distinguish which s/constraint or s/index is updated on server side.

7] Column update.sql: Fixed sql when altering column data type. The issue was when we alter data type from which has length and precision to data type which don't have these properties and vice versa.
For e.g. alter data type numeric(10,12) to real (and vice versa)

8] Renaming constraint (RM1500).

9] simplejson KeyError handing for Python 2.7.
2016-08-03 15:39:14 +01:00
Dave Page 5d52767ba7 Move the dashboard tab filters into a button bar, and add a refresh button. Fixes #1505 2016-08-03 13:39:32 +01:00
Dave Page 4f90a5d4f4 Move button bar related classes together. 2016-08-03 13:38:12 +01:00
Dave Page 1ec1e9663c Ignore the pickle. 2016-08-03 10:25:10 +01:00
Harshal Dhumal ec3b9bb15b Allow to create the foreign table with inherits options. Fixes #1260 2016-08-02 09:38:56 +05:30
Murtuza Zabuawala 01252a13cf Further misc quoting/encoding related fixes. 2016-08-01 15:23:06 +01:00
Akshay Joshi e1cc3dded2 Allow customisable delete confirmation messages in backgrid. 2016-08-01 15:18:57 +01:00
Dave Page 16304aafd2 s/buttton/button/g, per Anthony DeBarros. Fixes #1518 2016-08-01 15:16:14 +01:00
Surinder Kumar 9c4eed70b4 Use the same keyboard shortcuts in the query tool as pgAdmin 3. Refs #1478
Per discussion on the mailing list, the shortcuts override the browser defaults (where there are any), but only when the query tool has focus.
2016-08-01 15:10:52 +01:00
Dmitriy Olshevskiy 94aa36f3d5 Remove redundant -- marker in the SQL panel on the properties dialogues. 2016-08-01 14:28:14 +01:00
Dave Page 5987af1b44 Minor readme tweak. 2016-07-27 15:35:11 +01:00
Navnath Gadakh 5c3c543d2e Test suite improvements:
- Test framework support API testing with multiple server for this we need to modify test_config.json(for user it’s test_config.json.in) and test_advanced_config.json(for user it’s test_advanced_config.json.in). Server details of PG and  PPAS are included in both .in files.

- Removed the logic of logging in  the test client on each test scenario(As per Khushboo's comment in previous email).  We need this logic in test cases under ‘browser/tests/’ as for test scenarios like change password and  invalid login test cases as test client should be logged out first. So, as per this the code is slightly modified in ‘browser/tests/’.
2016-07-27 15:33:36 +01:00
Murtuza Zabuawala b6e8d195dc Security label providers are an optional parameter. Fixes #1478. 2016-07-27 15:01:16 +01:00
Dave Page f4f8273994 Display basic query info when execution completes in the query tool. Fixes #1507 2016-07-27 11:36:13 +01:00
Murtuza Zabuawala 06e881570a Fix numerous encoding issues. Fixes #1307. Fixes #1479 2016-07-26 15:05:14 +01:00
Harshal Dhumal 166d42953c Give a more useful error message if attempting to drop an object that doesn't exist. Fixes #1154 2016-07-26 14:40:02 +01:00
Murtuza Zabuawala d3d96d5c05 Disable SQLALCHEMY track modification feature as it puts overhead on system, and if not set, now emits a warning. 2016-07-26 13:01:56 +01:00
Akshay Joshi e803464ee0 Replace 'Add' buttons with '+' 2016-07-26 12:54:59 +01:00
daze 19306934a0 Property 'URL' (of type string) not quoted in browser.js template when extending pgAdmin.Browser. Fixes #1504
Without quotes, the property can be mistakenly treated as a regex:

e.g.: URL: /pgadmin/browser/,

When that happens, JS engine throws "SyntaxError: invalid regular expression flag b" and the whole web interface freezes.
This problem usually occurs when pgadmin is hosted inside a subdirectory (https://host/pgadmin/ instead of https://host/).
2016-07-26 12:47:46 +01:00
Dave Page 790b28fb61 Flask-Babel 0.11+ compatibility. Fixes #1496 2016-07-25 17:23:10 +01:00
Harshal Dhumal 875360d1c8 When we use deps functionality, backform controls re-render then. But before we re-render them we must remove old grid (if any) otherwise is causes js error "Unable to call exitEditMode of undefined". Fixes #1497 2016-07-25 14:31:17 +01:00
Harshal Dhumal 9dd3cf2399 Make Save/Save As menu options work a little more sanely. Fixes #1460 2016-07-25 12:55:06 +01:00
Neel Patel dbd3c7f4c5 Allow creation of FDWs if the extension is in a non-default schema. Fixes #1320
Root cause:-

When user change schema of already created fdw extension then while creating the new fdw we should append the <schema_name>.<fdw_handler_name>.
Previously we added only <fdw_handler_name> so while executing the query it will not be able to find fdw handler name without schema name.

e.g. If user changed the fdw handler 'postgres_fdw_handler' under schema 'test' then we should display the handler  name under fdw as "test. postgres_fdw_handler".

Solution:-

With this patch, we have added <schema_name>.<fdw_handler_name> so while creating or updating the fdw, proper sql will be generated.
2016-07-25 12:48:11 +01:00
Neel Patel dcf5bfc495 Runtime fixes:
- Compilation error with Qt4 as "QUrlQuery" class was introduced since Qt5.
- Client side download code has been removed as now we support server side download.
- We should not delete sender object inside slot. If we do so it may crash the application. To avoid this, we used Qt's "deleteLater" which will delete the objects once the processing of all the events have been done.
2016-07-25 12:39:57 +01:00
Surinder Kumar 91559c622b Fixes for function, procedure and trigger reverse SQL. Fixes #1293. Fixes #1294
1. RM#1293 - SQL pane is not displaying GRANT queries in functions node
2. RM#1294 - Comments are not visible in sql pane for trigger functions and functions

Explanation:
Previously we we using 'get_defintion.sql' template to generate SQL for SQL pane for functions, procedure & trigger functions node.
but GRANT statements and COMMENTS changes were missing. In order to fix that, now we have used both 'create.sql' and 'get_definition.sql' templates to generate full SQL query for SQL pane.
2016-07-22 16:38:21 +01:00
Dave Page 60659975ed Stop using deprecated imports. 2016-07-22 16:25:23 +01:00
Dave Page a014cf82a1 Use a numeric version check for upgrades. 2016-07-22 16:14:57 +01:00
Dave Page f783aeac63 Change button label to initcap. 2016-07-21 17:18:15 +01:00
Murtuza Zabuawala 3d7b40e111 Fix support for security labels. Fixes #1457 2016-07-21 16:35:35 +01:00
Harshal Dhumal a7d7577c7c Query tool file handling cleanup. Fixes #1460
- Opening a file should set the tab name to the filename
- Editing a file should add a * to the tab name to indicate the file is dirty
- Saving changes to a file should clear the *
- The Save button should have a drop-down menu, with a Save As option.
2016-07-21 13:44:42 +01:00
Murtuza Zabuawala 419ead9121 Ensure ajax requests are sent on second click of an object. Fixes #1462 2016-07-21 13:26:09 +01:00
Ashesh Vashi 417af3676d Using better way to find the current object in the properties panel. 2016-07-19 15:30:39 +05:30
Ashesh Vashi 8b35a60c08 Generate the proper unique name for the duplicate column name.
Thanks Murtuza for reporting the issue.
2016-07-19 11:27:03 +05:30
Dave Page 8e29d16eec Beta 3 version bump 2016-07-18 16:34:00 +01:00
Harshal Dhumal 83a1535f89 Fix saving of query output as CSV data. Fixes #1405 2016-07-18 15:29:09 +01:00
Neel Patel a6024fc49a Support server side download in runtime application. 2016-07-18 15:28:20 +01:00
Dave Page ae9bbc0305 Ignore regression test files. 2016-07-18 14:50:49 +01:00
Dave Page f17c2e3b84 Enhancements to the regression test suite.
Navnath Gadakh and Priyanka Shendge
2016-07-18 14:50:21 +01:00
Harshal Dhumal c7d25c33f2 Make the Parameter grid use a workflow consistent with other grids. Fixes #1241
1. Altered variable control to make its UI consistent with privileges and Security labels.
2. Changed datamodel.js to handle duplicate rows at datamodel level and not UI/Control level. (See variable control for example)
2016-07-18 11:50:42 +01:00
Murtuza Zabuawala 5560d5b334 Properly support the interval type. Fixes #1437 2016-07-18 09:40:45 +01:00
Ashesh Vashi 9ba6bafb2b Using own version of cursor class to allow us to take care of the
duplicate name in column description.
2016-07-16 10:42:51 +05:30
Murtuza Zabuawala d15dfac60f FIx a hang in the query tool that could occur if a column type couldn't be determined. Fixes #1438 2016-07-15 12:59:01 +01:00
Murtuza Zabuawala e94b14e7d7 Fix the issue in MATERIALIZED VIEW node where user was not able to add/update security label. Fixes #1458 2016-07-15 12:13:57 +01:00
Murtuza Zabuawala 517a797947 Fix query tool display of various types:
date
reltime
abstime
time with timezone
time without timezone
2016-07-15 11:59:45 +01:00
Surinder Kumar 1a129cf30e File management dialogue enhancements:
- Double click on file/folder icon or name will navigate to the folder/file.
- Selected file/folder can be renamed by Rename button only. Double click rename is removed.
- Filename text box will not hide on smaller screen. Setting minimum width of File Browser fixed it.
- Path at top will only show directory name, not the file name and it is greyed out
2016-07-15 10:50:25 +01:00
Surinder Kumar efb254c966 Ensure newly created database can be dropped. 2016-07-15 10:14:11 +01:00
Murtuza Zabuawala 573abbe6ef Allow users to select a data type with the keyboard only when creating a column in the subnode grid. Sanitise the list of fields shown. 2016-07-15 10:12:23 +01:00
Murtuza Zabuawala fdcb9d2a57 Fix an issue in procedure node where users were not able to create a new procedure when they provide arguments. Fixes #1416 2016-07-13 14:57:08 +01:00
Murtuza Zabuawala f79ca32e45 Allow selection of 'PUBLIC' as a role in privileges. Fixes #1416 2016-07-13 14:51:25 +01:00
Murtuza Zabuawala ae692d2416 Display comments on languages. Fixes #1412 2016-07-13 14:45:34 +01:00
Surinder Kumar f58c4df85d Fix incomplete reverse engineered SQL for databases. Fixes #1420 2016-07-13 12:42:01 +01:00
Surinder Kumar 9ad0bd1026 Fix clear query option which was opening a query tool in new window in Mac Runtime 2016-07-13 12:35:22 +01:00
Surinder Kumar 47e849dee0 The spinner icon is not visible while executing query or running debugger in Runtime environment specific to Ubuntu. This issue is related to RM#1186
To make it work, we need to explicitly set -webkit-animation property to 'none' for classes "sql-editor-busy-icon.fa-pulse" and ".debugger-container fa-pulse".

'fa-pulse' class is responsible to spin the busy icon, but setting its -webkit-animation property to none will not spin icon but icon and message will be shown.
2016-07-13 12:32:05 +01:00
Neel Patel d22ea8bf61 Properly support file downloads in the desktop runtime. Fixes #1405. Fixes #1342 2016-07-13 12:26:24 +01:00
Ashesh Vashi 1ada5031cd 'hasattr' function on '__builtins__' for 'xrange' function does not
return correct information from a script, but works well on interactive
shell. Used a more proper check for Python > 2 instead of the current
implementation.

Thanks Vishal for the report.
2016-07-12 13:21:21 +05:30
Ashesh Vashi 6fa4065eee Do not try to show the database dashboard, when clicked on one of the
children node. This implementation will allow to add new nodes at server
level without modifying the dashboard code. I found the issue during the
pgAgent Jobs node implementation.
2016-07-11 16:31:52 +05:30
Ashesh Vashi 2b809523eb [Python 3 Compability] Made changes to make the new server-side session
implementation works with Python 3.
2016-07-11 16:29:06 +05:30
Ashesh Vashi 889b69ac82 [Python 3 compability] Allow to run the auto-discovery implementation on
Python 3. Refs #1389
2016-07-11 01:18:24 +05:30
Ashesh Vashi 61698b7b4d Do not use the sqlite for session handling, as the old implementation is
optimized to work from multiple threads. It has too many frequent
transaction from multiple threads, and that tends to result into the
'database is locked' error of sqlite.

With the new implemenation, we're using the caching mechanism, which
keep the data in the memory all the time, and saves it on request
completion, and loads it only for the first time. Also, it will storage
the data using pickle, which will be faster than accessing sqlite.

Fixes #1329
2016-07-08 16:57:46 +05:30
Surinder Kumar 52d1af63a5 Scroll to the new row when adding one in the query tool. Fixes #1435 2016-07-07 12:35:44 +01:00
Harshal Dhumal 4077de2187 Fix Select2 issues. Fixes #1418. Fixes #1434
1. Select2 control fixed for multi-select mode.
2. Index constrains (primary and unique key) fixed column listing issue.
3. Table node "inherited from" (Select2 control) was not showing table name with public schema
2016-07-05 12:58:48 +01:00
Surinder Kumar 6c6660e576 Resolve "Move to last page" warning shown unnecessarily issue. Fixes #1422 2016-07-05 12:20:40 +01:00
Surinder Kumar 1bd27b847b Grey the SQL panel in edit data mode. Fixes #1423
Introduced a new class 'cm_disabled' with css property background-color to '#EEEEE'
Query tool in edit mode, add the class 'cm_disabled' to set background color to dark and set the cursor property to 'nocursor' to disable editor.
Increased the query tool title padding to fix the issue of whitespace below the title.
2016-07-05 12:11:36 +01:00
Murtuza Zabuawala 3ee8861d44 Fix JSON type rendering. Fixes #1404 2016-07-04 10:05:59 +01:00
Dave Page d4c3b1bcff Fix trigger function help link. Fixes #1410 2016-07-02 17:24:21 +01:00
Susan Douglas 8a12850525 Re-work the getting started section, and add trigger function support. Fixes #1403 2016-07-02 17:20:51 +01:00
Dave Page 51a33e57c9 Fix blurred text in Alertify on webkit. Fixes #1347 2016-07-02 17:13:32 +01:00
Dave Page 9c39fe2f2e Fix architecture detection on 32 bit Windows. Fixes #1427 2016-07-01 15:50:28 +01:00
Dave Page 7b3b7736d9 Resolve loading panel does not hide in Mac runtime. Fixes #1425 2016-07-01 10:20:43 +01:00
Dave Page c45960df5e Beta 2.1 - a favour for our friends in QA. 2016-06-30 16:05:23 +01:00
Dave Page d79524ff60 Require passwords to be at least 6 chars long in setup.py. Fixes #1322 2016-06-30 14:16:30 +01:00
Dave Page a1d8ca8c1c Fix subnode header colour 2016-06-30 14:07:26 +01:00
Dave Page 685b2f4ab7 Correct label 2016-06-30 14:05:10 +01:00
Dave Page aa44122a8a Fix query execution keys in the Mac runtime. Needs more work to sanitize with CodeMirror, but this is a step further. Fixes #1336 2016-06-30 09:56:15 +01:00
Dave Page 80e108aa55 Fix regression test harness to allow for removal of the schema version from config.py 2016-06-30 09:46:46 +01:00
Dave Page 71443deceb Fix email validation 2016-06-30 09:46:06 +01:00
Dave Page 0282ef7992 Use a standard colour for error highlighting. 2016-06-29 20:54:08 +01:00
Dave Page c4504f1dc2 Localise the loading message. 2016-06-29 20:48:09 +01:00
Dave Page d795f37fe5 Prefix the version number with 'v' in the Loading message. 2016-06-29 20:47:11 +01:00
Dave Page b8c9ccc939 Use Alt+Shift for runtime shortcuts to avoid collisions with app shortcuts. 2016-06-29 20:31:40 +01:00
Murtuza Zabuawala 8246fc56e8 Offer the various serial pseudo-types as column type options. Fixes #1393 2016-06-29 19:50:43 +01:00
Surinder Kumar 53434030c1 Consistent busy indication. Fixes #1242 2016-06-29 12:16:02 +01:00
Harshal Dhumal 9396cb03d5 Fix intermittent CodeMirror rendering issue. Fixes #1399 2016-06-29 11:19:04 +01:00
Surinder Kumar 5d0c160fb8 Show a loading indicator until things are ready to rock. Fixes #1400 2016-06-29 10:46:48 +01:00
Dave Page 1222681888 Revert "Display busy indicators in a much more consistent way. Fixes #1242"
This reverts commit 7fbefa507b which seems to be
missing things.
2016-06-29 10:32:20 +01:00
Dave Page 7fbefa507b Display busy indicators in a much more consistent way. Fixes #1242 2016-06-27 17:09:37 +01:00
Murtuza Zabuawala 4267545e08 Handle special chars and spaces properly in select2 controls. Fixes #1292 2016-06-24 14:09:32 +01:00
Murtuza Zabuawala 4bb849c58c Allow toggling of the Primary Key option in the un-expanded column grid when defining a table. Fixes #1235 2016-06-24 14:05:59 +01:00
Dave Page 78d329fc47 Don't blink the elapsed time - it's distracting. 2016-06-24 14:01:23 +01:00
Murtuza Zabuawala e9ad27678f Allow maintenance operations on Index/Primary key/Unique constraints. Fixes #1390 2016-06-24 13:59:16 +01:00
Dave Page d63b54610b Move the config database schema version out of the configuration file and into the model class.
Turns out using the config file isn't a good idea if users copy config.py to config_local.py, as it prevents upgrades to the database. This has the added side-effect of simplifying future changes, as you only need to edit 2 files to modify the config DB now, not 3.
2016-06-24 12:50:52 +01:00
Surinder Kumar a7e1e25cf4 Add a title bar to the treeview browser, as this is the only (currently) supported way to fix docking issues with our code in wcDocker. Fixes #1184
Original patch by Surinder. Simplified and re-styled by me.
2016-06-24 10:12:57 +01:00
Dave Page 8f643a1946 Styling tweaks 2016-06-24 10:04:51 +01:00
Dave Page a1f979c3e4 Fix icon spacing 2016-06-24 09:45:21 +01:00
Dave Page 30682c2a68 String fix. 2016-06-24 09:27:29 +01:00
Dave Page 1acc1a7678 Auto-discover locally installed servers at login. Fixes #1389 2016-06-23 16:27:06 +01:00
Murtuza Zabuawala e4ef927da3 Fix tablespace statistics. Fixes #1196 2016-06-23 13:06:05 +01:00
Murtuza Zabuawala 8b0e65dc57 Allow default ACLs to be specified when creating schemas. Fixes #1108. 2016-06-23 13:03:18 +01:00
Dave Page 5928f70a1d Fix default ACL queries which were using invalid values for defaclobjtype. 2016-06-23 13:02:30 +01:00
Surinder Kumar 09569a23bd Fix "number.toFixed is not function" JS error.
Issue:
We got the following error in console log
"number.toFixed is not function"

Steps to reproduce:
1) Click on statistics tab.
1) Select any database node.
2) then select Databases collection node.
3) The above error will appear into console.

Reason:
I discussed the issue with @Murtaza and here we are explicitly
converting values at server side to string as JSON do not directly
support NaN & Infinity values. Because of which NumberFormatter receives
values of type string and breaks.

Solution:
Overrides the NumberFormatter to support NaN & Infinity values.
and we need to parse the values again in float at client side.
2016-06-23 12:46:48 +01:00
Dave Page 4983eb2f1c Fix SQL formatting. Fixes #1234 2016-06-23 12:14:23 +01:00
Murtuza Zabuawala 97d49af43a Fix constraint on server table to allow port 65535 to be used. Fixes #1388 2016-06-23 11:43:50 +01:00
Murtuza Zabuawala e5ee592470 Don't offer an option to drop the current maintenance database. Fixes #1382 2016-06-23 11:37:32 +01:00
Ashesh Vashi b78b3904cd Use PUBLIC (in caps) whenever used as a keyword. Fixes #1138 2016-06-23 09:15:09 +05:30
3137 changed files with 251959 additions and 184428 deletions

No files matched your search

+27 -17
View File
@@ -1,31 +1,41 @@
*.autosave
*.db
*.diff
*.o
*.patch
*.psp
*.pyc
*.pyo
*.o
*.psp
_build
build-*
*.swo
*.swp
.DS_Store
.idea
.vscode
/dist
/docker-build
/mac-build
/pip-build
/src-build
/win-build
_build
build-*
pgadmin4.log
pkg/win32/installer.iss
pkg/mac/codesign.conf
pkg/mac/framework.conf
runtime/.qmake.cache
runtime/.qmake.stash
runtime/Makefile
runtime/Makefile.Debug
runtime/Makefile.Release
runtime/moc_BrowserWindow.cpp
runtime/moc_Server.cpp
runtime/pgAdmin4.app/
runtime/pgAdmin4.pro.user*
runtime/pgAdmin4_resource.rc
runtime/release/
runtime/ui_BrowserWindow.h
runtime/.qmake.stash
web/config_local.py
web/regression/test_config.json
pgadmin4.log
*.swp
*.swo
/mac-build
/src-build
/pip-build
/dist
pkg/win32/win-build
pkg/win32/installer.iss
runtime/Makefile.Debug
runtime/Makefile.Release
runtime/release/
node_modules/
web/pgAdmin/static/js/generated
+19 -19
View File
@@ -1,19 +1,19 @@
pgAdmin 4
Copyright (c) 2013 - 2016, The pgAdmin Development Team
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
hereby granted, provided that the above copyright notice and this paragraph and
the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE PGADMIN DEVELOPMENT TEAM BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
THE PGADMIN DEVELOPMENT TEAM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE PGADMIN DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
THE PGADMIN DEVELOPMENT TEAM HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
pgAdmin 4
Copyright (C) 2013 - 2018, The pgAdmin Development Team
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
hereby granted, provided that the above copyright notice and this paragraph and
the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE PGADMIN DEVELOPMENT TEAM BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
THE PGADMIN DEVELOPMENT TEAM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE PGADMIN DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
THE PGADMIN DEVELOPMENT TEAM HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+497
View File
@@ -0,0 +1,497 @@
@ECHO off
SETLOCAL
REM
REM ****************************************************************
SET WD=%CD%
SET "PGBUILDPATH=%WD%\win-build"
SET CMDOPTION=""
IF "%1" == "clean" SET CMDOPTION="VALID"
IF "%1" == "x86" SET CMDOPTION="VALID"
IF NOT %CMDOPTION%=="VALID" ( GOTO USAGE )
SET ARCHITECTURE=%1
IF "%ARCHITECTURE%"=="clean" (
GOTO CLEAN_RELEASE
GOTO EXIT
)
REM Main Functions
CALL :SET_PGADMIN4_ENVIRONMENT
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :VALIDATE_ENVIRONMENT
CALL :CLEAN_RELEASE
CALL :CREATE_VIRTUAL_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :CREATE_RUNTIME_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :CREATE_PYTHON_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :CLEANUP_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :CREATE_INSTALLER
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :SIGN_INSTALLER
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CD %WD%
GOTO EXIT
REM Main function Ends
:CLEAN_RELEASE
ECHO Calling clean target...
IF EXIST "%PGBUILDPATH%" rd "%PGBUILDPATH%" /S /Q
FOR /R "%WD%" %%f in (*.pyc *.pyo) do DEL /q "%%f" > nul
IF EXIST "%WD%\pkg\win32\Output" rd "%WD%\pkg\win32\Output" /S /Q
IF EXIST DEL /q "%WD%\pkg\win32\installer.iss" > nul
CD %WD%
GOTO:eof
:SET_PGADMIN4_ENVIRONMENT
IF "%PYTHON_HOME%" == "" SET "PYTHON_HOME=C:\Python27"
IF "%PYTHON_DLL%" == "" SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\5.9.1\mingw53_32"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files (x86)\PostgreSQL\9.6"
IF "%INNOTOOL%" == "" SET "INNOTOOL=C:\Program Files (x86)\Inno Setup 5"
IF "%YARNDIR%" == "" SET "YARNDIR=C:\Program Files\Yarn"
IF "%NODEJSDIR%" == "" SET "NODEJSDIR=C:\Program Files\nodejs"
IF "%VCDIR%" == "" SET "VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
IF "%VCREDIST%" == "" SET "VCREDIST=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\1033\vcredist_x86.exe"
IF "%SIGNTOOL%" == "" SET "SIGNTOOL=C:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe"
SET "VCREDISTNAME=vcredist_x86.exe"
GOTO:eof
:VALIDATE_ENVIRONMENT
REM SET the variables IF not availalbe in windows environment
SET "QMAKE=%QTDIR%\bin\qmake.exe"
SET "VIRTUALENV=venv"
SET "TARGETINSTALLER=%WD%\dist"
SET "VCREDIST=%VCDIR%\redist\1033\%VCREDISTNAME%"
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py') DO SET APP_RELEASE=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\config.py') DO SET APP_REVISION_VERSION=%%a
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\config.py') DO SET APP_SUFFIX_VERSION=%%a
REM remove single quote from the string
SET APP_SUFFIX_VERSION=%APP_SUFFIX_VERSION:'=%
SET APP_NAME=""
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
FOR /F "tokens=4,5 delims=. " %%a IN ('%QMAKE% -v ^| findstr /B /C:"Using Qt version "') DO SET QT_VERSION=%%a.%%b
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_RELEASE%.%APP_REVISION_VERSION%-%APP_SUFFIX_VERSION%-%ARCHITECTURE%.exe
IF "%APP_SUFFIX_VERSION%" == "" SET INSTALLERNAME=%APP_SHORTNAME%-%APP_RELEASE%.%APP_REVISION_VERSION%-%ARCHITECTURE%.exe
SET PGADMIN4_VERSION=v%APP_RELEASE%
SET PGADMIN4_APP_VERSION=%APP_RELEASE%.%APP_REVISION_VERSION%
ECHO ****************************************************************
ECHO S U M M A R Y
ECHO ****************************************************************
ECHO Target mode = x86
ECHO INNOTOOL = %INNOTOOL%
ECHO VCDIR = %VCDIR%
ECHO VCDIST = %VCREDIST%
ECHO SIGNTOOL = %SIGNTOOL%
ECHO QTDIR = %QTDIR%
ECHO QMAKE = %QMAKE%
ECHO QT_VERSION = %QT_VERSION%
ECHO YARNDIR = %YARNDIR%
ECHO NODEJSDIR = %NODEJSDIR%
ECHO BROWSER = QtWebKit
ECHO PYTHON_HOME = %PYTHON_HOME%
ECHO PYTHON_DLL = %PYTHON_DLL%
ECHO PGDIR = %PGDIR%
ECHO ****************************************************************
REM Check IF path SET in enviroments really exist or not ?
IF NOT EXIST "%INNOTOOL%" GOTO err_handle_inno
IF NOT EXIST "%VCDIR%" GOTO err_handle_visualstudio
IF NOT EXIST "%VCREDIST%" GOTO err_handle_visualstudio_dist
IF NOT EXIST "%QTDIR%" GOTO err_handle_qt
IF NOT EXIST "%QMAKE%" GOTO err_handle_qt
IF NOT EXIST "%PYTHON_HOME%" GOTO err_handle_python
IF NOT EXIST "%PYTHON_DLL%" GOTO err_handle_python
IF NOT EXIST "%PGDIR%" GOTO err_handle_pg
IF NOT EXIST "%YARNDIR%" GOTO err_handle_yarn
IF NOT EXIST "%NODEJSDIR%" GOTO err_handle_nodejs
REM get Python version ex. 2.7.1 will get as 27
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MAJOR=%%G
FOR /f "tokens=2 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MINOR=%%G
SET "PYTHON_VERSION=%PYTHON_MAJOR%%PYTHON_MINOR%"
IF NOT EXIST "%PYTHON_HOME%\Scripts\virtualenv.exe" GOTO err_handle_pythonvirtualenv
SET PATH=%PGDIR%;%PGDIR%\bin;%QTDIR%\..\..\Tools\mingw530_32\bin;%NODEJSDIR%;%YARNDIR%\bin;%PATH%;
GOTO:eof
:CREATE_VIRTUAL_ENV
ECHO Creating Virtual Enviroment...
IF NOT EXIST "%PGBUILDPATH%" MKDIR "%PGBUILDPATH%"
CD "%PGBUILDPATH%"
"%PYTHON_HOME%\Scripts\virtualenv.exe" "%VIRTUALENV%"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Activating Virtual Enviroment - %PGBUILDPATH%\%VIRTUALENV%\Scripts\activate...
CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\activate"
SET PATH=%PGDIR%\bin;%PATH%
ECHO Installing dependencies...
pip install -r "%WD%\requirements.txt"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
pip install sphinx
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Virtual Environment created successfully.
ECHO Deactivating Virtual Enviroment - %PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate...
CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate"
CD %WD%
GOTO:eof
:CREATE_RUNTIME_ENV
ECHO Compiling source code...
MKDIR "%PGBUILDPATH%\runtime" > nul
REM --- Processing WEB ---
CD "%WD%\web"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Install Javascript dependencies
call yarn install
ECHO Bundle all Javascript
call yarn run bundle
XCOPY /S /I /E /H /Y "%WD%\web" "%PGBUILDPATH%\web" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
REM Clean up .pyc, .pyo, pgadmin4.db, config_local.py
ECHO Cleaning up unnecessary files...
FOR /R "%PGBUILDPATH%\web" %%f in (*.pyc *.pyo) do DEL /q "%%f"
FOR /R "%PGBUILDPATH%\web" %%f in (tests feature_tests __pycache__ node_modules) do RD /Q /S "%%f"
RD /Q /S "%PGBUILDPATH%\web\regression"
RD /Q /S "%PGBUILDPATH%\web\tools"
DEL /q "%PGBUILDPATH%\web\pgadmin4.db"
DEL /q "%PGBUILDPATH%\web\config_local.py"
ECHO Creating config_distro.py
ECHO SERVER_MODE = False > "%PGBUILDPATH%\web\config_distro.py"
ECHO HELP_PATH = '../../../docs/en_US/html/' >> "%PGBUILDPATH%\web\config_distro.py"
ECHO DEFAULT_BINARY_PATHS = { >> "%PGBUILDPATH%\web\config_distro.py"
ECHO 'pg': '$DIR/../runtime', >> "%PGBUILDPATH%\web\config_distro.py"
ECHO 'ppas': '' >> "%PGBUILDPATH%\web\config_distro.py"
ECHO } >> "%PGBUILDPATH%\web\config_distro.py"
ECHO Activating Virtual Enviroment - %PGBUILDPATH%\%VIRTUALENV%\Scripts\activate...
CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\activate"
ECHO Building docs...
MKDIR "%PGBUILDPATH%\docs\en_US\html"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CD "%WD%\docs\en_US"
"%PGBUILDPATH%\%VIRTUALENV%\Scripts\python.exe" build_code_snippet.py
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
"%PGBUILDPATH%\%VIRTUALENV%\Scripts\sphinx-build.exe" "%WD%\docs\en_US" "%PGBUILDPATH%\docs\en_US\html"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Removing Sphinx
pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer
ECHO Fixing backports.csv - adding missing __init__.py
type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py"
ECHO Assembling runtime environment...
CD "%WD%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL "%QMAKE%" "DEFINES+=PGADMIN4_USE_WEBKIT"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL mingw32-make.exe clean
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL mingw32-make.exe
IF ERRORLEVEL 1 GOTO ERR_HANDLER
REM Copy binary to Release Folder
copy "%WD%\runtime\release\pgAdmin4.exe" "%PGBUILDPATH%\runtime"
IF ERRORLEVEL 1 GOTO ERR_HANDLER
REM Copy QT dependences
copy "%QTDIR%\bin\Qt5Core.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Sql.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Gui.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Qml.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5OpenGL.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Quick.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Sensors.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Widgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Network.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Multimedia.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebChannel.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Positioning.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5PrintSupport.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5MultimediaWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
IF %QT_VERSION% GEQ 5.9 (
copy "%QTDIR%\bin\Qt5WebKit.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebKitWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
) ELSE (
copy "%QTDIR%\bin\libQt5WebKit.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libQt5WebKitWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
)
copy "%QTDIR%\bin\icudt57.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuin57.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuuc57.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libgcc_s_dw2-1.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libstdc++-6.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libwinpthread-1.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libxml2-2.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\libxslt-1.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
MKDIR "%PGBUILDPATH%\runtime\platforms"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\plugins\platforms\qwindows.dll" "%PGBUILDPATH%\runtime\platforms" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO [Paths] > "%PGBUILDPATH%\runtime\qt.conf"
ECHO Plugins=plugins >> "%PGBUILDPATH%\runtime\qt.conf"
copy "%PGDIR%\bin\libpq.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\ssleay32.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\libeay32.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\libintl-*.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\libiconv-*.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\zlib1.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_dump.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_dumpall.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_restore.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\psql.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
MKDIR "%PGBUILDPATH%\installer"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%VCREDIST%" "%PGBUILDPATH%\installer" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Runtime built successfully.
CD %WD%
GOTO:eof
:CREATE_PYTHON_ENV
copy %PYTHON_DLL% "%PGBUILDPATH%\runtime" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
REM Copy Python interpretor as it's needed to run background processes
copy %PYTHON_HOME%\python.exe "%PGBUILDPATH%\runtime" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy %PYTHON_HOME%\pythonw.exe "%PGBUILDPATH%\runtime" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
XCOPY /S /I /E /H /Y "%PYTHON_HOME%\DLLs" "%PGBUILDPATH%\%VIRTUALENV%\DLLs" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
XCOPY /S /I /E /H /Y "%PYTHON_HOME%\Lib" "%PGBUILDPATH%\%VIRTUALENV%\Lib" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Cleaning up unnecessary files...
FOR /R "%PGBUILDPATH%\%VIRTUALENV%" %%f in (*.pyc *.pyo) do DEL /q "%%f"
FOR /R "%PGBUILDPATH%\%VIRTUALENV%\Lib" %%f in (test tests) do RD /Q /S "%%f"
RD /Q /S "%PGBUILDPATH%\%VIRTUALENV%\tcl"
CD %WD%
GOTO:eof
:CREATE_INSTALLER
ECHO Preparing for creation of windows installer...
IF NOT EXIST "%TARGETINSTALLER%" MKDIR "%TARGETINSTALLER%"
copy "%WD%\pkg\win32\Resources\pgAdmin4.ico" "%PGBUILDPATH%"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CD "%WD%"
CD pkg
CD win32
"%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in" "-o" "%WD%\pkg\win32\installer.iss.in_stage1" "-s" MYAPP_NAME -r """%APP_NAME%"""
"%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage1" "-o" "%WD%\pkg\win32\installer.iss.in_stage2" "-s" MYAPP_FULLVERSION -r """%PGADMIN4_APP_VERSION%"""
"%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss.in_stage3" "-s" MYAPP_VERSION -r """%PGADMIN4_VERSION%"""
set ARCMODE=
IF "%ARCHITECTURE%"=="amd64" (
set ARCMODE="x64"
)
"%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage3" "-o" "%WD%\pkg\win32\installer.iss.in_stage4" "-s" MYAPP_ARCHITECTURESMODE -r """%ARCMODE%"""
"%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage4" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%VCREDISTNAME%"""
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
ECHO Creating windows installer... using INNO tool
CALL "%INNOTOOL%\ISCC.exe" /q "%WD%\pkg\win32\installer.iss"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
MOVE "%WD%\pkg\win32\Output\Setup.exe" "%TARGETINSTALLER%\%INSTALLERNAME%"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO "Location - %TARGETINSTALLER%\%INSTALLERNAME%"
ECHO Installer generated successfully.
CD %WD%
GOTO:eof
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
"%SIGNTOOL%" sign /t http://timestamp.verisign.com/scripts/timstamp.dll "%TARGETINSTALLER%\%INSTALLERNAME%"
IF %ERRORLEVEL% NEQ 0 (
ECHO
ECHO ************************************************************
ECHO * Failed to sign the installer
ECHO ************************************************************
PAUSE
)
CD %WD%
GOTO:eof
:CLEANUP_ENV
ECHO Cleaning up private environment...
rd "%PGBUILDPATH%\%VIRTUALENV%\Include" /S /Q
DEL /s "%PGBUILDPATH%\%VIRTUALENV%\pip-selfcheck.json"
ECHO Cleaned up private environment successfully.
CD %WD%
GOTO:eof
:err_handle_inno
ECHO %INNOTOOL% does not exist
ECHO Please Install Innotool and SET INNOTOOL enviroment Variable.
ECHO SET "INNOTOOL=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_visualstudio
ECHO %VCDIR% does not exist
ECHO Please Install Microsoft Visual studio and SET the VCDIR enviroment Variable.
ECHO SET "VCDIR=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_visualstudio_dist
ECHO %VCREDIST% does not exist
ECHO Please Install Microsoft Visual studio and SET the VCDIST enviroment Variable.
ECHO SET "VCDIST=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_python
ECHO %PYTHON_HOME% does not exist, or
ECHO PYTHON_VERSION is not SET, or
ECHO %PYTHON_DLL% does not exist.
ECHO Please install Python and SET the PYTHON_HOME enviroment Variable.
ECHO SET "PYTHON_VERSION=<VERSION NUMBER>"
ECHO SET "PYTHON_HOME=<PATH>"
ECHO SET "PYTHON_DLL=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_qt
ECHO %QTDIR% does not exist.
ECHO Please Install QT SDK and SET the QTDIR enviroment variable.
ECHO SET "QTDIR=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_yarn
ECHO %YARNDIR% does not exist.
ECHO Please Install YARN and SET the YARNDIR enviroment variable.
ECHO SET "YARNDIR=<YARN PATH>"
exit /B 1
GOTO EXIT
:err_handle_nodejs
ECHO %NODEJSDIR% does not exist.
ECHO Please Install NodeJs and SET the NODEJSDIR enviroment variable.
ECHO SET "NODEJSDIR=<NODEJS PATH>"
exit /B 1
GOTO EXIT
:err_handle_pg
ECHO %PGDIR% does not exist.
ECHO Please Install Postgres and SET enviroment Variable
ECHO SET "PGDIR=<PATH>"
exit /B 1
GOTO EXIT
:err_handle_pythonvirtualenv
ECHO Python virtualenv is missing @ location - %PYTHON_HOME%\Scripts\virtualenv.exe
exit /B 1
GOTO EXIT
:ERR_HANDLER
ECHO.
ECHO Aborting build!
CD %WD%
exit /B 1
GOTO EXIT
:USAGE
ECHO Invalid command line options....
ECHO Usage: "Make.bat <x86 | clean>"
ECHO.
exit /B 1
GOTO EXIT
:EXIT
+183 -84
View File
@@ -14,33 +14,38 @@ SET ARCHITECTURE=%1
IF "%ARCHITECTURE%"=="clean" (
GOTO CLEAN_RELEASE
goto:exit
GOTO EXIT
)
REM Main Functions
call :SET_PGADMIN4_ENVIRONMENT
CALL :SET_PGADMIN4_ENVIRONMENT
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call :CLEAN_RELEASE
CALL :VALIDATE_ENVIRONMENT
call :CREATE_VIRTUAL_ENV
CALL :CLEAN_RELEASE
CALL :CREATE_VIRTUAL_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call :CREATE_RUNTIME_ENV
CALL :CREATE_RUNTIME_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call :CREATE_PYTHON_ENV
CALL :CREATE_PYTHON_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call :CLEANUP_ENV
CALL :CLEANUP_ENV
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call :CREATE_INSTALLER
CALL :CREATE_INSTALLER
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL :SIGN_INSTALLER
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CD %WD%
goto:EXIT
GOTO EXIT
REM Main function Ends
:CLEAN_RELEASE
@@ -51,7 +56,7 @@ REM Main function Ends
IF EXIST "%WD%\pkg\win32\Output" rd "%WD%\pkg\win32\Output" /S /Q
IF EXIST DEL /q "%WD%\pkg\win32\installer.iss" > nul
CD %WD%
GOTO:EOF
GOTO:eof
:SET_PGADMIN4_ENVIRONMENT
REM Check os architecture x86 or amd64
@@ -69,29 +74,28 @@ GOTO:EOF
IF "%OSTYPE%"=="x86" (
IF "%ARCHITECTURE%"=="amd64" (
ECHO ARCHITECTURE - %ARCHITECTURE% cannot be run on 32 bit machine
goto:exit
GOTO EXIT
)
OSVALUE=%OSTYPE%
SET OSVALUE=%OSTYPE%
)
REM Check IF its is windows 32 bit machine and selected architecture is x86
IF %OSVALUE%=="x86" (
IF "%PYTHON_HOME%" == "" SET "PYTHON_HOME=C:\Python27123"
IF "%PYTHON_HOME%" == "" SET "PYTHON_HOME=C:\Python27"
IF "%PYTHON_DLL%" == "" SET "PYTHON_DLL=C:\Windows\System32\python27.dll"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files\PostgreSQL\9.5"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\5.7\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files\PostgreSQL\9.6"
IF "%INNOTOOL%" == "" SET "INNOTOOL=C:\Program Files\Inno Setup 5"
IF "%VCDIR%" == "" SET "VCDIR=C:\Program Files\Microsoft Visual Studio 12.0\VC"
SET "VCREDISTNAME=vcredist_x86.exe"
goto SKIPARCVALIDATION
)
REM Check IF its is windows 64 bit machine and selected architecture is x86 or amd64
IF "%ARCHITECTURE%"=="x86" (
IF "%PYTHON_HOME%" == "" SET "PYTHON_HOME=C:\Python27"
IF "%PYTHON_DLL%" == "" SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files (x86)\PostgreSQL\9.5"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\5.7\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files (x86)\PostgreSQL\9.6"
IF "%INNOTOOL%" == "" SET "INNOTOOL=C:\Program Files (x86)\Inno Setup 5"
IF "%VCDIR%" == "" SET "VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
IF "%VCREDIST%" == "" SET "VCREDIST=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\1033\vcredist_x86.exe"
@@ -101,16 +105,17 @@ GOTO:EOF
IF "%ARCHITECTURE%"=="amd64" (
IF "%PYTHON_HOME%" == "" SET "PYTHON_HOME=C:\Python27-x64"
IF "%PYTHON_DLL%" == "" SET "PYTHON_DLL=C:\Windows\System32\python27.dll"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\5.5\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files\PostgreSQL\9.5"
IF "%QTDIR%" == "" SET "QTDIR=C:\Qt\5.7\msvc2013"
IF "%PGDIR%" == "" SET "PGDIR=C:\Program Files\PostgreSQL\9.6"
IF "%INNOTOOL%" == "" SET "INNOTOOL=C:\Program Files\Inno Setup 5"
IF "%VCDIR%" == "" SET "VCDIR=C:\Program Files\Microsoft Visual Studio 12.0\VC"
IF "%VCREDIST%" == "" SET "VCREDIST=C:\Program Files\Microsoft Visual Studio 12.0\VC\redist\1033\vcredist_x64.exe"
SET "VCREDISTNAME=vcredist_x64.exe"
)
GOTO:eof
:SKIPARCVALIDATION
REM SET the variables IF not availalbe in windows enviroment
:VALIDATE_ENVIRONMENT
REM SET the variables IF not availalbe in windows environment
SET "VCVAR=%VCDIR%\vcvarsall.bat"
SET "VCNMAKE=%VCDIR%\bin\nmake.exe"
SET "QMAKE=%QTDIR%\bin\qmake.exe"
@@ -125,8 +130,11 @@ GOTO:EOF
SET APP_SUFFIX_VERSION=%APP_SUFFIX_VERSION:'=%
SET APP_NAME=""
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "print '%APP_NAME%'.lower().replace(' ', '')"') DO SET APP_SHORTNAME=%%G
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
FOR /F "tokens=4,5 delims=. " %%a IN ('%QMAKE% -v ^| findstr /B /C:"Using Qt version "') DO SET QT_VERSION=%%a.%%b
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_RELEASE%.%APP_REVISION_VERSION%-%APP_SUFFIX_VERSION%-%ARCHITECTURE%.exe
IF "%APP_SUFFIX_VERSION%" == "" SET INSTALLERNAME=%APP_SHORTNAME%-%APP_RELEASE%.%APP_REVISION_VERSION%-%ARCHITECTURE%.exe
SET PGADMIN4_VERSION=v%APP_RELEASE%
SET PGADMIN4_APP_VERSION=%APP_RELEASE%.%APP_REVISION_VERSION%
@@ -141,6 +149,12 @@ GOTO:EOF
ECHO NMAKE = %VCNMAKE%
ECHO QTDIR = %QTDIR%
ECHO QMAKE = %QMAKE%
ECHO QT_VERSION = %QT_VERSION%
IF %QT_VERSION% GEQ 5.5 (
ECHO BROWSER = QtWebEngine
) ELSE (
ECHO BROWSER = QtWebKit
)
ECHO PYTHON_HOME = %PYTHON_HOME%
ECHO PYTHON_DLL = %PYTHON_DLL%
ECHO PGDIR = %PGDIR%
@@ -159,9 +173,8 @@ GOTO:EOF
IF NOT EXIST "%PGDIR%" GOTO err_handle_pg
REM Check for QT and VC dependences
FOR /L %%G IN (15,1,19) DO "%VCDIR%\bin\cl.exe" /? 2>&1 | findstr /C:"Version %%G" > nul && SET MSVC_MAJOR_VERSION=%%G && GOTO QT_MSVC
FOR /L %%G IN (15,1,19) DO "%VCDIR%\bin\cl.exe" /? 2>&1 | findstr /C:"Version %%G" > nul && SET MSVC_MAJOR_VERSION=%%G
:QT_MSVC
IF %MSVC_MAJOR_VERSION%==19 SET QT_MSVC_PATH=msvc2015
IF %MSVC_MAJOR_VERSION%==18 SET QT_MSVC_PATH=msvc2013
IF %MSVC_MAJOR_VERSION%==17 SET QT_MSVC_PATH=msvc2012
@@ -182,19 +195,15 @@ GOTO:EOF
IF NOT EXIST "%QTDIR%\..\%QT_MSVC_PATH%" GOTO err_handle_qt_mismatch
REM get Python version ex. 2.7.1 will get as 27
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print sys.version.split(' ')[0]"') DO SET PYTHON_MAJOR=%%G
FOR /f "tokens=2 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print sys.version.split(' ')[0]"') DO SET PYTHON_MINOR=%%G
FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MAJOR=%%G
FOR /f "tokens=2 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MINOR=%%G
SET "PYTHON_VERSION=%PYTHON_MAJOR%%PYTHON_MINOR%"
IF NOT EXIST "%PYTHON_HOME%\Scripts\virtualenv.exe" GOTO err_handle_pythonvirtualenv
SET REQUIRMENTTXT=""
IF "%PYTHON_MAJOR%"=="2" SET REQUIRMENTTXT=requirements_py2.txt
IF "%PYTHON_MAJOR%"=="3" SET REQUIRMENTTXT=requirements_py3.txt
IF %REQUIRMENTTXT% == "" GOTO err_handle_pythonversion
SET PATH=%PGDIR%;%PGDIR%\bin;%PATH%
goto:EXIT
GOTO:eof
:CREATE_VIRTUAL_ENV
ECHO Creating Virtual Enviroment...
@@ -209,80 +218,92 @@ goto:EXIT
SET PATH=%PGDIR%\bin;%PATH%
ECHO Installing dependencies...
pip install -r "%WD%\%REQUIRMENTTXT%"
pip install -r "%WD%\requirements.txt"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
pip install sphinx
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Virtual Enviroment created successfully.
ECHO Virtual Environment created successfully.
ECHO Deactivating Virtual Enviroment - %PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate...
CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\deactivate"
CD %WD%
GOTO:EOF
GOTO:eof
:CREATE_RUNTIME_ENV
ECHO Compiling source code...
MKDIR "%PGBUILDPATH%\runtime" > nul
REM --- Processing WEB ---
CD "%WD%"
CD web
CD "%WD%\web"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Install Javascript dependencies
call yarn install
ECHO Bundle all Javascript
call yarn run bundle
XCOPY /S /I /E /H /Y "%WD%\web" "%PGBUILDPATH%\web" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
REM Clean up .pyc, .pyo, pgadmin4.db, config_local.py
ECHO Cleaning up unnecessary files...
FOR /R "%PGBUILDPATH%\web" %%f in (*.pyc *.pyo) do DEL /q "%%f"
FOR /R "%PGBUILDPATH%\web" %%f in (tests feature_tests __pycache__ node_modules) do RD /Q /S "%%f"
RD /Q /S "%PGBUILDPATH%\web\regression"
RD /Q /S "%PGBUILDPATH%\web\tools"
DEL /q "%PGBUILDPATH%\web\pgadmin4.db"
DEL /q "%PGBUILDPATH%\web\config_local.py"
ECHO Creating config_distro.py
ECHO SERVER_MODE = False > "%PGBUILDPATH%\web\config_distro.py"
ECHO HELP_PATH = '../../../docs/en_US/html/' >> "%PGBUILDPATH%\web\config_distro.py"
ECHO MINIFY_HTML = False >> "%PGBUILDPATH%\web\config_distro.py"
ECHO DEFAULT_BINARY_PATHS = { >> "%PGBUILDPATH%\web\config_distro.py"
ECHO 'pg': '$DIR/../runtime', >> "%PGBUILDPATH%\web\config_distro.py"
ECHO 'ppas': '' >> "%PGBUILDPATH%\web\config_distro.py"
ECHO } >> "%PGBUILDPATH%\web\config_distro.py"
ECHO Creating config_local.py
ECHO # Add any configuration changes to this file. > "%PGBUILDPATH%\web\config_local.py"
ECHO Activating Virtual Enviroment - %PGBUILDPATH%\%VIRTUALENV%\Scripts\activate...
CALL "%PGBUILDPATH%\%VIRTUALENV%\Scripts\activate"
ECHO Building docs...
MKDIR "%PGBUILDPATH%\docs\en_US\html"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CD "%WD%\docs\en_US"
"%PGBUILDPATH%\%VIRTUALENV%\Scripts\python.exe" build_code_snippet.py
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
"%PGBUILDPATH%\%VIRTUALENV%\Scripts\sphinx-build.exe" "%WD%\docs\en_US" "%PGBUILDPATH%\docs\en_US\html"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Removing Sphinx
pip uninstall -y sphinx
pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer
ECHO Fixing backports.csv - adding missing __init__.py
type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py"
ECHO Assembling runtime environment...
CD "%WD%"
CD runtime
CD "%WD%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call "%VCVAR%" %ARCHITECTURE%
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Calling - call "%VCVAR%" %ARCHITECTURE%
call "%QMAKE%"
CALL "%VCVAR%" %ARCHITECTURE%
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call "%VCNMAKE%" clean
CALL "%QMAKE%"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
call "%VCNMAKE%"
CALL "%VCNMAKE%" clean
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
CALL "%VCNMAKE%"
IF ERRORLEVEL 1 GOTO ERR_HANDLER
REM Copy binary to Release Folder
copy "%WD%\runtime\release\pgAdmin4.exe" "%PGBUILDPATH%\runtime"
IF ERRORLEVEL 1 GOTO ERR_HANDLER
REM Copy QTP dependences
copy "%QTDIR%\bin\icudt54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuin54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuuc54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
REM Copy QT dependences
copy "%QTDIR%\bin\Qt5Core.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Sql.dll" "%PGBUILDPATH%\runtime"
@@ -299,8 +320,6 @@ GOTO:EOF
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Widgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebKit.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Network.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5Multimedia.dll" "%PGBUILDPATH%\runtime"
@@ -311,10 +330,68 @@ GOTO:EOF
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5PrintSupport.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebKitWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5MultimediaWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
REM Install the appropriate browser components. We use QtWebEngine with Qt 5.5+
IF %QT_VERSION% GEQ 5.7 (
copy "%QTDIR%\bin\Qt5QuickWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
)
IF %QT_VERSION% GEQ 5.7 (
copy "%QTDIR%\resources\icudtl.dat" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\resources\qtwebengine_resources.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\resources\qtwebengine_devtools_resources.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\resources\qtwebengine_resources_100p.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\resources\qtwebengine_resources_200p.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngine.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngineCore.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngineWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\QtWebEngineProcess.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\opengl32sw.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
) ELSE (
IF %QT_VERSION% GEQ 5.5 (
copy "%QTDIR%\bin\icudt54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuin54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\icuuc54.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\icudtl.dat" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\qtwebengine_resources.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\qtwebengine_resources_100p.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\qtwebengine_resources_200p.pak" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngine.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngineCore.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebEngineWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\QtWebEngineProcess.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
) ELSE (
copy "%QTDIR%\bin\Qt5WebKit.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%QTDIR%\bin\Qt5WebKitWidgets.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
)
)
MKDIR "%PGBUILDPATH%\runtime\platforms"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
@@ -333,6 +410,16 @@ GOTO:EOF
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\libiconv-*.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\zlib1.dll" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_dump.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_dumpall.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\pg_restore.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
copy "%PGDIR%\bin\psql.exe" "%PGBUILDPATH%\runtime"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
MKDIR "%PGBUILDPATH%\installer"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
@@ -342,7 +429,7 @@ GOTO:EOF
ECHO Runtime built successfully.
CD %WD%
GOTO:EOF
GOTO:eof
:CREATE_PYTHON_ENV
copy %PYTHON_DLL% "%PGBUILDPATH%\runtime" > nul
@@ -359,8 +446,13 @@ GOTO:EOF
XCOPY /S /I /E /H /Y "%PYTHON_HOME%\Lib" "%PGBUILDPATH%\%VIRTUALENV%\Lib" > nul
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
ECHO Cleaning up unnecessary files...
FOR /R "%PGBUILDPATH%\%VIRTUALENV%" %%f in (*.pyc *.pyo) do DEL /q "%%f"
FOR /R "%PGBUILDPATH%\%VIRTUALENV%\Lib" %%f in (test tests) do RD /Q /S "%%f"
RD /Q /S "%PGBUILDPATH%\%VIRTUALENV%\tcl"
CD %WD%
GOTO:EOF
GOTO:eof
:CREATE_INSTALLER
ECHO Preparing for creation of windows installer...
@@ -398,24 +490,37 @@ GOTO:EOF
ECHO Installer generated successfully.
CD %WD%
GOTO:EOF
GOTO:eof
:SIGN_INSTALLER
ECHO Attempting to sign the installer...
signtool sign /t http://timestamp.verisign.com/scripts/timstamp.dll "%TARGETINSTALLER%\%INSTALLERNAME%"
IF %ERRORLEVEL% NEQ 0 (
ECHO
ECHO ************************************************************
ECHO * Failed to sign the installer
ECHO ************************************************************
SLEEP 5
)
CD %WD%
GOTO:eof
:CLEANUP_ENV
ECHO Cleaning up private environment...
rd "%PGBUILDPATH%\%VIRTUALENV%\Include" /S /Q
rd "%PGBUILDPATH%\%VIRTUALENV%\Scripts" /S /Q
DEL /s "%PGBUILDPATH%\%VIRTUALENV%\pip-selfcheck.json"
ECHO Cleaned up private environment successfully.
CD %WD%
GOTO:EOF
GOTO:eof
:err_handle_inno
ECHO %INNOTOOL% does not exist
ECHO Please Install Innotool and SET INNOTOOL enviroment Variable.
ECHO SET "INNOTOOL=<PATH>"
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_visualstudio
ECHO %VCDIR% does not exist, or
@@ -426,14 +531,14 @@ goto EXIT
ECHO SET "VCVAR%=<PATH>"
ECHO SET "VCNMAKE%=<PATH>"
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_visualstudio_dist
ECHO %VCREDIST% does not exist
ECHO Please Install Microsoft Visual studio and SET the VCDIST enviroment Variable.
ECHO SET "VCDIST%=<PATH>"
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_python
@@ -445,14 +550,14 @@ goto EXIT
ECHO SET "PYTHON_HOME=<PATH>"
ECHO SET "PYTHON_DLL=<PATH>"
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_qt
ECHO %QTDIR% does not exist.
ECHO Please Install QT SDK and SET the QTDIR enviroment variable.
ECHO SET "QTDIR=<PATH>"
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_qt_mismatch
ECHO %QTDIR%\..\%QT_MSVC_PATH%" does not match with your current Visual Studio, version %QT_MSVC_PATH%
@@ -460,46 +565,40 @@ goto EXIT
ECHO Please use a valid QT installation with a folder %QT_MSVC_PATH%. You can use the Qt Maintenance
ECHO Tool to add or remove compiler kits.
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_qt_compactissue
ECHO %QTDIR%" does support the current architecture selected %ARCHITECTURE%
ECHO Please use a valid QT installation with a folder %QT_MSVC_PATH%. You can use the Qt Maintenance
ECHO Tool to add or remove compiler kits.
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_pg
ECHO %PGDIR% does not exist.
ECHO Please Install Postgres and SET enviroment Variable
ECHO SET "PGDIR=<PATH>"
exit /B 1
goto EXIT
:err_handle_pythonversion
ECHO Python version supported Above 2.6, 2.xx and 3.xx only
exit /B 1
goto EXIT
GOTO EXIT
:err_handle_pythonvirtualenv
ECHO Python virtualenv is missing @ location - %PYTHON_HOME%\Scripts\virtualenv.exe
exit /B 1
goto EXIT
GOTO EXIT
:ERR_HANDLER
ECHO.
ECHO Aborting build!
CD %WD%
exit /B 1
GOTO:EOF
GOTO EXIT
:USAGE
ECHO Invalid command line options....
ECHO Usage: "Make.bat <x86 | amd64 | clean>"
ECHO.
exit /B 1
GOTO EXIT
GOTO EXIT
:EXIT
endlocal
exit /B 0
+63 -18
View File
@@ -2,7 +2,7 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2016, The pgAdmin Development Team
# Copyright (C) 2013 - 2018, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
@@ -16,34 +16,79 @@ SHELL = /bin/sh
# Include only platform-independent builds in all
all: docs pip src
# Include all clean sub-targets in clean
clean: clean-dist clean-docs clean-pip clean-appbundle clean-src
pip: docs
./pkg/pip/build.sh
appbundle: docs
./pkg/mac/build.sh
src:
./pkg/src/build.sh
appbundle-webkit: docs
PGADMIN4_USE_WEBKIT=1 ./pkg/mac/build.sh
docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html
install-node:
cd web && yarn install
clean-pip:
rm -rf pip-build/
bundle:
cd web && yarn run bundle
bundle-dev:
cd web && yarn run bundle:dev
linter:
cd web && yarn run linter
check: install-node bundle linter
cd web && yarn run karma start -- --single-run && python regression/runtests.py
check-python:
cd web && python regression/runtests.py --exclude feature_tests
check-feature: install-node bundle
cd web && python regression/runtests.py --pkg feature_tests
check-js: install-node linter
cd web && yarn run karma start -- --single-run
# Include all clean sub-targets in clean
clean: clean-appbundle clean-docker clean-dist clean-docs clean-pip clean-src
clean-appbundle:
rm -rf mac-build/
clean-src:
rm -rf src-build/
clean-docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx clean
clean-docker:
rm -rf docker-build/
clean-dist:
rm -rf dist/
clean-docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx clean
clean-pip:
rm -rf pip-build/
clean-src:
rm -rf src-build/
docker:
./pkg/docker/build.sh
docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html
docs-pdf:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx latexpdf
msg-compile:
cd web && pybabel compile --statistics -d pgadmin/translations
msg-extract:
cd web && pybabel extract -F babel.cfg -o pgadmin/messages.pot pgadmin
msg-update:
cd web && pybabel update -i pgadmin/messages.pot -d pgadmin/translations
.PHONY: docs
pip: docs
./pkg/pip/build.sh
src:
./pkg/src/build.sh
+287 -24
View File
@@ -4,38 +4,43 @@ pgAdmin 4
pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the
PostgreSQL (http://www.postgresql.org) database.
At present, it is an experimental/proof of concept project. Use at your own
risk, and don't blame us if it breaks anything!
In the following documentation and examples, "$PGADMIN4_SRC/" is used to denote
the top-level directory of a copy of the pgAdmin source tree, either from a
tarball or a git checkout.
Architecture
------------
pgAdmin 4 is being written as a web application in Python, using jQuery and
Bootstrap for the client side processing and UI. On the server side, Flask is
being utilised.
pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap
for the client side processing and UI. On the server side, Flask is being
utilised.
Although developed using web technologies, we intend for pgAdmin 4 to be usable
either on a web server using a browser, or standalone on a workstation. The
runtime/ subdirectory contains a QT based runtime application intended to allow
this - it is essentially a browser and Python interpretor in one package which
will be capable of hosting the Python application and presenting it to the user
as a desktop application.
Although developed using web technologies, pgAdmin 4 can be deployed either on
a web server using a browser, or standalone on a workstation. The runtime/
subdirectory contains a QT based runtime application intended to allow this -
it is essentially a browser and Python interpreter in one package which is
capable of hosting the Python application and presenting it to the user as a
desktop application.
Building
--------
Building the Runtime
--------------------
To build the runtime, the following packages must be installed:
- QT 4.6 or above (older versions may work, but haven't been tested).
- Python 2.6 or above.
- QT 4.6 or above, up to 5.5 (older versions may work, but haven't been tested,
newer versions are not yet supported as Qt Webkit has been deprecated).
- Python 2.6, 2.7 or 3.3+
Assuming both qmake and python-config are in the path:
$ cd $PGADMIN4_SRC/runtime
$ qmake
Project MESSAGE: Building for QT5+...
$ make
...
$ cd $PGADMIN4_SRC/runtime
$ qmake
Project MESSAGE: Building for QT5+...
Project MESSAGE: Building for Linux/Mac...
Project MESSAGE: Using /usr/bin/python-config
Project MESSAGE: Python2 detected.
$ make
...
To build the runtime in debug mode, use the option below with qmake
$ qmake CONFIG+=debug
@@ -51,18 +56,276 @@ app bundle called pgAdmin4.app will be created.
To build the runtime on a Windows system, export PYTHON_HOME and PYTHON_VERSION
variables in the System environment. Specify the PYTHON_VERSION with the major
and minor number. Do not specify micro level version.
For example, given a Python version of A.B.C; A - Major number, B - Minor number,
C - Micro level (Bug fix releases).
If Python version is 2.7.2 than specify PYTHON_VERSION=27
For example, given a Python version of A.B.C; A - Major number, B - Minor
number, C - Micro level (Bug fix releases).
If Python version is 2.7.12 than specify PYTHON_VERSION=27
e.g. PYTHON_HOME=C:\Python27\
PYTHON_VERSION=27
You can also use Qt Creator to build, develop and debug the runtime. Simply
open the $PGADMIN4_SRC/runtime/pgAdmin4.pro project file in Qt Creator and
configure the project with a supported version of Qt when prompted.
Create Database Migrations
--------------------------
In order to make changes to the SQLite DB, navigate to the 'web' directory:
(pgadmin4) $ cd $PGADMIN4_SRC/web
Create a migration file with the following command:
(pgadmin4) $ FLASK_APP=pgAdmin4.py flask db revision
This will create a file in: $PGADMIN4_SRC/web/migrations/versions/ .
Add any changes to the 'upgrade' function.
There is no need to increment the SETTINGS_SCHEMA_VERSION.
Configuring the Python Environment
----------------------------------
In order to run the Python code, a suitable runtime environment is required.
Python versions - Python 2.6, 2.7 or 3.3+ are currently supported. It is
recommended that a Python Virtual Environment is setup for this purpose,
rather than using the system Python environment. On Linux and Mac systems, the
process is fairly simple - adapt as required for your distribution:
1) Install the virtualenv packages into the system Python environment
$ sudo pip install virtualenv virtualenvwrapper
2) Source the virtualenv wrapper tools script. You may want to add this command
to your ~/.bash_profile file for future convenience:
$ source /usr/local/bin/virtualenvwrapper.sh
3) Create a virtual environment:
$ mkvirtualenv pgadmin4
To make use of the virtual environment in the future, use the following
command to re-activate it:
$ workon pgadmin4
4) Ensure that a PostgreSQL installation's bin/ directory is in the path (so
pg_config can be found for building psycopg2), and install the required
packages:
(pgadmin4) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt
If you are planning to run the regression tests, you also need to install
additional requirements from web/regression/requirements.txt:
(pgadmin4) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt
5) Create a local configuration file for pgAdmin. Edit
$PGADMIN4_SRC/web/config_local.py and add any desired configuration options
(use the config.py file as a reference - any settings duplicated in
config_local.py will override those in config.py). A typical development
configuration may look like:
from config import *
# Debug mode
DEBUG = True
# App mode
SERVER_MODE = True
# Enable the test module
MODULE_BLACKLIST.remove('test')
# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG
DEFAULT_SERVER = '127.0.0.1'
UPGRADE_CHECK_ENABLED = True
# Use a different config DB for each server mode.
if SERVER_MODE == False:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-desktop.db'
)
else:
SQLITE_PATH = os.path.join(
DATA_DIR,
'pgadmin4-server.db'
)
This configuration allows easy switching between server and desktop modes
for testing.
6) The initial setup of the configuration database is interactive in server
mode, and non-interactive in desktop mode. You can run it either by
running:
(pgadmin4) $ python $PGADMIN4_SRC/web/setup.py
or by starting pgAdmin 4:
(pgadmin4) $ python $PGADMIN4_SRC/web/pgAdmin4.py
Whilst it is possible to automatically run setup in desktop mode by running
the runtime, that will not work in server mode as the runtime doesn't allow
command line interaction with the setup program.
At this point you will be able to run pgAdmin 4 from the command line in either
server or desktop mode, and access it from a web browser using the URL shown in
the terminal once pgAdmin has started up.
Setup of an environment on Windows is somewhat more complicated unfortunately,
largely due to the lack of a native compiler toolset. Thankfully, Microsoft
supply a free compiler specifically for Python 2.7 users. Download and install
it from:
https://www.microsoft.com/en-gb/download/details.aspx?id=44266
A blog detailing the setup of Virtual Environments on Windows can be found
here:
http://www.tylerbutler.com/2012/05/how-to-install-python-pip-and-virtualenv-on-windows-with-powershell/
Once a virtual environment has been created and enabled, setup can continue
from step 4 above.
Building the Web Assets
-----------------------
pgAdmin is dependent on a number of third party Javascript libraries. These,
along with it's own Javascript code, SCSS/CSS code and images must be
compiled into a "bundle" which is transferred to the browser for execution
and rendering. This is far more efficient than simply requesting each
asset as it's needed by the client.
To create the bundle, you will need the 'yarn' package management tool to be
installed. Then, you can run the following commands on a *nix system to
download the required packages and build the bundle:
(pgadmin4) $ cd $PGADMIN4_SRC
(pgadmin4) $ make node-install
(pgadmin4) $ make bundle
On Windows systems (where "make" is not available, the following commands
can be used:
C:\> cd $PGADMIN4_SRC\web
C:\$PGADMIN4_SRC\web> yarn install
C:\$PGADMIN4_SRC\web> yarn run bundle
Configuring the Runtime
-----------------------
The pgAdmin 4 Runtime maintains it's own Python Path to avoid conflicts with
packages or other issues in the system Python installation. It will also search
a number of known locations for the pgAdmin4.py file needed to run pgAdmin
(including relative locations in a source code tree), however you can specify
an alternate path if needed.
If either a working environment or pgAdmin4.py cannot be found at startup, the
runtime will prompt for the locations. Alternatively, you can use Alt+Shift+P
to open the path configuration dialogue.
On a Linux/Mac system, the Python Path will typically consist of a single path
to the virtual environment's site-packages directory, e.g.
/Users/<USERNAME>/.virtualenvs/pgadmin4/lib/python2.7/site-packages
On Windows, multiple paths are likely to be required, e.g.
C:\Users\dpage\.virtualenvs\pgadmin4\Lib\site-packages;C:\Users\dpage\.virtualenvs\pgadmin4\Lib;C:\Users\dpage\.virtualenvs\pgadmin4\Lib\lib-tk;C:\Users\dpage\.virtualenvs\pgadmin4\DLLs
If you wish to specify a specific copy of the Python code to run, you can set
the Application Path to a directory containing pgAdmin4.py, e.g.
/Users/<USERNAME>/git/pgadmin4-test/web/
Building the documentation
--------------------------
In order to build the docs, an additional Python package is required in the
virtual environment. This can be installed with the pip package manager:
$ workon pgadmin4
(pgadmin4) $ pip install Sphinx
The docs can then be built using the Makefile in $PGADMIN4_SRC, e.g.
(pgadmin4) $ make docs
The output can be found in $PGADMIN4_SRC/docs/en_US/_build/html/index.html
Building packages
-----------------
Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all
the setup and configuration above has been completed.
To build a source tarball:
(pgadmin4) $ make src
To build a PIP Wheel, activate either a Python 2 or Python 3 virtual
environment as desired, configured with all the required packages, and then
run:
(pgadmin4) $ make pip
On a Mac, build an application bundle in a disk image (DMG file) with:
(pgadmin4) $ make appbundle
Configure the framework.conf to match the QT and Python versions the app is
being built with:
$ cp $PGADMIN4_SRC/pkg/mac/framework.conf.in $PGADMIN4_SRC/pkg/mac/framework.conf
$ vi $PGADMIN4_SRC/pkg/mac/framework.conf
If you have an Apple code signing certificate, both the app bundle and disk
image can be automatically signed by configuring signing:
$ cp $PGADMIN4_SRC/pkg/mac/codesign.conf.in $PGADMIN4_SRC/pkg/mac/codesign.conf
$ vi $PGADMIN4_SRC/pkg/mac/codesign.conf
Edit the file as appropriate, ensuring the various version numbers are correct
and that the appropriate developer ID is specified.
On Windows, the InnoSetup tool is required to create an installer. Download the
Unicode version from:
http://www.jrsoftware.org/isdl.php
A number of environment variables may need to be set to enable the build script
to function. The defaults will usually work on a typical 64 bit system with
Qt 5.5.1, Python 2.7 and Visual Studio 2013. The examples below are for a
similar 32 bit system:
INNOTOOL=C:\Program Files\Inno Setup 5
PGDIR=C:\Program Files\PostgreSQL\9.6
PYTHON_DLL=C:\Windows\System32\Python27.dll
PYTHON_HOME=C:\Python27
PYTHON_VERSION=27
QTDIR=C:\Qt\5.5\msvc2013
VCDIR=C:\Program Files\Microsoft Visual Studio 12.0\VC
To build the installer:
C:\$PGADMIN4_SRC> make x86
If you have a code signing certificate, this will automatically be used if
found in the Windows Certificate Store to sign the installer.
Support
-------
pgAdmin 4 is completely experiemental and unsupported!
See https://www.pgadmin.org/support/ for support options.
Project info
------------
-47
View File
@@ -1,47 +0,0 @@
TODO Items
==========
NOTE: If you intend to work on any of these items, please let the development
team know by emailing pgadmin-hackers@postgresql.org.=
Foreign Table Module
--------------------
New functionality added in PG 9.5 for this module as below:
- ALTER [ COLUMN ] col_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
- DISABLE TRIGGER [ trigger_name | ALL | USER ]
- ENABLE TRIGGER [ trigger_name | ALL | USER ]
- ENABLE REPLICA TRIGGER trigger_name
- ENABLE ALWAYS TRIGGER trigger_name
- SET WITH OIDS
- SET WITHOUT OIDS
To add this functionality we need to add Columns, Triggers and Constraints as
separate Nodes under the Foreign Table Node.
Query Tool updateable recordset support
---------------------------------------
Add smarts to the Query Tool to allow it to recognise if a query produces a
data set that would be updateable (e.g. from a single table, all primary key
columns present), and if so, allow editing.
Backup Object
-------------
Allow to select/deselect objects under the object backup operation.
Restore Object
-------------
List down the objects within the backup file, and allow the user to
select/deselect the only objects, which user may want to restore.
Graphical Explain
-----------------
* A better zooming/scaling functionality. A minimap for the explain will be
very nice.
* Explanation on the statistic for the graphical explain plan.
* Arrow colouring based on the percentage of the cost, and time taken on each
explain node.
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
echo "EXECUTING: Build docs"
echo
cd $WORKSPACE
. $WORKSPACE/pgadmin-venv/bin/activate
SPHINX_VER=""
if [ "$PYTHON_VERSION" = "2.6" -o "$PYTHON_VERSION" = "3.3" ]; then
SPHINX_VER="==1.4.9"
fi
$WORKSPACE/pgadmin-venv/bin/pip install Sphinx$SPHINX_VER || { echo 'ERROR: Failed to install Sphinx to build the docs.' ; exit 1; }
make docs || { echo 'ERROR: Failed to build the documentation.' ; exit 1; }
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
echo "EXECUTING: Build PIP wheel"
echo
cd $WORKSPACE
. $WORKSPACE/pgadmin-venv/bin/activate
SPHINX_VER=""
if [ "$PYTHON_VERSION" = "2.6" -o "$PYTHON_VERSION" = "3.3" ]; then
SPHINX_VER="==1.4.9"
fi
$WORKSPACE/pgadmin-venv/bin/pip install Sphinx$SPHINX_VER || { echo 'ERROR: Failed to install Sphinx to build the PIP wheel.' ; exit 1; }
make pip || { echo 'ERROR: Failed to build the PIP wheel.' ; exit 1; }
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
echo "EXECUTING: Build runtime - QT4"
echo
cd $WORKSPACE/runtime
make clean
PATH=/usr/local/python-$PYTHON_VERSION/bin:$PATH /bin/qmake-qt4 || { echo 'ERROR: Failed to run the QT4 qmake step.' ; exit 1; }
make all || { echo 'ERROR: Failed to build the QT4 runtime.' ; exit 1; }
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
echo "EXECUTING: Build runtime - QT5"
echo
cd $WORKSPACE/runtime
make clean
PATH=/usr/local/python-$PYTHON_VERSION/bin:$PATH /bin/qmake-qt5 DEFINES+=PGADMIN4_USE_WEBKIT || { echo 'ERROR: Failed to run the QT5 qmake step.' ; exit 1; }
make all || { echo 'ERROR: Failed to build the QT4 runtime.' ; exit 1; }
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
echo "EXECUTING: Build Tarballs"
echo
cd $WORKSPACE
. $WORKSPACE/pgadmin-venv/bin/activate
SPHINX_VER=""
if [ "$PYTHON_VERSION" = "2.6" -o "$PYTHON_VERSION" = "3.3" ]; then
SPHINX_VER="==1.4.9"
fi
$WORKSPACE/pgadmin-venv/bin/pip install Sphinx$SPHINX_VER || { echo 'ERROR: Failed to install Sphinx to build the tarballs.' ; exit 1; }
cd $WORKSPACE/
make src || { echo 'ERROR: Failed to build the tarballs.' ; exit 1; }
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
$WORKSPACE/ci/create_config.sh || { echo 'ERROR: Failed to create the configuration.' ; exit 1; }
$WORKSPACE/ci/run_python_tests.sh || { echo 'ERROR: Error detected when running the Python tests.' ; exit 1; }
$WORKSPACE/ci/run_jasmine_tests.sh || { echo 'ERROR: Error detected when running the Jasmine tests.' ; exit 1; }
$WORKSPACE/ci/build_docs.sh || { echo 'ERROR: Failed to build the documentation.' ; exit 1; }
$WORKSPACE/ci/build_runtime_qt4.sh || { echo 'ERROR: Failed to build the QT4 runtime.' ; exit 1; }
$WORKSPACE/ci/build_runtime_qt5.sh || { echo 'ERROR: Failed to build the QT5 runtime.' ; exit 1; }
$WORKSPACE/ci/update_messages.sh || { echo 'ERROR: Failed to update translation message catalogs.' ; exit 1; }
$WORKSPACE/ci/build_pip_wheel.sh || { echo 'ERROR: Failed to build the PIP wheel.' ; exit 1; }
$WORKSPACE/ci/build_tarballs.sh || { echo 'ERROR: Failed to build the tarballs.' ; exit 1; }
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
echo "EXECUTING: Create pgAdmin config"
echo
cd $WORKSPACE
cp $JENKINS_HOME/pgadmin-configs/config_local.py $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
echo LOG_FILE = \"$WORKSPACE/var/pgadmin4.log\" >> $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
echo SESSION_DB_PATH = \"$WORKSPACE/var/sessions\" >> $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
echo STORAGE_DIR = \"$WORKSPACE/var/storage\" >> $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
echo SQLITE_PATH = \"$WORKSPACE/var/pgadmin4.db\" >> $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
echo TEST_SQLITE_PATH = \"$WORKSPACE/var/pgadmin4.db\" >> $WORKSPACE/web/config_local.py || { echo 'ERROR: Failed to create config_local.py.' ; exit 1; }
cp $JENKINS_HOME/pgadmin-configs/test_config.json $WORKSPACE/web/regression/test_config.json || { echo 'ERROR: Failed to copy the test configuration.' ; exit 1; }
+49
View File
@@ -0,0 +1,49 @@
#!/bin/sh
echo "EXECUTING: Feature tests"
echo
echo "Starting virtual frame buffer..."
echo
Xvfb -ac :99 -screen 0 1280x1024x16 &
FB_PID=$!
export DISPLAY=:99
echo "Creating Python ${PYTHON_VERSION} virtual environment..."
echo
cd $WORKSPACE/
PYTHON_SUFFIX=""
if [[ "$PYTHON_VERSION" == 3* ]]; then
PYTHON_SUFFIX="3"
fi
if [ "$PYTHON_VERSION" == 2.6 -o "$PYTHON_VERSION" == 3.3 ]; then
/usr/bin/virtualenv --no-wheel -p /usr/local/python-$PYTHON_VERSION/bin/python$PYTHON_SUFFIX $WORKSPACE/pgadmin-venv || { echo 'ERROR: Failed to create the Python virtual environment.' ; exit 1; }
. $WORKSPACE/pgadmin-venv/bin/activate || { echo 'ERROR: Failed to activate the Python virtual environment.' ; exit 1; }
$WORKSPACE/pgadmin-venv/bin/pip install wheel==0.29.0 || { echo 'ERROR: Failed to install wheel 0.29.0.' ; exit 1; }
else
/usr/bin/virtualenv -p /usr/local/python-$PYTHON_VERSION/bin/python$PYTHON_SUFFIX $WORKSPACE/pgadmin-venv || { echo 'ERROR: Failed to create the Python virtual environment.' ; exit 1; }
. $WORKSPACE/pgadmin-venv/bin/activate || { echo 'ERROR: Failed to activate the Python virtual environment.' ; exit 1; }
fi
$WORKSPACE/pgadmin-venv/bin/pip install -r requirements.txt || { echo 'ERROR: Failed to install the application requirements.' ; exit 1; }
$WORKSPACE/pgadmin-venv/bin/pip install -r web/regression/requirements.txt || { echo 'ERROR: Failed to install the regression test requirements.' ; exit 1; }
cd web
/usr/bin/yarn install || { echo 'ERROR: Failed to install the required Javascript modules.' ; exit 1; }
/usr/bin/yarn run bundle || { echo 'ERROR: Failed to bundle the Javascript code.' ; exit 1; }
cd ../
echo "Running regression tests..."
echo
$WORKSPACE/pgadmin-venv/bin/python $WORKSPACE/web/regression/runtests.py --pkg feature_tests || { echo 'ERROR: Error detected when running the Feature tests.' ; exit 1; }
echo "Cleaning up..."
echo
kill $FB_PID
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
echo "EXECUTING: Jasmine tests"
echo
cd $WORKSPACE/web/
/usr/bin/yarn install || { echo 'ERROR: Failed to install the required Javascript modules.' ; exit 1; }
/usr/bin/yarn run linter || { echo 'ERROR: Failed to lint the Javascript code.' ; exit 1; }
./node_modules/.bin/karma start --single-run || { echo 'ERROR: Error detected when running the Jasmine tests.' ; exit 1; }
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
echo "EXECUTING: Python tests"
echo
echo "Creating Python ${PYTHON_VERSION} virtual environment..."
echo
cd $WORKSPACE/
PYTHON_SUFFIX=""
if [[ "$PYTHON_VERSION" == 3* ]]; then
PYTHON_SUFFIX="3"
fi
if [ "$PYTHON_VERSION" == 2.6 -o "$PYTHON_VERSION" == 3.3 ]; then
/usr/bin/virtualenv --no-wheel -p /usr/local/python-$PYTHON_VERSION/bin/python$PYTHON_SUFFIX $WORKSPACE/pgadmin-venv || { echo 'ERROR: Failed to create the Python virtual environment.' ; exit 1; }
. $WORKSPACE/pgadmin-venv/bin/activate || { echo 'ERROR: Failed to activate the Python virtual environment.' ; exit 1; }
$WORKSPACE/pgadmin-venv/bin/pip install wheel==0.29.0 || { echo 'ERROR: Failed to install wheel 0.29.0.' ; exit 1; }
else
/usr/bin/virtualenv -p /usr/local/python-$PYTHON_VERSION/bin/python$PYTHON_SUFFIX $WORKSPACE/pgadmin-venv || { echo 'ERROR: Failed to create the Python virtual environment.' ; exit 1; }
. $WORKSPACE/pgadmin-venv/bin/activate || { echo 'ERROR: Failed to activate the Python virtual environment.' ; exit 1; }
fi
$WORKSPACE/pgadmin-venv/bin/pip install -r requirements.txt || { echo 'ERROR: Failed to install the application requirements.' ; exit 1; }
$WORKSPACE/pgadmin-venv/bin/pip install -r web/regression/requirements.txt || { echo 'ERROR: Failed to install the regression test requirements.' ; exit 1; }
echo "Running regression tests..."
echo
$WORKSPACE/pgadmin-venv/bin/python $WORKSPACE/web/regression/runtests.py --exclude feature_tests || { echo 'ERROR: Error detected when running the Python tests.' ; exit 1; }
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
echo "EXECUTING: Compile messages"
echo
cd $WORKSPACE/web
. $WORKSPACE/pgadmin-venv/bin/activate || { echo 'ERROR: Failed to activate the Python virtual environment.' ; exit 1; }
pybabel extract -F babel.cfg -o pgadmin/messages.pot pgadmin || { echo 'ERROR: Failed to extract messages from the source code.' ; exit 1; }
pybabel update -i pgadmin/messages.pot -d pgadmin/translations || { echo 'ERROR: Failed to update message catalogs from the template.' ; exit 1; }
pybabel compile -d pgadmin/translations || { echo 'ERROR: Failed to compile the message catalogs.' ; exit 1; }
+3 -2
View File
@@ -2,8 +2,9 @@
#
# You can set these variables from the command line.
PYTHON = python
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXBUILD = sphinx-build -W
PAPER =
BUILDDIR = _build
@@ -18,7 +19,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# development environment).
code_snippet:
@echo "Generating code-snippet.rst for some of the important classes..."
-@python build_code_snippet.py
-@$(PYTHON) build_code_snippet.py
help:
@echo "Please use \`make <target>' where <target> is one of"
+4 -4
View File
@@ -1,10 +1,10 @@
.. _backup_globals_dialog:
****************************
The Backup Globals... Dialog
****************************
*************************
The Backup Globals Dialog
*************************
Use the *Backup Globals...* dialog to create a plain-text script that recreates all of the database objects within a cluster, and the global objects that are shared by those databases. Global objects include tablespaces, roles, and object properties. You can use the pgAdmin *Query Tool* to play back a plain-text script, and recreate the objects in the backup.
Use the *Backup Globals* dialog to create a plain-text script that recreates all of the database objects within a cluster, and the global objects that are shared by those databases. Global objects include tablespaces, roles, and object properties. You can use the pgAdmin *Query Tool* to play back a plain-text script, and recreate the objects in the backup.
.. image:: images/backup_globals_general.png
+7 -6
View File
@@ -1,10 +1,10 @@
.. _backup_server_dialog:
****************************
The Backup Server... Dialog
****************************
*************************
The Backup Server Dialog
*************************
Use the *Backup Server...* dialog to create a plain-text script that will recreate the selected server. You can use the pgAdmin *Query Tool* to play back a plain-text script, and recreate the server.
Use the *Backup Server* dialog to create a plain-text script that will recreate the selected server. You can use the pgAdmin *Query Tool* to play back a plain-text script, and recreate the server.
.. image:: images/backup_server_general.png
@@ -24,5 +24,6 @@ Click the *Backup* button to build and execute a command based on your selection
If the backup is successful, a popup window will confirm success. Click *Click here for details* on the popup window to launch the *Process Watcher*. The *Process Watcher* logs all the activity associated with the backup and provides additional information for troubleshooting.
.. image:: images/backup_server_process_watcher.png
␍If the backup is unsuccessful, review the error message returned by the *Process Watcher* to resolve any issue.
.. image:: images/backup_server_process_watcher.png
If the backup is unsuccessful, review the error message returned by the *Process Watcher* to resolve any issue.
+3 -3
View File
@@ -19,14 +19,14 @@ Features of pgAdmin 4 include:
* helpful hints
* online help and information about using pgAdmin dialogs and tools.
When pgAdmin opens, the interface features a menu bar and a window divided into two panes: the *pgAdmin* tree control in the left pane, and the tabbed browser in the right pane.
When pgAdmin opens, the interface features a menu bar and a window divided into two panes: the *Browser* tree control in the left pane, and a tabbed browser in the right pane.
.. image:: images/pgadmin_welcome.png
Select an icon from the *Quick Links* panel on the *Dashboard* tab to:
* Open the :ref:`Create - Server dialog <server_dialog>` to add a new server definition.
* Open the :ref:`Preferences dialog <preferences>` to customize your pgAdmin client.
* Click the *Add New Server* button to open the :ref:`Create - Server dialog <server_dialog>` to add a new server definition.
* Click the *Configure pgAdmin* button to open the :ref:`Preferences dialog <preferences>` to customize your pgAdmin client.
Links in the *Getting Started* panel open a new browser tab that provide useful information for Postgres users:
+8
View File
@@ -2,6 +2,14 @@ import os
import sys
import inspect
if sys.version_info[0] >= 3:
import builtins
else:
import __builtin__ as builtins
# Ensure the global server mode is set.
builtins.SERVER_MODE = None
root = os.path.realpath(
os.path.dirname(
os.path.realpath(__file__)
+25
View File
@@ -0,0 +1,25 @@
.. _change_user_password:
***********************************
The Change User Password - pgAdmin4
***********************************
It is a good policy to routinely change your password to protect data, even in what you may consider a 'safe' environment. In the workplace, failure to apply an appropriate password policy could leave you in breach of Data Protection laws.
Please consider the following guidelines when selecting a password:
* Ensure that your password is an adequate length; 6 characters should be the absolute minimum number of characters in the password.
* Ensure that your password is not open to dictionary attacks. Use a mixture of upper and lower case letters and numerics, and avoid words or names. Consider using the first letter from each word in a phrase that you will remember easily but is an unfamiliar acronym.
* Ensure that your password is changed regularly; at minimum, change it every ninety days.
The above should be considered a starting point: It is not a comprehensive list and it **will not guarantee security**.
.. image:: images/change_user_password.png
Use the *Change Password* dialog to change your password:
* Enter your existing password in the *Current Password* field.
* Enter the desired password for in the *New Password* field.
* Re-enter the new password in the *Confirm Password* field.
Click the *Change Password* button to change your password; click *Close* to exit the dialog.
+2 -1
View File
@@ -12,7 +12,8 @@ The *Check* dialog organizes the development of a check constraint through the *
Use the fields in the *General* tab to identify the check constraint:
* Use the *Name* field to add a descriptive name for the check constraint. The name will be displayed in the *pgAdmin* tree control. With PostgreSQL 9.5 forward, when a table has multiple check constraints, they will be tested for each row in alphabetical order by name and after NOT NULL constraints.
* Use the *Name* field to provide a descriptive name for the check constraint that will be displayed in the *pgAdmin* tree control. With PostgreSQL 9.5 forward, when a table has multiple check constraints, they will be tested for each row in alphabetical order by name and after NOT NULL constraints.
* Store notes about the check constraint in the *Comment* field.
Click the *Definition* tab to continue.
+1 -1
View File
@@ -13,7 +13,7 @@ review process for any patches submitted for inclusion in pgAdmin.
bulk updates every year). The start date should always be 2013, and the end year
the current year, e.g.
Copyright (C) 2013 - 2016, The pgAdmin Development Team
Copyright (C) 2013 - 2018, The pgAdmin Development Team
* Ensure there's a blank line immediately following any copyright headers.
+1 -1
View File
@@ -167,7 +167,7 @@ with the required file header is shown below::
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2015, The pgAdmin Development Team
# Copyright (C) 2013 - 2018, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
+2 -2
View File
@@ -12,7 +12,7 @@ The *Collation* dialog organizes the development of a collation through the foll
Use the fields in the *General* tab to identify the collation:
* Use the *Name* field to add a name for the collation. The collation name must be unique within a schema. The name will be displayed in the *pgAdmin* tree control.
* Use the *Name* field to provide a name for the collation. The collation name must be unique within a schema. The name will be displayed in the *pgAdmin* tree control.
* Select the name of the owner from the drop-down listbox in the *Owner* field.
* Select the name of the schema in which the collation will reside from the drop-down listbox in the *Schema* field.
* Store notes about the collation in the *Comment* field.
@@ -39,7 +39,7 @@ The following is an example of the sql command generated by user selections in t
.. image:: images/collation_sql.png
The example shown demonstrates creating a collation named *french* that uses the rules specified for the locale, *fr_FR.utf8. The collation is owned by *enterprisedb*.
The example shown demonstrates creating a collation named *french* that uses the rules specified for the locale, *fr_FR.utf8. The collation is owned by *postgres*.
* Click the *Info* button (i) to access online help. View context-sensitive help in the *Tabbed browser*, where a new tab displays the PostgreSQL core documentation. For more information about setting a locale, see Chapter 22.1 Locale Support of the PostgreSQL core documentation:
+14 -13
View File
@@ -22,35 +22,36 @@ Click the *Definition* tab to continue.
Use the fields in the *Definition* tab to add parameters for the column. (Fields are disabled if inapplicable.)
* Use the drop-down listbox next to *Data Type* to select a data type for the column. For more information on the data types that are supported by PostgreSQL, refer to Chapter 8 of the Postgres core documentation. This field is required.
* Use the *Scale* field to specify scale of the value (the number of digits to the right of the decimal point).
* Use the *Length/Precision* field to specify the maximum number of significant digits in a numeric value, or the maximum number of characters in a text value.
* Use the *Length* and *Precision* fields to specify the maximum number of significant digits in a numeric value, or the maximum number of characters in a text value.
* Use the drop-down listbox next to *Collation* to apply a collation setting to the column.
* Use the *Default* field to specify a default data value.
* Check the *Not Null* checkbox to specify the column may not contain null values.
* 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*.
Click the *Security* tab to continue.
Click the *Variables* tab to continue.
.. image:: images/column_security.png
.. image:: images/column_variables.png
Use the *Security* tab to assign attributes and define security labels.
Use the *Variables* panel to specify the number of distinct values that may be present in the column; this value overrides estimates made by the ANALYZE command. Click *Add* to add an attribute:
Use the *Variables* tab to to specify the number of distinct values that may be present in the column; this value overrides estimates made by the ANALYZE command. Click the *Add* icon (+) to add a *Name*/*Value* pair:
* Select the name of the variable from the drop-down listbox in the *Name* field.
* Select *n_distinct* to specify the number of distinct values for the column.
* Select *n_distinct_inherited* to specify the number of distinct values for the table and its children.
* Specify the number of distinct values in the *Value* field. For more information, see the documentation for `ALTER TABLE <http://www.postgresql.org/docs/9.6/static/sql_altertable.html>`_.
* Specify the number of distinct values in the *Value* field. For more information, see the documentation for `ALTER TABLE <http://www.postgresql.org/docs/9.6/static/sql_altertable.html>`_.
To discard an attribute, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional *Name*/*Value* pair; to discard a variable, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Use the *Security Labels* panel to define security labels applied to the column. Click *Add* to add each security label selection:
Click the *Security* tab to continue.
.. image:: images/column_security.png
Use the *Security* tab to assign attributes and define security labels. Click the *Add* icon (+) to add each security label selection:
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click *Add* to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
+8
View File
@@ -13,6 +13,14 @@
import sys, os
if sys.version_info[0] >= 3:
import builtins
else:
import __builtin__ as builtins
# Ensure the global server mode is set.
builtins.SERVER_MODE = None
# Import the pgAdmin config
root = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, root + '/../../web/')
+3 -3
View File
@@ -1,8 +1,8 @@
.. _connect_error:
**************************
`Connection error`:index:
**************************
******************
`Connection error`
******************
When connecting to a PostgreSQL server, you may get an error message. If you encounter an error message, please review the message carefully; each error message attempts to incorporate the information you'll need to resolve the problem. For more details about specific errors, please locate the error message in the list below:
+16 -10
View File
@@ -4,21 +4,27 @@
Connecting to a Server
**********************
Before you can use the pgAdmin client to manage your Postgres installation, you must define a connection to the server.
Before you can use the pgAdmin client to manage the objects that reside on your Postgres server, you must define a connection to the server. You can (optionally) use the *Server Group* dialog to create server groups to organize the server connections within the tree control for easier management. To open the *Server Group* dialog, right-click on the *Servers* node of the tree control, and select *Server Group* from the *Create* menu.
Contents:
.. toctree::
server_group_dialog
Use the fields on the *Server* dialog to define the connection properties for each new server that you wish to manage with pgAdmin. To open the *Server* dialog, right-click on the *Servers* node of the tree control, and select *Server* from the *Create* menu.
Contents:
.. toctree::
server_dialog
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.
Contents:
.. toctree::
connect_to_server
connect_error
connect_error
+1 -1
View File
@@ -4,7 +4,7 @@
pgAdmin Project Contributions
*****************************
pgAdmin is an open-source project that invites you to get involved in the development process. For more information about contributing to the pgAdmin project, contact the developers on the pgAdmin mailing list <mailto:pgadmin-hackers@postgresql.org> to discuss any ideas you might have for enhancements or bug fixes.
pgAdmin is an open-source project that invites you to get involved in the development process. For more information about contributing to the pgAdmin project, contact the developers on the pgAdmin mailing list pgadmin-hackers@postgresql.org to discuss any ideas you might have for enhancements or bug fixes.
In the sections listed below, you'll find detailed information about the development process used to develop, improve, and maintain the pgAdmin client.
+7 -8
View File
@@ -4,7 +4,7 @@
The Database Dialog
*******************
Use the *Database* dialog to define a database. To create a database, you must be a database superuser or have the CREATE privilege.
Use the *Database* dialog to define or modify a database. To create a database, you must be a database superuser or have the CREATE privilege.
The *Database* dialog organizes the development of a database through the following dialog tabs: *General*, *Definition*, *Security*, and *Parameters*. The *SQL* tab displays the SQL code generated by dialog selections.
@@ -35,7 +35,7 @@ Click the *Security* tab to continue.
Use the *Security* tab to assign privileges and define security labels.
Use the *Privileges* panel to assign privileges to a role. Click *Add* to set privileges for database objects:
Use the *Privileges* panel to assign privileges to a role. Click the *Add* icon (+) to set privileges for database objects:
* Select the name of the role from the drop-down listbox in the *Grantee* field.
* Click inside the *Privileges* field. Check the boxes to the left of one or more privileges to grant the selected privilege to the specified user.
@@ -43,7 +43,7 @@ Use the *Privileges* panel to assign privileges to a role. Click *Add* to set pr
Click add to set additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Use the *Security Labels* panel to define security labels applied to the database. Click *Add* to add each security label selection:
Use the *Security Labels* panel to define security labels applied to the database. Click the *Add* icon (+) to add each security label selection:
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
@@ -54,12 +54,11 @@ Click the *Parameters* tab to continue.
.. image:: images/database_parameters.png
Use the *Parameters* tab to set parameters for the database:
Use the *Parameters* tab to set parameters for the database. Click the *Add* icon (+) to add each parameter:
* Use the drop-down listbox next to *Parameter name* to select a parameter.
* Use the drop-down listbox next to *Role* to select a role to which the parameter setting specified will apply.
* Click *Add* to add the parameter definition to the table below.
* Use the drop-down listbox in the *Name* field to select a parameter.
* Use the *Value* field to set a value for the parameter.
* Use the drop-down listbox next to *Role* to select a role to which the parameter setting specified will apply.
Follow these steps to add additional parameter value definitions; to discard a parameter, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
@@ -73,7 +72,7 @@ The following is an example of the sql command generated by user selections in t
.. image:: images/database_sql.png
The example creates a database named *hr* that is owned by *enterprisedb*. It allows unlimited connections, and is available to all authenticated users.
The example creates a database named *hr* that is owned by *postgres*. It allows unlimited connections, and is available to all authenticated users.
* Click the *Info* button (i) to access online help. View context-sensitive help in the *Tabbed browser*, where a new tab displays the PostgreSQL core documentation.
* Click the *Save* button to save work.
+3 -3
View File
@@ -1,8 +1,8 @@
.. _debugger:
*************************
`pgAdmin Debugger`:index:
*************************
******************
`pgAdmin Debugger`
******************
.. image:: images/debug_main.png
+41 -23
View File
@@ -16,32 +16,31 @@ packages and users interested in understanding how pgAdmin works.**
Configuration
*************
In order to configure pgAdmin to run in desktop mode, it is first necessary to
configure the Python code to run in single-user mode, and then to configure the
runtime to find and execute the code.
From pgAdmin 4 v2 onwards, the default configuration mode is server, however,
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.
Python
------
There are multiple configuration files that are read at startup by pgAdmin. These
are as follows:
In order to configure the Python code, follow these steps:
* ``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.
1. Ensure that any existing configuration database (``pgadmin4.db``) is moved
out of the way in the ``web/`` directory containing the pgAdmin Python code.
* ``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.
2. Create a ``config_local.py`` file alongside the existing ``config.py`` file.
* ``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.
3. Edit ``config_local.py`` and add the following setting:
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.
.. code-block:: python
SERVER_MODE = False
4. Run the following command to create the configuration database:
.. code-block:: bash
$ python setup.py
Runtime
-------
@@ -55,6 +54,25 @@ semi-colon character, for example:
/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/;/Users/dpage/python-libs/
The configuration settings are stored using the QSettings class in Qt, which
will use an INI file on Unix systems, a plist file on Mac OS X, and the registry
on Windows. The Python Path setting is stored in the ``PythonPath`` key.
The configuration settings are stored using the QSettings class in Qt, which
will use an INI file on Unix systems (~/.config/pgadmin/pgadmin4.conf),
a plist file on Mac OS X (~/Library/Preferences/org.pgadmin.pgadmin4.plist),
and the registry on Windows (HKEY_CURRENT_USER\\Software\\pgadmin\\pgadmin4).
The configuration settings:
+--------------------------+--------------------+---------------------------------------------------------------+
| Key | Type | Purpose |
+==========================+====================+===============================================================+
| ApplicationPath | String | The directory containing pgAdmin4.py |
+--------------------------+--------------------+---------------------------------------------------------------+
| ConnectionTimeout | Integer | The number of seconds to wait for application server startup. |
+--------------------------+--------------------+---------------------------------------------------------------+
| PythonPath | String | The Python module search path |
+--------------------------+--------------------+---------------------------------------------------------------+
| Browser/Geometry | Binary | The runtime window's size/shape |
+--------------------------+--------------------+---------------------------------------------------------------+
| Browser/WindowState | Binary | The runtime window's state |
+--------------------------+--------------------+---------------------------------------------------------------+
| Browser/Zoom | String | The runtime window's zoom level (zoom % / 100) |
+--------------------------+--------------------+---------------------------------------------------------------+
+1
View File
@@ -12,3 +12,4 @@ Contents:
debugger
query_tool
editgrid
+8 -8
View File
@@ -1,12 +1,12 @@
.. _domain_constraint_dialog:
****************************
The Domain Constraint Dialog
****************************
*****************************
The Domain Constraints Dialog
*****************************
Use the *Domain Constraint* dialog to create a domain constraint. A domain constraint confirms that the values provided for a domain meet a defined criteria. The *Domain Constraint* dialog implements options of the ALTER DOMAIN command.
Use the *Domain Constraints* dialog to create or modify a domain constraint. A domain constraint confirms that the values provided for a domain meet a defined criteria. The *Domain Constraints* dialog implements options of the ALTER DOMAIN command.
The *Domain Constraint* dialog organizes the development of a domain constraint through the following dialog tabs: *General* and *Definition*. The *SQL* tab displays the SQL code generated by dialog selections.
The *Domain Constraints* dialog organizes the development of a domain constraint through the following dialog tabs: *General* and *Definition*. The *SQL* tab displays the SQL code generated by dialog selections.
.. image:: images/domain_constraint_general.png
@@ -21,16 +21,16 @@ Click the *Definition* tab to continue.
Use the fields in the *Definition* tab to define the domain constraint:
* Use the *Check* field to write a CHECK expression. A CHECK clause specifies a constraint that the domain must satisfy. A constraint must be an expression producing a Boolean result; include the key word VALUE to refer to the value being tested. Only those expressions that evaluate to TRUE or UNKNOWN succeed. A CHECK expressions cannot contain subqueries or refer to variables other than VALUE. When a domain has multiple CHECK constraints, they will be tested in alphabetical order by name.
* Use the *Check* field to provide a CHECK expression. A CHECK expression specifies a constraint that the domain must satisfy. A constraint must produce a Boolean result; include the key word VALUE to refer to the value being tested. Only those expressions that evaluate to TRUE or UNKNOWN will succeed. A CHECK expression cannot contain subqueries or refer to variables other than VALUE. If a domain has multiple CHECK constraints, they will be tested in alphabetical order.
* Move the *Validate?* switch to the *No* position to mark the constraint NOT VALID. If the constraint is marked NOT VALID, the constraint will not be applied to existing column data. The default value is *Yes*.
Click the *SQL* tab to continue.
Your entries in the *Domain Constraint* 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.
Your entries in the *Domain Constraints* 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 *Domain Constraint* dialog:
The following is an example of the sql command generated by user selections in the *Domain Constraints* dialog:
.. image:: images/domain_constraint_sql.png
+7 -11
View File
@@ -13,8 +13,8 @@ The *Domain* dialog organizes the development of a domain through the following
Use the fields on the *General* tab to identify a domain:
* Use the *Name* field to add a descriptive name for the domain. The name will be displayed in the *pgAdmin* tree control.
* Use the drop-down listbox next to *Owner* to select a role.
* Select the name of the schema in which the collation will reside from the drop-down listbox in the *Schema* field.
* Use the drop-down listbox next to *Owner* to select a role that will own the domain.
* Select the name of the schema in which the domain will reside from the drop-down listbox in the *Schema* field.
* Store notes about the domain in the *Comment* field.
Click the *Definition* tab to continue.
@@ -34,30 +34,26 @@ Click the *Constraints* tab to continue.
.. image:: images/domain_constraints.png
Use the fields in the *Constraints* tab to specify rules for the domain. Click *Add* to set constraints:
Use the fields in the *Constraints* tab to specify rules for the domain. Click the *Add* icon (+) to set constraints:
* Use the *Name* field to specify a name for the constraint.
* Use the *Check* field to provide an expression for the constraint.
* Use the *Validate* checkbox to determine whether the constraint will be validated. The default checkbox is checked and sets a validation requirement.
CHECK clauses specify integrity constraints or tests which values of the domain must satisfy. Each constraint must be an expression producing a Boolean result. It should use the key word VALUE to refer to the value being tested. Expressions evaluating to TRUE or UNKNOWN succeed. If the expression produces a FALSE result, an error is reported and the value is not allowed to be converted to the domain type.
A CHECK clause specifies an integrity test which values of the domain must satisfy. Each constraint must be an expression that produces a Boolean result. Use the key word VALUE to refer to the value being tested. Expressions evaluating to TRUE or UNKNOWN succeed. If the expression produces a FALSE result, an error is reported and the value is not allowed to be converted to the domain type. A CHECK expression cannot contain subqueries nor refer to variables other than VALUE. If a domain has multiple CHECK constraints, they will be tested in alphabetical order by name.
CHECK expressions cannot contain subqueries nor refer to variables other than VALUE.
If a domain has multiple CHECK constraints, they will be tested in alphabetical order by name.
Click *Add* to set additional constraints; to discard a constraint, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to set additional constraints; to discard a constraint, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Security* tab to continue.
.. image:: images/domain_security.png
Use the *Security Labels* panel to assign security labels. Click *Add* to add a label:
Use the *Security Labels* panel to assign security labels. Click the *Add* icon (+) to add a label:
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click *Add* to specify each additional label; to discard a label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional label; to discard a label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
+98
View File
@@ -0,0 +1,98 @@
.. _editgrid:
***********************************
`Reviewing and Editing Data`:index:
***********************************
To review or modify data, right click on a table or view name in the *Browser* tree control. When the context menu opens, use the *View/Edit Data* menu to specify the number of rows you would like to display in the editor panel.
.. image:: images/editgrid.png
To modify the content of a table, each row in the table must be uniquely identifiable. If the table definition does not include an OID or a primary key, the displayed data is read only. Note that views cannot be edited; updatable views (using rules) are not supported.
The editor features a toolbar that allows quick access to frequently used options, and a work environment divided into two panels:
* The upper panel displays the SQL command that was used to select the content displayed in the lower panel.
* The lower panel (the Data Grid) displays the data selected from the table or view.
**The View/Edit Data Toolbar**
The toolbar includes context-sensitive icons that provide shortcuts to frequently performed tasks.
.. image:: images/editgrid_toolbar.png
Hover over an icon to display a tooltip that describes the icon's functionality.
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| Icon | Behavior | Shortcut |
+======================+===================================================================================================+=============+
| *Save* | Use the *Save* icon to save your changes to the currently displayed table contents. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Find* | Use options on the *Find* menu to access Search and Replace functionality or to Jump to another | Ctrl/Cmd +F |
| | line. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Copy* | Click the *Copy* icon to copy the currently selected data. | Ctrl+C |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Paste Row* | Click the *Paste Row* icon to paste the content that is currently on the clipboard. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Delete Row* | Use the *Delete Row* icon to add a new row in the output panel. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Filter* | Click the *Filter* icon to open a dialog that allows you to write and apply a filter for the | |
| | content currently displayed in the output panel. Click the down arrow to open the *Filter* drop- | |
| | down menu and select from pre-defined options: | |
| | | |
| | Use options on the *Filter* menu to quick-sort or quick-filter the data set: | |
| | | |
| | * Filter: This option opens a dialog that allows you to define a filter. A filter is a | |
| | condition that is supplied to an arbitrary WHERE clause that restricts the result set. | |
| | | |
| | * Remove Filter: This option removes all selection / exclusion filter conditions. | |
| | | |
| | * By Selection: This option refreshes the data set and displays only those rows whose | |
| | column value matches the value in the cell currently selected. | |
| | | |
| | * Exclude Selection: This option refreshes the data set and excludes those rows whose | |
| | column value matches the value in the cell currently selected. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *No limit* | Use the *No limit* drop-down listbox to specify how many rows to display in the output panel. | |
| | Select from: *No limit* (the default), *1000 rows*, *500 rows*, or *100 rows*. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Execute/Refresh* | Click the *Execute/Refresh* icon to execute the SQL command that is displayed in the top panel. | F5 |
| | If you have not saved modifications to the content displayed in the data grid, you will be | |
| | prompted to confirm the execution. To preserve your changes before refreshing the content, click | |
| | the *Save* toolbar button before executing the refresh. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Stop* | Click the *Stop* icon to cancel the execution of the currently running query. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Clear query window* | Use the *Clear query window* drop-down menu to erase the contents of the *History* tab. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
| *Download as CSV* | Click the *Download as CSV* icon to download the result set of the current query to a | F8 |
| | comma-separated list. You can control the CSV settings through | |
| | *Preferences -> SQL Editor -> CSV output* dialogue. | |
+----------------------+---------------------------------------------------------------------------------------------------+-------------+
**The Data Grid**
The top row of the data grid displays the name of each column, the data type, and if applicable, the number of characters allowed. A column that is part of the primary key will additionally be marked with [PK].
To modify the displayed data:
* To change a numeric value within the grid, double-click the value to select 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 exit the edit bubble without saving.
To enter a newline character, click Ctrl-Enter or Shift-Enter. Newline formatting is only displayed when the field content is accessed via an edit bubble.
To add a new row to the table, enter data into the last (unnumbered) row of the table. As soon as you store the data, the row is assigned a row number, and a fresh empty line is added to the data grid.
To write a SQL NULL to the table, simply leave the field empty. When you store the new row, the will server fill in the default value for that column. If you store a change to an existing row, the value NULL will explicitly be written.
To write an empty string to the table, enter the special string '' (two single quotes) in the field. If you want to write a string containing solely two single 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.
+3 -3
View File
@@ -31,12 +31,12 @@ Click the *Security Labels* tab to continue.
.. image:: images/event_trigger_security.png
Use the *Security* tab to define security labels applied to the trigger. Click *Add* to add each security label.
Use the *Security* tab to define security labels applied to the trigger. Click the *Add* icon (+) to add each security label.
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click *Add* to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
@@ -48,7 +48,7 @@ The following is an example of the sql command generated by user selections in t
.. image:: images/event_trigger_sql.png
The command creates an event trigger named *accounts* which uses the trigger function *acct_due*.
The command creates an event trigger named *accounts* that invokes the procedure named *acct_due*.
* Click the *Info* button (i) to access online help. View context-sensitive help in the *Tabbed browser*, where a new tab displays the PostgreSQL core documentation.
* Click the *Save* button to save work.
+3 -2
View File
@@ -23,7 +23,7 @@ Use the fields in the *Definition* tab to define the exclusion constraint:
* Use the drop-down listbox next to *Tablespace* to select the tablespace in which the index associated with the exclude constraint will reside.
* Use the drop-down listbox next to *Access method* to specify the type of index that will be used when implementing the exclusion constraint:
* Select *gist* to specify a GiST index (the default).
* Select *gist* to specify a GiST index.
* Select *spgist* to specify a space-partitioned GiST index.
* Select *btree* to specify a B-tree index.
* Select *hash* to specify a hash index.
@@ -37,11 +37,12 @@ Click the *Columns* tab to continue.
.. image:: images/exclusion_constraint_columns.png
Use the fields in the *Columns* tab to to specify the column(s) to which the constraint applies. Use the drop-down listbox next to *Column* to select a column and click *Add* to provide details of the action on the column:
Use the fields in the *Columns* tab to to specify the column(s) to which the constraint applies. Use the drop-down listbox next to *Column* to select a column and click the *Add* icon (+) to provide details of the action on the column:
* The *Column* field is populated with the selection made in the *Column* drop-down listbox.
* If applicable, use the drop-down listbox in the *Operator class* to specify the operator class that will be used by the index for the column.
* Move the *DESC* switch to *DESC* to specify a descending sort order. The default is *ASC* which specifies an ascending sort order.
* Use the *NULLs order* column to specify the placement of NULL values (when sorted). Specify *FIRST* or *LAST*.
* Use the drop-down list next to *Operator* to specify a comparison or conditional operator.
Click the *SQL* tab to continue.
+7 -7
View File
@@ -4,7 +4,7 @@
The Foreign Data Wrapper Dialog
*******************************
Use the *Foreign Data Wrapper* dialog to create a foreign data wrapper. A foreign data wrapper is an adapter between a Postgres database and data stored on another data source.
Use the *Foreign Data Wrapper* dialog to create or modify a foreign data wrapper. A foreign data wrapper is an adapter between a Postgres database and data stored on another data source.
You must be a superuser to create a foreign data wrapper.
@@ -24,8 +24,8 @@ Click the *Definition* tab to continue.
Use the fields in the *Definition* tab to set parameters:
* Select the name of the handler from the drop-down listbox in the *Handler* field. This is the name of an existing function that will be called to retrieve the execution functions for foreign tables.
* Select the name of the validator from the drop-down listbox in the *Validator* field. This is the name of an existing function that will be called to check the generic options given to the foreign data wrapper, as well as options for foreign servers, user mappings and foreign tables using the foreign data wrapper.
* Select the name of the handler function from the drop-down listbox in the *Handler* field. This is the name of an existing function that will be called to retrieve the execution functions for foreign tables.
* Select the name of the validator function from the drop-down listbox in the *Validator* field. This is the name of an existing function that will be called to check the generic options given to the foreign data wrapper, as well as options for foreign servers, user mappings and foreign tables using the foreign data wrapper.
Click the *Options* tab to continue.
@@ -33,16 +33,16 @@ Click the *Options* tab to continue.
Use the fields in the *Options* tab to specify options:
* Click the *Add* button to add an option/value pair for the foreign data wrapper. Supported option/value pairs will be specific to the selected foreign data wrapper.
* Click the the *Add* icon (+) button to add an option/value pair for the foreign data wrapper. Supported option/value pairs will be specific to the selected foreign data wrapper.
* Specify the option name in the *Option* field and provide a corresponding value in the *Value* field.
Click *Add* to specify each additional pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Security* tab to continue.
.. image:: images/foreign_data_wrapper_security.png
Use the *Security* tab to assign security privileges. Click *Add* to assign a set of privileges.
Use the *Security* tab to assign security privileges. Click the *Add* icon (+) to assign a set of privileges.
* Select the name of the role from the drop-down listbox in the *Grantee* field.
* Click inside the *Privileges* field. Check the boxes to the left of one or more privileges to grant the selected privileges to the specified user.
@@ -60,7 +60,7 @@ The following is an example of the sql command generated by user selections in t
.. image:: images/foreign_data_wrapper_sql.png
The example creates a foreign data wrapper named *libpq_debug* that uses pre-existing validator and handler functions, *dblink_fdw_validator* and *libpg_fdw_handler*. Selections on the *Options* tab set *debug* equal to *true*. The foreign data wrapper is owned by *enterprisedb*.
The example creates a foreign data wrapper named *libpq_debug* that uses pre-existing validator and handler functions, *dblink_fdw_validator* and *libpg_fdw_handler*. Selections on the *Options* tab set *debug* equal to *true*. The foreign data wrapper is owned by *postgres*.
* Click the *Help* button (?) to access online help. View context-sensitive help in the *Tabbed browser*, where a new tab displays the PostgreSQL core documentation.
* Click the *Save* button to save work.
+5 -4
View File
@@ -4,7 +4,7 @@
The Foreign key Dialog
**********************
Use the *Foreign key* dialog to specify the behavior of a foreign key. A foreign key constraint maintains referential integrity between two tables. A foreign key constraint cannot be defined between a temporary table and a permanent table.
Use the *Foreign key* dialog to specify the behavior of a foreign key constraint. A foreign key constraint maintains referential integrity between two tables. A foreign key constraint cannot be defined between a temporary table and a permanent table.
The *Foreign key* dialog organizes the development of a foreign key constraint through the following dialog tabs: *General*, *Definition*, *Columns*, and *Action*. The *SQL* tab displays the SQL code generated by dialog selections.
@@ -12,7 +12,8 @@ The *Foreign key* dialog organizes the development of a foreign key constraint t
Use the fields in the *General* tab to identify the foreign key constraint:
* Use the *Name* field to add a descriptive name for the foreign key constraint. The name will be displayed in the *pgAdmin* tree control.
* Use the *Name* field to add a descriptive name for the foreign key. The name will be displayed in the *pgAdmin* tree control.
* Store notes about the foreign key constraint in the *Comment* field.
Click the *Definition* tab to continue.
@@ -41,7 +42,7 @@ Use the fields in the *Columns* tab to specify one or more reference column(s).
* Use the drop-down listbox next to *References* to specify the name of the table in which the comparison column(s) resides.
* Use the drop-down listbox next to *Referencing* to specify a column in the foreign table.
Click *Add* to add a column to the list; repeat the steps above and click *Add* to add additional columns. To discard an entry, click the trash icon to the left of the entry and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to add a column to the list; repeat the steps above and click the *Add* icon (+) to add additional columns. To discard an entry, click the trash icon to the left of the entry and confirm deletion in the *Delete Row* popup.
Click the *Action* tab to continue.
@@ -81,7 +82,7 @@ The following is an example of the sql command generated by user selections in t
.. image:: images/foreign_key_sql.png
The example shown demonstrates creating a foreign key constraint named *territory_fkey* that matches values in the *distributors* *territory* column with those of the *sales_territories* *region* column.
The example shown demonstrates creating a foreign key constraint named *territory_fkey* that matches values in the *distributors* table *territory* column with those of the *sales_territories* table *region* column.
* Click the *Info* button (i) to access online help. View context-sensitive help in the *Tabbed browser*, where a new tab displays the PostgreSQL core documentation.
* Click the *Save* button to save work.
+11 -17
View File
@@ -30,42 +30,36 @@ Click the *Columns* tab to continue.
.. image:: images/foreign_table_columns.png
Use the fields in the *Columns* tab to to add columns and their attributes to the table. Click *Add* to define a column:
Use the fields in the *Columns* tab to to add columns and their attributes to the table. Click the *Add* icon (+) to define a column:
* Use the *Name* field to add a descriptive name for the column.
* Use the drop-down listbox next to *Data Type* to select a data type for the column. This can include array specifiers. For more information on which data types are supported by PostgreSQL, refer to Chapter 8 of the core documentation.
* Use the *Length* field to specify the length of a data string.
* Use the *Precision* field to specify the total number of significant digits.
* Use the *Default* field to specify a default data value.
* Check the *Not Null* checkbox to specify the column may not contain null values.
* Use the *Statistics* field to specify *true* or *false* if the foreign data wrapper can collect statistics for the foreign table.
* Use the drop-down listbox next to *Collation* to apply a collation setting to the foreign table.
* Use the drop-down listbox in the *Data Type* field to select a data type for the column. This can include array specifiers. For more information on which data types are supported by PostgreSQL, refer to Chapter 8 of the core documentation.
Click *Add* to specify each additional column; to discard a column, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional column; to discard a column, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Constraints* tab to continue.
.. image:: images/foreign_table_constraints.png
Use the fields in the *Constraints* tab to apply a table constraint to the foreign table. Click *Add* to define a constraint:
Use the fields in the *Constraints* tab to apply a table constraint to the foreign table. Click the *Add* icon (+) to define a constraint:
* Use the *Name* field to add a descriptive name for the constraint. If the constraint is violated, the constraint name is present in error messages, so constraint names like *col must be positive* can be used to communicate helpful information.
* Use the *Check* field to write a check expression producing a Boolean result. Each row in the foreign table is expected to satisfy the check expression.
* Check the *No Inherit* checkbox to specify that the constraint will not propagate to child tables.
* Uncheck the *Validate* checkbox to disable validation. The database will not assume that the constraint holds for all rows in the table.
Click *Add* to specify each additional constraint; to discard a constraint, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional constraint; to discard a constraint, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Options* tab to continue.
.. image:: images/foreign_table_options.png
Use the fields in the *Options* tab to specify options to be associated with the new foreign table or one of its columns; the accepted option names and values are specific to the foreign data wrapper associated with the foreign server. Click the *Add* button to add an option/value pair.
Use the fields in the *Options* tab to specify options to be associated with the new foreign table or one of its columns; the accepted option names and values are specific to the foreign data wrapper associated with the foreign server. Click the *Add* icon (+) to add an option/value pair.
* Specify the option name in the *Option* field. Duplicate option names are not allowed.
* Provide a corresponding value in the *Value* field.
Click *Add* to specify each additional option/value pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional option/value pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Security* tab to continue.
@@ -73,20 +67,20 @@ Click the *Security* tab to continue.
Use the *Security* tab to assign privileges and define security labels.
Use the *Privileges* panel to assign privileges to a role. Click *Add* to set privileges for database objects:
Use the *Privileges* panel to assign privileges to a role. Click the *Add* icon (+) to set privileges for database objects:
* Select the name of the role to which privileges will be assigned from the drop-down listbox in the *Grantee* field.
* Click inside the *Privileges* field. Check the boxes to the left of one or more privileges to grant the selected privilege to the specified user.
* Select the name of the role that owns the foreign table from the drop-down listbox in the *Grantor* field. The default grantor is the owner of the database.
Click *Add* to assign additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Use the *Security Labels* panel to define security labels applied to the function. Click *Add* to add each security label selection:
Use the *Security Labels* panel to define security labels applied to the function. Click the *Add* icon (+) to add each security label selection:
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click *Add* to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
+2 -2
View File
@@ -35,8 +35,8 @@ Click the *Tokens* tab to continue.
Use the fields in the *Tokens* tab to add a token:
* Use the *Tokens* field to specify the name of a token.
* Click *Add* to create a token.
* Use the *Dictionary* field to specify a dictionary.
* Click the *Add* icon (+) to create a token.
* Use the *Dictionaries* field to specify a dictionary.
Repeat these steps to add additional tokens; to discard a token, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
+5 -5
View File
@@ -13,7 +13,7 @@ The *FTS Dictionary* dialog organizes the development of a FTS dictionary throug
Use the fields in the *General* tab to identify the dictionary:
* Use the *Name* field to add a descriptive name for the dictionary. The name will be displayed in the *pgAdmin* tree control.
* Use the drop-down listbox next to *Owner* to select a role.
* Use the drop-down listbox next to *Owner* to select the role that will own the FTS Dictionary.
* Select the name of the schema in which the dictionary will reside from the drop-down listbox in the *Schema* field.
* Store notes about the dictionary in the *Comment* field.
@@ -33,16 +33,16 @@ Click the *Options* tab to continue.
.. image:: images/fts_dictionary_options.png
Use the fields in the *Options* tab to provide template-specific options. Click *Add* to add an option clause:
Use the fields in the *Options* tab to provide template-specific options. Click the *Add* icon (+) to add an option clause:
* Specify the name of an option in the *Option* field
* Provide a value in the *Value* field.
* Provide a value for the option in the *Value* field.
Click *Add* to specify each additional option/value pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to specify each additional option/value pair; to discard an option, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
Your entries in the *FTS Dictionary* dialog generate a 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.
Your entries in the *FTS Dictionary* dialog generate a generate a SQL command. Use the *SQL* tab for review; revisit or switch tabs to make any changes to the SQL command.
**Example**
+10 -11
View File
@@ -54,23 +54,22 @@ Click the *Arguments* tab to continue.
.. image:: images/function_arguments.png
Use the fields in the *Arguments* tab to define an argument. Click *Add* to set parameters and values for the argument:
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 next to *Data type* to select a data type.
* Use the drop-down listbox next to *Mode* 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.
* Write a name for the argument in the *Argument Name* field.
* 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 *Add* 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 *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 *Parameters* tab to continue.
.. image:: images/function_parameters.png
Use the fields in the *Parameters* tab to specify settings that will be applied when the function is invoked:
Use the fields in the *Parameters* tab to specify settings that will be applied when the function is invoked. Click the *Add* icon (+) to add a *Name*/*Value* field in the table.
* Use the drop-down listbox next to *Parameter Name* in the *Parameters* panel to select a parameter.
* Click the *Add* button to add the variable to *Name* field in the table.
* Use the drop-down listbox in the *Name* column in the *Parameters* panel to select a parameter.
* Use the *Value* field to specify the value that will be associated with the selected variable. This field is context-sensitive.
Click the *Security* tab to continue.
@@ -85,14 +84,14 @@ Use the *Privileges* panel to assign usage privileges for the function to a role
* Click inside the *Privileges* field. Check the boxes to the left of one or more privileges to grant the selected privilege to the specified user.
* Select the name of the role from the drop-down listbox in the *Grantor* field. The default grantor is the owner of the database.
Click *Add* to assign additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional privileges; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Use the *Security Labels* panel to define security labels applied to the function. Click *Add* to add each security label selection:
Use the *Security Labels* panel to define security labels applied to the function. Click the *Add* icon (+) to add each security label selection:
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
Click *Add* to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *Add* icon (+) to assign additional security labels; to discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* popup.
Click the *SQL* tab to continue.
+38 -11
View File
@@ -4,27 +4,54 @@
Getting Started
***************
pgAdmin 4 features a highly-customizable display that features drag-and-drop panels that you can arrange to make the best use of your desktop environment.
Pre-compiled and configured installation packages for pgAdmin 4 are available for a number of desktop environments; we recommend using an installer whenever possible. A standard installation using the pgAdmin installer is a server deployment.
When you install pgAdmin in server mode, you will be prompted to provide a role name and pgAdmin password. The first role registered with pgAdmin will be an administrative user. When you authenticate with pgAdmin, pgAdmin displays the server definitions associated with that login role in the tree control. The tree control provides an elegant overview of the managed servers, and the objects that reside on each server. Right-click on a node within the tree control to access context-sensitive menus that provide quick access to management tasks for the selected object.
The tabbed browser provide quick access to statistical information about each object in the tree control, and pgAdmin tools and utilities (such as the Query tool and the debugger). pgAdmin opens additional feature tabs each time you access the extended functionality offered by pgAdmin tools; you can open, close, and re-arrange feature tabs as needed.
Use the *Preferences* dialog to customize the content and colors of the pgAdmin display. To open the *Preferences* dialog, select *Preferences* from the *File* menu.
*Help* buttons in the lower-left corner of each dialog will open the online help for the dialog. You can access additional Postgres help by navigating through the *Help* menu, and selecting the name of the resource that you wish to open.
An administrative role can use the pgAdmin User Management dialog to create and manage additional pgAdmin user accounts.
In a Server Deployment, the pgAdmin application is deployed behind a webserver or with the WSGI interface.
If you install pgAdmin in server mode, you will be prompted to provide a role name and pgAdmin password when you initially connect to pgAdmin. The first role registered with pgAdmin will be an administrative user; the administrative role can use the pgAdmin *User Management* dialog to create and manage additional pgAdmin user accounts. When a user authenticates with pgAdmin, the pgAdmin tree control displays the server definitions associated with that login role.
Contents:
.. toctree::
server_deployment
pgadmin_login
pgadmin_user
change_user_password
In a Desktop Deployment, the pgAdmin application is configured to use the desktop runtime environment to host and display the program on a supported platform. Typically, users will install a pre-built package to run pgAdmin in desktop mode, but a manual desktop deployment can be installed and though it is more difficult to setup, it may be useful for developers interested in understanding how pgAdmin works.
Contents:
.. toctree::
:maxdepth: 2
desktop_deployment
The pgAdmin 4 client features a highly-customizable display that features drag-and-drop panels that you can arrange to make the best use of your desktop environment.
The tree control provides an elegant overview of the managed servers, and the objects that reside on each server. Right-click on a node within the tree control to access context-sensitive menus that provide quick access to management tasks for the selected object.
The tabbed browser provide quick access to statistical information about each object in the tree control, and pgAdmin tools and utilities (such as the Query tool and the debugger). pgAdmin opens additional feature tabs each time you access the extended functionality offered by pgAdmin tools; you can open, close, and re-arrange feature tabs as needed.
Use the *Preferences* dialog to customize the content and colors of the pgAdmin display. To open the *Preferences* dialog, select *Preferences* from the *File* menu.
*Help* buttons in the lower-left corner of each dialog will open the online help for the dialog. You can access additional Postgres help by navigating through the *Help* menu, and selecting the name of the resource that you wish to open.
Contents:
.. toctree::
browser
pgadmin_menu_bar
pgadmin_tabbed_browser
pgadmin_tree_control
preferences
pgadmin_user
keyboard_shortcuts
Before using pgAdmin to manage objects that reside on a server, you must define a connection to the server; for more information please see *Connecting to a Server*:
Contents:
.. toctree::
connecting
+2 -2
View File
@@ -26,11 +26,11 @@ Click the *Next* button to continue, or the *Cancel* button to close the wizard
Use the fields in the *Privileges Selection (step 2 of 3)* window to grant privileges. If you grant a privilege WITH GRANT OPTION, the Grantee will have the right to grant privileges on the object to others. If WITH GRANT OPTION is subsequently revoked, any role who received access to that object from that Grantee (directly or through a chain of grants) will lose thier privileges on the object.
* Click *Add* to assign a set of privileges.
* Click the *Add* icon (+) to assign a set of privileges.
* Select the name of the role from the drop-down listbox in the *Grantee* field.
* Click inside the *Privileges* field. Check the boxes to the left of one or more privileges to grant the selected privileges to the specified user. If privileges have previously been granted on a database object, unchecking a privilege for a group or user will result in revoking that privilege.
* If enabled, select the name of the role from the drop-down listbox in the *Grantor* field. The default grantor is the owner of the database.
* Click *Add* to assign a set of privileges to another role; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* dialog.
* Click the *Add* icon (+) to assign a set of privileges to another role; to discard a privilege, click the trash icon to the left of the row and confirm deletion in the *Delete Row* dialog.
For more information about granting privileges on database objects, see the `PostgreSQL core documentation <http://www.postgresql.org/docs/9.5/static/sql-grant.html>`_.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Loaded 100 of 3137 files, more files were not shown because too many files have changed in this diff. Show more