Commit Graph

5446 Commits

Author SHA1 Message Date
Dave Page
65dc4320f1 Replace bootstrap-dialog with Alertify.js, which is more configurable
and supports non-modal dialogs.
2015-01-28 15:57:03 +00:00
Dave Page
53d649de70 Add support for creating dialogs, and add an About dialog.
This adds bootstrap-dialog to help with creation of nice dialogs,
and adds the ability for modules to render Javascript into the
browser, and specify onclick handlers in the menu system.

Also add a basic About dialog, using the new infrastructure and
showing some useful info about the application.
2015-01-27 16:54:39 +00:00
Dave Page
d86c90fa73 Blacklist the test module by default. 2015-01-27 14:25:40 +00:00
Dave Page
89bfc54ec4 Update .gitignore file with a few more bits of junk. 2015-01-27 14:22:52 +00:00
Dave Page
d492da3ca1 Add automatic browser menu integration for modules.
Modules may now include functions that return lists of menu items
that will be included on the main browser window menu. While we're
at it, move the test views into a separate module.
2015-01-27 14:18:27 +00:00
Dave Page
0cff5fca2c Restructure templates to avoid conflicts between modules. 2015-01-26 16:27:16 +00:00
Dave Page
7c60fb3377 Support a desktop authentication mode.
This uses a single default user in the config database, which is
auto-logged into the app when SERVER_MODE = False. In this mode we
also hide/remove user-related functions in the UI.
2015-01-26 15:20:28 +00:00
Dave Page
10515431c7 Add authentication and the basis of the browser module.
A user authentication module based on flask-security is added, which
allows users to login and change/recover passwords etc. Custom templates
are included for the user/password UIs.

A new setup script will initialise the user (and later settings) DB,
adding the first user and granting them an Administrator role.

A redirects blueprint module is added to handle simple URL redirects.

A browser module is added and currently renders a skeleton page with
a menu bar, gravatar and jumbotron.

NOTE FOR LATER: Currently this code might make the nice basis for any
web app that needs user management and plugins. Hmmm....
2015-01-22 15:56:23 +00:00
Dave Page
7fa40d7671 Use Python docsctrings 2015-01-21 12:00:13 +00:00
Dave Page
df5054f253 No need for content here now. 2015-01-21 11:18:02 +00:00
Dave Page
5a485e7ab8 Add a base template with Bootstrap and jQuery ready to go. 2015-01-20 17:02:04 +00:00
Dave Page
47e779266b Enable templates and static files in the utils module. Refactor to
ease use as a template for other modules in the future.
2015-01-20 13:57:51 +00:00
Dave Page
5cffcabc70 Update the runtime to use URLs provided by the utils module. 2015-01-20 13:56:37 +00:00
Dave Page
dd40207617 Don't run the webserver in debug mode as it breaks the runtime. 2015-01-20 13:51:20 +00:00
Dave Page
0df7225561 Put the favicon in the right place. 2015-01-20 12:32:44 +00:00
Dave Page
7b8cb207ab Support dynamically loaded modules. 2015-01-20 12:32:06 +00:00
Dave Page
bb3efff063 Remove incorrectly placed static dir. 2015-01-20 12:29:29 +00:00
Dave Page
2c1688e6f4 Use Flask blueprints for modularisation, per Khushboo Vashi. 2015-01-19 16:38:47 +00:00
Dave Page
ca6ef66b61 Disable the DEBUG log handler so our own is used. 2014-12-18 17:56:17 +00:00
Dave Page
51117f26a9 Add a .gitignore file. 2014-12-18 17:52:53 +00:00
Dave Page
b9bf6d9aa3 Restructure to enable use of modules for different components of pgAdmin. 2014-12-18 17:49:09 +00:00
Dave Page
255d6c1437 Improve commenting 2014-12-17 15:27:54 +00:00
Dave Page
417ad2c6ee Make the application name and version details configurable. 2014-12-17 12:52:43 +00:00
Dave Page
3e6436bc9b Prevent werkzeug starting up it's own stream handler so that all
messages are routed through pgAdmin's handlers.
2014-12-17 12:44:07 +00:00
Dave Page
a0628f4a84 Ensure requests to the web server hit the file log too. 2014-12-16 18:21:26 +00:00
Dave Page
53389d6ee0 Enable static file handling. 2014-12-16 18:10:07 +00:00
Dave Page
c791d2a15f Add favicon. 2014-12-16 17:55:19 +00:00
Dave Page
cdcafa66f2 Fix typo. 2014-12-16 17:47:33 +00:00
Dave Page
a1a6e5356f More basic setup. 2014-12-16 17:37:53 +00:00
Dave Page
ba939f27d7 Use multiple logging handlers so we can have messages going to both
the console and a file, with differing formats and levels.
2014-12-16 17:14:48 +00:00
Dave Page
2d21ea059b Add a basic logging system. 2014-12-16 15:54:29 +00:00
Dave Page
cd9d005c49 Remove CherryPy from the source tree, and change references to Flask
instead. Add support to the runtime to allow the user to specify the
Python path. This needs to be more automated for release, but will be
useful for debugging and development.
2014-12-16 12:53:09 +00:00
Dave Page
1db7d968e2 Fix merge error. 2014-03-09 14:39:12 +00:00
Dave Page
b022e5d347 Have the runtime check in a loop to see if the app server is up before
opening the browser window.
2013-10-04 21:49:12 +01:00
Dave Page
e120c43663 Add a "ping" handler. 2013-10-04 21:48:01 +01:00
Dave Page
457a842cec Find a random port number to use for the application server to avoid conflicts
with any other apps that may have already bound to the default port used by CP.
2013-10-04 21:48:01 +01:00
Dave Page
a1524f3726 Add a qmake cache. 2013-10-04 21:42:16 +01:00
Dave Page
467d7d571b Include pgAdmin4.h in the project file. 2013-10-04 21:42:16 +01:00
Dave Page
7a066ec4b2 Save/restore the window position. 2013-10-04 21:42:16 +01:00
Dave Page
2d8f6481dc Fix a display issue in the Linux error handling.
Linux won't refresh the qWebView unless we explicitly process
events after telling it to load the page again.
2013-06-22 00:59:34 +01:00
Dave Page
9080a782d5 Handle slow startup of the web server.
If the web server is slow to start, we may need to retry the initial
page load. Implement a retry system that will retry the initial load
4 times, after 1, 2, 3 and 4 seconds, before giving up and leaving
the user with an error message and a link to retry manually.
2013-06-22 00:49:40 +01:00
Dave Page
7fd90ac10f QT4 compatibility. 2013-06-21 23:32:32 +01:00
Dave Page
28f45ea9f9 Initial PoC of a CherryPy app integrate with the runtime.
Upon startup, the runtime will attempt to locate pgAdmin4.py in a
number of different relative locations. Once found, it will execute
it in a new thread. The main window is then created and the brower's
initial page is set to the root of the CherryPy server. At present,
that's http://127.0.0.1:8080.
2013-06-21 23:21:11 +01:00
Dave Page
1afc31c657 Fix thinko. 2013-06-16 20:11:04 +01:00
Dave Page
38ff104cb9 Add a very experimental QT based runtime for pgAdmin 4.
This runtime implements a brower control with embedded Python
interpretor. The Python interpretor runs a simple script at
startup to generate some HTML that is displayed in the browser.
Arbitrary URLs can be opened from the "Open URL" option on the
File menu.
2013-06-16 14:17:46 +01:00
Dave Page
192cddef0e Add license file. 2013-06-15 14:49:52 +01:00