2024-07-03 11:11:14 +02:00

180 lines
7.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Item</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<style>
.price-box {
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 15px;
display: flex;
align-items: center;
background-color: #f8f9fa;
}
.price-box img {
width: 30px;
margin-right: 10px;
}
.price-box span {
font-size: 1.2em;
font-weight: bold;
}
.price-box small {
display: block;
font-size: 0.8em;
color: #888;
}
.card {
margin-bottom: 15px;
}
.card-header img {
width: 45px;
margin-right: 10px;
}
.parts-tree {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.parts-tree > li {
margin-right: 10px;
}
.part-item {
display: flex;
flex-direction: row;
align-items: center;
background-color: #f8f9fa;
padding: 5px;
border-radius: 5px;
margin-bottom: 5px;
}
.part-item img {
width: 30px;
margin-right: 5px;
}
</style>
</head>
<body>
<div class="container">
<h1>Edit {{ item.details.name }}</h1>
<div class="form-group">
<label for="main-item">Main Item</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<img src="{{ item.details.image512pxLink }}" alt="{{ item.details.name }}" style="width: 50px;">
</span>
</div>
<input type="text" class="form-control" id="main-item" name="main-item" value="{{ item.details.name }}" readonly>
</div>
</div>
<div class="price-box">
<img src="{{ ruble_image.image512pxLink }}" alt="RUB">
<div>
<span>{{ item.details.basePrice }} RUB</span>
<small>Base Price (for reference)</small>
</div>
</div>
{% if item.parts|length > 0 %}
<h2>
<button class="btn btn-outline-primary-custom" type="button" data-toggle="collapse" data-target="#parts-{{ item._id }}" aria-expanded="false" aria-controls="parts-{{ item._id }}">
Parts
</button>
</h2>
<div id="parts-{{ item._id }}" class="collapse">
<ul class="parts-tree">
{% include 'parts.html' with context %}
</ul>
</div>
{% endif %}
<h2>Barter Scheme</h2>
<form method="POST" id="barter-form">
<div id="barter-scheme">
{% for scheme in item.barter_scheme %}
<div class="form-group barter-item" data-index="{{ loop.index0 }}">
{% for req in scheme %}
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<img src="{{ req.details.image512pxLink }}" alt="{{ req.details.name }}" style="width: 30px;" id="barter_img_{{ loop.index0 }}">
</span>
</div>
<input type="text" class="form-control barter_tpl" id="barter_tpl_{{ loop.index0 }}" name="barter_tpl" value="{{ req._tpl }}" required>
<input type="number" class="form-control barter_count" id="barter_count_{{ loop.index0 }}" name="barter_count" value="{{ req.count }}" required>
<div class="input-group-append">
<button class="btn btn-danger remove-barter-item" type="button">Remove</button>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
</div>
<button type="button" class="btn btn-primary" id="add-barter-item">Add Barter Item</button>
<button type="submit" class="btn btn-success">Save</button>
<a href="{{ url_for('index') }}" class="btn btn-secondary">Cancel</a>
</form>
{% if item.quest_requirement %}
<h2>Quest Requirement</h2>
<p>
<strong>Quest Requirement:</strong>
{{ item.quest_requirement.quest }}
{% if item.quest_requirement.type == 'success' %}
<i class="fas fa-check-circle text-success"></i>
{% elif item.quest_requirement.type == 'fail' %}
<i class="fas fa-times-circle text-danger"></i>
{% elif item.quest_requirement.type == 'started' %}
<i class="fas fa-question-circle text-primary"></i>
{% endif %}
</p>
{% endif %}
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
let barterIndex = {{ item.barter_scheme|length }};
$('#add-barter-item').click(function() {
const newItem = `
<div class="form-group barter-item" data-index="${barterIndex}">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<img src="" alt="Barter Item" style="width: 30px;" id="barter_img_${barterIndex}">
</span>
</div>
<input type="text" class="form-control barter_tpl" id="barter_tpl_${barterIndex}" name="barter_tpl" required>
<input type="number" class="form-control barter_count" id="barter_count_${barterIndex}" name="barter_count" required>
<div class="input-group-append">
<button class="btn btn-danger remove-barter-item" type="button">Remove</button>
</div>
</div>`;
$('#barter-scheme').append(newItem);
barterIndex++;
});
$(document).on('click', '.remove-barter-item', function() {
if ($('.barter-item').length > 1) {
$(this).closest('.barter-item').remove();
} else {
alert("You must have at least one barter item.");
}
});
$(document).on('change', '.barter_tpl', function() {
const index = $(this).closest('.barter-item').data('index');
const tpl = $(this).val();
$.get(`/item_image/${tpl}`, function(data) {
$(`#barter_img_${index}`).attr('src', data.image512pxLink);
});
});
});
</script>
</body>
</html>