X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-core.js;h=e0811ffbe63b4b9e3c43fe22b34f5c82b4d31066;hb=b307487680844b4844f79fc7053bb280315e3d29;hp=d6433f48043a516b053ed1031ee84618d07011c9;hpb=e69e9ba6777cd0186c58db2699e6419449d3c22a;p=mkws-moved-to-github.git diff --git a/src/mkws-core.js b/src/mkws-core.js index d6433f4..e0811ff 100644 --- a/src/mkws-core.js +++ b/src/mkws-core.js @@ -88,7 +88,8 @@ mkws.log = function(string) { // you need to disable use strict at the top of the file!!! if (mkws.log_level >= 3) { - console.log(arguments.callee.caller); + // Works in Chrome; not sure about elsewhere + console.trace(); } else if (mkws.log_level >= 2) { console.log(">>> called from function " + arguments.callee.caller.name + ' <<<'); } @@ -163,6 +164,95 @@ mkws.objectInheritingFrom = function(o) { } +mkws.defaultTemplate = function(name) { + if (name === 'Record') { + return '\ +\ + \ + \ + \ + \ + {{#if md-date}}\ + \ + \ + \ + \ + {{/if}}\ + {{#if md-author}}\ + \ + \ + \ + \ + {{/if}}\ + {{#if md-electronic-url}}\ + \ + \ + \ + \ + {{/if}}\ + {{#if-any location having="md-subject"}}\ + \ + \ + \ + \ + {{/if-any}}\ + \ + \ + \ + \ +
{{translate "Title"}}\ + {{md-title}}\ + {{#if md-title-remainder}}\ + ({{md-title-remainder}})\ + {{/if}}\ + {{#if md-title-responsibility}}\ + {{md-title-responsibility}}\ + {{/if}}\ +
{{translate "Date"}}{{md-date}}
{{translate "Author"}}{{md-author}}
{{translate "Links"}}\ + {{#each md-electronic-url}}\ + Link{{index1}}\ + {{/each}}\ +
{{translate "Subject"}}\ + {{#first location having="md-subject"}}\ + {{#if md-subject}}\ + {{#commaList md-subject}}\ + {{this}}{{/commaList}}\ + {{/if}}\ + {{/first}}\ +
{{translate "Locations"}}\ + {{#commaList location}}\ + {{attr "@name"}}{{/commaList}}\ +
\ +'; + } else if (name === "Summary") { + return '\ +\ + {{md-title}}\ +\ +{{#if md-title-remainder}}\ + {{md-title-remainder}}\ +{{/if}}\ +{{#if md-title-responsibility}}\ + {{md-title-responsibility}}\ +{{/if}}\ +'; + } else if (name === "Image") { + return '\ + \ + {{#first md-thumburl}}\ + {{../md-title}}\ + {{/first}}\ +
\ +
\ +'; + } + + var s = "There is no default '" + name +"' template!"; + alert(s); + return s; +}; + + // The following functions are dispatchers for team methods that // are called from the UI using a team-name rather than implicit // context. @@ -182,6 +272,10 @@ mkws.limitQuery = function(tname, field, value) { mkws.teams[tname].limitQuery(field, value); }; +mkws.limitCategory = function(tname, id) { + mkws.teams[tname].limitCategory(id); +}; + mkws.delimitTarget = function(tname, id) { mkws.teams[tname].delimitTarget(id); }; @@ -318,6 +412,24 @@ mkws.pagerNext = function(tname) { } } + + function makeWidgetsWithin(level, node) { + node.find('[class^="mkws"],[class*=" mkws"]').each(function() { + handleNodeWithTeam(this, function(tname, type) { + var oldHTML = this.innerHTML; + var myTeam = mkws.teams[tname]; + var myWidget = widget(j, myTeam, type, this); + myTeam.addWidget(myWidget); + var newHTML = this.innerHTML; + if (newHTML !== oldHTML) { + log("widget " + tname + ":" + type + " HTML changed from '" + oldHTML + "' to '" + newHTML + "': reparse!"); + makeWidgetsWithin(level+1, $(this)); + } + }); + }); + } + + $(document).ready(function() { var saved_config; if (typeof mkws_config === 'undefined') { @@ -384,17 +496,9 @@ mkws.pagerNext = function(tname) { } }); }); - // Second pass: make the individual widget objects. This has - // to be done separately, and after the team-creation, since - // that sometimes makes new widget nodes (e.g. creating - // mkwsTermlists inside mkwsResults. - $('[class^="mkws"],[class*=" mkws"]').each(function() { - handleNodeWithTeam(this, function(tname, type) { - var myTeam = mkws.teams[tname]; - var myWidget = widget(j, myTeam, type, this); - myTeam.addWidget(myWidget); - }); - }); + + makeWidgetsWithin(1, $(':root')); + var now = $.now(); log("Walking MKWS nodes took " + (now-then) + " ms");