[FIX] qweb: support attributes with quotes

closes #651
This commit is contained in:
Géry Debongnie
2020-02-20 10:28:02 +01:00
committed by aab-odoo
parent 20eb848262
commit 2c01802b8e
3 changed files with 42 additions and 2 deletions
+6 -2
View File
@@ -174,6 +174,10 @@ function parseXML(xml: string): Document {
return doc;
}
function escapeQuotes(str: string): string {
return str.replace(/\'/g, "\\'");
}
//------------------------------------------------------------------------------
// QWeb rendering engine
//------------------------------------------------------------------------------
@@ -694,13 +698,13 @@ export class QWeb extends EventBus {
if ((value = value.trim())) {
let classDef = value
.split(/\s+/)
.map(a => `'${a}':true`)
.map(a => `'${escapeQuotes(a)}':true`)
.join(",");
classObj = `_${ctx.generateID()}`;
ctx.addLine(`let ${classObj} = {${classDef}};`);
}
} else {
ctx.addLine(`let _${attID} = '${value}';`);
ctx.addLine(`let _${attID} = '${escapeQuotes(value)}';`);
if (!name.match(/^[a-zA-Z]+$/)) {
// attribute contains 'non letters' => we want to quote it
name = '"' + name + '"';