</style>
<script type="text/javascript">
var mkws_config = { service_proxy_auth: "//mkws.indexdata.com/service-proxy-testauth" };
+ var ourQuery = 'dinosaur';
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="http://x.mkws.indexdata.com/jquery.json-2.4.js"></script>
<script type="text/javascript" src="http://x.mkws.indexdata.com/pazpar2/js/pz2.js"></script>
<script type="text/javascript" src="http://x.mkws.indexdata.com/mkws.js"></script>
</head>
-<!--
<body>
- <svg width="100" height="100">
- <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
- </svg>
+<div class='mkwsRecords'
+ autosearch='!var!ourQuery'
+ sort='relevance'
+ targets='pz:id~josiah.brown.edu:210/innopac|connect.indexdata.com:9000/mit_opencourseware'
+>results will appear here</div>
</body>
--->
- <body>
- <div class="mkwsSwitch"></div>
- <div class="mkwsLang"></div>
- <div class="mkwsAuthname"></div>
- <div class="mkwsSearch"></div>
- <br/>
- <div class="mkwsCategories"></div>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
- <tr>
- <td class="mkwsTermlistContainer1" width="250" valign="top">
- <div class="mkwsTermlists mkwsTeam_AUTO">
- <div class="title">Termlists</div>
- <div class="mkwsFacet mkwsTeam_AUTO" data-mkws-facet="subject"></div>
- <div class="mkwsFacet mkwsTeam_AUTO" data-mkws-facet="xtargets"></div>
- <div class="mkwsFacet mkwsTeam_AUTO" data-mkws-facet="author"></div>
- </div>
- </td>
- <td class="mkwsMOTDContainer" valign="top">
- <div class="mkwsRanking"></div>
- <div class="mkwsPager"></div>
- <div class="mkwsNavi"></div>
- <div class="mkwsRecords"></div>
- <div class="mkwsTargets"></div>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <div class="mkwsTermlistContainer2"></div>
- </td>
- </tr>
- </table>
- <div class="mkwsStat"></div>
- <div class="mkwsConsoleBuilder" text="Make Widget"></div>
- <div class="mkwsDone"></div>
- <div class="mkwsMOTD">Speak, friend, and enter!</div>
- </body>
-<!--
- <body>
- <table width="100%" border="1">
- <tr>
- <td valign="top" width="50%">
- <div class="mkwsSwitch"></div>
- <div class="mkwsLang"></div>
- <div class="mkwsSearch"></div>
- <div class="mkwsResults"></div>
- <div class="mkwsTargets"></div>
- <div class="mkwsStat"></div>
- </td>
- <td valign="top" width="50%">
- <div class="mkwsSwitch mkwsTeam_2"></div>
- <div class="mkwsLang mkwsTeam_2"></div>
- <div class="mkwsSearch mkwsTeam_2"></div>
- <div class="mkwsResults mkwsTeam_2"></div>
- <div class="mkwsTargets mkwsTeam_2"></div>
- <div class="mkwsStat mkwsTeam_2"></div>
- </td>
- </tr>
- </table>
- <div class="mkwsMOTD">This is the first MOTD</div>
- <div class="mkwsMOTD mkwsTeam_2">This is the second MOTD</div>
- </body>
--->
</html>
--- /dev/null
+mkws.registerWidgetType('Reference', function() {
+ mkws.promotionFunction('Record').call(this);
+ if (!this.config.target) this.config.target = 'wikimedia_wikipedia_single_result';
+ if (!this.config.template) this.config.template = 'Reference';
+
+ this.team.registerTemplate('Reference', '\
+ <img src="{{md-thumburl}}" alt="{{md-title}}">\
+ <h1><a href="{{md-electronic-url}}">{{md-title}}</a></h1>\
+{{#if md-title-remainder}}\
+ <b>{{md-title-remainder}}</b>\
+{{/if}}\
+{{#if md-title-responsibility}}\
+ <i>{{md-title-responsibility}}</i>\
+{{/if}}\
+ <p>\
+ {{md-description}}\
+ </p>\
+');
+});
"last": $.now()
};
var m_paz; // will be initialised below
- var m_template = {};
+ var m_tempateText = {}; // widgets can register tempates to be compiled
+ var m_template = {}; // compiled templates, from any source
var m_config = mkws.objectInheritingFrom(mkws.config);
var m_widgets = {}; // Maps widget-type to object
that.renderDetails = renderDetails;
+ that.registerTemplate = function(name, text) {
+ m_tempateText[name] = text;
+ };
+
+
function loadTemplate(name) {
var template = m_template[name];
}
if (!source) {
+ source = m_tempateText[name];
+ }
+ if (!source) {
source = defaultTemplate(name);
}
if (!query) {
alert("This page has a MasterKey widget that needs a query specified by the path-component " + index);
}
+ } else if (query.match(/^!var!/)) {
+ var name = query.replace(/^!var!/, '');
+ query = window[name]; // It's ridiculous that this works
+ widget.log("obtained query '" + query + "' from variable '" + name + "'");
+ if (!query) {
+ alert("This page has a MasterKey widget that needs a query specified by the '" + name + "' variable");
+ }
}
var sortOrder = widget.config.sort;
var html = [];
for (var i = 0; i < data.hits.length; i++) {
var hit = data.hits[i];
+ that.team.queue("record").publish(hit);
var divId = team.recordElementId(hit.recid[0]);
html.push('<div class="record mkwsTeam_' + team.name() + ' ' + divId + '">', renderSummary(hit), '</div>');
// ### At some point, we may be able to move the