Add UserActionLog and enhance registry features
Build and Push Docker Image / build-and-push (push) Successful in 1m59s

- Introduced `UserActionLog` entity to track user actions.
- Replaced `CanBeSecondHand` with `PreferSecondHand` property.
- Added `ShowBankAccountName` to `RegistrySettings`.
- Updated models and migrations for new properties.
- Enhanced `RegistryService` with user action logging and item details.
- Redesigned `Home.razor` with a grid layout and modal for registries.
- Added `RegistryActionLog.razor` for admin action logs.
- Improved `RegistryPublic.razor` with purchaser/contributor details.
- Replaced sidebar with `TopBar.razor` for responsive navigation.
- Updated CSS for new components and improved responsiveness.
This commit is contained in:
Arne Moerman
2026-05-17 20:57:54 +02:00
parent 6b593828d7
commit 2bf0295508
32 changed files with 3811 additions and 435 deletions
@@ -1,3 +1,160 @@
section {
margin-bottom: 2rem;
}
h1 {
margin-bottom: 1.5rem;
}
h2 {
margin-bottom: 1rem;
font-size: 1.25rem;
}
h3 {
font-size: 1rem;
font-weight: 600;
margin-bottom: 0.75rem;
}
/* Tabs styling */
.nav-tabs {
border-bottom: 2px solid #dee2e6;
}
.nav-tabs .nav-link {
border: none;
border-bottom: 3px solid transparent;
color: #6c757d;
margin-bottom: -2px;
transition: all 0.2s;
display: flex;
align-items: center;
gap: 0.5rem;
}
.nav-tabs .nav-link:hover {
border-bottom-color: #0d6efd;
color: #0d6efd;
}
.nav-tabs .nav-link.active {
border-bottom-color: #0d6efd;
color: #0d6efd;
background-color: transparent;
}
.tab-content {
animation: fadeIn 0.2s;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.tab-pane {
display: none;
}
.tab-pane.show.active {
display: block;
}
/* Editor styling */
.editor-wrapper {
border: 1px solid #dee2e6;
border-radius: 0.375rem;
overflow: hidden;
background-color: #fff;
}
.editor-wrapper ::deep .ql-container {
font-family: inherit;
font-size: 1rem;
}
.editor-wrapper ::deep .ql-editor {
min-height: 200px;
padding: 15px;
line-height: 1.5;
}
.editor-wrapper ::deep .ql-toolbar {
background-color: #f8f9fa;
border-bottom: 1px solid #dee2e6;
}
.editor-wrapper ::deep .ql-toolbar.ql-snow {
padding: 10px;
}
.editor-wrapper ::deep .ql-snow .ql-picker-label {
color: #495057;
}
.editor-wrapper ::deep .ql-snow .ql-stroke {
stroke: #495057;
}
.editor-wrapper ::deep .ql-snow .ql-fill {
fill: #495057;
}
.editor-wrapper ::deep .ql-snow .ql-picker.ql-expanded .ql-picker-item.selected {
color: #0d6efd;
}
/* Table styling */
.table {
margin-top: 1rem;
}
.table thead th {
background-color: #f8f9fa;
border-top: 2px solid #dee2e6;
font-weight: 600;
}
.table tbody tr:hover {
background-color: #f8f9fa;
}
/* Form styling */
.form-check {
margin-top: 0.75rem;
}
.form-check-input {
margin-right: 0.5rem;
}
.text-muted {
color: #6c757d;
}
/* Alert styling */
.alert {
margin-bottom: 1.5rem;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.nav-tabs .nav-link {
font-size: 0.9rem;
padding: 0.5rem 0.75rem;
}
.table {
font-size: 0.9rem;
}
.btn-sm {
padding: 0.25rem 0.5rem;
font-size: 0.8rem;
}
}