-mkws.registerWidgetType('Categories', function() {
- var that = this;
+mkws.registerWidgetType('categories', function() {
+ var that = this;
- if (!this.config.use_service_proxy) {
- alert("can't use categories widget without Service Proxy");
- return;
- }
+ if (!mkws.authenticated) {
+ alert("can't use categories widget when not authenticated");
+ return;
+ }
- this.team.queue("authenticated").subscribe(function(authName, realm) {
- $(that.node).append("<p><b>Categories for " + realm + "</b></p>");
- var req = new pzHttpRequest(that.config.pazpar2_url + "?command=categories", function(err) {
- alert("HTTP call for categories failed: " + err)
- });
+ this.team.queue("authenticated").subscribe(function(authName, realm) {
+ var req = new pzHttpRequest(mkws.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);
- req.get(null, function(data) {
- if (!$.isXMLDoc(data)) {
- alert("categories response document is not XML");
- return;
- }
- that.log("got categories: " + data);
- // Parse once we've figured out the format
- });
+ var text = [];
+ text.push("Select category: ");
+ text.push("<select name='mkws-category 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(''));
});
+ });
});