Use generic page template for bookmark and lazy chat lists.

Change-Id: I86cc78c8164d6672d8b5cfbc2a3433954068967e
diff --git a/src/main/resources/templates/base.html b/src/main/resources/templates/base.html
index 0d4408c..9a1ba04 100644
--- a/src/main/resources/templates/base.html
+++ b/src/main/resources/templates/base.html
@@ -18,12 +18,7 @@
   </header>
 
   <nav>
-    <ol>
-      <li class="{#insert bookmarksClass}{/}" data-site-section="Book Marx"><a href="/bookmarks">Bookmarks</a></li>
-      <li class="{#insert lazychatClass}{/}" data-site-section="Lafargue"><a href="/lazychat">Lazy Chat</a></li>
-      <li class="{#insert wikiClass}{/}" data-site-section="Wiki"><a href="/wiki/Home">Wiki</a></li>
-      <li class="{#insert aboutClass}{/}" data-site-section="About"><a href="/about">Contact Info</a></li>
-    </ol>
+    {#insert nav}{/}
   </nav>
 
   <main>
diff --git a/src/main/resources/templates/benki/about/index.html b/src/main/resources/templates/benki/about/index.html
index 520644e..edfd82e 100644
--- a/src/main/resources/templates/benki/about/index.html
+++ b/src/main/resources/templates/benki/about/index.html
@@ -6,6 +6,8 @@
 {#siteSection}About This Site{/siteSection}
 {#aboutClass}this-page{/aboutClass}
 
+{#nav}{#navbar siteSection="About" /}{/nav}
+
 {#head}{/head}
 
 {#body}
diff --git a/src/main/resources/templates/benki/bookmarks/bookmarkList.html b/src/main/resources/templates/benki/bookmarks/bookmarkList.html
deleted file mode 100644
index 8c87a55..0000000
--- a/src/main/resources/templates/benki/bookmarks/bookmarkList.html
+++ /dev/null
@@ -1,68 +0,0 @@
-{@java.util.List<eu.mulk.mulkcms2.benki.bookmarks.Bookmark> posts}
-{@java.lang.Boolean authenticated}
-{@java.lang.Boolean hasPreviousPage}
-{@java.lang.Boolean hasNextPage}
-{@java.lang.Integer previousCursor}
-{@java.lang.Integer nextCursor}
-{@java.lang.Integer pageSize}
-
-{#include base.html}
-
-{#title}Benki Bookmarks{/title}
-{#siteSection}Bookmarks{/siteSection}
-{#bookmarksClass}this-page{/bookmarksClass}
-
-{#head}
-  <link href="{feedUri}" rel="alternate" type="application/atom+xml" />
-
-  <script type="module" src="/web_modules/elix/define/ExpandableSection.js"></script>
-  <script type="module" src="/bookmarks/MlkBookmarkSubmissionForm.js"></script>
-  <script type="module" src="/bookmarks/bookmarkList.js" defer></script>
-{/head}
-
-{#body}
-
-{! #if authenticated !}
-  <elix-expandable-section id="bookmark-submission-pane">
-    <h2 slot="header" class="small-title expandable-section-title"><button class="pure-button">Create New Bookmark</button></h2>
-    <section id="bookmark-submission">
-      <mlk-bookmark-submission-form id="bookmark-submission-form"></mlk-bookmark-submission-form>
-    </section>
-  </elix-expandable-section>
-{! /if !}
-
-<div class="paging">
-  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
-  <span class="filler"></span>
-  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
-</div>
-
-<section id="main-content">
-  {#for post in posts}
-    {#with post}
-      <article class="bookmark">
-        <header>
-          <a href="{uri}"><h1 class="bookmark-title">{title}</h1></a>
-          <div class="bookmark-info">
-            <time datetime="{date.htmlDateTime}">{date.humanDateTime}</time>
-            <span class="bookmark-owner">{owner.firstName} {owner.lastName}</span>
-          </div>
-        </header>
-
-        <section class="bookmark-description">
-          {descriptionHtml.raw}
-        </section>
-      </article>
-    {/with}
-  {/for}
-</section>
-
-<div class="paging">
-  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
-  <span class="filler"></span>
-  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
-</div>
-
-{/body}
-
-{/include}
diff --git a/src/main/resources/templates/benki/lazychat/lazychatList.html b/src/main/resources/templates/benki/lazychat/lazychatList.html
deleted file mode 100644
index b644662..0000000
--- a/src/main/resources/templates/benki/lazychat/lazychatList.html
+++ /dev/null
@@ -1,52 +0,0 @@
-{@java.util.List<eu.mulk.mulkcms2.benki.lazychat.LazychatMessage> posts}
-{@java.lang.Boolean authenticated}
-{@java.lang.Boolean hasPreviousPage}
-{@java.lang.Boolean hasNextPage}
-{@java.lang.Integer previousCursor}
-{@java.lang.Integer nextCursor}
-{@java.lang.Integer pageSize}
-
-{#include base.html}
-
-{#title}Benki Lazychat{/title}
-{#siteSection}Lazychat{/siteSection}
-{#lazychatClass}this-page{/lazychatClass}
-
-{#head}{/head}
-
-{#body}
-
-<div class="paging">
-  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
-  <span class="filler"></span>
-  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
-</div>
-
-<section id="main-content">
-  {#for post in posts}
-    {#with post}
-      <article class="lazychat-message">
-        <header>
-          <div class="lazychat-message-info">
-            <time datetime="{date.htmlDateTime}">{date.humanDateTime}</time>
-            <span class="lazychat-message-owner">{owner.firstName} {owner.lastName}</span>
-          </div>
-        </header>
-
-        <section class="lazychat-message-content">
-          {contentHtml.raw}
-        </section>
-      </article>
-    {/with}
-  {/for}
-</section>
-
-<div class="paging">
-  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
-  <span class="filler"></span>
-  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
-</div>
-
-{/body}
-
-{/include}
diff --git a/src/main/resources/templates/benki/posts/postList.html b/src/main/resources/templates/benki/posts/postList.html
new file mode 100644
index 0000000..b68f796
--- /dev/null
+++ b/src/main/resources/templates/benki/posts/postList.html
@@ -0,0 +1,85 @@
+{@java.util.List<eu.mulk.mulkcms2.benki.bookmarks.Bookmark> posts}
+{@java.lang.String pageTitle}
+{@java.lang.Boolean showBookmarkForm}
+{@java.lang.Boolean hasPreviousPage}
+{@java.lang.Boolean hasNextPage}
+{@java.lang.Integer previousCursor}
+{@java.lang.Integer nextCursor}
+{@java.lang.Integer pageSize}
+
+{#include base.html}
+
+{#title}Benki {pageTitle}{/title}
+{#siteSection}{pageTitle}{/siteSection}
+
+{#nav}{#navbar siteSection=pageTitle /}{/nav}
+
+{#head}
+  <link href="{feedUri}" rel="alternate" type="application/atom+xml" />
+
+  <script type="module" src="/web_modules/elix/define/ExpandableSection.js"></script>
+  <script type="module" src="/bookmarks/MlkBookmarkSubmissionForm.js"></script>
+  <script type="module" src="/bookmarks/bookmarkList.js" defer></script>
+{/head}
+
+{#body}
+
+{#if showBookmarkForm}
+  <elix-expandable-section id="bookmark-submission-pane">
+    <h2 slot="header" class="small-title expandable-section-title"><button class="pure-button">Create New Bookmark</button></h2>
+    <section id="bookmark-submission">
+      <mlk-bookmark-submission-form id="bookmark-submission-form"></mlk-bookmark-submission-form>
+    </section>
+  </elix-expandable-section>
+{/if}
+
+<div class="paging">
+  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
+  <span class="filler"></span>
+  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
+</div>
+
+<section id="main-content">
+  {#for post in posts}
+    {#with post}
+      {#if post.isBookmark}
+        <article class="bookmark">
+          <header>
+            <a href="{uri}"><h1 class="bookmark-title">{title}</h1></a>
+            <div class="bookmark-info">
+              <time datetime="{date.htmlDateTime}">{date.humanDateTime}</time>
+              <span class="bookmark-owner">{owner.firstName} {owner.lastName}</span>
+            </div>
+          </header>
+
+          <section class="bookmark-description">
+            {descriptionHtml.raw}
+          </section>
+        </article>
+      {#else}
+        <article class="lazychat-message">
+          <header>
+            <div class="lazychat-message-info">
+              <time datetime="{date.htmlDateTime}">{date.humanDateTime}</time>
+              <span class="lazychat-message-owner">{owner.firstName} {owner.lastName}</span>
+            </div>
+          </header>
+
+          <section class="lazychat-message-content">
+            {contentHtml.raw}
+          </section>
+        </article>
+      {/if}
+    {/with}
+  {/for}
+</section>
+
+<div class="paging">
+  {#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
+  <span class="filler"></span>
+  {#if hasNextPage}<a href="?i={nextCursor}&n={pageSize}" class="pure-button">next page ⇢</a>{/if}
+</div>
+
+{/body}
+
+{/include}
diff --git a/src/main/resources/templates/benki/wiki/wikiPage.html b/src/main/resources/templates/benki/wiki/wikiPage.html
index c5155bc..a98b147 100644
--- a/src/main/resources/templates/benki/wiki/wikiPage.html
+++ b/src/main/resources/templates/benki/wiki/wikiPage.html
@@ -6,6 +6,8 @@
 {#siteSection}Wiki{/siteSection}
 {#wikiClass}this-page{/wikiClass}
 
+{#nav}{#navbar siteSection="Wiki" /}{/nav}
+
 {#head}
 <link rel="stylesheet" type="text/css" href="/web_modules/ContentTools/build/content-tools.min.css" />
 <script type="module" src="/web_modules/elix/define/ExpandablePanel.js" defer></script>
diff --git a/src/main/resources/templates/benki/wiki/wikiPageRevisionList.html b/src/main/resources/templates/benki/wiki/wikiPageRevisionList.html
index 2fd04eb..91e5058 100644
--- a/src/main/resources/templates/benki/wiki/wikiPageRevisionList.html
+++ b/src/main/resources/templates/benki/wiki/wikiPageRevisionList.html
@@ -7,6 +7,8 @@
 {#siteSection}Wiki{/siteSection}
 {#wikiClass}this-page{/wikiClass}
 
+{#nav}{#navbar siteSection="Wiki" /}{/nav}
+
 {#body}
 <header>
   <h1>Revisions &#8212; <a href="/wiki/{title}">{title}</a></h1>
diff --git a/src/main/resources/templates/tags/navbar.html b/src/main/resources/templates/tags/navbar.html
new file mode 100644
index 0000000..b3d12d8
--- /dev/null
+++ b/src/main/resources/templates/tags/navbar.html
@@ -0,0 +1,6 @@
+<ol>
+  <li class='{#if siteSection == "Bookmarks"}this-page{/}' data-site-section="Bookmarks"><a href="/bookmarks">Bookmarks</a></li>
+  <li class='{#if siteSection == "Lazy Chat"}this-page{/}' data-site-section="Lazy Chat"><a href="/lazychat">Lazy Chat</a></li>
+  <li class='{#if siteSection == "Wiki"}this-page{/}' data-site-section="Wiki"><a href="/wiki/Home">Wiki</a></li>
+  <li class='{#if siteSection == "About"}this-page{/}' data-site-section="About"><a href="/about">Contact Info</a></li>
+</ol>