Files
quality_app-v2/app/templates/modules/settings/general.html
Quality App Developer e1f3302c6b Implement boxes management module with auto-numbered box creation
- Add boxes_crates database table with BIGINT IDs and 8-digit auto-numbered box_numbers
- Implement boxes CRUD operations (add, edit, update, delete, delete_multiple)
- Create boxes route handlers with POST actions for all operations
- Add boxes.html template with 3-panel layout matching warehouse locations module
- Implement barcode generation and printing with JsBarcode and QZ Tray integration
- Add browser print fallback for when QZ Tray is not available
- Simplify create box form to single button with auto-generation
- Fix JavaScript null reference errors with proper element validation
- Convert tuple data to dictionaries for Jinja2 template compatibility
- Register boxes blueprint in Flask app initialization
2026-01-26 22:08:31 +02:00

84 lines
4.3 KiB
HTML

{% extends "base.html" %}
{% block title %}General Settings{% endblock %}
{% block content %}
<div class="container-fluid py-5">
<div class="row mb-4">
<div class="col-12">
<h1 class="mb-2">
<i class="fas fa-sliders-h"></i> General Settings
</h1>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="list-group">
<a href="{{ url_for('settings.general_settings') }}" class="list-group-item list-group-item-action active">
<i class="fas fa-sliders-h"></i> General Settings
</a>
<a href="{{ url_for('settings.user_management') }}" class="list-group-item list-group-item-action">
<i class="fas fa-users"></i> User Management
</a>
<a href="{{ url_for('settings.app_keys') }}" class="list-group-item list-group-item-action">
<i class="fas fa-key"></i> App Keys
</a>
<a href="{{ url_for('settings.database_management') }}" class="list-group-item list-group-item-action">
<i class="fas fa-cogs"></i> Database Management
</a>
<a href="{{ url_for('settings.database_settings') }}" class="list-group-item list-group-item-action">
<i class="fas fa-database"></i> Database Info
</a>
<a href="{{ url_for('settings.logs_explorer') }}" class="list-group-item list-group-item-action">
<i class="fas fa-file-alt"></i> Logs Explorer
</a>
</div>
</div>
<div class="col-md-9">
<div class="card shadow-sm">
<div class="card-header bg-light">
<h5 class="mb-0">General Application Settings</h5>
</div>
<div class="card-body">
{% if error %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<i class="fas fa-exclamation-circle"></i> {{ error }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
{% if success %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
<i class="fas fa-check-circle"></i> {{ success }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endif %}
<form method="POST" action="{{ url_for('settings.general_settings') }}">
<div class="mb-3">
<label for="app_name" class="form-label">Application Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="app_name" name="app_name" value="{{ app_name }}" required>
<small class="form-text text-muted">This name appears in the header and browser title</small>
</div>
<div class="mb-3">
<label for="app_version" class="form-label">Version</label>
<input type="text" class="form-control" id="app_version" name="app_version" value="{{ app_version }}" disabled>
<small class="form-text text-muted">Version cannot be changed</small>
</div>
<div class="mb-3">
<label for="session_timeout" class="form-label">Session Timeout (minutes)</label>
<input type="number" class="form-control" id="session_timeout" name="session_timeout" value="{{ session_timeout }}" min="1" required>
<small class="form-text text-muted">Time before user session expires</small>
</div>
<button type="submit" class="btn btn-primary">
<i class="fas fa-save"></i> Save Settings
</button>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}