[MERGE] mobile branch fixes login
bzr revid: al@openerp.com-20111230105756-xyoyyue3471fnqt5
This commit is contained in:
@@ -448,7 +448,7 @@ class Root(object):
|
||||
params = urllib.urlencode(request.args)
|
||||
return werkzeug.utils.redirect(self.root + '?' + params, 301)(
|
||||
environ, start_response)
|
||||
elif request.path == '/mobile' or ('#' in request.path):
|
||||
elif request.path == '/mobile':
|
||||
return werkzeug.utils.redirect(
|
||||
'/web_mobile/static/src/web_mobile.html', 301)(environ, start_response)
|
||||
|
||||
|
||||
@@ -22,3 +22,8 @@
|
||||
.login_valid .login_error_message {
|
||||
display: none;
|
||||
}
|
||||
.desc{
|
||||
margin:0em 0 0em;
|
||||
font-size:11px;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
@@ -17,14 +17,17 @@ openerp.web_mobile.MobileWebClient = openerp.web.Widget.extend({
|
||||
|
||||
init: function(element_id) {
|
||||
this._super(null, element_id);
|
||||
openerp.web.qweb.add_template("xml/web_mobile.xml");
|
||||
var params = {};
|
||||
this.$element.html(this.render());
|
||||
this.crashmanager = new openerp.web.CrashManager(this);
|
||||
this.login = new openerp.web_mobile.Login(this, "oe_login");
|
||||
},
|
||||
start: function() {
|
||||
this.login.start();
|
||||
this._super.apply(this, arguments);
|
||||
var self = this;
|
||||
this.session.bind().then(function() {
|
||||
openerp.web.qweb.add_template("xml/web_mobile.xml");
|
||||
self.$element.html(self.render());
|
||||
self.login.start();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -45,7 +48,8 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
|
||||
jQuery("#oe_header").children().remove();
|
||||
this.rpc("/web/database/get_list", {}, function(result) {
|
||||
self.db_list = result.db_list;
|
||||
self.$element.html(self.render(self));
|
||||
$('#'+self.element_id).html(self.render(self));
|
||||
self.$element = $('#'+self.element_id);
|
||||
if(self.session.db!=""){
|
||||
self.$element.find("#database").val(self.session.db);
|
||||
}
|
||||
@@ -64,7 +68,7 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
|
||||
var password = $e.find("div input[name=password]").val();
|
||||
//$e.hide();
|
||||
// Should hide then call callback
|
||||
this.session.login(db, login, password, function() {
|
||||
this.session.session_authenticate(db, login, password).then(function() {
|
||||
if(self.session.session_is_valid()) {
|
||||
if (self.has_local_storage) {
|
||||
if(self.remember_creditentials) {
|
||||
@@ -78,9 +82,13 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
|
||||
}
|
||||
}
|
||||
self.on_login_valid();
|
||||
} else {
|
||||
}
|
||||
});
|
||||
this.session.on_session_invalid.add({
|
||||
callback: function () {
|
||||
self.on_login_invalid();
|
||||
}
|
||||
},
|
||||
unique: true
|
||||
});
|
||||
},
|
||||
on_login_invalid: function() {
|
||||
@@ -185,6 +193,7 @@ openerp.web_mobile.Menu = openerp.web.Widget.extend({
|
||||
this.menu = false;
|
||||
},
|
||||
start: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.rpc("/web/menu/load", {}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
|
||||
@@ -47,6 +47,7 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
|
||||
var notebooks = view_fields[j];
|
||||
}
|
||||
}
|
||||
self.hidden_fields(get_fields,fields);
|
||||
self.$element.html(self.render({'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : values ,'temp_flag':'1'}));
|
||||
self.$element.find("[data-role=header]").find('h1').html(self.head_title);
|
||||
self.$element.find("[data-role=header]").find('#home').click(function(){
|
||||
@@ -56,11 +57,12 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
|
||||
for (var k = 0; k < notebooks.children.length; k++) {
|
||||
if (notebooks.children[k].attrs.string == $(this).attr('id')) {
|
||||
get_fields_notebook = self.get_fields(notebooks.children[k].children);
|
||||
self.hidden_fields(get_fields_notebook,fields);
|
||||
$(this).find('div#page_content').html(self.render({'get_fields': get_fields_notebook,'fields' : fields, 'values' : values}));
|
||||
}
|
||||
}
|
||||
});
|
||||
self.$element.find('#o2m_m2m').click(function(ev) {
|
||||
self.$element.find('#o2m_m2m').click(function(ev) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
var relational = $(this).attr('for');
|
||||
@@ -68,12 +70,16 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
|
||||
var rel_ids = values[relational];
|
||||
var head = rel_field.string;
|
||||
if (rel_ids) {
|
||||
var list_ids = [];
|
||||
var datasearch = new openerp.web.DataSetSearch(self, rel_field.relation, rel_field.context);
|
||||
datasearch.domain=[['id', 'in', rel_ids]];
|
||||
datasearch.read_slice(['name'], {context:rel_field.context, domain: datasearch.domain, limit:80}, function(listrec){
|
||||
_.each(listrec, function(i) {
|
||||
list_ids.push(i.id);
|
||||
});
|
||||
_.extend(rel_field.context,{"html_name_get" : true});
|
||||
var dataset = new openerp.web.DataSet(self, rel_field.relation,rel_field.context);
|
||||
dataset.name_get(listrec,function(res){
|
||||
dataset.name_get(list_ids,function(res){
|
||||
var additional = "";
|
||||
if(res['html_name_get']){
|
||||
additional = res['display'];
|
||||
@@ -99,6 +105,7 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
|
||||
}
|
||||
});
|
||||
$.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true);
|
||||
$('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").find('span').addClass('desc');
|
||||
}else{
|
||||
$.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true);
|
||||
}
|
||||
@@ -195,6 +202,13 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
hidden_fields: function(get_fields, fields) {
|
||||
for(var i=0;i<get_fields.length;i++){
|
||||
if(get_fields[i].attrs.invisible){
|
||||
fields[get_fields[i].attrs.name].type='hidden';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -30,12 +30,16 @@ openerp.web_mobile.ListView = openerp.web.Widget.extend({
|
||||
},
|
||||
on_search_data: function(ev){
|
||||
var self = this;
|
||||
var list_ids = [];
|
||||
var datasearch = new openerp.web.DataSetSearch(self, self.action.res_model,self.action.context);
|
||||
datasearch.domain = self.action.domain;
|
||||
datasearch.read_slice(['name'], {context:datasearch.context, domain: datasearch.domain, limit:80}, function(listresult){
|
||||
_.each(listresult, function(i) {
|
||||
list_ids.push(i.id);
|
||||
});
|
||||
_.extend(self.action.context,{"html_name_get" : true});
|
||||
var dataset = new openerp.web.DataSet(self, datasearch.model,datasearch.context);
|
||||
dataset.name_get(listresult,function(res){
|
||||
dataset.name_get(list_ids,function(res){
|
||||
var additional = "";
|
||||
if(res['html_name_get']){
|
||||
additional = res['display'];
|
||||
@@ -47,6 +51,7 @@ openerp.web_mobile.ListView = openerp.web.Widget.extend({
|
||||
});
|
||||
self.$element.find("a#list-id").click(self.on_list_click);
|
||||
$.mobile.changePage("#"+self.element_id, "slide", false, true);
|
||||
self.$element.find("a#list-id").find('span').addClass('desc');
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/underscore/underscore.string.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/py.parse/lib/py.js"></script>
|
||||
<script type="text/javascript" src="/web_mobile/static/lib/jquery_mobile/js/jquery.mobile-1.0a4.1.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/globalization/en-US.js"></script>
|
||||
@@ -26,10 +27,20 @@
|
||||
<script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/boot.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/core.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/chrome.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/data.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/formats.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/dates.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/formats.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/chrome.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/views.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/data.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/data_export.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/data_import.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/search.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_form.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_page.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_list.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_list_editable.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_tree.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/view_editor.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web_mobile/static/src/js/web_mobile.js"></script>
|
||||
<script type="text/javascript" src="/web_mobile/static/src/js/chrome_mobile.js"></script>
|
||||
@@ -38,7 +49,10 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
var QWeb;
|
||||
$(function() {
|
||||
$(function() {
|
||||
if(document.URL!="http://"+window.location.host+"/web_mobile/static/src/web_mobile.html"){
|
||||
window.location.replace('/mobile');
|
||||
}
|
||||
var oe = openerp.init();
|
||||
openerp.web_mobile(oe);
|
||||
oe.web_mobile.mobilewebclient("moe");
|
||||
|
||||
@@ -132,23 +132,22 @@
|
||||
<t t-if="!(records.length>0)">
|
||||
There are no records to show.
|
||||
</t>
|
||||
|
||||
<t t-if="records.length>0">
|
||||
<ul data-role="listview" data-inset="true" data-theme="d" data-filter="true">
|
||||
<li data-theme="c" t-foreach="records" t-as="record">
|
||||
<t t-foreach="record[1].split(',')" t-as="data1">
|
||||
<t t-if="record[1].split(',')[0]==data1">
|
||||
<a id="list-id" t-att-data-id="record[0]" href="#">
|
||||
<t t-esc="data1" />
|
||||
</a>
|
||||
</t>
|
||||
</t>
|
||||
<p>
|
||||
<a id="list-id" t-att-data-id="record[0]" href="#">
|
||||
<t t-foreach="record[1].split(',')" t-as="data1">
|
||||
<t t-if="record[1].split(',')[0]==data1">
|
||||
<t t-esc="data1" /><br/>
|
||||
</t>
|
||||
<t t-if="record[1].split(',')[0]!=data1">
|
||||
<t t-esc="data1" />
|
||||
<span>
|
||||
<t t-esc="data1" />
|
||||
</span>
|
||||
</t>
|
||||
</t>
|
||||
</p>
|
||||
</a>
|
||||
<t t-foreach="data" t-as="data1">
|
||||
<t t-esc="data1[0]" />
|
||||
</t>
|
||||
|
||||
Reference in New Issue
Block a user