- // Set global log_level flag early so that mkws.log() works
- // Fall back to old "debug_level" setting for backwards compatibility
- var tmp = overrides.log_level;
- if (typeof(tmp) === 'undefined') tmp = overrides.debug_level;
- if (typeof(tmp) !== 'undefined') mkws.log_level = tmp;
-
- var config_default = {
- use_service_proxy: true,
- pazpar2_url: "//mkws.indexdata.com/service-proxy/",
- service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
- lang: "",
- sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
- perpage_options: [10, 20, 30, 50],
- sort_default: "relevance",
- perpage_default: 20,
- query_width: 50,
- show_lang: true, /* show/hide language menu */
- show_sort: true, /* show/hide sort menu */
- show_perpage: true, /* show/hide perpage menu */
- lang_options: [], /* display languages links for given languages, [] for all */
- facets: ["xtargets", "subject", "author"], /* display facets, in this order, [] for none */
- responsive_design_width: undefined, /* a page with less pixel width considered as narrow */
- log_level: 1, /* log level for development: 0..2 */
-
- dummy: "dummy"
- };
-
- mkws.config = Object.create(config_default);
- for (var k in overrides) {
- mkws.config[k] = overrides[k];
- }
+ // Set global log_level flag early so that mkws.log() works
+ // Fall back to old "debug_level" setting for backwards compatibility
+ var tmp = overrides.log_level;
+ if (typeof(tmp) === 'undefined') tmp = overrides.debug_level;
+ if (typeof(tmp) !== 'undefined') mkws.log_level = tmp;
+
+ var config_default = {
+ use_service_proxy: true,
+ pazpar2_url: "//mkws.indexdata.com/service-proxy/",
+ service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
+ lang: "",
+ sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
+ perpage_options: [10, 20, 30, 50],
+ sort_default: "relevance",
+ perpage_default: 20,
+ query_width: 50,
+ show_lang: true, /* show/hide language menu */
+ show_sort: true, /* show/hide sort menu */
+ show_perpage: true, /* show/hide perpage menu */
+ show_switch: true, /* show/hide switch menu */
+ lang_options: [], /* display languages links for given languages, [] for all */
+ facets: ["xtargets", "subject", "author"], /* display facets, in this order, [] for none */
+ responsive_design_width: undefined, /* a page with less pixel width considered as narrow */
+ log_level: 1, /* log level for development: 0..2 */
+
+ dummy: "dummy"
+ };
+
+ mkws.config = mkws.objectInheritingFrom(config_default);
+ for (var k in overrides) {
+ mkws.config[k] = overrides[k];
+ }
+};
+
+
+// This code is from Douglas Crockford's article "Prototypal Inheritance in JavaScript"
+// http://javascript.crockford.com/prototypal.html
+// mkws.objectInheritingFrom behaves the same as Object.create,
+// but since the latter is not available in IE8 we can't use it.
+//
+mkws.objectInheritingFrom = function(o) {
+ function F() {}
+ F.prototype = o;
+ return new F();
+}
+
+
+mkws.defaultTemplate = function(name) {
+ if (name === 'Record') {
+ return '\
+<table>\
+ <tr>\
+ <th>{{mkws-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>{{mkws-translate "Date"}}</th>\
+ <td>{{md-date}}</td>\
+ </tr>\
+ {{/if}}\
+ {{#if md-author}}\
+ <tr>\
+ <th>{{mkws-translate "Author"}}</th>\
+ <td>{{md-author}}</td>\
+ </tr>\
+ {{/if}}\
+ {{#if md-electronic-url}}\
+ <tr>\
+ <th>{{mkws-translate "Links"}}</th>\
+ <td>\
+ {{#each md-electronic-url}}\
+ <a href="{{this}}">Link{{mkws-index1}}</a>\
+ {{/each}}\
+ </td>\
+ </tr>\
+ {{/if}}\
+ {{#mkws-if-any location having="md-subject"}}\
+ <tr>\
+ <th>{{mkws-translate "Subject"}}</th>\
+ <td>\
+ {{#mkws-first location having="md-subject"}}\
+ {{#if md-subject}}\
+ {{#mkws-commaList md-subject}}\
+ {{this}}{{/mkws-commaList}}\
+ {{/if}}\
+ {{/mkws-first}}\
+ </td>\
+ </tr>\
+ {{/mkws-if-any}}\
+ <tr>\
+ <th>{{mkws-translate "Locations"}}</th>\
+ <td>\
+ {{#mkws-commaList location}}\
+ {{mkws-attr "@name"}}{{/mkws-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}}">\
+ {{#mkws-first md-thumburl}}\
+ <img src="{{this}}" alt="{{../md-title}}"/>\
+ {{/mkws-first}}\
+ <br/>\
+ </a>\
+';
+ }
+
+ var s = "There is no default '" + name +"' template!";
+ alert(s);
+ return s;