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
66
67
68
|
odoo.define('website_twitter.editor', function (require) {
'use strict';
var core = require('web.core');
var dom = require('web.dom');
var sOptions = require('web_editor.snippets.options');
var _t = core._t;
sOptions.registry.twitter = sOptions.Class.extend({
/**
* @override
*/
start: function () {
var self = this;
var $configuration = dom.renderButton({
attrs: {
class: 'btn-primary d-none',
contenteditable: 'false',
},
text: _t("Reload"),
});
$configuration.appendTo(document.body).on('click', function (ev) {
ev.preventDefault();
ev.stopPropagation();
self._rpc({route: '/website_twitter/reload'});
});
this.$target.on('mouseover.website_twitter', function () {
var $selected = $(this);
var position = $selected.offset();
$configuration.removeClass('d-none').offset({
top: $selected.outerHeight() / 2
+ position.top
- $configuration.outerHeight() / 2,
left: $selected.outerWidth() / 2
+ position.left
- $configuration.outerWidth() / 2,
});
}).on('mouseleave.website_twitter', function (e) {
var current = document.elementFromPoint(e.clientX, e.clientY);
if (current === $configuration[0]) {
return;
}
$configuration.addClass('d-none');
});
this.$target.on('click.website_twitter', '.lnk_configure', function (e) {
window.location = e.currentTarget.href;
});
this.trigger_up('widgets_stop_request', {
$target: this.$target,
});
return this._super.apply(this, arguments);
},
/**
* @override
*/
cleanForSave: function () {
this.$target.find('.twitter_timeline').empty();
},
/**
* @override
*/
destroy: function () {
this._super.apply(this, arguments);
this.$target.off('.website_twitter');
},
});
});
|