"last": $.now()
};
var m_paz; // will be initialised below
- var m_tempateText = {}; // widgets can register tempates to be compiled
+ var m_templateText = {}; // widgets can register templates 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 array of widget objects
// http://api.jquery.com/jQuery.Callbacks/
//
// Use as:
- // team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
- // team.queue("eventName").publish(arg1, arg2, ...);
+ // team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
+ // team.queue("eventName").publish(arg1, arg2, ...);
//
var queues = {};
function queue(id) {
if (!queues[id]) {
var callbacks = $.Callbacks();
queues[id] = {
- publish: callbacks.fire,
- subscribe: callbacks.add,
- unsubscribe: callbacks.remove
+ publish: callbacks.fire,
+ subscribe: callbacks.add,
+ unsubscribe: callbacks.remove
};
}
return queues[id];
function log(s) {
var now = $.now();
var timestamp = (((now - m_logTime.start)/1000).toFixed(3) + " (+" +
- ((now - m_logTime.last)/1000).toFixed(3) + ") ");
+ ((now - m_logTime.last)/1000).toFixed(3) + ") ");
m_logTime.last = now;
mkws.log(m_teamName + ": " + timestamp + s);
that.queue("log").publish(m_teamName, timestamp, s);
that.log = log;
- log("start running MKWS");
+ log("making new widget team");
m_sortOrder = m_config.sort_default;
m_perpage = m_config.perpage_default;
- log("Create main pz2 object");
// create a parameters array and pass it to the pz2's constructor
// then register the form submit event with the pz2.search function
// autoInit is set to true on default
m_paz = new pz2({ "windowid": teamName,
- "pazpar2path": m_config.pazpar2_url,
- "usesessions" : m_config.use_service_proxy ? false : true,
- "oninit": onInit,
- "onbytarget": onBytarget,
- "onstat": onStat,
- "onterm": (m_config.facets.length ? onTerm : undefined),
- "onshow": onShow,
- "onrecord": onRecord,
- "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
- "termlist": m_config.facets.join(',')
- });
+ "pazpar2path": m_config.pazpar2_url,
+ "usesessions" : m_config.use_service_proxy ? false : true,
+ "oninit": onInit,
+ "onbytarget": onBytarget,
+ "onstat": onStat,
+ "onterm": (m_config.facets.length ? onTerm : undefined),
+ "onshow": onShow,
+ "onrecord": onRecord,
+ "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
+ "termlist": m_config.facets.join(',')
+ });
+ log("created main pz2 object");
// pz2.js event handlers:
function onInit() {
}
function onBytarget(data) {
- log("target");
+ log("bytarget");
queue("targets").publish(data);
}
if (maxrecs) params.maxrecs = maxrecs;
if (torusquery) {
if (!mkws.config.use_service_proxy)
- alert("can't narrow search by torusquery when Service Proxy is not in use");
+ alert("can't narrow search by torusquery when Service Proxy is not in use");
params.torusquery = torusquery;
}
log("triggerSearch(" + m_query + "): filters = " + m_filterSet.toJSON() + ", " +
- "pp2filter = " + pp2filter + ", params = " + $.toJSON(params));
+ "pp2filter = " + pp2filter + ", params = " + $.toJSON(params));
m_paz.search(m_query, m_perpage, m_sortOrder, pp2filter, undefined, params);
}
if (teamName === 'AUTO') {
selector = (selector + '.mkwsTeam_' + teamName + ',' +
- selector + ':not([class^="mkwsTeam"],[class*=" mkwsTeam"])');
+ selector + ':not([class^="mkwsTeam"],[class*=" mkwsTeam"])');
} else {
selector = selector + '.mkwsTeam_' + teamName;
}
function widgetNode(type) {
var w = that.widget(type);
- return w ? $(w.node) : undefined;
+ return w ? w.node : undefined;
}
function renderDetails(data, marker) {
var template = loadTemplate("Record");
var details = template(data);
- return '<div class="details mkwsTeam_' + m_teamName + '" ' +
+ return '<div class="mkwsDetails mkwsTeam_' + m_teamName + '" ' +
'id="' + recordDetailsId(data.recid[0]) + '">' + details + '</div>';
}
that.renderDetails = renderDetails;
that.registerTemplate = function(name, text) {
- m_tempateText[name] = text;
+ m_templateText[name] = text;
};
if (template === undefined) {
// Fall back to generic template if there is no team-specific one
var source;
- var node = widgetNode("Template_" + name);
- if (!node) {
- node = widgetNode("Template_" + name, "ALL");
+ var node = $(".mkwsTemplate_" + name + " .mkwsTeam_" + that.name());
+ if (node && node.length < 1) {
+ node = $(".mkwsTemplate_" + name);
}
if (node) {
- source = node.html();
+ source = node.html();
}
if (!source) {
- source = m_tempateText[name];
+ source = m_templateText[name];
}
if (!source) {
- source = mkws.defaultTemplate(name);
+ source = mkws.defaultTemplate(name);
}
template = Handlebars.compile(source);
that.addWidget = function(w) {
if (m_widgets[w.type] === undefined) {
m_widgets[w.type] = [ w ];
- log("Added '" + w.type + "' widget to team '" + m_teamName + "'");
} else {
m_widgets[w.type].push(w);
- log("Added '" + w.type + "' widget #" + m_widgets[w.type].length + "' to team '" + m_teamName + "'");
}
}