packages feed

espial-0.0.41: templates/user.hamlet

$maybe route <- mroute
  <main #main_column .pv2.ph3.mh1.page-with-footer>
    <div .w-100.mw8.center.page-with-footer-inner>
      <div .page-main-content>
        <div .fr.nt1.nowrap style="margin-bottom:.7rem">
          <div .dib.v-mid.f6.pr2>
            $if sharedp == SharedPrivate
              <a .link.rss href="@?{(UserFeedSharedR unamep SharedPrivate, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
            $elseif sharedp == SharedPublic
              <a .link.rss href="@?{(UserFeedSharedR unamep SharedPublic, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
            $elseif filterp == FilterUnread
              <a .link.rss href="@?{(UserFeedFilterR unamep FilterUnread, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
            $elseif filterp == FilterUntagged
              <a .link.rss href="@?{(UserFeedFilterR unamep FilterUntagged, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
            $elseif filterp == FilterStarred
              <a .link.rss href="@?{(UserFeedFilterR unamep FilterStarred, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
            $else
              <a .link.rss href="@?{(UserFeedR unamep, catMaybes [mqueryp, msortp, morderp])}">#{t "rss"}
          $if isowner
            <div .dib.v-mid>
              ^{search}
        <div .di>
          <div .fl.pr3.dib.mb2>
            <b>
              <a .link href="@{UserR unamep}">#{uname}
              $forall tag <- pathtags
                \  + #
                <a .link href="@{UserTagsR unamep (TagsP [tag])}">#{tag}
          <div .fl.pr3.dib.mb2>
            <span .f7.silver>#{bcount}</span>
          $if isowner
            <div .fl.pr2.dib.mb2>
              <a .dib.mb1.link.silver.hover-alt :isAll:.nav-active
                 href="@?{(UserR unamep, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.all"}
              ‧
              <a .link.dib.mb1.silver.hover-alt :sharedp == SharedPrivate:.nav-active
                 href="@?{(UserSharedR unamep SharedPrivate, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.private"}
              ‧
              <a .link.dib.mb1.silver.hover-alt :sharedp == SharedPublic:.nav-active
                 href="@?{(UserSharedR unamep SharedPublic, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.public"}
              ‧
              <a .link.dib.mb1.silver.hover-alt :filterp == FilterUnread:.nav-active
                 href="@?{(UserFilterR unamep FilterUnread, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.unread"}
              ‧
              <a .link.dib.mb1.silver.hover-alt :filterp == FilterUntagged:.nav-active
                 href="@?{(UserFilterR unamep FilterUntagged, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.untagged"}
              ‧
              <a .link.dib.mb1.silver.hover-alt :filterp == FilterStarred:.nav-active
                 href="@?{(UserFilterR unamep FilterStarred, catMaybes [mqueryp, msortp, morderp])}">#{t "filter.starred"}
    
        <div .cf>

        $if isowner
          <span .f6.dib.mb2 #sort-controls>
            <span .silver.mr1.dib.mb1>#{t "sort.label"}
            <a .link.dib.mb1.silver.hover-alt :bsortField == BookmarkSortTime:.nav-active #sort-time href="@?{(route, catMaybes [mqueryp, Just (sortp, "time"), morderp])}">#{t "sort.time"}</a>
            ‧
            <a .link.dib.mb1.silver.hover-alt :bsortField == BookmarkSortUrl:.nav-active #sort-url href="@?{(route, catMaybes [mqueryp, Just (sortp, "url"), morderp])}">#{t "sort.url"}</a>
            ‧
            <a .link.dib.mb1.silver.hover-alt :bsortField == BookmarkSortTitle:.nav-active #sort-title href="@?{(route, catMaybes [mqueryp, Just (sortp, "title"), morderp])}">#{t "sort.title"}</a>
            ‧
            <a .link.dib.mb1.silver.hover-alt :bsortField == BookmarkSortTagCount:.nav-active #sort-tagcount href="@?{(route, catMaybes [mqueryp, Just (sortp, "tagcount"), morderp])}">#{t "sort.tagcount"}</a>
            <span .silver.mr1.ml2.dib.mb1>
            <span .nowrap.dib.mb1>
              <a .link.silver.hover-alt :bsortDir == SortAsc:.nav-active #order-asc href="@?{(route, catMaybes [mqueryp, msortp, Just (orderp, "asc")])}">▲</a>
              ‧
              <a .link.ml1.silver.hover-alt :bsortDir == SortDesc:.nav-active #order-desc href="@?{(route, catMaybes [mqueryp, msortp, Just (orderp, "desc")])}">▼</a>

        <div .flex.items-center>
          ^{pager}
          $if isowner
            <span .f6.pl2>
              <a .link.silver.hover-alt #bulk-edit-toggle href="#">#{t "bulkEdit.edit"}

        $if isowner
          <div #bulkEditRenderEl>
    
        $if showTagCloud
          <div .tag-cloud-placeholder>
            <div .tag_cloud.mv3>
              <div ##{tagCloudHeaderEl} .tag_cloud_header.mb2>
                $if isTagCloudModeRelated
                  <button type=button .pa1.f7.link.thm-hover-link-color.mr1 :tagCloudActiveRelated:.b title=#{t "tagCloud.topTagsTitle"} data-tcm-action=related>#{t "tagCloud.relatedTags"}
                  $forall (n, titleKey) <- tagCloudCounts
                    $if n /= 1
                      \ ‧
                    <button type=button .pa1.f7.link.thm-hover-link-color :n == 1:.ml2 :tagCloudActiveRelatedLowerBound == Just n:.b title=#{t titleKey} data-tcm-action=relatedLowerBound data-tcm-lb=#{n}>
                      $if n == 1
                        #{t "filter.all"}
                      $else
                        #{n}
                $else
                  <button type=button .pa1.f7.link.thm-hover-link-color.mr1 :tagCloudActiveTop:.b title=#{t "tagCloud.topTagsTitle"} data-tcm-action=top>#{t "tagCloud.topTags"}
                  $forall (n, titleKey) <- tagCloudCounts
                    $if n /= 1
                      \ ‧
                    <button type=button .pa1.f7.link.thm-hover-link-color :n == 1:.ml2 :tagCloudActiveLowerBound == Just n:.b title=#{t titleKey} data-tcm-action=lowerBound data-tcm-value=#{n}>
                      $if n == 1
                        #{t "filter.all"}
                      $else
                        #{n}
                <button type=button .pa1.ml2.f7.link.thm-text-faded.thm-hover-link-color data-tcm-action=toggleExpand data-show-label=#{t "tagCloud.show"} data-hide-label=#{t "tagCloud.hide"}>
                  $if tagCloudExpanded
                    #{t "tagCloud.hide"}
                  $else
                    #{t "tagCloud.show"}
              <div ##{tagCloudBodyEl} .tag_cloud_body>

        <div ##{renderEl} .mt3>
    
        <div .cf>
  
      <div .user_footer.view-delay>
        ^{pager}
  
        $if (fromIntegral bcount >= limit) || (page > 1)
          <div .dib.ml5>
            <span .silver.mr1>#{t "pagination.perPage"}
            <a .link.pager-link :limit == 20:.nav-active href="@?{(route, catMaybes [Just ("count", "20"), mqueryp, msortp, morderp])}"‧>20</a> ‧
            <a .link.pager-link :limit == 40:.nav-active href="@?{(route, catMaybes [Just ("count", "40"), mqueryp, msortp, morderp])}"‧>40</a> ‧
            <a .link.pager-link :limit == 80:.nav-active href="@?{(route, catMaybes [Just ("count", "80"), mqueryp, msortp, morderp])}"‧>80</a> ‧
            <a .link.pager-link :limit == 120:.nav-active href="@?{(route, catMaybes [Just ("count", "120"), mqueryp, msortp, morderp])}"‧>120</a> ‧
            <a .link.pager-link :limit == 160:.nav-active href="@?{(route, catMaybes [Just ("count", "160"), mqueryp, msortp, morderp])}"‧>160</a>