diff options
Diffstat (limited to 'addons/website/static/src/js/website.editor.js')
| -rw-r--r-- | addons/website/static/src/js/website.editor.js | 38 |
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 |
