diff options
| author | Sébastien Theys <seb@odoo.com> | 2018-09-21 12:25:22 +0200 |
|---|---|---|
| committer | Sébastien Theys <seb@odoo.com> | 2018-09-25 16:23:08 +0200 |
| commit | e4aa8ec6d18a47e46a6b4c4cca70156ce7916d15 (patch) | |
| tree | 52000239592c67ed68703959fd00f245a3249014 /addons/website_slides/static/src/js/website_slides.editor.js | |
| parent | 2ab6ce80d6224df5f6a4b113762e1698910ba8db (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.js | 66 |
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; + }); + }, +}); +}); |
