}
var debug = mkws.debug_function; // local alias
+
+Handlebars.registerHelper('link', function(a) {
+ var result = "";
+ for (var i in a) {
+ if (i > 0) result += "<br/>";
+ var text = Handlebars.Utils.escapeExpression(a[i]);
+ result += '<a href="' + text + '">' + text + '</a>';
+ }
+
+ return new Handlebars.SafeString(result);
+});
+
+
+
{
/* default mkws config */
var config_default = {
maybeLoadTemplate("Record");
}
+ var details;
if (mkws.templateRecord) {
var template = mkws.templateRecord;
- return template(data);
+ details = template(data);
+ } else {
+ details = defaultRenderDetails(data, marker);
+ }
+
+ return '<div class="details" id="mkwsDet_' + data.recid + '">' + details + '</div>';
+}
+
+
+function maybeLoadTemplate(name)
+{
+ var source = $("#mkwsTemplate" + name).html();
+ if (!source) {
+ debug("no template '" + name + "': falling back to default behaviour");
+ // Mark template as not provided
+ mkws['template' + name] = 0;
+ return;
}
- var details = '<div class="details" id="mkwsDet_'+data.recid+'"><table>';
+ var template = Handlebars.compile(source);
+ debug("compiled template '" + name + "'");
+ mkws['template' + name] = template;
+}
+
+
+function defaultRenderDetails(data, marker)
+{
+ var details = '<table>';
if (marker) details += '<tr><td colspan="2">'+ marker + '</td></tr>';
var locations = [];
} else {
details += renderField("Location" + (locations.length == 1 ? "" : "s"), locations);
}
- details += '</table></div>';
-
+ details += '</table>';
return details;
}
-function maybeLoadTemplate(name)
-{
- debug("trying to load template 'name'");
- var source = $("#mkwsTemplate" + name).html();
- debug("source = " + source);
- if (!source) {
- // No template: mark as not provided, fall back to hardwired behaviour
- mkws['template' + name] = 0;
- return;
- }
-
- var template = Handlebars.compile(source);
- debug("template = " + template);
- mkws['template' + name] = template;
-}
-
-
function renderField(caption, data, data2, data3) {
if (data === undefined) {
return "";