summaryrefslogtreecommitdiff
path: root/addons/web_mobile/static/src
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2012-09-12 20:02:58 +0200
committerFabien Pinckaers <fp@tinyerp.com>2012-09-12 20:02:58 +0200
commitcd004c2c77e95cf3ab3c2889806b5ce54d107874 (patch)
treedfb67dc396f8e7836862a7e6616815daa6f812f5 /addons/web_mobile/static/src
parent2fd2189c9c117489b5a3d0d83fc5197035796c73 (diff)
[IMP] remove web mobile
bzr revid: fp@tinyerp.com-20120912180258-gvmg8987f0stld0r
Diffstat (limited to 'addons/web_mobile/static/src')
-rw-r--r--addons/web_mobile/static/src/css/web_mobile.css29
-rw-r--r--addons/web_mobile/static/src/js/chrome_mobile.js352
-rw-r--r--addons/web_mobile/static/src/js/form_mobile.js215
-rw-r--r--addons/web_mobile/static/src/js/list_mobile.js74
-rw-r--r--addons/web_mobile/static/src/js/web_mobile.js9
-rwxr-xr-xaddons/web_mobile/static/src/web_mobile.html66
-rw-r--r--addons/web_mobile/static/src/xml/web_mobile.xml332
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>