summaryrefslogtreecommitdiff
path: root/addons/website_twitter/static/src/js/website.twitter.editor.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_twitter/static/src/js/website.twitter.editor.js')
-rw-r--r--addons/website_twitter/static/src/js/website.twitter.editor.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/addons/website_twitter/static/src/js/website.twitter.editor.js b/addons/website_twitter/static/src/js/website.twitter.editor.js
new file mode 100644
index 00000000..bc9a38a4
--- /dev/null
+++ b/addons/website_twitter/static/src/js/website.twitter.editor.js
@@ -0,0 +1,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');
+ },
+});
+});