X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=35a00f7b79384710a2e9d8130e85e3cd6caf3be0;hb=d86397504bc971cff017edd9b3bf6dc208d09b65;hp=89cab8d11fb193e11acf533444820dea0000696a;hpb=58377df96357f09ef7af8d52f1558d5c25177d83;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 89cab8d..35a00f7 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,23 @@ 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(). +// function team($, teamName) { var that = {}; var m_teamName = teamName; var m_submitted = false; var m_query; // initially undefined var m_sort; // will be set below + var m_perpage; // will be set below var m_filters = []; var m_totalRec = 0; - var m_perpage = 20; var m_curPage = 1; var m_curDetRecId = ''; var m_curDetRecData = null; @@ -170,33 +170,14 @@ function team($, teamName) { var m_paz; // will be initialised below - // if (console && console.log) // disabled, will fail in IE8 - // console.log("run team(" + (teamName ? teamName : "") + ")"); - - - // Needs to be defined inside team() so it can see m_debug_time - // ### member access won't work: there is only one instance of this function - mkws.debug_function = function (string) { - if (!mkws.debug_level) - return; - - if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */ - return; - } - + 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; - // you need to disable use strict at the top of the file!!! - if (mkws.debug_level >= 3) { - console.log(timestamp + arguments.callee.caller); - } else if (mkws.debug_level >= 2) { - console.log(timestamp + ">>> called from function " + arguments.callee.caller.name + ' <<<'); - } - console.log(m_teamName + ": " + timestamp + string); + mkws.debug(m_teamName + ": " + timestamp + s); } - var debug = mkws.debug_function; // local alias + debug("start running MKWS"); m_sort = mkws_config.sort_default; @@ -408,27 +389,6 @@ function team($, teamName) { //////////////////////////////////////////////////////////////////////////////// - // wait until the DOM is ready - function domReady () - { - $('.mkwsSearchForm.mkwsTeam_' + m_teamName).each(function (i, obj) { - debug("adding search-forms for team '" + m_teamName + "'"); - var node = this; - mkws.handle_node_with_team(node, function(tname) { - debug("adding search-form '" + tname + "' for team '" + m_teamName + "'"); - $(node).submit(onFormSubmitEventHandler); - }); - }); - - var node = $('.mkwsSort.mkwsTeam_' + m_teamName); - if (node.length) - node.change(onSelectDdChange); - node = $('.mkwsPerpage.mkwsTeam_' + m_teamName); - if (node.length) - node.change(onSelectDdChange); - } - - // when search button pressed function onFormSubmitEventHandler() { @@ -452,7 +412,7 @@ function team($, teamName) { m_filters = [] redraw_navi(); - resetPage(); // ### the globals it resents should be indexed by windowid + resetPage(); loadSelect(); triggerSearch(query, sort, targets, windowid); that.switchView('records'); // In case it's configured to start off as hidden @@ -658,9 +618,9 @@ function team($, teamName) { ? firstClkbl + 2*onsides : pages; - var prev = '<< ' + M('Prev') + ' | '; + var prev = '<< ' + M('Prev') + ' | '; if (m_curPage > 1) - prev = '' + prev = '' +'<< ' + M('Prev') + ' | '; var middle = ''; @@ -669,13 +629,13 @@ function team($, teamName) { if(i == m_curPage) numLabel = '' + i + ''; - middle += ' ' + middle += ' ' + numLabel + ' '; } - var next = ' | ' + M('Next') + ' >>'; + var next = ' | ' + M('Next') + ' >>'; if (pages - m_curPage > 0) - next = ' | ' + next = ' | ' + M('Next') + ' >>'; var predots = ''; @@ -693,7 +653,7 @@ function team($, teamName) { } - mkws.showPage = function (pageNum) + that.showPage = function (pageNum) { m_curPage = pageNum; m_paz.showPage(m_curPage - 1); @@ -701,7 +661,7 @@ function team($, teamName) { // simple paging functions - mkws.pagerNext = function () { + that.pagerNext = function () { if (m_totalRec - m_perpage*m_curPage > 0) { m_paz.showNext(); m_curPage++; @@ -709,7 +669,7 @@ function team($, teamName) { } - mkws.pagerPrev = function () { + that.pagerPrev = function () { if (m_paz.showPrev() != false) m_curPage--; } @@ -952,6 +912,7 @@ function team($, teamName) { mkws_html_switch(); + // ### Should not be in the team code, since window size is global if (mkws_config.responsive_design_width) { // Responsive web design - change layout on the fly based on // current screen width. Required for mobile devices. @@ -960,7 +921,21 @@ function team($, teamName) { $(document).ready(function() { mkws.resize_page() }); } - domReady(); + $('.mkwsSearchForm.mkwsTeam_' + m_teamName).each(function (i, obj) { + debug("adding search-forms for team '" + m_teamName + "'"); + var node = this; + mkws.handle_node_with_team(node, function(tname) { + debug("adding search-form '" + tname + "' for team '" + m_teamName + "'"); + $(node).submit(onFormSubmitEventHandler); + }); + }); + + node = $('.mkwsSort.mkwsTeam_' + m_teamName); + if (node.length) + node.change(onSelectDdChange); + node = $('.mkwsPerpage.mkwsTeam_' + m_teamName); + if (node.length) + node.change(onSelectDdChange); // on first page, hide the termlist $(document).ready(function() { $(".mkwsTermlists.mkwsTeam_" + m_teamName).hide(); }); @@ -1039,14 +1014,14 @@ function team($, teamName) { function mkws_html_perpage() { - debug("HTML perpage"); + debug("HTML perpage, m_perpage = " + m_perpage); var perpage_html = '