Move template to src/templates MKWS-314 MKWS-315
authorJason Skomorowski <jason@indexdata.com>
Thu, 23 Oct 2014 13:50:35 +0000 (09:50 -0400)
committerJason Skomorowski <jason@indexdata.com>
Thu, 23 Oct 2014 13:50:35 +0000 (09:50 -0400)
36 files changed:
doc/mkws-manual.markdown
src/Makefile
src/mkws-widget-reference.templates/Reference.handlebars [deleted file]
src/mkws.templates/Done.handlebars [deleted file]
src/mkws.templates/Facet.handlebars [deleted file]
src/mkws.templates/Image.handlebars [deleted file]
src/mkws.templates/Lang.handlebars [deleted file]
src/mkws.templates/Navi.handlebars [deleted file]
src/mkws.templates/Pager.handlebars [deleted file]
src/mkws.templates/Progress.handlebars [deleted file]
src/mkws.templates/Ranking.handlebars [deleted file]
src/mkws.templates/Record.handlebars [deleted file]
src/mkws.templates/Records.handlebars [deleted file]
src/mkws.templates/Results.handlebars [deleted file]
src/mkws.templates/Search.handlebars [deleted file]
src/mkws.templates/Stat.handlebars [deleted file]
src/mkws.templates/Switch.handlebars [deleted file]
src/mkws.templates/Targets.handlebars [deleted file]
src/mkws.templates/Termlists.handlebars [deleted file]
src/templates/Done.handlebars [new file with mode: 0644]
src/templates/Facet.handlebars [new file with mode: 0644]
src/templates/Image.handlebars [new file with mode: 0644]
src/templates/Lang.handlebars [new file with mode: 0644]
src/templates/Navi.handlebars [new file with mode: 0644]
src/templates/Pager.handlebars [new file with mode: 0644]
src/templates/Progress.handlebars [new file with mode: 0644]
src/templates/Ranking.handlebars [new file with mode: 0644]
src/templates/Record.handlebars [new file with mode: 0644]
src/templates/Records.handlebars [new file with mode: 0644]
src/templates/Reference.handlebars [new file with mode: 0644]
src/templates/Results.handlebars [new file with mode: 0644]
src/templates/Search.handlebars [new file with mode: 0644]
src/templates/Stat.handlebars [new file with mode: 0644]
src/templates/Switch.handlebars [new file with mode: 0644]
src/templates/Targets.handlebars [new file with mode: 0644]
src/templates/Termlists.handlebars [new file with mode: 0644]

index 74b8545..a52eeb3 100644 (file)
@@ -212,7 +212,7 @@ the system. For details of Handlebars template syntax, see [the online
 documentation](http://handlebarsjs.com/).
 
 The templates used by the core widgets can be viewed in [our git
-repository](http://git.indexdata.com/?p=mkws.git;a=tree;f=src/mkws.templates;).
+repository](http://git.indexdata.com/?p=mkws.git;a=tree;f=src/templates;).
 Parameters are documented in a comment at the top of each template so
 you can see what's going where. If all you want to do is add a CSS class to
 something or change a `span` to a `div` it's easy to just copy the existing
index 120bab6..bd05b9b 100644 (file)
@@ -100,8 +100,8 @@ $(DEST)/mkws.js: $(COMPONENTS) Makefile
        mv -f $@.tmp $@
        chmod 444 $@
 
-mkws-templates.js: *.templates/*.handlebars
-       ${HANDLEBARS} -n mkws.defaultTemplates *.templates/*.handlebars -f $@.tmp
+mkws-templates.js: templates/*.handlebars
+       ${HANDLEBARS} -n mkws.defaultTemplates templates/*.handlebars -f $@.tmp
        mv -f $@.tmp $@
 
 # Checks that the JavaScript can be parsed
diff --git a/src/mkws-widget-reference.templates/Reference.handlebars b/src/mkws-widget-reference.templates/Reference.handlebars
deleted file mode 100644 (file)
index cedad80..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{{!
-Paragraphs and images from a reference source.
-
-sentences - number of sentences to include
-paragraphs - number of paragraphs to include
-md-* - metadata fields passed through from backend
-}}
-<img src="{{md-thumburl}}" alt="{{md-title}}">
-<h1><a href="{{md-electronic-url}}">{{md-title}}</a></h1>
-{{#if md-title-remainder}}
-<b>{{md-title-remainder}}</b>
-{{/if}}
-{{#if md-title-responsibility}}
-<i>{{md-title-responsibility}}</i>
-{{/if}}
-{{{mkws-paragraphs md-description paragraphs sentences}}}
-<p class="mkws-credit mkwsCredit">Wikipedia</p>
diff --git a/src/mkws.templates/Done.handlebars b/src/mkws.templates/Done.handlebars
deleted file mode 100644 (file)
index 59a0b4f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{{!
-Displayed on search completion
-
-count - number of results found
-}}
-{{{mkws-translate "Search complete: found"}}} {{count}} {{{mkws-translate "records"}}}
-
diff --git a/src/mkws.templates/Facet.handlebars b/src/mkws.templates/Facet.handlebars
deleted file mode 100644 (file)
index 7a4eedf..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
-A facet in the search.
-
-name - facet identifier, typically English and lowercase
-caption - caption for this facet
-terms:
-  term - term name
-  count - count of items matching in the current search for this team
-  linkdata - attributes to add to the term element including an onclick handler
-  field - for the xtargets facet ONLY, the opaque identifier of the target
-}}
-
-<div class="mkws-facet-title mkwsFacetTitle">{{caption}}</div>
-{{#each terms}}
-  <div class="mkws-term mkwsTerm">
-    <a href="#" {{{linkdata}}}>{{term}}</a> <span>{{count}}</span>
-  </div>
-{{/each}}
diff --git a/src/mkws.templates/Image.handlebars b/src/mkws.templates/Image.handlebars
deleted file mode 100644 (file)
index f74f174..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{{!
-Records presented as images.
-
-The non-metadata keys enable an optional link to display an AJAX popup that
-fetches additional record detail.
-
-hits:
-  containerClass - partial class attribute for element containing a record
-  detailLinkId - id for the element triggering detail display
-  detailClick - a click event handler for details
-  renderedDetails - active record details rendered from the Record template
-  md-* - metadata fields passed through from backend
-}}
-{{#each hits}}
-  <a href="#" id="{{detailLinkId}}" onclick="{{detailClick}}">
-    {{#mkws-first md-thumburl}}
-      <img src="{{this}}" alt="{{../md-title}}"/>
-    {{/mkws-first}}
-    <br/>
-  </a>
-{{/each}}
diff --git a/src/mkws.templates/Lang.handlebars b/src/mkws.templates/Lang.handlebars
deleted file mode 100644 (file)
index 26ee6da..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{{!
-Language selection widget
-
-languages
-  code - two character language identifier
-  selected - exists for the current language
-  url - url to switch to this language
-}}
-{{#each languages}}
-  {{~#if selected~}}
-    <span>{{code}}</span>
-  {{~else~}}
-    <a href="{{{url}}}">{{code}}</a>
-  {{~/if~}}
-  {{#unless last}}
-    |
-  {{/unless}}
-{{/each}}
-
diff --git a/src/mkws.templates/Navi.handlebars b/src/mkws.templates/Navi.handlebars
deleted file mode 100644 (file)
index 5139fd7..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{{!
-Facet breadcrumbs -- filters on the current search
-
-filters
-  facet - name of facet being limited
-  value - limit to this value
-  click - handler script to remove limit
-}}
-{{#each filters}}
-  {{{mkws-translate facet}}}: <a class="mkws-removable mkwsRemovable" href="#" onclick="{{{click}}}">{{value}}</a>
-  {{#unless @last}}|{{/unless}}
-{{/each}}
-
diff --git a/src/mkws.templates/Pager.handlebars b/src/mkws.templates/Pager.handlebars
deleted file mode 100644 (file)
index 55768e8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-{{!
-Pager
-
-nextClick - handler script for "next" button, only available if there is a next page
-prevClick - handler script for "previous" button if there is a previous page
-moreNext - indicates there are more pages following those displayed
-morePrev - indicates there are more pages preceding
-first - first record displayed
-last - last record displayed
-count - number of records available
-found - number of records found
-pages:
-  number - page number
-  click - script to go to this page unless it is the current one
-}}
-<div style="float: right">
-  {{mkws-translate "Displaying"}}:
-  {{first}} {{mkws-translate "to"}} {{last}}
-  {{mkws-translate "of"}} {{count}} ({{{mkws-translate "found"}}}: {{found}})
-</div>
-
-<div style="float: clear">
-  {{#if prevClick}}
-    <a href="#" class="mkws-prev mkwsPrev" onclick="{{prevClick}}">&#60;&#60; {{{mkws-translate "Prev"}}}</a> |
-  {{else}}
-    <span class="mkws-prev mkwsPrev">&#60;&#60; {{{mkws-translate "Prev"}}}</span> |
-  {{/if}}
-
-  {{#if morePrev}}...{{/if}}
-
-  {{#each pages}}
-    {{#if click}}
-      <a href="#" onclick="{{click}}">{{number}}</a>
-    {{else}}
-      <span class="mkws-current-page mkwsCurrentPage">{{number}}</span>
-    {{/if}}
-  {{/each}}
-
-  {{#if moreNext}}...{{/if}}
-
-  {{#if nextClick}}
-    | <a href="#" class="mkws-next mkwsNext" onclick="{{nextClick}}">{{{mkws-translate "Next"}}} &#62;&#62;</a>
-  {{else}}
-    | <span class="mkws-next mkwsNext">{{{mkws-translate "Next"}}} &#62;&#62;</span>
-  {{/if}}
-</div>
diff --git a/src/mkws.templates/Progress.handlebars b/src/mkws.templates/Progress.handlebars
deleted file mode 100644 (file)
index 603c5ca..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
-Progress
-
-done - number of targets complete
-waiting - number of targets waiting
-}}
-<span class="mkws-done mkws-done mkwsDone">{{#mkws-repeat done}}&#x2588;{{/mkws-repeat}}</span>
-{{~#if waiting~}}
-<span class="mkws-waiting mkws-waiting mkwsWaiting">{{#mkws-repeat waiting}}&#x2588;{{/mkws-repeat}}</span>
-{{~/if~}}
-
diff --git a/src/mkws.templates/Ranking.handlebars b/src/mkws.templates/Ranking.handlebars
deleted file mode 100644 (file)
index 890e29a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-{{!
-Ranking -- widget to select sort ordering and number of records to display
-
-team - team for this widget
-showSort - set if sort control is to be displayed
-showPerPage - set if per-page control is to be displayed
-sort
-  key - machine readable value for this sort option
-  label - text to display for this sort option
-  selected - exists if this sort is selected
-perPage
-  perPage - a number of records per page that can be selected
-  selected - exists if this number is the current selection
-}}
-<form>
-  {{~#if showSort~}}
-    {{{mkws-translate "Sort by"}}}
-    <select class="mkws-sort mkwsSort mkws-team-{{team}}">
-      {{#each sort}}
-        {{#if selected}}
-          <option value="{{{key}}}" selected="selected">{{{mkws-translate label}}}</option>
-        {{else}}
-          <option value="{{key}}">{{{mkws-translate label}}}</option>
-        {{/if}}
-      {{/each}}  
-    </select>
-  {{~/if~}}
-  {{~#if showPerPage}}
-    {{{mkws-translate "and show"}}}
-    <select class="mkws-perpage mkwsPerpage mkws-team-{{team}}">
-      {{#each perPage}}
-        {{#if selected}}
-          <option value="{{perPage}}" selected="selected">{{perPage}}</option>
-        {{else}}
-          <option value="{{perPage}}">{{perPage}}</option>
-        {{/if}}
-      {{/each}}  
-    </select>
-    {{{mkws-translate "per page"}}}
-  {{~/if~}}
-</form>
-
diff --git a/src/mkws.templates/Record.handlebars b/src/mkws.templates/Record.handlebars
deleted file mode 100644 (file)
index 9e8184e..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-{{!
-Full record display.
-
-Top level object is metadata from Service Proxy / Pazpar2
-}}
-<table>
-  <tr>
-    <th>{{mkws-translate "Title"}}</th>
-    <td>
-      {{md-title}}
-      {{#if md-title-remainder}}
-        ({{md-title-remainder}})
-      {{/if}}
-      {{#if md-title-responsibility}}
-        <i>{{md-title-responsibility}}</i>
-      {{/if}}
-    </td>
-  </tr>
-  {{#if md-date}}
-  <tr>
-    <th>{{mkws-translate "Date"}}</th>
-    <td>{{md-date}}</td>
-  </tr>
-  {{/if}}
-  {{#if md-author}}
-  <tr>
-    <th>{{mkws-translate "Author"}}</th>
-    <td>{{md-author}}</td>
-  </tr>
-  {{/if}}
-  {{#if md-electronic-url}}
-  <tr>
-    <th>{{mkws-translate "Links"}}</th>
-    <td>
-      {{#each md-electronic-url}}
-        <a href="{{this}}">Link{{mkws-index1}}</a>
-      {{/each}}
-    </td>
-  </tr>
-  {{/if}}
-  {{#mkws-if-any location having="md-subject"}}
-  <tr>
-    <th>{{mkws-translate "Subject"}}</th>
-    <td>
-      {{#mkws-first location having="md-subject"}}
-        {{#if md-subject}}
-          {{#mkws-commaList md-subject}}
-            {{this}}{{/mkws-commaList}}
-        {{/if}}
-      {{/mkws-first}}
-    </td>
-  </tr>
-  {{/mkws-if-any}}
-  <tr>
-    <th>{{mkws-translate "Locations"}}</th>
-    <td>
-      {{#mkws-commaList location}}
-        {{mkws-attr "@name"}}{{/mkws-commaList}}
-    </td>
-  </tr>
-</table>
diff --git a/src/mkws.templates/Records.handlebars b/src/mkws.templates/Records.handlebars
deleted file mode 100644 (file)
index 3e1b3a7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-{{!
-Records from a search.
-
-The non-metadata keys enable an optional link to display an AJAX popup that
-fetches additional record detail.
-
-hits:
-  containerClass - partial class attribute for element containing a record
-  detailLinkId - id for the element triggering detail display
-  detailClick - a click event handler for details
-  renderedDetails - active record details rendered from the Record template
-  md-* - metadata fields passed through from backend
-}}
-{{#each hits}}
-  <div class="{{containerClass}}">
-    <a href="#" id="{{detailLinkId}}" onclick="{{detailClick}}">
-      <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}}
-    {{#if renderedDetails}}
-      {{{renderedDetails}}}
-    {{/if}}
-  </div>
-{{/each}}
diff --git a/src/mkws.templates/Results.handlebars b/src/mkws.templates/Results.handlebars
deleted file mode 100644 (file)
index fcda1bc..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-{{!
-Results -- compound widget to display search results
-
-team - team for this widget
-}}
-<table width="100%" border="0" cellpadding="6" cellspacing="0">
-  <tr>
-    <td class="mkws-termlists-container-wide mkws-team-{{team}}" width="250" valign="top">
-      <div class="mkws-termlists mkwsTermlists mkws-team-{{team}}"></div>
-    </td>
-    <td class="mkws-motd-container mkwsMOTDContainer mkws-team-{{team}}" valign="top">
-      <div class="mkws-ranking mkwsRanking mkws-team-{{team}}"></div>
-      <div class="mkws-pager mkwsPager mkws-team-{{team}}"></div>
-      <div class="mkws-navi mkwsNavi mkws-team-{{team}}"></div>
-      <div class="mkws-records mkwsRecords mkws-team-{{team}}"></div>
-    </td>
-  </tr>
-  <tr>
-    <td colspan="2">
-      <div class="mkws-termlists-container-narrow mkws-team-{{team}}"></div>
-    </td>
-  </tr>
-</table>
-
diff --git a/src/mkws.templates/Search.handlebars b/src/mkws.templates/Search.handlebars
deleted file mode 100644 (file)
index 82cbd15..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
-Search form
-
-team - MKWS team
-queryWidth - configured width for search box
-}}
-<form name="mkws-search-form" class="mkws-search-form mkws-team-{{team}}" action="">
-  <input class="mkws-query mkws-query mkwsQuery mkws-team-{{team}}" type="text" size="{{queryWidth}}">
-  <input class="mkws-button mkws-button mkwsButton mkws-team-{{team}}" type="submit" value="{{{mkws-translate "Search"}}}">
-</form>
-
diff --git a/src/mkws.templates/Stat.handlebars b/src/mkws.templates/Stat.handlebars
deleted file mode 100644 (file)
index 340c1f8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{!
-Search statistics
-
-activeclients - number of targets currently searching
-clients - total targets for this search
-records - number of records returned and available
-hits - number of hits across all targets
-}}
- -- <span class="mkws-client-count mkwsClientCount">{{{mkws-translate "Active clients"}}} : {{activeclients}}/{{clients}}</span> -- {{{mkws-translate "Retrieved records"}}} : {{records}}/{{hits}}
diff --git a/src/mkws.templates/Switch.handlebars b/src/mkws.templates/Switch.handlebars
deleted file mode 100644 (file)
index 2b8e29c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{!
-Switch between record and target view
-
-recordClick - handler to switch to record view
-targetClick - handler to switch to target view
-}}
-<a href="#" onclick="{{{recordClick}}}">{{{mkws-translate "Records"}}}</a>
-<span>|</span>
-<a href="#" onclick="{{{targetClick}}}">{{{mkws-translate "Targets"}}}</a>
diff --git a/src/mkws.templates/Targets.handlebars b/src/mkws.templates/Targets.handlebars
deleted file mode 100644 (file)
index 132f87f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-{{!
-Target detail
-
-data:
-  id - target id, an opaque identifier
-  hits - number of hits for this target, or "Error" if an error has occurred
-  diagnostic - diagnostic code returned by target, if any. May be numeric or human-readable
-  records - number of record retrieved from target
-  state - target state (Client_Idle, Client_Working, Client_Disconnected or Client_Error)
-}}
-<table>
-  <thead>
-    <tr>
-      <td>{{{mkws-translate "Target ID"}}}</td>
-      <td>{{{mkws-translate "Hits"}}}</td>
-      <td>{{{mkws-translate "Diags"}}}</td>
-      <td>{{{mkws-translate "Records"}}}</td>
-      <td>{{{mkws-translate "State"}}}</td>
-      </td>
-    </tr>
-  </thead>
-  <tbody>
-  {{#each data}}
-    <tr>
-      <td>{{{id}}}</td>
-      <td>{{hits}}</td>
-      <td>{{diagnostic}}</td>
-      <td>{{records}}</td>
-      <td>{{state}}</td>
-    </tr>
-  {{/each}}
-  </tbody>
-</table>
diff --git a/src/mkws.templates/Termlists.handlebars b/src/mkws.templates/Termlists.handlebars
deleted file mode 100644 (file)
index 66caa83..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{{!
-Termlists, a container of all configured facets.
-
-team - the current team
-facets - array of facet names
-}}
-
-<div class="mkws-termlists-title mkwsTermlistsTitle">Termlists</div>
-{{#each facets}}
-  <div class="mkws-facet mkwsFacet mkws-team-{{../team}}" data-mkws-facet="{{this}}"></div>
-{{/each}}
diff --git a/src/templates/Done.handlebars b/src/templates/Done.handlebars
new file mode 100644 (file)
index 0000000..59a0b4f
--- /dev/null
@@ -0,0 +1,7 @@
+{{!
+Displayed on search completion
+
+count - number of results found
+}}
+{{{mkws-translate "Search complete: found"}}} {{count}} {{{mkws-translate "records"}}}
+
diff --git a/src/templates/Facet.handlebars b/src/templates/Facet.handlebars
new file mode 100644 (file)
index 0000000..7a4eedf
--- /dev/null
@@ -0,0 +1,18 @@
+{{!
+A facet in the search.
+
+name - facet identifier, typically English and lowercase
+caption - caption for this facet
+terms:
+  term - term name
+  count - count of items matching in the current search for this team
+  linkdata - attributes to add to the term element including an onclick handler
+  field - for the xtargets facet ONLY, the opaque identifier of the target
+}}
+
+<div class="mkws-facet-title mkwsFacetTitle">{{caption}}</div>
+{{#each terms}}
+  <div class="mkws-term mkwsTerm">
+    <a href="#" {{{linkdata}}}>{{term}}</a> <span>{{count}}</span>
+  </div>
+{{/each}}
diff --git a/src/templates/Image.handlebars b/src/templates/Image.handlebars
new file mode 100644 (file)
index 0000000..f74f174
--- /dev/null
@@ -0,0 +1,21 @@
+{{!
+Records presented as images.
+
+The non-metadata keys enable an optional link to display an AJAX popup that
+fetches additional record detail.
+
+hits:
+  containerClass - partial class attribute for element containing a record
+  detailLinkId - id for the element triggering detail display
+  detailClick - a click event handler for details
+  renderedDetails - active record details rendered from the Record template
+  md-* - metadata fields passed through from backend
+}}
+{{#each hits}}
+  <a href="#" id="{{detailLinkId}}" onclick="{{detailClick}}">
+    {{#mkws-first md-thumburl}}
+      <img src="{{this}}" alt="{{../md-title}}"/>
+    {{/mkws-first}}
+    <br/>
+  </a>
+{{/each}}
diff --git a/src/templates/Lang.handlebars b/src/templates/Lang.handlebars
new file mode 100644 (file)
index 0000000..26ee6da
--- /dev/null
@@ -0,0 +1,19 @@
+{{!
+Language selection widget
+
+languages
+  code - two character language identifier
+  selected - exists for the current language
+  url - url to switch to this language
+}}
+{{#each languages}}
+  {{~#if selected~}}
+    <span>{{code}}</span>
+  {{~else~}}
+    <a href="{{{url}}}">{{code}}</a>
+  {{~/if~}}
+  {{#unless last}}
+    |
+  {{/unless}}
+{{/each}}
+
diff --git a/src/templates/Navi.handlebars b/src/templates/Navi.handlebars
new file mode 100644 (file)
index 0000000..5139fd7
--- /dev/null
@@ -0,0 +1,13 @@
+{{!
+Facet breadcrumbs -- filters on the current search
+
+filters
+  facet - name of facet being limited
+  value - limit to this value
+  click - handler script to remove limit
+}}
+{{#each filters}}
+  {{{mkws-translate facet}}}: <a class="mkws-removable mkwsRemovable" href="#" onclick="{{{click}}}">{{value}}</a>
+  {{#unless @last}}|{{/unless}}
+{{/each}}
+
diff --git a/src/templates/Pager.handlebars b/src/templates/Pager.handlebars
new file mode 100644 (file)
index 0000000..55768e8
--- /dev/null
@@ -0,0 +1,46 @@
+{{!
+Pager
+
+nextClick - handler script for "next" button, only available if there is a next page
+prevClick - handler script for "previous" button if there is a previous page
+moreNext - indicates there are more pages following those displayed
+morePrev - indicates there are more pages preceding
+first - first record displayed
+last - last record displayed
+count - number of records available
+found - number of records found
+pages:
+  number - page number
+  click - script to go to this page unless it is the current one
+}}
+<div style="float: right">
+  {{mkws-translate "Displaying"}}:
+  {{first}} {{mkws-translate "to"}} {{last}}
+  {{mkws-translate "of"}} {{count}} ({{{mkws-translate "found"}}}: {{found}})
+</div>
+
+<div style="float: clear">
+  {{#if prevClick}}
+    <a href="#" class="mkws-prev mkwsPrev" onclick="{{prevClick}}">&#60;&#60; {{{mkws-translate "Prev"}}}</a> |
+  {{else}}
+    <span class="mkws-prev mkwsPrev">&#60;&#60; {{{mkws-translate "Prev"}}}</span> |
+  {{/if}}
+
+  {{#if morePrev}}...{{/if}}
+
+  {{#each pages}}
+    {{#if click}}
+      <a href="#" onclick="{{click}}">{{number}}</a>
+    {{else}}
+      <span class="mkws-current-page mkwsCurrentPage">{{number}}</span>
+    {{/if}}
+  {{/each}}
+
+  {{#if moreNext}}...{{/if}}
+
+  {{#if nextClick}}
+    | <a href="#" class="mkws-next mkwsNext" onclick="{{nextClick}}">{{{mkws-translate "Next"}}} &#62;&#62;</a>
+  {{else}}
+    | <span class="mkws-next mkwsNext">{{{mkws-translate "Next"}}} &#62;&#62;</span>
+  {{/if}}
+</div>
diff --git a/src/templates/Progress.handlebars b/src/templates/Progress.handlebars
new file mode 100644 (file)
index 0000000..603c5ca
--- /dev/null
@@ -0,0 +1,11 @@
+{{!
+Progress
+
+done - number of targets complete
+waiting - number of targets waiting
+}}
+<span class="mkws-done mkws-done mkwsDone">{{#mkws-repeat done}}&#x2588;{{/mkws-repeat}}</span>
+{{~#if waiting~}}
+<span class="mkws-waiting mkws-waiting mkwsWaiting">{{#mkws-repeat waiting}}&#x2588;{{/mkws-repeat}}</span>
+{{~/if~}}
+
diff --git a/src/templates/Ranking.handlebars b/src/templates/Ranking.handlebars
new file mode 100644 (file)
index 0000000..890e29a
--- /dev/null
@@ -0,0 +1,42 @@
+{{!
+Ranking -- widget to select sort ordering and number of records to display
+
+team - team for this widget
+showSort - set if sort control is to be displayed
+showPerPage - set if per-page control is to be displayed
+sort
+  key - machine readable value for this sort option
+  label - text to display for this sort option
+  selected - exists if this sort is selected
+perPage
+  perPage - a number of records per page that can be selected
+  selected - exists if this number is the current selection
+}}
+<form>
+  {{~#if showSort~}}
+    {{{mkws-translate "Sort by"}}}
+    <select class="mkws-sort mkwsSort mkws-team-{{team}}">
+      {{#each sort}}
+        {{#if selected}}
+          <option value="{{{key}}}" selected="selected">{{{mkws-translate label}}}</option>
+        {{else}}
+          <option value="{{key}}">{{{mkws-translate label}}}</option>
+        {{/if}}
+      {{/each}}  
+    </select>
+  {{~/if~}}
+  {{~#if showPerPage}}
+    {{{mkws-translate "and show"}}}
+    <select class="mkws-perpage mkwsPerpage mkws-team-{{team}}">
+      {{#each perPage}}
+        {{#if selected}}
+          <option value="{{perPage}}" selected="selected">{{perPage}}</option>
+        {{else}}
+          <option value="{{perPage}}">{{perPage}}</option>
+        {{/if}}
+      {{/each}}  
+    </select>
+    {{{mkws-translate "per page"}}}
+  {{~/if~}}
+</form>
+
diff --git a/src/templates/Record.handlebars b/src/templates/Record.handlebars
new file mode 100644 (file)
index 0000000..9e8184e
--- /dev/null
@@ -0,0 +1,61 @@
+{{!
+Full record display.
+
+Top level object is metadata from Service Proxy / Pazpar2
+}}
+<table>
+  <tr>
+    <th>{{mkws-translate "Title"}}</th>
+    <td>
+      {{md-title}}
+      {{#if md-title-remainder}}
+        ({{md-title-remainder}})
+      {{/if}}
+      {{#if md-title-responsibility}}
+        <i>{{md-title-responsibility}}</i>
+      {{/if}}
+    </td>
+  </tr>
+  {{#if md-date}}
+  <tr>
+    <th>{{mkws-translate "Date"}}</th>
+    <td>{{md-date}}</td>
+  </tr>
+  {{/if}}
+  {{#if md-author}}
+  <tr>
+    <th>{{mkws-translate "Author"}}</th>
+    <td>{{md-author}}</td>
+  </tr>
+  {{/if}}
+  {{#if md-electronic-url}}
+  <tr>
+    <th>{{mkws-translate "Links"}}</th>
+    <td>
+      {{#each md-electronic-url}}
+        <a href="{{this}}">Link{{mkws-index1}}</a>
+      {{/each}}
+    </td>
+  </tr>
+  {{/if}}
+  {{#mkws-if-any location having="md-subject"}}
+  <tr>
+    <th>{{mkws-translate "Subject"}}</th>
+    <td>
+      {{#mkws-first location having="md-subject"}}
+        {{#if md-subject}}
+          {{#mkws-commaList md-subject}}
+            {{this}}{{/mkws-commaList}}
+        {{/if}}
+      {{/mkws-first}}
+    </td>
+  </tr>
+  {{/mkws-if-any}}
+  <tr>
+    <th>{{mkws-translate "Locations"}}</th>
+    <td>
+      {{#mkws-commaList location}}
+        {{mkws-attr "@name"}}{{/mkws-commaList}}
+    </td>
+  </tr>
+</table>
diff --git a/src/templates/Records.handlebars b/src/templates/Records.handlebars
new file mode 100644 (file)
index 0000000..3e1b3a7
--- /dev/null
@@ -0,0 +1,29 @@
+{{!
+Records from a search.
+
+The non-metadata keys enable an optional link to display an AJAX popup that
+fetches additional record detail.
+
+hits:
+  containerClass - partial class attribute for element containing a record
+  detailLinkId - id for the element triggering detail display
+  detailClick - a click event handler for details
+  renderedDetails - active record details rendered from the Record template
+  md-* - metadata fields passed through from backend
+}}
+{{#each hits}}
+  <div class="{{containerClass}}">
+    <a href="#" id="{{detailLinkId}}" onclick="{{detailClick}}">
+      <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}}
+    {{#if renderedDetails}}
+      {{{renderedDetails}}}
+    {{/if}}
+  </div>
+{{/each}}
diff --git a/src/templates/Reference.handlebars b/src/templates/Reference.handlebars
new file mode 100644 (file)
index 0000000..cedad80
--- /dev/null
@@ -0,0 +1,17 @@
+{{!
+Paragraphs and images from a reference source.
+
+sentences - number of sentences to include
+paragraphs - number of paragraphs to include
+md-* - metadata fields passed through from backend
+}}
+<img src="{{md-thumburl}}" alt="{{md-title}}">
+<h1><a href="{{md-electronic-url}}">{{md-title}}</a></h1>
+{{#if md-title-remainder}}
+<b>{{md-title-remainder}}</b>
+{{/if}}
+{{#if md-title-responsibility}}
+<i>{{md-title-responsibility}}</i>
+{{/if}}
+{{{mkws-paragraphs md-description paragraphs sentences}}}
+<p class="mkws-credit mkwsCredit">Wikipedia</p>
diff --git a/src/templates/Results.handlebars b/src/templates/Results.handlebars
new file mode 100644 (file)
index 0000000..fcda1bc
--- /dev/null
@@ -0,0 +1,24 @@
+{{!
+Results -- compound widget to display search results
+
+team - team for this widget
+}}
+<table width="100%" border="0" cellpadding="6" cellspacing="0">
+  <tr>
+    <td class="mkws-termlists-container-wide mkws-team-{{team}}" width="250" valign="top">
+      <div class="mkws-termlists mkwsTermlists mkws-team-{{team}}"></div>
+    </td>
+    <td class="mkws-motd-container mkwsMOTDContainer mkws-team-{{team}}" valign="top">
+      <div class="mkws-ranking mkwsRanking mkws-team-{{team}}"></div>
+      <div class="mkws-pager mkwsPager mkws-team-{{team}}"></div>
+      <div class="mkws-navi mkwsNavi mkws-team-{{team}}"></div>
+      <div class="mkws-records mkwsRecords mkws-team-{{team}}"></div>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2">
+      <div class="mkws-termlists-container-narrow mkws-team-{{team}}"></div>
+    </td>
+  </tr>
+</table>
+
diff --git a/src/templates/Search.handlebars b/src/templates/Search.handlebars
new file mode 100644 (file)
index 0000000..82cbd15
--- /dev/null
@@ -0,0 +1,11 @@
+{{!
+Search form
+
+team - MKWS team
+queryWidth - configured width for search box
+}}
+<form name="mkws-search-form" class="mkws-search-form mkws-team-{{team}}" action="">
+  <input class="mkws-query mkws-query mkwsQuery mkws-team-{{team}}" type="text" size="{{queryWidth}}">
+  <input class="mkws-button mkws-button mkwsButton mkws-team-{{team}}" type="submit" value="{{{mkws-translate "Search"}}}">
+</form>
+
diff --git a/src/templates/Stat.handlebars b/src/templates/Stat.handlebars
new file mode 100644 (file)
index 0000000..340c1f8
--- /dev/null
@@ -0,0 +1,9 @@
+{{!
+Search statistics
+
+activeclients - number of targets currently searching
+clients - total targets for this search
+records - number of records returned and available
+hits - number of hits across all targets
+}}
+ -- <span class="mkws-client-count mkwsClientCount">{{{mkws-translate "Active clients"}}} : {{activeclients}}/{{clients}}</span> -- {{{mkws-translate "Retrieved records"}}} : {{records}}/{{hits}}
diff --git a/src/templates/Switch.handlebars b/src/templates/Switch.handlebars
new file mode 100644 (file)
index 0000000..2b8e29c
--- /dev/null
@@ -0,0 +1,9 @@
+{{!
+Switch between record and target view
+
+recordClick - handler to switch to record view
+targetClick - handler to switch to target view
+}}
+<a href="#" onclick="{{{recordClick}}}">{{{mkws-translate "Records"}}}</a>
+<span>|</span>
+<a href="#" onclick="{{{targetClick}}}">{{{mkws-translate "Targets"}}}</a>
diff --git a/src/templates/Targets.handlebars b/src/templates/Targets.handlebars
new file mode 100644 (file)
index 0000000..132f87f
--- /dev/null
@@ -0,0 +1,33 @@
+{{!
+Target detail
+
+data:
+  id - target id, an opaque identifier
+  hits - number of hits for this target, or "Error" if an error has occurred
+  diagnostic - diagnostic code returned by target, if any. May be numeric or human-readable
+  records - number of record retrieved from target
+  state - target state (Client_Idle, Client_Working, Client_Disconnected or Client_Error)
+}}
+<table>
+  <thead>
+    <tr>
+      <td>{{{mkws-translate "Target ID"}}}</td>
+      <td>{{{mkws-translate "Hits"}}}</td>
+      <td>{{{mkws-translate "Diags"}}}</td>
+      <td>{{{mkws-translate "Records"}}}</td>
+      <td>{{{mkws-translate "State"}}}</td>
+      </td>
+    </tr>
+  </thead>
+  <tbody>
+  {{#each data}}
+    <tr>
+      <td>{{{id}}}</td>
+      <td>{{hits}}</td>
+      <td>{{diagnostic}}</td>
+      <td>{{records}}</td>
+      <td>{{state}}</td>
+    </tr>
+  {{/each}}
+  </tbody>
+</table>
diff --git a/src/templates/Termlists.handlebars b/src/templates/Termlists.handlebars
new file mode 100644 (file)
index 0000000..66caa83
--- /dev/null
@@ -0,0 +1,11 @@
+{{!
+Termlists, a container of all configured facets.
+
+team - the current team
+facets - array of facet names
+}}
+
+<div class="mkws-termlists-title mkwsTermlistsTitle">Termlists</div>
+{{#each facets}}
+  <div class="mkws-facet mkwsFacet mkws-team-{{../team}}" data-mkws-facet="{{this}}"></div>
+{{/each}}