diff options
| author | Géry Debongnie <ged@odoo.com> | 2015-03-10 08:49:13 +0100 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2015-03-18 09:01:49 +0100 |
| commit | c8a8fec622bfefd13b80115f656aaf3543a5ec1f (patch) | |
| tree | 96fbf41e304ac3bf3a6a00bd3e2346f104ce275c /addons/web_view_editor/static/src | |
| parent | 4b77bbf51c9e7d1e0ba5af1a7cbc162b1ec68810 (diff) | |
[REF] web_X: update to the new module system
Diffstat (limited to 'addons/web_view_editor/static/src')
| -rw-r--r-- | addons/web_view_editor/static/src/js/view_editor.js | 252 |
1 files changed, 146 insertions, 106 deletions
diff --git a/addons/web_view_editor/static/src/js/view_editor.js b/addons/web_view_editor/static/src/js/view_editor.js index 6471e090f85..f4a50b5b580 100644 --- a/addons/web_view_editor/static/src/js/view_editor.js +++ b/addons/web_view_editor/static/src/js/view_editor.js @@ -1,13 +1,27 @@ -openerp.web_view_editor = function(instance) { -var _t = instance.web._t; -var QWeb = instance.web.qweb; -instance.web.ViewManager.include({ +odoo.define(['web.ActionManager', 'web.core', 'web.data', 'web.Dialog', 'web.formats', 'web.Registry', 'web.session', 'web.utils', 'web.ViewManager', 'web.Widget'], function (require) { +"use strict"; + +var ActionManager = require('web.ActionManager'); +var core = require('web.core'); +var data = require('web.data'); +var Dialog = require('web.Dialog'); +var formats = require('web.formats'); +var Registry = require('web.Registry'); +var session = require('web.session'); +var utils = require('web.utils'); +var ViewManager = require('web.ViewManager'); +var Widget = require('web.Widget'); + +var QWeb = core.qweb; +var _t = core._t; + +ViewManager.include({ on_debug_changed:function(evt){ var val = $(evt.target).data('action'), current_view = this.active_view.controller; if(val === "manage_views"){ if (current_view.fields_view && current_view.fields_view.arch) { - var view_editor = new instance.web_view_editor.ViewEditor(current_view, current_view.$el, this.dataset, current_view.fields_view.arch); + var view_editor = new ViewEditor(current_view, current_view.$el, this.dataset, current_view.fields_view.arch); view_editor.start(); } else { this.do_warn(_t("Manage Views"), @@ -18,14 +32,15 @@ instance.web.ViewManager.include({ } } }); -instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ - init: function(parent, element_id, dataset, view, options) { + +var ViewEditor = Widget.extend({ + init: function(parent, element_id, dataset) { this._super(parent); this.parent = parent; - this.dataset = new instance.web.DataSetSearch(this, 'ir.ui.view', null, null), + this.dataset = new data.DataSetSearch(this, 'ir.ui.view', null, null); this.model = dataset.model; this.xml_element_id = 0; - this.property = instance.web_view_editor.ViewEditor.property_widget; + this.property = ViewEditor.property_widget; this.one_object = false; }, start: function() { @@ -36,7 +51,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ action_title = _.str.sprintf(_t("Manage Views (%s)"), this.model); var action = { name: action_title, - context: this.session.user_context, + context: session.user_context, domain: [["model", "=", this.model]], res_model: 'ir.ui.view', views: [[false, 'list']], @@ -56,7 +71,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ select_view_id: self.parent.fields_view.view_id } }; - this.view_edit_dialog = new instance.web.Dialog(this, { + this.view_edit_dialog = new Dialog(this, { title: action_title, buttons: [ {text: _t("Create"), click: function() { self.on_create_view(); }}, @@ -67,13 +82,13 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }).open(); this.view_edit_dialog.on("closing", this, function(){window.location.reload();}); this.main_view_id = this.parent.fields_view.view_id; - this.action_manager = new instance.web.ActionManager(this); + this.action_manager = new ActionManager(this); this.action_manager.appendTo(this.view_edit_dialog.$el); $.when(this.action_manager.do_action(action)).done(function() { var viewmanager = self.action_manager.inner_widget; var controller = viewmanager.active_view.controller; $(controller.groups).bind({ - 'selected': function (e, ids, records, deselected) { + 'selected': function (e, ids) { self.main_view_id = ids[0]; } }); @@ -81,7 +96,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, on_create_view: function() { var self = this; - this.create_view_dialog = new instance.web.Dialog(this, { + this.create_view_dialog = new Dialog(this, { title: _.str.sprintf(_t("Create a view (%s)"), self.model), buttons: [ {text: _t("Save"), click: function () { @@ -128,9 +143,9 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }); }, do_save_view: function(values) { - def = $.Deferred(); - var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null); - var model_dataset = new instance.web.DataSetSearch(this, 'ir.model', null, null); + var def = $.Deferred(); + var field_dataset = new data.DataSetSearch(this, this.model, null, null); + var model_dataset = new data.DataSetSearch(this, 'ir.model', null, null); var view_string = "", field_name = false, self = this; field_dataset.call( 'fields_get', []).done(function(fields) { _.each(['name', 'x_name'], function(value) { @@ -186,7 +201,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } }, create_View_Node: function(node){ - ViewNode = { + var ViewNode = { 'level': ($(node).parents()).length + 1, 'id': this.xml_element_id += 1, 'att_list': [], @@ -230,7 +245,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, parse_xml: function(arch, view_id) { //First element of att_list must be element tagname. - main_object = { + var main_object = { 'level': 0, 'id': this.xml_element_id +=1, 'att_list': ["view"], @@ -265,7 +280,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ parent_child_list : function(one_object, parent_list) { var self = this; _.each(one_object , function(element) { - if (element.child_id.length != 0) { + if (element.child_id.length !== 0) { parent_list.push({"key": element.id, "value": _.pluck(element.child_id, 'id')}); self.parent_child_list(element.child_id, parent_list); } @@ -299,13 +314,15 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, inherit_apply: function(expr_list ,arch_object ,xpath_arch_object) { var self = this; + var temp_list; + if (xpath_arch_object.length) { var check = expr_list[0], obj = false; switch (check.length) { case 2: if (parseInt(check[1])) { //for field[3] - var temp_list = _.select(arch_object, function(element) { + temp_list = _.select(arch_object, function(element) { return _.include(_.flatten(element.att_list), check[0]); }); obj = arch_object[_.indexOf(arch_object, temp_list[parseInt(check[1]) - 1])]; @@ -326,11 +343,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ break; case 1: //for /form/notebook - var temp_list = _.select(arch_object, function(element) { + temp_list = _.select(arch_object, function(element) { return _.include(_.flatten(element.att_list), check[0]); }); - if (temp_list.length != 0) { - expr_list.length == 1 ? obj = temp_list[0] : expr_list.shift(); + if (temp_list.length !== 0) { + expr_list.length === 1 ? obj = temp_list[0] : expr_list.shift(); } break; } @@ -353,7 +370,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ increase_level: function(val, level) { var self = this; val.level = level; - _.each(val.child_id, function(val, key) { + _.each(val.child_id, function(val) { self.increase_level(val, level + 1); }); }, @@ -373,7 +390,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ edit_view: function(one_object) { var self = this; this.one_object = one_object; - this.edit_xml_dialog = new instance.web.Dialog(this, { + this.edit_xml_dialog = new Dialog(this, { title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model), buttons: [ {text: _t("Inherited View"), click: function(){ @@ -404,7 +421,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ action_buttons: false } }; - var action_manager = new instance.web.ActionManager(self); + var action_manager = new ActionManager(self); action_manager.do_action(action); }}, {text: _t("Close"), click: function(){ @@ -417,7 +434,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ _.each(_PROPERTIES, function(val, key) { if (! val.length) no_property_att.push(key); }); - this.edit_xml_dialog.$el.html(QWeb.render('view_editor', {'data': one_object['main_object'], 'no_properties': no_property_att})); + this.edit_xml_dialog.$el.html(QWeb.render('view_editor', {'data': one_object.main_object, 'no_properties': no_property_att})); this.edit_xml_dialog.$el.find("tr[id^='viewedit-']").click(function() { self.do_select_row(this.id.split('-')[1]); }); @@ -431,14 +448,14 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ inherited_view: function(selected_row){ var self = this; var row_id = parseInt((selected_row.attr('id')).split('-')[1]); - var obj = self.get_object_by_id(row_id,self.one_object['main_object'], [])[0]; + var obj = self.get_object_by_id(row_id,self.one_object.main_object, [])[0]; var view_name = this.model + '.inherit_' + Math.round(Math.random() * 1000); var view_find = selected_row; var view_id; var min_level = parseInt(selected_row.attr('level')); while (1) { view_find = view_find.prev(); - if (view_find.length == 0 || + if (view_find.length === 0 || self.edit_xml_dialog.$el.find(view_find).find('a').text().search("view_id") != -1 && parseInt(view_find.attr('level')) < min_level ) { view_id = parseInt($(view_find).find('a').text().replace(/[^0-9]+/g, '')); @@ -449,14 +466,14 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } } var val = _.detect(obj.att_list, function(val) {return val[0] == "name";}); - var priority = _.detect(self.one_object['arch'], function(val) {return val.view_id == view_id;}); + var priority = _.detect(self.one_object.arch, function(val) {return val.view_id === view_id;}); var arch = _.str.sprintf("<?xml version='1.0'?>\n\t <field name='%s' position='after'> </field>", val[1]); var vals = {'model': self.model, 'name': view_name, 'priority': priority.priority + 1, 'type': "form", 'arch': arch,'inherit_id':self.main_view_id}; this.dataset.create(vals).done(function(id) { var arch_to_obj = self.parse_xml(arch,id); obj.child_id.push(arch_to_obj[0]); - self.one_object['parent_child_id'] = self.parent_child_list(self.one_object['main_object'],[]); - self.one_object['arch'].push({'view_id':id,"arch":arch,'priority': priority.priority + 1}); + self.one_object.parent_child_id = self.parent_child_list(self.one_object.main_object,[]); + self.one_object.arch.push({'view_id':id,"arch":arch,'priority': priority.priority + 1}); self.increase_level(arch_to_obj[0],obj.level+1); self.render_inherited_view(selected_row,arch_to_obj[0]); }); @@ -464,7 +481,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ render_inherited_view: function(selected_row,obj){ var self = this,row_id = parseInt((selected_row.attr('id')).split('-')[1]); var clone = this.create_clone(selected_row.clone(),obj); - if (selected_row.find("img[id^='parentimg-']").length == 0) { + if (selected_row.find("img[id^='parentimg-']").length === 0) { ($(selected_row.find('a').parent()).siblings('td')) .append($('<img width="16" height="16"></img>').attr('src', '/web/static/src/img/collapse.gif'). attr('id','parentimg-'+ row_id).click(function(){ @@ -492,8 +509,8 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }else{ while (1) { view_find = view_find.prev(); - if (view_find.length == 0 || - (self.edit_xml_dialog.$el.find(view_find).find('a').text()).search("view_id") != -1 + if (view_find.length === 0 || + (self.edit_xml_dialog.$el.find(view_find).find('a').text()).search("view_id") !== -1 && parseInt(view_find.attr('level')) < min_level ) { view_id = parseInt(($(view_find).find('a').text()).replace(/[^0-9]+/g, '')); view_xml_id = parseInt((view_find.attr('id')).split('-')[1]); @@ -526,18 +543,20 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } }, do_node_add: function(side){ - var self = this,property_to_check = []; - var tr = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object['main_object'], [])[0].att_list[0]; + var self = this; + var property_to_check = []; + var tr = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object.main_object, [])[0].att_list[0]; var parent_tr = ($(side).prevAll("tr[level=" + String(this.one_object.clicked_tr_level - 1) + "]"))[0]; - var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null); - parent_tr = self.get_object_by_id(parseInt($(parent_tr).attr('id').replace(/[^0-9]+/g, '')), this.one_object['main_object'], [])[0].att_list[0]; + var field_dataset = new data.DataSetSearch(this, this.model, null, null); + parent_tr = self.get_object_by_id(parseInt($(parent_tr).attr('id').replace(/[^0-9]+/g, '')), this.one_object.main_object, [])[0].att_list[0]; _.each([tr, parent_tr],function(element) { var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; property_to_check.push(value); }); field_dataset.call( 'fields_get', []).done(function(result) { var fields = _.keys(result); - fields.push(" "),fields.sort(); + fields.push(" "); + fields.sort(); self.on_add_node(property_to_check, fields, self.inject_position(parent_tr,tr)); }); }, @@ -548,21 +567,22 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ return ['After','Before']; return ['After','Before','Inside']; }, - do_node_edit: function(side) { + do_node_edit: function() { var self = this; - var result = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object['main_object'], []); + var result = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object.main_object, []); if (result.length && result[0] && result[0].att_list) { var properties = _PROPERTIES[result[0].att_list[0]]; self.on_edit_node(properties); } }, do_node_down: function(cur_tr, img) { - var self = this, next_tr, last_tr, tr_to_move = []; + var self = this; + var next_tr, last_tr, tr_to_move = []; tr_to_move.push(cur_tr); if (img) { while (1) { next_tr = cur_tr.next(); - if ( parseInt(next_tr.attr('level')) <= this.one_object.clicked_tr_level || next_tr.length == 0) { + if ( parseInt(next_tr.attr('level')) <= this.one_object.clicked_tr_level || next_tr.length === 0) { last_tr = next_tr; break; } else { @@ -576,15 +596,15 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ if ((self.edit_xml_dialog.$el.find(last_tr).find('a').text()).search("view_id") != -1) { return false; } - if (last_tr.length != 0 && parseInt(last_tr.attr('level')) == this.one_object.clicked_tr_level) { + if (last_tr.length !== 0 && parseInt(last_tr.attr('level')) == this.one_object.clicked_tr_level) { var last_tr_id = (last_tr.attr('id')).split('-')[1]; img = last_tr.find("img[id='parentimg-" + last_tr_id + "']").attr('src'); if (img) { self.edit_xml_dialog.$el.find("img[id='parentimg-" + last_tr_id + "']"). attr('src', '/web/static/src/img/expand.gif'); while (1) { - var next_tr = last_tr.next(); - if (next_tr.attr('level') <= this.one_object.clicked_tr_level || next_tr.length == 0) break; + next_tr = last_tr.next(); + if (next_tr.attr('level') <= this.one_object.clicked_tr_level || next_tr.length === 0) break; next_tr.hide(); last_tr = next_tr; } @@ -597,11 +617,16 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } }, do_node_up: function(cur_tr, img) { - var self = this, side = cur_tr, tr_to_move = []; + var self = this; + var side = cur_tr; + var tr_to_move = []; + var last_tr; + var next_tr; + tr_to_move.push(side); while (1) { var prev_tr = cur_tr.prev(); - if (this.one_object.clicked_tr_level >= parseInt(prev_tr.attr('level')) || prev_tr.length == 0) { + if (this.one_object.clicked_tr_level >= parseInt(prev_tr.attr('level')) || prev_tr.length === 0) { last_tr = prev_tr; break; } @@ -612,7 +637,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ attr('src', '/web/static/src/img/expand.gif'); while (1) { next_tr = side.next(); - if (parseInt(next_tr.attr('level')) <= this.one_object.clicked_tr_level || next_tr.length == 0) { + if (parseInt(next_tr.attr('level')) <= this.one_object.clicked_tr_level || next_tr.length === 0) { break; } else { next_tr.hide(); @@ -621,8 +646,8 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } } } - if (last_tr.length != 0 && parseInt(last_tr.attr('level')) == this.one_object.clicked_tr_level && - (self.edit_xml_dialog.$el.find(last_tr).find('a').text()).search("view_id") == -1) { + if (last_tr.length !== 0 && parseInt(last_tr.attr('level')) == this.one_object.clicked_tr_level && + (self.edit_xml_dialog.$el.find(last_tr).find('a').text()).search("view_id") === -1) { _.each(tr_to_move, function(rec) { $(last_tr).before(rec); }); @@ -631,9 +656,9 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, do_save_update_arch: function(move_direct, update_values) { var self = this; - var arch = _.detect(self.one_object['arch'], function(element) - {return element.view_id == self.one_object.clicked_tr_view[0]}); - var obj = self.get_object_by_id(this.one_object.clicked_tr_view[1],this.one_object['main_object'], []); + var arch = _.detect(self.one_object.arch, function(element) + {return element.view_id === self.one_object.clicked_tr_view[0];}); + var obj = self.get_object_by_id(this.one_object.clicked_tr_view[1],this.one_object.main_object, []); //for finding xpath tag from inherit view var xml_arch = QWeb.load_xml(arch.arch); if (xml_arch.childNodes[0].tagName == "data") { @@ -646,15 +671,15 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ insert = _.intersection(_.flatten(temp_obj.att_list),_.uniq(check_list)); if (insert.length == _.uniq(check_list).length ) {return xml_child;} }); - xml_arch = QWeb.load_xml(instance.web.xml_to_str(inherited_view)); + xml_arch = QWeb.load_xml(utils.xml_to_str(inherited_view)); } return self.do_save_xml(xml_arch.documentElement, obj[0].child_id[0],obj[0].child_id, move_direct, update_values,arch); }, get_object_by_id: function(id, one_object, result) { var self = this; - if (result.length == 0 ) { + if (result.length === 0 ) { var check = _.detect(one_object , function(obj) { - return id == obj.id; + return id === obj.id; }); if (check) {result.push(check);} _.each(one_object, function(obj) { @@ -679,21 +704,26 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ return clone; }, do_save_xml: function(arch1, obj, child_list, move_direct, update_values, arch){ - var self = this, children_list = $(arch1).children(),list_obj_xml; + var self = this; // blame this line if something terribly wrong happens + var children_list = $(arch1).children(); + var list_obj_xml; + var re_insert_obj; + try{list_obj_xml = _.zip(children_list, obj.child_id);}catch(err){return;} if (this.one_object.clicked_tr_id) { if (obj.id == this.one_object.clicked_tr_id) { - var parent = false, index = _.indexOf(child_list, obj); + var parent = false, + index = _.indexOf(child_list, obj); if (move_direct == "down") { var next = $(arch1).next(); $(next).after(arch1); - var re_insert_obj = child_list.splice(index, 1); + re_insert_obj = child_list.splice(index, 1); child_list.splice(index+1, 0, re_insert_obj[0]); parent = $(arch1).parents(); } else if (move_direct == "up") { var prev = $(arch1).prev(); $(prev).before(arch1); - var re_insert_obj = child_list.splice(index, 1); + re_insert_obj = child_list.splice(index, 1); child_list.splice(index-1, 0, re_insert_obj[0]); parent = $(arch1).parents(); } else if (move_direct == "update_node") { @@ -714,7 +744,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ object_xml = self.create_View_Node(temp_xml.childNodes[0]); (update_values[1] == "Inside")? object_xml.level = obj.level + 1:object_xml.level = obj.level; var clone = self.create_clone(tr_click.clone(),object_xml), - after_append = _.detect(self.one_object['parent_child_id'],function(ele){ + after_append = _.detect(self.one_object.parent_child_id,function(ele){ return self.one_object.clicked_tr_id == ele.key; }); after_append = (after_append)?_.last(after_append.value):self.one_object.clicked_tr_id; @@ -731,7 +761,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ child_list.splice(index - 1, 0, object_xml); break; case "Inside": - if (tr_click.find("img[id^='parentimg-']").length == 0) { + if (tr_click.find("img[id^='parentimg-']").length === 0) { ($(tr_click.find('a').parent()).siblings('td')) .append($('<img width="16" height="16"></img>').attr('src', '/web/static/src/img/collapse.gif'). attr('id','parentimg-'+ self.one_object.clicked_tr_id).click(function(){ @@ -749,10 +779,10 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ parent = $(arch1).parents(); } else if (move_direct == "remove_node") { parent = $(arch1).parents(); - if (parent.length == 0 || (parent[0].tagName.toLowerCase() == "data")) { + if (parent.length === 0 || (parent[0].tagName.toLowerCase() == "data")) { self.one_object.clicked_tr_id = self.one_object.clicked_tr_id -1; self.one_object.clicked_tr_level = self.one_object.clicked_tr_level - 1; - (parent.length == 0)?parent.push("remove_view"):false; + (parent.length === 0)?parent.push("remove_view"):false; } $(arch1).remove(); child_list.splice(index,1); @@ -762,7 +792,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ tr_element.remove(); }); cur_tr.remove(); - var parent_img = _.detect(self.one_object['parent_child_id'],function(element){ + var parent_img = _.detect(self.one_object.parent_child_id,function(element){ return _.include(element.value, self.one_object.clicked_tr_id); }); if(parent_img.value.length == 1){ @@ -770,9 +800,9 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ find("tr[id='viewedit-"+parent_img.key+"']"). find("img[id^='parentimg-']").remove(); } - self.one_object['parent_child_id'] = self.parent_child_list(self.one_object['main_object'],[]); + self.one_object.parent_child_id = self.parent_child_list(self.one_object.main_object,[]); } - var convert_to_utf = (parent.length != 0)? parent[parent.length-1]: arch1; + var convert_to_utf = (parent.length !== 0)? parent[parent.length-1]: arch1; if (convert_to_utf != "remove_view") { convert_to_utf = QWeb.tools.xml_node_to_string(convert_to_utf); convert_to_utf = convert_to_utf.replace('xmlns="http://www.w3.org/1999/xhtml"', ""); @@ -782,10 +812,10 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ } else { this.dataset.unlink([this.one_object.clicked_tr_view[0]]); } - if(move_direct == "add_node"){ + if(move_direct === "add_node"){ self.add_node_dialog.close(); self.on_select_img(clone.find("img[id='side-edit']")[0]); - self.one_object['parent_child_id'] = self.parent_child_list(self.one_object['main_object'],[]); + self.one_object.parent_child_id = self.parent_child_list(self.one_object.main_object,[]); } } if (obj.level <= this.one_object.clicked_tr_level) { @@ -803,7 +833,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }); }, get_list_tr: function(cur_tr,level){ - tr_list = []; + var tr_list = []; while (1) { var nxt_tr = cur_tr.next(); if (parseInt(nxt_tr.attr('level')) > level) { @@ -814,7 +844,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, on_collapse: function(collapse_img) { var self = this, id = collapse_img.id.split('-')[1]; - var datas = _.detect(self.one_object['parent_child_id'] , function(res) { + var datas = _.detect(self.one_object.parent_child_id , function(res) { return res.key == id; }); _.each(datas.value, function (rec) { @@ -825,7 +855,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }, on_edit_node: function(properties){ var self = this; - this.edit_node_dialog = new instance.web.Dialog(this,{ + this.edit_node_dialog = new Dialog(this,{ title: _t("Properties"), size: 'medium', buttons: [ @@ -891,19 +921,19 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ 'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'}, 'fonts' : {'name':'fonts', 'string': 'fonts', 'type': 'char'}, }; - var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []); + var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object.main_object, []); this.edit_node_dialog.$el.append('<table id="rec_table" style="width:400px" class="oe_form"></table>'); this.edit_widget = []; self.ready = $.when(self.on_groups(properties)).done(function () { - _PROPERTIES_ATTRIBUTES['groups']['selection'] = self.groups; - var values = _.keys( instance.web.form.widgets.map); + _PROPERTIES_ATTRIBUTES.groups.selection = self.groups; + var values = _.keys(core.form_widget_registry.map); values.push(''); values.sort(); - _PROPERTIES_ATTRIBUTES['widget']['selection'] = values; - var widgets = _.filter(_PROPERTIES_ATTRIBUTES, function (property) { return _.include(properties, property.name)}); + _PROPERTIES_ATTRIBUTES.widget.selection = values; + var widgets = _.filter(_PROPERTIES_ATTRIBUTES, function (property) { return _.include(properties, property.name);}); _.each(widgets, function(widget) { var type_widget = new (self.property.get_any([widget.type])) (self.edit_node_dialog, widget); - var value = _.detect(arch_val[0]['att_list'],function(res) { + var value = _.detect(arch_val[0].att_list,function(res) { return res instanceof Array? _.include(res, widget.name): false; }); @@ -924,8 +954,8 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ def.resolve(); } var group_ids = [], group_names = {}, groups = []; - var res_groups = new instance.web.DataSetSearch(this,'res.groups', null, null), - model_data = new instance.web.DataSetSearch(self,'ir.model.data', null, null); + var res_groups = new data.DataSetSearch(this,'res.groups', null, null), + model_data = new data.DataSetSearch(self,'ir.model.data', null, null); res_groups.read_slice([], {}).done(function (res_grp) { _.each(res_grp, function (res) { var key = res.id; @@ -951,7 +981,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ {'name': 'field_value','selection': fields, 'value': false, 'string': '','type': 'selection'}, {'name': 'position','selection': position, 'value': false, 'string': 'Position','type': 'selection'}]; this.add_widget = []; - this.add_node_dialog = new instance.web.Dialog(this,{ + this.add_node_dialog = new Dialog(this,{ title: _t("Properties"), size: 'medium', buttons: [ @@ -981,7 +1011,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ this.add_node_dialog.$el.append('<table id="rec_table" style="width:420px" class="oe_form"><tbody><tr></tbody></table>'); var table_selector = self.add_node_dialog.$el.find('table[id=rec_table] tbody'); _.each(render_list, function(node) { - type_widget = new (self.property.get_any([node.type])) (self.add_node_dialog, node); + var type_widget = new (self.property.get_any([node.type])) (self.add_node_dialog, node); if (node.name == "position") { table_selector.append('</tr><tr><td align="right" width="100px">' + node.string + '</td>' + type_widget.render() + '</tr>'); } else { @@ -996,7 +1026,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }); table_selector.find("td[id^=]").attr("width","100px"); self.add_node_dialog.$el.find('#new_field').click(function() { - model_data = new instance.web.DataSetSearch(self,'ir.model', null, null); + var model_data = new data.DataSetSearch(self,'ir.model', null, null); model_data.read_slice([], {domain: [['model','=', self.model]]}).done(function(result) { self.render_new_field(result[0]); }); @@ -1014,9 +1044,9 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ action_buttons: true } }; - var action_manager = new instance.web.ActionManager(self); + var action_manager = new ActionManager(self); $.when(action_manager.do_action(action)).done(function() { - var controller = action_manager.dialog_widget.views['form'].controller; + var controller = action_manager.dialog_widget.views.form.controller; controller.on("on_button_cancel", self, function(){ action_manager.destroy(); }); @@ -1024,14 +1054,15 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ action_manager.destroy(); var value =controller.fields.name.get('value'); self.add_node_dialog.$el.find('select[id=field_value]').append($("<option selected></option>").attr("value",value).text(value)); - _.detect(self.add_widget,function(widget){ - widget.name == "field_value"? widget.selection.push(value): false; + _.detect(self.add_widget, function(widget){ + widget.name === "field_value" ? widget.selection.push(value): false; }); }); }); } }); -instance.web_view_editor.ViewEditor.Field = instance.web.Class.extend({ + +ViewEditor.Field = core.Class.extend({ init: function(view, widget) { this.$el = view.$el; this.dirty = false; @@ -1057,17 +1088,18 @@ instance.web_view_editor.ViewEditor.Field = instance.web.Class.extend({ validate: function() { this.is_invalid = false; try { - var value = instance.web.parse_value(this.get_value(), this, ''); + var value = formats.parse_value(this.get_value(), this, ''); this.is_invalid = this.required && value === ''; } catch(e) { this.is_invalid = true; } }, render: function() { - return _.str.sprintf("<td id = %s>%s</td>", this.name, QWeb.render(this.template, {widget: this})) + return _.str.sprintf("<td id = %s>%s</td>", this.name, QWeb.render(this.template, {widget: this})); } }); -instance.web_view_editor.ViewEditor.FieldBoolean = instance.web_view_editor.ViewEditor.Field.extend({ + +ViewEditor.FieldBoolean = ViewEditor.Field.extend({ template : "vieweditor_boolean", start: function() { var self = this; @@ -1085,7 +1117,8 @@ instance.web_view_editor.ViewEditor.FieldBoolean = instance.web_view_editor.View return this.$el.find("input[id=" + this.name + "]").is(':checked')? "1" : null; } }); -instance.web_view_editor.ViewEditor.FieldChar = instance.web_view_editor.ViewEditor.Field.extend({ + +ViewEditor.FieldChar = ViewEditor.Field.extend({ template : "vieweditor_char", start: function () { var self = this; @@ -1101,7 +1134,8 @@ instance.web_view_editor.ViewEditor.FieldChar = instance.web_view_editor.ViewEdi return this.$el.find("input[id=" + this.name + "]").val(); } }); -instance.web_view_editor.ViewEditor.FieldSelect = instance.web_view_editor.ViewEditor.Field.extend({ + +ViewEditor.FieldSelect = ViewEditor.Field.extend({ template : "vieweditor_selection", start: function () { var self = this; @@ -1131,7 +1165,8 @@ instance.web_view_editor.ViewEditor.FieldSelect = instance.web_view_editor.ViewE return this.$el.find("select[id=" + this.name + "]").val(); } }); -instance.web_view_editor.ViewEditor.FieldSelectMulti = instance.web_view_editor.ViewEditor.FieldSelect.extend({ + +ViewEditor.FieldSelectMulti = ViewEditor.FieldSelect.extend({ start: function () { this._super(); this.$el.find("select[id=" + this.name + "]").css('height', '100px').attr("multiple", true); @@ -1142,12 +1177,13 @@ instance.web_view_editor.ViewEditor.FieldSelectMulti = instance.web_view_editor. if (!value) return false; _.each(this.selection, function(item) { if (_.include(value.split(','), item[0])) { - self.$el.find("select[id="+self.name+"] option[value='" + item[0] +"']").attr("selected",1) + self.$el.find("select[id="+self.name+"] option[value='" + item[0] +"']").attr("selected",1); } }); } }); -instance.web_view_editor.ViewEditor.FieldFloat = instance.web_view_editor.ViewEditor.FieldChar.extend({ + +ViewEditor.FieldFloat = ViewEditor.FieldChar.extend({ }); var _PROPERTIES = { @@ -1169,6 +1205,7 @@ var _PROPERTIES = { 'graph' : ['string', 'type'], 'calendar' : ['string', 'date_start', 'date_stop', 'date_delay', 'day_length', 'color', 'mode'] }; + var _CHILDREN = { 'form': ['notebook', 'group', 'field', 'label', 'button','board', 'newline', 'separator'], 'tree': ['field'], @@ -1189,6 +1226,7 @@ var _CHILDREN = { 'html_tag':['notebook', 'group', 'field', 'label', 'button','board', 'newline', 'separator'] //e.g.:xyz 'td' : ['field'] }; + // Generic html_tag list and can be added html tag in future. It's support above _CHILDREN dict's *html_tag* by default. // For specific child node one has to define tag above and specify children tag in list. Like above xyz example. var html_tag = ['div','h1','h2','h3','h4','h5','h6','td','tr']; @@ -1220,11 +1258,13 @@ var _ICONS = ['','STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD', 'terp-sale', 'terp-tools', 'terp-administration', 'terp-hr', 'terp-partner', 'terp-project', 'terp-report', 'terp-stock', 'terp-calendar', 'terp-graph' ]; -instance.web_view_editor.ViewEditor.property_widget = new instance.web.Registry({ - 'boolean' : 'instance.web_view_editor.ViewEditor.FieldBoolean', - 'selection_multi' : 'instance.web_view_editor.ViewEditor.FieldSelectMulti', - 'selection' : 'instance.web_view_editor.ViewEditor.FieldSelect', - 'char' : 'instance.web_view_editor.ViewEditor.FieldChar', - 'float' : 'instance.web_view_editor.ViewEditor.FieldFloat' + +ViewEditor.property_widget = new Registry({ + 'boolean' : ViewEditor.FieldBoolean, + 'selection_multi' : ViewEditor.FieldSelectMulti, + 'selection' : ViewEditor.FieldSelect, + 'char' : ViewEditor.FieldChar, + 'float' : ViewEditor.FieldFloat +}); + }); -}; |
