Commit 053e6479 authored by Sven Franck's avatar Sven Franck

fixed page header and title displaying incorrectly

parent 2a5f48a1
......@@ -153,22 +153,37 @@
// TODO: remove duplicate code for pagination
erp5.map_actions = {
/** look up single value from dict
* @method translateLookup
* @param {sting} path Lookup path
* @return {string} lookup value in current language
*/
"translateLookup": function (path) {
if (i18n) {
return i18n.t(path);
} else {
util.errorHandler({"error":"Translate NodeList - i18n not defined"});
return ""
}
},
/** translate a nodeList (which can't be passed into i18n).
* By using this the translations can be done BEFORE appending to the DOM
* saving full DOM traversal and extensive jQuery-ing
* @method translateNodeList
* @param {object} nodeList Nodelist to translate
* @param {string} language Language to translate
* @param {boolean} single Single element
*/
// TODO: no solution yet for selectMenu-refesh and input (submit/reset/btn)
"translateNodeList": function (nodeList) {
"translateNodeList": function (nodeList, single) {
var i,
l,
element,
lookup,
targets,
target,
elements = nodeList.querySelectorAll(".translate");
elements = single ? [nodeList] :
nodeList.querySelectorAll(".translate");
if (i18n) {
for (i = 0; i < elements.length; i += 1) {
......@@ -4079,28 +4094,22 @@
/**
* Set the page title
* @method setPageTitle
* @param {object} page Page
* @param {object} spec Config of page being loaded
* @param {string} page_i18n Lookup value for title
*/
init.setPageTitle = function (page, spec) {
var header, title;
if (page === undefined) {
util.errorHandler({
"error": "Set Title: Missing page"
});
} else {
// find header
// WARNING: IE8- children() retrieves comments, too
header = document.getElementById("global_header") || page.children()[0];
if (util.testForClass(header.className, "ui-header")) {
title = header.getElementsByTagName("h1")[0];
title.setAttribute("data-i18n", (spec.title_i18n || ""));
title.removeChild(title.childNodes[0]);
title.appendChild(document.createTextNode((spec.title || "\u00A0")));
}
init.setPageTitle = function (page_i18n) {
var title,
value = factory.map_actions.translateLookup(page_i18n),
header = document.getElementById("global_header") ||
// WARNING: IE8- children() retrieves comments, too
document.getElementById(util.getActivePage()).children()[0];
if (util.testForClass(header.className, "ui-header")) {
title = header.getElementsByTagName("h1")[0];
title.setAttribute("data-i18n", (page_i18n || ""));
title.removeChild(title.childNodes[0]);
title.appendChild(document.createTextNode((value || "\u00A0")));
}
document.title = value;
};
/**
......@@ -4188,9 +4197,9 @@
init.parsePage = function (e, data) {
var create, config, raw_url, handle, clean_url, parsed_url, destination;
// TODO:maybe this is the problem???
if (data) {
if (data.options.link) {
// TODO: leaning out of the window here!
raw_url = data.options.link[0].href;
} else {
raw_url = data.toPage;
......@@ -4206,15 +4215,12 @@
if (document.getElementById(raw_url.split("#").pop()) ||
raw_url === $.mobile.getDocumentUrl() ||
data.options.role === "popup") {
// console.log("let JQM go, but stop us!")
return;
}
if (document.getElementById(config.id)) {
// console.log("stop JQM")
e.preventDefault();
return;
}
// console.log("HIJACK and stop JQM")
handle = true;
e.preventDefault();
......@@ -4497,7 +4503,7 @@
* @return {object} response object/promise
*/
init.generateGadgetContent = function (reply) {
var baggage = reply.baggage, selector, element;
var baggage = reply.baggage, selector, element, translate;
// append gadget to wrapping div
element = factory.map_gadgets[baggage.constructor](
......@@ -4507,6 +4513,11 @@
(baggage.create === false ? true : null)
);
// set header
if (baggage.create) {
init.setPageTitle(baggage.title_i18n);
}
// translate
factory.map_actions.translateNodeList(element);
......@@ -4580,6 +4591,8 @@
// prepare baggage
baggage = {
"title": layout.title || "",
"title_i18n": layout.title_i18n || "",
"mode": config.mode || null,
"create": create,
"layout_level": config.layout_level || null,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment