b4e4b497ee
Use uri! to generate links instead of hardcoded urls Fix #110 Fix invalid links needing to be POST forms Translate login message for boost and like directly from template Put js for search in its own file
51 lines
1.9 KiB
HTML
51 lines
1.9 KiB
HTML
@use plume_models::blogs::Blog;
|
|
@use plume_models::posts::Post;
|
|
@use plume_models::users::User;
|
|
@use templates::{base, partials::post_card};
|
|
@use template_utils::*;
|
|
@use routes::*;
|
|
|
|
@(ctx: BaseContext, blog: Blog, fqn: String, authors: &Vec<User>, total_articles: usize, page: i32, n_pages: i32, is_author: bool, posts: Vec<Post>)
|
|
|
|
@:base(ctx, blog.title.as_ref(), {}, {
|
|
<a href="@uri!(blogs::details: name = &fqn)">@blog.title</a>
|
|
}, {
|
|
<h1>@blog.title <small>~@fqn</small></h1>
|
|
<p>@blog.summary</p>
|
|
<p>
|
|
@i18n!(ctx.1, "One author in this blog: ", "{0} authors in this blog: ", authors.len())
|
|
@for author in authors {
|
|
<a class="author" href="@uri!(user::details: name = author.get_fqn(ctx.0))">@author.name(ctx.0)</a>
|
|
}
|
|
</p>
|
|
<p>
|
|
@i18n!(ctx.1, "One article in this blog", "{0} articles in this blog", total_articles)
|
|
</p>
|
|
|
|
<section>
|
|
<h2>
|
|
@i18n!(ctx.1, "Latest articles")
|
|
<small><a href="@uri!(blogs::atom_feed: name = &fqn)" title="Atom feed">@icon!("rss")</a></small>
|
|
</h2>
|
|
@if posts.len() < 1 {
|
|
<p>@i18n!(ctx.1, "No posts to see here yet.")</p>
|
|
}
|
|
@if is_author {
|
|
<a href="@uri!(posts::new: blog = &fqn)" class="button inline-block">@i18n!(ctx.1, "New article")</a>
|
|
}
|
|
<div class="cards">
|
|
@for article in posts {
|
|
@:post_card(ctx, article)
|
|
}
|
|
</div>
|
|
@paginate(ctx.1, page, n_pages)
|
|
</section>
|
|
@if is_author {
|
|
<h2>@i18n!(ctx.1, "Danger zone")</h2>
|
|
<p>@i18n!(ctx.1, "Be very careful, any action taken here can't be cancelled.")</p>
|
|
<form method="post" action="@uri!(blogs::delete: name = &fqn)">
|
|
<input type="submit" class="inline-block button destructive" value="@i18n!(ctx.1, "Delete this blog")">
|
|
</form>
|
|
}
|
|
})
|