diff options
| author | Jigar Amin - OpenERP <jam@tinyerp.com> | 2012-09-13 10:06:44 +0530 |
|---|---|---|
| committer | Jigar Amin - OpenERP <jam@tinyerp.com> | 2012-09-13 10:06:44 +0530 |
| commit | 188eff46ecade0774bf40fbafbe84e31e801b4c2 (patch) | |
| tree | df139787a70cfe8deeaa8544e3a12966aa4abc58 /addons/web_mobile/static/src | |
| parent | 14ed53e196441985e6242b4bcad4f0ed411646a8 (diff) | |
| parent | cd004c2c77e95cf3ab3c2889806b5ce54d107874 (diff) | |
[merge] lp:openerp-web
bzr revid: jam@tinyerp.com-20120913043644-t41gs5n4kp8a0j0e
Diffstat (limited to 'addons/web_mobile/static/src')
| -rw-r--r-- | addons/web_mobile/static/src/css/web_mobile.css | 29 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/chrome_mobile.js | 352 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/form_mobile.js | 215 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/list_mobile.js | 74 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/web_mobile.js | 9 | ||||
| -rwxr-xr-x | addons/web_mobile/static/src/web_mobile.html | 66 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/xml/web_mobile.xml | 332 |
7 files changed, 0 insertions, 1077 deletions
diff --git a/addons/web_mobile/static/src/css/web_mobile.css b/addons/web_mobile/static/src/css/web_mobile.css deleted file mode 100644 index 2c7061c87a6..00000000000 --- a/addons/web_mobile/static/src/css/web_mobile.css +++ /dev/null @@ -1,29 +0,0 @@ - -.ui-collapsible-content-expanded { - display: block; -} - -.login_error_message { - display: none; - background-color: #9A0404; - border-radius: 12px; - -moz-border-radius: 12px; - -webkit-border-radius: 12px; - 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; -} -.desc{ - margin:0em 0 0em; - font-size:11px; - font-weight:normal; -} diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js deleted file mode 100644 index 1fe731d0b4c..00000000000 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ /dev/null @@ -1,352 +0,0 @@ -/*--------------------------------------------------------- - * OpenERP Web Mobile chrome - *---------------------------------------------------------*/ - -openerp.web_mobile.chrome_mobile = function(instance) { - -instance.web_mobile.mobilewebclient = function(element_id) { - // TODO Helper to start mobile webclient rename it instance.web.webclient - var client = new instance.web_mobile.MobileWebClient(element_id); - client.start(); - return client; -}; - -/** - * @deprecated use :class:`instance.web.Widget` - */ -instance.web_mobile.MobileWidget = instance.web.Widget.extend({ - init: function(parent, element_id) { - this._super(parent); - this.element_id = element_id; - this.element_id = this.element_id || _.uniqueId('widget-'); - - var tmp = document.getElementById(this.element_id); - this.setElement(tmp || this._make_descriptive()); - }, - renderElement: function() { - var rendered = this.render(); - if (rendered) { - this.replaceElement($(rendered)); - } - return this; - }, - render: function (additional) { - if (this.template) - return instance.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); - return null; - } -}); - -instance.web_mobile.MobileWebClient = instance.web_mobile.MobileWidget.extend({ - - template: "WebClient", - - init: function(element_id) { - this._super(null, element_id); - this.crashmanager = new instance.web.CrashManager(this); - this.login = new instance.web_mobile.Login(this, "oe_login"); - }, - start: function() { - this._super.apply(this, arguments); - var self = this; - this.session.bind_session().then(function() { - instance.web.qweb.add_template("xml/web_mobile.xml"); - self.$el.html(self.render()); - self.login.start(); - }); - } -}); - -instance.web_mobile.Login = instance.web_mobile.MobileWidget.extend({ - - template: "Login", - - start: function() { - this.has_local_storage = typeof(localStorage) != 'undefined'; - this.remember_creditentials = true; - this.selected_login = null; - this.selected_password = null; - if (this.has_local_storage && this.remember_creditentials) { - this.selected_login = localStorage.getItem('last_login_login_success'); - this.selected_password = localStorage.getItem('last_password_login_success'); - } - var self = this; - jQuery("#oe_header").children().remove(); - this.rpc("/web/database/get_list", {}, function(result) { - self.db_list = result.db_list; - this.setElement($('#'+self.element_id).html(self.render(self))); - if(self.session.db!=""){ - self.$el.find("#database").val(self.session.db); - } - self.$el.find("#login_btn").click(self.on_login); - $.mobile.initializePage(); - }); - this.$el - .removeClass("login_invalid"); - }, - on_login: function(ev) { - ev.preventDefault(); - var self = this; - var $e = this.$el; - var db = $e.find("div select[name=database]").val(); - var login = $e.find("div input[name=login]").val(); - var password = $e.find("div input[name=password]").val(); - //$e.hide(); - // Should hide then call callback - this.session.session_authenticate(db, login, password).then(function() { - if(self.session.session_is_valid()) { - if (self.has_local_storage) { - if(self.remember_creditentials) { - localStorage.setItem('last_db_login_success', db); - localStorage.setItem('last_login_login_success', login); - localStorage.setItem('last_password_login_success', password); - } else { - localStorage.setItem('last_db_login_success', ''); - localStorage.setItem('last_login_login_success', ''); - localStorage.setItem('last_password_login_success', ''); - } - } - self.on_login_valid(); - } - }); - this.session.on_session_invalid.add({ - callback: function () { - self.on_login_invalid(); - }, - unique: true - }); - }, - on_login_invalid: function() { - this.$el - .removeClass("login_valid") - .addClass("login_invalid") - .show(); - }, - on_login_valid: function() { - this.$el - .removeClass("login_invalid") - .addClass("login_valid"); - //.hide(); - if(!$('#oe_menu').html().length){ - this.menu = new instance.web_mobile.Menu(this, "oe_menu", "oe_secondary_menu"); - this.menu.start(); - }else{ - $.mobile.changePage("#oe_menu", "slide", false, true); - } - }, - do_ask_login: function(continuation) { - this.on_login_invalid(); - this.on_login_valid.add({ - position: "last", - unique: true, - callback: continuation - }); - } -}); - -instance.web_mobile.Header = instance.web_mobile.MobileWidget.extend({ - - template: "Header", - - init: function(session, element_id) { - this._super(session, element_id); - }, - start: function() { - this.$el.html(this.render(this)); - } -}); - -instance.web_mobile.Footer = instance.web_mobile.MobileWidget.extend({ - - template: "Footer", - - init: function(session, element_id) { - this._super(session, element_id); - }, - start: function() { - this.$el.html(this.render(this)); - } -}); - -instance.web_mobile.Shortcuts = instance.web_mobile.MobileWidget.extend({ - - template: "Shortcuts", - - init: function(session, element_id) { - this._super(session, element_id); - }, - start: function() { - var self = this; - this.rpc('/web/session/sc_list',{} ,function(res){ - self.$el.html(self.render({'sc': res})); - self.$el.find("[data-role=header]").find('h1').html('Favourite'); - self.$el.find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - self.$el.find('#content').find("a").click(self.on_clicked); - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - }); - }, - on_clicked: function(ev) { - var self = this; - ev.preventDefault(); - ev.stopPropagation(); - $shortcut = $(ev.currentTarget); - id = $shortcut.data('menu'); - res_id = $shortcut.data('res'); - if(!$('[id^="oe_list_'+res_id+'"]').html()){ - $('<div id="oe_list_'+res_id+'" data-role="page" data-url="oe_list_'+res_id+'"> </div>').appendTo('#moe'); - this.listview = new instance.web_mobile.ListView(self, "oe_list_"+res_id, res_id); - this.listview.start(); - }else{ - $.mobile.changePage('#oe_list_'+res_id, "slide", false, true); - } - ev.preventDefault(); - ev.stopPropagation(); - jQuery("#oe_header").find("h1").html($shortcut.data('name')); - } -}); - -instance.web_mobile.Menu = instance.web_mobile.MobileWidget.extend({ - - template: "Menu", - - init: function(session, element_id, secondary_menu_id) { - this._super(session, element_id); - this.secondary_menu_id = secondary_menu_id; - this.$secondary_menu = $("#" + secondary_menu_id); - this.menu = false; - }, - start: function() { - this._super.apply(this, arguments); - this.rpc("/web/menu/load", {}, this.on_loaded); - }, - on_loaded: function(data) { - var self = this; - this.data = data; - this.header = new instance.web_mobile.Header(this, "oe_header"); - this.header.start(); - this.footer = new instance.web_mobile.Footer(this, "oe_footer"); - this.footer.start(); - this.$el.html(this.render(this.data)); - this.$el.find("[data-role=header]").find('h1').html('Applications'); - this.$el.find("[data-role=header]").find('#home').hide(); - this.$el.find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new instance.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage($("#oe_shortcuts"), "slide", false, true); - } - }); - this.$el.find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new instance.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); - this.$el.add(this.$secondary_menu).find("#content").find('a').click(this.on_menu_click); - $.mobile.changePage("#oe_menu", "slide", false, true); - }, - on_menu_click: function(ev, id) { - var $menu = $(ev.currentTarget); - id = $menu.data('menu'); - ev.preventDefault(); - ev.stopPropagation(); - for (var i = 0; i < this.data.data.children.length; i++) { - if (this.data.data.children[i].id == id) { - this.children = this.data.data.children[i]; - } - } - this.$el - .removeClass("login_valid") - .addClass("secondary_menu"); - if(!$('[id^="oe_sec_menu_'+id+'"]').html()){ - $('<div id="oe_sec_menu_'+id+'" data-role="page" data-url="oe_sec_menu_'+id+'"> </div>').appendTo('#moe'); - this.secondary = new instance.web_mobile.Secondary(this, "oe_sec_menu_"+id, this.children); - this.secondary.start(); - }else{ - $.mobile.changePage('#oe_sec_menu_'+id, "slide", false, true); - } - } -}); - -instance.web_mobile.Secondary = instance.web_mobile.MobileWidget.extend({ - - template: "Menu.secondary", - - init: function(session, element_id, secondary_menu_id) { - this._super(session, element_id); - this.data = secondary_menu_id; - }, - start: function(ev, id) { - var self = this; - var v = { menu : this.data }; - this.$el.html(this.render(v)); - this.$el.find("[data-role=header]").find("h1").html(this.data.name); - this.$el.add(this.$secondary_menu).find('#content').find("a").click(this.on_menu_click); - this.$el.find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - $.mobile.changePage("#"+this.element_id, "slide", false, true); - }, - on_menu_click: function(ev, id) { - $menu = $(ev.currentTarget); - id = $menu.data('menu'); - name = $menu.data('name'); - ev.preventDefault(); - ev.stopPropagation(); - var child_len = 0; - for (var i = 0; i < this.data.children.length; i++) { - for (var j=0; j < this.data.children[i].children.length; j++) { - if (this.data.children[i].children[j].id == id) { - this.children = this.data.children[i].children[j]; - child_len = this.children.children.length; - } - } - } - if (child_len > 0) { - this.$el - .addClass("secondary_menu"); - if(!$('[id^="oe_sec_menu_'+id+'"]').html()){ - $('<div id="oe_sec_menu_'+id+'" data-role="page" data-url="oe_sec_menu_'+id+'"> </div>').appendTo('#moe'); - this.secondary = new instance.web_mobile.Secondary(this, "oe_sec_menu_"+id, this.children); - this.secondary.start(); - }else{ - $.mobile.changePage('#oe_sec_menu_'+id, "slide", false, true); - } - }else { - if(!$('[id^="oe_list_'+id+'"]').html()){ - $('<div id="oe_list_'+id+'" data-role="page" data-url="oe_list_'+id+'"> </div>').appendTo('#moe'); - this.listview = new instance.web_mobile.ListView(this, "oe_list_"+id, id); - this.listview.start(); - }else{ - $.mobile.changePage('#oe_list_'+id, "slide", false, true); - } - } - jQuery("#oe_header").find("h1").html($menu.data('name')); - } -}); - -instance.web_mobile.Options = instance.web_mobile.MobileWidget.extend({ - - template: "Options", - - start: function() { - var self = this; - this.$el.html(this.render(this)); - this.$el.find("[data-role=header]").find('h1').html('Preference'); - this.$el.find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - this.$el.find("[data-role=content]").find('a').click(function(){ - $('#oe_login').empty(); - window.location.replace('/mobile'); - }); - $.mobile.changePage("#oe_options", "slide", false, true); - } -}); - -}; diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js deleted file mode 100644 index a5e02f418bb..00000000000 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ /dev/null @@ -1,215 +0,0 @@ -/*--------------------------------------------------------- - * OpenERP Web Mobile Form View - *---------------------------------------------------------*/ - -openerp.web_mobile.form_mobile = function (instance) { - -instance.web_mobile.FormView = instance.web_mobile.MobileWidget.extend({ - - template: 'FormView', - - init: function(session, element_id, list_id, action, head_title, resmodel, viewid) { - this._super(session, element_id); - this.list_id = list_id; - this.action = action; - this.head_title = head_title; - this.resmodel = resmodel; - this.viewid = viewid; - }, - start: function() { - var self = this; - var id = this.list_id; - var model = this.action.res_model || this.resmodel; - if(this.action){ - var view_id = this.action.views[1][0]; - }else{ - var view_id = this.viewid; - } - this.dataset = new instance.web.DataSetSearch(this, model, null, null); - var context = new instance.web.CompoundContext(this.dataset.get_context()); - this.dataset.read_slice([]).then(function (result) { - for (var i = 0; i < result.length; i++) { - if (result[i].id == id) { - self.datarecord = result[i]; - } - } - self.rpc("/web/view/load", {"model": model, "view_id": view_id, "view_type": "form", context: context}, self.on_loaded) - }); - }, - on_loaded: function(result) { - var self = this; - var fields = result.fields; - var view_fields = result.arch.children; - var get_fields = this.get_fields(view_fields); - var values = self.datarecord; - for (var j = 0; j < view_fields.length; j++) { - if (view_fields[j].tag == 'notebook') { - var notebooks = view_fields[j]; - } - } - self.hidden_fields(get_fields,fields); - self.$el.html(self.render({'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : values ,'temp_flag':'1'})); - self.$el.find("[data-role=header]").find('h1').html(self.head_title); - self.$el.find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - self.$el.find('[data-role=collapsible-set]').find('[data-role=collapsible]').each(function(i){ - 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.$el.find('#o2m_m2m').click(function(ev) { - ev.preventDefault(); - ev.stopPropagation(); - var relational = $(this).attr('for'); - var rel_field = fields[relational]; - var rel_ids = values[relational]; - var head = rel_field.string; - if (rel_ids) { - var list_ids = []; - var datasearch = new instance.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}).then(function(listrec){ - _.each(listrec, function(i) { - list_ids.push(i.id); - }); - _.extend(rel_field.context,{"html_name_get" : true}); - var dataset = new instance.web.DataSet(self, rel_field.relation,rel_field.context); - dataset.name_get(list_ids,function(res){ - var additional = ""; - if(res['html_name_get']){ - additional = res['display']; - } - if(!$('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html()){ - $('<div id="oe_list_'+relational+'_'+self.element_id+'" data-role="page" data-url="oe_list_'+relational+'_'+self.element_id+'"> </div>').appendTo('#moe'); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html(instance.web.qweb.render("ListView", {'records' : res,'data': additional})); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('h1').html(head); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").click(function(ev){ - ev.preventDefault(); - ev.stopPropagation(); - var head_title = $(this).text(); - var listid = $(ev.currentTarget).data('id'); - if(!$('[id^="oe_form_'+listid+rel_field.relation+'"]').html()){ - $('<div id="oe_form_'+listid+rel_field.relation+'" data-role="page" data-url="oe_form_'+listid+rel_field.relation+'"> </div>').appendTo('#moe'); - this.formview = new instance.web_mobile.FormView(self, "oe_form_"+listid+rel_field.relation, listid, '', head, rel_field.relation, false); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+listid+rel_field.relation, "slide", false, true); - } - }); - $.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); - } - }); - }); - } - }); - self.$el.find('#m2o_btn').click(this.open_m2o_form); - $.mobile.changePage("#"+self.element_id, "slide", false, true); - self.formatdata('', '', '', '',self.element_id,'slider'); - }, - open_m2o_form : function(ev) { - ev.preventDefault(); - ev.stopPropagation(); - var head = $(this).find('a').attr('name'); - var selected_id = $(this).find('a').attr('value'); - var select_model = $(this).attr('for'); - if(selected_id){ - if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ - $('<div id="oe_form_'+selected_id+select_model+'" data-role="page" data-url="oe_form_'+selected_id+select_model+'"> </div>').appendTo('#moe'); - this.formview = new instance.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+selected_id+select_model, "slide", false, true); - } - } - }, - get_fields: function(view_fields, fields) { - this.fields = fields || []; - for (var i=0; i < view_fields.length; i++){ - if (view_fields[i].tag == 'field') { - this.fields.push(view_fields[i]); - } - if (view_fields[i].tag == 'group') { - this.get_fields(view_fields[i].children, this.fields); - } - if (view_fields[i].tag == 'level') { - this.get_fields(view_fields[i].children, this.fields); - } - if (view_fields[i].tag == 'page') { - this.get_fields(view_fields[i].children, this.fields); - } - } - return this.fields; - }, - formatdata: function(getfields, fields, result, data, id, flag){ - if(flag == "element") { - for(var i = 0; i < getfields.length; i++) { - if (getfields[i].attrs.widget == "progressbar") { - $("#progress").progressbar({value: data[getfields[i].attrs.name]}) - } - $('[id^="'+id+'"]').find('input').each(function() { - // Set Date and Datetime field for main form - if($(this).attr('id') == getfields[i].attrs.name) { - if(fields[getfields[i].attrs.name].type == "date") { - $("#"+getfields[i].attrs.name).datepicker(); - }else if(fields[getfields[i].attrs.name].type == "datetime" || fields[getfields[i].attrs.name].type == "time") { - $("#"+getfields[i].attrs.name).datetimepicker(); - } - // Temp: Set as disabled - $("#"+getfields[i].attrs.name).attr('disabled', 'true'); - if(result.fields[getfields[i].attrs.name]){ - var dateresult = instance.web.format_value(data[getfields[i].attrs.name], {"widget": result.fields[getfields[i].attrs.name].type}); - $(this).val(dateresult); - } - } - $('[id^="'+id+'"]').find('#website').each(function(){ - $(this).css('display','inline-block'); - $(this).css('width','60%'); - }); - $('[id^="'+id+'"]').find('#email').each(function(){ - $(this).css('display','inline-block'); - $(this).css('width','60%'); - }); - $('[id^="'+id+'"]').find('#email_from').each(function(){ - $(this).css('display','inline-block'); - $(this).css('width','60%'); - }); - }); - // Temp: Selection set as disabled - $('[id^="'+id+'"]').find('select').each(function() { - $(this).find('option').attr('disabled', 'true') - }); - } - } - if(flag == "slider") { - $('[id^="'+id+'"]').find('#slider').each(function() { - $(this).slider({ disabled: "true" }); - }); - $('[id^="'+id+'"]').find('.ui-selectmenu').each(function(){ - $(this).click(function() { - $(this).css('top', '-9999px'); - $(this).css('left', '-9999px'); - }); - }); - } - }, - 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'; - } - } - } -}); - -}; diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js deleted file mode 100644 index 7c39efb17f0..00000000000 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ /dev/null @@ -1,74 +0,0 @@ -/*--------------------------------------------------------- - * OpenERP Web Mobile List View - *---------------------------------------------------------*/ - -openerp.web_mobile.list_mobile = function (instance) { - -instance.web_mobile.ListView = instance.web_mobile.MobileWidget.extend({ - - template: 'ListView', - - init: function(session, element_id, list_id) { - this._super(session, element_id); - this.list_id = list_id; - }, - start: function() { - this.rpc('/web/menu/action', {'menu_id': this.list_id}, this.on_menu_action_loaded); - }, - on_menu_action_loaded: function(data) { - var self = this; - if (data.action.length) { - this.action = data.action[0][2]; - return this.rpc('/web/listview/load', { - model: this.action.res_model, - view_id: this.action.views[0][0], - view_type: "tree", - context: this.action.context, - toolbar: false - }, this.on_search_data); - } - }, - on_search_data: function(ev){ - var self = this; - var list_ids = []; - var datasearch = new instance.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}).then(function(listresult){ - _.each(listresult, function(i) { - list_ids.push(i.id); - }); - _.extend(self.action.context,{"html_name_get" : true}); - var dataset = new instance.web.DataSet(self, datasearch.model,datasearch.context); - dataset.name_get(list_ids,function(res){ - var additional = ""; - if(res['html_name_get']){ - additional = res['display']; - } - self.$el.html(self.render({'records': res, 'data': additional })); - self.$el.find("[data-role=header]").find('h1').html(self.action.name); - self.$el.find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - self.$el.find("a#list-id").click(self.on_list_click); - $.mobile.changePage("#"+self.element_id, "slide", false, true); - self.$el.find("a#list-id").find('span').addClass('desc'); - }); - }); - }, - on_list_click: function(ev) { - var $record = $(ev.currentTarget); - var self = this; - ev.preventDefault(); - ev.stopPropagation(); - id = $record.data('id'); - head_title = $.trim($record.text()); - if(!$('[id^="oe_form_'+id+this.action.res_model+'"]').html()){ - $('<div id="oe_form_'+id+this.action.res_model+'" data-role="page" data-url="oe_form_'+id+this.action.res_model+'"> </div>').appendTo('#moe'); - this.formview = new instance.web_mobile.FormView(this, "oe_form_"+id+this.action.res_model, id, this.action, head_title, '' ,''); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+id+this.action.res_model, "slide", false, true); - } - } - }); -}; diff --git a/addons/web_mobile/static/src/js/web_mobile.js b/addons/web_mobile/static/src/js/web_mobile.js deleted file mode 100644 index 119ffe1916f..00000000000 --- a/addons/web_mobile/static/src/js/web_mobile.js +++ /dev/null @@ -1,9 +0,0 @@ -/*--------------------------------------------------------- - * OpenERP Web Mobile - *---------------------------------------------------------*/ - -openerp.web_mobile = function(instance) { - openerp.web_mobile.chrome_mobile(instance); - openerp.web_mobile.list_mobile(instance); - openerp.web_mobile.form_mobile(instance); -}; diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html deleted file mode 100755 index 5e811f99b48..00000000000 --- a/addons/web_mobile/static/src/web_mobile.html +++ /dev/null @@ -1,66 +0,0 @@ -<!DOCTYPE html>
-<html style="height: 100%">
-<head>
- <meta charset="utf-8" />
- <title>OpenERP Web Mobile</title>
-
- <link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery-ui-1.8.9.custom.css"/>
- <link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery.mobile-1.0a4.1.css"/>
- <link rel="stylesheet" href="/web_mobile/static/src/css/web_mobile.css"/>
-
- <script type="text/javascript" src="/web/static/lib/jquery/jquery-1.6.4.js"></script>
- <script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.8.17.custom.min.js"></script>
- <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.js/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>
- <script type="text/javascript" src="/web/static/lib/datejs/core.js"></script>
- <script type="text/javascript" src="/web/static/lib/datejs/extras.js"></script>
- <script type="text/javascript" src="/web/static/lib/datejs/parser.js"></script>
- <script type="text/javascript" src="/web/static/lib/datejs/sugarpak.js"></script>
- <script type="text/javascript" src="/web/static/lib/datejs/time.js"></script>
- <script type="text/javascript" src="/web/static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js"></script>
-
- <script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
- <script type="text/javascript" src="/web/static/lib/novajs/src/nova.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/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>
- <script type="text/javascript" src="/web_mobile/static/src/js/list_mobile.js"></script>
- <script type="text/javascript" src="/web_mobile/static/src/js/form_mobile.js"></script>
-
- <script type="text/javascript">
- var QWeb;
- $(function() {
- if (window.location.pathname != "/web_mobile/static/src/web_mobile.html") {
- window.location.replace('/mobile');
- }
- var oe = openerp.init();
- openerp.web_mobile(oe);
- oe.web_mobile.mobilewebclient("moe");
- });
- </script>
-</head>
-<body>
- <div id="moe" class="openerp"></div>
-</body>
-</html>
diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml deleted file mode 100644 index e26cc916ae6..00000000000 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ /dev/null @@ -1,332 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- vim:fdl=1: ---> -<templates id="template" xml:space="preserve"> - -<t t-name="WebClient"> - <div data-role="page" id="oe_login"></div> - <div id="oe_header" /> - <div id="oe_footer" /> - <div data-role="page" id="oe_shortcuts"></div> - <div data-role="page" id="oe_menu"></div> - <div data-role="page" id="oe_options"></div> -</t> - -<t t-name="Login"> - <div data-role="header" data-theme="b" data-position="fixed"> - <h1>OpenERP</h1> - </div> - <div data-role="content"> - <fieldset> - <div data-role="fieldcontain"> - <label for="database" class="select">Database:</label> - <select id="database" name="database" data-native-menu="false"> - <t t-if="db_list"> - <t t-foreach="db_list" t-as="opt"> - <option t-att-value="opt"><t t-esc="opt"/></option> - </t> - </t> - </select> - <label for="login">Login:</label> - <input type="text" id="login" name="login" t-att-value="selected_login || ''" /> - <label for="password">Password:</label> - <input type="password" id="password" name="password" t-att-value="selected_password || ''" /> - <a id="login_btn" data-theme="c" href="#" data-role="button">Login</a> - <div class="login_error_message ui-btn-inner ui-btn-corner-all"> - <span class="ui-btn-text">Bad username or password</span> - </div> - </div> - </fieldset> - </div> - <div data-role="footer" data-theme="b" data-position="fixed"> - <h1>Powered by openerp.com</h1> - </div> -</t> - -<t t-name="Header"> - <div data-role="header" data-theme="b" data-position="fixed"> - <h1></h1> - <a id="home" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#" title="Home" data-theme="b"></a> - </div> -</t> - -<t t-name="Footer"> - <div data-role="footer" data-theme="b" data-position="fixed"> - <div data-role="navbar"> - <ul> - <li><a id="shrotcuts" href="#" title="Favourite" data-theme="b" data-icon="star" >Favourite</a></li> - <li><a id="preference" href="#" title="Preference" data-theme="b" data-icon="gear">Preference</a></li> - </ul> - </div> - </div> -</t> - -<t t-name="Shortcuts"> - <t t-call="Header" /> - <div id="content" data-role="content"> - <ul data-role="listview" data-inset="true"> - <li data-theme="c" t-foreach="sc" t-as="opt"> - <a href="#" t-att-data-menu="opt.id" t-att-data-name="opt.name" t-att-data-res="opt.res_id"> - <span><t t-esc="opt.name"/></span> - </a> - </li> - </ul> - </div> -</t> - -<t t-name="Menu"> - <t t-call="Header" /> - <div id="content" data-role="content"> - <ul data-role="listview" data-inset="true"> - <li data-theme="c" t-foreach="data.children" t-as="menu"> - <a href="#" t-att-data-menu="menu.id" t-att-data-name="menu.name"> - <span><t t-esc="menu.name"/></span> - </a> - </li> - </ul> - </div> - <t t-call="Footer" /> -</t> - -<t t-name="Menu.secondary"> - <t t-call="Header" /> - <div id="content" data-role="content"> - <t t-foreach="menu.children" t-as="menu1" > - <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview"> - <li data-role="list-divider"> - <t t-if="(menu1.children.length)"> - <t t-esc="menu1.name"/> - </t> - <t t-if="!(menu1.children.length)"> - <a href="#" t-attf-id="menu_#{menu1.id}" t-att-data-menu="menu1.id" t-att-data-name="menu1.name"> - <t t-esc="menu1.name"/> - </a> - </t> - </li> - <t t-if="menu1.children.length"> - <li data-theme="c" t-foreach="menu1.children" t-as="childmenu" > - <a href="#" t-attf-id="menu_#{childmenu.id}" t-att-data-menu="childmenu.id" t-att-data-name="childmenu.name"> - <t t-esc="childmenu.name" /> - </a> - </li> - </t> - </ul> - </t> - </div> -</t> - -<t t-name="Options"> - <t t-call="Header" /> - <div data-role="content"> - <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview"> - <li data-theme="c"> - <a id="logout">Logout</a> - </li> - </ul> - </div> -</t> - -<t t-name="ListView"> - <t t-call="Header" /> - <div id="content" data-role="content"> - <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"> - <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"> - <span> - <t t-esc="data1" /> - </span> - </t> - </t> - </a> - <t t-foreach="data" t-as="data1"> - <t t-esc="data1[0]" /> - </t> - </li> - </ul> - </t> - </div> -</t> - -<t t-name="FormView"> - <t t-if="temp_flag"> - <t t-call="Header" /> - </t> - <div data-role="content"> - <form> - <t t-foreach="get_fields" t-as="field"> - <div data-role="fieldcontain"> - <t t-if="fields[field.attrs.name].type == 'char'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name]"> - <input type="text" t-att-id="field.attrs.name" readonly="true" t-att-value="values[field.attrs.name]"/> - </t> - <t t-if="!(values[field.attrs.name])"> - <input type="text" value="" readonly="true" t-att-id="field.attrs.name"/> - </t> - <t t-if="(field.attrs.name == 'email' or field.attrs.name == 'email_from') and values[field.attrs.name]"> - <a t-att-href="'mailto:'+values[field.attrs.name]"><img src="/web/static/src/img/icons/terp-mail-message-new.png" /></a> - </t> - <t t-if="field.attrs.name == 'website' and values[field.attrs.name]"> - <a t-att-href="values[field.attrs.name]"><img src="/web/static/src/img/icons/gtk-ok.png" title="Open this resource"/></a> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'text' or fields[field.attrs.name].type == 'text_wiki'"> - <label for=""> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <textarea name="" id="" readonly="true"></textarea> - </t> - <t t-if="fields[field.attrs.name].type == 'integer'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name]"> - <input t-att-id="field.attrs.name" type="text" t-att-value="values[field.attrs.name]" readonly="true"/> - </t> - <t t-if="!values[field.attrs.name]" readonly="true"> - <input t-att-id="field.attrs.name" type="text" value=""/> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'float_time'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name]"> - <input t-att-id="field.attrs.name" type="text" t-att-value="values[field.attrs.name]" readonly="true"/> - </t> - <t t-if="!values[field.attrs.name]" readonly="true"> - <input t-att-id="field.attrs.name" type="text" value=""/> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'float'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name] and field.attrs.name=='progress_rate'"> - <div id="progress" value="" title="Percent of tasks closed according to total of tasks to do..."></div> - </t> - <t t-if="!(values[field.attrs.name]) and field.attrs.name=='progress_rate'"> - <div id="progress" value="" title="Percent of tasks closed according to total of tasks to do..."></div> - </t> - <t t-if="values[field.attrs.name] and field.attrs.name!='progress_rate'"> - <input t-att-id="field.attrs.name" type="text" t-att-value="values[field.attrs.name]" readonly="true"/> - </t> - <t t-if="!values[field.attrs.name] and field.attrs.name!='progress_rate'" readonly="true"> - <input t-att-id="field.attrs.name" type="text" value=""/> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'date'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name]"> - <input t-att-id="field.attrs.name" readonly="true" type="text" data-role="datebox" t-att-value="values[field.attrs.name]"/> - </t> - <t t-if="!(values[field.attrs.name])"> - <input t-att-id="field.attrs.name" readonly="true" type="text" value=""/> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'datetime' or fields[field.attrs.name].type == 'time'"> - <label t-att-for="field.attrs.name"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <t t-if="values[field.attrs.name]"> - <input t-att-id="field.attrs.name" readonly="true" type="text" t-att-value="values[field.attrs.name]"/> - </t> - <t t-if="!(values[field.attrs.name])"> - <input t-att-id="field.attrs.name" readonly="true" type="text" value=""/> - </t> - </t> - <t t-if="fields[field.attrs.name].type == 'boolean'"> - <div data-role="fieldcontain"> - <label for="slider"><t t-esc="fields[field.attrs.name].string" /> :</label> - <select name="slider" id="slider" data-role="slider"> - <t t-if="values[field.attrs.name]"> - <option value="on" selected="true">On</option> - <option value="off">Off</option> - </t> - <t t-if="!values[field.attrs.name]"> - <option value="on">On</option> - <option value="off" selected="true">Off</option> - </t> - </select> - </div> - </t> - <t t-if="fields[field.attrs.name].type == 'selection'"> - <label t-att-for="field.attrs.name" class="select"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <select t-att-id="field.attrs.name" data-native-menu="false"> - <t t-foreach="fields[field.attrs.name].selection" t-as="opt"> - <t t-if="opt[0] == values[field.attrs.name]"> - <option t-att-value="opt[0]"><t t-esc="opt[1]"/></option> - </t> - </t> - </select> - </t> - <t t-if="fields[field.attrs.name].type == 'many2one'"> - <label for="" class="select"> - <t t-if="!(field.attrs.string)" t-esc="fields[field.attrs.name].string"></t> - <t t-if="field.attrs.string" t-esc="field.attrs.string"></t>: - </label> - <ul data-role="listview" data-inset="true" data-theme="d"> - <li id="m2o_btn" data-theme="c" t-att-for="fields[field.attrs.name].relation"> - <a id="formbutton" href="#" title="Form View" t-att-value="values[field.attrs.name][0]" t-att-name="values[field.attrs.name][1]"> - <t t-esc="values[field.attrs.name][1]"/> - </a> - </li> - </ul> - </t> - <t t-if="fields[field.attrs.name].type == 'one2many' or fields[field.attrs.name].type == 'many2many' "> - <ul data-role="listview" data-inset="true" data-theme="d"> - <li id="o2m_m2m" data-theme="c" t-att-for="field.attrs.name"> - <a href="#"> - <t t-esc="fields[field.attrs.name].string"/> - </a> - </li> - </ul> - </t> - </div> - </t> - <t t-if="notebooks"> - <div data-role="collapsible-set"> - <t t-foreach="notebooks.children" t-as="page"> - <t t-if="page.attrs.invisible"> - <div style="display:none;" data-collapsed="true" data-role="collapsible" t-att-id="page.attrs.string"> - <h3><t t-esc="page.attrs.string"></t></h3> - <div id="page_content" /> - </div> - </t> - <t t-if="!page.attrs.invisible"> - <div data-collapsed="true" data-role="collapsible" t-att-id="page.attrs.string"> - <h3><t t-esc="page.attrs.string"></t></h3> - <div id="page_content" /> - </div> - </t> - </t> - </div> - </t> - </form> - </div> -</t> -</templates> |
