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
|
odoo.define('iap.buy_more_credits', function (require) {
'use strict';
var widgetRegistry = require('web.widget_registry');
var Widget = require('web.Widget');
var core = require('web.core');
var rpc = require('web.rpc');
var QWeb = core.qweb;
var IAPBuyMoreCreditsWidget = Widget.extend({
className: 'o_field_iap_buy_more_credits',
/**
* @constructor
* Prepares the basic rendering of edit mode by setting the root to be a
* div.dropdown.open.
* @see FieldChar.init
*/
init: function (parent, data, options) {
this._super.apply(this, arguments);
this.service_name = options.attrs.service_name;
},
/**
* @override
*/
start: function () {
this.$widget = $(QWeb.render('iap.buy_more_credits'));
this.$buyLink = this.$widget.find('.buy_credits');
this.$widget.appendTo(this.$el);
this.$buyLink.click(this._getLink.bind(this));
},
//--------------------------------------------------------------------------
// Private
//--------------------------------------------------------------------------
_getLink: function () {
var self = this;
return rpc.query({
model: 'iap.account',
method: 'get_credits_url',
args: [this.service_name],
}, {
shadow: true,
}).then(function (url) {
return self.do_action({
type: 'ir.actions.act_url',
url: url,
});
});
},
});
widgetRegistry.add('iap_buy_more_credits', IAPBuyMoreCreditsWidget);
return IAPBuyMoreCreditsWidget;
});
|