Works on template

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
This commit is contained in:
Trinity Pointard
2018-12-07 12:05:01 +01:00
parent 70af57c6e1
commit b4e4b497ee
30 changed files with 218 additions and 175 deletions
+3 -2
View File
@@ -1,6 +1,7 @@
@use plume_models::{instance::Instance, users::User};
@use templates::base;
@use template_utils::*;
@use plume_models::{instance::Instance, users::User};
@use routes::*;
@(ctx: BaseContext, instance: Instance, admin: User, n_users: usize, n_articles: usize, n_instances: i64)
@@ -23,7 +24,7 @@
<div>
<p>@i18n!(ctx.1, "Administred by")</p>
@avatar(ctx.0, &admin, Size::Small, false, ctx.1)
<p><a href="/@@/@admin.get_fqn(ctx.0)">@admin.name(ctx.0)</a><small>@@@admin.get_fqn(ctx.0)</small></p>
<p><a href="@uri!(user::details: name = admin.get_fqn(ctx.0))">@admin.name(ctx.0)</a><small>@@@admin.get_fqn(ctx.0)</small></p>
</div>
</section>
<p>@i18n!(ctx.1, "Runs Plume {0}"; env!("CARGO_PKG_VERSION"))</p>
+7 -6
View File
@@ -1,8 +1,9 @@
@use plume_models::instance::Instance;
@use validator::ValidationErrors;
@use templates::base;
@use template_utils::*;
@use plume_models::instance::Instance;
@use routes::instance::InstanceSettingsForm;
@use validator::ValidationErrors;
@use routes::*;
@(ctx: BaseContext, instance: Instance, form: InstanceSettingsForm, errors: ValidationErrors)
@@ -10,12 +11,12 @@
<h1>@i18n!(ctx.1, "Administration")</h1>
@tabs(&[
("/admin", i18n!(ctx.1, "Configuration"), true),
("/admin/instances", i18n!(ctx.1, "Instances"), false),
("/admin/users", i18n!(ctx.1, "Users"), false),
(&uri!(instance::admin).to_string(), i18n!(ctx.1, "Configuration"), true),
(&uri!(instance::admin_instances).to_string(), i18n!(ctx.1, "Instances"), false),
(&uri!(instance::admin_users).to_string(), i18n!(ctx.1, "Users"), false),
])
<form method="post">
<form method="post" action="@uri!(instance::update_settings)">
@input!(ctx.1, name (text), "Name", form, errors.clone(), "props")
<label for="open_registrations">
+9 -8
View File
@@ -1,6 +1,7 @@
@use plume_models::posts::Post;
@use templates::{base, partials::post_card};
@use template_utils::*;
@use plume_models::posts::Post;
@use routes::*;
@(ctx: BaseContext, articles: Vec<Post>, page: i32, n_pages: i32)
@@ -9,16 +10,16 @@
@if let Some(_) = ctx.2 {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), false),
("/feed", i18n!(ctx.1, "Your feed"), false),
("/federated", i18n!(ctx.1, "Federated feed"), true),
("/local", i18n!(ctx.1, "Local feed"), false),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), false),
(&uri!(instance::feed).to_string(), i18n!(ctx.1, "Your feed"), false),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), true),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), false),
])
} else {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), false),
("/federated", i18n!(ctx.1, "Federated feed"), true),
("/local", i18n!(ctx.1, "Local feed"), false),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), false),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), true),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), false),
])
}
+6 -5
View File
@@ -1,6 +1,7 @@
@use plume_models::posts::Post;
@use templates::{base, partials::post_card};
@use template_utils::*;
@use plume_models::posts::Post;
@use routes::*;
@(ctx: BaseContext, articles: Vec<Post>, page: i32, n_pages: i32)
@@ -8,10 +9,10 @@
<h1>@i18n!(ctx.1, "Your feed")</h1>
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), false),
("/feed", i18n!(ctx.1, "Your feed"), true),
("/federated", i18n!(ctx.1, "Federated feed"), false),
("/local", i18n!(ctx.1, "Local feed"), false),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), false),
(&uri!(instance::feed).to_string(), i18n!(ctx.1, "Your feed"), true),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), false),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), false),
])
@if !articles.is_empty() {
+13 -12
View File
@@ -2,6 +2,7 @@
@use template_utils::*;
@use plume_models::instance::Instance;
@use plume_models::posts::Post;
@use routes::*;
@(ctx: BaseContext, instance: Instance, n_users: i32, n_articles: i32, local: Vec<Post>, federated: Vec<Post>, user_feed: Option<Vec<Post>>)
@@ -10,25 +11,25 @@
@if ctx.2.is_some() {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), true),
("/feed", i18n!(ctx.1, "Your feed"), false),
("/federated", i18n!(ctx.1, "Federated feed"), false),
("/local", i18n!(ctx.1, "Local feed"), false),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), true),
(&uri!(instance::feed).to_string(), i18n!(ctx.1, "Your feed"), false),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), false),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), false),
])
@:home_feed(ctx, user_feed.unwrap_or_default(), "/feed", "Your feed")
@:home_feed(ctx, federated, "/federated", "Federated feed")
@:home_feed(ctx, local, "/local", "Local feed")
@:home_feed(ctx, user_feed.unwrap_or_default(), &uri!(instance::feed).to_string(), "Your feed")
@:home_feed(ctx, federated, &uri!(instance::federated).to_string(), "Federated feed")
@:home_feed(ctx, local, &uri!(instance::local).to_string(), "Local feed")
@:instance_description(ctx, instance, n_users, n_articles)
} else {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), true),
("/federated", i18n!(ctx.1, "Federated feed"), false),
("/local", i18n!(ctx.1, "Local feed"), false),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), true),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), false),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), false),
])
@:home_feed(ctx, federated, "/federated", "Federated feed")
@:home_feed(ctx, local, "/local", "Local feed")
@:home_feed(ctx, federated, &uri!(instance::federated).to_string(), "Federated feed")
@:home_feed(ctx, local, &uri!(instance::local).to_string(), "Local feed")
@:instance_description(ctx, instance, n_users, n_articles)
}
})
+6 -5
View File
@@ -1,6 +1,7 @@
@use plume_models::instance::Instance;
@use templates::base;
@use template_utils::*;
@use plume_models::instance::Instance;
@use routes::*;
@(ctx: BaseContext, instance: Instance, instances: Vec<Instance>, page: i32, n_pages: i32)
@@ -8,9 +9,9 @@
<h1>@i18n!(ctx.1, "Instances")</h1>
@tabs(&[
("/admin", i18n!(ctx.1, "Configuration"), false),
("/admin/instances", i18n!(ctx.1, "Instances"), true),
("/admin/users", i18n!(ctx.1, "Users"), false),
(&uri!(instance::admin).to_string(), i18n!(ctx.1, "Configuration"), false),
(&uri!(instance::admin_instances).to_string(), i18n!(ctx.1, "Instances"), true),
(&uri!(instance::admin_users).to_string(), i18n!(ctx.1, "Users"), false),
])
<div class="list">
@@ -21,7 +22,7 @@
<small>@instance.public_domain</small>
</p>
@if !instance.local {
<form class="inline" method="post" action="/admin/instances/@instance.id/block">
<form class="inline" method="post" action="@uri!(instance::toggle_block: id = instance.id)">
<input type="submit" value="@i18n!(ctx.1, if instance.blocked { "Unblock" } else { "Block"})">
</form>
}
+10 -9
View File
@@ -1,7 +1,8 @@
@use templates::{base, partials::post_card};
@use template_utils::*;
@use plume_models::posts::Post;
@use plume_models::instance::Instance;
@use templates::{base, partials::post_card};
@use template_utils::*;
@use routes::*;
@(ctx: BaseContext, instance: Instance, articles: Vec<Post>, page: i32, n_pages: i32)
@@ -10,16 +11,16 @@
@if let Some(_) = ctx.2 {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), false),
("/feed", i18n!(ctx.1, "Your feed"), false),
("/federated", i18n!(ctx.1, "Federated feed"), false),
("/local", i18n!(ctx.1, "Local feed"), true),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), false),
(&uri!(instance::feed).to_string(), i18n!(ctx.1, "Your feed"), false),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), false),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), true),
])
} else {
@tabs(&[
("/", i18n!(ctx.1, "Latest articles"), false),
("/federated", i18n!(ctx.1, "Federated feed"), false),
("/local", i18n!(ctx.1, "Local feed"), true),
(&uri!(instance::index).to_string(), i18n!(ctx.1, "Latest articles"), false),
(&uri!(instance::federated).to_string(), i18n!(ctx.1, "Federated feed"), false),
(&uri!(instance::local).to_string(), i18n!(ctx.1, "Local feed"), true),
])
}
+7 -6
View File
@@ -1,6 +1,7 @@
@use plume_models::users::User;
@use templates::base;
@use template_utils::*;
@use plume_models::users::User;
@use routes::*;
@(ctx: BaseContext, users: Vec<User>, page: i32, n_pages: i32)
@@ -8,9 +9,9 @@
<h1>@i18n!(ctx.1, "Users")</h1>
@tabs(&[
("/admin", i18n!(ctx.1, "Configuration"), false),
("/admin/instances", i18n!(ctx.1, "Instances"), false),
("/admin/users", i18n!(ctx.1, "Users"), true),
(&uri!(instance::admin).to_string(), i18n!(ctx.1, "Configuration"), false),
(&uri!(instance::admin_instances).to_string(), i18n!(ctx.1, "Instances"), false),
(&uri!(instance::admin_users).to_string(), i18n!(ctx.1, "Users"), true),
])
<div class="list">
@@ -18,11 +19,11 @@
<div class="flex">
@avatar(ctx.0, &user, Size::Small, false, ctx.1)
<p class="grow">
<a href="/@@/@user.get_fqn(ctx.0)">@user.name(ctx.0)</a>
<a href="@uri!(user::details: name = user.get_fqn(ctx.0))">@user.name(ctx.0)</a>
<small>@format!("@{}", user.username)</small>
</p>
@if !user.is_admin {
<form class="inline" method="post" action="/admin/users/@user.id/ban">
<form class="inline" method="post" action="@uri!(instance::ban: id = user.id)">
<input type="submit" value="@i18n!(ctx.1, "Ban")">
</form>
}