[IMP]Improved selection menu and add message on invalid login.

bzr revid: jra@tinyerp.com-20110719062335-ha1p559hg2xrp58u
This commit is contained in:
=Bhumi Thakkar 2011-07-19 11:53:35 +05:30 committed by Jiten Rangwala (OpenERP)
parent c15ddcd5f9
commit 8c03c936c8
4 changed files with 69 additions and 12 deletions

View File

@ -1680,4 +1680,24 @@ div.ui-slider-switch div.ui-slider-labelbg-b { width: 60%; height: 100%; right:
div.ui-slider-switch a.ui-slider-handle { z-index: 20; width: 101%; height: 32px; margin-top: -18px; margin-left: -101%; }
span.ui-slider-label { width: 100%; position: absolute;height: 32px; font-size: 16px; text-align: center; line-height: 2; background: none; border-color: transparent; }
span.ui-slider-label-a { left: -100%; margin-right: -1px }
span.ui-slider-label-b { right: -100%; margin-left: -1px }
span.ui-slider-label-b { right: -100%; margin-left: -1px }
.login_error_message {
display: none;
background-color: #9A0404;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
color: white;
font-family: Ubuntu, Helvetica, sans-serif;
font-size: 16px;
padding: 5px;
margin-top: 5px;
text-align: center;
}
.login_invalid .login_error_message {
display: block;
}
.login_valid .login_error_message {
display: none;
}

View File

@ -130,16 +130,18 @@ openerp.web_mobile.Login = openerp.base.Controller.extend({
jQuery("#oe_header").children().remove();
this.rpc("/base/session/get_databases_list", {}, function(result) {
var selection = new openerp.web_mobile.Selection();
self.db_list = result.db_list;
self.$element.html(QWeb.render("Login", self));
self.$element.find('#database').click(self.on_db_select);
self.$element.find('#database').prev().find(".ui-btn-text").html($('#database').find("option:selected").text());
self.$element.find('#database').change(function(ev){
selection.on_select_option(ev);
});
self.$element.find("#login").click(self.on_login);
$.mobile.initializePage();
})
},
on_db_select: function(ev) {
var db = this.$element.find("#database option:selected").val();
jQuery("#db_text").html(db);
});
this.$element
.removeClass("login_invalid");
},
on_login: function(ev) {
ev.preventDefault();
@ -190,6 +192,20 @@ openerp.web_mobile.Login = openerp.base.Controller.extend({
});
}
});
openerp.web_mobile.Selection = openerp.base.Controller.extend({
init: function (){
this._super();
},
start: function(){
this._super();
var self = this;
},
on_select_option: function(ev){
ev.preventDefault();
var $this = ev.currentTarget;
$($this).prev().find(".ui-btn-text").html($($this).find("option:selected").text());
}
});
openerp.web_mobile.MobileWebClient = openerp.base.Controller.extend({
init: function(element_id) {
var self = this;

View File

@ -20,8 +20,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
}
}
self.rpc("/base/formview/load", {"model": model, "view_id": view_id }, function (result) {
var view_fields = result.fields_view.arch.children;
var get_fields = self.get_fields(view_fields);
var selection = new openerp.web_mobile.Selection();
for (var j = 0; j < view_fields.length; j++) {
if (view_fields[j].tag == 'notebook') {
@ -31,6 +33,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
$("#oe_header").find("h1").html(result.fields_view.arch.attrs.string);
self.$element.html(QWeb.render("FormView", {'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : result.fields_view.fields, 'values' : data }));
self.$element.find('select').change(function(ev){
selection.on_select_option(ev);
});
self.$element.find('a').click(function(){
for (var k = 0; k < notebooks.children.length; k++) {
@ -80,6 +86,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
}
}
}
self.$element.find('select').change(function(ev){
selection.on_select_option(ev);
});
});
});
});
@ -98,7 +108,7 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
}
}
return this.fields;
},
}
});
}

View File

@ -55,6 +55,7 @@
</div>
</fieldset>
</div>
<div class="login_error_message">Bad username or password</div>
</t>
<t t-name="HomePage">
@ -133,7 +134,8 @@
</span>
<span class="ui-icon ui-icon-arrow-d ui-icon-shadow"></span>
</span>
<select>
<select t-att-id="'selection_'+fields[field.attrs.name].string">
<t t-foreach="fields[field.attrs.name].selection" t-as="opt">
<option t-att-value="opt[0]"><t t-esc="opt[1]"/></option>
</t>
@ -146,14 +148,23 @@
<div data-theme="c" class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">
<t t-esc="values[field.attrs.name][1]"/>
<t t-if="values[field.attrs.name][1]">
<t t-esc="values[field.attrs.name][1]"/>
</t>
<!-- <t t-esc="values[field.attrs.name][1]+values[field.attrs.name]"/> -->
</span>
<span class="ui-icon ui-icon-arrow-d ui-icon-shadow"></span>
</span>
<select>
<select t-att-id="'selection_'+fields[field.attrs.name].string">
<t t-if="fields[field.attrs.name].selection">
<t t-foreach="fields[field.attrs.name].selection" t-as="opt">
<option t-att-value="opt[0]"><t t-esc="opt[1]"/></option>
<t t-if="values[field.attrs.name]==opt[0]">
<option t-att-value="opt[0]" selected="true" ><t t-esc="opt[1]"/></option>
</t>
<t t-if="values[field.attrs.name]!=opt[0]">
<option t-att-value="opt[0]" ><t t-esc="opt[1]"/></option>
</t>
</t>
</t>
</select>