summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/website.editor.js
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2013-10-25 17:24:46 +0200
committerFabien Meghazi <fme@openerp.com>2013-10-25 17:24:46 +0200
commiteb7b1362cdaeb7a2221e542f1dad1ea483305477 (patch)
treed208b212dc8626e64842be9aea49d25edb8253a0 /addons/website/static/src/js/website.editor.js
parentec09c0fa2cfe970c3aecabbf45b3e8a495206b4d (diff)
[WIP] Menu working from database (not yet multi-website)
bzr revid: fme@openerp.com-20131025152446-si9gsjujzcn40hip
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