flectra/addons/website_forum/static/src/js/website_forum.editor.js
2018-01-16 02:34:37 -08:00

72 lines
2.3 KiB
JavaScript

flectra.define('website_forum.editor', function (require) {
"use strict";
var core = require('web.core');
var Widget = require('web.Widget');
var SummernoteManager = require('web_editor.rte.summernote');
var WebsiteNewMenu = require("website.newMenu");
var wUtils = require('website.utils');
var websiteRootData = require('website.WebsiteRoot');
var _t = core._t;
WebsiteNewMenu.include({
actions: _.extend({}, WebsiteNewMenu.prototype.actions || {}, {
new_forum: '_createNewForum',
}),
//----------------------------------------------------------------------
// Actions
//----------------------------------------------------------------------
/**
* Asks the user information about a new forum to create, then creates it
* and redirects the user to this new forum.
*
* @private
*/
_createNewForum: function () {
var self = this;
wUtils.prompt({
id: "editor_new_forum",
window_title: _t("New Forum"),
input: "Forum Name",init: function () {
var $group = this.$dialog.find("div.form-group");
$group.removeClass("mb0");
var $add = $(
'<div class="form-group mb0">'+
'<label class="col-sm-offset-3 col-sm-9 text-left">'+
' <input type="checkbox" required="required"/> '+
'</label>'+
'</div>');
$add.find('label').append(_t("Add page in menu"));
$group.after($add);
}
}).then(function (forum_name, field, $dialog) {
var add_menu = ($dialog.find('input[type="checkbox"]').is(':checked'));
self._rpc({
route: '/forum/new',
params: {
forum_name: forum_name,
add_menu: add_menu || "",
},
}).then(function (url) {
window.location.href = url;
});
});
},
});
var WebsiteForumManager = Widget.extend({
/**
* @override
*/
init: function () {
this._super.apply(this, arguments);
new SummernoteManager(this);
},
});
websiteRootData.websiteRootRegistry.add(WebsiteForumManager, '#wrapwrap');
});