2025-08-18 17:18:43 -05:00

199 lines
9.2 KiB
HTML

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8" />
<title id="title"></title>
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}">
<!-- Material Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<!-- Material Symbols - Outlined Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet" />
<!-- Material Symbols - Rounded Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded" rel="stylesheet" />
<!-- Material Symbols - Sharp Set -->
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/uikit.min.css') }}"/>
<link rel="stylesheet" href="{{ url_for('static', filename='css/pantry.css') }}"/>
{% if session['user']['flags']['darkmode'] %}
<link id="dark-mode" rel="stylesheet" href="{{ url_for('static', filename='css/dark-mode.css') }}"/>
{% endif %}
<script src="{{ url_for('static', filename='js/uikit.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/uikit-icons.min.js') }}"></script>
</head>
<style>
:root {
--primary-color: {{ session['user']['flags']['styles']['primary_color']}};
}
</style>
{% if session['user']['flags']['darkmode'] %}
<body class="uk-light">
{% else %}
<body>
{% endif %}
<nav class="uk-navbar-container">
<div class="uk-container uk-container-expand">
<div class="uk-navbar uk-navbar-primary">
<!-- Application Navigation-->
<div class="uk-navbar-left">
<ul class="uk-navbar-nav">
<li>
<a href>Apps</a>
<div class="uk-navbar-dropdown" uk-drop="mode: click; multi:false">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li><a href="/planner">Planner</a></li>
<li><a href="/recipes">Recipes</a></li>
<li><a href="/shopping-lists">Shopping Lists</a></li>
<li class="uk-nav-header">Logistics</li>
<li><a href="/items">Items</a></li>
<li><a href="/items/transaction">Transaction</a></li>
<li><a href="/receipts">Receipts</a></li>
<li class="uk-nav-header">Points of Ease</li>
<li><a href="/poe/scanner">Transaction Scanner</a></li>
<li><a href="/poe/receipts">Receipts Scanner</a></li>
</ul>
</div>
</li>
</ul>
</div>
<!-- Breadcrumbs Navigation -->
<div class="uk-navbar-center uk-visible@m">
<ul class="uk-breadcrumb uk-margin-remove">
<li class="uk-disabled" style="cursor: pointer;"><span><strong>{{current_site}}</strong></span>
<div uk-dropdown="mode: hover">
<ul class="uk-nav uk-dropdown-nav">
<li class="uk-nav-header">Select Site</li>
<li class="uk-nav-divider"></li>
{% for site in sites %}
{% if site == current_site %}
<li><a class="uk-disabled" href="#">{{site}}</a></li>
{% else %}
<li><a onclick="changeSite('{{site}}')">{{site}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</li>
<li style="cursor: default; user-select: none;" class="uk-disabled"><span>Logistics</span></li>
<li class="uk-disabled"><span>Items</span></li>
<li class="uk-disabled"><span>Editing Item Link</span></li>
</ul>
</div>
<!-- Profile/Management Navigation-->
<div class="uk-navbar-right">
<ul class="uk-navbar-nav">
<li>
<a href="#">
<img src="{{session['user']['profile_pic_url']}}" alt="Profile Picture" class="profile-pic uk-visible@m" style="width: 40px; height: 40px; border-radius: 50%; margin-right: 5px;">
{{username}}
</a>
<div class="uk-navbar-dropdown" uk-drop="mode: click; multi:false">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li><a href="/profile">Profile</a></li>
<li><a onclick="toggleDarkMode()">Dark Mode</a></li>
<li><a href="/site-management">Site Management</a></li>
<li><a href="/administration">System Management</a></li>
<li><a href="/access/logout">Logout</a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="uk-container">
<div class="uk-section">
<div id="editLinkedItem" class="uk-grid-small" uk-grid>
<div class="uk-width-1-1">
<a href="{{ proto['referrer'] }}" class="uk-button uk-button-secondary" uk-icon="icon: arrow-left"></a>
</div>
<div class="uk-width-1-1">
<label class="uk-form-label" for="barcode">Barcode</label>
<input class="uk-input uk-disabled" id="barcode" type="text" name="barcode" value="" placeholder=" " maxlength="20"/>
</div>
<div class="uk-width-1-1">
<label class="uk-form-label" for="LinkID">LinkID</label>
<input class="uk-input uk-disabled" id="LinkID" type="text" name="LinkID" placeholder=" " value="" maxlength="20" />
</div>
<div class="uk-width-1-1">
<label class="uk-form-label" for="conversion">Conversion Factor</label>
<input class="uk-input" id="conversion" name="conversion" type="text" placeholder=" " value="" maxlength="20" />
</div>
<div class="uk-width-1-1">
<label class="uk-form-label" for="itemdata">Saved Data</label>
<textarea name="itemdata" id="itemdata" class="uk-textarea uk-disabled" rows="10" placeholder="Textarea" aria-label="Textarea"></textarea>
</div>
<div class="uk-width-1-1">
<hr class="uk-divider-icon">
</div>
<div class="uk-width-1-1">
<button onclick="postUpdate()" class="uk-button uk-button-default uk-align-right">Save</button>
</div>
</div>
</div>
</div>
</body>
<script>
const id = {{id|tojson}}
var linked_item;
document.addEventListener('DOMContentLoaded', async function() {
await fetchLinkedItem()
await populateForm()
});
async function fetchLinkedItem(){
const url = new URL('/item/getLinkedItem', window.location.origin);
url.searchParams.append('id', id);
const response = await fetch(url);
data = await response.json();
linked_item = data.linked_item;
console.log(linked_item)
}
async function postUpdate(){
console.log(linked_item)
const response = await fetch(`/item/updateItemLink`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
id: parseInt(id),
conv_factor: parseFloat(document.getElementById('conversion').value),
barcode: document.getElementById('barcode').value,
old_conv: linked_item['conv_factor']
}),
});
data = await response.json()
transaction_status = 'success'
if(data.error){
transaction_status = 'danger'
}
UIkit.notification({
message: data.message,
status: transaction_status,
pos: 'top-right',
timeout: 5000
});
}
async function populateForm(){
document.getElementById('title').innerHTML = `Linked Item - ${linked_item.barcode}`
document.getElementById('barcode').value = linked_item.barcode;
document.getElementById('LinkID').value = linked_item.link;
document.getElementById('conversion').value = linked_item.conv_factor;
document.getElementById('itemdata').value = JSON.stringify(linked_item.data);
}
</script>
</html>