[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)
|
||||
|
||||
@http.route('/website/lang/<lang>', type='http', auth="public", website=True, multilang=False)
|
||||
def change_lang(self, lang, r, **kwargs):
|
||||
redirect = werkzeug.utils.redirect(r or '/%s' % lang, 303)
|
||||
def change_lang(self, lang, r='/', **kwargs):
|
||||
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)
|
||||
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) {
|
||||
e.preventDefault();
|
||||
|
||||
|
@ -361,7 +372,7 @@
|
|||
hash: location.hash
|
||||
};
|
||||
location.href = _.str.sprintf("/website/lang/%(lang)s?r=%(url)s%(hash)s", redirect);
|
||||
})
|
||||
});
|
||||
|
||||
/* ----- KANBAN WEBSITE ---- */
|
||||
$('.js_kanban').each(function () {
|
||||
|
|
Loading…
Reference in New Issue