Quote all instances of the `service_proxy_auth` setting name.
[mkws-moved-to-github.git] / doc / whitepaper.markdown
index 74a3234..c9b3fad 100644 (file)
@@ -1,6 +1,5 @@
 % Embedded metasearching with the MasterKey Widget Set
 % Mike Taylor
-% July-September 2013
 
 
 Introduction
@@ -84,7 +83,7 @@ header, which are loaded from the tool site mkws.indexdata.com:
   contains all the JavaScript needed by the widget-set.
 
 * `mkws.css`
-  provides the default CSS styling 
+  provides the default CSS styling
 
 Second, within the HTML body, `<div>` elements with special IDs that
 begin `mkws` can be provided. These are filled in by the MKWS code,
@@ -273,9 +272,14 @@ generally visible on the page is a search box, and the results appear
 in a popup. The key part of such an application is this invocation of
 the MKWS jQuery plugin:
 
-        <script type="text/javascript">
-          jQuery.pazpar2({ "layout":"popup", width:800, height:500 });
-        </script>
+        <div class="mkwsSearch"></div>
+        <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+          <div class="mkwsSwitch"></div>
+          <div class="mkwsLang"></div>
+          <div class="mkwsResults"></div>
+          <div class="mkwsTargets"></div>
+          <div class="mkwsStat"></div>
+        </div>
 
 The necessary scaffolding can be seen in an example application,
 http://example.indexdata.com/index-popup.html
@@ -350,7 +354,7 @@ Element                   Type    Default   Description
 debug_level               int     1         Level of debugging output to emit. 0 = none, 1 = messages, 2 = messages with
                                             datestamps, 3 = messages with datestamps and stack-traces.
 
-facets                    array   *Note 1*  Ordered list of names of facets to display. Supported facet names are 
+facets                    array   *Note 1*  Ordered list of names of facets to display. Supported facet names are
                                             `xtargets`, `subject` and `author`.
 
 lang                      string  en        Code of the default language to display the UI in. Supported language codes are `en` =
@@ -394,6 +398,9 @@ show_perpage              bool    true      Indicates whether or not to display
 
 show_sort                 bool    true      Indicates whether or not to display the sort menu.
 
+show_switch               bool    true      Indicates whether or not to display the switch menu, for switching between showing
+                                            retrieved records and target information.
+
 sort_default              string  relevance The label of the default sort criterion to use. Must be one of those in the `sort`
                                             array.
 
@@ -405,8 +412,8 @@ use_service_proxy         bool    true      If true, then a Service Proxy is use
                                             Pazpar2.
 ---
 
-Perhaps we should get rid of the `show_lang`, `show_perpage` and
-`show_sort` configuration items, and simply display the relevant menus
+Perhaps we should get rid of the `show_lang`, `show_perpage`,
+`show_sort` and `show_switch` configuration items, and simply display the relevant menus
 only when their containers are provided -- e.g. an `mkwsLang` element
 for the language menu. But for now we retain these, as an easier route
 to lightly customise the display than my changing providing a full HTML
@@ -477,48 +484,43 @@ and
 
 
 
-### jQuery plugin invocation
+### jQuery UI popup invocation
 
-The MasterKey Widget Set can be invoked as a jQuery plugin rather than
-by providing an HTML skeleton explicitly. When this approach is used,
-the invocation is a single line of JavaScript:
+The MasterKey Widget Set can be invoked in a popup window on top of the page.
 
-        <script>jQuery.pazpar2();</script>
+Note that when using the `popup` layout, facilities from the jQuery UI
+toolkit are used, so it's necessary to include both CSS and JavaScript
+from that toolkit. The relevant lines are:
 
-This code should be inserted in the page at the position where the
-metasearch should occur.
+    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
+    <link rel="stylesheet" type="text/css"
+          href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
 
-When invoking this plugin, a key-value lookup table of named options
-may be passed in to modify the default behaviour, as in the exaple
-above. The available options are as follows:
+    <div class="mkwsSearch"></div>
+    <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+      <div class="mkwsSwitch"></div>
+      <div class="mkwsLang"></div>
+      <div class="mkwsResults"></div>
+      <div class="mkwsTargets"></div>
+      <div class="mkwsStat"></div>
+    </div
 
 ---
 Element    Type    Default           Description
 --------   -----   ---------         ------------
-layout     string  popup             Specifies how the user interface should
-                                     appear. Options are `table` (the default,
-                                     with facets at the bottom), `div` (with
-                                     facets at the side) and `popup` (to
-                                     obtain a popup window).
-
-width      int     880               Width of the popup window (if used), in
+popup_width     string     880       Width of the popup window (if used), in
                                      pixels.
 
-height     int     760               Height of the popup window (if used), in
+popup_height    string     760       Height of the popup window (if used), in
                                      pixels.
 
-id_button  string  input#mkwsButton  (Never change this.)
+popup_button    string      input.mkwsButton  (Never change this.)
 
-id_popup   string  #mkwsPopup        (Never change this.)
----
+popup_modal     string      0       Modal confirmation mode. Valid values are 0 or 1
 
-Note that when using the `popup` layout, facilities from the jQuery UI
-toolkit are used, so it's necessary to include both CSS and JavaScript
-from that toolkit. The relevant lines are:
+popup_autoOpen  string      1       Open popup window on load. Valid values are 0 or 1
 
-    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
-    <link rel="stylesheet" type="text/css"
-          href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+---
 
 
 ### The structure of the HTML generated by the MKWS widgets
@@ -592,4 +594,4 @@ and .CLASS indicates an instance of a class.
 
 - - -
 
-Copyright (C) 2013 by IndexData ApS, <http://www.indexdata.com>
+Copyright (C) 2013-2014 by IndexData ApS, <http://www.indexdata.com>