summaryrefslogtreecommitdiff
path: root/addons/website_slides/static/src/js/website_slides.editor.js
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2018-09-21 12:25:22 +0200
committerSébastien Theys <seb@odoo.com>2018-09-25 16:23:08 +0200
commite4aa8ec6d18a47e46a6b4c4cca70156ce7916d15 (patch)
tree52000239592c67ed68703959fd00f245a3249014 /addons/website_slides/static/src/js/website_slides.editor.js
parent2ab6ce80d6224df5f6a4b113762e1698910ba8db (diff)
[IMP] website,website_livechat,website_slides: add "new content" buttons
Those allow the user to quickly create a new channel or new slides. PR: #27110 task-1885419
Diffstat (limited to 'addons/website_slides/static/src/js/website_slides.editor.js')
-rw-r--r--addons/website_slides/static/src/js/website_slides.editor.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/addons/website_slides/static/src/js/website_slides.editor.js b/addons/website_slides/static/src/js/website_slides.editor.js
new file mode 100644
index 00000000000..2befee6c236
--- /dev/null
+++ b/addons/website_slides/static/src/js/website_slides.editor.js
@@ -0,0 +1,66 @@
+odoo.define('website_slides.editor', function (require) {
+"use strict";
+
+var core = require('web.core');
+var Dialog = require('web.Dialog');
+var QWeb = core.qweb;
+var WebsiteNewMenu = require('website.newMenu');
+var weContext = require('web_editor.context');
+
+var _t = core._t;
+
+WebsiteNewMenu.include({
+ actions: _.extend({}, WebsiteNewMenu.prototype.actions || {}, {
+ new_slide: '_createNewSlide',
+ }),
+ xmlDependencies: WebsiteNewMenu.prototype.xmlDependencies.concat(
+ ['/website_slides/static/src/xml/website_slides.xml']
+ ),
+
+ //--------------------------------------------------------------------------
+ // Actions
+ //--------------------------------------------------------------------------
+
+ /**
+ * Asks the user information about in which channel to create a new slide,
+ * and redirects the user to this channel with the "new slide" popup open.
+ *
+ * @private
+ * @returns {Deferred} Unresolved if there is a redirection
+ */
+ _createNewSlide: function () {
+ var self = this;
+ return this._rpc({
+ model: 'slide.channel',
+ method: 'list_all',
+ context: weContext.get(),
+ args: [[]],
+ }).then(function (data) {
+ var def = $.Deferred();
+ new Dialog(self, {
+ title: _t("New slide"),
+ subtitle: _t("On which channel do you want to add a slide?"),
+ size: 'medium',
+ $content: QWeb.render('website.slide.create', data),
+ buttons: [{
+ text: _t("Select"),
+ classes: 'btn-primary',
+ click: function () {
+ var channel_url = this.$("option:selected").val();
+ if (channel_url) {
+ window.location.href = channel_url + '?enable_slide_upload';
+ } else {
+ def.reject();
+ }
+ }
+ }, {
+ text: _t("Cancel"), close: true
+ },]
+ }).open()
+ .on('closed', def.resolve.bind(def));
+
+ return def;
+ });
+ },
+});
+});