An embryonic MasterKey Widget Set
=================================
This directory contains an embryonic MasterKey Widget Set, based
initially on "jsdemo" though now far removed from those beginnnings.
How this works
--------------
The goal is to make it that as much of the searching functionality as
possible is hosted on
http://mkws.indexdata.com/
so that very simple websites such as
http://example.indexdata.com/
can have MasterKey searching with minimal effort.
The following files must be hosted on mkws.indexdata.com:
mkws.js
mkwsStyle.css
/libjs-pz2/pz2api.1.js (*)
The following files make up the application:
index.html
favicon.ico [optional]
robots.txt [optional]
(At present, the client application's configuruation also needs an
Alias for /service-proxy/, to avoid cross-site scripting issues. We
will fix this.)
(*) if you don't have already installed libjs-pz2 on the machine, you can
do it by installing a debian package or check it out from GIT:
$ git clone ssh://git.indexdata.com:222/home/git/pub/libjs-pz2
Configuring a client
--------------------
The application's HTML must contains the following elements as well as
whatever makes up the application itself:
Prerequisites:
(Yes, we're using JQuery. We use it only in the most trivial ways, and
could probably get rid of it without too much pain. I'd like to have
mkws.js automatically pull in pz2api.1.js, too, so you don't need to
do so many things, but that's not quite trivial.)
Then the following special
s can be added (with no content), and
will be filled in by MKWS:
-- switch between record and target views
-- switch between English, Danish and German
-- search box and button
-- result list, including pager/sorting
-- target list, including status
-- summary statistics
At present, MKWS will not work correctly if any of these is
missing. One of the TODOs is to fix it so that it doesn't try to use
whatever is not there, and just uses what is.
You can configure and control the client with the JavaScript mkws_config object.
Here is an example of all possible options
Note: the mkws_config object which must be loaded before the mkws.js and pz2api.js files.
jQuery plugin
------------------
The jQuery plugin version, consisting of a single line of JavaScript code
put the code in your page at the position where the metasearch should occours.
Here is an example of all possible options
jQuery.pazpar2({"layout": "popup", /* "table", "div", "popup", default is table */
"id_button": "input#mkwsButton", /* submit button id in search field */
"id_popup": "#mkwsPopup", /* interal id of popup window */
"width": 880, /* popup width, should be at least 800 */
"height": 760 /* popup height, should be at least 600 */
});
Supported Browsers
------------------
Any modern HTML5 browser will work fine. JavaScript must be enabled.
* IE8 or later
* Firefox 17 or later
* Google Chrome 27 or later
* Safari 6 or later
* Opera 12 or later
* iOS 6.x (iPhone, iPad)
* Android 4.x
Not supported: IE6, IE7
New Features since jsdemo
--------------------------
- multilinguality: English (default), Danish, German
- depends on the new pazpar2 JS library libjs-pz2/pz2api.1.js
which will make the development of pazpar2 plugins faster and
easier to share code between projects
- supports basic pazpar2 and service-proxy requests
- simplified HTML
- the search page is fully configurable by a JSON object
What next?
----------
Main areas of work:
* Make MKWS robust to missing widgets
* Clean up the code