Add yet another parameter -- maxrecs -- to newSearch() and triggerSearch()
[mkws-moved-to-github.git] / src / mkws-team.js
index 6b2c081..cb6c96e 100644 (file)
@@ -127,6 +127,7 @@ function team($, teamName) {
     function onShow(data, teamName) {
        log("show");
        m_totalRecordCount = data.merged;
+       log("found " + m_totalRecordCount + " records");
        queue("pager").publish(data);
        queue("records").publish(data);
     }
@@ -170,8 +171,7 @@ function team($, teamName) {
     };
 
 
-    that.limitTarget = function(id, name)
-    {
+    that.limitTarget = function(id, name) {
        log("limitTarget(id=" + id + ", name=" + name + ")");
        m_filters.push({ id: id, name: name });
        triggerSearch();
@@ -179,8 +179,7 @@ function team($, teamName) {
     };
 
 
-    that.limitQuery = function(field, value)
-    {
+    that.limitQuery = function(field, value) {
        log("limitQuery(field=" + field + ", value=" + value + ")");
        m_filters.push({ field: field, value: value });
        triggerSearch();
@@ -188,8 +187,7 @@ function team($, teamName) {
     };
 
 
-    that.delimitTarget = function(id)
-    {
+    that.delimitTarget = function(id) {
        log("delimitTarget(id=" + id + ")");
        removeMatchingFilters(function(f) { return f.id });
        triggerSearch();
@@ -197,8 +195,7 @@ function team($, teamName) {
     };
 
 
-    that.delimitQuery = function(field, value)
-    {
+    that.delimitQuery = function(field, value) {
        log("delimitQuery(field=" + field + ", value=" + value + ")");
        removeMatchingFilters(function(f) { return f.field && field == f.field && value == f.value });
        triggerSearch();
@@ -221,8 +218,7 @@ function team($, teamName) {
     }
 
 
-    that.showPage = function(pageNum)
-    {
+    that.showPage = function(pageNum) {
        m_currentPage = pageNum;
        m_paz.showPage(m_currentPage - 1);
     };
@@ -247,16 +243,14 @@ function team($, teamName) {
     };
 
 
-    function resetPage()
-    {
+    function resetPage() {
        m_currentPage = 1;
        m_totalRecordCount = 0;
     }
     that.resetPage = resetPage;
 
 
-    function newSearch(query, sortOrder, targets)
-    {
+    function newSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery) {
        log("newSearch: " + query);
 
        if (m_config.use_service_proxy && !mkws.authenticated) {
@@ -265,20 +259,19 @@ function team($, teamName) {
        }
 
        m_filters = []
-       triggerSearch(query, sortOrder, targets);
+       triggerSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery);
        switchView('records'); // In case it's configured to start off as hidden
        m_submitted = true;
     }
     that.newSearch = newSearch;
 
 
-    function triggerSearch(query, sortOrder, targets)
-    {
+    function triggerSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery) {
        resetPage();
        queue("navi").publish();
 
        var pp2filter = "";
-       var pp2limit = "";
+       var pp2limit = limit || "";
 
        // Continue to use previous query/sort-order unless new ones are specified
        if (query) {
@@ -287,6 +280,9 @@ function team($, teamName) {
        if (sortOrder) {
            m_sortOrder = sortOrder;
        }
+       if (perpage) {
+           m_perpage = perpage;
+       }
        if (targets) {
            m_filters.push({ id: targets, name: targets });
        }
@@ -313,6 +309,14 @@ function team($, teamName) {
        if (pp2limit) {
            params.limit = pp2limit;
        }
+       if (maxrecs) {
+           params.maxrecs = maxrecs;
+       }
+       if (torusquery) {
+           if (!mkws.config.use_service_proxy)
+               alert("can't narrow search by torusquery when Service Proxy is not in use");
+           params.torusquery = torusquery;
+       }
 
        log("triggerSearch(" + m_query + "): filters = " + $.toJSON(m_filters) + ", " +
            "pp2filter = " + pp2filter + ", params = " + $.toJSON(params));
@@ -363,11 +367,7 @@ function team($, teamName) {
        m_currentRecordId = recId;
 
        // remove current detailed view if any
-       // ##### restrict to current team
-       var detRecordDiv = document.getElementById(recordDetailsId(oldRecordId));
-       // lovin DOM!
-       if (detRecordDiv)
-           detRecordDiv.parentNode.removeChild(detRecordDiv);
+       findnode('#' + recordDetailsId(oldRecordId)).remove();
 
        // if the same clicked, just hide
        if (recId == oldRecordId) {
@@ -602,8 +602,7 @@ function team($, teamName) {
     }
 
 
-    function renderDetails(data, marker)
-    {
+    function renderDetails(data, marker) {
        var template = loadTemplate("Record");
        var details = template(data);
        return '<div class="details mkwsTeam_' + m_teamName + '" ' +
@@ -612,8 +611,7 @@ function team($, teamName) {
     that.renderDetails = renderDetails;
 
 
-    function loadTemplate(name)
-    {
+    function loadTemplate(name) {
        var template = m_template[name];
 
        if (template === undefined) {
@@ -638,8 +636,7 @@ function team($, teamName) {
     that.loadTemplate = loadTemplate;
 
 
-    function defaultTemplate(name)
-    {
+    function defaultTemplate(name) {
        if (name === 'Record') {
            return '\
 <table>\