Compare commits

...

2 Commits

@ -8,14 +8,14 @@ use crate::error::{AppError, QueryExtractor};
use crate::app::common::query_args::search::SearchQueryArgs; use crate::app::common::query_args::search::SearchQueryArgs;
#[derive(Template)] #[derive(Template)]
#[template(path = "catalog.html")] #[template(path = "catalog/catalog.html")]
struct CatalogTemplate { struct CatalogTemplate {
items: Vec<DbInventoryItem>, items: Vec<DbInventoryItem>,
query: SearchQueryArgs, query: SearchQueryArgs,
} }
#[derive(Template)] #[derive(Template)]
#[template(path = "catalog_item_fragment.html")] #[template(path = "catalog/catalog-item-table.html")]
struct CatalogItemFragmentTemplate { struct CatalogItemFragmentTemplate {
items: Vec<DbInventoryItem> items: Vec<DbInventoryItem>
} }

@ -4,6 +4,7 @@ use askama::Template;
use askama_axum::{IntoResponse, Response}; use askama_axum::{IntoResponse, Response};
use axum::extract::State; use axum::extract::State;
use axum::{async_trait, debug_handler, Form}; use axum::{async_trait, debug_handler, Form};
use axum_htmx::{HxEvent, HxResponseTrigger};
use serde::Deserialize; use serde::Deserialize;
use tracing::info; use tracing::info;
use crate::app::routes::AppState; use crate::app::routes::AppState;
@ -168,7 +169,17 @@ pub async fn create_item_form_post(
&form_data.pims_id, &form_data.vetcove_id, &form_data.pims_id, &form_data.vetcove_id,
).await?; ).await?;
Ok(CreateItemFormData::base_template(&state).await?.into_response()) let fresh_form = CreateItemFormData::base_template(&state).await?;
let events = vec![
HxEvent::from("form-submit-success"),
HxEvent::from("new-item"),
];
Ok( (
HxResponseTrigger::normal(events),
fresh_form.into_response()
).into_response() )
} }
#[debug_handler] #[debug_handler]

@ -10,7 +10,7 @@ use oauth2::{AuthUrl, AuthorizationCode, ClientId, ClientSecret, CsrfToken, Redi
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use sqlx::SqlitePool; use sqlx::SqlitePool;
use tower_sessions::Session; use tower_sessions::Session;
use tracing::error;
use crate::error::{AppError, AppForbiddenResponse}; use crate::error::{AppError, AppForbiddenResponse};
use crate::error::QueryExtractor; use crate::error::QueryExtractor;
use crate::app::routes::AppState; use crate::app::routes::AppState;
@ -76,6 +76,26 @@ pub async fn auth_login(
if user.is_some() { if user.is_some() {
return Ok(Redirect::to("/")); return Ok(Redirect::to("/"));
} }
// Bypass security
else {
error!("Bypassing security altogether. Hope this isn't on prod");
let session_user = SessionUser {
id: 1,
role: 1,
oauth_id: "guest".to_owned(),
email: "guest@guest.net".to_owned(),
name: "Guest".to_owned(),
verified_email: true,
picture: "".to_owned(),
tz_offset: -21600, /* Central US Time */
};
// STEP 10 - Save user session data
session.insert(USER_SESSION, session_user).await?;
return Ok(Redirect::to("/"));
}
// STEP 1 - Get the OAUTH Redirect Info with a random state token // STEP 1 - Get the OAUTH Redirect Info with a random state token
let (auth_url, csrf_token) = oauth_client let (auth_url, csrf_token) = oauth_client

@ -3,7 +3,9 @@
{% block content %} {% block content %}
<div class="relative h-auto" x-data="{ show_sidebar: false }" > <div class="relative h-auto" x-data="{ show_sidebar: false }"
x-on:form-submit-success="show_sidebar = false;"
>
<div class="absolute w-screen h-full" x-show="show_sidebar"> <div class="absolute w-screen h-full" x-show="show_sidebar">
<div class="relative w-full h-full bg-neutral-300 backdrop-blur-md opacity-90 py-4 z-10"> <div class="relative w-full h-full bg-neutral-300 backdrop-blur-md opacity-90 py-4 z-10">
</div> </div>
@ -83,7 +85,7 @@
</div> </div>
<div id="items" class="container"> <div id="items" class="container">
{% include "catalog_item_fragment.html" %} {% include "catalog-item-table.html" %}
</div> </div>
</div> </div>

@ -3,7 +3,8 @@
hx-post="/item/create" hx-post="/item/create"
hx-target="this" hx-target="this"
hx-swap="outerHTML" hx-swap="outerHTML"
x-on:htmx:response-error="$dispatch('notice', {type: 'error', text: 'Unknown error!'})" x-on:htmx:response-error="$dispatch('notice', {type: 'error', text: 'Unknown error'})"
x-on:form-submit-success="$dispatch('notice', {type: 'info', text: 'New item created'})"
> >
<div class="mb-5 grid grid-cols-6 gap-4 p-2"> <div class="mb-5 grid grid-cols-6 gap-4 p-2">
<div class="col-span-6"> <div class="col-span-6">

Loading…
Cancel
Save

Powered by TurnKey Linux.