[imp] wip
bzr revid: nicolas.vanhoren@openerp.com-20120417120949-djxj7re89x0ae20m
This commit is contained in:
parent
827964936f
commit
6ca9b6ffad
|
@ -1,15 +1,15 @@
|
||||||
openerp.web.view_editor = function(openerp) {
|
openerp.web.view_editor = function(instance) {
|
||||||
var _t = openerp.web._t;
|
var _t = instance.web._t;
|
||||||
var QWeb = openerp.web.qweb;
|
var QWeb = instance.web.qweb;
|
||||||
openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
instance.web.ViewEditor = instance.web.OldWidget.extend({
|
||||||
init: function(parent, element_id, dataset, view, options) {
|
init: function(parent, element_id, dataset, view, options) {
|
||||||
this._super(parent);
|
this._super(parent);
|
||||||
this.element_id = element_id;
|
this.element_id = element_id;
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.dataset = new openerp.web.DataSetSearch(this, 'ir.ui.view', null, null),
|
this.dataset = new instance.web.DataSetSearch(this, 'ir.ui.view', null, null),
|
||||||
this.model = dataset.model;
|
this.model = dataset.model;
|
||||||
this.xml_element_id = 0;
|
this.xml_element_id = 0;
|
||||||
this.property = openerp.web.ViewEditor.property_widget;
|
this.property = instance.web.ViewEditor.property_widget;
|
||||||
this.one_object = false;
|
this.one_object = false;
|
||||||
},
|
},
|
||||||
start: function() {
|
start: function() {
|
||||||
|
@ -39,7 +39,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
select_view_id: self.parent.fields_view.view_id
|
select_view_id: self.parent.fields_view.view_id
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.view_edit_dialog = new openerp.web.Dialog(this, {
|
this.view_edit_dialog = new instance.web.Dialog(this, {
|
||||||
title: action_title,
|
title: action_title,
|
||||||
width: 850,
|
width: 850,
|
||||||
buttons: [
|
buttons: [
|
||||||
|
@ -51,7 +51,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
}).open();
|
}).open();
|
||||||
this.view_edit_dialog.on_close.add_last(function(){window.location.reload();});
|
this.view_edit_dialog.on_close.add_last(function(){window.location.reload();});
|
||||||
this.main_view_id = this.parent.fields_view.view_id;
|
this.main_view_id = this.parent.fields_view.view_id;
|
||||||
this.action_manager = new openerp.web.ActionManager(this);
|
this.action_manager = new instance.web.ActionManager(this);
|
||||||
this.action_manager.appendTo(this.view_edit_dialog);
|
this.action_manager.appendTo(this.view_edit_dialog);
|
||||||
$.when(this.action_manager.do_action(action)).then(function() {
|
$.when(this.action_manager.do_action(action)).then(function() {
|
||||||
var viewmanager = self.action_manager.inner_viewmanager,
|
var viewmanager = self.action_manager.inner_viewmanager,
|
||||||
|
@ -67,7 +67,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
},
|
},
|
||||||
on_create_view: function() {
|
on_create_view: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.create_view_dialog = new openerp.web.Dialog(this, {
|
this.create_view_dialog = new instance.web.Dialog(this, {
|
||||||
title: _.str.sprintf(_t("Create a view (%s)"), self.model),
|
title: _.str.sprintf(_t("Create a view (%s)"), self.model),
|
||||||
buttons: [
|
buttons: [
|
||||||
{text: _t("Save"), click: function () {
|
{text: _t("Save"), click: function () {
|
||||||
|
@ -115,8 +115,8 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
},
|
},
|
||||||
do_save_view: function(values) {
|
do_save_view: function(values) {
|
||||||
def = $.Deferred();
|
def = $.Deferred();
|
||||||
var field_dataset = new openerp.web.DataSetSearch(this, this.model, null, null);
|
var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null);
|
||||||
var model_dataset = new openerp.web.DataSetSearch(this, 'ir.model', null, null);
|
var model_dataset = new instance.web.DataSetSearch(this, 'ir.model', null, null);
|
||||||
var view_string = "", field_name = false, self = this;
|
var view_string = "", field_name = false, self = this;
|
||||||
field_dataset.call( 'fields_get', [], function(fields) {
|
field_dataset.call( 'fields_get', [], function(fields) {
|
||||||
_.each(['name', 'x_name'], function(value) {
|
_.each(['name', 'x_name'], function(value) {
|
||||||
|
@ -360,7 +360,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
edit_view: function(one_object) {
|
edit_view: function(one_object) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.one_object = one_object;
|
this.one_object = one_object;
|
||||||
this.edit_xml_dialog = new openerp.web.Dialog(this, {
|
this.edit_xml_dialog = new instance.web.Dialog(this, {
|
||||||
title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model),
|
title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model),
|
||||||
height: '90%',
|
height: '90%',
|
||||||
buttons: [
|
buttons: [
|
||||||
|
@ -392,7 +392,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
action_buttons: false
|
action_buttons: false
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var action_manager = new openerp.web.ActionManager(self);
|
var action_manager = new instance.web.ActionManager(self);
|
||||||
action_manager.do_action(action);
|
action_manager.do_action(action);
|
||||||
}},
|
}},
|
||||||
{text: _t("Close"), click: function(){
|
{text: _t("Close"), click: function(){
|
||||||
|
@ -517,7 +517,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
var self = this;
|
var self = this;
|
||||||
var tr = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object['main_object'], [])[0].att_list[0];
|
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 parent_tr = ($(side).prevAll("tr[level=" + String(this.one_object.clicked_tr_level - 1) + "]"))[0];
|
||||||
var field_dataset = new openerp.web.DataSetSearch(this, this.model, null, null);
|
var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null);
|
||||||
parent_tr = $(parent_tr).find('a').text();
|
parent_tr = $(parent_tr).find('a').text();
|
||||||
field_dataset.call( 'fields_get', [], function(result) {
|
field_dataset.call( 'fields_get', [], function(result) {
|
||||||
var fields = _.keys(result);
|
var fields = _.keys(result);
|
||||||
|
@ -811,7 +811,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
},
|
},
|
||||||
on_edit_node: function(properties){
|
on_edit_node: function(properties){
|
||||||
var self = this;
|
var self = this;
|
||||||
this.edit_node_dialog = new openerp.web.Dialog(this,{
|
this.edit_node_dialog = new instance.web.Dialog(this,{
|
||||||
title: _t("Properties"),
|
title: _t("Properties"),
|
||||||
width: 450,
|
width: 450,
|
||||||
buttons: [
|
buttons: [
|
||||||
|
@ -880,7 +880,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
this.edit_widget = [];
|
this.edit_widget = [];
|
||||||
self.ready = $.when(self.on_groups(properties)).then(function () {
|
self.ready = $.when(self.on_groups(properties)).then(function () {
|
||||||
_PROPERTIES_ATTRIBUTES['groups']['selection'] = self.groups;
|
_PROPERTIES_ATTRIBUTES['groups']['selection'] = self.groups;
|
||||||
var values = _.keys( openerp.web.form.widgets.map);
|
var values = _.keys( instance.web.form.widgets.map);
|
||||||
values.push('');
|
values.push('');
|
||||||
values.sort();
|
values.sort();
|
||||||
_PROPERTIES_ATTRIBUTES['widget']['selection'] = values;
|
_PROPERTIES_ATTRIBUTES['widget']['selection'] = values;
|
||||||
|
@ -908,8 +908,8 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
def.resolve();
|
def.resolve();
|
||||||
}
|
}
|
||||||
var group_ids = [], group_names = {}, groups = [];
|
var group_ids = [], group_names = {}, groups = [];
|
||||||
var res_groups = new openerp.web.DataSetSearch(this,'res.groups', null, null),
|
var res_groups = new instance.web.DataSetSearch(this,'res.groups', null, null),
|
||||||
model_data = new openerp.web.DataSetSearch(self,'ir.model.data', null, null);
|
model_data = new instance.web.DataSetSearch(self,'ir.model.data', null, null);
|
||||||
res_groups.read_slice([], {}).done(function (res_grp) {
|
res_groups.read_slice([], {}).done(function (res_grp) {
|
||||||
_.each(res_grp, function (res) {
|
_.each(res_grp, function (res) {
|
||||||
var key = res.id;
|
var key = res.id;
|
||||||
|
@ -935,7 +935,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
{'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': ['After','Before','Inside'], 'value': false, 'string': 'Position','type': 'selection'}];
|
||||||
this.add_widget = [];
|
this.add_widget = [];
|
||||||
this.add_node_dialog = new openerp.web.Dialog(this,{
|
this.add_node_dialog = new instance.web.Dialog(this,{
|
||||||
title: _t("Properties"),
|
title: _t("Properties"),
|
||||||
width: 450,
|
width: 450,
|
||||||
buttons: [
|
buttons: [
|
||||||
|
@ -980,7 +980,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
});
|
});
|
||||||
table_selector.find("td[id^=]").attr("width","100px");
|
table_selector.find("td[id^=]").attr("width","100px");
|
||||||
self.add_node_dialog.$element.find('#new_field').click(function() {
|
self.add_node_dialog.$element.find('#new_field').click(function() {
|
||||||
model_data = new openerp.web.DataSetSearch(self,'ir.model', null, null);
|
model_data = new instance.web.DataSetSearch(self,'ir.model', null, null);
|
||||||
model_data.read_slice([], {domain: [['model','=', self.model]]}).then(function(result) {
|
model_data.read_slice([], {domain: [['model','=', self.model]]}).then(function(result) {
|
||||||
self.render_new_field(result[0].id);
|
self.render_new_field(result[0].id);
|
||||||
});
|
});
|
||||||
|
@ -998,7 +998,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
action_buttons: true
|
action_buttons: true
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var action_manager = new openerp.web.ActionManager(self);
|
var action_manager = new instance.web.ActionManager(self);
|
||||||
$.when(action_manager.do_action(action)).then(function() {
|
$.when(action_manager.do_action(action)).then(function() {
|
||||||
var controller = action_manager.dialog_viewmanager.views['form'].controller;
|
var controller = action_manager.dialog_viewmanager.views['form'].controller;
|
||||||
controller.on_button_cancel.add_last(function(){
|
controller.on_button_cancel.add_last(function(){
|
||||||
|
@ -1015,7 +1015,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.Field = openerp.web.Class.extend({
|
instance.web.ViewEditor.Field = instance.web.Class.extend({
|
||||||
init: function(view, widget) {
|
init: function(view, widget) {
|
||||||
this.$element = view.$element;
|
this.$element = view.$element;
|
||||||
this.dirty = false;
|
this.dirty = false;
|
||||||
|
@ -1041,7 +1041,7 @@ openerp.web.ViewEditor.Field = openerp.web.Class.extend({
|
||||||
validate: function() {
|
validate: function() {
|
||||||
this.is_invalid = false;
|
this.is_invalid = false;
|
||||||
try {
|
try {
|
||||||
var value = openerp.web.parse_value(this.get_value(), this, '');
|
var value = instance.web.parse_value(this.get_value(), this, '');
|
||||||
this.is_invalid = this.required && value === '';
|
this.is_invalid = this.required && value === '';
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
this.is_invalid = true;
|
this.is_invalid = true;
|
||||||
|
@ -1051,7 +1051,7 @@ openerp.web.ViewEditor.Field = openerp.web.Class.extend({
|
||||||
return _.str.sprintf("<td id = %s>%s</td>", this.name, QWeb.render(this.template, {widget: this}))
|
return _.str.sprintf("<td id = %s>%s</td>", this.name, QWeb.render(this.template, {widget: this}))
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.FieldBoolean = openerp.web.ViewEditor.Field.extend({
|
instance.web.ViewEditor.FieldBoolean = instance.web.ViewEditor.Field.extend({
|
||||||
template : "vieweditor_boolean",
|
template : "vieweditor_boolean",
|
||||||
start: function() {
|
start: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -1069,7 +1069,7 @@ openerp.web.ViewEditor.FieldBoolean = openerp.web.ViewEditor.Field.extend({
|
||||||
return this.$element.find("input[id=" + this.name + "]").is(':checked')? "1" : null;
|
return this.$element.find("input[id=" + this.name + "]").is(':checked')? "1" : null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.FieldChar = openerp.web.ViewEditor.Field.extend({
|
instance.web.ViewEditor.FieldChar = instance.web.ViewEditor.Field.extend({
|
||||||
template : "vieweditor_char",
|
template : "vieweditor_char",
|
||||||
start: function () {
|
start: function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -1085,7 +1085,7 @@ openerp.web.ViewEditor.FieldChar = openerp.web.ViewEditor.Field.extend({
|
||||||
return this.$element.find("input[id=" + this.name + "]").val();
|
return this.$element.find("input[id=" + this.name + "]").val();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.FieldSelect = openerp.web.ViewEditor.Field.extend({
|
instance.web.ViewEditor.FieldSelect = instance.web.ViewEditor.Field.extend({
|
||||||
template : "vieweditor_selection",
|
template : "vieweditor_selection",
|
||||||
start: function () {
|
start: function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -1115,7 +1115,7 @@ openerp.web.ViewEditor.FieldSelect = openerp.web.ViewEditor.Field.extend({
|
||||||
return this.$element.find("select[id=" + this.name + "]").val();
|
return this.$element.find("select[id=" + this.name + "]").val();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.FieldSelectMulti = openerp.web.ViewEditor.FieldSelect.extend({
|
instance.web.ViewEditor.FieldSelectMulti = instance.web.ViewEditor.FieldSelect.extend({
|
||||||
start: function () {
|
start: function () {
|
||||||
this._super();
|
this._super();
|
||||||
this.$element.find("select[id=" + this.name + "]").css('height', '100px').attr("multiple", true);
|
this.$element.find("select[id=" + this.name + "]").css('height', '100px').attr("multiple", true);
|
||||||
|
@ -1131,7 +1131,7 @@ openerp.web.ViewEditor.FieldSelectMulti = openerp.web.ViewEditor.FieldSelect.ext
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.web.ViewEditor.FieldFloat = openerp.web.ViewEditor.FieldChar.extend({
|
instance.web.ViewEditor.FieldFloat = instance.web.ViewEditor.FieldChar.extend({
|
||||||
});
|
});
|
||||||
|
|
||||||
var _PROPERTIES = {
|
var _PROPERTIES = {
|
||||||
|
@ -1196,11 +1196,11 @@ var _ICONS = ['','STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD',
|
||||||
'terp-sale', 'terp-tools', 'terp-administration', 'terp-hr', 'terp-partner',
|
'terp-sale', 'terp-tools', 'terp-administration', 'terp-hr', 'terp-partner',
|
||||||
'terp-project', 'terp-report', 'terp-stock', 'terp-calendar', 'terp-graph'
|
'terp-project', 'terp-report', 'terp-stock', 'terp-calendar', 'terp-graph'
|
||||||
];
|
];
|
||||||
openerp.web.ViewEditor.property_widget = new openerp.web.Registry({
|
instance.web.ViewEditor.property_widget = new instance.web.Registry({
|
||||||
'boolean' : 'openerp.web.ViewEditor.FieldBoolean',
|
'boolean' : 'instance.web.ViewEditor.FieldBoolean',
|
||||||
'selection_multi' : 'openerp.web.ViewEditor.FieldSelectMulti',
|
'selection_multi' : 'instance.web.ViewEditor.FieldSelectMulti',
|
||||||
'selection' : 'openerp.web.ViewEditor.FieldSelect',
|
'selection' : 'instance.web.ViewEditor.FieldSelect',
|
||||||
'char' : 'openerp.web.ViewEditor.FieldChar',
|
'char' : 'instance.web.ViewEditor.FieldChar',
|
||||||
'float' : 'openerp.web.ViewEditor.FieldFloat'
|
'float' : 'instance.web.ViewEditor.FieldFloat'
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue