i hate israel

This commit is contained in:
frosty 2026-01-12 16:57:57 -05:00
parent 5cea377934
commit 63376af86f
10 changed files with 289 additions and 0 deletions

67
2026-01-12_16:52.patch Normal file
View File

@ -0,0 +1,67 @@
diff --git a/src/web/mod.rs b/src/web/mod.rs
index f919e6e..4f03aa9 100644
--- a/src/web/mod.rs
+++ b/src/web/mod.rs
@@ -11,6 +11,7 @@ pub async fn start() -> anyhow::Result<()> {
let addr = "0.0.0.0:3000";
let app = Router::new()
.route("/", get(pages::home::get_page))
+ .route("/login", get(pages::login::get_page))
.nest_service(
"/static",
ServiceBuilder::new()
diff --git a/src/web/pages/mod.rs b/src/web/pages/mod.rs
index 0c1f8ad..d4fc7a0 100644
--- a/src/web/pages/mod.rs
+++ b/src/web/pages/mod.rs
@@ -1,6 +1,8 @@
+
pub mod home;
+pub mod login;
pub mod error;
diff --git a/templates/base.html b/templates/base.html
index 6731e87..86574ca 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>{{ self.title() }}</title>
+ <link rel="stylesheet" href="/static/index.css">
</head>
<body>
{% include "header.html" %}
diff --git a/templates/header.html b/templates/header.html
index c247db4..cf4fb71 100644
--- a/templates/header.html
+++ b/templates/header.html
@@ -1,6 +1,25 @@
<header>
+ <ul class="nav">
+ <li><a href="/">Home</a></li>
+ <li><a href="/personnel">Personnel</a></li>
+ <li><a href="/clients">Clients</a></li>
+ <li><a href="/tickets">Tickets</a></li>
+ <li><a href="/inventory">Inventory</a></li>
+
+ <!- not logged in>
+ <!--
+ <li class="right"><a href="/login">Sign in</a></li>
+ !-->
+
+ <!- logged in>
+ <li class="right">
+ <img class="pfp" src="/static/usericon.png">
+ <a>John Doe</a>
+ </li>
+
+ </ul>
</header>

67
2026-01-12_16:55.patch Normal file
View File

@ -0,0 +1,67 @@
diff --git a/src/web/mod.rs b/src/web/mod.rs
index f919e6e..4f03aa9 100644
--- a/src/web/mod.rs
+++ b/src/web/mod.rs
@@ -11,6 +11,7 @@ pub async fn start() -> anyhow::Result<()> {
let addr = "0.0.0.0:3000";
let app = Router::new()
.route("/", get(pages::home::get_page))
+ .route("/login", get(pages::login::get_page))
.nest_service(
"/static",
ServiceBuilder::new()
diff --git a/src/web/pages/mod.rs b/src/web/pages/mod.rs
index 0c1f8ad..d4fc7a0 100644
--- a/src/web/pages/mod.rs
+++ b/src/web/pages/mod.rs
@@ -1,6 +1,8 @@
+
pub mod home;
+pub mod login;
pub mod error;
diff --git a/templates/base.html b/templates/base.html
index 6731e87..86574ca 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>{{ self.title() }}</title>
+ <link rel="stylesheet" href="/static/index.css">
</head>
<body>
{% include "header.html" %}
diff --git a/templates/header.html b/templates/header.html
index c247db4..cf4fb71 100644
--- a/templates/header.html
+++ b/templates/header.html
@@ -1,6 +1,25 @@
<header>
+ <ul class="nav">
+ <li><a href="/">Home</a></li>
+ <li><a href="/personnel">Personnel</a></li>
+ <li><a href="/clients">Clients</a></li>
+ <li><a href="/tickets">Tickets</a></li>
+ <li><a href="/inventory">Inventory</a></li>
+
+ <!- not logged in>
+ <!--
+ <li class="right"><a href="/login">Sign in</a></li>
+ !-->
+
+ <!- logged in>
+ <li class="right">
+ <img class="pfp" src="/static/usericon.png">
+ <a>John Doe</a>
+ </li>
+
+ </ul>
</header>

View File

@ -11,6 +11,7 @@ pub async fn start() -> anyhow::Result<()> {
let addr = "0.0.0.0:3000"; let addr = "0.0.0.0:3000";
let app = Router::new() let app = Router::new()
.route("/", get(pages::home::get_page)) .route("/", get(pages::home::get_page))
.route("/login", get(pages::login::get_page))
.nest_service( .nest_service(
"/static", "/static",
ServiceBuilder::new() ServiceBuilder::new()

48
src/web/pages/login.rs Normal file
View File

@ -0,0 +1,48 @@
use askama::Template;
use axum::response::{Html, IntoResponse, Response};
use axum::{
routing::{get, post},
http::StatusCode,
Json, Router,
};
use crate::web::pages::{BaseTemplate, BaseTemplateCtx};
#[derive(Template)]
#[template(path = "login.html")]
pub struct HomeTemplate {
pub ctx: BaseTemplateCtx,
}
impl BaseTemplate for HomeTemplate {
fn ctx(&self) -> &BaseTemplateCtx {
&self.ctx
}
fn ctx_mut(&mut self) -> &mut BaseTemplateCtx {
&mut self.ctx
}
}
#[axum::debug_handler]
pub async fn get_page() -> Response {
fn inner() -> anyhow::Result<(StatusCode, String)> {
let mut template = HomeTemplate {
ctx: Default::default()
};
template.set_title("Login");
Ok((StatusCode::OK, template.render()?))
}
match inner() {
Ok((status, s)) => (status, Html(s)).into_response(),
Err(e) => {
let s = crate::web::pages::error::get_error_page(e.to_string()).await;
(StatusCode::INTERNAL_SERVER_ERROR, Html(s)).into_response()
}
}
}

View File

@ -1,6 +1,8 @@
pub mod home; pub mod home;
pub mod login;
pub mod error; pub mod error;

70
static/index.css Normal file
View File

@ -0,0 +1,70 @@
body,html {
font-family: sans-serif;
margin: 0;
padding: 0;
}
.nav {
display: flex;
list-style: none;
gap: 10px;
background: gray;
padding: 8px;
margin: 0px;
}
.right {
margin-left: auto;
}
.pfp {
width: 25px;
height: 25px;
object-fit: cover;
vertical-align: middle;
margin-right: 5px;
}
.nav a {
font-weight: bold;
text-decoration: none;
color: white;
background: gray;
vertical-align: middle;
}
.nav a:hover {
color: #FFFF88
}
footer {
position: absolute;
bottom: 0px;
width: 100%;
padding: 5px;
padding-left: 10px;
background: gray;
color: white;
}
.login-form {
background: gray;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 10px;
}
.login-form input[type="email"],input[type="password"] {
width: 95%;
}
.login-form input[type="submit"] {
width: 98%;
margin-top: 10px;
}

BIN
static/usericon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -3,6 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>{{ self.title() }}</title> <title>{{ self.title() }}</title>
<link rel="stylesheet" href="/static/index.css">
</head> </head>
<body> <body>
{% include "header.html" %} {% include "header.html" %}

View File

@ -1,6 +1,25 @@
<header> <header>
<ul class="nav">
<li><a href="/">Home</a></li>
<li><a href="/personnel">Personnel</a></li>
<li><a href="/clients">Clients</a></li>
<li><a href="/tickets">Tickets</a></li>
<li><a href="/inventory">Inventory</a></li>
<!- not logged in>
<!--
<li class="right"><a href="/login">Sign in</a></li>
!-->
<!- logged in>
<li class="right">
<img class="pfp" src="/static/usericon.png">
<a>John Doe</a>
</li>
</ul>
</header> </header>

14
templates/login.html Normal file
View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block content %}
<form class="login-form" action_url="/login" method="POST">
<label for="email">Email: </label>
<input name="email" type="email"></input>
<br>
<label for="password">Password: </label>
<input name="password" type="password"></input>
<input type="submit">
</form>
{% endblock %}