summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/website.seo.js
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2013-10-10 15:29:07 +0200
committerFabien Meghazi <fme@openerp.com>2013-10-10 15:29:07 +0200
commit9b40e849d6debcfb9fbca2ded70f0ed7cae2c878 (patch)
tree798a75304726d29027ba732daaa6ff40818f0e26 /addons/website/static/src/js/website.seo.js
parent672a76a002ca25ccfbfceab9c67a7a1003a2da62 (diff)
[WIP] new title managment in templates. expose main_object for seo
bzr revid: fme@openerp.com-20131010132907-xxmg96qmcw9j5f2d
Diffstat (limited to 'addons/website/static/src/js/website.seo.js')
-rw-r--r--addons/website/static/src/js/website.seo.js50
1 files changed, 49 insertions, 1 deletions
diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js
index 945b0ed353d..6aa97110ff6 100644
--- a/addons/website/static/src/js/website.seo.js
+++ b/addons/website/static/src/js/website.seo.js
@@ -9,7 +9,7 @@
'click a[data-action=promote-current-page]': 'launchSeo',
}),
launchSeo: function () {
- (new website.seo.Configurator()).appendTo($(document.body));
+ (new website.seo.Configurator(this)).appendTo($(document.body));
},
});
@@ -320,6 +320,9 @@
maxTitleSize: 65,
maxDescriptionSize: 155,
start: function () {
+ this.loadMetaData().then(function (data) {
+ console.log(data);
+ });
var self = this;
var $modal = self.$el;
var htmlPage = this.htmlPage = new website.seo.HtmlPage();
@@ -400,6 +403,51 @@
// TODO Persist changes
this.$el.modal('hide');
},
+ getMainObject: function () {
+ var repr = $('html').data('main-object');
+ var m = repr.match(/.+\((.+), (\d+)\)/);
+ if (!m) {
+ return null;
+ } else {
+ return {
+ model: m[1],
+ id: m[2]|0
+ };
+ }
+ },
+ loadMetaData: function () {
+ var self = this;
+ var obj = this.getMainObject();
+ var def = $.Deferred();
+ if (!obj) {
+ // return $.Deferred().reject(new Error("No main_object was found."));
+ def.resolve(null);
+ } else {
+ var fields = ['name', 'website_description', 'website_keywords'];
+ var model = website.session.model(obj.model);
+ model.call('read', [[obj.id], fields, website.get_context()]).then(function (data) {
+ if (data.length) {
+ var meta = data[0];
+ meta['model'] = obj.model;
+ def.resolve(meta);
+ } else {
+ def.resolve(null);
+ }
+ }).fail(function () {
+ def.reject();
+ });
+ }
+ return def;
+ },
+ saveMetaData: function (data) {
+ var obj = this.getMainObject();
+ if (!obj) {
+ return $.Deferred().reject();
+ } else {
+ var model = website.session.model(obj.model);
+ return model.call('write', [[obj.id], data, website.get_context()]);
+ }
+ },
titleChanged: function () {
var self = this;
setTimeout(function () {