var cleandata = [];
for (var i = 0; i < data.length; i++) {
var cur = {};
+ cur.name = data[i].name;
cur.id = data[i].id;
cur.hits = data[i].hits;
cur.diagnostic = data[i].diagnostic;
cur.message = data[i].message;
cur.records = data[i].records;
- cur.state = data[i].state;
+ cur.state = data[i].state.replace(/^Client_/, '');
cleandata.push(cur);
}
+ cleandata.sort(function(a,b) { return a.name.localeCompare(b.name) });
+
var template = that.team.loadTemplate(that.config.template || "targets");
that.node.html(template({data: cleandata}));
});
var that = this;
var team = this.team;
- this.team.queue("records").subscribe(function(data) {
- for (var i = 0; i < data.hits.length; i++) {
- var hit = data.hits[i];
- hit.detailLinkId = team.recordElementId(hit.recid[0]);
- hit.detailClick = "mkws.showDetails('" + team.name() + "', '" + hit.recid[0] + "');return false;";
- hit.containerClass = "mkws-summary mkwsSummary mkws-team-" + team.name();
- hit.containerClass += " " + hit.detailLinkId;
- // ### At some point, we may be able to move the
- // m_currentRecordId and m_currentRecordData members
- // from the team object into this widget.
- if (hit.recid == team.currentRecordId()) {
- if (team.currentRecordData()) {
- hit.renderedDetails = team.renderDetails(team.currentRecordData());
- }
+ this.team.queue("searchtriggered").subscribe(function() {
+ var op = that.config.newsearch_opacity;
+ if (op !== undefined) { that.node.fadeTo(500, op); }
+ });
+
+ var m_dataToRedraw = null;
+ function refreshRecordData() {
+ that.node.css('opacity', 1);
+
+ if (m_dataToRedraw) {
+ for (var i = 0; i < m_dataToRedraw.hits.length; i++) {
+ var hit = m_dataToRedraw.hits[i];
+ hit.detailLinkId = team.recordElementId(hit.recid[0]);
+ hit.detailClick = "mkws.showDetails('" + team.name() + "', '" + hit.recid[0] + "');return false;";
+ hit.containerClass = "mkws-summary mkwsSummary mkws-team-" + team.name();
+ hit.containerClass += " " + hit.detailLinkId;
+ // ### At some point, we may be able to move the
+ // m_currentRecordId and m_currentRecordData members
+ // from the team object into this widget.
+ if (hit.recid == team.currentRecordId()) {
+ if (team.currentRecordData()) {
+ hit.renderedDetails = team.renderDetails(team.currentRecordData());
+ }
+ }
}
+ var template = team.loadTemplate(that.config.template || "records");
+ var summaryPartial = team.loadTemplate(that.config['summary-template'] || "summary");
+ var tdata = $.extend({}, {"hits": m_dataToRedraw.hits}, that.config.template_vars);
+ that.node.html(template(tdata, {"partials":{"summary":summaryPartial}}));
+ }
+
+ m_dataToRedraw = null;
+ }
+
+ var m_frozen = false;
+ this.team.queue("records").subscribe(function(data) {
+ m_dataToRedraw = data;
+ if (!m_frozen) {
+ refreshRecordData();
}
- var template = team.loadTemplate(that.config.template || "records");
- var summaryPartial = team.loadTemplate(that.config['summary-template'] || "summary");
- var tdata = $.extend({}, {"hits": data.hits}, that.config.template_vars);
- that.node.html(template(tdata, {"partials":{"summary":summaryPartial}}));
});
+ var m_timer;
+ this.node.mousemove(function() {
+ that.debug("freezing display records");
+ var op = that.config.freeze_opacity;
+ if (op !== undefined) { that.node.css('opacity', op); }
+ m_frozen = true;
+ clearTimeout(m_timer);
+ m_timer = setTimeout(unfreezeRecordDisplay, 1000);
+ });
+
+ function unfreezeRecordDisplay() {
+ clearTimeout(m_timer);
+ that.debug("refreshing records");
+ that.node.css('opacity', 1);
+ m_frozen = false;
+ refreshRecordData();
+ }
+ this.node.mouseleave(unfreezeRecordDisplay);
+
that.autosearch();
});
var cur = {};
var opt = this.config.sort_options[i];
cur.key = opt[0];
- cur.label = opt.length == 1 ? opt[0] : opt[1];
+ cur.label = opt.length == 1 ? opt[0] : mkws.M(opt[1]);
if (order == cur.key || order == cur.label) cur.selected = true;
output.sort.push(cur);
}
});
+mkws.registerWidgetType('waiting', function() {
+ var that = this;
+
+ this.node.css("visibility", "hidden");
+ var template = that.team.loadTemplate(that.config.template || "waiting");
+ this.node.html(template({
+ src: this.config.src || "http://mkws.indexdata.com/progress.gif"
+ }));
+
+ this.team.queue("searchtriggered").subscribe(function(data) {
+ that.node.css("visibility", "visible");
+ });
+ this.team.queue("complete").subscribe(function(n) {
+ that.node.css("visibility", "hidden");
+ });
+});
+
+
// Some elements have mkws* classes that makes them appear as widgets
// -- for example, because we want to style them using CSS -- but have
// no actual functionality. We register these to prevent ignorable