diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index d0cc7d53eb3..7b68cdc3372 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -1,7 +1,6 @@ openerp.web.view_editor = function(openerp) { var _PROPERTIES = { - 'field' : ['name', 'string', 'required', 'readonly', 'select', 'domain', 'context', 'nolabel', 'completion', - 'colspan', 'widget', 'eval', 'ref', 'on_change', 'attrs', 'groups'], + 'field' : ['required', 'readonly'], 'form' : ['string', 'col', 'link'], 'notebook' : ['colspan', 'position', 'groups'], 'page' : ['string', 'states', 'attrs', 'groups'], @@ -31,6 +30,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ this.dataset = dataset; this.model = dataset.model; this.xml_id = 0; + this.property = openerp.web.ViewEditor.property_widget; }, start: function() { @@ -320,6 +320,17 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ case "side-remove": break; case "side-edit": + var tag, fld_name; + var tr = $(this).closest("tr[id^='viewedit-']").find('a').text(); + var tag_fld = tr.split(" "); + if (tag_fld.length > 3){ + tag = tag_fld[1].replace(/[^a-zA-Z 0-9]+/g,''); + fld_name = tag_fld[2].split("=")[1].replace(/[^a-zA-Z _ 0-9]+/g,''); + }else{ + tag = tag_fld[1].replace(/[^a-zA-Z 0-9]+/g,''); + } + var properties = _PROPERTIES[tag]; + self.on_edit_node(this,properties,fld_name); break; case "side-up": while(1){ @@ -406,7 +417,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ tr.show(); }); }, - on_edit_node:function(self,property,fld_name){ + on_edit_node:function(self,properties,fld_name){ var self = this; var result; this.dialog = new openerp.web.Dialog(this,{ @@ -427,17 +438,35 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ dataset.read_slice([],{domain : [['model','=',self.model]]},function (result) { db = new openerp.web.DataSetSearch(self,'ir.model.fields', null, null); db.read_slice([],{domain : [['model_id','=',result[0].id],['name','=',fld_name]]},function (res) { - var data = []; - _.each(property,function(record){ - var dict = {'key':record,'value':res[0][record]}; - data.push(dict); + _.each(properties,function(record){ + var type_widget = new (self.property.get_any(['undefined' , record, 'field'])) (false, false); + console.log("widget_view",type_widget); }); - console.log("check data+++",data); - /*self.dialog.$element.html(QWeb.render('Edit_Node_View',{ - 'res': res - }));*/ }); }); } }); +openerp.web.ViewEditor.FieldBoolean = openerp.web.form.FieldBoolean.extend({ + init: function(view, node) { + //this._super(view, node); + console.log("view++++",view); + console.log("nodoe+++++",node); + this.template = "FieldBoolean"; + }, + start: function() { + var self = this; + this._super.apply(this, arguments); + } +}); +openerp.web.ViewEditor.property_widget = new openerp.web.Registry({ + 'required' : 'openerp.web.ViewEditor.FieldBoolean', + 'readonly' : 'openerp.web.ViewEditor.FieldBoolean', + 'nolabel' : 'openerp.web.ViewEditor.FieldBoolean', + 'completion' : 'openerp.web.ViewEditor.FieldBoolean', + /*'widget' : '', + 'groups' : '', + 'position': '', + 'icon': '', + 'align': '' */ +}); }; \ No newline at end of file diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 957415c8043..04bd475fd1c 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1325,13 +1325,6 @@ - - - - - -
-
Export