Samed Yüksel 96c90de41b feat(inventory): scan-to-location QR assignment (#1606) 2 дней назад
..
ArchivesCostEstimate.test.tsx 3c78bf24bf fix(archives): failed print card says its cost is one full print (issue #3318) 6 дней назад
ArchivesHighlightParam.test.tsx 048e5164d6 fix(queue): "View in File Manager" opens the file (issue #3336) 6 дней назад
ArchivesMaterialFilter.test.tsx 30b7513bf0 Split multi-material types on the comma alone in statistics and the material filter (#3262) 3 недель назад
ArchivesNo3MFBanner.test.tsx a4cfbd4212 fix(archives): come back for a 3MF whose transfer ran out of time (issue #3063) 1 месяц назад
ArchivesPage.test.tsx a3ab88c9b2 fix(archive): Edit Archive sets finished outcomes only, cancelled and aborted apart 1 неделя назад
ArchivesPagePrintLogColumns.test.tsx 6c8a821bca Add a wear cost per printing hour to printers (#694) 3 недель назад
ArchivesPageWiring.test.tsx d9d58de1db Reprint the plate the archive printed, not plate 1 (#3395) 2 дней назад
ArchivesUnconfirmedFilter.test.tsx 1c316e2ad6 Answer the outcome prompt by reacting to the Telegram message (#3129) 1 месяц назад
CamWallPage.test.tsx 0054875d18 Let the S/M/L/XL selector size the Cam Wall tiles (#2735) 3 недель назад
CameraPage.test.tsx 36d0113d21 feat(camera): printer cameras from any page (issue #2737) 5 дней назад
CameraTokensPage.test.tsx 258db95483 fix(overlay): authenticate the OBS overlay with a token when login is enabled (#2613) 3 месяцев назад
CloudLoginCaptcha.test.tsx 604fa44593 Explain Bambu Cloud's CAPTCHA challenge instead of repeating it (#2790) 2 месяцев назад
ConnectAuthorizePage.test.tsx d56b48c499 feat(auth): connected apps - sign in to external applications with Bambuddy 1 месяц назад
ExternalLinkPageNavigate.test.tsx 181db5b307 Let a sidebar app open a Bambuddy page in place 3 недель назад
ExternalLinkPageTheme.test.tsx 181db5b307 Let a sidebar app open a Bambuddy page in place 3 недель назад
FileManagerExternalFolder.test.tsx 67f91d94de v0.2.2.2 (#830) 7 месяцев назад
FileManagerFileDetails.test.tsx 12dddada0a File Manager: external link, notes and photos on library files (#3128) 1 месяц назад
FileManagerFolderDelete.test.tsx 6735e45563 Give library folders an owner and let admins share them (#3201) 3 недель назад
FileManagerHighlight3336.test.tsx 048e5164d6 fix(queue): "View in File Manager" opens the file (issue #3336) 6 дней назад
FileManagerPage.test.tsx 3797d244c8 fix(files): the File Manager's header buttons wrap on a phone (#3295) 1 неделя назад
FileManagerPreviewOpening.test.tsx 413633d811 File Manager: a third view mode, Miller columns (#3190) 3 недель назад
FileManagerSlicedNamedAsSource.test.tsx 2e405afcd1 Decide whether a 3MF is sliced by looking inside it (issue #2993) 2 месяцев назад
FinanceDeletedUser.test.tsx b2ed37b6c3 fix(finance): a print whose user was deleted while it ran is billed to its cost centre 2 недель назад
FinancePageCurrency.test.tsx 4a85e033c0 fix(finance): show the currency the install is configured for (issue #3123) 1 месяц назад
FinancePageWiring.test.tsx 3f0feddd75 fix(finance): a personal cost center's budget can be saved (issue #3358) 6 дней назад
GCodeViewerPage.test.tsx 94b5d2e95b Let the File Manager fill the window on desktop (issue #3215) 4 недель назад
GroupEditPage.test.tsx fe07fbd07b Give groups whole locations and a printer access page (issue #1727) 3 недель назад
InventoryPageArchivedConsumed.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageColorSort.test.tsx dbf674561c Sort the inventory by colour, not colour name (#2729) 2 месяцев назад
InventoryPageCopyButton.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageDeepLink.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageFullColumn.test.tsx 51610b9f19 fix(ui): one toast and one close when saving an edited queue item; a failed Unassign on the printer card shows its error; the OBS overlay applies live status updates; bulk upload shows each same-named file its own result; queue timeline and history rows show the queued plate's thumbnail; remove the Inventory "Full" column that nothing fills 1 неделя назад
InventoryPageGroupRestore.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageGrouping.test.ts 84f320b859 Remember when each spool was last dried (#2863) 3 недель назад
InventoryPageHeaderLayout.test.tsx 96c90de41b feat(inventory): scan-to-location QR assignment (#1606) 2 дней назад
InventoryPageLastDried.test.tsx 84f320b859 Remember when each spool was last dried (#2863) 3 недель назад
InventoryPageLocationSensorRequests.test.tsx 54af3146a3 [Feature]: Bind Home Assistant sensors to storage locations (dryboxes/bins) (#2827) 2 месяцев назад
InventoryPageLowStock.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageMaterialNumberFilter.test.tsx 71d4b2f70d Material number as a first-class spool field (#2994) 1 месяц назад
InventoryPagePrintLabels.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageSearch.test.ts b30a283184 Feature/spoolman inventory UI (#1241) 5 месяцев назад
InventoryPageSpoolmanLocation.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
InventoryPageWiring.test.tsx 847baa347d test(frontend): wiring tests for the 37 high-risk gaps (printer card and bulk actions, settings and 2FA, inventory/Spoolman/SpoolBuddy, queue, archives, finance, K-profiles, smart plugs, maintenance); fix: the archive purge uses the previewed age, a transaction can be moved to no cost center, and deleting a printer refreshes its spool assignments 1 неделя назад
LibraryTrashPage.test.tsx e0e597271e ● feat(#1008): library trash bin, admin bulk purge, auto-purge setting 6 месяцев назад
LocationSensorReadingsCrossPageCache.test.tsx 54af3146a3 [Feature]: Bind Home Assistant sensors to storage locations (dryboxes/bins) (#2827) 2 месяцев назад
LoginPage.test.tsx 93a88b21e0 fix(auth): render Remember Me on SSO sign in page when local login is disabled (#2784) (#3117) 1 месяц назад
MaintenancePage.test.tsx 9712d27c64 fix(maintenance): say that deleting a custom type applies to every printer 2 недель назад
MaintenancePageWiring.test.tsx 847baa347d test(frontend): wiring tests for the 37 high-risk gaps (printer card and bulk actions, settings and 2FA, inventory/Spoolman/SpoolBuddy, queue, archives, finance, K-profiles, smart plugs, maintenance); fix: the archive purge uses the previewed age, a transaction can be moved to no cost center, and deleting a printer refreshes its spool assignments 1 неделя назад
MakerworldPage.test.tsx af7908ca1e Improve local slicer selection with code review suggestions, adding fail toast and handle (legacy) read permissions 2 месяцев назад
ModelSourcesPage.test.tsx 3480d39434 Browse a Manyfold library and import its files (issue #1471) 3 недель назад
NotificationsPage.test.tsx 70857af393 feat(auth): SSO autologin + disable local username/password login (#1589) 4 месяцев назад
PipelineRunsPage.test.tsx b23cb69a66 fix(permissions): self-heal Administrators to ALL_PERMISSIONS on upgrade + Pipelines runs dashboard polish 4 месяцев назад
PrinterLocationsPage.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPage.test.tsx 2e18689226 fix(printers): X2D aux fans named the right way round (issue #3373) 4 дней назад
PrintersPageAiDetection.test.tsx 06e5114a03 Do not report a printer as Safe when nothing is checking it (issue #2952) 2 месяцев назад
PrintersPageAmsLoadUnload.test.tsx 5a9415e2e1 fix(ams): Load and Unload work on an AMS-HT 1 неделя назад
PrintersPageAmsSlotActionsWiring.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageAmsSwitchInlet.test.tsx 7a42e0a7e5 Show which Filament Track Switch inlet each AMS feeds 2 месяцев назад
PrintersPageBackupGroups.test.ts 9d74f9281b feat(deficit): backup-aware filament deficit check, colour-strict (#1762) 4 месяцев назад
PrintersPageBatchedReads.test.tsx 9c61a52727 test: close the coroutines that mocked create_task, wait_for, run_coroutine_threadsafe, spawn_background_task and AsyncMock sessions left unawaited (reported as unraisable warnings in unrelated later tests); the Spoolman recovery tests archive under their own tmp_path instead of the shared archive/; the bulk mocks' HA sensor and queue single routes are mocked, so the batched-reads test no longer falls back to per-printer requests, and it waits for the batches to settle before checking 1 неделя назад
PrintersPageBedJogDirection.test.tsx 2c7c97c130 fix(jog): send the nozzle-bed gap the API promises on every model (issue #1334) 1 месяц назад
PrintersPageBucketing.test.ts 033eff1254 Show Bambu's own HMS descriptions and the real alert level (issue #2728) 1 месяц назад
PrintersPageBulkActionsWiring.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageCamWallTileSize.test.tsx 0054875d18 Let the S/M/L/XL selector size the Cam Wall tiles (#2735) 3 недель назад
PrintersPageCameraSplitButton.test.tsx 36d0113d21 feat(camera): printer cameras from any page (issue #2737) 5 дней назад
PrintersPageCardScale.test.tsx 4d458a5202 Grow the H2C nozzle rack with the printer card size 2 месяцев назад
PrintersPageCardVerdict.test.tsx 7d46baea65 Show the last print on printer cards and lazy-load file thumbnails 3 недель назад
PrintersPageColorName3279.test.tsx eca23be325 fix(colors): a colour set on the printer's screen is named after its Bambu colour (#3279) 1 неделя назад
PrintersPageCompactMetrics.test.tsx 4e46ba071f feat(printers): show remaining time, ETA and layers on the size-S card (#2674) 3 месяцев назад
PrintersPageDeletePowerWiring.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageDiscoveryCustomSubnet.test.tsx eb418a5b37 feat(discovery): scan a custom subnet for cross-router printers (#1564) 4 месяцев назад
PrintersPageDropOnBusy.test.tsx 19212d066d fix(print): Print Anyway per printer, variant plate, nozzle per plate, sliced .3mf drop 1 неделя назад
PrintersPageDropPermission.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageDrying.test.ts 8d6f701f1d feat(drying): continue drying while printing + gate rotate-spool when tray loaded (issue #1816) 4 месяцев назад
PrintersPageDryingBadge.test.tsx fce7ea0200 Stop the drying badge inventing a temperature on a uniform AMS (#2759) 2 месяцев назад
PrintersPageDryingFeedback.test.tsx f45cc599f3 fix(kprofiles): an AMS change leaves the K-profile to the lost-selection check; command answers no longer change the nozzle; unconfirmed writes say so and edits read back; skip refusals are logged; stop-drying toast says sent 1 неделя назад
PrintersPageDryingStartModes.test.tsx cacaaf4dae fix(printers): live status carries nozzles, firmware, developer mode and the print's AMS mapping; run-out hint narrows by nozzle; AMS-HT is its unit id; rotate check sees loaded slots 1 неделя назад
PrintersPageExternalSpoolToggle.test.tsx 3db8ac9da7 Let the external spool be hidden from the printer card (#1782) 2 месяцев назад
PrintersPageFillLevel.test.ts 7b39026429 fix: resolve PFUS preset IDs causing slicer slot resets + fill level for new spools 8 месяцев назад
PrintersPageFilterPersistence.test.tsx 8fe93169ca Remember the Printers page's status and location filters (#2833) 2 месяцев назад
PrintersPageFirmwareModalWiring.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageFormatPrintName.test.ts 1682b6956f fix(dispatch): clean up transient library upload from Direct-Print flow (#730) 6 месяцев назад
PrintersPageKProfileDisplay.test.tsx 8d1daab23a Show K-profile value on AMS slot card (#2854) 2 месяцев назад
PrintersPageMachineControlsWiring.test.tsx 86875af4ad fix(printers): H2D Pro and X1E get their chamber heater (issue #3335) 6 дней назад
PrintersPageNextPause.test.tsx 8901ff849a feat(printers): time to the next slicer pause, and a heads-up (issue #2984) 5 дней назад
PrintersPagePlateCheckWiring.test.tsx 16633dd27a fix(printers): Escape closes the Build Plate Check result as soon as it appears (the listener that knows the result is attached in the same render) 1 неделя назад
PrintersPagePrintControlWiring.test.tsx 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 неделя назад
PrintersPageSlotPresetStale.test.tsx 7363d5fd33 Show the spool that is in the AMS slot, not the one that was 2 месяцев назад
PrintersPageSpeed.test.tsx a1cd86880c test(printers): repair speed + AMS load/unload tests after #1661 refactor 4 месяцев назад
ProfilesPageWiring.test.tsx 847baa347d test(frontend): wiring tests for the 37 high-risk gaps (printer card and bulk actions, settings and 2FA, inventory/Spoolman/SpoolBuddy, queue, archives, finance, K-profiles, smart plugs, maintenance); fix: the archive purge uses the previewed age, a transaction can be moved to no cost center, and deleting a printer refreshes its spool assignments 1 неделя назад
ProjectDetailPage.test.tsx 048e5164d6 fix(queue): "View in File Manager" opens the file (issue #3336) 6 дней назад
ProjectsPage.test.tsx a70047c75d Let sub-project groups be collapsed on the Projects page (issue #2991) 2 месяцев назад
QueuePage.test.tsx d9d58de1db Reprint the plate the archive printed, not plate 1 (#3395) 2 дней назад
QueuePageWiring.test.tsx 9f2d15f70f Merge perf/farm-fanout: batched printer-card reads (/api/v1/bulk) and server-paged queue history 1 неделя назад
SettingsPage.test.tsx 473cdf3f0e Security hardening (maziggy/bambuddy-security #41) 1 неделя назад
SettingsPagePauseWarning.test.tsx 8901ff849a feat(printers): time to the next slicer pause, and a heads-up (issue #2984) 5 дней назад
SettingsPageSecrets.test.tsx 487b48c5af Security hardening (maziggy/bambuddy-security #16) 2 недель назад
SettingsPageUnsavedFields.test.tsx a10d5430de fix(settings): remove the "Save thumbnails" and "Notification Language" controls, which nothing read (the API keeps both fields); a SQLite-to-PostgreSQL restore fills empty required timestamps in UTC instead of the host's local time 1 неделя назад
SettingsPageUsbCameraWiring.test.tsx 2443cea174 feat: USB cameras are picked from a list of detected devices (refresh, not-found marking, manual fallback, Docker hint; device listing off the event loop, /dev/video0-99 only); fix: timelapse editor saves as a background job with progress and cancel (ffmpeg stopped on cancel, no overwrite of a timelapse removed or replaced meanwhile, ffprobe/thumbnail timeouts), and the music volume is applied 1 неделя назад
SettingsPageUsersWiring.test.tsx 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 1 неделя назад
SetupPageWiring.test.tsx 847baa347d test(frontend): wiring tests for the 37 high-risk gaps (printer card and bulk actions, settings and 2FA, inventory/Spoolman/SpoolBuddy, queue, archives, finance, K-profiles, smart plugs, maintenance); fix: the archive purge uses the previewed age, a transaction can be moved to no cost center, and deleting a printer refreshes its spool assignments 1 неделя назад
SkipObjectsButtonGate.test.tsx cfecfa360e Restore the skip-objects list after a restart mid-print 2 месяцев назад
SpoolBuddyAmsPage.test.tsx 23d04c8645 fix(inventory): archived or deleted spools release their AMS slots, safely in both modes 1 неделя назад
SpoolBuddyAmsPageLogic.test.ts 8b36a129b7 Fix SpoolBuddy AMS page fill levels, ext-R active bug, and layout 8 месяцев назад
SpoolBuddyAmsPageWiring.test.tsx 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 1 неделя назад
SpoolBuddyDashboard.test.tsx 4c15689267 fix(settings): pages work for users without the settings permission 1 неделя назад
SpoolBuddyInventorySearch.test.ts e4a9ef4550 fix(spoolbuddy): show the colour name the rest of Bambuddy shows (issue #3090) 1 месяц назад
SpoolBuddySettingsPage.test.tsx ac976e0003 fix(archives): kill-switch stops archive as cancelled; offline queue stop stores a reason key; SpoolBuddy config save offers a daemon restart 1 неделя назад
SpoolBuddyWriteTagPage.test.tsx ba93abdb9d fix(spoolbuddy): writing a sticker no longer replaces a Bambu spool's AMS link in Spoolman (refused with the reason on Spoolman before 0.27, and such spools are not listed as untagged); the colour-name warning only appears when the name is really missing; an update stops when installing dependencies times out instead of restarting the daemon and reporting success 1 неделя назад
SpoolBuddyWriteTagPageWiring.test.tsx 517439f850 fix(inventory): Bambu PLA Silk+ spools get their colour name 4 дней назад
StatsPage.test.tsx 6c8a821bca Add a wear cost per printing hour to printers (#694) 3 недель назад
StatsPageMaterialNumbers.test.tsx 71d4b2f70d Material number as a first-class spool field (#2994) 1 месяц назад
StatsPageSuppliers.test.tsx 053cfa73ad Suppliers as a managed list with per-spool assignments (#2996) 1 месяц назад
StatsPageUserFilter1894.test.tsx 7c117dc6bc Let API clients resolve user ids to names (#1894) 2 месяцев назад
StreamOverlayPage.test.tsx 8da96b492c fix(camera): a camera turned sideways fits the camera window (issue #3362) 5 дней назад
SystemInfoPage.test.tsx 8a6faab0d2 Security hardening (maziggy/bambuddy-security #34) 2 недель назад
TouchReachableActions.test.tsx 413633d811 File Manager: a third view mode, Miller columns (#3190) 3 недель назад