[imp] clean page view
[odoo/odoo.git] / addons / web / static / src / js / view_page.js
1 openerp.web.page = function (openerp) {
2     var _t = openerp.web._t,
3        _lt = openerp.web._lt;
4
5     openerp.web.views.add('page', 'openerp.web.PageView');
6     openerp.web.PageView = openerp.web.FormView.extend({
7         template: "PageView",
8         display_name: _lt('Page'),
9         init: function () {
10             this._super.apply(this, arguments);
11             this.set({"force_readonly": true});
12         },
13         reload: function () {
14             if (this.dataset.index == null) {
15                 this.do_prev_view();
16                 return $.Deferred().reject().promise();
17             }
18             return this._super();
19         },
20         on_loaded: function(data) {
21             this._super(data);
22             this.$form_header.find('button.oe_form_button_edit').click(this.on_button_edit);
23             this.$form_header.find('button.oe_form_button_create').click(this.on_button_create);
24             this.$form_header.find('button.oe_form_button_duplicate').click(this.on_button_duplicate);
25             this.$form_header.find('button.oe_form_button_delete').click(this.on_button_delete);
26         },
27         on_button_edit: function() {
28             return this.do_switch_view('form');
29         },
30         on_button_create: function() {
31             this.dataset.index = null;
32             return this.do_switch_view('form');
33         },
34         on_button_duplicate: function() {
35             var self = this;
36             var def = $.Deferred();
37             $.when(this.has_been_loaded).then(function() {
38                 self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) {
39                     return self.on_created({ result : new_id });
40                 }).then(function() {
41                     return self.do_switch_view('form');
42                 }).then(function() {
43                     def.resolve();
44                 });
45             });
46             return def.promise();
47         },
48         on_button_delete: function() {
49             var self = this;
50             var def = $.Deferred();
51             $.when(this.has_been_loaded).then(function() {
52                 if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) {
53                     self.dataset.unlink([self.datarecord.id]).then(function() {
54                         self.on_pager_action('next');
55                         def.resolve();
56                     });
57                 } else {
58                     $.async_when().then(function () {
59                         def.reject();
60                     })
61                 }
62             });
63             return def.promise();
64         }
65     });
66     
67 };