summaryrefslogtreecommitdiff
path: root/addons/website/static/src/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
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')
-rw-r--r--addons/website/static/src/js/website.js10
-rw-r--r--addons/website/static/src/js/website.seo.js50
2 files changed, 56 insertions, 4 deletions
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index e524edfb389..1f4e54b43df 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -109,9 +109,13 @@
website.ready = function() {
if (!all_ready) {
var tpl = website.load_templates(templates);
- // var session;
- // var trads = openerp._t.database.load_translations(session, ['website'], website.get_context().lang);
- all_ready = $.when(dom_ready, tpl);
+ all_ready = dom_ready.then(function () {
+ if ($('html').data('editable')) {
+ website.session = new openerp.Session();
+ var modules = ['website'];
+ return openerp._t.database.load_translations(website.session, modules, website.get_context().lang);
+ }
+ }).then(tpl).promise();
}
return all_ready;
};
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 () {