X-Git-Url: http://git.indexdata.com/?p=mkws-moved-to-github.git;a=blobdiff_plain;f=doc%2Fmkws-manual.markdown;h=d33dc7cd3bdd1e4509548a95f411a6534ce04848;hp=0f4506542eb697c6cdb93b9f2246150ccfbb4c37;hb=8dad748a1cedb9609bc898ec9d5cbb8dbcafe70d;hpb=db9816d0aa1265e9ad9565d0531e0d274f249983 diff --git a/doc/mkws-manual.markdown b/doc/mkws-manual.markdown index 0f45065..d33dc7c 100644 --- a/doc/mkws-manual.markdown +++ b/doc/mkws-manual.markdown @@ -1,6 +1,6 @@ % The MKWS manual: embedded metasearching with the MasterKey Widget Set % Mike Taylor -% October 2014 +% November 2014 Introduction @@ -41,7 +41,7 @@ flexibility against convenience: [Drupal](https://www.drupal.org/) sites. -All of these approaches require programming to a greater or lesser +All but the last of these approaches require programming to a greater or lesser extent. Against this backdrop, we introduced [MKWS (the MasterKey Widget Set)](http://mkws.indexdata.com/) -- a set of simple, very high-level HTML+CSS+JavaScript @@ -51,29 +51,29 @@ MKWS classes in any HTML page, the various components of an application can be embedded: search-boxes, results areas, target information, etc. -Simple Example +Simple example ============== -The following is a complete MKWS-based searching application: - - - - - MKWS demo client - - - - -
-
- - +The following is +[a complete MKWS-based searching application](//example.indexdata.com/simple.html): + + + + + MKWS demo client + + + + + +
+ + Go ahead, try it! Simply put the above in a file (e.g index.html), -drop it into a folder accessible with an ordinary web-server (e.g Apache) -and load it in your web browser (and no, usually, you can't just load the file -directly from disk as some browsers, e.g Chrome, won't allow storing cookies). -Just like that, you have working metasearching. +drop it into a folder accessible with an ordinary web-server (e.g +Apache) and load it in your web browser. Just like that, you have +working metasearching. How the example works --------------------- @@ -84,110 +84,189 @@ you: the `` element at the top level contains a `` and a page, you can add MKWS elements. These fall into two categories. First, the prerequisites in the HTML -header, which are loaded from the tool site mkws.indexdata.com: +header, which are loaded from the tool site `mkws.indexdata.com`: * `mkws-complete.js` - contains all the JavaScript needed by the widget-set. + contains all the JavaScript needed by the widget-set, including a + copy of the jQuery library. * `mkws.css` provides the default CSS styling Second, within the HTML body, `
` elements with special IDs that -begin `mkws` can be provided. These are filled in by the MKWS code, +begin `mkws-` can be provided. These are filled in by the MKWS code, and provide the components of the searching UI. The very simple -application above has only two such components: a search box and a -results area. But more are supported. The main `
`s are: +application above has only two such widgets: a search box and a +results area. But more are supported. -* `mkwsSearch` -- provides the search box and button. +Defining widget elements +======================== -* `mkwsResults` -- provides the results area, including a list of +Widget type +----------- + +An HTML element is made an MKWS widget by including an MKWS +class-name. These names begin `mkws-`: what follows that prefix +specifies the type of the widget. The type can be any sequence of +alphanumeric characters and hyphens _except_ something beginning +`team` -- see below. + +The main widgets are: + +* `mkws-search` -- provides the search box and button. + +* `mkws-results` -- provides the results area, including a list of brief records (which open out into full versions when clicked), paging for large results sets, facets for refining a search, sorting facilities, etc. -* `mkwsLang` -- provides links to switch between one of several - different UI languages. By default, English, Danish and German are - provided. +* `mkws-progress` -- shows a progress bar indicating how many of the + targets have responded to the search request. -* `mkwsSwitch` -- provides links to switch between a view of the +* `mkws-stat` -- provides a status line summarising the statistics of + the various targets. + +* `mkws-switch` -- provides links to switch between a view of the result records and of the targets that provide them. Only - meaningful when `mkwsTargets` is also provided. + meaningful when `mkws-targets` is also provided. -* `mkwsTargets` -- the area where per-target information will appear - when selected by the link in the `mkwsSwitch` area. Of interest +* `mkws-targets` -- the area where per-target information will appear + when selected by the link in the `mkws-switch` area. Of interest mostly for fault diagnosis rather than for end-users. -* `mkwsStat` --provides a status line summarising the statistics of - the various targets. +* `mkws-lang` -- provides links to switch between one of several + different UI languages. By default, English, Danish and German are + provided. To see all of these working together, just put them all into the HTML `` like so: -
-
-
-
-
-
+
+
+
+ +
+
+
+The full set of supported widgets is described in the +reference guide +[below](#widgets). -Configuration -============= +Widget team +----------- + +In general a set of widgets work together in a team: in the example +above, the search-term that the user enters in the `mkws-search` +widget is used to generate the set of records that are displayed in +the `mkws-results` widget. + +Sometimes, it's desirable to have multiple teams in a single page. A +widget can be placed in a named team by giving it (in addition to its +main class) a class that begins with `mkws-team-`: what follows that +prefix specifies the team that the widget is part of. For example, +`