var m_template = {}; // compiled templates, from any source
var m_config = mkws.objectInheritingFrom(mkws.config);
var m_widgets = {}; // Maps widget-type to array of widget objects
+ var m_gotRecords = false;
that.toString = function() { return '[Team ' + teamName + ']'; };
function onStat(data) {
queue("stat").publish(data);
- if (parseInt(data.activeclients[0], 10) === 0)
- queue("complete").publish(parseInt(data.hits[0], 10));
+ var hitcount = parseInt(data.hits[0], 10);
+ if (!m_gotRecords && hitcount > 0) {
+ m_gotRecords = true;
+ queue("firstrecords").publish(hitcount);
+ }
+ if (parseInt(data.activeclients[0], 10) === 0) {
+ log("complete");
+ queue("complete").publish(hitcount);
+ }
}
function onTerm(data) {
function resetPage() {
m_currentPage = 1;
m_totalRecordCount = 0;
+ m_gotRecords = false;
}
that.resetPage = resetPage;
};
- function loadTemplate(name) {
+ function loadTemplate(name, fallbackString) {
var template = m_template[name];
if (template === undefined) {
source = node.html();
}
+ // If the template is not defined in HTML, check the following
+ // in order: template registered in the team by a widget;
+ // fallback string provided on this invocation; global default.
if (!source) {
source = m_templateText[name];
}
if (!source) {
+ source = fallbackString;
+ }
+ if (!source) {
source = mkws.defaultTemplate(name);
}
+ if (!source) return null;
template = Handlebars.compile(source);
log("compiled template '" + name + "'");
m_template[name] = template;