X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=194a59503ae04cf8e9f63a8ee30cefd037bb600a;hb=3c7d95c98c35d5767daaa19c750506fd3644c112;hp=c9c0419b23db61f31cd7b4e718abe7769eaf6e41;hpb=891162c526852295263ace8b5f9c0e70314c0d39;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index c9c0419..194a595 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -66,15 +66,9 @@ 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 @@ -149,16 +143,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; @@ -242,7 +244,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); } @@ -259,10 +261,10 @@ function team($, teamName) { function my_onshow(data, teamName) { debug("show"); m_totalRec = data.merged; - // move it out - 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 +422,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 +454,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 +467,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 +523,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 +641,16 @@ function team($, teamName) { } - function drawPager (pagerDiv, data) + function drawPager (data) { - pagerDiv.innerHTML ='