Compare commits

..
897 Commits
Author SHA1 Message Date
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
2391 changed files with 174353 additions and 186779 deletions

No files matched your search

+26 -17
View File
@@ -1,31 +1,40 @@
*.autosave
*.db
*.diff
*.o
*.patch
*.psp
*.pyc
*.pyo
*.o
*.psp
_build
build-*
*.swo
*.swp
.DS_Store
.idea
.vscode
/dist
/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
/win-build
/dist
pkg/win32/installer.iss
runtime/Makefile.Debug
runtime/Makefile.Release
runtime/release/
node_modules/
web/pgAdmin/static/js/generated
+1 -1
View File
@@ -1,6 +1,6 @@
pgAdmin 4
Copyright (c) 2013 - 2016, The pgAdmin Development Team
Copyright (c) 2013 - 2017, 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
+479
View File
@@ -0,0 +1,479 @@
@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.8\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 "%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 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
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;%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
rd "%PGBUILDPATH%\%VIRTUALENV%\Scripts" /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_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
+180 -83
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,89 @@ 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 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 +317,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 +327,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 +407,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 +426,7 @@ GOTO:EOF
ECHO Runtime built successfully.
CD %WD%
GOTO:EOF
GOTO:eof
:CREATE_PYTHON_ENV
copy %PYTHON_DLL% "%PGBUILDPATH%\runtime" > nul
@@ -359,8 +443,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,7 +487,21 @@ 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...
@@ -408,14 +511,14 @@ GOTO:EOF
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 +529,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 +548,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 +563,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
+50 -17
View File
@@ -2,7 +2,7 @@
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2016, The pgAdmin Development Team
# Copyright (C) 2013 - 2017, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
#########################################################################
@@ -16,34 +16,67 @@ 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
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: install-node bundle
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-dist clean-docs clean-pip clean-src
clean-appbundle:
rm -rf mac-build/
clean-src:
rm -rf src-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-dist:
rm -rf dist/
clean-pip:
rm -rf pip-build/
clean-src:
rm -rf src-build/
docs:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html
msg-compile:
cd web && pybabel compile -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
+263 -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,252 @@ 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.
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; }
+42
View File
@@ -0,0 +1,42 @@
#!/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
/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; }
$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; }
+26
View File
@@ -0,0 +1,26 @@
#!/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
/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; }
$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"
+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:
+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 - 2017, 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 - 2017, 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.
+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.
+40 -3
View File
@@ -20,6 +20,21 @@ 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.
Note that there are multiple configuration files that are read at startup by
pgAdmin. These are as follows:
* ``config.py``: This is the main configuration file, and should not be modified.
It can be used as a reference for configuration settings, that may be overridden
in one of the following files.
* ``config_distro.py``: This file is read after ``config.py`` and is intended for
packagers to change any settings that are required for their pgAdmin distribution.
This may typically include certain paths and file locations.
* ``config_local.py``: This file is read after ``config_distro.py`` and is intended
for end users to change any default or packaging specific settings that they may
wish to adjust to meet local preferences or standards.
Python
------
@@ -41,6 +56,9 @@ In order to configure the Python code, follow these steps:
.. code-block:: bash
$ python setup.py
Alternatively, you can simply run ``pgAdmin4.py`` at this point or at a later time,
and ``pgadmin4.db`` will be created automatically at first run.
Runtime
-------
@@ -55,6 +73,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) |
+--------------------------+--------------------+---------------------------------------------------------------+
+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.
+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.
+1
View File
@@ -45,6 +45,7 @@ Contents:
pgadmin_tabbed_browser
pgadmin_tree_control
preferences
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*:
+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: 24 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 37 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: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 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: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 45 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: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 82 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: 35 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 62 KiB

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