diff --git a/REFACTORING_PLAN.md b/REFACTORING_PLAN.md index 4d9fca4..364aac7 100644 --- a/REFACTORING_PLAN.md +++ b/REFACTORING_PLAN.md @@ -11,7 +11,7 @@ - Obszar Czas pracy: zmigrowany i ustabilizowany ## Etap 1: Tasks / Czas pracy (ZROBIONE) -- Dodano `autoload/Domain/Tasks/class.WorkTimeRepository.php`. +- Dodano `autoload/Domain/Tasks/WorkTimeRepository.php`. - `factory\Tasks::work_time_clients()` deleguje teraz do repozytorium Domain. - Usunięto limit 3 miesięcy: repozytorium zwraca wszystkie istotne miesiące. - Uwzględniono statusy zadań: @@ -23,7 +23,7 @@ - `tests/run.php` ## Etap 2: Standaryzacja kontrolerów (W TOKU) -- [x] Dodano `autoload/Controllers/class.TasksController.php`. +- [x] Dodano `autoload/Controllers/TasksController.php`. - [x] Przeniesiono akcję czasu pracy do nowego kontrolera: `TasksController::workTime()`. - [x] Zostawiono adapter kompatybilności w `autoload/controls/class.Tasks.php`. - [x] Oznaczono starą metodę `controls\Tasks::work_time()` jako deprecated. @@ -63,3 +63,9 @@ - Bez zmian typu big-bang. - Jeden ograniczony obszar funkcjonalny na commit. - Najpierw kompatybilność, adaptery usuwać dopiero po pełnej migracji. +## Ostatnie wdrozenia (2026-02-06) +- Popup zadania: dodano zarzadzanie zalacznikami (dodawanie, edycja nazwy, usuwanie). +- Upload zalacznikow: obsluga wielu plikow w jednym wyslaniu (attachments[] + multiple). +- UX uploadu: dodano loader na przycisku ("Wysylanie..."), blokade wielokliku i odblokowanie po zakonczeniu requestu. +- Poprawiono krytyczny blad JS: dodano brakujaca funkcje is_task_popup_works_time_open(). +- Ujednolicono napisy UI dla popupu i listy zadan (usuniecie "krzaczkow" przez encje HTML tam, gdzie to potrzebne). \ No newline at end of file diff --git a/layout/style.scss b/layout/style.scss index bca5ef4..fc68760 100644 --- a/layout/style.scss +++ b/layout/style.scss @@ -939,6 +939,127 @@ body>.top { } } + .attachments { + margin-top: 10px; + border: 1px solid #e6e9ed; + border-radius: 8px; + padding: 12px; + background: #f9fbfd; + + h3 { + margin-bottom: 10px; + font-size: 16px; + font-weight: 600; + } + + .attachments_upload { + display: flex; + gap: 10px; + align-items: center; + margin-bottom: 10px; + + .attachment_file_input { + flex: 1; + margin-bottom: 0; + border-radius: 6px; + background: #fff; + } + + .attachment-upload-btn { + white-space: nowrap; + border-radius: 6px; + min-width: 150px; + + &.is-loading { + pointer-events: none; + opacity: 0.85; + + i { + margin-right: 6px; + } + } + } + } + + .attachments_list { + margin: 0; + padding: 0; + list-style: none; + display: grid; + gap: 8px; + max-height: 180px; + overflow-y: auto; + + li { + display: flex; + align-items: center; + gap: 8px; + background: #fff; + border: 1px solid #e4e8ee; + border-radius: 6px; + padding: 8px 10px; + + .attachment-link { + color: #1f3d72; + text-decoration: none; + font-weight: 600; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: calc(100% - 140px); + + &:hover { + text-decoration: underline; + } + } + + small { + color: #6b7280; + margin-right: auto; + } + + .attachment-rename, + .attachment-delete { + display: inline-flex; + align-items: center; + justify-content: center; + height: 28px; + width: 28px; + border-radius: 4px; + text-decoration: none; + transition: all 0.2s ease; + } + + .attachment-rename { + border: 1px solid #d8e2f6; + color: $cBlue; + background: #f4f8ff; + + &:hover { + background: #e7f0ff; + } + } + + .attachment-delete { + border: 1px solid #f1d3d1; + color: $cRed; + background: #fff6f6; + + &:hover { + background: #ffeaea; + } + } + } + + .attachments-empty { + color: #6b7280; + border-style: dashed; + justify-content: center; + font-size: 13px; + } + } + } + .description { padding: 15px; border-radius: 0.25rem; @@ -1579,4 +1700,4 @@ body>.top { .billing-details-wrap { background: #f8fbff; } -} \ No newline at end of file +} diff --git a/templates/tasks/main_view.php b/templates/tasks/main_view.php index 4b2ac18..b4c8d2d 100644 --- a/templates/tasks/main_view.php +++ b/templates/tasks/main_view.php @@ -10,7 +10,7 @@ zapisz aktualizuj - domyślny + domyślny