198 lines
9.1 KiB
HTML
198 lines
9.1 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>
|
|
<!-- 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>
|