mkws.registerWidgetType = function(name, fn) {
+ if(mkws._old2new.hasOwnProperty(name)) {
+ mkws.log("Warning: registerWidgetType old widget name: " + name + " => " + mkws._old2new[name]);
+ name = mkws._old2new[name];
+ }
+
mkws.widgetType2function[name] = fn;
mkws.log("registered widget-type '" + name + "'");
};
mkws.setMkwsConfig = function(overrides) {
// Set global log_level flag early so that mkws.log() works
- // Fall back to old "debug_level" setting for backwards compatibility
var tmp = overrides.log_level;
- if (typeof(tmp) === 'undefined') tmp = overrides.debug_level;
if (typeof(tmp) !== 'undefined') mkws.log_level = tmp;
var config_default = {
'MOTDContainer': 'motd-container',
'Perpage': 'per-page',
'SearchForm': 'search-form',
+ 'ReferenceUniverse': 'reference-universe'
};
+ // Annoyingly, there is no built-in way to invert a hash
+ var _new2old = {};
+ for (var key in _old2new) {
+ if(_old2new.hasOwnProperty(key)) {
+ _new2old[_old2new[key]] = key;
+ }
+ }
+
+ mkws._old2new = _old2new;
function handleNodeWithTeam(node, callback) {
// First branch for DOM objects; second branch for jQuery objects
for (var i = 0; i < list.length; i++) {
var cname = list[i];
if (cname.match(/^mkws-team-/)) {
+ // New-style teamnames of the form mkws-team-xyz
teamName = cname.replace(/^mkws-team-/, '');
+ } else if (cname.match(/^mkwsTeam_/)) {
+ // Old-style teamnames of the form mkwsTeam_xyz
+ teamName = cname.replace(/^mkwsTeam_/, '');
} else if (cname.match(/^mkws-/)) {
- // New-style names of the form mkws-foo-bar
+ // New-style names of the from mkws-foo-bar
type = cname.replace(/^mkws-/, '');
} else if (cname.match(/^mkws/)) {
// Old-style names of the form mkwsFooBar
var tmp = cname.replace(/^mkws/, '');
- type = _old2new[tmp] || tmp;
+ type = _old2new[tmp] || tmp.toLowerCase();
}
}
teamName = "AUTO";
// Autosearch widgets don't join team AUTO if there is already an
// autosearch on the team or the team has otherwise gotten a query
- if (node.hasAttribute("autosearch")) {
+ if (node.getAttribute("autosearch")) {
if (mkws.autoHasAuto ||
mkws.teams["AUTO"] && mkws.teams["AUTO"].config["query"]) {
log("AUTO team already has a query, using unique team");
s += '.mkws-' + type;
s += ',.mkws-' + type + "-container-wide";
s += ',.mkws-' + type + "-container-narrow";
- // ### Do we need to do something about old-style names?
+ // Annoyingly, we also need to recognise old-style names
+ var oldtype = _new2old[type] || type.charAt(0).toUpperCase() + type.slice(1);
+ s += ',.mkws' + oldtype;
+ s += ',.mkws' + oldtype + "-Container-wide";
+ s += ',.mkws' + oldtype + "-Container-narrow";
}
return s;
}
var myTeam = mkws.teams[tname];
if (!myTeam) {
myTeam = mkws.teams[tname] = mkws.makeTeam($, tname);
- log("made MKWS team '" + tname + "'");
}
var oldHTML = this.innerHTML;
myTeam.addWidget(myWidget);
var newHTML = this.innerHTML;
if (newHTML !== oldHTML) {
- log("widget " + tname + ":" + type + " HTML changed: reparsing");
+ myTeam.log("widget " + type + " HTML changed: reparsing");
makeWidgetsWithin(level+1, $(this));
}
});
for (var tName in mkws.teams) {
var myTeam = mkws.teams[tName]
myTeam.makePz2();
- log("made PZ2 object for team '" + tName + "'");
+ myTeam.log("made PZ2 object");
/*
myTeam.visitWidgets(function(t, w) {
log(" has widget of type '" + t + "': " + w);