diff options
| author | Fabien Meghazi <fme@openerp.com> | 2014-01-24 16:16:56 +0100 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2014-01-24 16:16:56 +0100 |
| commit | f4e33da924ae41ff88d1531d4f2cbe550e14fa88 (patch) | |
| tree | 93c2dce4a28abe264de8873128acb6f89450f323 | |
| parent | 9af3bf56c0fd94d8eb98847cb22785464002befa (diff) | |
[ADD] Database selector to login screen
bzr revid: fme@openerp.com-20140124151656-swy3jknclfnxkwzx
| -rw-r--r-- | addons/web/controllers/main.py | 5 | ||||
| -rw-r--r-- | addons/web/views/database_selector.html | 9 | ||||
| -rw-r--r-- | addons/web/views/webclient_templates.xml | 22 |
3 files changed, 34 insertions, 2 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 49bc2a7a1c3..64442f6bb34 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -552,6 +552,11 @@ def render_bootstrap_template(db, template, values=None, debug=False, lazy=False values = {} values.update(kw) values['debug'] = debug + values['current_db'] = db + try: + values['databases'] = http.db_list() + except openerp.exceptions.AccessDenied: + values['databases'] = None for res in ['js', 'css']: if res not in values: diff --git a/addons/web/views/database_selector.html b/addons/web/views/database_selector.html index 16686cc388d..b8f774945e4 100644 --- a/addons/web/views/database_selector.html +++ b/addons/web/views/database_selector.html @@ -8,11 +8,16 @@ <link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"> <link rel="stylesheet" href="/web/static/lib/bootstrap/css/bootstrap.css"> <link rel="stylesheet" href="/web/static/src/css/base.css"> + <script type="text/javascript"> + function dbchanged() { + document.getElementById('dbselector').submit(); + } + </script> <body class="oe_single_form"> <div class="oe_single_form_container modal-content"> - <form class="oe_dbselector_form" role="form" action="/web" method="get"> + <form class="oe_dbselector_form" id="dbselector" role="form" action="/web" method="get"> <div class="oe_single_form_logo"> <img src="/web/static/src/img/logo2.png"/> </div> @@ -22,7 +27,7 @@ <div class="form-group field-db"> <label for="db" class="control-label">Select database</label> {% if databases %} - <select name="db" id="db" class="form-control" required="required" autofocus="autofocus"> + <select name="db" id="db" class="form-control" required="required" autofocus="autofocus" onchange="dbchanged()"> <option></option> {% for db in databases %} <option value="{{ db }}">{{ db }}</option> diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index c7c449d831f..4a591f3a8da 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -58,6 +58,25 @@ </t> </template> + <template id="web.database_select" name="Database select widget"> + <script type="text/javascript"> + function dbchanged(db) { + document.location = "/web/login?<t t-if="debug">debug&</t>db=" + db; + } + </script> + <div class="form-group field-db" t-if="databases and len(databases) > 1"> + <label for="db" class="control-label">Database</label> + <select name="db" id="db" class="form-control" required="required" autofocus="autofocus" onchange="dbchanged(this.value)"> + <option></option> + <t t-foreach="databases" t-as="db"> + <option t-att-selected="'selected' if db == current_db else None"> + <t t-esc="db"/> + </option> + </t> + </select> + </div> + </template> + <template id="web.login" name="Login"> <t t-call="web.login_layout"> <t t-set="head"> @@ -76,6 +95,9 @@ </t> <form class="oe_login_form" role="form" t-attf-action="/web/login{{ '?debug' if debug else '' }}" method="post"> + + <t t-call="web.database_select"/> + <div class="form-group field-login"> <label for="login" class="control-label">Email</label> <input type="text" name="login" t-att-value="login" id="login" class="form-control" required="required" autofocus="autofocus"/> |
