[IMP]Improvements in Manage View.

bzr revid: vme@tinyerp.com-20130405085224-yecygjxi39nd60h0
This commit is contained in:
Vidhin Mehta 2013-04-05 14:22:24 +05:30
parent 0f53186e2b
commit 77595a843e
1 changed files with 15 additions and 7 deletions

View File

@ -232,10 +232,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
return main_object; return main_object;
}, },
parse_xml: function(arch, view_id) { parse_xml: function(arch, view_id) {
//First element of att_list must be element tagname.
main_object = { main_object = {
'level': 0, 'level': 0,
'id': this.xml_element_id +=1, 'id': this.xml_element_id +=1,
'att_list': [], 'att_list': ["view"],
'name': _.str.sprintf("<view view_id = %s>", view_id), 'name': _.str.sprintf("<view view_id = %s>", view_id),
'child_id': [] 'child_id': []
}; };
@ -541,9 +542,16 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
field_dataset.call( 'fields_get', []).done(function(result) { field_dataset.call( 'fields_get', []).done(function(result) {
var fields = _.keys(result); var fields = _.keys(result);
fields.push(" "),fields.sort(); fields.push(" "),fields.sort();
self.on_add_node(property_to_check, fields); self.on_add_node(property_to_check, fields, self.inject_position(parent_tr,tr));
}); });
}, },
inject_position : function(parent_tag,current_tag){
if(parent_tag == "view")
return ['Inside'];
if(current_tag == "field")
return ['After','Before'];
return ['After','Before','Inside'];
},
do_node_edit: function(side) { do_node_edit: function(side) {
var self = this; 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'], []);
@ -941,11 +949,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
}); });
return def.promise(); return def.promise();
}, },
on_add_node: function(properties, fields){ on_add_node: function(properties, fields, position){
var self = this; var self = this;
var render_list = [{'name': 'node_type','selection': _.keys(_CHILDREN).sort(), 'value': 'field', 'string': 'Node Type','type': 'selection'}, var render_list = [{'name': 'node_type','selection': _.keys(_CHILDREN).sort(), 'value': 'field', 'string': 'Node Type','type': 'selection'},
{'name': 'field_value','selection': fields, 'value': false, 'string': '','type': 'selection'}, {'name': 'field_value','selection': fields, 'value': false, 'string': '','type': 'selection'},
{'name': 'position','selection': ['After','Before','Inside'], 'value': false, 'string': 'Position','type': 'selection'}]; {'name': 'position','selection': position, 'value': false, 'string': 'Position','type': 'selection'}];
this.add_widget = []; this.add_widget = [];
this.add_node_dialog = new instance.web.Dialog(this,{ this.add_node_dialog = new instance.web.Dialog(this,{
title: _t("Properties"), title: _t("Properties"),