// null index means we should start a new record
result = self.on_button_new();
} else {
- result = self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_record_loaded);
+ result = self.dataset.read_index(_.keys(self.fields_view.fields), {
+ context : { 'bin_size' : true }
+ }).pipe(self.on_record_loaded);
}
result.pipe(function() {
self.$element.css('visibility', 'visible');
},
do_onchange: function(widget, processed) {
var self = this;
- var act = function() {
+ return this.on_change_mutex.exec(function() {
try {
processed = processed || [];
var on_change = widget.node.attrs.on_change;
console.error(e);
return $.Deferred().reject();
}
- };
- return this.on_change_mutex.exec(act);
+ });
},
on_processed_onchange: function(response, processed) {
try {
*/
do_save: function(success, prepend_on_create) {
var self = this;
- var action = function() {
+ return this.mutating_mutex.exec(function() { return self.is_initialized.pipe(function() {
try {
var form_invalid = false,
values = {},
} else {
var save_deferral;
if (!self.datarecord.id) {
- console.log("FormView(", self, ") : About to create", values);
+ //console.log("FormView(", self, ") : About to create", values);
save_deferral = self.dataset.create(values).pipe(function(r) {
return self.on_created(r, undefined, prepend_on_create);
}, null);
} else if (_.isEmpty(values)) {
- console.log("FormView(", self, ") : Nothing to save");
+ //console.log("FormView(", self, ") : Nothing to save");
save_deferral = $.Deferred().resolve({}).promise();
} else {
- console.log("FormView(", self, ") : About to save", values);
+ //console.log("FormView(", self, ") : About to save", values);
save_deferral = self.dataset.write(self.datarecord.id, values, {}).pipe(function(r) {
return self.on_saved(r);
}, null);
console.error(e);
return $.Deferred().reject();
}
- };
- return this.mutating_mutex.exec(function() {
- return self.is_initialized.pipe(action);
- });
+ });});
},
on_invalid: function() {
var msg = "<ul>";
if (this.sidebar) {
this.sidebar.attachments.do_update();
}
- openerp.log("The record has been created with id #" + this.datarecord.id);
+ //openerp.log("The record has been created with id #" + this.datarecord.id);
this.reload();
return $.when(_.extend(r, {created: true})).then(success);
}
},
reload: function() {
var self = this;
- var act = function() {
+ return this.reload_mutex.exec(function() {
if (self.dataset.index == null || self.dataset.index < 0) {
return $.when(self.on_button_new());
} else {
- return self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_record_loaded);
+ return self.dataset.read_index(_.keys(self.fields_view.fields), {
+ context : { 'bin_size' : true }
+ }).pipe(self.on_record_loaded);
}
- };
- return this.reload_mutex.exec(act);
+ });
},
get_fields_values: function(blacklist) {
blacklist = blacklist || [];
['res_model', '=', this.view.dataset.model],
['res_id', '=', this.view.datarecord.id],
['type', 'in', ['binary', 'url']]
- ])).read_slice(['name', 'url', 'type'], {}, this.on_attachments_loaded);
+ ])).read_slice(['name', 'url', 'type'], {}).then(this.on_attachments_loaded);
}
},
on_attachments_loaded: function(attachments) {
openerp.web.form.dialog = function(content, options) {
options = _.extend({
- autoOpen: true,
width: '90%',
- height: '90%',
- min_width: '800px',
- min_height: '600px'
+ height: 'auto',
+ min_width: '800px'
}, options || {});
- options.autoOpen = true;
- var dialog = new openerp.web.Dialog(null, options);
- dialog.$element = $(content).dialog(dialog.dialog_options);
+ var dialog = new openerp.web.Dialog(null, options, content).open();
return dialog.$element;
};
self.open_related(self.related_entries[i]);
};
});
- var cmenu = self.$menu_btn.contextMenu(self.cm_id, {'leftClickToo': true,
+ var cmenu = self.$menu_btn.contextMenu(self.cm_id, {'noRightClick': true,
bindings: bindings, itemStyle: {"color": ""},
onContextMenu: function() {
if(self.value) {
});
});
var ctx_callback = function(e) {init_context_menu_def.resolve(e); e.preventDefault()};
- this.$menu_btn.bind('contextmenu', ctx_callback);
this.$menu_btn.click(ctx_callback);
// some behavior for input
this.viewmanager.views[this.viewmanager.active_view].controller) {
var view = this.viewmanager.views[this.viewmanager.active_view].controller;
if (this.viewmanager.active_view === "form") {
+ if (!view.is_initialized.isResolved()) {
+ return false;
+ }
var res = $.when(view.do_save());
if (!res.isResolved() && !res.isRejected()) {
console.warn("Asynchronous get_value() is not supported in form view.");
form_template: 'One2Many.formview',
on_loaded: function(data) {
this._super(data);
- this.$form_header.find('button.oe_form_button_create').click(this.on_button_new);
+ var self = this;
+ this.$form_header.find('button.oe_form_button_create').click(function() {
+ self.do_save().then(self.on_button_new);
+ });
}
});
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
$nbutton.click(function() {
$.when(self.view_form.do_save()).then(function() {
- self.view_form.reload_lock.then(function() {
+ self.view_form.reload_mutex.exec(function() {
self.view_form.on_button_new();
});
});
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
$nbutton.click(function() {
$.when(self.view_form.do_save()).then(function() {
- self.view_form.reload_lock.then(function() {
+ self.view_form.reload_mutex.exec(function() {
self.check_exit();
});
});
on_save_as: function() {
var url = '/web/binary/saveas?session_id=' + this.session.session_id + '&model=' +
this.view.dataset.model +'&id=' + (this.view.datarecord.id || '') + '&field=' + this.name +
- '&fieldname=' + (this.node.attrs.filename || '') + '&t=' + (new Date().getTime());
+ '&filename_field=' + (this.node.attrs.filename || '') + '&t=' + (new Date().getTime());
window.open(url);
},
on_clear: function() {