summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2014-01-24 16:16:56 +0100
committerFabien Meghazi <fme@openerp.com>2014-01-24 16:16:56 +0100
commitf4e33da924ae41ff88d1531d4f2cbe550e14fa88 (patch)
tree93c2dce4a28abe264de8873128acb6f89450f323 /addons
parent9af3bf56c0fd94d8eb98847cb22785464002befa (diff)
[ADD] Database selector to login screen
bzr revid: fme@openerp.com-20140124151656-swy3jknclfnxkwzx
Diffstat (limited to 'addons')
-rw-r--r--addons/web/controllers/main.py5
-rw-r--r--addons/web/views/database_selector.html9
-rw-r--r--addons/web/views/webclient_templates.xml22
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&amp;</t>db=" + db;
+ }
+ </script>
+ <div class="form-group field-db" t-if="databases and len(databases) &gt; 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"/>