{@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}
