summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/website.editor.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/static/src/js/website.editor.js')
-rw-r--r--addons/website/static/src/js/website.editor.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js
index f9d2aef339b..826c2e39091 100644
--- a/addons/website/static/src/js/website.editor.js
+++ b/addons/website/static/src/js/website.editor.js
@@ -674,6 +674,7 @@
return $.when(
this.fetch_pages().done(this.proxy('fill_pages')),
+ this.fetch_menus().done(this.proxy('fill_menus')),
this._super()
).done(this.proxy('bind_data'));
},
@@ -762,6 +763,23 @@
'/pagenew/%s?noredirect', encodeURI(val)))
.then(function (response) {
self.make_link(response, false, val);
+ var parent_id = self.$('.add-to-menu').val();
+ if (parent_id) {
+ return openerp.jsonRpc('/web/dataset/call_kw', 'call', {
+ model: 'website.menu',
+ method: 'create',
+ args: [{
+ 'name': val,
+ 'url': response,
+ 'sequence': 0, // TODO: better tree widget
+ 'website_id': website.id,
+ 'parent_id': parent_id|0,
+ }],
+ kwargs: {
+ context: website.get_context()
+ },
+ });
+ }
});
} else {
this.make_link(val, this.$('input.window-new').prop('checked'));
@@ -828,6 +846,26 @@
new Option(result.name, result.url);
});
},
+ fetch_menus: function () {
+ var context = website.get_context();
+ return openerp.jsonRpc('/web/dataset/call_kw', 'call', {
+ model: 'website.menu',
+ method: 'get_list',
+ args: [[context.website_id]],
+ kwargs: {
+ context: context
+ },
+ });
+ },
+ fill_menus: function (results) {
+ var self = this;
+ var menus = this.$('select.add-to-menu')[0];
+ _(results).each(function (result) {
+ var name = (new Array(result.level).join('|-')) + ' ' + result.name;
+ menus.options[menus.options.length] =
+ new Option(name, result.id || 0);
+ });
+ },
});
/**
* ImageDialog widget. Lets users change an image, including uploading a