[imp] added db selection

bzr revid: nicolas.vanhoren@openerp.com-20110606114306-bbb8r3fvtxvvamcq
This commit is contained in:
niv-openerp
2011-06-06 13:43:06 +02:00
parent cdf9746d8e
commit 8f5088e127
4 changed files with 34 additions and 11 deletions
+7
View File
@@ -98,6 +98,13 @@ class Session(openerpweb.Controller):
"session_id": req.session_id,
"uid": req.session._uid,
}
@openerpweb.jsonrequest
def get_databases_list(self, req):
proxy = req.session.proxy("db")
dbs = proxy.list()
return {"db_list": dbs}
@openerpweb.jsonrequest
def modules(self, req):
+2 -1
View File
@@ -90,7 +90,8 @@ body.openerp {
padding: 3px;
text-align: right;
}
.openerp .login .oe_box2 td input {
.openerp .login .oe_box2 td input,
.openerp .login .oe_box2 td select {
width: 100%;
}
.openerp .login .oe_login_right_pane {
+15 -9
View File
@@ -778,26 +778,29 @@ openerp.base.Login = openerp.base.Controller.extend({
this._super(session, element_id);
},
start: function() {
this.$element.html(QWeb.render("Login", {}));
this.$element.find("form").submit(this.on_submit);
var self = this;
this.rpc("/base/session/get_databases_list", {}, function(result) {
self.db_list = result.db_list;
self.display();
}, function() {
self.display();
});
},
display: function() {
this.$element.html(QWeb.render("Login", this));
this.$element.find("form").submit(this.on_submit);
},
on_login_invalid: function() {
this.$element
.removeClass("login_valid")
.addClass("login_invalid");
this.$element.closest(".openerp").addClass("login-mode");
},
on_login_valid: function() {
this.$element
.removeClass("login_invalid")
.addClass("login_valid");
this.$element.closest(".openerp").removeClass("login-mode");
},
on_submit: function(ev) {
ev.preventDefault();
var self = this;
var $e = this.$element;
var db = $e.find("form input[name=db]").val();
var db = $e.find("form [name=db]").val();
var login = $e.find("form input[name=login]").val();
var password = $e.find("form input[name=password]").val();
//$e.hide();
@@ -806,12 +809,15 @@ openerp.base.Login = openerp.base.Controller.extend({
if(self.session.session_is_valid()) {
self.on_login_valid();
} else {
self.$element.addClass("login_invalid");
self.on_login_invalid();
}
});
},
do_ask_login: function(continuation) {
this.on_login_invalid();
this.$element
.removeClass("login_invalid");
this.on_login_valid.add({
position: "last",
unique: true,
+10 -1
View File
@@ -61,7 +61,16 @@
<tr>
<td><label for="db">Database:</label></td>
<td class="oe_field_value">
<input type="text" name="db" value="trunk" autofocus="true"/>
<t t-if="!db_list">
<input type="text" name="db" value="trunk" autofocus="true"/>
</t>
<t t-if="db_list">
<select name="db">
<t t-foreach="db_list" t-as="db">
<option t-att-value="db" t-att-selected="db == 'trunk'"><t t-esc="db"/></option>
</t>
</select>
</t>
</td>
</tr>
<tr>