<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">
--- /dev/null
+<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>
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 \
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();
--- /dev/null
+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(''));
+ });
+ });
+});
});
+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;
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