[FIX] Fix form and page buttons

bzr revid: fme@openerp.com-20111205135037-g9y8obto3y8rsuki
This commit is contained in:
Fabien Meghazi 2011-12-05 14:50:37 +01:00
parent 04ce8687aa
commit 986ff55624
4 changed files with 27 additions and 32 deletions

View File

@ -41,8 +41,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
this.has_been_loaded = $.Deferred();
this.$form_header = null;
this.translatable_fields = [];
_.defaults(this.options, {"always_show_new_button": true,
"not_interactible_on_create": false});
_.defaults(this.options, {
"not_interactible_on_create": false
});
this.mutating_lock = $.Deferred();
this.initial_mutating_lock = this.mutating_lock;
this.on_change_lock = $.Deferred().resolve();
@ -102,6 +103,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
});
this.$form_header.find('button.oe_form_button_save').click(this.on_button_save);
this.$form_header.find('button.oe_form_button_cancel').click(this.on_button_cancel);
if (!this.sidebar && this.options.sidebar && this.options.sidebar_id) {
this.sidebar = new openerp.web.Sidebar(this, this.options.sidebar_id);
@ -139,17 +141,6 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
if (!record) {
throw("Form: No record received");
}
if (!record.id) {
this.$form_header.find('.oe_form_on_create').show();
this.$form_header.find('.oe_form_on_update').hide();
if (!this.options["always_show_new_button"]) {
this.$form_header.find('button.oe_form_button_new').hide();
}
} else {
this.$form_header.find('.oe_form_on_create').hide();
this.$form_header.find('.oe_form_on_update').show();
this.$form_header.find('button.oe_form_button_new').show();
}
this.datarecord = record;
_(this.fields).each(function (field, f) {
@ -366,6 +357,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
self.do_switch_view('page');
});
},
on_button_cancel: function() {
return this.do_switch_view('page');
},
on_button_new: function() {
var self = this;
var def = $.Deferred();

View File

@ -1,5 +1,8 @@
openerp.web.page = function (openerp) {
var _t = openerp.web._t;
var QWeb = openerp.web.qweb;
openerp.web.views.add('page', 'openerp.web.PageView');
openerp.web.PageView = openerp.web.FormView.extend({
form_template: "PageView",
@ -9,12 +12,15 @@ openerp.web.page = function (openerp) {
},
on_loaded: function(data) {
this._super(data);
this.$form_header.find('button.oe_form_button_new').click(this.on_button_new);
this.$form_header.find('button.oe_form_button_edit').click(this.on_button_edit);
this.$form_header.find('button.oe_form_button_create').click(this.on_button_create);
this.$form_header.find('button.oe_form_button_duplicate').click(this.on_button_duplicate);
this.$form_header.find('button.oe_form_button_delete').click(this.on_button_delete);
},
on_button_new: function() {
},
on_button_edit: function() {
return this.do_switch_view('form');
},
on_button_create: function() {
this.dataset.index = null;
return this.do_switch_view('form');
},
@ -25,7 +31,7 @@ openerp.web.page = function (openerp) {
self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) {
return self.on_created({ result : new_id });
}).then(function() {
return this.do_switch_view('form');
return self.do_switch_view('form');
}).then(function() {
def.resolve();
});
@ -50,7 +56,6 @@ openerp.web.page = function (openerp) {
return def.promise();
}
});
openerp.web.form.FieldReadonly = openerp.web.form.Field.extend({
});
@ -189,4 +194,4 @@ openerp.web.page = function (openerp) {
'integer': 'openerp.web.form.FieldCharReadonly',
'float_time': 'openerp.web.form.FieldCharReadonly'
});
};
};

View File

@ -263,7 +263,7 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View
}
this.$element
.find('.views-switchers button').removeAttr('disabled')
.find('.oe_vm_switch button').removeAttr('disabled')
.filter('[data-view-type="' + view_type + '"]')
.attr('disabled', true);

View File

@ -653,10 +653,8 @@
<t t-name="FormView">
<div class="oe_form_header">
<div class="oe_form_buttons" t-if="widget.options.action_buttons !== false">
<button type="button" class="oe_form_button_save oe_form_on_editable">Save</button>
<button type="button" class="oe_form_button_toggle">
<span class="oe_form_on_editable">Cancel</span>
</button>
<button type="button" class="oe_form_button_save">Save</button>
<button type="button" class="oe_form_button_cancel">Cancel</button>
</div>
<div class="oe_form_pager" t-if="widget.options.pager !== false">
<button type="button" data-pager-action="first">First</button>
@ -672,12 +670,10 @@
</t>
<t t-name="PageView" t-extend="FormView">
<t t-jquery=".oe_form_buttons" t-operation="inner">
<button type="button" class="oe_form_button_toggle">
<span class="oe_form_on_readonly">Edit</span>
</button>
<button type="button" class="oe_form_button_new oe_form_on_readonly">Create</button>
<button type="button" class="oe_form_button_duplicate oe_form_on_readonly">Duplicate</button>
<button type="button" class="oe_form_button_delete oe_form_on_readonly">Delete</button>
<button type="button" class="oe_form_button_edit">Edit</button>
<button type="button" class="oe_form_button_create">Create</button>
<button type="button" class="oe_form_button_duplicate">Duplicate</button>
<button type="button" class="oe_form_button_delete">Delete</button>
</t>
</t>
<t t-name="FormView.sidebar.attachments">