summaryrefslogtreecommitdiffstats
path: root/src/Pages/Index.cshtml
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-11-16 17:49:54 +0100
committerivarlovlie <git@ivarlovlie.no>2022-11-16 17:49:54 +0100
commitd949d7aa8b877c25dbd31f09ceb0ddd03e0d055d (patch)
treecd2d787b24805456576b566857e6084897b6d49f /src/Pages/Index.cshtml
parent9ba3cf736fa0c83e6a9850b31d43521cabe8a016 (diff)
downloadlettnytt-d949d7aa8b877c25dbd31f09ceb0ddd03e0d055d.tar.xz
lettnytt-d949d7aa8b877c25dbd31f09ceb0ddd03e0d055d.zip
refactor: Move reader into index page
Diffstat (limited to 'src/Pages/Index.cshtml')
-rw-r--r--src/Pages/Index.cshtml105
1 files changed, 89 insertions, 16 deletions
diff --git a/src/Pages/Index.cshtml b/src/Pages/Index.cshtml
index f01b263..0501e3e 100644
--- a/src/Pages/Index.cshtml
+++ b/src/Pages/Index.cshtml
@@ -1,21 +1,94 @@
@page "{site?}"
@model IndexModel
@{
- ViewData["Title"] = Model.Source.Name;
+ ViewData["Title"] = Model.PageTitle;
}
+@if (Model.FrontPage != default) {
+ foreach (var article in Model.FrontPage.Articles) {
+ <section class="news-link">
+ <a href="/@Model.FrontPage.Name?url=@article.Href">
+ <h2>@Html.Raw(article.Title)</h2>
+ </a>
+ <div class="bar">
+ <div class="from-the-left">
+ <button class="reset link" onclick="hide_article(this)">Gjem</button> |
+ </div>
+ <div class="from-the-right">
+ <a href="@article.Href" class="source-link" rel="noreferrer">Les på nrk.no</a>
+ </div>
+ </div>
+ </section>
+ }
+ <footer>
+ <p>
+ <small>
+ @Model.FrontPage.Attribution &copy; @Model.FrontPage.Name, @(DateTime.UtcNow.Subtract(Model.FrontPage.Created).Minutes) minutter siden
+ </small>
+ </p>
+ </footer>
+ @section scripts {
+ <script>
+ const ignoreSessionStorageKey = "frontpage_ignores";
+ function hide_article(el) {
+ const linkEl = el.closest(".news-link");
+ const ignoreLink = new URL(linkEl.querySelector("a").href).searchParams.get("url");
+ const currentIgnores = sessionStorage.getItem(ignoreSessionStorageKey);
+ let newIgnores = [];
+ if (currentIgnores) newIgnores = JSON.parse(currentIgnores);
+ newIgnores.push(ignoreLink)
+ sessionStorage.setItem(ignoreSessionStorageKey, JSON.stringify(newIgnores));
+ linkEl.remove()
+ }
+
+ const ignores = sessionStorage.getItem(ignoreSessionStorageKey)
+ if (ignores) {
+ for (const ignore of JSON.parse(ignores)) {
+ console.log(ignore)
+ document.querySelector("a[href*='"+ignore+"']").closest(".news-link").remove();
+ }
+ }
+ </script>
+ }
+ } else if (Model.Article != default) {
+ <div id="art-header" style="display: flex; justify-content: space-between">
+ <div>
+ <h1>@Model.Article.Title</h1>
+ <p>@Model.Article.Subtitle</p>
+ </div>
+ </div>
-@foreach (var article in Model.Source.Articles) {
- <section class="news-link">
- <a href="/les/@Model.Source.Name?url=@article.Href">
- <h2>@Html.Raw(article.Title)</h2>
- </a>
- <a href="@article.Href" class="source-link" rel="noreferrer">Les på nrk.no</a>
- </section>
-}
-<footer>
- <p>
- <small>
- @Model.Source.Attribution &copy; @Model.Source.Name, @(DateTime.UtcNow.Subtract(Model.Source.Created).Minutes) minutter siden
- </small>
- </p>
-</footer> \ No newline at end of file
+ <article id="art-body">
+ @Html.Raw(Model.Article.Content)
+ </article>
+
+ <footer>
+ <div style="flex-direction:column">
+ @foreach (var author in Model.Article.Authors) {
+ <small style="white-space: nowrap"><b>@author.Name</b>: @author.Title</small>
+ <br/>
+ }
+ </div>
+ <div style="flex-direction: column">
+ @if (Model.Article.PublishedAt != default) {
+ <small style="white-space: nowrap">Publisert: @Model.Article.PublishedAt.ToString("dd-MM-yyyy hh:mm:ss")</small>
+ }
+ @if (Model.Article.UpdatedAt != default) {
+ <br/>
+ <small style="white-space: nowrap">Oppdatert: @Model.Article.UpdatedAt.ToString("dd-MM-yyyy hh:mm:ss")</small>
+ }
+ <br/>
+ <small>
+ <a href="@Model.Article.Href" no-interception>Les på nrk.no</a>
+ </small>
+ </div>
+ </footer>
+
+@section scripts {
+ <script>
+ document.addEventListener("DOMContentLoaded", () => {
+ document.querySelectorAll("a:not([no-interception])").forEach(el => {
+ if (el.href.indexOf("nrk.no") !== -1) el.href = "/nrk?url=" + el.href;
+ });
+ })
+ </script>
+}} \ No newline at end of file