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
var M = mkws.M;
this.team.queue("navi").subscribe(function() {
- // This is very low-level poking around inside the filter structure
var filters = that.team.filters();
var text = "";
- for (var i in filters) {
- var filter = filters[i];
- if (filter.id) {
- if (text) text += " | ";
- text += M('source') + ': <a class="crossout" href="#" onclick="mkws.delimitTarget(\'' + teamName +
- "', '" + filter.id + "'" + ');return false;">' + filter.name + '</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>';
+ });
- for (var i in filters) {
- var filter = filters[i];
- if (!filter.id) {
- if (text) text += " | ";
- text += M(filter.field) + ': <a class="crossout" href="#" onclick="mkws.delimitQuery(\'' + teamName +
- "', '" + filter.field + "', '" + filter.value + "'" +
- ');return false;">' + filter.value + '</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>');
+});