95 lines
3.8 KiB
HTML
95 lines
3.8 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
<div class="card p-4 shadow-sm">
|
|
<h2 class="mb-4">{{ _('Add Game') }}</h2>
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
<div class="mb-3">
|
|
{% for category, message in messages %}
|
|
<div class="alert alert-{{ 'danger' if category == 'error' else category }}">
|
|
{{ message|safe }}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% endwith %}
|
|
<form method="POST" aria-label="{{ _('Add Game') }}">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
|
<div class="row g-3">
|
|
<!-- Name -->
|
|
<div class="col-md-6">
|
|
<label for="game_name" class="form-label">{{ _('Name') }} <span class="text-danger">*</span></label>
|
|
<input type="text" id="game_name" name="name" class="form-control" value="{{ request.form.name or '' }}" required>
|
|
</div>
|
|
|
|
<!-- Steam Key -->
|
|
<div class="col-md-6">
|
|
<label for="game_key" class="form-label">{{ _('Game Key') }} <span class="text-danger">*</span></label>
|
|
<input type="text" id="game_key" name="steam_key" class="form-control" value="{{ request.form.steam_key or '' }}" required>
|
|
</div>
|
|
|
|
<!-- Platform Dropdown -->
|
|
<div class="col-md-6">
|
|
<label for="game_platform" class="form-label">{{ _('Platform') }} <span class="text-danger">*</span></label>
|
|
<select id="game_platform" name="platform" class="form-select" required>
|
|
{% for value, label in platforms %}
|
|
<option value="{{ value }}" {% if request.form.platform == value %}selected{% endif %}>
|
|
{{ _(label) }}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Status Dropdown -->
|
|
<div class="col-md-6">
|
|
<label for="game_status" class="form-label">{{ _('Status') }} <span class="text-danger">*</span></label>
|
|
<select id="game_status" name="status" class="form-select" required>
|
|
{% for value, label in statuses %}
|
|
<option value="{{ value }}" {% if request.form.status == value %}selected{% endif %}>
|
|
{{ _(label) }}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Steam AppID -->
|
|
<div class="col-md-6">
|
|
<label for="game_appid" class="form-label">{{ _('Steam AppID (optional)') }}</label>
|
|
<input type="text" id="game_appid" name="steam_appid" class="form-control" value="{{ request.form.steam_appid or '' }}">
|
|
</div>
|
|
|
|
<!-- Redeem Date -->
|
|
<div class="col-md-6">
|
|
<label for="game_redeem_date" class="form-label">{{ _('Redeem by') }}</label>
|
|
<input type="date" id="game_redeem_date" name="redeem_date" class="form-control" value="{{ request.form.redeem_date or '' }}">
|
|
</div>
|
|
|
|
<!-- Recipient -->
|
|
<div class="col-12">
|
|
<label for="game_recipient" class="form-label">{{ _('Recipient') }}</label>
|
|
<input type="text" id="game_recipient" name="recipient" class="form-control" value="{{ request.form.recipient or '' }}">
|
|
</div>
|
|
|
|
<!-- Shop URL -->
|
|
<div class="col-12">
|
|
<label for="game_url" class="form-label">{{ _('Shop URL') }}</label>
|
|
<input type="url" id="game_url" name="url" class="form-control" value="{{ request.form.url or '' }}">
|
|
</div>
|
|
|
|
<!-- Notes -->
|
|
<div class="col-12">
|
|
<label for="game_notes" class="form-label">{{ _('Notes') }}</label>
|
|
<textarea id="game_notes" name="notes" class="form-control" rows="3">{{ request.form.notes or '' }}</textarea>
|
|
</div>
|
|
|
|
<!-- Buttons -->
|
|
<div class="col-12">
|
|
<button type="submit" class="btn btn-primary">{{ _('Save') }}</button>
|
|
<a href="{{ url_for('index') }}" class="btn btn-outline-secondary ms-2">{{ _('Cancel') }}</a>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
{% endblock %}
|
|
|