Add special ctaegory "[All]" to dropdown.
[mkws-moved-to-github.git] / src / mkws-widget-categories.js
index 3b21da1..6ce09fe 100644 (file)
@@ -1 +1,35 @@
-var req = new pzHttpRequest(auth.servicePath + "?command=categories");
+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("Select category: ");
+            text.push("<select name='mkwsCategory' " +
+                     "onchange='mkws.limitCategory(\"" + that.team.name() + "\", this.value)'>");
+            text.push("<option value=''>[All]</option>");
+            $(data).find('category').each(function() {
+                var name = $(this).find('categoryName').text();
+                var id = $(this).find('categoryId').text();
+                text.push("<option value='", id, "'>", name, "</option>");
+            });
+            text.push("</select>");
+           $(that.node).html(text.join(''));
+       });
+    });
+});