2d5828cf2958a82734ccf4a6980409ef3d4a9b3c
[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.registry = openerp.web.page.readonly;
12             this.set({"force_readonly": true});
13         },
14         reload: function () {
15             if (this.dataset.index == null) {
16                 this.do_prev_view();
17                 return $.Deferred().reject().promise();
18             }
19             return this._super();
20         },
21         on_loaded: function(data) {
22             this._super(data);
23             this.$form_header.find('button.oe_form_button_edit').click(this.on_button_edit);
24             this.$form_header.find('button.oe_form_button_create').click(this.on_button_create);
25             this.$form_header.find('button.oe_form_button_duplicate').click(this.on_button_duplicate);
26             this.$form_header.find('button.oe_form_button_delete').click(this.on_button_delete);
27         },
28         on_button_edit: function() {
29             return this.do_switch_view('form');
30         },
31         on_button_create: function() {
32             this.dataset.index = null;
33             return this.do_switch_view('form');
34         },
35         on_button_duplicate: function() {
36             var self = this;
37             var def = $.Deferred();
38             $.when(this.has_been_loaded).then(function() {
39                 self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) {
40                     return self.on_created({ result : new_id });
41                 }).then(function() {
42                     return self.do_switch_view('form');
43                 }).then(function() {
44                     def.resolve();
45                 });
46             });
47             return def.promise();
48         },
49         on_button_delete: function() {
50             var self = this;
51             var def = $.Deferred();
52             $.when(this.has_been_loaded).then(function() {
53                 if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) {
54                     self.dataset.unlink([self.datarecord.id]).then(function() {
55                         self.on_pager_action('next');
56                         def.resolve();
57                     });
58                 } else {
59                     $.async_when().then(function () {
60                         def.reject();
61                     })
62                 }
63             });
64             return def.promise();
65         }
66     });
67
68     /** @namespace */
69     openerp.web.page = {};
70
71     openerp.web.page.readonly = openerp.web.form.widgets.extend({
72     });
73     
74
75     
76 };