Plume/templates/notifications/index.rs.html

34 lines
1.3 KiB
HTML

@use templates::base;
@use template_utils::*;
@use plume_models::notifications::Notification;
@(ctx: BaseContext, notifications: Vec<Notification>, page: i32, n_pages: i32)
@:base(ctx, "Notifications", {}, {}, {
<h1>@i18n!(ctx.1, "Notifications")</h1>
<div class="list">
@for notification in notifications {
<div class="card flex">
<i class="icon @notification.icon_class() left-icon"></i>
<main class="grow">
<h3>
@if let Some(url) = notification.get_url(ctx.0) {
<a href="@url">
@i18n!(ctx.1, notification.get_message(); notification.get_actor(ctx.0).unwrap().name(ctx.0))
</a>
} else {
@i18n!(ctx.1, notification.get_message(); notification.get_actor(ctx.0).unwrap().name(ctx.0))
}
</h3>
@if let Some(post) = notification.get_post(ctx.0) {
<p><a href="@post.url(ctx.0).unwrap_or_default()">@post.title</a></p>
}
</main>
<p><small>@notification.creation_date.format("%B %e, %H:%M")</small></p>
</div>
}
</div>
@paginate(ctx.1, page, n_pages)
})