summaryrefslogtreecommitdiff
path: root/addons/website_event/static/src/js/website_event.editor.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_event/static/src/js/website_event.editor.js')
-rw-r--r--addons/website_event/static/src/js/website_event.editor.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/addons/website_event/static/src/js/website_event.editor.js b/addons/website_event/static/src/js/website_event.editor.js
new file mode 100644
index 00000000..48f3a995
--- /dev/null
+++ b/addons/website_event/static/src/js/website_event.editor.js
@@ -0,0 +1,49 @@
+odoo.define('website_event.editor', function (require) {
+"use strict";
+
+var core = require('web.core');
+var wUtils = require('website.utils');
+var WebsiteNewMenu = require('website.newMenu');
+
+var _t = core._t;
+
+WebsiteNewMenu.include({
+ actions: _.extend({}, WebsiteNewMenu.prototype.actions || {}, {
+ new_event: '_createNewEvent',
+ }),
+
+ //--------------------------------------------------------------------------
+ // Actions
+ //--------------------------------------------------------------------------
+
+ /**
+ * Asks the user information about a new event to create, then creates it
+ * and redirects the user to this new event.
+ *
+ * @private
+ * @returns {Promise} Unresolved if there is a redirection
+ */
+ _createNewEvent: function () {
+ var self = this;
+ return wUtils.prompt({
+ id: "editor_new_event",
+ window_title: _t("New Event"),
+ input: _t("Event Name"),
+ }).then(function (result) {
+ var eventName = result.val;
+ if (!eventName) {
+ return;
+ }
+ return self._rpc({
+ route: '/event/add_event',
+ params: {
+ event_name: eventName,
+ },
+ }).then(function (url) {
+ window.location.href = url;
+ return new Promise(function () {});
+ });
+ });
+ },
+});
+});