summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_editor.js
diff options
context:
space:
mode:
authorVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-10-25 16:55:48 +0530
committerVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-10-25 16:55:48 +0530
commitc17c8a0bd10d5c9cedd6c34bc0110c02ecdcd6b2 (patch)
treeb4543c28941307f8ebdd60191f2eb2494139aad2 /addons/web/static/src/js/view_editor.js
parent1ee677eadbfa3e4c7d9836c48bea735f41f6a5a7 (diff)
parent55ad46220db83d2f5d6dd86d243d0d9843b74511 (diff)
[IMP]merge with main branch of view editor.
bzr revid: vme@tinyerp.com-20111025112548-eakr7fio6diovn2m
Diffstat (limited to 'addons/web/static/src/js/view_editor.js')
-rw-r--r--addons/web/static/src/js/view_editor.js70
1 files changed, 30 insertions, 40 deletions
diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js
index 29a3f083883..7828c4366c9 100644
--- a/addons/web/static/src/js/view_editor.js
+++ b/addons/web/static/src/js/view_editor.js
@@ -9,12 +9,10 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
this.model = dataset.model;
this.xml_id = 0;
},
-
start: function() {
this.View_editor();
},
-
- View_editor : function(){
+ View_editor : function() {
var self = this;
var action = {
name:'ViewEditor',
@@ -36,7 +34,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
},
};
var action_manager = new openerp.web.ActionManager(this);
- this.dialog = new openerp.web.Dialog(this,{
+ this.view_edit_dialog = new openerp.web.Dialog(this,{
modal: true,
title: 'ViewEditor',
width: 750,
@@ -54,12 +52,11 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
},
});
- this.dialog.start();
- this.dialog.open();
- action_manager.appendTo(this.dialog);
+ this.view_edit_dialog.start();
+ this.view_edit_dialog.open();
+ action_manager.appendTo(this.view_edit_dialog);
action_manager.do_action(action);
},
-
check_attr: function(xml, tag, level) {
var obj = new Object();
obj.child_id = [];
@@ -84,7 +81,6 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
obj.name = render_name;
return obj;
},
-
save_object: function(val, parent_list, child_obj_list) {
var self = this;
var check_id = parent_list[0];
@@ -104,8 +100,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
val.child_id = child_obj_list;
}
},
-
- xml_node_create: function(xml, root, parent_list, parent_id, main_object ){
+ xml_node_create: function(xml, root, parent_list, parent_id, main_object){
var self = this;
var child_obj_list = [];
var children_list = $(xml).filter(root).children();
@@ -127,21 +122,19 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
return main_object;
},
-
parse_xml: function(arch, view_id) {
- var self = this;
var root = $(arch).filter(":first")[0];
var tag = root.tagName.toLowerCase();
var obj ={'child_id':[],'id':this.xml_id++,'level':0,'att_list':[],'name':"<view view_id='"+view_id+"'>"};
- var root_object = self.check_attr(root,tag,0);
- obj.child_id = self.xml_node_create(arch, tag, [], this.xml_id-1, [root_object], [])
+ var root_object = this.check_attr(root,tag,0);
+ obj.child_id = this.xml_node_create(arch, tag, [], this.xml_id-1, [root_object], [])
return [obj];
},
-
get_data: function() {
var self = this;
+
var view_arch_list = [];
- var view_id =(($("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
+ var view_id =((this.view_edit_dialog.$element.find("input[name='radiogroup']:checked").parent()).parent()).attr('data-id');
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);
@@ -168,7 +161,7 @@ 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 = [];
@@ -236,11 +229,11 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
break;
}
- if(obj){
+ if(obj) {
check_list.shift();
if (check_list.length !=0){
self.full_path_search(check_list ,obj.child_id ,xpath_object);
- }else{
+ } else {
var level = obj.level+1;
self.increase_level(xpath_object[0], level)
obj.child_id.push(xpath_object[0]);
@@ -250,7 +243,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
else {
_.each(val,function(element){
- self.full_path_search(check_list ,element.child_id ,xpath_object);
+ self.full_path_search(check_list ,element.child_id ,xpath_object);
});
}
}
@@ -262,10 +255,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
self.increase_level(val, level + 1);
});
},
-
- edit_view : function(one_object){
+ edit_view: function(one_object) {
var self = this;
- this.dialog = new openerp.web.Dialog(this,{
+ this.edit_xml_dialog = new openerp.web.Dialog(this,{
modal: true,
title: 'Edit Xml',
width: 750,
@@ -282,16 +274,15 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
}
});
- this.dialog.start().open();
- this.dialog.$element.html(QWeb.render('view_editor', {
+ this.edit_xml_dialog.start().open();
+ this.edit_xml_dialog.$element.html(QWeb.render('view_editor', {
'data': one_object['main_object'],
}));
- $("tr[id^='viewedit-']").click(function() {
+ this.edit_xml_dialog.$element.find("tr[id^='viewedit-']").click(function() {
$("tr[id^='viewedit-']").removeClass('ui-selected');
$(this).addClass('ui-selected');
});
-
- $("img[id^='parentimg-']").click(function() {
+ this.edit_xml_dialog.$element.find("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);
@@ -301,8 +292,8 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
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-']");
+ this.edit_xml_dialog.$element.find("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 = parseInt(side.attr('level'));
@@ -378,7 +369,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
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');
+ this.edit_xml_dialog.$element.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') <= level || next_tr.length == 0) break;
@@ -399,7 +390,6 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
});
},
-
save_move_arch: function(one_object, view_id, view_xml_id, id_tr, level, move_direct){
var self = this;
var arch = _.detect(one_object['arch'],function(element){
@@ -476,9 +466,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
}
},
- on_expand: function(self){
- var level = parseInt($(self).closest("tr[id^='viewedit-']").attr('level'));
- var cur_tr = $(self).closest("tr[id^='viewedit-']");
+ on_expand: function(expand_img){
+ var level = parseInt($(expand_img).closest("tr[id^='viewedit-']").attr('level'));
+ var cur_tr = $(expand_img).closest("tr[id^='viewedit-']");
while (1) {
var nxt_tr = cur_tr.next();
if (parseInt(nxt_tr.attr('level')) > level){
@@ -487,14 +477,14 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
} else return nxt_tr;
}
},
-
- on_collapse: function(self, parent_child_id, id, main_object) {
- var id = self.id.split('-')[1];
+ on_collapse: function(collapse_img, parent_child_id, id, main_object) {
+ var self = this;
+ var id = collapse_img.id.split('-')[1];
var datas = _.detect(parent_child_id,function(res) {
return res.key == id;
});
_.each(datas.value, function(rec) {
- var tr = $("tr[id='viewedit-"+rec+"']");
+ var tr = self.edit_xml_dialog.$element.find("tr[id='viewedit-"+rec+"']");
tr.find("img[id='parentimg-"+rec+"']").attr('src','/web/static/src/img/expand.gif');
tr.show();
});