api.js parses custom data attributes for client configuration, part of #29

All data-attributes beginning with `data-isso-` are stored in
`api.config` (without leading data-isso-). Isso tries to parse
the values with JSON (e.g. `-isso-foo="false"` returns false)
and falls back for a simple string value.
This commit is contained in:
Martin Zimmermann 2013-11-06 17:39:14 +01:00
parent 4bb6e91f61
commit c06c11aeca

View File

@ -6,6 +6,7 @@ define(["q"], function(Q) {
Q.longStackSupport = true;
var salt = "Eech7co8Ohloopo9Ol6baimi",
config = {},
location = window.location.pathname;
var rules = {
@ -45,6 +46,16 @@ define(["q"], function(Q) {
} else if (js[i].src.match("require\\.js$")) {
endpoint = js[i].dataset.main.replace(/\/js\/(embed|count)$/, "");
}
[].forEach.call(js[i].attributes, function(attr) {
if (/^data-isso-/.test(attr.name)) {
try {
config[attr.name.substring(10)] = JSON.parse(attr.value);
} catch (ex) {
config[attr.name.substring(10)] = attr.value;
}
}
});
}
if (! endpoint) {
@ -181,6 +192,7 @@ define(["q"], function(Q) {
return {
endpoint: endpoint,
salt: salt,
config: config,
remote_addr: remote_addr,