summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_editor.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/view_editor.js')
-rw-r--r--addons/web/static/src/js/view_editor.js27
1 files changed, 16 insertions, 11 deletions
diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js
index 9fdd4f0bca1..8733a191b21 100644
--- a/addons/web/static/src/js/view_editor.js
+++ b/addons/web/static/src/js/view_editor.js
@@ -515,21 +515,18 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
}
},
do_node_add: function(side){
- var self = this;
+ 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 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 = $(parent_tr).find('a').text();
+ 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', [], function(result) {
var fields = _.keys(result);
fields.push(" "),fields.sort();
- var property_to_check = [];
- _.each([tr, parent_tr],function(element) {
- property_to_check.push(
- _.detect(_.keys(_CHILDREN),function(res){
- return _.str.include(element, res);
- }));
- });
self.on_add_node(property_to_check, fields);
});
},
@@ -990,7 +987,7 @@ instance.web.ViewEditor = instance.web.OldWidget.extend({
render_new_field :function( result ) {
var self = this;
var action = {
- context: {'default_model_id': result.id, 'manual': true, 'module' : result.modules},
+ context: {'default_model_id': result.id, 'manual': true, 'module' : result.model},
res_model: "ir.model.fields",
views: [[false, 'form']],
type: 'ir.actions.act_window',
@@ -1168,8 +1165,16 @@ var _CHILDREN = {
'label': [],
'button' : [],
'newline': [],
- 'separator': []
+ 'separator': [],
+ 'sheet' :['group','field','notebook','label','separator','div','page'],
+ 'kanban' : ['field'],
+ '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'];
+
var _ICONS = ['','STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD',
'STOCK_CANCEL', 'STOCK_CDROM', 'STOCK_CLEAR', 'STOCK_CLOSE', 'STOCK_COLOR_PICKER',
'STOCK_CONNECT', 'STOCK_CONVERT', 'STOCK_COPY', 'STOCK_CUT', 'STOCK_DELETE',