X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=df0010244799781dac530f4852fdd3aba4e62ed6;hb=2b55e6d855f08eca88e5ea5a3a0975e125f21128;hp=6d77237d76c5b2cb89f450ea39b01a3858aa0c8d;hpb=ead5ea846522513434ecf2e95bb2d41c0853321d;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 6d77237..df00102 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -66,18 +66,11 @@ Handlebars.registerHelper('commaList', function(items, options) { -// Some functions are visible to be called from outside code, namely -// generated HTML: that.switchView(), showDetails(), limitTarget(), -// limitQuery(), delimitTarget(), delimitQuery(), pagerPrev(), -// pagerNext(), showPage(). Also mkws.M() is made available for the -// Handlebars helper 'translate' - - -// Set up global mkws object. Contains a hash of team objects, -// indexed by windowid. +// Set up global mkws object. Contains truly global state such as SP +// authentication, and a hash of team objects, indexed by windowid. +// var mkws = { authenticated: false, - debug_function: undefined, // will be set during initialisation debug_level: undefined, // will be initialised from mkws_config paz: undefined, // will be set up during initialisation teams: {}, @@ -149,16 +142,24 @@ if (mkws_config == null || typeof mkws_config != 'object') { } -// wrapper for jQuery lib +// Factory function for team objects. As much as possible, this uses +// only member variables (prefixed "m_") and inner functions with +// private scope. Some functions are visibl as member-functions to be +// called from outside code -- specifically, from generated +// HTML. These functions are that.switchView(), showDetails(), +// limitTarget(), limitQuery(), delimitTarget(), delimitQuery(), +// pagerPrev(), pagerNext(), showPage(). Also mkws.M() is made +// available for the Handlebars helper 'translate' +// function team($, teamName) { var that = {}; var m_teamName = teamName; var m_submitted = false; var m_query; // initially undefined - var m_sort = 'relevance'; + var m_sort; // will be set below + var m_perpage; // will be set below var m_filters = []; var m_totalRec = 0; - var m_recPerPage = 20; var m_curPage = 1; var m_curDetRecId = ''; var m_curDetRecData = null; @@ -184,19 +185,23 @@ function team($, teamName) { return; } - var now = $.now(); - var timestamp = ((now - m_debug_time.start)/1000).toFixed(3) + " (+" + ((now - m_debug_time.last)/1000).toFixed(3) + ") " - m_debug_time.last = now; - // you need to disable use strict at the top of the file!!! if (mkws.debug_level >= 3) { - console.log(timestamp + arguments.callee.caller); + console.log(arguments.callee.caller); } else if (mkws.debug_level >= 2) { - console.log(timestamp + ">>> called from function " + arguments.callee.caller.name + ' <<<'); + console.log(">>> called from function " + arguments.callee.caller.name + ' <<<'); } - console.log(m_teamName + ": " + timestamp + string); + console.log(string); } - var debug = mkws.debug_function; // local alias + + var debug = function (s) { + var now = $.now(); + var timestamp = ((now - m_debug_time.start)/1000).toFixed(3) + " (+" + ((now - m_debug_time.last)/1000).toFixed(3) + ") " + m_debug_time.last = now; + + mkws.debug_function(m_teamName + ": " + timestamp + s); + } + debug("start running MKWS"); m_sort = mkws_config.sort_default; @@ -242,7 +247,7 @@ function team($, teamName) { "onrecord": my_onrecord }); if (!isNaN(parseInt(mkws_config.perpage_default))) { - m_recPerPage = parseInt(mkws_config.perpage_default); + m_perpage = parseInt(mkws_config.perpage_default); } @@ -260,9 +265,9 @@ function team($, teamName) { debug("show"); m_totalRec = data.merged; - var pager = document.getElementById("mkwsPager"); - if (pager) { - drawPager(pager, data); + var pager = $(".mkwsPager.mkwsTeam_" + m_teamName); + if (pager.length) { + pager.html(drawPager(data)) } // navi @@ -420,12 +425,12 @@ function team($, teamName) { }); }); - if (document.mkwsSelect) { - if (document.mkwsSelect.mkwsSort) - document.mkwsSelect.mkwsSort.onchange = onSelectDdChange; - if (document.mkwsSelect.mkwsPerpage) - document.mkwsSelect.mkwsPerpage.onchange = onSelectDdChange; - } + var node = $('.mkwsSort.mkwsTeam_' + m_teamName); + if (node.length) + node.change(onSelectDdChange); + node = $('.mkwsPerpage.mkwsTeam_' + m_teamName); + if (node.length) + node.change(onSelectDdChange); } @@ -452,8 +457,8 @@ function team($, teamName) { m_filters = [] redraw_navi(); - resetPage(); // ### the globals it resents should be indexed by windowid - loadSelect(); // ### should use windowid + resetPage(); + loadSelect(); triggerSearch(query, sort, targets, windowid); that.switchView('records'); // In case it's configured to start off as hidden m_submitted = true; @@ -465,7 +470,7 @@ function team($, teamName) { if (!m_submitted) return false; resetPage(); loadSelect(); - m_paz.show(0, m_recPerPage, m_sort); + m_paz.show(0, m_perpage, m_sort); return false; } @@ -521,17 +526,21 @@ function team($, teamName) { } debug("triggerSearch(" + m_query + "): filters = " + $.toJSON(m_filters) + ", pp2filter = " + pp2filter + ", params = " + $.toJSON(params)); - m_paz.search(m_query, m_recPerPage, m_sort, pp2filter, undefined, params); + m_paz.search(m_query, m_perpage, m_sort, pp2filter, undefined, params); } function loadSelect () { - if (document.mkwsSelect) { - if (document.mkwsSelect.mkwsSort) - m_sort = document.mkwsSelect.mkwsSort.value; - if (document.mkwsSelect.mkwsPerpage) - m_recPerPage = document.mkwsSelect.mkwsPerpage.value; + var node = $('.mkwsSort.mkwsTeam_' + m_teamName); + if (node.length && node.val() != m_sort) { + debug("changing m_sort from " + m_sort + " to " + node.val()); + m_sort = node.val(); + } + node = $('.mkwsPerpage.mkwsTeam_' + m_teamName); + if (node.length && node.val() != m_perpage) { + debug("changing m_perpage from " + m_perpage + " to " + node.val()); + m_perpage = node.val(); } } @@ -635,16 +644,16 @@ function team($, teamName) { } - function drawPager (pagerDiv, data) + function drawPager (data) { - pagerDiv.innerHTML ='