Integrate Bootstrap 5 and Bootstrap Icons into UI
- Add Bootstrap 5.3.3 + Icons via CDN to base.html - Replace 315-line hand-written CSS with 35-line brand overrides - Update all 13 templates with Bootstrap utility classes: - Responsive navbar with mobile hamburger menu - Consistent card-based layout for forms and profile - Proper button alignment with d-flex and d-grid utilities - List groups for data display (profile info) - Professional alerts and icons - No backend changes, no build toolchain needed - Responsive design works on mobile/tablet/desktop Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
55
web/templates/profile_edit.html
Normal file
55
web/templates/profile_edit.html
Normal file
@@ -0,0 +1,55 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Редактировать профиль — EvoSync{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-sm-10 col-md-7 col-lg-6">
|
||||
<div class="card shadow-sm mt-4">
|
||||
<div class="card-header">
|
||||
<h1 class="h5 mb-0"><i class="bi bi-pencil me-2"></i>Редактировать профиль</h1>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
{% if success %}
|
||||
<div class="alert alert-success">{{ success }}</div>
|
||||
{% endif %}
|
||||
|
||||
{% if errors %}
|
||||
<div class="alert alert-danger">
|
||||
{% for error in errors %}
|
||||
<div>{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action="/profile/edit">
|
||||
<div class="row g-3 mb-3">
|
||||
<div class="col-sm-6">
|
||||
<label for="first_name" class="form-label">Имя</label>
|
||||
<input type="text" id="first_name" name="first_name" class="form-control"
|
||||
value="{{ form.first_name if form else user.first_name }}" required>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label for="last_name" class="form-label">Фамилия</label>
|
||||
<input type="text" id="last_name" name="last_name" class="form-control"
|
||||
value="{{ form.last_name if form else user.last_name }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted">Email</label>
|
||||
<input type="email" class="form-control" value="{{ user.email }}" disabled>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label for="phone" class="form-label">Телефон</label>
|
||||
<input type="tel" id="phone" name="phone" class="form-control"
|
||||
value="{{ form.phone if form else user.phone }}" required>
|
||||
</div>
|
||||
<div class="d-flex gap-2">
|
||||
<button type="submit" class="btn btn-primary">Сохранить</button>
|
||||
<a href="/profile" class="btn btn-outline-secondary">Отмена</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user