summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_editor.js
diff options
context:
space:
mode:
authorVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-10-10 18:54:41 +0530
committerVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-10-10 18:54:41 +0530
commit2ea38a65aa2392ef5429faef2b675e630a35b985 (patch)
tree7e704dc0862a0128d87824edf19cd4aa682f2dfd /addons/web/static/src/js/view_editor.js
parent081cca81003c596e8fe5cd845cf134cbf7f9b92c (diff)
parent82dfc1516034c086115c90b33c6d22c3a07c1bd5 (diff)
[MERGE] merge with main view editor branch.
bzr revid: vme@tinyerp.com-20111010132441-34xm5a1f1emtlziy
Diffstat (limited to 'addons/web/static/src/js/view_editor.js')
-rw-r--r--addons/web/static/src/js/view_editor.js317
1 files changed, 158 insertions, 159 deletions
diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js
index eecf54253ea..4ab03a88a0d 100644
--- a/addons/web/static/src/js/view_editor.js
+++ b/addons/web/static/src/js/view_editor.js
@@ -15,52 +15,52 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
},
View_editor : function(){
- var self = this;
- var action = {
- name:'ViewEditor',
- context:this.session.user_context,
- domain: [["model", "=", this.dataset.model]],
- res_model : 'ir.ui.view',
- views : [[false, 'list']],
- type: 'ir.actions.act_window',
- target: "current",
- limit : 80,
- auto_search : true,
- flags: {
- sidebar: false,
- views_switcher: false,
- action_buttons:false,
- search_view:false,
- pager:false,
- radio:true
- },
- };
- var action_manager = new openerp.web.ActionManager(this);
- this.dialog = new openerp.web.Dialog(this,{
- modal: true,
- title: 'ViewEditor',
- width: 750,
- height: 500,
- buttons: {
- "Create": function(){
- //to do
- },
- "Edit": function(){
- self.xml_id = 0 ;
- self.get_data();
+ var self = this;
+ var action = {
+ name:'ViewEditor',
+ context:this.session.user_context,
+ domain: [["model", "=", this.dataset.model]],
+ res_model : 'ir.ui.view',
+ views : [[false, 'list']],
+ type: 'ir.actions.act_window',
+ target: "current",
+ limit : 80,
+ auto_search : true,
+ flags: {
+ sidebar: false,
+ views_switcher: false,
+ action_buttons:false,
+ search_view:false,
+ pager:false,
+ radio:true
+ },
+ };
+ var action_manager = new openerp.web.ActionManager(this);
+ this.dialog = new openerp.web.Dialog(this,{
+ modal: true,
+ title: 'ViewEditor',
+ width: 750,
+ height: 500,
+ buttons: {
+ "Create": function(){
+ //to do
+ },
+ "Edit": function(){
+ self.xml_id = 0 ;
+ self.get_data();
+ },
+ "Close": function(){
+ $(this).dialog('destroy');
+ }
},
- "Close": function(){
- $(this).dialog('destroy');
- }
- },
- });
- this.dialog.start();
- this.dialog.open();
- action_manager.appendTo(this.dialog);
- action_manager.do_action(action);
+ });
+ this.dialog.start();
+ this.dialog.open();
+ action_manager.appendTo(this.dialog);
+ action_manager.do_action(action);
},
- check_attr: function(xml ,tag, level) {
+ check_attr: function(xml, tag, level) {
var obj = new Object();
obj.child_id = [];
obj.id = this.xml_id++;
@@ -90,22 +90,22 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
return obj;
},
- save_object: function(val, parent_list, child_obj_list) {
+ save_object : function(val, parent_list, child_obj_list) {
var self = this;
var check_id = parent_list[0];
var p_list = parent_list.slice(1);
if (val.child_id.length != 0) {
- $.each(val.child_id, function(key, val) {
- if (val.id == check_id) {
- if (p_list.length != 0) {
+ _.each(val.child_id, function(val, key) {
+ if (val.id==check_id) {
+ if (p_list.length!=0) {
self.save_object(val, p_list, child_obj_list);
} else {
val.child_id = child_obj_list;
- return;
+ return false;
}
}
});
- }else{
+ } else {
val.child_id = child_obj_list;
}
},
@@ -115,17 +115,17 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
var child_obj_list = [];
var children_list = $(xml).filter(root).children();
var parents = $(children_list[0]).parents().get();
- _.each(children_list, function( child_node ){
+ _.each(children_list, function (child_node) {
var string = self.check_attr(child_node,child_node.tagName.toLowerCase(),parents.length);
child_obj_list.push(string);
});
if (children_list.length != 0) {
var parents = $(children_list[0]).parents().get();
if (parents.length <= parent_list.length) {
- parent_list.splice(parents.length-1);
+ parent_list.splice(parents.length - 1);
}
parent_list.push(parent_id);
- $.each(main_object, function(key, val) {
+ _.each(main_object, function (val, key) {
self.save_object(val, parent_list.slice(1), child_obj_list);
});
}
@@ -157,11 +157,12 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
get_data: function() {
var self = this;
var view_id =(($("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
- var ve_dataset = new openerp.web.DataSet(this,'ir.ui.view');
+ var ve_dataset = new openerp.web.DataSet(this, 'ir.ui.view');
ve_dataset.read_ids([parseInt(view_id)], ['arch'], function (arch) {
one_object = self.parse_xml(arch[0].arch,view_id);
+ one_object.arch = arch[0].arch;
dataset = new openerp.web.DataSetSearch(self, 'ir.ui.view', null, null);
- dataset.read_slice([],{domain : [['inherit_id','=',parseInt(view_id)]]},function (result) {
+ dataset.read_slice([], {domain : [['inherit_id','=', parseInt(view_id)]]}, function (result) {
_.each(result, function(res) {
self.inherit_view(one_object, res);
});
@@ -170,8 +171,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
});
});
},
-
- parent_child_list: function(one_object, p_list) {
+ parent_child_list : function(one_object, p_list) {
var self = this;
_.each(one_object , function(element){
if(element.child_id.length != 0){
@@ -181,11 +181,12 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
});
return p_list;
},
- inherit_view: function(one_object, result){
+ inherit_view : function(one_object, result){
var self = this;
var root = $(result.arch).filter('*');
var xml_list = [];
var xpath_object ;
+ var part_expr = [];
if (root[0].tagName.toLowerCase() == "data") {
xml_list = $(root[0]).children();
} else {
@@ -256,7 +257,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
return obj;
},
- search_object: function(val ,list , xpath_object){
+ search_object : function(val ,list , xpath_object){
var self = this;
if(xpath_object.length != 0){
var main_list = _.flatten(val.att_list);
@@ -277,12 +278,11 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
}
},
-
- increase_level :function(val, level){
+ increase_level: function(val, level) {
var self = this;
- val.level = level;
- $.each(val.child_id, function(key, val) {
- self.increase_level(val,level+1);
+ val.level = level;
+ _.each(val.child_id, function(val, key) {
+ self.increase_level(val, level + 1);
});
},
@@ -305,124 +305,123 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
}
});
- this.dialog.start().open();
- this.dialog.$element.html(QWeb.render('view_editor', {
- 'data': one_object['main_object'],
- }));
+ this.dialog.start().open();
+ this.dialog.$element.html(QWeb.render('view_editor', {
+ 'data': one_object['main_object'],
+ }));
- $("tr[id^='viewedit-']").click(function() {
- $("tr[id^='viewedit-']").removeClass('ui-selected');
- $(this).addClass('ui-selected');
- });
+ $("tr[id^='viewedit-']").click(function() {
+ $("tr[id^='viewedit-']").removeClass('ui-selected');
+ $(this).addClass('ui-selected');
+ });
- $("img[id^='parentimg-']").click(function() {
- if ($(this).attr('src') == '/web/static/src/img/collapse.gif'){
- $(this).attr('src', '/web/static/src/img/expand.gif');
- self.on_expand(this);
- }else{
- $(this).attr('src', '/web/static/src/img/collapse.gif');
- var id = this.id.split('-')[1];
- self.on_collapse(this,one_object['parent_child_id'],one_object['main_object']);
- }
- });
- $("img[id^='side-']").click(function() {
- var side = $(this).closest("tr[id^='viewedit-']")
- var id_tr = (side.attr('id')).split('-')[1];
- var img = side.find("img[id='parentimg-"+id_tr+"']").attr('src'); ;
- var level = side.attr('level');
- var list_shift =[];
- var last_tr;
- var cur_tr = side;
- list_shift.push(side);
- var next_tr;
- switch (this.id)
- {
- case "side-add":
- break;
- case "side-remove":
- break;
- case "side-edit":
- break;
- case "side-up":
- while(1){
- var prev_tr = cur_tr.prev();
- if(level >= prev_tr.attr('level') || prev_tr.length==0){
- last_tr = prev_tr;
- break;
+ $("img[id^='parentimg-']").click(function() {
+ if ($(this).attr('src') == '/web/static/src/img/collapse.gif') {
+ $(this).attr('src', '/web/static/src/img/expand.gif');
+ self.on_expand(this);
+ } else {
+ $(this).attr('src', '/web/static/src/img/collapse.gif');
+ var id = this.id.split('-')[1];
+ self.on_collapse(this,one_object['parent_child_id'], one_object['main_object']);
+ }
+ });
+ $("img[id^='side-']").click(function() {
+ var side = $(this).closest("tr[id^='viewedit-']")
+ var id_tr = (side.attr('id')).split('-')[1];
+ var img = side.find("img[id='parentimg-"+id_tr+"']").attr('src'); ;
+ var level = side.attr('level');
+ var list_shift =[];
+ var last_tr;
+ var cur_tr = side;
+ list_shift.push(side);
+ var next_tr;
+ switch (this.id) {
+ case "side-add":
+ break;
+ case "side-remove":
+ break;
+ case "side-edit":
+ break;
+ case "side-up":
+ while (1) {
+ var prev_tr = cur_tr.prev();
+ if(level >= prev_tr.attr('level') || prev_tr.length == 0) {
+ last_tr = prev_tr;
+ break;
+ }
+ cur_tr = prev_tr;
}
- cur_tr = prev_tr;
- }
- if(img){
- while(1){
- next_tr = side.next();
- if(next_tr.attr('level') <= level || next_tr.length==0){
+ if (img) {
+ while (1) {
+ next_tr = side.next();
+ if (next_tr.attr('level') <= level || next_tr.length == 0) {
+ break;
+ } else {
+ list_shift.push(next_tr);
+ side = next_tr;
+ }
+ }
+ }
+ if (last_tr.length != 0 && last_tr.attr('level') == level) {
+ _.each(list_shift, function(rec) {
+ $(last_tr).before(rec);
+ });
+ }
+ break;
+ case "side-down":
+ if (img) {
+ while (1) {
+ next_tr = cur_tr.next();
+ if (next_tr.attr('level') <= level || next_tr.length == 0) {
+ last_tr = next_tr;
break;
- }else{
+ } else {
list_shift.push(next_tr);
- side = next_tr;
- }
- }
+ cur_tr = next_tr;
+ }
+ }
}
- if(last_tr.length!=0 && last_tr.attr('level') == level){
- _.each(list_shift,function(rec){
- $(last_tr).before(rec);
- });
+ else {
+ last_tr = cur_tr.next();
}
- break;
- case "side-down":
- if(img){
- while(1){
- next_tr = cur_tr.next();
- if(next_tr.attr('level') <= level || next_tr.length==0){
- last_tr = next_tr;
- break;
- }else{
- list_shift.push(next_tr);
- cur_tr = next_tr;
- }
- }
- }
- else{
- last_tr = cur_tr.next();
- }
- if(last_tr.length != 0 && last_tr.attr('level')==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){
- $("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') <= level || next_tr.length==0){break;}
- next_tr.hide();
- last_tr = next_tr;
+ if (last_tr.length != 0 && last_tr.attr('level') == 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) {
+ $("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') <= level || next_tr.length == 0) break;
+ next_tr.hide();
+ last_tr = next_tr;
+ }
}
+ list_shift.reverse();
+ _.each(list_shift, function(rec) {
+ $(last_tr).after(rec);
+ });
}
- list_shift.reverse();
- _.each(list_shift,function(rec){
- $(last_tr).after(rec);
- });
+ break;
}
- break;
- }
- });
+ });
},
on_expand: function(self){
var level = parseInt($(self).closest("tr[id^='viewedit-']").attr('level'));
var cur_tr = $(self).closest("tr[id^='viewedit-']");
- while (1){
+ while (1) {
var nxt_tr = cur_tr.next();
if (parseInt(nxt_tr.attr('level')) > level){
cur_tr = nxt_tr;
nxt_tr.hide();
- }else return nxt_tr;
+ } else return nxt_tr;
}
},
- on_collapse: function(self,parent_child_id,id,main_object){
- var id = parseInt(self.id.split('-')[1]);
- var datas = _.detect(parent_child_id,function(res){
+ on_collapse: function(self, parent_child_id, id, main_object) {
+ var id = self.id.split('-')[1];
+ var datas = _.detect(parent_child_id,function(res) {
return res.key == id;
});
- _.each(datas.value,function(rec){
+ _.each(datas.value, function(rec) {
var tr = $("tr[id='viewedit-"+rec+"']");
tr.find("img[id='parentimg-"+rec+"']").attr('src','/web/static/src/img/expand.gif');
tr.show();