Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkws
authorMike Taylor <mike@indexdata.com>
Wed, 2 Apr 2014 13:10:50 +0000 (14:10 +0100)
committerMike Taylor <mike@indexdata.com>
Wed, 2 Apr 2014 13:10:50 +0000 (14:10 +0100)
examples/htdocs/mike.html
src/mkws-team.js
src/mkws-widgets.js

index 0179279..7e0488a 100644 (file)
@@ -25,8 +25,8 @@
     <script type="text/javascript" src="http://x.mkws.indexdata.com/mkws.js"></script>
   </head>
   <body>
-    <div id='mkwsRecords' autosearch='mike' sort='relevance' perpage='5'
-       targets='pz:id~josiah.brown.edu:210/innopac|connect.indexdata.com:9000/mit_opencourseware'
+    <div id='mkwsRecords' autosearch='dinosaur' sort='relevance' perpage='5'
+       torusquery='udb=(brown or mit_opencourseware)'
         >results will appear here</div>
   </body>
 <!--
index 2ae79bd..4e48f1e 100644 (file)
@@ -170,8 +170,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 +178,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 +186,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 +194,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 +217,7 @@ function team($, teamName) {
     }
 
 
-    that.showPage = function(pageNum)
-    {
+    that.showPage = function(pageNum) {
        m_currentPage = pageNum;
        m_paz.showPage(m_currentPage - 1);
     };
@@ -247,16 +242,14 @@ function team($, teamName) {
     };
 
 
-    function resetPage()
-    {
+    function resetPage() {
        m_currentPage = 1;
        m_totalRecordCount = 0;
     }
     that.resetPage = resetPage;
 
 
-    function newSearch(query, sortOrder, perpage, targets)
-    {
+    function newSearch(query, sortOrder, perpage, targets, torusquery) {
        log("newSearch: " + query);
 
        if (m_config.use_service_proxy && !mkws.authenticated) {
@@ -265,15 +258,14 @@ function team($, teamName) {
        }
 
        m_filters = []
-       triggerSearch(query, sortOrder, perpage, targets);
+       triggerSearch(query, sortOrder, perpage, targets, torusquery);
        switchView('records'); // In case it's configured to start off as hidden
        m_submitted = true;
     }
     that.newSearch = newSearch;
 
 
-    function triggerSearch(query, sortOrder, perpage, targets)
-    {
+    function triggerSearch(query, sortOrder, perpage, targets, torusquery) {
        resetPage();
        queue("navi").publish();
 
@@ -316,6 +308,11 @@ function team($, teamName) {
        if (pp2limit) {
            params.limit = pp2limit;
        }
+       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));
@@ -366,11 +363,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) {
@@ -605,8 +598,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 + '" ' +
@@ -615,8 +607,7 @@ function team($, teamName) {
     that.renderDetails = renderDetails;
 
 
-    function loadTemplate(name)
-    {
+    function loadTemplate(name) {
        var template = m_template[name];
 
        if (template === undefined) {
@@ -641,8 +632,7 @@ function team($, teamName) {
     that.loadTemplate = loadTemplate;
 
 
-    function defaultTemplate(name)
-    {
+    function defaultTemplate(name) {
        if (name === 'Record') {
            return '\
 <table>\
index da20ce5..17ecdab 100644 (file)
@@ -257,8 +257,7 @@ mkws.registerWidgetType('Records', function() {
        }
        $(that.node).html(html.join(''));
 
-       function renderSummary(hit)
-       {
+       function renderSummary(hit) {
            var template = team.loadTemplate("Summary");
            hit._id = team.recordElementId(hit.recid[0]);
            hit._onclick = "mkws.showDetails('" + team.name() + "', '" + hit.recid[0] + "');return false;"
@@ -289,13 +288,16 @@ mkws.registerWidgetType('Records', function() {
            var sortOrder = that.config.sort;
            var perpage = that.config.perpage;
            var targets = that.config.targets;
+           var torusquery = that.config.torusquery;
+           that.log("torusquery='" + torusquery + "'");
            var s = "running auto search: '" + query + "'";
            if (sortOrder) s += " sorted by '" + sortOrder + "'";
            if (perpage) s += " with " + perpage + " per page";
            if (targets) s += " in targets '" + targets + "'";
+           if (torusquery) s += " limited by torusquery '" + torusquery + "'";
            that.log(s);
 
-           that.team.newSearch(query, sortOrder, perpage, targets);
+           that.team.newSearch(query, sortOrder, perpage, targets, torusquery);
        });
     }
 });