fix broken debug() function for IE (again!!)
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index bfda71a..1f114f8 100644 (file)
@@ -231,7 +231,7 @@ function _make_mkws_team($, teamName) {
        for (var k in config_default) {
            if (typeof mkws_config[k] === 'undefined')
                mkws_config[k] = config_default[k];
-           debug("Set config: " + k + ' => ' + mkws_config[k]);
+           //debug("Set config: " + k + ' => ' + mkws_config[k]);
        }
     }
 
@@ -255,27 +255,30 @@ function _make_mkws_team($, teamName) {
        }
     }
 
-    // protocol independend link for pazpar2: "//mkws/sp" -> "https://mkws/sp"
+    // 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;
-       debug("adjust protocol independend links: " + mkws_config.pazpar2_url);
+       debug("adjust protocol independent links: " + mkws_config.pazpar2_url);
     }
 
     debug("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
-    mkws.paz = new pz2({ "onshow": my_onshow,
-                        "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
-                        "pazpar2path": mkws_config.pazpar2_url,
-                        "oninit": my_oninit,
-                        "onstat": my_onstat,
-                        "onterm": my_onterm,
-                        "termlist": "xtargets,subject,author",
-                        "onbytarget": my_onbytarget,
-                        "usesessions" : mkws_config.use_service_proxy ? false : true,
-                        "showResponseType": '', // or "json" (for debugging?)
-                        "onrecord": my_onrecord } );
+    if (!mkws.paz) {
+       mkws.paz = new pz2({ "onshow": my_onshow,
+                            "windowid": teamName,
+                            "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
+                            "pazpar2path": mkws_config.pazpar2_url,
+                            "oninit": my_oninit,
+                            "onstat": my_onstat,
+                            "onterm": my_onterm,
+                            "termlist": "xtargets,subject,author",
+                            "onbytarget": my_onbytarget,
+                            "usesessions" : mkws_config.use_service_proxy ? false : true,
+                            "showResponseType": '', // or "json" (for debugging?)
+                            "onrecord": my_onrecord });
+    }
 
     if (!isNaN(parseInt(mkws_config.perpage_default))) {
        m_recPerPage = parseInt(mkws_config.perpage_default);
@@ -285,13 +288,15 @@ function _make_mkws_team($, teamName) {
     //
     // pz2.js event handlers:
     //
-    function my_oninit() {
+    function my_oninit(teamName) {
+       debug("init for " + teamName);
        mkws.paz.stat();
        mkws.paz.bytarget();
     }
 
 
-    function my_onshow(data) {
+    function my_onshow(data, teamName) {
+       debug("show for " + teamName);
        m_totalRec = data.merged;
        // move it out
        var pager = document.getElementById("mkwsPager");
@@ -330,7 +335,8 @@ function _make_mkws_team($, teamName) {
     }
 
 
-    function my_onstat(data) {
+    function my_onstat(data, teamName) {
+       debug("stat for " + teamName);
        var stat = document.getElementById("mkwsStat");
        if (stat == null)
            return;
@@ -343,7 +349,8 @@ function _make_mkws_team($, teamName) {
     }
 
 
-    function my_onterm(data) {
+    function my_onterm(data, teamName) {
+       debug("term for " + teamName);
        // no facets
        if (!mkws_config.facets || mkws_config.facets.length == 0) {
            $("#mkwsTermlists").hide();
@@ -378,7 +385,7 @@ function _make_mkws_team($, teamName) {
     function add_single_facet(acc, caption, data, max, pzIndex) {
        acc.push('<div class="facet" id="mkwsFacet' + caption + '">');
        acc.push('<div class="termtitle">' + M(caption) + '</div>');
-       for (var i = 0; i < data.length && i < max; i++ ) {
+       for (var i = 0; i < data.length && i < max; i++) {
            acc.push('<div class="term">');
             acc.push('<a href="#" ');
            var action;
@@ -397,7 +404,8 @@ function _make_mkws_team($, teamName) {
     }
 
 
-    function my_onrecord(data) {
+    function my_onrecord(data, teamName) {
+       debug("record for " + teamName);
        // FIXME: record is async!!
        clearTimeout(mkws.paz.recordTimer);
        // in case on_show was faster to redraw element
@@ -410,7 +418,8 @@ function _make_mkws_team($, teamName) {
     }
 
 
-    function my_onbytarget(data) {
+    function my_onbytarget(data, teamName) {
+       debug("target for " + teamName);
        var targetDiv = document.getElementById("mkwsBytarget");
        if (!targetDiv) {
            // No mkwsTargets div.
@@ -425,7 +434,7 @@ function _make_mkws_team($, teamName) {
            '<td>' + M('State') + '</td>' +
            '</tr></thead><tbody>';
 
-       for (var i = 0; i < data.length; i++ ) {
+       for (var i = 0; i < data.length; i++) {
             table += "<tr><td>" + data[i].id +
                "</td><td>" + data[i].hits +
                "</td><td>" + data[i].diagnostic +
@@ -663,7 +672,7 @@ function _make_mkws_team($, teamName) {
        var onsides = 6;
        var pages = Math.ceil(m_totalRec / m_recPerPage);
 
-       var firstClkbl = ( m_curPage - onsides > 0 )
+       var firstClkbl = (m_curPage - onsides > 0)
             ? m_curPage - onsides
             : 1;
 
@@ -707,13 +716,13 @@ function _make_mkws_team($, teamName) {
     mkws.showPage = function (pageNum)
     {
        m_curPage = pageNum;
-       mkws.paz.showPage( m_curPage - 1 );
+       mkws.paz.showPage(m_curPage - 1);
     }
 
 
     // simple paging functions
     mkws.pagerNext = function () {
-       if ( m_totalRec - m_recPerPage*m_curPage > 0) {
+       if (m_totalRec - m_recPerPage*m_curPage > 0) {
             mkws.paz.showNext();
             m_curPage++;
        }
@@ -721,7 +730,7 @@ function _make_mkws_team($, teamName) {
 
 
     mkws.pagerPrev = function () {
-       if ( mkws.paz.showPrev() != false )
+       if (mkws.paz.showPrev() != false)
             m_curPage--;
     }
 
@@ -971,19 +980,10 @@ function _make_mkws_team($, teamName) {
 
        mkws_html_switch();
 
-       if (mkws_config.use_service_proxy) {
-           mkws_service_proxy_auth(mkws_config.service_proxy_auth,
-                                   mkws_config.service_proxy_auth_domain,
-                                   mkws_config.pazpar2_url);
-       } else {
-           // raw pp2
-           run_auto_searches();
-       }
-
        if (mkws_config.responsive_design_width) {
            // Responsive web design - change layout on the fly based on
            // current screen width. Required for mobile devices.
-           $(window).resize( function(e) { mkws_resize_page() });
+           $(window).resize(function(e) { mkws_resize_page() });
            // initial check after page load
            $(document).ready(function() { mkws_resize_page() });
        }
@@ -991,7 +991,7 @@ function _make_mkws_team($, teamName) {
        domReady();
 
        // on first page, hide the termlist
-       $(document).ready(function() { $("#mkwsTermlists").hide(); } );
+       $(document).ready(function() { $("#mkwsTermlists").hide(); });
        var motd = document.getElementById("mkwsMOTD");
        var container = document.getElementById("mkwsMOTDContainer");
        if (motd && container) {
@@ -1116,7 +1116,7 @@ function _make_mkws_team($, teamName) {
      * The username/password is configured in the apache config file
      * for the site.
      */
-    function mkws_service_proxy_auth(auth_url, auth_domain, pp2_url) {
+    mkws.service_proxy_auth = function(auth_url, auth_domain, pp2_url) {
        debug("Run service proxy auth URL: " + auth_url);
 
        if (!auth_domain) {
@@ -1381,7 +1381,7 @@ function _mkws_jquery_plugin ($) {
            } else if (config && config.layout == 'popup') {
                debug("jquery plugin layout: popup with id: " + id_popup);
                document.write(popup);
-               $(document).ready( function() { init_popup(config); } );
+               $(document).ready(function() { init_popup(config); });
            } else {
                debug("jquery plugin layout: table");
                document.write(table);
@@ -1394,8 +1394,12 @@ function _mkws_jquery_plugin ($) {
 // wrapper to call _make_mkws_team() after page load
 (function (j) {
     function log(s) {
-       if (console && console.log) console.log(s);
+        if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */
+            return;
+        }
+       console.log(s);
     }
+
     // enable before page load, so we could call it before mkws() runs
     _mkws_jquery_plugin(j);
 
@@ -1417,6 +1421,7 @@ function _mkws_jquery_plugin ($) {
        }
 
        // Backwards compatibility: the special-case undefined team
+       // ### Will not be necessary when non-default teams are working
        mkws.teams[''] = _make_mkws_team(j, undefined);
        log("Made the unnamed MKWS team");
 
@@ -1438,10 +1443,22 @@ function _mkws_jquery_plugin ($) {
                alert("No MKWS team specified for mkwsRecords element with classes '" + classes + "'");
            } else if (mkws.teams[tname]) {
                log("MKWS team '" + tname + "' already exists, skipping");
+           } else if (tname === "AUTO") {
+               // ### For now: later, this will be how the backwards-compatibility is done
+               log("Skipping MKWS team '" + tname + "'");
            } else {
                mkws.teams[tname] = _make_mkws_team(j, tname);
                log("Made MKWS team '" + tname + "'");
            }
        });
+
+       if (mkws_config.use_service_proxy) {
+           mkws.service_proxy_auth(mkws_config.service_proxy_auth,
+                                   mkws_config.service_proxy_auth_domain,
+                                   mkws_config.pazpar2_url);
+       } else {
+           // raw pp2
+           run_auto_searches();
+       }
     });
 })(jQuery);