form logic part1
bzr revid: al@openerp.com-20110317134155-snjjer2ynnbwuynf
This commit is contained in:
parent
86bc7ef222
commit
35b6a7efec
|
@ -3,6 +3,86 @@
|
|||
*---------------------------------------------------------*/
|
||||
|
||||
openerp.base$views = function(openerp) {
|
||||
|
||||
openerp.base.Action = openerp.base.Controller.extend({
|
||||
init: function(session, element_id) {
|
||||
this._super(session, element_id);
|
||||
this.action = null;
|
||||
this.dataset = null;
|
||||
this.searchview_id = false;
|
||||
this.searchview = null;
|
||||
this.listview_id = false;
|
||||
this.listview = null;
|
||||
this.formview_id = false;
|
||||
this.formview = null;
|
||||
},
|
||||
start: function() {
|
||||
this.$element.html(QWeb.render("Action", {"prefix":this.element_id}));
|
||||
this.$element.find("#mode_list").bind('click',this.on_mode_list);
|
||||
this.$element.find("#mode_form").bind('click',this.on_mode_form);
|
||||
this.on_mode_list();
|
||||
},
|
||||
on_mode_list: function() {
|
||||
$("#oe_action_form").hide();
|
||||
$("#oe_action_search").show();
|
||||
$("#oe_action_list").show();
|
||||
},
|
||||
on_mode_form: function() {
|
||||
$("#oe_action_form").show();
|
||||
$("#oe_action_search").hide();
|
||||
$("#oe_action_list").hide();
|
||||
},
|
||||
do_action: function(action) {
|
||||
// instantiate the right controllers by understanding the action
|
||||
this.action = action;
|
||||
this.log(action);
|
||||
// debugger;
|
||||
//this.log(action);
|
||||
if(action.type == "ir.actions.act_window") {
|
||||
this.do_action_window(action);
|
||||
}
|
||||
},
|
||||
do_action_window: function(action) {
|
||||
this.formview_id = false;
|
||||
this.dataset = new openerp.base.DataSet(this.session, "oe_action_dataset", action.res_model);
|
||||
this.dataset.start();
|
||||
|
||||
// Locate first tree view
|
||||
this.listview_id = false;
|
||||
for(var i = 0; i < action.views.length; i++) {
|
||||
if(action.views[i][1] == "tree") {
|
||||
this.listview_id = action.views[i][0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.listview = new openerp.base.ListView(this.session, "oe_action_list", this.dataset, this.listview_id);
|
||||
this.listview.start();
|
||||
|
||||
// Locate first form view
|
||||
this.listview_id = false;
|
||||
for(var j = 0; j < action.views.length; j++) {
|
||||
if(action.views[j][1] == "form") {
|
||||
this.formview_id = action.views[j][0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.formview = new openerp.base.FormView(this.session, "oe_action_form", this.dataset, this.formview_id);
|
||||
this.formview.start();
|
||||
|
||||
// Take the only possible search view. Is that consistent ?
|
||||
this.searchview_id = false;
|
||||
if(this.listview && action.search_view_id) {
|
||||
this.searchview_id = action.search_view_id[0];
|
||||
}
|
||||
this.searchview = new openerp.base.SearchView(this.session, "oe_action_search", this.dataset, this.searchview_id);
|
||||
this.searchview.start();
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.View = openerp.base.Controller.extend({
|
||||
// to replace Action
|
||||
});
|
||||
|
||||
openerp.base.DataSet = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, model) {
|
||||
this._super(session, element_id);
|
||||
|
@ -42,15 +122,18 @@ openerp.base.DataSet = openerp.base.Controller.extend({
|
|||
});
|
||||
|
||||
openerp.base.DataRecord = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, model, id) {
|
||||
this._super(session, element_id);
|
||||
init: function(session, model, fields) {
|
||||
this._super(session, null);
|
||||
this.model = model;
|
||||
this.id = id;
|
||||
this.value = {};
|
||||
this.fields = fields;
|
||||
this.values = {};
|
||||
},
|
||||
start: function() {
|
||||
load: function(id) {
|
||||
// READ
|
||||
},
|
||||
on_ready: function() {
|
||||
on_loaded: function() {
|
||||
// set t this.values = data.rea },
|
||||
},
|
||||
on_change: function() {
|
||||
},
|
||||
|
@ -58,6 +141,204 @@ openerp.base.DataRecord = openerp.base.Controller.extend({
|
|||
}
|
||||
});
|
||||
|
||||
openerp.base.SearchView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.input_index = 0;
|
||||
this.input_ids = {};
|
||||
this.domain = [];
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting SearchView '+this.model+this.view_id)
|
||||
this.rpc("/base/searchview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
this.log(this.fields_view);
|
||||
this.input_ids = {};
|
||||
this.$element.html(QWeb.render("SearchView", {"fields_view": this.fields_view}));
|
||||
this.$element.find("#search").bind('click',this.on_search);
|
||||
// TODO bind click event on all button
|
||||
// TODO we don't do many2one yet, but in the future bind a many2one controller on them
|
||||
this.log(this.$element.find("#search"));
|
||||
},
|
||||
register_input: function(node) {
|
||||
// self should be passed in the qweb dict to do:
|
||||
// <input t-add-id="self.register_input(node)"/>
|
||||
|
||||
// generate id
|
||||
var id = this.element_id + "_" + this.input_index++;
|
||||
// TODO construct a nice object
|
||||
// save it in our registry
|
||||
this.input_ids[id] = {
|
||||
node: node,
|
||||
type: "filter",
|
||||
domain: "",
|
||||
context: "",
|
||||
disabled: false
|
||||
};
|
||||
|
||||
return id;
|
||||
},
|
||||
on_click: function() {
|
||||
// event catched on a button
|
||||
// flip the disabled flag
|
||||
// adjust the css class
|
||||
},
|
||||
on_search: function() {
|
||||
this.log("on_search");
|
||||
// collect all non disabled domains definitions, AND them
|
||||
// evaluate as python expression
|
||||
// save the result in this.domain
|
||||
this.dataset.do_load();
|
||||
},
|
||||
on_clear: function() {
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.SearchViewInput = openerp.base.Controller.extend({
|
||||
// TODO not sure should we create a controller for every input ?
|
||||
|
||||
// of we just keep a simple dict for each input in
|
||||
// openerp.base.SearchView#input_ids
|
||||
// and use if when we get an event depending on the type
|
||||
// i think it's less bloated to avoid useless controllers
|
||||
|
||||
// but i think for many2one a controller would be nice
|
||||
// so simple dict for simple inputs
|
||||
// an controller for many2one ?
|
||||
|
||||
});
|
||||
|
||||
openerp.base.FormView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.dataset_index = 0;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.fields_views = {};
|
||||
this.widgets = {};
|
||||
this.fields = {};
|
||||
this.datarecord = {};
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting FormView '+this.model+this.view_id)
|
||||
this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
//this.log(this.fields_view);
|
||||
|
||||
var frame = new openerp.base.WidgetFrame(this.session, null, this, this.fields_view.arch);
|
||||
|
||||
this.$element.html(QWeb.render("FormView", { "frame": frame, "view": this }));
|
||||
for (var i in this.widgets) {
|
||||
this.widgets[i].register();
|
||||
}
|
||||
// bind to all wdigets that have onchange ??
|
||||
|
||||
// When the dataset is loaded load the first record (like gtk)
|
||||
this.dataset.on_loaded.add_last(this.do_load_record);
|
||||
|
||||
// When a datarecord is loaded display the values in the inputs
|
||||
this.datarecord = new openerp.base.DataRecord(this.session, this.model,{});
|
||||
this.datarecord.on_loaded.add(this.on_record_loaded);
|
||||
|
||||
},
|
||||
do_load_record: function() {
|
||||
// if dataset is empty display the empty datarecord
|
||||
if(this.dataset.ids.length == 0) {
|
||||
this.on_record_loaded();
|
||||
}
|
||||
this.datarecord.load(this.dataset.ids[this.dataset_index]);
|
||||
},
|
||||
on_record_loaded: function() {
|
||||
//for i in this.fields: f.update_from_datarecord()
|
||||
},
|
||||
});
|
||||
|
||||
openerp.base.ListView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.name = "";
|
||||
|
||||
this.cols = [];
|
||||
|
||||
this.$table = null;
|
||||
this.colnames = [];
|
||||
this.colmodel = [];
|
||||
|
||||
this.event_loading = false; // TODO in the future prevent abusive click by masking
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting ListView '+this.model+this.view_id)
|
||||
this.rpc("/base/listview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
//this.log(this.fields_view);
|
||||
this.name = "" + this.fields_view.arch.attrs.string;
|
||||
this.$element.html(QWeb.render("ListView", {"fields_view": this.fields_view}));
|
||||
this.$table = this.$element.find("table");
|
||||
this.cols = [];
|
||||
this.colnames = [];
|
||||
this.colmodel = [];
|
||||
// TODO uss a object for each col, fill it with view and fallback to dataset.model_field
|
||||
var tree = this.fields_view.arch.children;
|
||||
for(var i = 0; i < tree.length; i++) {
|
||||
var col = tree[i];
|
||||
if(col.tag == "field") {
|
||||
this.cols.push(col.attrs.name);
|
||||
this.colnames.push(col.attrs.name);
|
||||
this.colmodel.push({ name: col.attrs.name, index: col.attrs.name });
|
||||
}
|
||||
}
|
||||
//this.log(this.cols);
|
||||
this.dataset.fields = this.cols;
|
||||
this.dataset.on_loaded.add_last(this.do_fill_table);
|
||||
},
|
||||
do_fill_table: function() {
|
||||
//this.log("do_fill_table");
|
||||
|
||||
var self = this;
|
||||
//this.log(this.dataset.data);
|
||||
var rows = [];
|
||||
var ids = this.dataset.ids;
|
||||
for(var i = 0; i < ids.length; i++) {
|
||||
// TODO very strange is sometimes non existing ? even as admin ? example ir.ui.menu
|
||||
var row = this.dataset.values[ids[i]];
|
||||
if(row)
|
||||
rows.push(row);
|
||||
// else
|
||||
// debugger;
|
||||
}
|
||||
//this.log(rows);
|
||||
this.$table.jqGrid({
|
||||
data: rows,
|
||||
datatype: "local",
|
||||
height: "100%",
|
||||
rowNum: 100,
|
||||
//rowList: [10,20,30],
|
||||
colNames: this.colnames,
|
||||
colModel: this.colmodel,
|
||||
//pager: "#plist47",
|
||||
viewrecords: true,
|
||||
caption: this.name
|
||||
}).setGridWidth(this.$element.width());
|
||||
$(window).bind('resize', function() { self.$table.setGridWidth(self.$element.width()); }).trigger('resize');
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.TreeView = openerp.base.Controller.extend({
|
||||
});
|
||||
|
||||
openerp.base.Widget = openerp.base.Controller.extend({
|
||||
// TODO Change this to init: function(view, node) { and use view.session and a new element_id for the super
|
||||
// it means that widgets are special controllers
|
||||
|
@ -211,6 +492,7 @@ openerp.base.WidgetButton = openerp.base.Widget.extend({
|
|||
openerp.base.Field = openerp.base.Widget.extend({
|
||||
init: function(session, element_id, view, node) {
|
||||
this._super(session, element_id, view, node);
|
||||
// this.datarecord = this.view.datarecord ??
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -218,7 +500,18 @@ openerp.base.FieldChar = openerp.base.Field.extend({
|
|||
init: function(session, element_id, view, node) {
|
||||
this._super(session, element_id, view, node);
|
||||
this.template = "FormView.field.char";
|
||||
}
|
||||
|
||||
},
|
||||
start: function() {
|
||||
// this.$element.bind('leaving_focus',)
|
||||
},
|
||||
set_value: function() {
|
||||
// this.$element.val(this.view.datarecord.values[this.name])
|
||||
},
|
||||
on_change: function() {
|
||||
//this.view.update_field(this.name,value);
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
openerp.base.FieldEmail = openerp.base.Field.extend({
|
||||
|
@ -321,112 +614,6 @@ openerp.base.widgets = {
|
|||
'button' : openerp.base.WidgetButton
|
||||
}
|
||||
|
||||
openerp.base.FormView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.widgets = {};
|
||||
this.fields = {};
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting FormView '+this.model+this.view_id)
|
||||
this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
//this.log(this.fields_view);
|
||||
var frame = new openerp.base.WidgetFrame(this.session, null, this, this.fields_view.arch);
|
||||
this.$element.html(QWeb.render("FormView", { "frame": frame, "view": this }));
|
||||
for (var i in this.widgets) {
|
||||
this.widgets[i].register();
|
||||
}
|
||||
},
|
||||
on_button: function() {
|
||||
},
|
||||
on_write: function() {
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.ListView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.name = "";
|
||||
|
||||
this.cols = [];
|
||||
|
||||
this.$table = null;
|
||||
this.colnames = [];
|
||||
this.colmodel = [];
|
||||
|
||||
this.event_loading = false; // TODO in the future prevent abusive click by masking
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting ListView '+this.model+this.view_id)
|
||||
this.rpc("/base/listview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
//this.log(this.fields_view);
|
||||
this.name = "" + this.fields_view.arch.attrs.string;
|
||||
this.$element.html(QWeb.render("ListView", {"fields_view": this.fields_view}));
|
||||
this.$table = this.$element.find("table");
|
||||
this.cols = [];
|
||||
this.colnames = [];
|
||||
this.colmodel = [];
|
||||
// TODO uss a object for each col, fill it with view and fallback to dataset.model_field
|
||||
var tree = this.fields_view.arch.children;
|
||||
for(var i = 0; i < tree.length; i++) {
|
||||
var col = tree[i];
|
||||
if(col.tag == "field") {
|
||||
this.cols.push(col.attrs.name);
|
||||
this.colnames.push(col.attrs.name);
|
||||
this.colmodel.push({ name: col.attrs.name, index: col.attrs.name });
|
||||
}
|
||||
}
|
||||
//this.log(this.cols);
|
||||
this.dataset.fields = this.cols;
|
||||
this.dataset.on_loaded.add_last(this.do_fill_table);
|
||||
},
|
||||
do_fill_table: function() {
|
||||
//this.log("do_fill_table");
|
||||
|
||||
var self = this;
|
||||
//this.log(this.dataset.data);
|
||||
var rows = [];
|
||||
var ids = this.dataset.ids;
|
||||
for(var i = 0; i < ids.length; i++) {
|
||||
// TODO very strange is sometimes non existing ? even as admin ? example ir.ui.menu
|
||||
var row = this.dataset.values[ids[i]];
|
||||
if(row)
|
||||
rows.push(row);
|
||||
// else
|
||||
// debugger;
|
||||
}
|
||||
//this.log(rows);
|
||||
this.$table.jqGrid({
|
||||
data: rows,
|
||||
datatype: "local",
|
||||
height: "100%",
|
||||
rowNum: 100,
|
||||
//rowList: [10,20,30],
|
||||
colNames: this.colnames,
|
||||
colModel: this.colmodel,
|
||||
//pager: "#plist47",
|
||||
viewrecords: true,
|
||||
caption: this.name
|
||||
}).setGridWidth(this.$element.width());
|
||||
$(window).bind('resize', function() { self.$table.setGridWidth(self.$element.width()); }).trigger('resize');
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.TreeView = openerp.base.Controller.extend({
|
||||
});
|
||||
|
||||
openerp.base.CalendarView = openerp.base.Controller.extend({
|
||||
// Dhtmlx scheduler ?
|
||||
});
|
||||
|
@ -442,165 +629,12 @@ openerp.base.DiagramView = openerp.base.Controller.extend({
|
|||
openerp.base.GraphView = openerp.base.Controller.extend({
|
||||
});
|
||||
|
||||
openerp.base.SearchViewInput = openerp.base.Controller.extend({
|
||||
// TODO not sure should we create a controller for every input ?
|
||||
|
||||
// of we just keep a simple dict for each input in
|
||||
// openerp.base.SearchView#input_ids
|
||||
// and use if when we get an event depending on the type
|
||||
// i think it's less bloated to avoid useless controllers
|
||||
|
||||
// but i think for many2one a controller would be nice
|
||||
// so simple dict for simple inputs
|
||||
// an controller for many2one ?
|
||||
|
||||
});
|
||||
|
||||
openerp.base.SearchView = openerp.base.Controller.extend({
|
||||
init: function(session, element_id, dataset, view_id) {
|
||||
this._super(session, element_id);
|
||||
this.dataset = dataset;
|
||||
this.model = dataset.model;
|
||||
this.view_id = view_id;
|
||||
this.input_index = 0;
|
||||
this.input_ids = {};
|
||||
this.domain = [];
|
||||
},
|
||||
start: function() {
|
||||
//this.log('Starting SearchView '+this.model+this.view_id)
|
||||
this.rpc("/base/searchview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
this.log(this.fields_view);
|
||||
this.input_ids = {};
|
||||
this.$element.html(QWeb.render("SearchView", {"fields_view": this.fields_view}));
|
||||
this.$element.find("#search").bind('click',this.on_search);
|
||||
// TODO bind click event on all button
|
||||
// TODO we don't do many2one yet, but in the future bind a many2one controller on them
|
||||
this.log(this.$element.find("#search"));
|
||||
},
|
||||
register_input: function(node) {
|
||||
// self should be passed in the qweb dict to do:
|
||||
// <input t-add-id="self.register_input(node)"/>
|
||||
|
||||
// generate id
|
||||
var id = this.element_id + "_" + this.input_index++;
|
||||
// TODO construct a nice object
|
||||
// save it in our registry
|
||||
this.input_ids[id] = {
|
||||
node: node,
|
||||
type: "filter",
|
||||
domain: "",
|
||||
context: "",
|
||||
disabled: false
|
||||
};
|
||||
|
||||
return id;
|
||||
},
|
||||
on_click: function() {
|
||||
// event catched on a button
|
||||
// flip the disabled flag
|
||||
// adjust the css class
|
||||
},
|
||||
on_search: function() {
|
||||
this.log("on_search");
|
||||
// collect all non disabled domains definitions, AND them
|
||||
// evaluate as python expression
|
||||
// save the result in this.domain
|
||||
},
|
||||
on_clear: function() {
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.ProcessView = openerp.base.Controller.extend({
|
||||
});
|
||||
|
||||
openerp.base.HelpView = openerp.base.Controller.extend({
|
||||
});
|
||||
|
||||
openerp.base.View = openerp.base.Controller.extend({
|
||||
// to replace Action
|
||||
});
|
||||
|
||||
openerp.base.Action = openerp.base.Controller.extend({
|
||||
init: function(session, element_id) {
|
||||
this._super(session, element_id);
|
||||
this.action = null;
|
||||
this.dataset = null;
|
||||
this.searchview_id = false;
|
||||
this.searchview = null;
|
||||
this.listview_id = false;
|
||||
this.listview = null;
|
||||
this.formview_id = false;
|
||||
this.formview = null;
|
||||
},
|
||||
start: function() {
|
||||
this.$element.html(QWeb.render("Action", {"prefix":this.element_id}));
|
||||
this.$element.find("#mode_list").bind('click',this.on_mode_list);
|
||||
this.$element.find("#mode_form").bind('click',this.on_mode_form);
|
||||
this.on_mode_list();
|
||||
},
|
||||
on_mode_list: function() {
|
||||
$("#oe_action_form").hide();
|
||||
$("#oe_action_search").show();
|
||||
$("#oe_action_list").show();
|
||||
},
|
||||
on_mode_form: function() {
|
||||
$("#oe_action_form").show();
|
||||
$("#oe_action_search").hide();
|
||||
$("#oe_action_list").hide();
|
||||
},
|
||||
do_action: function(action) {
|
||||
// instantiate the right controllers by understanding the action
|
||||
this.action = action;
|
||||
this.log(action);
|
||||
// debugger;
|
||||
//this.log(action);
|
||||
if(action.type == "ir.actions.act_window") {
|
||||
this.do_action_window(action);
|
||||
}
|
||||
},
|
||||
do_action_window: function(action) {
|
||||
this.formview_id = false;
|
||||
this.dataset = new openerp.base.DataSet(this.session, "oe_action_dataset", action.res_model);
|
||||
this.dataset.start();
|
||||
|
||||
// Locate first tree view
|
||||
this.listview_id = false;
|
||||
for(var i = 0; i < action.views.length; i++) {
|
||||
if(action.views[i][1] == "tree") {
|
||||
this.listview_id = action.views[i][0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.listview = new openerp.base.ListView(this.session, "oe_action_list", this.dataset, this.listview_id);
|
||||
this.listview.start();
|
||||
|
||||
// Locate first form view
|
||||
this.listview_id = false;
|
||||
for(var j = 0; j < action.views.length; j++) {
|
||||
if(action.views[j][1] == "form") {
|
||||
this.formview_id = action.views[j][0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.formview = new openerp.base.FormView(this.session, "oe_action_form", this.dataset, this.formview_id);
|
||||
this.formview.start();
|
||||
|
||||
// Take the only possible search view. Is that consistent ?
|
||||
this.searchview_id = false;
|
||||
if(this.listview && action.search_view_id) {
|
||||
this.searchview_id = action.search_view_id[0];
|
||||
}
|
||||
this.searchview = new openerp.base.SearchView(this.session, "oe_action_search", this.dataset, this.searchview_id);
|
||||
this.searchview.start();
|
||||
|
||||
// Connect the the dataset load event with the search button of search view
|
||||
// THIS IS COOL
|
||||
this.searchview.on_search.add_last(this.dataset.do_load);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// DEBUG_RPC:rpc.request:('execute', 'addons-dsh-l10n_us', 1, '*', ('ir.filters', 'get_filters', u'res.partner'))
|
||||
|
|
Loading…
Reference in New Issue