summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/bookmarks/Bookmark.java10
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java12
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java4
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java10
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatResource.java14
-rw-r--r--src/main/resources/templates/base.html7
-rw-r--r--src/main/resources/templates/benki/about/index.html2
-rw-r--r--src/main/resources/templates/benki/lazychat/lazychatList.html52
-rw-r--r--src/main/resources/templates/benki/posts/postList.html (renamed from src/main/resources/templates/benki/bookmarks/bookmarkList.html)53
-rw-r--r--src/main/resources/templates/benki/wiki/wikiPage.html2
-rw-r--r--src/main/resources/templates/benki/wiki/wikiPageRevisionList.html2
-rw-r--r--src/main/resources/templates/tags/navbar.html6
12 files changed, 88 insertions, 86 deletions
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/Bookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/Bookmark.java
index 8beda97..ea62af3 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/Bookmark.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/Bookmark.java
@@ -56,4 +56,14 @@ public class Bookmark extends Post {
@CheckForNull Integer count) {
return findViewable(Bookmark.class, session, viewer, owner, cursor, count);
}
+
+ @Override
+ public boolean isBookmark() {
+ return true;
+ }
+
+ @Override
+ public boolean isLazychatMessage() {
+ return false;
+ }
}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java
index 1f57c74..d026a1a 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarks/BookmarkResource.java
@@ -75,9 +75,9 @@ public class BookmarkResource {
@ConfigProperty(name = "mulkcms.bookmarks.default-max-results")
int defaultMaxResults;
- @ResourcePath("benki/bookmarks/bookmarkList.html")
+ @ResourcePath("benki/posts/postList.html")
@Inject
- Template bookmarkList;
+ Template postList;
@ResourcePath("benki/bookmarks/newBookmark.html")
@Inject
@@ -104,9 +104,11 @@ public class BookmarkResource {
var session = entityManager.unwrap(Session.class);
var q = Bookmark.findViewable(session, identity, null, cursor, maxResults);
- return bookmarkList
+ return postList
.data("posts", q.posts)
.data("feedUri", "/bookmarks/feed")
+ .data("pageTitle", "Bookmarks")
+ .data("showBookmarkForm", false)
.data("authenticated", !identity.isAnonymous())
.data("hasPreviousPage", q.prevCursor != null)
.data("hasNextPage", q.nextCursor != null)
@@ -129,9 +131,11 @@ public class BookmarkResource {
var session = entityManager.unwrap(Session.class);
var q = Bookmark.findViewable(session, identity, owner, cursor, maxResults);
- return bookmarkList
+ return postList
.data("posts", q.posts)
.data("feedUri", String.format("/bookmarks/~%s/feed", ownerName))
+ .data("pageTitle", "Bookmarks")
+ .data("showBookmarkForm", false)
.data("authenticated", !identity.isAnonymous())
.data("hasPreviousPage", q.prevCursor != null)
.data("hasNextPage", q.nextCursor != null)
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java b/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java
index 898eeb4..7d75bb4 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java
@@ -75,6 +75,10 @@ public abstract class Post extends PanacheEntityBase {
inverseJoinColumns = @JoinColumn(name = "target"))
public Set<Role> targets;
+ public abstract boolean isBookmark();
+
+ public abstract boolean isLazychatMessage();
+
protected static <T extends Post> CriteriaQuery<T> queryViewable(
Class<T> entityClass,
SecurityIdentity readerIdentity,
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
index 4e58259..4c7f6a0 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
@@ -46,4 +46,14 @@ public class LazychatMessage extends Post {
@CheckForNull Integer count) {
return findViewable(LazychatMessage.class, session, viewer, owner, cursor, count);
}
+
+ @Override
+ public boolean isBookmark() {
+ return false;
+ }
+
+ @Override
+ public boolean isLazychatMessage() {
+ return true;
+ }
}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatResource.java b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatResource.java
index 4284d96..cb89e71 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatResource.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatResource.java
@@ -40,9 +40,9 @@ public class LazychatResource {
@ConfigProperty(name = "mulkcms.lazychat.default-max-results")
int defaultMaxResults;
- @ResourcePath("benki/lazychat/lazychatList.html")
+ @ResourcePath("benki/posts/postList.html")
@Inject
- Template lazychatList;
+ Template postList;
@Inject SecurityIdentity identity;
@@ -59,9 +59,10 @@ public class LazychatResource {
var session = entityManager.unwrap(Session.class);
var q = LazychatMessage.findViewable(session, identity, null, cursor, maxResults);
- return lazychatList
+ return postList
.data("posts", q.posts)
- .data("authenticated", !identity.isAnonymous())
+ .data("pageTitle", "Lazy Chat")
+ .data("showBookmarkForm", false)
.data("hasPreviousPage", q.prevCursor != null)
.data("hasNextPage", q.nextCursor != null)
.data("previousCursor", q.prevCursor)
@@ -83,9 +84,10 @@ public class LazychatResource {
var session = entityManager.unwrap(Session.class);
var q = LazychatMessage.findViewable(session, identity, owner, cursor, maxResults);
- return lazychatList
+ return postList
.data("posts", q.posts)
- .data("authenticated", !identity.isAnonymous())
+ .data("pageTitle", "Lazy Chat")
+ .data("showBookmarkForm", false)
.data("hasPreviousPage", q.prevCursor != null)
.data("hasNextPage", q.nextCursor != null)
.data("previousCursor", q.prevCursor)
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/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/bookmarks/bookmarkList.html b/src/main/resources/templates/benki/posts/postList.html
index 8c87a55..b68f796 100644
--- a/src/main/resources/templates/benki/bookmarks/bookmarkList.html
+++ b/src/main/resources/templates/benki/posts/postList.html
@@ -1,5 +1,6 @@
{@java.util.List<eu.mulk.mulkcms2.benki.bookmarks.Bookmark> posts}
-{@java.lang.Boolean authenticated}
+{@java.lang.String pageTitle}
+{@java.lang.Boolean showBookmarkForm}
{@java.lang.Boolean hasPreviousPage}
{@java.lang.Boolean hasNextPage}
{@java.lang.Integer previousCursor}
@@ -8,9 +9,10 @@
{#include base.html}
-{#title}Benki Bookmarks{/title}
-{#siteSection}Bookmarks{/siteSection}
-{#bookmarksClass}this-page{/bookmarksClass}
+{#title}Benki {pageTitle}{/title}
+{#siteSection}{pageTitle}{/siteSection}
+
+{#nav}{#navbar siteSection=pageTitle /}{/nav}
{#head}
<link href="{feedUri}" rel="alternate" type="application/atom+xml" />
@@ -22,14 +24,14 @@
{#body}
-{! #if authenticated !}
+{#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 !}
+{/if}
<div class="paging">
{#if hasPreviousPage}<a href="?i={previousCursor}&n={pageSize}" class="pure-button">⇠ previous page</a>{/if}
@@ -40,19 +42,34 @@
<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>
+ {#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="bookmark-description">
- {descriptionHtml.raw}
- </section>
- </article>
+ <section class="lazychat-message-content">
+ {contentHtml.raw}
+ </section>
+ </article>
+ {/if}
{/with}
{/for}
</section>
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>