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);
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 = side.attr('level');
+ var level = parseInt(side.attr('level'));
var list_shift =[];
var last_tr;
var cur_tr = side;
}
});
},
-
+ 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){
+ return element.view_id == view_id;
+ });
+ var obj = self.get_view_object(view_xml_id, one_object['main_object'], []);
+ if(($(arch.arch).filter("data")).length != 0 && view_xml_id != 0){
+ var check_list = _.flatten(obj[0].child_id[0].att_list);
+ arch.arch = _.detect($(arch.arch).children(), function(xml_child){
+ var temp_obj = self.check_attr(xml_child, xml_child.tagName.toLowerCase());
+ var main_list = _.flatten(temp_obj.att_list);
+ check_list = _.uniq(check_list);
+ var insert = _.intersection(main_list,check_list);
+ if(insert.length == check_list.length ){return xml_child;}
+ });
+ }
+ return self.get_node(arch.arch, obj[0].child_id[0], parseInt(id_tr), [], parseInt(level),
+ parseInt(view_id), arch, move_direct);
+ },
+
+ get_view_object: function(view_xml_id, one_object,result){
+ var self = this;
+ if(result.length==0){
+ var check = _.detect(one_object , function(obj){
+ return view_xml_id==obj.id;
+ });
+ if(check){result.push(check);};
+ _.each(one_object, function(obj){
+ self.get_view_object(view_xml_id, obj.child_id, result);
+ });
+ }
+ return result;
+ },
+
+ get_node: function(arch1, obj, id, child_list, level, view_id, arch, move_direct){
+ var self = this;
+ var children_list = $(arch1).children();
+ var list_obj_xml = _.zip(children_list,obj.child_id);
+ if(id){
+ if(obj.id == id){
+ var id;
+ var parent = $(arch1).parents();
+ var index = _.indexOf(child_list,obj)
+ var re_insert_obj = child_list.splice(index,1);
+ if(move_direct == "down"){
+ var next = $(arch1).next();
+ $(next).after(arch1);
+ child_list.splice(index+1, 0, re_insert_obj[0]);
+ }else{
+ var prev = $(arch1).prev();
+ $(prev).before(arch1);
+ child_list.splice(index-1, 0, re_insert_obj[0]);
+ }
+ parent = parent[parent.length-1];
+ var convert_to_utf = "";
+ var xml_serilalizer = new XMLSerializer();
+ var stream = {
+ write : function(string)
+ {convert_to_utf = convert_to_utf + string + "";}
+ };
+ xml_serilalizer.serializeToStream(parent, stream, "UTF-8");
+ convert_to_utf = convert_to_utf.replace('xmlns="http://www.w3.org/1999/xhtml"', "");
+ convert_to_utf = '<?xml version="1.0" encoding="utf-8"?>' + convert_to_utf;
+ arch.arch = convert_to_utf;
+ dataset = new openerp.web.DataSet(this, 'ir.ui.view');
+ dataset.write(parseInt(view_id),{"arch":convert_to_utf},function(r){
+ });
+ }
+ if(obj.level <= level){
+ _.each(list_obj_xml, function(child_node){
+ self.get_node(child_node[0], child_node[1], id, obj.child_id, level, view_id, arch, move_direct);
+ });
+ }
+ }
+ },
+
- 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){