Merge branch 'master' of ssh://git.indexdata.com:222/home/git/private/mkws
authorWolfram Schneider <wosch@indexdata.dk>
Fri, 18 Apr 2014 17:57:47 +0000 (17:57 +0000)
committerWolfram Schneider <wosch@indexdata.dk>
Fri, 18 Apr 2014 17:57:47 +0000 (17:57 +0000)
examples/htdocs/mike.html
examples/htdocs/stateful.html [new file with mode: 0644]
src/Makefile
src/mkws-core.js
src/mkws-widget-categories.js [new file with mode: 0644]
src/mkws-widgets.js
tools/apache2/mkws-ne

index 5959f7a..e3a1266 100644 (file)
@@ -36,6 +36,8 @@
     <div class="mkwsLang"></div>
     <div class="mkwsAuthname"></div>
     <div class="mkwsSearch"></div>
+    <br/>
+    <div class="mkwsCategories"></div>
     <table width="100%" border="0" cellpadding="6" cellspacing="0">
       <tr>
        <td class="mkwsTermlistContainer1" width="250" valign="top">
diff --git a/examples/htdocs/stateful.html b/examples/htdocs/stateful.html
new file mode 100644 (file)
index 0000000..875c056
--- /dev/null
@@ -0,0 +1,20 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>MKWS demo client</title>
+    <link rel="stylesheet" type="text/css" href="//mkws.indexdata.com/mkws.css" />
+    <script type="text/javascript" src="//mkws.indexdata.com/mkws-complete.js"></script>
+    <style>.searchbox { float: right; }</style>
+  </head>
+  <body>
+    <div class="mkwsSwitch"></div>
+    <div class="mkwsLang"></div>
+    <form>
+      <input type="text" name="q" class="searchbox"/>
+    </form>
+    <div class="mkwsResults" autosearch="!param!q"></div>
+    <div class="mkwsTargets"></div>
+    <div class="mkwsStat"></div>
+    <div class="mkwsBuilder"></div>
+  </body>
+</html>
index 43eeadb..749d205 100644 (file)
@@ -13,8 +13,8 @@ VERSION = $(shell tr -d '\012' < VERSION)
 
 COMPONENTS = mkws-handlebars.js \
        mkws-core.js mkws-team.js mkws-widgets.js mkws-widget-termlists.js \
-       mkws-widget-authname.js mkws-widget-log.js mkws-widget-record.js \
-       mkws-widget-builder.js
+       mkws-widget-authname.js mkws-widget-categories.js mkws-widget-log.js \
+       mkws-widget-record.js mkws-widget-builder.js
 
 INSTALLABLE = ${HANDLEBARS_FILE} ${JQUERY_FILE} ${JQUERY_JSON_FILE} ${PP2_FILE} \
        mkws.js mkws-jquery.js mkws-complete.js \
index 07a4b2d..d6433f4 100644 (file)
@@ -299,8 +299,10 @@ mkws.pagerNext = function(tname) {
            log("Service proxy auth successfully done");
            mkws.authenticated = true;
            var authName = $(data).find("displayName").text();
+           // You'd think there would be a better way to do this:
+           var realm = $(data).find("realm:not(realmAttributes realm)").text();
            for (var teamName in mkws.teams) {
-               mkws.teams[teamName].queue("authenticated").publish(authName);
+               mkws.teams[teamName].queue("authenticated").publish(authName, realm);
            }
 
            runAutoSearches();
diff --git a/src/mkws-widget-categories.js b/src/mkws-widget-categories.js
new file mode 100644 (file)
index 0000000..afb3875
--- /dev/null
@@ -0,0 +1,35 @@
+mkws.registerWidgetType('Categories', function() {
+    var that = this;
+
+    if (!this.config.use_service_proxy) {
+       alert("can't use categories widget without Service Proxy");
+       return;
+    }
+
+    this.team.queue("authenticated").subscribe(function(authName, realm) {
+       var req = new pzHttpRequest(that.config.pazpar2_url + "?command=categories", function(err) {
+           alert("HTTP call for categories failed: " + err)
+       });
+
+       req.get(null, function(data) {
+           if (!$.isXMLDoc(data)) {
+               alert("categories response document is not XML");
+               return;
+           }
+           that.log("got categories: " + data);
+
+            var text = [];
+            text.push("<p><b>Categories for " + realm + "</b></p>");
+            text.push("<ul>");
+            $(data).find('category').each(function() {
+                var name = $(this).find('categoryName').text();
+                var id = $(this).find('categoryId').text();
+                text.push("<li>");
+                text.push('<a href="#" onclick="mkws.setCategory(' + "'" + id + "'" + ')">' + name + '</a>');
+                text.push("</li>");
+            });
+            text.push("</ul>");
+           $(that.node).html(text.join(''));
+       });
+    });
+});
index 9f6c418..19f1066 100644 (file)
@@ -222,6 +222,13 @@ mkws.registerWidgetType('Pager', function() {
 });
 
 
+mkws.registerWidgetType('Results', function() {
+    // Nothing to do apart from act as an autosearch trigger
+    // Contained elements do all the real work
+    widget.autosearch(this);
+});
+
+
 mkws.registerWidgetType('Records', function() {
     var that = this;
     var team = this.team;
index c0ade2a..6677340 100644 (file)
@@ -14,8 +14,8 @@
     RewriteLog /var/log/apache2/mkws-dev-rewrite.log
 
     DocumentRoot /indexdata/gitprojects/mkws/examples/htdocs
-    #Alias /tools/htdocs /home/indexdata/mkws-dev/tools/htdocs
-    #Alias /src /home/indexdata/mkws-dev/src
+    Alias /tools/htdocs /indexdata/gitprojects/mkws/tools/htdocs
+    Alias /src /indexdata/gitprojects/mkws/src
     #Alias /test /home/indexdata/mkws-dev/test
     #Alias /jasmine /home/indexdata/mkws-dev/examples/jasmine