Migrate to bootstrap css

demo-mode
Wes Holland 12 months ago
parent c3d3eecf4d
commit ba0a6c88fb

@ -1,28 +1,30 @@
<form hx-post="/item/{{item_id}}/adjustment/new-stock" hx-target="this" hx-swap="outerHTML" > <form hx-post="/item/{{item_id}}/adjustment/new-stock" hx-target="this" hx-swap="outerHTML" >
<div> <div class="mb-3">
<label for="amount">Amount</label> <label for="amount" class="form-label">Amount</label>
<input id="amount" name="amount" type="number" required <input id="amount" class="form-control" name="amount" type="number" required
{% if !amount_error.is_empty() -%} {% if !amount_error.is_empty() -%}
aria-invalid="true" aria-invalid="true"
aria-describedby="invalid-amount" aria-describedby="invalid-amount"
{% endif -%} {% endif -%}
/> />
{% if !amount_error.is_empty() -%} {% if !amount_error.is_empty() -%}
<small id="invalid-amount">{{ amount_error }}</small> <small id="invalid-amount" class="invalid-feedback">{{ amount_error }}</small>
{% endif -%} {% endif -%}
</div> </div>
<div> <div class="mb-3">
<label for="price">Price</label> <label for="price" class="form-label">Price</label>
<input id="price" name="price" required <input id="price" class="form-control" name="price" required
{% if !price_error.is_empty() -%} {% if !price_error.is_empty() -%}
aria-invalid="true" aria-invalid="true"
aria-describedby="invalid-price" aria-describedby="invalid-price"
{% endif -%} {% endif -%}
/> />
{% if !price_error.is_empty() -%} {% if !price_error.is_empty() -%}
<small id="invalid-price">{{ price_error }}</small> <small id="invalid-price" class="invalid-feedback">{{ price_error }}</small>
{% endif -%} {% endif -%}
</div> </div>
<button class="btn primary">Add Stock</button> <div class="mb-3">
<button class="btn btn-primary">Add Stock</button>
</div>
</form> </form>

@ -1,16 +1,18 @@
<form hx-post="/item/{{item_id}}/adjustment/sale" hx-target="this" hx-swap="outerHTML" > <form hx-post="/item/{{item_id}}/adjustment/sale" hx-target="this" hx-swap="outerHTML" >
<div> <div class="mb-3">
<label for="amount">Amount</label> <label for="amount" class="form-label">Amount</label>
<input id="amount" name="amount" type="number" step="0.01" required <input id="amount" class="form-control" name="amount" type="number" step="0.01" required
{% if !amount_error.is_empty() -%} {% if !amount_error.is_empty() -%}
aria-invalid="true" aria-invalid="true"
aria-describedby="invalid-amount" aria-describedby="invalid-amount"
{% endif -%} {% endif -%}
/> />
{% if !amount_error.is_empty() -%} {% if !amount_error.is_empty() -%}
<small id="invalid-amount">{{ amount_error }}</small> <small id="invalid-amount" class="invalid-feedback">{{ amount_error }}</small>
{% endif -%} {% endif -%}
</div> </div>
<button class="btn primary">Record Sale</button> <div class="mb-3">
<button class="btn btn-primary">Record Sale</button>
</div>
</form> </form>

@ -1,5 +1,5 @@
<table hx-get="/item/{{item_id}}/adjustments" hx-trigger="new-adjustment from:body" hx-swap="outerHTML"> <table class="table" hx-get="/item/{{item_id}}/adjustments" hx-trigger="new-adjustment from:body" hx-swap="outerHTML">
<thead> <thead>
<tr> <tr>
<th scope="col">Date</th> <th scope="col">Date</th>

@ -4,8 +4,10 @@
{% block content %} {% block content %}
<p> <div class="container">
<input id="search" type="search" name="q" <p class="container d-flex justify-content-center">
<input id="search" class="form-control"
type="search" name="q"
placeholder="Filter" placeholder="Filter"
aria-label="Search" aria-label="Search"
value='{{ query.search.as_deref().unwrap_or("") }}' value='{{ query.search.as_deref().unwrap_or("") }}'
@ -20,5 +22,6 @@
{% include "catalog_item_fragment.html" %} {% include "catalog_item_fragment.html" %}
</div> </div>
</div>
{% endblock %} {% endblock %}

@ -1,8 +1,11 @@
<div class="card">
<ul class="list-group list-group-flush">
{% for item in items %} {% for item in items %}
<article id="item-{{item.id}}-card"> <li id="item-{{item.id}}-entry" class="list-group-item">
<div class="grid"> <div class="row">
<div><a href="/item/{{item.id}}/" hx-push-url="true">{{ item.name }}</a></div> <div class="col-6"><a href="/item/{{item.id}}/" hx-push-url="true">{{ item.name }}</a></div>
</div> </div>
</article> </li>
{% endfor %} {% endfor %}
</ul>
</div>

@ -6,34 +6,33 @@
<h1>Audit Log (Coming soon)</h1> <h1>Audit Log (Coming soon)</h1>
<section class="container mb-4">
<form action="/history" hx-get="/history" hx-trigger="change" hx-target="#items"> <form action="/history" hx-get="/history" hx-trigger="change" hx-target="#items">
<div class="grid"> <div class="row">
<fieldset> <div class="col-sm-2">
<label for="start-date">Start Date</label> <label for="start-date" class="form-label">Start Date</label>
<input type="date" id="start-date" name="start-date" value="{{ start_date }}" /> <input type="date" id="start-date" name="start-date" value="{{ start_date }}" class="form-control" />
</fieldset> </div>
<fieldset> <div class="col-sm-2">
<label for="start-time">Start Time</label> <label for="start-time" class="form-label">Start Time</label>
<input type="time" id="start-time" name="start-time" value="{{ start_time }}"/> <input type="time" id="start-time" name="start-time" value="{{ start_time }}" class="form-control"/>
<small>Timezone {{ time_zone }}</small> <small class="form-text">Timezone {{ time_zone }}</small>
</fieldset> </div>
<div class="col-sm-2">
<label for="end-date" class="form-label">End Date</label>
<input type="date" id="end-date" name="end-date" value="{{ end_date }}" class="form-control"/>
</div>
<div class="col-sm-2">
<label for="end-time" class="form-label">End Time</label>
<input type="time" id="end-time" name="end-time" value="{{ end_time }}" class="form-control"/>
<small class="form-text">Timezone {{ time_zone }}</small>
</div> </div>
<div class="grid">
<fieldset>
<label for="end-date">End Date</label>
<input type="date" id="end-date" name="end-date" value="{{ end_date }}"/>
</fieldset>
<fieldset>
<label for="end-time">End Time</label>
<input type="time" id="end-time" name="end-time" value="{{ end_time }}"/>
<small>Timezone {{ time_zone }}</small>
</fieldset>
</div> </div>
</form> </form>
</section>
<div id="items" class="container"> <section id="items" class="container">
{% include "history_item_fragment.html" %} {% include "history_item_fragment.html" %}
</div> </section>
{% endblock %} {% endblock %}

@ -1,11 +1,13 @@
<div class="card">
<ul class="list-group list-group-flush">
{% for item in items %} {% for item in items %}
<article> <li class="list-group-item">
<div class="grid"> <div class="row">
<p>{{ item.create_date }}</p> <p class="col">{{ item.create_date }}</p>
<p>{{ item.item_name }}</p> <p class="col">{{ item.item_name }}</p>
<p>{{ item.user_name }}</p> <p class="col">{{ item.user_name }}</p>
<p> <p class="col">
{% match item.item_type %} {% match item.item_type %}
{% when HistoryItemEntry::PositiveAdjustment with (entry) %} {% when HistoryItemEntry::PositiveAdjustment with (entry) %}
{{ entry.amount }} @ {{ entry.unit_value }} {{ entry.amount }} @ {{ entry.unit_value }}
@ -14,5 +16,7 @@
{% endmatch %} {% endmatch %}
</p> </p>
</div> </div>
</article> </li>
{% endfor %} {% endfor %}
</ul>
</div>

@ -4,8 +4,11 @@
{% block content %} {% block content %}
<p> <div class="container">
<input id="search" type="search" name="q" <p class="container d-flex justify-content-center">
<input id="search"
class="form-control"
type="search" name="q"
placeholder="Search" placeholder="Search"
aria-label="Search" aria-label="Search"
value='{{ query.search.as_deref().unwrap_or("") }}' value='{{ query.search.as_deref().unwrap_or("") }}'
@ -19,5 +22,6 @@
<div id="items" class="container"> <div id="items" class="container">
{% include "home_search_item_fragment.html" %} {% include "home_search_item_fragment.html" %}
</div> </div>
</div>
{% endblock %} {% endblock %}

@ -1,9 +1,16 @@
{% if items.len() > 0 %}
<div class="card">
<ul class="list-group list-group-flush">
{% for item in items %} {% for item in items %}
<article id="item-{{item.id}}-card"> <li id="item-{{item.id}}-entry" class="list-group-item">
<div class="grid"> <div class="row">
<div><a href="/item/{{item.id}}/" hx-push-url="true">{{ item.name }}</a></div> <div class="col-6"><a href="/item/{{item.id}}/" hx-push-url="true">{{ item.name }}</a></div>
<div>Count: <span id="item-{{item.id}}-count" hx-get="/item/{{item.id}}/count" hx-trigger="load">0</span></div> <div class="col">Count: <span id="item-{{item.id}}-count" hx-get="/item/{{item.id}}/count" hx-trigger="load">0</span></div>
<div>Reorder Point: {{ item.reorder_point }}</div> <div class="col">Reorder Point: {{ item.reorder_point }}</div>
</div> </div>
</article> </li>
{% endfor %} {% endfor %}
</ul>
</div>
{% endif %}

@ -1,6 +1,6 @@
<div hx-get="/item/{{item_id}}/stats" hx-trigger="new-adjustment from:body" hx-swap="outerHTML" class="grid"> <div hx-get="/item/{{item_id}}/stats" hx-trigger="new-adjustment from:body" hx-swap="outerHTML" class="row">
<article>Amount in stock: {{amount}} {{unit_abbreviation}}</article> <div class="col">Amount in stock: {{amount}} {{unit_abbreviation}}</div>
<article>Total Value: {{value}}</article> <div class="col">Total Value: {{value}}</div>
</div> </div>

@ -4,8 +4,9 @@
{% block content %} {% block content %}
<h2>{{item.name}} {% if !item.active %} <mark>Inactive</mark> {% endif %}</h2> <h2>{{item.name}} {% if !item.active %}<span class="badge text-bg-danger">Inactive</span> {% endif %}</h2>
<section>
<section class="container">
<div hx-get="/item/{{item_id}}/stats" hx-trigger="load" hx-swap="outerHTML"> <div hx-get="/item/{{item_id}}/stats" hx-trigger="load" hx-swap="outerHTML">
</div> </div>
@ -15,24 +16,21 @@
</section> </section>
{% if item.active %} {% if item.active %}
<section> <section class="container-fluid">
<div class="grid"> <div class="row">
<article> <div class="col-sm-6">
<h3>Sale</h3>
<div hx-get="/item/{{item_id}}/adjustment/sale" hx-trigger="load" hx-swap="outerHTML"> <div hx-get="/item/{{item_id}}/adjustment/sale" hx-trigger="load" hx-swap="outerHTML">
</div> </div>
</article> </div>
<div class="col-sm-6">
<article>
<h3>New Stock</h3>
<div hx-get="/item/{{item_id}}/adjustment/new-stock" hx-trigger="load" hx-swap="outerHTML"> <div hx-get="/item/{{item_id}}/adjustment/new-stock" hx-trigger="load" hx-swap="outerHTML">
</div> </div>
</article> </div>
</div> </div>
</section> </section>
{% endif %} {% endif %}
<section> <section class="container">
<div hx-get="/item/{{item_id}}/adjustments" hx-trigger="load" hx-swap="outerHTML"> <div hx-get="/item/{{item_id}}/adjustments" hx-trigger="load" hx-swap="outerHTML">
</div> </div>
</section> </section>

@ -1,29 +1,41 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" data-bs-theme="dark">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark"> <meta name="color-scheme" content="light dark">
<link rel="stylesheet" href="/css/pico.min.css" > <!-- <link rel="stylesheet" href="/css/pico.min.css" > -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--TODO Vendor css-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="/js/htmx.min.js"></script> <script src="/js/htmx.min.js"></script>
<!--TODO Vendor this script --> <!--TODO Vendor this script -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
<title>{% block title %}Title{% endblock %}</title> <title>{% block title %}Title{% endblock %}</title>
</head> </head>
<body> <body>
<header class="container"> <header class="container mb-4">
<nav class="container"> <nav class="navbar navbar-expand-lg bg-body-tertiary">
<ul> <div class="container-fluid">
<li><h1><a class="secondary" href="/home">Inventory App</a></h1></li> <a class="navbar-brand" href="/home">Inventory App</a>
</ul> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<ul> <span class="navbar-toggler-icon"></span>
<li><a class="secondary" href="/overview">Overview</a></li> </button>
<li><a class="secondary" href="/catalog">Catalog</a></li> <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<li><a class="secondary" href="/upload">Upload</a></li> <ul class="navbar-nav ">
<li><a class="secondary" href="/reports">Reports</a></li> <li class="nav-item"><h1></h1></li>
<li><a class="secondary" href="/history">History</a></li> <li class="nav-item"><a class="nav-link" href="/overview">Overview</a></li>
<li><a class="contrast" href="/auth/logout">Logout</a></li> <li class="nav-item"><a class="nav-link" href="/catalog">Catalog</a></li>
<li class="nav-item"><a class="nav-link" href="/upload">Upload</a></li>
<li class="nav-item"><a class="nav-link" href="/reports">Reports</a></li>
<li class="nav-item"><a class="nav-link" href="/history">History</a></li>
</ul> </ul>
<div class="d-flex">
<a class="btn btn-primary" href="/auth/logout">Logout</a>
</div>
</div>
</div>
</nav> </nav>
</header> </header>
<main class="container"> <main class="container">
@ -31,5 +43,6 @@
</main> </main>
<footer class="container-fluid"> <footer class="container-fluid">
</footer> </footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</body> </body>
</html> </html>
Loading…
Cancel
Save

Powered by TurnKey Linux.