return '[Widget ' + team.name() + ':' + type + ']';
};
+ that.value = function() {
+ return node.value;
+ }
+
for (var i = 0; i < node.attributes.length; i++) {
var a = node.attributes[i];
if (a.name === 'data-mkws-config') {
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;
for(var i = firstClkbl; i <= lastClkbl; i++) {
var numLabel = i;
if(i == currentPage)
- numLabel = '<b>' + i + '</b>';
+ numLabel = '<span class="mkwsSelected">' + i + '</span>';
middle += '<a href="#" onclick="mkws.showPage(\'' + teamName + '\', ' + i + ')"> '
+ numLabel + ' </a>';
});
+mkws.registerWidgetType('Results', function() {
+ // Nothing to do apart from act as an autosearch trigger
+ // Contained elements do all the real work
+ widget.autosearch(this);
+});
+
+
mkws.registerWidgetType('Records', function() {
var that = this;
var team = this.team;
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
var filters = that.team.filters();
var text = "";
- for (var i in filters) {
- if (text) {
- text += " | ";
- }
- var filter = filters[i];
- if (filter.id) {
- text += M('source') + ': <a class="crossout" href="#" onclick="mkws.delimitTarget(\'' + teamName +
- "', '" + filter.id + "'" + ');return false;">' + filter.name + '</a>';
- } else {
- text += M(filter.field) + ': <a class="crossout" href="#" onclick="mkws.delimitQuery(\'' + teamName +
- "', '" + filter.field + "', '" + filter.value + "'" +
- ');return false;">' + filter.value + '</a>';
- }
- }
+ filters.visitTargets(function(id, name) {
+ if (text) text += " | ";
+ text += M('source') + ': <a class="crossout" href="#" onclick="mkws.delimitTarget(\'' + teamName +
+ "', '" + id + "'" + ');return false;">' + name + '</a>';
+ });
+
+ filters.visitFields(function(field, value) {
+ if (text) text += " | ";
+ text += M(field) + ': <a class="crossout" href="#" onclick="mkws.delimitQuery(\'' + teamName +
+ "', '" + field + "', '" + value + "'" +
+ ');return false;">' + value + '</a>';
+ });
$(that.node).html(text);
});
$(that.node).html("Search complete: found " + n + " records");
});
});
+
+
+mkws.registerWidgetType('Switch', function() {
+ var tname = this.team.name();
+ $(this.node).html('\
+<a href="#" onclick="mkws.switchView(\'' + tname + '\', \'records\')">Records</a><span> \
+| \
+</span><a href="#" onclick="mkws.switchView(\'' + tname + '\', \'targets\')">Targets</a>');
+});