feat: various htmx improvements and start of area creation
This commit is contained in:
parent
11c4f52baf
commit
e0351dac82
20
src/endpoints/area/get_new.rs
Normal file
20
src/endpoints/area/get_new.rs
Normal file
@ -0,0 +1,20 @@
|
||||
use actix_web::{web, Responder};
|
||||
use askama::Template;
|
||||
use askama_actix::TemplateToResponse;
|
||||
|
||||
use crate::models::{Role, User};
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "area/new.html")]
|
||||
struct NewAreaTemplate {
|
||||
user: User,
|
||||
}
|
||||
|
||||
#[actix_web::get("/area/new")]
|
||||
async fn get(user: web::ReqData<User>) -> impl Responder {
|
||||
let template = NewAreaTemplate {
|
||||
user: user.into_inner(),
|
||||
};
|
||||
|
||||
template.to_response()
|
||||
}
|
1
src/endpoints/area/mod.rs
Normal file
1
src/endpoints/area/mod.rs
Normal file
@ -0,0 +1 @@
|
||||
pub mod get_new;
|
@ -8,6 +8,7 @@ mod location;
|
||||
mod user;
|
||||
mod assignment;
|
||||
mod get_export;
|
||||
mod area;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct IdPath {
|
||||
@ -50,5 +51,7 @@ pub fn init(cfg: &mut ServiceConfig) {
|
||||
cfg.service(assignment::get_new::get);
|
||||
cfg.service(assignment::post_new::post);
|
||||
|
||||
cfg.service(area::get_new::get);
|
||||
|
||||
cfg.service(get_export::get);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ async fn post(
|
||||
.unwrap();
|
||||
|
||||
return HttpResponse::Found()
|
||||
.insert_header(("LOCATION", "/"))
|
||||
.insert_header(("HX-LOCATION", "/"))
|
||||
.finish();
|
||||
}
|
||||
|
42
templates/area/new.html
Normal file
42
templates/area/new.html
Normal file
@ -0,0 +1,42 @@
|
||||
{% extends "nav.html" %}
|
||||
|
||||
{% block content %}
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<form method="post" action="/area/new">
|
||||
<h1 class="title">Neuen Bereich anlegen</h1>
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label">
|
||||
<label class="label">Name</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<input class="input" type="text" name="name" placeholder="Leipzig Ost"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label"></div>
|
||||
<div class="field-body">
|
||||
<div class="field is-grouped">
|
||||
<div class="control">
|
||||
<input class="button is-link" type="submit" value="Erstellen">
|
||||
</div>
|
||||
<div class="control">
|
||||
<a class="button is-link is-light" hx-boost="true" href="/locations">Zurück</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
</script>
|
||||
{% endblock %}
|
@ -5,13 +5,13 @@
|
||||
<div class="container">
|
||||
<div class="level">
|
||||
<div class="level-left">
|
||||
<a class="button is-link level-item" href="/?date={{ date.pred() }}">←</a>
|
||||
<a hx-boost="true" class="button is-link level-item" href="/?date={{ date.pred() }}">←</a>
|
||||
</div>
|
||||
<div class="control level-item is-flex-grow-0">
|
||||
<input id="date-selector" class="input" type="date" value="{{ date }}">
|
||||
</div>
|
||||
<div class="level-right">
|
||||
<a class="button is-link level-item" href="/?date={{ date.succ() }}">→</a>
|
||||
<a hx-boost="true" class="button is-link level-item" href="/?date={{ date.succ() }}">→</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,7 +10,8 @@
|
||||
</h3>
|
||||
</div>
|
||||
<div class="level-right">
|
||||
<a class="button" href="/locations/new">Neuen Ort anlegen</a>
|
||||
<a class="button" hx-boost="true" href="/area/new">Neuen Bereich anlegen</a>
|
||||
<a class="button" hx-boost="true" href="/locations/new">Neuen Ort anlegen</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h1 class="title">Brass - Anmeldung</h1>
|
||||
<form class="box" hx-post="/login" hx-target-400="#error-message" hx-on:change="document.getElementById('error-message').innerHTML = ''">
|
||||
<form class="box" action="/login" method="post" hx-boost="true" hx-target-400="#error-message" hx-on:change="document.getElementById('error-message').innerHTML = ''">
|
||||
<div class="field">
|
||||
<label class="label" for="email">E-Mail:</label>
|
||||
<div class="control">
|
||||
|
Loading…
x
Reference in New Issue
Block a user