Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/mkws
authorWolfram Schneider <wosch@indexdata.dk>
Tue, 28 Oct 2014 15:59:32 +0000 (15:59 +0000)
committerWolfram Schneider <wosch@indexdata.dk>
Tue, 28 Oct 2014 15:59:32 +0000 (15:59 +0000)
doc/mkws-manual.markdown
examples/htdocs/custom.css [new file with mode: 0644]
examples/htdocs/favicon.ico
examples/htdocs/mike.html
examples/htdocs/simple.html
examples/htdocs/wolfram.html
examples/htdocs/wolfram2.html
tools/htdocs/favicon.ico
tools/service-proxy/README [new file with mode: 0644]
tools/service-proxy/service-proxy.properties

index 00b43f7..bfc856f 100644 (file)
@@ -326,14 +326,17 @@ pager template you would include this in your document:
       ...new Pager template
     </script>
 
-The Facet template has a special feature where you can override it on a
-per-facet basis by adding a dash and the facet name as a suffix eg.
-`facet-subjects` rather than `facet`. (So `class="mkws-template-facet-subjects"`)
-
-You can also explicitly specify a different template for a particular instance
-of a widget by providing the name of your alternative (eg. SpecialPager) as the
-value of the `template` key in the MKWS config object for that widget:
-for example, `<div class="mkws-pager" template="special-pager"/>`.
+The Facet template has a special feature where you can override it on
+a per-facet basis by adding a dash and the facet name as a suffix eg.
+`facet-subjects`. (So `class="mkws-template-facet-subjects"`.) When
+rendering a facet for which no specific template is defined, the code
+falls back to using the generic facet template, just called `facet`.
+
+You can also explicitly specify a different template for a particular
+instance of a widget by providing the name of your alternative
+(eg. `special-pager`) as the value of the `template` key in the MKWS
+config object for that widget: for example, `<div class="mkws-pager"
+template="special-pager"/>`.
 
 Templates for MKWS can also be
 [precompiled](http://handlebarsjs.com/precompilation.html). If a precompiled
@@ -343,10 +346,10 @@ will be used instead of the default.
 Inspecting metadata for templating
 ----------------------------------
 
-MKWS makes requests to Service Proxy or Pazpar2 that perform the actual
-searching. Depending on how these are configured and what is available from the
-targets you are searching there may be more data available than what is
-presented by the default templates.
+MKWS makes requests to the Service Proxy or Pazpar2 that perform the
+actual searching. Depending on how these are configured and what is
+available from the targets you are searching there may be more data
+available than what is presented by the default templates.
 
 Handlebars offers a convenient log helper that will output the contents of a
 variable for you to inspect. This lets you look at exactly what is being
@@ -368,24 +371,21 @@ output locale specific text via the mkws-translate helper like so:
 Example
 -------
 
-Rather than use the included AJAX helpers to render record details inline,
-here's a Records template that will link directly to the source via the address
-provided in the metadata as the first element of `md-electronic-url`:
-
-    <script class="mkws-template-records" type="text/x-handlebars-template">
-      {{#each hits}}
-        <div class="{{containerClass}}">
-          <a href="{{md-electronic-url.[0]}}">
-            <b>{{md-title}}</b>
-          </a>
-          {{#if md-title-remainder}}
-            <span>{{md-title-remainder}}</span>
-          {{/if}}
-          {{#if md-title-responsibility}}
-            <span><i>{{md-title-responsibility}}</i></span>
-          {{/if}}
-        </div>
-      {{/each}}
+Rather than use the toolkit's included AJAX helpers to render record
+details inline, here's a summary template that will link directly to
+the source via the address provided in the metadata as the first
+element of `md-electronic-url`:
+
+    <script class="mkws-template-summary" type="text/x-handlebars-template">
+      <a href="{{md-electronic-url.[0]}}">
+        <b>{{md-title}}</b>
+      </a>
+      {{#if md-title-remainder}}
+        <span>{{md-title-remainder}}</span>
+      {{/if}}
+      {{#if md-title-responsibility}}
+        <span><i>{{md-title-responsibility}}</i></span>
+      {{/if}}
     </script>
 
 For a more involved example where markup for multiple widgets is decorated with
@@ -394,8 +394,8 @@ employed, take a look at the source of
 [topic.html](http://example.indexdata.com/topic.html?q=water).
 
 
-Refinements
-===========
+Some Refinements
+================
 
 
 Message of the day
@@ -404,9 +404,9 @@ Message of the day
 Some applications might like to open with content in the area that
 will subsequently be filled with result-records -- a message of the
 day, a welcome message or a help page. This can be done by placing an
-`mkws-motd` division anywhere on the page. It will be moved into the
-`mkws-results` area and initially displayed, but will be hidden when a
-search is made.
+`mkws-motd` division anywhere on the page. It will initially be moved
+into the `mkws-results` area and displayed, but will be hidden as soon
+as the first search is made.
 
 
 Popup results with jQuery UI
@@ -419,30 +419,35 @@ in a popup. The key part of such an application is this invocation of
 the MKWS jQuery plugin:
 
         <div class="mkws-search"></div>
-        <div class="mkws-popup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
-          <div class="mkws-switch"></div>
-          <div class="mkws-lang"></div>
+        <div class="mkws-popup" popup_width="1024" popup_height="650">
           <div class="mkws-results"></div>
-          <div class="mkws-targets"></div>
-          <div class="mkws-stat"></div>
         </div>
 
 The necessary scaffolding can be seen in an example application,
-http://example.indexdata.com/index-popup.html
+[popup.html](http://example.indexdata.com/popup.html).
+
+The relevant properties (`popup_width`, etc.) are documented
+[below](#jquery-ui-popup-invocation)
+in the reference section.
 
 
 Authentication and target configuration
 ---------------------------------------
 
-By default, MKWS configures itself to use a demonstration account on a
-service hosted by mkws.indexdata.com. This account (username `demo`,
-password `demo`) provides access to about a dozen free data
-sources. Authentication onto this service is via an authentication URL
-on the same MKWS server, so no explicit configuration is needed.
+MKWS configures itself to use an account on a service hosted by
+`sp-mkws.indexdata.com`. By default, it sends no authentication
+credentials, allowing the appropriate account to be selected on the
+basis of referring URL or IP address.
+
+If no account has been set up to recognise the referring URL of the
+application or the IP address of the client, then a default "MKWS
+Demo" account is used. This account (which can also be explicitly
+chosen by using the username `mkws`, password `mkws`) provides access
+to about a dozen free data sources.
 
 In order to search in a customised set of targets, including
 subscription resources, it's necessary to create an account with
-Index Data's hosted service proxy, and protect that account with
+Index Data's hosted Service Proxy, and protect that account with
 authentication tokens (to prevent unauthorised use of subscription
 resources). For information on how to do this, see the next section.
 
@@ -465,7 +470,7 @@ available targets to use.
 Maintaining the library
 -----------------------
 
-The service proxy accesses sets of targets that are known as
+The Service Proxy accesses sets of targets that are known as
 "libraries". In general, each customer will have their own library,
 though some standard libraries may be shared between many customers --
 for example, a library containing all open-access academic journals.
diff --git a/examples/htdocs/custom.css b/examples/htdocs/custom.css
new file mode 100644 (file)
index 0000000..0a99dec
--- /dev/null
@@ -0,0 +1,6 @@
+.mkws-termlists {
+    background: white;
+}
+.mkws-facet {
+    background: white;
+}
index 35c4899..7a42ce2 100644 (file)
Binary files a/examples/htdocs/favicon.ico and b/examples/htdocs/favicon.ico differ
index 724e2b2..ee5e03d 100644 (file)
@@ -28,7 +28,7 @@
     <script type="text/javascript" src="src/mkws-templates.js"></script>
   </head>
   <body>
-    <div class="mkws-authname"></div>
+    <div class="mkws-auth-name"></div>
     <div class="mkws-switch"></div>
     <div class="mkws-lang" data-mkws-config='{ "lang_options": [ "en", "da" ] }'></div>
     <div class="mkws-progress"></div>
index c4c32d1..99d8e3a 100644 (file)
@@ -4,6 +4,7 @@
     <title>MKWS demo client</title>
     <script type="text/javascript" src="//mkws.indexdata.com/mkws-complete.js"></script>
     <link rel="stylesheet" href="//mkws.indexdata.com/mkws.css" />
+    <link rel="stylesheet" href="custom.css" />
   </head>
   <body>
     <div class="mkws-switch"></div>
@@ -13,6 +14,5 @@
     <div class="mkws-results"></div>
     <div class="mkws-targets"></div>
     <div class="mkws-stat"></div>
-    <div class="mkws-builder"></div>
   </body>
 </html>
index 25d2513..268c414 100644 (file)
@@ -44,7 +44,7 @@
   <!-- Test case: using single JS files in the right order, MKWS config in HEAD
        before JS files loaded, and a broken jQuery object in BODY section -->
   <body>
-    <div class="mkws-authname mkws-authname"></div>
+    <div class="mkws-auth-name mkws-auth-name"></div>
     <div class="mkws-switch mkws-switch"></div>
     <div class="mkws-lang mkws-lang"></div>
     <div class="mkws-progress mkws-progress"></div>
index 73c191e..ce86af3 100644 (file)
@@ -9,7 +9,7 @@
 
   <!-- Test case: using mkws-complete.js and MKWS config in the body section -->
   <body>
-    <!-- <div class="mkws-authname"></div> -->
+    <!-- <div class="mkws-auth-name"></div> -->
     <div class="mkws-switch"></div>
     <div class="mkws-lang"></div>
     <div class="mkws-progress"></div>
index 35c4899..7a42ce2 100644 (file)
Binary files a/tools/htdocs/favicon.ico and b/tools/htdocs/favicon.ico differ
diff --git a/tools/service-proxy/README b/tools/service-proxy/README
new file mode 100644 (file)
index 0000000..d68a159
--- /dev/null
@@ -0,0 +1,3 @@
+After editing the Service Proxy definition, it must be updated on both
+sansa and arya: see the Twiki entry on hosted search production boxes:
+https://twiki.indexdata.com/twiki/bin/view/ID/HostedSearchProd
index a3b92e4..8332385 100644 (file)
@@ -9,7 +9,7 @@ plugins.ils        = com.indexdata.serviceproxy.plugins.ILSPlugin
 plugins.statistics = com.indexdata.serviceproxy.plugins.StatisticsPlugin
 
 
-# Configuration properties for individual plug-ins 
+# Configuration properties for individual plug-ins
 
 # relay plugin, proxies commands through to Pazpar2
 relay.PROXY_MODE = 3
@@ -22,11 +22,11 @@ relay.STREAMBUFF_SIZE = 4096
 relay.PARSE_RESPONSES = true
 relay.CF_ENGINE_ADDRESS = localhost:9003
 
-# authn plugin, for torus based authentication 
+# authn plugin, for torus based authentication
 authn.TORUS_URL        = http://mkc-admin.indexdata.com/torus2/identity.USERS/records/
 authn.MASTER_TORUS_URL = http://mkc-admin.indexdata.com/torus2/admin.admin/records/
-authn.ACTION_SEQUENCE = check,login,referrer,constraint,ipauth
-authn.SPECIFIC_CONSTRAINT = hostName=${thisHost} 
+authn.ACTION_SEQUENCE = check,login,referrer,ipauth,constraint
+authn.SPECIFIC_CONSTRAINT = token="mkws-default"
 
 # categories plugin, for Torus-based target categories
 categories.TORUS_BASEURL            = http://mkc-admin.indexdata.com/torus2/