-
- function renderDetails(data, marker) {
- var template = loadTemplate("Record");
- var details = template(data);
- return '<div class="details mkwsTeam_' + m_teamName + '" ' +
- 'id="' + recordDetailsId(data.recid[0]) + '">' + details + '</div>';
- }
- that.renderDetails = renderDetails;
-
-
- that.registerTemplate = function(name, text) {
- m_tempateText[name] = text;
- };
-
-
- function loadTemplate(name) {
- var template = m_template[name];
-
- if (template === undefined) {
- // Fall back to generic template if there is no team-specific one
- var source;
- var node = widgetNode("Template_" + name);
- if (!node) {
- node = widgetNode("Template_" + name, "ALL");
- }
- if (node) {
- source = node.html();
- }
-
- if (!source) {
- source = m_tempateText[name];
- }
- if (!source) {
- source = defaultTemplate(name);
- }
-
- template = Handlebars.compile(source);
- log("compiled template '" + name + "'");
- m_template[name] = template;
- }
-
- return template;
- }
- that.loadTemplate = loadTemplate;
-
-
- function defaultTemplate(name) {
- if (name === 'Record') {
- return '\
-<table>\
- <tr>\
- <th>{{translate "Title"}}</th>\
- <td>\
- {{md-title}}\
- {{#if md-title-remainder}}\
- ({{md-title-remainder}})\
- {{/if}}\
- {{#if md-title-responsibility}}\
- <i>{{md-title-responsibility}}</i>\
- {{/if}}\
- </td>\
- </tr>\
- {{#if md-date}}\
- <tr>\
- <th>{{translate "Date"}}</th>\
- <td>{{md-date}}</td>\
- </tr>\
- {{/if}}\
- {{#if md-author}}\
- <tr>\
- <th>{{translate "Author"}}</th>\
- <td>{{md-author}}</td>\
- </tr>\
- {{/if}}\
- {{#if md-electronic-url}}\
- <tr>\
- <th>{{translate "Links"}}</th>\
- <td>\
- {{#each md-electronic-url}}\
- <a href="{{this}}">Link{{index1}}</a>\
- {{/each}}\
- </td>\
- </tr>\
- {{/if}}\
- {{#if-any location having="md-subject"}}\
- <tr>\
- <th>{{translate "Subject"}}</th>\
- <td>\
- {{#first location having="md-subject"}}\
- {{#if md-subject}}\
- {{#commaList md-subject}}\
- {{this}}{{/commaList}}\
- {{/if}}\
- {{/first}}\
- </td>\
- </tr>\
- {{/if-any}}\
- <tr>\
- <th>{{translate "Locations"}}</th>\
- <td>\
- {{#commaList location}}\
- {{attr "@name"}}{{/commaList}}\
- </td>\
- </tr>\
-</table>\
-';
- } else if (name === "Summary") {
- return '\
-<a href="#" id="{{_id}}" onclick="{{_onclick}}">\
- <b>{{md-title}}</b>\
-</a>\
-{{#if md-title-remainder}}\
- <span>{{md-title-remainder}}</span>\
-{{/if}}\
-{{#if md-title-responsibility}}\
- <span><i>{{md-title-responsibility}}</i></span>\
-{{/if}}\
-';
- } else if (name === "Image") {
- return '\
- <a href="#" id="{{_id}}" onclick="{{_onclick}}">\
- {{#first md-thumburl}}\
- <img src="{{this}}" alt="{{../md-title}}"/>\
- {{/first}}\
- <br/>\
- </a>\
-';
- }
-
- var s = "There is no default '" + name +"' template!";
- alert(s);
- return s;
- }
-
- that.addWidget = function(w) {
- if (!m_widgets[w.type]) {
- m_widgets[w.type] = w;
- log("Registered '" + w.type + "' widget in team '" + m_teamName + "'");
- } else if (typeof(m_widgets[w.type]) !== 'number') {
- m_widgets[w.type] = 2;
- log("Registered duplicate '" + w.type + "' widget in team '" + m_teamName + "'");
- } else {
- m_widgets[w.type] += 1;
- log("Registered '" + w.type + "' widget #" + m_widgets[w.type] + "' in team '" + m_teamName + "'");