Move some global code down out of the team object.
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index 710e47f..2e0c5fd 100644 (file)
@@ -228,24 +228,6 @@ function team($, teamName) {
     m_sort = mkws_config.sort_default;
     debug("copied mkws_config.sort_default '" + mkws_config.sort_default + "' to m_sort");
 
-    // ### should be in global code
-    if (mkws_config.query_width < 5 || mkws_config.query_width > 150) {
-       debug("Reset query width: " + mkws_config.query_width);
-       mkws_config.query_width = 50;
-    }
-
-    // ### should be in global code
-    for (var key in mkws_config) {
-       if (mkws_config.hasOwnProperty(key)) {
-           if (key.match(/^language_/)) {
-               var lang = key.replace(/^language_/, "");
-               // Copy custom languages into list
-               mkws.locale_lang[lang] = mkws_config[key];
-               debug("Added locally configured language '" + lang + "'");
-           }
-       }
-    }
-
     // protocol independent link for pazpar2: "//mkws/sp" -> "https://mkws/sp"
     if (mkws_config.pazpar2_url.match(/^\/\//)) {
        mkws_config.pazpar2_url = document.location.protocol + mkws_config.pazpar2_url;
@@ -275,9 +257,17 @@ function team($, teamName) {
 
 
     // Finds the node of the specified class within the current team
+    // Multiple OR-clauses separated by commas are handled
+    // More complex cases may not work
+    //
     function findnode(selector, teamName) {
        teamName = teamName || m_teamName;
-        return $(selector + '.mkwsTeam_' + teamName);
+
+       selector = selector.split(',').map(function(s) {
+           return s + '.mkwsTeam_' + teamName;
+       }).join(',');
+
+       return $(selector);
     }
 
 
@@ -752,8 +742,7 @@ function team($, teamName) {
     // switching view between targets and records
     that.switchView = function(view) {
        var targets = findnode('.mkwsTargets');
-       // ### Fix next line to use findnode()
-       var results = $('.mkwsResults.mkwsTeam_' + m_teamName + ',.mkwsRecords.mkwsTeam_' + m_teamName);
+       var results = findnode('.mkwsResults,.mkwsRecords');
        var blanket = findnode('.mkwsBlanket');
        var motd    = findnode('.mkwsMOTD');
 
@@ -950,8 +939,8 @@ function team($, teamName) {
        //      .mkwsPager
        //      .mkwsNavi
        //      .mkwsRecords
-       if ($(".mkwsResults.mkwsTeam_" + m_teamName).length) {
-           $(".mkwsResults.mkwsTeam_" + m_teamName).html('\
+       if (findnode(".mkwsResults").length) {
+           findnode(".mkwsResults").html('\
 <table width="100%" border="0" cellpadding="6" cellspacing="0">\
   <tr>\
     <td class="mkwsTermlistContainer1 mkwsTeam_' + m_teamName + '" width="250" valign="top">\
@@ -1435,6 +1424,22 @@ function team($, teamName) {
        debug("on load ready");
        default_mkws_config();
 
+       if (mkws_config.query_width < 5 || mkws_config.query_width > 150) {
+           debug("Reset query width: " + mkws_config.query_width);
+           mkws_config.query_width = 50;
+       }
+
+       for (var key in mkws_config) {
+           if (mkws_config.hasOwnProperty(key)) {
+               if (key.match(/^language_/)) {
+                   var lang = key.replace(/^language_/, "");
+                   // Copy custom languages into list
+                   mkws.locale_lang[lang] = mkws_config[key];
+                   debug("Added locally configured language '" + lang + "'");
+               }
+           }
+       }
+
        // Backwards compatibility: set new magic class names on any
        // elements that have the old magic IDs.
        var ids = [ "Switch", "Lang", "Search", "Pager", "Navi",