diff options
| author | Andrea Ulliana <aul@odoo.com> | 2019-06-13 10:48:12 +0000 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2019-08-02 16:32:29 +0000 |
| commit | f9c2716b3e76ce9bc36d87d69a37a897391c9cdb (patch) | |
| tree | fa87d07b46fb47c83b3ed0d5ee6f880bb2fa24ec /addons/website_forum/static | |
| parent | cfeb8a5185cd325d8687908c9976d5f7a9755f4a (diff) | |
[IMP] website_forum: bring forum modes
It is now possible to specify the forum mode : Questions and Answers or
Discussions. In Q&A mode, a user can only reply once while there is no
limit in Discussions mode.
task-2008910
closes odoo/odoo#34097
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Diffstat (limited to 'addons/website_forum/static')
| -rw-r--r-- | addons/website_forum/static/src/js/website_forum.editor.js | 92 | ||||
| -rw-r--r-- | addons/website_forum/static/src/xml/website_forum_templates.xml | 30 |
2 files changed, 87 insertions, 35 deletions
diff --git a/addons/website_forum/static/src/js/website_forum.editor.js b/addons/website_forum/static/src/js/website_forum.editor.js index e2b19ba681f..2f6d61791c8 100644 --- a/addons/website_forum/static/src/js/website_forum.editor.js +++ b/addons/website_forum/static/src/js/website_forum.editor.js @@ -3,10 +3,61 @@ odoo.define('website_forum.editor', function (require) { var core = require('web.core'); var WebsiteNewMenu = require('website.newMenu'); -var wUtils = require('website.utils'); +var Dialog = require('web.Dialog'); var _t = core._t; +var ForumCreateDialog = Dialog.extend({ + xmlDependencies: Dialog.prototype.xmlDependencies.concat( + ['/website_forum/static/src/xml/website_forum_templates.xml'] + ), + template: 'website_forum.add_new_forum', + + /** + * @override + * @param {Object} parent + * @param {Object} options + */ + init: function (parent, options) { + options = _.defaults(options || {}, { + title: _t("New Forum"), + size: 'medium', + buttons: [ + { + text: _t("Create"), + classes: 'btn-primary', + click: this.onCreateClick.bind(this), + }, + { + text: _t("Discard"), + close: true + }, + ] + }); + this._super(parent, options); + }, + onCreateClick: function () { + var $dialog = this.$el; + var forumName = $dialog.find('input[name=forum_name]').val();; + if (!forumName) { + return; + } + var addMenu = ($dialog.find('input[type="checkbox"]').is(':checked')); + var forumMode = $dialog.find('input[type="radio"]:checked').val(); + return this._rpc({ + route: '/forum/new', + params: { + forum_name: forumName, + forum_mode: forumMode, + add_menu: addMenu || "", + }, + }).then(function (url) { + window.location.href = url; + return new Promise(function () {}); + }); + }, +}); + WebsiteNewMenu.include({ actions: _.extend({}, WebsiteNewMenu.prototype.actions || {}, { new_forum: '_createNewForum', @@ -25,41 +76,12 @@ WebsiteNewMenu.include({ */ _createNewForum: function () { var self = this; - return wUtils.prompt({ - id: "editor_new_forum", - window_title: _t("New Forum"), - input: _t("Forum Name"), - init: function () { - var $group = this.$dialog.find("div.form-group"); - $group.removeClass("mb0"); - - var $add = $( - '<div class="form-group mb0">'+ - '<label class="offset-md-3 col-md-9 text-left">'+ - ' <input type="checkbox" required="required"/> '+ - '</label>'+ - '</div>'); - $add.find('label').append(_t("Add to menu")); - $group.after($add); - } - }).then(function (result) { - var forum_name = result.val; - var $dialog = result.dialog; - if (!forum_name) { - return; - } - var add_menu = ($dialog.find('input[type="checkbox"]').is(':checked')); - return self._rpc({ - route: '/forum/new', - params: { - forum_name: forum_name, - add_menu: add_menu || "", - }, - }).then(function (url) { - window.location.href = url; - return new Promise(function () {}); - }); + var def = new Promise(function (resolve) { + var dialog = new ForumCreateDialog(self, {}); + dialog.open(); + dialog.on('closed', self, resolve); }); + return def; }, }); }); diff --git a/addons/website_forum/static/src/xml/website_forum_templates.xml b/addons/website_forum/static/src/xml/website_forum_templates.xml new file mode 100644 index 00000000000..0d3ce2407d0 --- /dev/null +++ b/addons/website_forum/static/src/xml/website_forum_templates.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<templates xml:space="preserve"> + <t t-name="website_forum.add_new_forum"> + <form id="editor_new_forum"> + <div class="form-group row"> + <label for="page-name" class="col-md-4 col-form-label">Forum Name:</label> + <div class="col-md-8"> + <input type="text" name="forum_name" class="form-control" required="required"/> + <div class="custom-control custom-checkbox mt-2"> + <input type="checkbox" class="custom-control-input" id="add_to_menu" required="required"/> + <label class="custom-control-label" for="add_to_menu">Add to menu</label> + </div> + </div> + </div> + <div class="form-group row mt-2"> + <label class="col-md-4 col-form-label">Forum Mode:</label> + <div class="col-md-8"> + <div class="custom-control custom-radio"> + <input type="radio" id="questions" name="mode" class="custom-control-input" value="questions" checked="checked"/> + <label class="custom-control-label" for="questions">Questions and Answers</label> + </div> + <div class="custom-control custom-radio"> + <input type="radio" id="discussions" name="mode" class="custom-control-input" value="discussions"/> + <label class="custom-control-label" for="discussions">Discussions</label> + </div> + </div> + </div> + </form> + </t> +</templates> |
