[imp] remaining of refactoring
bzr revid: nicolas.vanhoren@openerp.com-20120417121559-e94wr8ym8sb2f7c1
This commit is contained in:
parent
6ca9b6ffad
commit
759be357ce
|
@ -1,9 +1,9 @@
|
|||
openerp.web.list = function (openerp) {
|
||||
var _t = openerp.web._t,
|
||||
_lt = openerp.web._lt;
|
||||
var QWeb = openerp.web.qweb;
|
||||
openerp.web.views.add('list', 'openerp.web.ListView');
|
||||
openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# */ {
|
||||
openerp.web.list = function (instance) {
|
||||
var _t = instance.web._t,
|
||||
_lt = instance.web._lt;
|
||||
var QWeb = instance.web.qweb;
|
||||
instance.web.views.add('list', 'instance.web.ListView');
|
||||
instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListView# */ {
|
||||
_template: 'ListView',
|
||||
display_name: _lt('List'),
|
||||
defaults: {
|
||||
|
@ -33,11 +33,11 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
* See constructor parameters and method documentations for information on
|
||||
* the default behaviors and possible options for the list view.
|
||||
*
|
||||
* @constructs openerp.web.ListView
|
||||
* @extends openerp.web.View
|
||||
* @constructs instance.web.ListView
|
||||
* @extends instance.web.View
|
||||
*
|
||||
* @param parent parent object
|
||||
* @param {openerp.web.DataSet} dataset the dataset the view should work with
|
||||
* @param {instance.web.DataSet} dataset the dataset the view should work with
|
||||
* @param {String} view_id the listview's identifier, if any
|
||||
* @param {Object} options A set of options used to configure the view
|
||||
* @param {Boolean} [options.selectable=true] determines whether view rows are selectable (e.g. via a checkbox)
|
||||
|
@ -61,12 +61,12 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
|
||||
this.records = new Collection();
|
||||
|
||||
this.set_groups(new openerp.web.ListView.Groups(this));
|
||||
this.set_groups(new instance.web.ListView.Groups(this));
|
||||
|
||||
if (this.dataset instanceof openerp.web.DataSetStatic) {
|
||||
this.groups.datagroup = new openerp.web.StaticDataGroup(this.dataset);
|
||||
if (this.dataset instanceof instance.web.DataSetStatic) {
|
||||
this.groups.datagroup = new instance.web.StaticDataGroup(this.dataset);
|
||||
} else {
|
||||
this.groups.datagroup = new openerp.web.DataGroup(
|
||||
this.groups.datagroup = new instance.web.DataGroup(
|
||||
this, this.model,
|
||||
dataset.get_domain(),
|
||||
dataset.get_context(),
|
||||
|
@ -104,7 +104,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
/**
|
||||
* Set a custom Group construct as the root of the List View.
|
||||
*
|
||||
* @param {openerp.web.ListView.Groups} groups
|
||||
* @param {instance.web.ListView.Groups} groups
|
||||
*/
|
||||
set_groups: function (groups) {
|
||||
var self = this;
|
||||
|
@ -302,7 +302,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
|
||||
// Sidebar
|
||||
if (!this.sidebar && this.options.sidebar && this.options.$sidebar) {
|
||||
this.sidebar = new openerp.web.Sidebar(this);
|
||||
this.sidebar = new instance.web.Sidebar(this);
|
||||
this.sidebar.appendTo(this.options.$sidebar);
|
||||
this.sidebar.add_toolbar(this.fields_view.toolbar);
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
*
|
||||
* Horrifying side-effect: sets the dataset's data on this.dataset?
|
||||
*
|
||||
* @param {openerp.web.DataSet} dataset
|
||||
* @param {instance.web.DataSet} dataset
|
||||
*/
|
||||
configure_pager: function (dataset) {
|
||||
this.dataset.ids = dataset.ids;
|
||||
|
@ -336,7 +336,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
* @param {Boolean} [grouped] Should the grouping columns (group and count) be displayed
|
||||
*/
|
||||
setup_columns: function (fields, grouped) {
|
||||
var domain_computer = openerp.web.form.compute_domain;
|
||||
var domain_computer = instance.web.form.compute_domain;
|
||||
|
||||
var noop = function () { return {}; };
|
||||
var field_to_column = function (field) {
|
||||
|
@ -405,7 +405,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
*
|
||||
* The default implementation asks the list view's view manager to switch
|
||||
* to a different view (by calling
|
||||
* :js:func:`~openerp.web.ViewManager.on_mode_switch`), using the
|
||||
* :js:func:`~instance.web.ViewManager.on_mode_switch`), using the
|
||||
* provided record index (within the current list view's dataset).
|
||||
*
|
||||
* If the index is null, ``switch_to_record`` asks for the creation of a
|
||||
|
@ -526,7 +526,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
*/
|
||||
do_search: function (domain, context, group_by) {
|
||||
this.page = 0;
|
||||
this.groups.datagroup = new openerp.web.DataGroup(
|
||||
this.groups.datagroup = new instance.web.DataGroup(
|
||||
this, this.model, domain, context, group_by);
|
||||
this.groups.datagroup.sort = this.dataset._sort;
|
||||
|
||||
|
@ -598,7 +598,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
return;
|
||||
}
|
||||
|
||||
var c = new openerp.web.CompoundContext();
|
||||
var c = new instance.web.CompoundContext();
|
||||
c.set_eval_context(_.extend({
|
||||
active_id: id,
|
||||
active_ids: [id],
|
||||
|
@ -615,7 +615,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
*
|
||||
* @param {Number} index index of the record in the dataset
|
||||
* @param {Object} id identifier of the activated record
|
||||
* @param {openerp.web.DataSet} dataset dataset in which the record is available (may not be the listview's dataset in case of nested groups)
|
||||
* @param {instance.web.DataSet} dataset dataset in which the record is available (may not be the listview's dataset in case of nested groups)
|
||||
*/
|
||||
do_activate_record: function (index, id, dataset, view) {
|
||||
this.dataset.ids = dataset.ids;
|
||||
|
@ -639,11 +639,11 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
/**
|
||||
* Computes the aggregates for the current list view, either on the
|
||||
* records provided or on the records of the internal
|
||||
* :js:class:`~openerp.web.ListView.Group`, by calling
|
||||
* :js:func:`~openerp.web.ListView.group.get_records`.
|
||||
* :js:class:`~instance.web.ListView.Group`, by calling
|
||||
* :js:func:`~instance.web.ListView.group.get_records`.
|
||||
*
|
||||
* Then displays the aggregates in the table through
|
||||
* :js:method:`~openerp.web.ListView.display_aggregates`.
|
||||
* :js:method:`~instance.web.ListView.display_aggregates`.
|
||||
*
|
||||
* @param {Array} [records]
|
||||
*/
|
||||
|
@ -719,7 +719,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
}
|
||||
|
||||
$footer_cells.filter(_.str.sprintf('[data-field=%s]', column.id))
|
||||
.html(openerp.web.format_cell(aggregation, column, {
|
||||
.html(instance.web.format_cell(aggregation, column, {
|
||||
process_modifiers: false
|
||||
}));
|
||||
});
|
||||
|
@ -772,7 +772,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
|||
}
|
||||
}
|
||||
});
|
||||
openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.ListView.List# */{
|
||||
instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web.ListView.List# */{
|
||||
/**
|
||||
* List display for the ListView, handles basic DOM events and transforms
|
||||
* them in the relevant higher-level events, to which the list view (or
|
||||
|
@ -797,10 +797,10 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis
|
|||
* Triggered when a row of the table is clicked, provides the index (in
|
||||
* the rows array) and id of the selected record to the handle function.
|
||||
*
|
||||
* @constructs openerp.web.ListView.List
|
||||
* @extends openerp.web.Class
|
||||
* @constructs instance.web.ListView.List
|
||||
* @extends instance.web.Class
|
||||
*
|
||||
* @param {Object} opts display options, identical to those of :js:class:`openerp.web.ListView`
|
||||
* @param {Object} opts display options, identical to those of :js:class:`instance.web.ListView`
|
||||
*/
|
||||
init: function (group, opts) {
|
||||
var self = this;
|
||||
|
@ -915,7 +915,7 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis
|
|||
// to get a correctly displayable value in the field
|
||||
var model = ref_match[1],
|
||||
id = parseInt(ref_match[2], 10);
|
||||
new openerp.web.DataSet(this.view, model).name_get([id], function(names) {
|
||||
new instance.web.DataSet(this.view, model).name_get([id], function(names) {
|
||||
if (!names.length) { return; }
|
||||
record.set(column.id, names[0][1]);
|
||||
});
|
||||
|
@ -930,14 +930,14 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis
|
|||
// fetch the name, set it on the record (in the right field)
|
||||
// and let the various registered events handle refreshing the
|
||||
// row
|
||||
new openerp.web.DataSet(this.view, column.relation)
|
||||
new instance.web.DataSet(this.view, column.relation)
|
||||
.name_get([value], function (names) {
|
||||
if (!names.length) { return; }
|
||||
record.set(column.id, names[0]);
|
||||
});
|
||||
}
|
||||
}
|
||||
return openerp.web.format_cell(record.toForm().data, column, {
|
||||
return instance.web.format_cell(record.toForm().data, column, {
|
||||
model: this.dataset.model,
|
||||
id: record.get('id')
|
||||
});
|
||||
|
@ -1091,19 +1091,19 @@ openerp.web.ListView.List = openerp.web.Class.extend( /** @lends openerp.web.Lis
|
|||
});
|
||||
}
|
||||
});
|
||||
openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.ListView.Groups# */{
|
||||
instance.web.ListView.Groups = instance.web.Class.extend( /** @lends instance.web.ListView.Groups# */{
|
||||
passtrough_events: 'action deleted row_link',
|
||||
/**
|
||||
* Grouped display for the ListView. Handles basic DOM events and interacts
|
||||
* with the :js:class:`~openerp.web.DataGroup` bound to it.
|
||||
* with the :js:class:`~instance.web.DataGroup` bound to it.
|
||||
*
|
||||
* Provides events similar to those of
|
||||
* :js:class:`~openerp.web.ListView.List`
|
||||
* :js:class:`~instance.web.ListView.List`
|
||||
*
|
||||
* @constructs openerp.web.ListView.Groups
|
||||
* @extends openerp.web.Class
|
||||
* @constructs instance.web.ListView.Groups
|
||||
* @extends instance.web.Class
|
||||
*
|
||||
* @param {openerp.web.ListView} view
|
||||
* @param {instance.web.ListView} view
|
||||
* @param {Object} [options]
|
||||
* @param {Collection} [options.records]
|
||||
* @param {Object} [options.options]
|
||||
|
@ -1214,7 +1214,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L
|
|||
self.records.proxy(group.value).reset();
|
||||
delete self.children[group.value];
|
||||
}
|
||||
var child = self.children[group.value] = new openerp.web.ListView.Groups(self.view, {
|
||||
var child = self.children[group.value] = new instance.web.ListView.Groups(self.view, {
|
||||
records: self.records.proxy(group.value),
|
||||
options: self.options,
|
||||
columns: self.columns
|
||||
|
@ -1250,7 +1250,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L
|
|||
var group_column = _(self.columns).detect(function (column) {
|
||||
return column.id === group.grouped_on; });
|
||||
try {
|
||||
$group_column.html(openerp.web.format_cell(
|
||||
$group_column.html(instance.web.format_cell(
|
||||
row_data, group_column, {
|
||||
value_if_empty: _t("Undefined"),
|
||||
process_modifiers: false
|
||||
|
@ -1287,7 +1287,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L
|
|||
var r = {};
|
||||
r[column.id] = {value: group.aggregates[column.id]};
|
||||
$('<td class="oe-number">')
|
||||
.html(openerp.web.format_cell(
|
||||
.html(instance.web.format_cell(
|
||||
r, column, {process_modifiers: false}))
|
||||
.appendTo($row);
|
||||
} else {
|
||||
|
@ -1320,7 +1320,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L
|
|||
},
|
||||
render_dataset: function (dataset) {
|
||||
var self = this,
|
||||
list = new openerp.web.ListView.List(this, {
|
||||
list = new instance.web.ListView.List(this, {
|
||||
options: this.options,
|
||||
columns: this.columns,
|
||||
dataset: dataset,
|
||||
|
@ -1533,10 +1533,10 @@ var Events = /** @lends Events# */{
|
|||
return this;
|
||||
}
|
||||
};
|
||||
var Record = openerp.web.Class.extend(/** @lends Record# */{
|
||||
var Record = instance.web.Class.extend(/** @lends Record# */{
|
||||
/**
|
||||
* @constructs Record
|
||||
* @extends openerp.web.Class
|
||||
* @extends instance.web.Class
|
||||
*
|
||||
* @mixes Events
|
||||
* @param {Object} [data]
|
||||
|
@ -1614,7 +1614,7 @@ var Record = openerp.web.Class.extend(/** @lends Record# */{
|
|||
}
|
||||
});
|
||||
Record.include(Events);
|
||||
var Collection = openerp.web.Class.extend(/** @lends Collection# */{
|
||||
var Collection = instance.web.Class.extend(/** @lends Collection# */{
|
||||
/**
|
||||
* Smarter collections, with events, very strongly inspired by Backbone's.
|
||||
*
|
||||
|
@ -1622,7 +1622,7 @@ var Collection = openerp.web.Class.extend(/** @lends Collection# */{
|
|||
* various serious
|
||||
*
|
||||
* @constructs Collection
|
||||
* @extends openerp.web.Class
|
||||
* @extends instance.web.Class
|
||||
*
|
||||
* @mixes Events
|
||||
* @param {Array} [records] records to initialize the collection with
|
||||
|
@ -1797,7 +1797,7 @@ var Collection = openerp.web.Class.extend(/** @lends Collection# */{
|
|||
}
|
||||
});
|
||||
Collection.include(Events);
|
||||
openerp.web.list = {
|
||||
instance.web.list = {
|
||||
Events: Events,
|
||||
Record: Record,
|
||||
Collection: Collection
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
* handles editability case for lists, because it depends on form and forms already depends on lists it had to be split out
|
||||
* @namespace
|
||||
*/
|
||||
openerp.web.list_editable = function (openerp) {
|
||||
openerp.web.list_editable = function (instance) {
|
||||
var KEY_RETURN = 13,
|
||||
KEY_ESCAPE = 27;
|
||||
var QWeb = openerp.web.qweb;
|
||||
var QWeb = instance.web.qweb;
|
||||
|
||||
// editability status of list rows
|
||||
openerp.web.ListView.prototype.defaults.editable = null;
|
||||
instance.web.ListView.prototype.defaults.editable = null;
|
||||
|
||||
// TODO: not sure second @lends on existing item is correct, to check
|
||||
openerp.web.ListView.include(/** @lends openerp.web.ListView# */{
|
||||
instance.web.ListView.include(/** @lends instance.web.ListView# */{
|
||||
init: function () {
|
||||
var self = this;
|
||||
this._super.apply(this, arguments);
|
||||
|
@ -37,7 +37,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
*
|
||||
* @param {Number} index index of the record in the dataset
|
||||
* @param {Object} id identifier of the record being edited
|
||||
* @param {openerp.web.DataSet} dataset dataset in which the record is available
|
||||
* @param {instance.web.DataSet} dataset dataset in which the record is available
|
||||
*/
|
||||
do_edit: function (index, id, dataset) {
|
||||
_.extend(this.dataset, dataset);
|
||||
|
@ -93,8 +93,8 @@ openerp.web.list_editable = function (openerp) {
|
|||
}
|
||||
});
|
||||
|
||||
openerp.web.ListView.Groups.include(/** @lends openerp.web.ListView.Groups# */{
|
||||
passtrough_events: openerp.web.ListView.Groups.prototype.passtrough_events + " edit saved",
|
||||
instance.web.ListView.Groups.include(/** @lends instance.web.ListView.Groups# */{
|
||||
passtrough_events: instance.web.ListView.Groups.prototype.passtrough_events + " edit saved",
|
||||
new_record: function () {
|
||||
// TODO: handle multiple children
|
||||
this.children[null].new_record();
|
||||
|
@ -113,7 +113,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
}
|
||||
});
|
||||
|
||||
openerp.web.ListView.List.include(/** @lends openerp.web.ListView.List# */{
|
||||
instance.web.ListView.List.include(/** @lends instance.web.ListView.List# */{
|
||||
row_clicked: function (event) {
|
||||
if (!this.options.editable) {
|
||||
return this._super.apply(this, arguments);
|
||||
|
@ -236,7 +236,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
self.edition = true;
|
||||
self.edition_id = record_id;
|
||||
$new_row.addClass("oe_form_container");
|
||||
self.edition_form = new openerp.web.ListEditableFormView(self.view, self.dataset, false);
|
||||
self.edition_form = new instance.web.ListEditableFormView(self.view, self.dataset, false);
|
||||
self.edition_form.$element = $new_row;
|
||||
self.edition_form.editable_list = self;
|
||||
// HO HO
|
||||
|
@ -274,7 +274,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
// insert after the source record
|
||||
var index = self.records.indexOf(
|
||||
self.records.get(source_record_id)) + 1;
|
||||
record = new openerp.web.list.Record({id: id});
|
||||
record = new instance.web.list.Record({id: id});
|
||||
self.records.add(record, {at: index});
|
||||
self.dataset.ids.splice(index, 0, id);
|
||||
}
|
||||
|
@ -368,15 +368,15 @@ openerp.web.list_editable = function (openerp) {
|
|||
}
|
||||
});
|
||||
|
||||
openerp.web.ListEditableFormView = openerp.web.FormView.extend({
|
||||
instance.web.ListEditableFormView = instance.web.FormView.extend({
|
||||
init: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.rendering_engine = new openerp.web.ListEditableRenderingEngine(this);
|
||||
this.rendering_engine = new instance.web.ListEditableRenderingEngine(this);
|
||||
},
|
||||
renderElement: function() {}
|
||||
});
|
||||
|
||||
openerp.web.ListEditableRenderingEngine = openerp.web.Class.extend({
|
||||
instance.web.ListEditableRenderingEngine = instance.web.Class.extend({
|
||||
init: function(view) {
|
||||
this.view = view;
|
||||
},
|
||||
|
@ -392,7 +392,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
render_to: function($element) {
|
||||
var self = this;
|
||||
|
||||
var xml = openerp.web.json_node_to_xml(this.fvg.arch);
|
||||
var xml = instance.web.json_node_to_xml(this.fvg.arch);
|
||||
var $xml = $(xml);
|
||||
|
||||
if (this.view.editable_list.options.selectable)
|
||||
|
@ -412,7 +412,7 @@ openerp.web.list_editable = function (openerp) {
|
|||
key = $(el).attr('widget') || self.fvg.fields[name].type;
|
||||
}
|
||||
var obj = self.view.fields_registry.get_object(key);
|
||||
var w = new (obj)(self.view, openerp.web.xml_to_json(el));
|
||||
var w = new (obj)(self.view, instance.web.xml_to_json(el));
|
||||
self.view.register_field(w, $(el).attr("name"));
|
||||
w.appendTo($td);
|
||||
$td.appendTo($element);
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* OpenERP web library
|
||||
*---------------------------------------------------------*/
|
||||
|
||||
openerp.web.view_tree = function(openerp) {
|
||||
var QWeb = openerp.web.qweb,
|
||||
_lt = openerp.web._lt;
|
||||
openerp.web.view_tree = function(instance) {
|
||||
var QWeb = instance.web.qweb,
|
||||
_lt = instance.web._lt;
|
||||
|
||||
openerp.web.views.add('tree', 'openerp.web.TreeView');
|
||||
openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView# */{
|
||||
instance.web.views.add('tree', 'instance.web.TreeView');
|
||||
instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeView# */{
|
||||
display_name: _lt('Tree'),
|
||||
/**
|
||||
* Indicates that this view is not searchable, and thus that no search
|
||||
|
@ -17,8 +17,8 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView#
|
|||
/**
|
||||
* Genuine tree view (the one displayed as a tree, not the list)
|
||||
*
|
||||
* @constructs openerp.web.TreeView
|
||||
* @extends openerp.web.View
|
||||
* @constructs instance.web.TreeView
|
||||
* @extends instance.web.View
|
||||
*
|
||||
* @param parent
|
||||
* @param dataset
|
||||
|
@ -203,7 +203,7 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView#
|
|||
'fields_view': self.fields_view.arch.children,
|
||||
'fields': self.fields,
|
||||
'level': $curr_node.data('level') || 0,
|
||||
'render': openerp.web.format_value,
|
||||
'render': instance.web.format_value,
|
||||
'color_for': self.color_for
|
||||
});
|
||||
|
||||
|
@ -226,12 +226,12 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView#
|
|||
return this.rpc('/web/treeview/action', {
|
||||
id: id,
|
||||
model: this.dataset.model,
|
||||
context: new openerp.web.CompoundContext(
|
||||
context: new instance.web.CompoundContext(
|
||||
this.dataset.get_context(), local_context)
|
||||
}).pipe(function (actions) {
|
||||
if (!actions.length) { return; }
|
||||
var action = actions[0][2];
|
||||
var c = new openerp.web.CompoundContext(local_context);
|
||||
var c = new instance.web.CompoundContext(local_context);
|
||||
if (action.context) {
|
||||
c.add(action.context);
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
* OpenERP web library
|
||||
*---------------------------------------------------------*/
|
||||
|
||||
openerp.web.views = function(session) {
|
||||
var QWeb = session.web.qweb,
|
||||
_t = session.web._t;
|
||||
openerp.web.views = function(instance) {
|
||||
var QWeb = instance.web.qweb,
|
||||
_t = instance.web._t;
|
||||
|
||||
session.web.ActionManager = session.web.Widget.extend({
|
||||
instance.web.ActionManager = instance.web.Widget.extend({
|
||||
init: function(parent) {
|
||||
this._super(parent);
|
||||
this.inner_action = null;
|
||||
|
@ -52,8 +52,8 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
if (run_action) {
|
||||
this.null_action();
|
||||
action_loaded = this.do_action(state.action_id);
|
||||
session.webclient.menu.has_been_loaded.then(function() {
|
||||
session.webclient.menu.open_action(state.action_id);
|
||||
instance.webclient.menu.has_been_loaded.then(function() {
|
||||
instance.webclient.menu.open_action(state.action_id);
|
||||
});
|
||||
}
|
||||
} else if (state.model && state.id) {
|
||||
|
@ -124,31 +124,31 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
.contains(action.res_model)) {
|
||||
var old_close = on_close;
|
||||
on_close = function () {
|
||||
session.webclient.do_reload().then(old_close);
|
||||
instance.webclient.do_reload().then(old_close);
|
||||
};
|
||||
}
|
||||
if (action.target === 'new') {
|
||||
if (this.dialog == null) {
|
||||
this.dialog = new session.web.Dialog(this, { width: '80%' });
|
||||
this.dialog = new instance.web.Dialog(this, { width: '80%' });
|
||||
if(on_close)
|
||||
this.dialog.on_close.add(on_close);
|
||||
} else {
|
||||
this.dialog_viewmanager.destroy();
|
||||
}
|
||||
this.dialog.dialog_title = action.name;
|
||||
this.dialog_viewmanager = new session.web.ViewManagerAction(this, action);
|
||||
this.dialog_viewmanager = new instance.web.ViewManagerAction(this, action);
|
||||
this.dialog_viewmanager.appendTo(this.dialog.$element);
|
||||
this.dialog.open();
|
||||
} else {
|
||||
if(action.menu_id) {
|
||||
return this.getParent().do_action(action, function () {
|
||||
session.webclient.menu.open_menu(action.menu_id);
|
||||
instance.webclient.menu.open_menu(action.menu_id);
|
||||
});
|
||||
}
|
||||
this.dialog_stop();
|
||||
this.content_stop();
|
||||
this.inner_action = action;
|
||||
this.inner_viewmanager = new session.web.ViewManagerAction(this, action);
|
||||
this.inner_viewmanager = new instance.web.ViewManagerAction(this, action);
|
||||
this.inner_viewmanager.appendTo(this.$element);
|
||||
}
|
||||
},
|
||||
|
@ -170,7 +170,7 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
ir_actions_client: function (action) {
|
||||
this.content_stop();
|
||||
this.dialog_stop();
|
||||
var ClientWidget = session.web.client_actions.get_object(action.tag);
|
||||
var ClientWidget = instance.web.client_actions.get_object(action.tag);
|
||||
(this.client_widget = new ClientWidget(this, action.params)).appendTo(this.$element);
|
||||
},
|
||||
ir_actions_report_xml: function(action, on_closed) {
|
||||
|
@ -192,7 +192,7 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
}
|
||||
self.dialog_stop();
|
||||
},
|
||||
error: session.webclient.crashmanager.on_rpc_error
|
||||
error: instance.webclient.crashmanager.on_rpc_error
|
||||
})
|
||||
});
|
||||
},
|
||||
|
@ -204,7 +204,7 @@ session.web.ActionManager = session.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.ViewManager = session.web.Widget.extend({
|
||||
instance.web.ViewManager = instance.web.Widget.extend({
|
||||
template: "ViewManager",
|
||||
init: function(parent, dataset, views, flags) {
|
||||
this._super(parent);
|
||||
|
@ -214,7 +214,7 @@ session.web.ViewManager = session.web.Widget.extend({
|
|||
this.active_view = null;
|
||||
this.views_src = _.map(views, function(x) {
|
||||
if (x instanceof Array) {
|
||||
var View = session.web.views.get_object(x[1], true);
|
||||
var View = instance.web.views.get_object(x[1], true);
|
||||
return {
|
||||
view_id: x[0],
|
||||
view_type: x[1],
|
||||
|
@ -226,7 +226,7 @@ session.web.ViewManager = session.web.Widget.extend({
|
|||
});
|
||||
this.views = {};
|
||||
this.flags = flags || {};
|
||||
this.registry = session.web.views;
|
||||
this.registry = instance.web.views;
|
||||
this.views_history = [];
|
||||
},
|
||||
/**
|
||||
|
@ -376,7 +376,7 @@ session.web.ViewManager = session.web.Widget.extend({
|
|||
if (this.searchview) {
|
||||
this.searchview.destroy();
|
||||
}
|
||||
this.searchview = new session.web.SearchView(this, this.dataset, view_id, search_defaults, this.flags.search_view === false);
|
||||
this.searchview = new instance.web.SearchView(this, this.dataset, view_id, search_defaults, this.flags.search_view === false);
|
||||
|
||||
this.searchview.on_search.add(this.do_searchview_search);
|
||||
return this.searchview.appendTo(this.$element.find(".oe_view_manager_view_search"));
|
||||
|
@ -435,13 +435,13 @@ session.web.ViewManager = session.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.ViewManagerAction = session.web.ViewManager.extend({
|
||||
instance.web.ViewManagerAction = instance.web.ViewManager.extend({
|
||||
template:"ViewManagerAction",
|
||||
/**
|
||||
* @constructs session.web.ViewManagerAction
|
||||
* @extends session.web.ViewManager
|
||||
* @constructs instance.web.ViewManagerAction
|
||||
* @extends instance.web.ViewManager
|
||||
*
|
||||
* @param {session.web.ActionManager} parent parent object/widget
|
||||
* @param {instance.web.ActionManager} parent parent object/widget
|
||||
* @param {Object} action descriptor for the action this viewmanager needs to manage its views.
|
||||
*/
|
||||
init: function(parent, action) {
|
||||
|
@ -466,7 +466,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
this._super(parent, null, action.views, flags);
|
||||
this.session = parent.session;
|
||||
this.action = action;
|
||||
var dataset = new session.web.DataSetSearch(this, action.res_model, action.context, action.domain);
|
||||
var dataset = new instance.web.DataSetSearch(this, action.res_model, action.context, action.domain);
|
||||
if (action.res_id) {
|
||||
dataset.ids.push(action.res_id);
|
||||
dataset.index = 0;
|
||||
|
@ -507,7 +507,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
this.$element.find('.oe_debug_view').change(this.on_debug_changed);
|
||||
|
||||
if (this.action.help && !this.flags.low_profile) {
|
||||
var Users = new session.web.DataSet(self, 'res.users'),
|
||||
var Users = new instance.web.DataSet(self, 'res.users'),
|
||||
$tips = this.$element.find('.oe_view_manager_menu_tips');
|
||||
$tips.delegate('blockquote button', 'click', function() {
|
||||
var $this = $(this);
|
||||
|
@ -541,19 +541,19 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
current_view = this.views[this.active_view].controller;
|
||||
switch (val) {
|
||||
case 'fvg':
|
||||
var dialog = new session.web.Dialog(this, { title: _t("Fields View Get"), width: '95%' }).open();
|
||||
$('<pre>').text(session.web.json_node_to_xml(current_view.fields_view.arch, true)).appendTo(dialog.$element);
|
||||
var dialog = new instance.web.Dialog(this, { title: _t("Fields View Get"), width: '95%' }).open();
|
||||
$('<pre>').text(instance.web.json_node_to_xml(current_view.fields_view.arch, true)).appendTo(dialog.$element);
|
||||
break;
|
||||
case 'perm_read':
|
||||
var ids = current_view.get_selected_ids();
|
||||
if (ids.length === 1) {
|
||||
this.dataset.call('perm_read', [ids]).then(function(result) {
|
||||
var dialog = new session.web.Dialog(this, {
|
||||
var dialog = new instance.web.Dialog(this, {
|
||||
title: _.str.sprintf(_t("View Log (%s)"), self.dataset.model),
|
||||
width: 400
|
||||
}, QWeb.render('ViewManagerDebugViewLog', {
|
||||
perm : result[0],
|
||||
format : session.web.format_value
|
||||
format : instance.web.format_value
|
||||
})).open();
|
||||
});
|
||||
}
|
||||
|
@ -578,7 +578,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
.append($('<dd style="white-space: pre-wrap;">').text(def));
|
||||
});
|
||||
});
|
||||
new session.web.Dialog(self, {
|
||||
new instance.web.Dialog(self, {
|
||||
title: _.str.sprintf(_t("Model %s fields"),
|
||||
self.dataset.model),
|
||||
width: '95%'}, $root).open();
|
||||
|
@ -586,7 +586,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
break;
|
||||
case 'manage_views':
|
||||
if (current_view.fields_view && current_view.fields_view.arch) {
|
||||
var view_editor = new session.web.ViewEditor(current_view, current_view.$element, this.dataset, current_view.fields_view.arch);
|
||||
var view_editor = new instance.web.ViewEditor(current_view, current_view.$element, this.dataset, current_view.fields_view.arch);
|
||||
view_editor.start();
|
||||
} else {
|
||||
this.do_warn(_t("Manage Views"),
|
||||
|
@ -723,7 +723,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.Sidebar = session.web.Widget.extend({
|
||||
instance.web.Sidebar = instance.web.Widget.extend({
|
||||
init: function(parent) {
|
||||
this._super(parent);
|
||||
var view = this.getParent();
|
||||
|
@ -832,7 +832,7 @@ session.web.Sidebar = session.web.Widget.extend({
|
|||
self.getParent().sidebar_context().then(function (context) {
|
||||
var ids = self.getParent().get_selected_ids();
|
||||
if (ids.length == 0) {
|
||||
session.web.dialog($("<div />").text(_t("You must choose at least one record.")), { title: _t("Warning"), modal: true });
|
||||
instance.web.dialog($("<div />").text(_t("You must choose at least one record.")), { title: _t("Warning"), modal: true });
|
||||
return false;
|
||||
}
|
||||
var additional_context = _.extend({
|
||||
|
@ -860,7 +860,7 @@ session.web.Sidebar = session.web.Widget.extend({
|
|||
this.on_attachments_loaded([]);
|
||||
} else {
|
||||
var dom = [ ['res_model', '=', dataset.model], ['res_id', '=', model_id], ['type', 'in', ['binary', 'url']] ];
|
||||
var ds = new session.web.DataSetSearch(this, 'ir.attachment', dataset.get_context(), dom);
|
||||
var ds = new instance.web.DataSetSearch(this, 'ir.attachment', dataset.get_context(), dom);
|
||||
ds.read_slice(['name', 'url', 'type'], {}).then(this.on_attachments_loaded);
|
||||
}
|
||||
},
|
||||
|
@ -908,7 +908,7 @@ session.web.Sidebar = session.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.TranslateDialog = session.web.Dialog.extend({
|
||||
instance.web.TranslateDialog = instance.web.Dialog.extend({
|
||||
dialog_title: {toString: function () { return _t("Translations"); }},
|
||||
init: function(view) {
|
||||
// TODO fme: should add the language to fields_view_get because between the fields view get
|
||||
|
@ -928,14 +928,14 @@ session.web.TranslateDialog = session.web.Dialog.extend({
|
|||
this.translatable_fields_keys = _.map(this.view.translatable_fields || [], function(i) { return i.name });
|
||||
this.languages = null;
|
||||
this.languages_loaded = $.Deferred();
|
||||
(new session.web.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(),
|
||||
(new instance.web.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(),
|
||||
[['translatable', '=', '1']])).read_slice(['code', 'name'], { sort: 'id' }).then(this.on_languages_loaded);
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
this._super();
|
||||
$.when(this.languages_loaded).then(function() {
|
||||
self.$element.html(session.web.qweb.render('TranslateDialog', { widget: self }));
|
||||
self.$element.html(instance.web.qweb.render('TranslateDialog', { widget: self }));
|
||||
self.$fields_form = self.$element.find('.oe_translation_form');
|
||||
self.$fields_form.find('.oe_trad_field').change(function() {
|
||||
$(this).toggleClass('touched', ($(this).val() != $(this).attr('data-value')));
|
||||
|
@ -1024,7 +1024,7 @@ session.web.TranslateDialog = session.web.Dialog.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.View = session.web.Widget.extend({
|
||||
instance.web.View = instance.web.Widget.extend({
|
||||
template: "EmptyComponent",
|
||||
// name displayed in view switchers
|
||||
display_name: '',
|
||||
|
@ -1048,7 +1048,7 @@ session.web.View = session.web.Widget.extend({
|
|||
$.async_when().then(function() {def.resolve(self.embedded_view);});
|
||||
return def.pipe(this.on_loaded);
|
||||
} else {
|
||||
var context = new session.web.CompoundContext(this.dataset.get_context());
|
||||
var context = new instance.web.CompoundContext(this.dataset.get_context());
|
||||
if (! this.view_type)
|
||||
console.warn("view_type is not defined", this);
|
||||
return this.rpc("/web/view/load", {
|
||||
|
@ -1079,7 +1079,7 @@ session.web.View = session.web.Widget.extend({
|
|||
},
|
||||
open_translate_dialog: function(field) {
|
||||
if (!this.translate_dialog) {
|
||||
this.translate_dialog = new session.web.TranslateDialog(this).start();
|
||||
this.translate_dialog = new instance.web.TranslateDialog(this).start();
|
||||
}
|
||||
this.translate_dialog.open(field);
|
||||
},
|
||||
|
@ -1091,7 +1091,7 @@ session.web.View = session.web.Widget.extend({
|
|||
* @param {String} [action_data.special=null] special action handlers (currently: only ``'cancel'``)
|
||||
* @param {String} [action_data.type='workflow'] the action type, if present, one of ``'object'``, ``'action'`` or ``'workflow'``
|
||||
* @param {Object} [action_data.context=null] additional action context, to add to the current context
|
||||
* @param {session.web.DataSet} dataset a dataset object used to communicate with the server
|
||||
* @param {instance.web.DataSet} dataset a dataset object used to communicate with the server
|
||||
* @param {Object} [record_id] the identifier of the object on which the action is to be applied
|
||||
* @param {Function} on_closed callback to execute when dialog is closed or when the action does not generate any result (no new action)
|
||||
*/
|
||||
|
@ -1103,12 +1103,12 @@ session.web.View = session.web.Widget.extend({
|
|||
return self.getParent().on_action_executed.apply(null, arguments);
|
||||
}
|
||||
};
|
||||
var context = new session.web.CompoundContext(dataset.get_context(), action_data.context || {});
|
||||
var context = new instance.web.CompoundContext(dataset.get_context(), action_data.context || {});
|
||||
|
||||
var handler = function (r) {
|
||||
var action = r.result;
|
||||
if (action && action.constructor == Object) {
|
||||
var ncontext = new session.web.CompoundContext(context);
|
||||
var ncontext = new instance.web.CompoundContext(context);
|
||||
if (record_id) {
|
||||
ncontext.add({
|
||||
active_id: record_id,
|
||||
|
@ -1157,7 +1157,7 @@ session.web.View = session.web.Widget.extend({
|
|||
/**
|
||||
* Directly set a view to use instead of calling fields_view_get. This method must
|
||||
* be called before start(). When an embedded view is set, underlying implementations
|
||||
* of session.web.View must use the provided view instead of any other one.
|
||||
* of instance.web.View must use the provided view instead of any other one.
|
||||
*
|
||||
* @param embedded_view A view.
|
||||
*/
|
||||
|
@ -1197,11 +1197,11 @@ session.web.View = session.web.Widget.extend({
|
|||
do_search: function(view) {
|
||||
},
|
||||
on_sidebar_import: function() {
|
||||
var import_view = new session.web.DataImport(this, this.dataset);
|
||||
var import_view = new instance.web.DataImport(this, this.dataset);
|
||||
import_view.start();
|
||||
},
|
||||
on_sidebar_export: function() {
|
||||
var export_view = new session.web.DataExport(this, this.dataset);
|
||||
var export_view = new instance.web.DataExport(this, this.dataset);
|
||||
export_view.start();
|
||||
},
|
||||
on_sidebar_translate: function() {
|
||||
|
@ -1226,7 +1226,7 @@ session.web.View = session.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
|
||||
session.web.xml_to_json = function(node) {
|
||||
instance.web.xml_to_json = function(node) {
|
||||
switch (node.nodeType) {
|
||||
case 3:
|
||||
case 4:
|
||||
|
@ -1244,11 +1244,11 @@ session.web.xml_to_json = function(node) {
|
|||
return {
|
||||
tag: node.tagName.toLowerCase(),
|
||||
attrs: attrs,
|
||||
children: _.map(node.childNodes, session.web.xml_to_json)
|
||||
children: _.map(node.childNodes, instance.web.xml_to_json)
|
||||
}
|
||||
}
|
||||
}
|
||||
session.web.json_node_to_xml = function(node, human_readable, indent) {
|
||||
instance.web.json_node_to_xml = function(node, human_readable, indent) {
|
||||
// For debugging purpose, this function will convert a json node back to xml
|
||||
// Maybe useful for xml view editor
|
||||
indent = indent || 0;
|
||||
|
@ -1277,7 +1277,7 @@ session.web.json_node_to_xml = function(node, human_readable, indent) {
|
|||
r += '>' + cr;
|
||||
var childs = [];
|
||||
for (var i = 0, ii = node.children.length; i < ii; i++) {
|
||||
childs.push(session.web.json_node_to_xml(node.children[i], human_readable, indent + 1));
|
||||
childs.push(instance.web.json_node_to_xml(node.children[i], human_readable, indent + 1));
|
||||
}
|
||||
r += childs.join(cr);
|
||||
r += cr + sindent + '</' + node.tag + '>';
|
||||
|
@ -1286,14 +1286,14 @@ session.web.json_node_to_xml = function(node, human_readable, indent) {
|
|||
return r + '/>';
|
||||
}
|
||||
}
|
||||
session.web.xml_to_str = function(node) {
|
||||
instance.web.xml_to_str = function(node) {
|
||||
if (window.ActiveXObject) {
|
||||
return node.xml;
|
||||
} else {
|
||||
return (new XMLSerializer()).serializeToString(node);
|
||||
}
|
||||
}
|
||||
session.web.str_to_xml = function(s) {
|
||||
instance.web.str_to_xml = function(s) {
|
||||
if (window.DOMParser) {
|
||||
var dp = new DOMParser();
|
||||
var r = dp.parseFromString(s, "text/xml");
|
||||
|
@ -1317,12 +1317,12 @@ session.web.str_to_xml = function(s) {
|
|||
/**
|
||||
* Registry for all the client actions key: tag value: widget
|
||||
*/
|
||||
session.web.client_actions = new session.web.Registry();
|
||||
instance.web.client_actions = new instance.web.Registry();
|
||||
|
||||
/**
|
||||
* Registry for all the main views
|
||||
*/
|
||||
session.web.views = new session.web.Registry();
|
||||
instance.web.views = new instance.web.Registry();
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue