1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
odoo.define('calendar.CalendarController', function (require) {
"use strict";
const Controller = require('web.CalendarController');
const Dialog = require('web.Dialog');
const { qweb, _t } = require('web.core');
const CalendarController = Controller.extend({
_askRecurrenceUpdatePolicy() {
return new Promise((resolve, reject) => {
new Dialog(this, {
title: _t('Edit Recurrent event'),
size: 'small',
$content: $(qweb.render('calendar.RecurrentEventUpdate')),
buttons: [{
text: _t('Confirm'),
classes: 'btn-primary',
close: true,
click: function () {
resolve(this.$('input:checked').val());
},
}],
}).open();
});
},
// TODO factorize duplicated code
/**
* @override
* @private
* @param {OdooEvent} event
*/
async _onDropRecord(event) {
const _super = this._super; // reference to this._super is lost after async call
if (event.data.record.recurrency) {
const recurrenceUpdate = await this._askRecurrenceUpdatePolicy();
event.data = _.extend({}, event.data, {
'recurrenceUpdate': recurrenceUpdate,
});
}
_super.apply(this, arguments);
},
/**
* @override
* @private
* @param {OdooEvent} event
*/
async _onUpdateRecord(event) {
const _super = this._super; // reference to this._super is lost after async call
if (event.data.record.recurrency) {
const recurrenceUpdate = await this._askRecurrenceUpdatePolicy();
event.data = _.extend({}, event.data, {
'recurrenceUpdate': recurrenceUpdate,
});
}
_super.apply(this, arguments);
},
});
return CalendarController;
});
|