Automatic termlist widgets now work:
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index 78f1e46..e047215 100644 (file)
@@ -847,7 +847,7 @@ function team($, teamName) {
 
 
     function mkwsSetLang()  {
-       var lang = parseQuerystring().lang || mkws_config.lang;
+       var lang = mkws.getParameterByName("lang") || mkws_config.lang;
        if (!lang || !mkws.locale_lang[lang]) {
            mkws_config.lang = ""
        } else {
@@ -961,15 +961,14 @@ function team($, teamName) {
 
 
     that.runAutoSearch = function() {
-       // ### should check mkwsTermlist as well, for facet-only teams
-       var node = findnode('.mkwsRecords');
+       var node = findnode('.mkwsRecords,.mkwsTermlists');
        var query = node.attr('autosearch');
        if (!query)
            return;
 
        if (query.match(/^!param!/)) {
            var param = query.replace(/^!param!/, '');
-           query = getParameterByName(param);
+           query = mkws.getParameterByName(param);
            debug("obtained query '" + query + "' from param '" + param + "'");
            if (!query) {
                alert("This page has a MasterKey widget that needs a query specified by the '" + param + "' parameter");
@@ -997,31 +996,11 @@ function team($, teamName) {
     }
 
 
-    // implement $.parseQuerystring() for parsing URL parameters
-    function parseQuerystring() {
-       var nvpair = {};
-       var qs = window.location.search.replace('?', '');
-       var pairs = qs.split('&');
-       $.each(pairs, function(i, v){
-           var pair = v.split('=');
-           nvpair[pair[0]] = pair[1];
-       });
-       return nvpair;
-    }
-
-
-    // This function is taken from a StackOverflow answer
-    // http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript/901144#901144
-    // ### should we unify this and parseQuerystring()?
-    function getParameterByName(name) {
-       name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
-       var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
-           results = regex.exec(location.search);
-       return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
-    }
-
-
-    /* locale */
+    // Translation function. At present, this is properly a
+    // global-level function (hence the assignment to mkws.M) but we
+    // want to make it per-team so different teams can operate in
+    // different languages.
+    //
     function M(word) {
        var lang = mkws_config.lang;
 
@@ -1247,6 +1226,16 @@ function team($, teamName) {
     }
 
 
+    // This function is taken from a StackOverflow answer
+    // http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript/901144#901144
+    mkws.getParameterByName = function(name) {
+       name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
+       var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
+           results = regex.exec(location.search);
+       return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
+    }
+
+
     mkws.defaultTemplate = function(name)
     {
        if (name === 'Record') {