[FIX] website: language change selector
Correct lang cookie setting when the main layout has not updated.
This commit is contained in:
parent
db23690db3
commit
2a88020c10
|
@ -52,8 +52,11 @@ class Website(openerp.addons.web.controllers.main.Home):
|
||||||
return super(Website, self).web_login(*args, **kw)
|
return super(Website, self).web_login(*args, **kw)
|
||||||
|
|
||||||
@http.route('/website/lang/<lang>', type='http', auth="public", website=True, multilang=False)
|
@http.route('/website/lang/<lang>', type='http', auth="public", website=True, multilang=False)
|
||||||
def change_lang(self, lang, r, **kwargs):
|
def change_lang(self, lang, r='/', **kwargs):
|
||||||
redirect = werkzeug.utils.redirect(r or '/%s' % lang, 303)
|
if lang == 'default':
|
||||||
|
lang = request.website.default_lang_code
|
||||||
|
r = '/%s%s' % (lang, r or '/')
|
||||||
|
redirect = werkzeug.utils.redirect(r or ('/%s' % lang), 303)
|
||||||
redirect.set_cookie('website_lang', lang)
|
redirect.set_cookie('website_lang', lang)
|
||||||
return redirect
|
return redirect
|
||||||
|
|
||||||
|
|
|
@ -350,6 +350,17 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!$('.js_change_lang').length) {
|
||||||
|
// in case template is not up to date...
|
||||||
|
var links = $('ul.js_language_selector li a:not([data-oe-id])');
|
||||||
|
var m = $(_.min(links, function(l) { return $(l).attr('href').length; })).attr('href');
|
||||||
|
links.each(function() {
|
||||||
|
var t = $(this).attr('href');
|
||||||
|
var l = (t === m) ? "default" : t.split('/')[1];
|
||||||
|
$(this).data('lang', l).addClass('js_change_lang');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$(document).on('click', '.js_change_lang', function(e) {
|
$(document).on('click', '.js_change_lang', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
@ -361,7 +372,7 @@
|
||||||
hash: location.hash
|
hash: location.hash
|
||||||
};
|
};
|
||||||
location.href = _.str.sprintf("/website/lang/%(lang)s?r=%(url)s%(hash)s", redirect);
|
location.href = _.str.sprintf("/website/lang/%(lang)s?r=%(url)s%(hash)s", redirect);
|
||||||
})
|
});
|
||||||
|
|
||||||
/* ----- KANBAN WEBSITE ---- */
|
/* ----- KANBAN WEBSITE ---- */
|
||||||
$('.js_kanban').each(function () {
|
$('.js_kanban').each(function () {
|
||||||
|
|
Loading…
Reference in New Issue