Commit Graph

365 Commits

Author SHA1 Message Date
02da984b6e feat: Add batch operations, dashboard redesign, hierarchical locations
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
## Batch Operations (#13)
- Add POST /spool/bulk/archive, /bulk/delete, /bulk/update endpoints
- Add row selection with checkboxes to spool list
- Add floating BatchActionBar with archive/unarchive/delete/move actions
- Add confirmation modals for all batch operations

## Dashboard Redesign (#12)
- Install recharts for pie charts
- Add AlertCards (low stock, pending jobs, needs weighing)
- Add MaterialDistributionChart (pie chart by material)
- Add QuickStats row (total spools, filaments, vendors, weight)
- Refactor home page layout with new components

## Hierarchical Locations (#9)
- Add Location model with self-referential parent relationship
- Add migration for location table and spool.location_id FK
- Add location database operations (CRUD, tree, full path)
- Add location API endpoints (list, tree, CRUD)
- Add LocationTreeSelect component with nested tree display
- Add LocationCreateModal for inline location creation
- Keep legacy location string field for backward compatibility

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:40:01 -06:00
9bfc322f32 feat: Add color column with filter to spool list
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Add optional color column to spool list showing filament color swatches
with multi-select filtering capability.

Backend:
- GET /api/v1/color endpoint to list distinct filament colors
- filament.color_hex query param on spool list for filtering

Frontend:
- ColorFilterColumn component renders color swatches
- useSpoolmanColors() hook fetches available colors
- Filter dropdown shows swatches with hex codes
- Column hidden by default (enable via column selector)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:11:18 -06:00
f63f70ce86 Make auth toggle a settings option instead of env var
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Issue Manager / issue-manager (push) Has been cancelled
- Auth enabled state now stored in database setting (auth_enabled)
- Add POST /auth/toggle endpoint to enable/disable auth from UI
- Add auth toggle section to Settings > General page
- Enabling auth without users prompts to create first admin
- Disabling auth requires admin password confirmation
- Auth setting cached in memory and loaded on startup

Removes need for SPOOLMAN_AUTH_ENABLED env var

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 01:01:14 -06:00
3613e7739a feat(auth): Add optional authentication system (#22)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Backend:
- Add User model with username, hashed password, role, is_active
- Add passlib[bcrypt] and python-jose[cryptography] dependencies
- Create auth.py with JWT utilities, password hashing, role checking
- Add /auth endpoints: status, setup, login, me, users CRUD
- Add role-based permission system (viewer/operator/editor/admin)
- Environment: SPOOLMAN_AUTH_ENABLED, SPOOLMAN_AUTH_SECRET_KEY
- Migration for user table

Frontend:
- Add AuthProvider context with login/logout/setup
- Add LoginPage component with setup mode for first user
- Add ProtectedRoute wrapper for auth-required pages
- Add axios interceptor to attach JWT token to requests
- Add User Management tab in Settings (admin only)
- Add translation keys for auth UI

When SPOOLMAN_AUTH_ENABLED=true:
- Users must login to access the app
- First visit shows setup page to create admin account
- Role-based access control for future endpoint protection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 00:15:36 -06:00
267fadfc54 feat(color): add hex code display and click-to-copy functionality
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Enhances SpoolIcon component with optional showHex prop:
- Displays hex color code next to swatch when enabled
- Click to copy hex code to clipboard
- Shows tooltip with copy hint
- Supports both single and multi-color filaments

Enabled on detail pages:
- Filament show page
- Spool show page

Added translation keys for copy feedback messages.

Closes #33

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 23:33:21 -06:00
48bd516c0f feat(filament): add spool count and total remaining weight columns
Adds computed spool statistics to filament list:
- spool_count: Number of non-archived spools of this filament
- total_remaining_weight: Sum of remaining weight across all spools

Backend changes:
- Modified database/filament.py find() to compute stats via subquery
- Added fields to Filament pydantic model in api/v1/models.py
- Updated filament API endpoint to include stats in response

Frontend changes:
- Added fields to IFilament interface
- Added columns to filament list table
- Added translation keys

Closes #15

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 23:31:47 -06:00
0a741c9712 feat(home): redesign dashboard with spool list and low stock alerts
Replaces stat card layout with functional dashboard:
- Prominent spool count with "Add Spool" button
- Paginated list of all spools sorted by last used
- Low stock alert badge (< 100g threshold)
- Color swatch, name, material, and remaining weight columns
- Clickable rows navigate to spool detail
- Secondary stats for filaments and vendors

Closes #12

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 23:27:14 -06:00
9365e399be Add Print Queue UI and slicer post-processing script
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
- Create Print Queue page showing pending/completed/cancelled jobs
- Add needs_weighing filter to spool API for flagged spools
- Add IPrintJob interface and needs_weighing to ISpool model
- Add slicer_post_process.py for Elegoo/Orca Slicer integration
- Add translations for print queue feature
- Bump version to 0.23C.3

The workflow:
1. Slicer post-processing script creates pending print job
2. After print, user confirms (deducts filament) or cancels (flags for weighing)
3. Spools needing weigh-in are shown in Print Queue UI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 21:40:22 -06:00
5c29936231 Add prev/next navigation buttons to edit pages
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
- Filament, spool, and vendor edit pages now have Prev/Next buttons
- Navigate between items without returning to the list
- Buttons are disabled at the beginning/end of the list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 00:10:04 -06:00
46cc0656d6 Fix temp range display in show page and label templates
- Show page now displays temp ranges (min-max) instead of single values
- Fixed label template rendering to handle multiple tags in conditional blocks
- Added "not_set" translation key

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 23:59:54 -06:00
021d287865 feat: Add clickable dashboard cards and theme color selector
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
- Dashboard cards now link to list page when clicked (except + button)
- Added theme color selector in Settings (orange, teal, red, green, blue)
- Theme persists in localStorage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 23:43:19 -06:00
bf775f3745 feat: Add QR code size setting for fixed-size QR codes
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 23:30:11 -06:00
613176dd42 feat: Add database import/export functionality (Issue #10)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Backend:
- New /api/v1/backup/export endpoint - exports all data as single JSON
- New /api/v1/backup/import endpoint - imports JSON with merge or replace
- Handles vendors, filaments, spools, adjustments, settings
- Remaps IDs to maintain relationships during import

Frontend:
- Added Backup & Restore section to Settings page
- Download Backup button for export
- Import with merge or replace options
- Warning confirmation for replace mode

This enables migrating between PostgreSQL and SQLite databases.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 22:47:09 -06:00
671d3bd3d1 feat: Add 3dfilamentprofiles.com integration (Issue #7)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
- Backend: Added ExternalSource enum, Filament3DFP model, and transform function
- Backend: Updated _sync() to fetch from both SpoolmanDB and 3dfilamentprofiles
- Frontend: Added source tabs to FilamentImportModal (All/SpoolmanDB/3DFP)
- Frontend: Updated ExternalFilament interface with source and temp range fields
- Frontend: Updated filament import handler to use temp range fields

Also includes:
- Dev mode styling (teal theme, DEV badge and banner)
- Translation keys for source filtering

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 21:03:25 -06:00
d804329b77 feat: Add spool adjustment history tracking (#6)
Track history of all spool weight/length adjustments with timestamps and comments:

Backend:
- Add SpoolAdjustment database model with spool_id, timestamp, type, value, comment
- Add Alembic migration for spool_adjustment table
- Add SpoolAdjustment Pydantic model for API responses
- Update use_weight, use_length, and measure functions to record adjustments
- Add GET /api/v1/spool/{id}/adjustments endpoint for history retrieval
- Add optional comment parameter to use/measure endpoints

Frontend:
- Add ISpoolAdjustment interface to spool model
- Add collapsible adjustment history table to spool show page
- Display timestamp, type (weight/length), amount, and comment
- Add translation keys for history table

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:18:56 -06:00
3451996a8f feat: Add temperature ranges for extruder and bed temps (#5)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Store extruder and bed temperatures as min/max ranges instead of
single values for more accurate filament specifications.

Backend changes:
- Add 4 new columns: settings_extruder_temp_min/max, settings_bed_temp_min/max
- Keep old columns for backward compatibility (marked deprecated)
- Alembic migration copies existing values to both min and max
- Update Pydantic models and API endpoints

Frontend changes:
- Filament model updated with new fields
- Create form uses min/max input pairs with Space.Compact
- Import from external DB populates both min and max with same value
- Label template updated to show ranges: "ET: 190-220 °C"
- Template help includes new tags

Labels now display temperature ranges like "190-220°C" which is more
useful for printing than a single recommended value.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:05:02 -06:00
d17a66b0ec feat: Add configurable QR code sizing options (#3)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Addresses https://github.com/Donkie/Spoolman/issues/671

Changes:
- Remove fixed 50% max-width constraint on QR code container
- Add qrCodePadding setting (0-10mm, default 2mm) for white space
- Add qrCodeMaxWidth setting (0-100%, 0 = auto/fit-content)
- Add UI controls (slider + input) for both new settings
- Settings are disabled when QR code is turned off

The previous behavior forced QR codes to 50% width when label text
was shown, wasting label space on small labels. New default uses
fit-content for optimal sizing while allowing manual control.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:57:52 -06:00
478806dcc8 feat: Add smart density defaults based on material type (#2)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
Auto-fill density when entering material type in filament forms:
- Add materialDefaults.ts with standard densities for common materials
  (PLA, ABS, PETG, TPU, PC, etc.)
- Material field now uses AutoComplete with suggestions
- Density auto-fills on material select or blur (fuzzy matching)
- New filaments default to 1.75mm diameter and 1.24 g/cm³ (PLA)
- Applied to both full filament create page and quick create modal

Reduces tedious data entry for common materials while still allowing
custom values for specialty filaments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:54:30 -06:00
ea5b06493c feat: Add inline creation modals for filament and vendor (#1)
Some checks failed
CI / style (push) Has been cancelled
CI / build-client (push) Has been cancelled
CI / build-amd64 (push) Has been cancelled
CI / build-tester (push) Has been cancelled
CI / test (cockroachdb) (push) Has been cancelled
CI / test (mariadb) (push) Has been cancelled
CI / test (postgres) (push) Has been cancelled
CI / test (sqlite) (push) Has been cancelled
CI / build-arm64 (push) Has been cancelled
CI / build-armv7 (push) Has been cancelled
CI / publish-images (push) Has been cancelled
CI / publish-release (push) Has been cancelled
When creating a spool, users can now create a new filament directly
from the filament dropdown without leaving the page. Similarly, when
creating a filament, users can create a new vendor inline.

New components:
- VendorCreateModal: Simple modal for quick vendor creation
- FilamentCreateModal: Modal with essential fields + nested vendor creation

Changes:
- Added dropdownRender to filament Select in spool create page
- Added dropdownRender to vendor Select in filament create page
- Added translation keys for success messages and placeholders
- Pre-fills sensible defaults (diameter 1.75mm, density 1.24 g/cm³)

Closes #1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 19:33:25 -06:00
Donkie
848f5dcc94 Cleaned up favicons, PWA icon fixes 2026-01-06 00:28:31 +01:00
Donkie
edda1e965a some fixes 2026-01-06 00:18:20 +01:00
JakobGue
185c8b07e0 remove show spool count option from settings 2026-01-04 00:54:19 +01:00
JakobGue
572a5eea27 Merge branch 'master' into spool_count 2026-01-02 16:02:00 +01:00
Vegard Fladby
6f05ce81c7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 80.2% (231 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 78.1% (225 of 288 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 75.3% (217 of 288 strings)

Co-authored-by: Vegard Fladby <vegard@fladby.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/nb_NO/
Translation: Spoolman/Web Client
2026-01-01 23:00:59 +01:00
vjurka
a533f2556f Translated using Weblate (Lithuanian)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: vjurka <v@jurka.lt>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/lt/
Translation: Spoolman/Web Client
2026-01-01 23:00:58 +01:00
Bazzofski
c88d443782 Translated using Weblate (French)
Currently translated at 98.9% (285 of 288 strings)

Co-authored-by: Bazzofski <bastien.cocheril@laposte.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/fr/
Translation: Spoolman/Web Client
2026-01-01 23:00:57 +01:00
Archit Jain
3cd1ff6ac4 Translated using Weblate (Hindi (Latin script))
Currently translated at 3.8% (11 of 288 strings)

Added translation using Weblate (Hindi (Latin script))

Co-authored-by: Archit Jain <archit.jain38@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/hi_Latn/
Translation: Spoolman/Web Client
2026-01-01 23:00:56 +01:00
Giadej
a41b1df76e Translated using Weblate (Italian)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Giadej <Giadej@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/it/
Translation: Spoolman/Web Client
2026-01-01 23:00:56 +01:00
Marek Dvorný
bed385b796 Translated using Weblate (Czech)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Marek Dvorný <lupickatec@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/cs/
Translation: Spoolman/Web Client
2026-01-01 23:00:55 +01:00
Dr_Perry_Coke
2508210469 Translated using Weblate (Russian)
Currently translated at 99.6% (287 of 288 strings)

Co-authored-by: Dr_Perry_Coke <dr.perrycoke@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ru/
Translation: Spoolman/Web Client
2026-01-01 23:00:54 +01:00
Cristian
fae3a92f5e Translated using Weblate (Romanian)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Cristian <opreacristiann@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ro/
Translation: Spoolman/Web Client
2026-01-01 23:00:54 +01:00
Yücelen Gül
37fcad4a0a Translated using Weblate (Turkish)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (288 of 288 strings)

Added translation using Weblate (Turkish)

Co-authored-by: Yücelen Gül <yuceleng@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/tr/
Translation: Spoolman/Web Client
2026-01-01 23:00:53 +01:00
Jose
4d62eb24c1 Translated using Weblate (Spanish)
Currently translated at 100.0% (288 of 288 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Jose <jcueria@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/es/
Translation: Spoolman/Web Client
2026-01-01 23:00:52 +01:00
dimquea
05f0d7fd20 Translated using Weblate (Russian)
Currently translated at 99.6% (287 of 288 strings)

Co-authored-by: dimquea <dimquea@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ru/
Translation: Spoolman/Web Client
2026-01-01 23:00:51 +01:00
KnightArch
3666c10117 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2026-01-01 23:00:51 +01:00
rupefelo
902fbbaec2 Translated using Weblate (Portuguese)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: rupefelo <rupefelo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt/
Translation: Spoolman/Web Client
2026-01-01 23:00:50 +01:00
Justus Kagerer
b10c1e1aef Translated using Weblate (German)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Justus Kagerer <justus-kagerer@web.de>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2026-01-01 23:00:50 +01:00
derSchreiber
a6c4e8c49b Translated using Weblate (German)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: derSchreiber <jan@machen-wir.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2026-01-01 23:00:49 +01:00
JakobGue
d3181382ae add spool count in locations with a setting to enable / disable the display 2025-06-21 19:26:39 +02:00
தமிழ்நேரம்
e1923b8083 Translated using Weblate (Tamil)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ta/
Translation: Spoolman/Web Client
2025-06-16 00:02:04 +00:00
KnightArch
3e6750765f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: KnightArch <knightarch@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt_BR/
Translation: Spoolman/Web Client
2025-06-16 00:02:03 +00:00
Julia 🌸🏳️‍⚧️
13d320ab1d Translated using Weblate (Polish)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Julia 🌸🏳️‍⚧️ <daviteusz0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pl/
Translation: Spoolman/Web Client
2025-06-16 00:02:02 +00:00
Miloslav Kos
d11bc1a6bb Translated using Weblate (Czech)
Currently translated at 100.0% (288 of 288 strings)

Co-authored-by: Miloslav Kos <kos.m@post.cz>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/cs/
Translation: Spoolman/Web Client
2025-06-16 00:02:01 +00:00
Donkie
d27a967737 Fixed pt-BR json file 2025-06-10 22:08:45 +02:00
Donkie
8712ad4840 Fixed en lang json 2025-06-10 22:04:06 +02:00
Tobias Maschek
ff473429c7 Translated using Weblate (German)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: Tobias Maschek <web@jemx.net>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2025-06-08 11:47:26 +02:00
Donkie
8bfb263858 Merge branch 'master' into master 2025-05-31 19:52:01 +02:00
rupefelo
fb355945cb Translated using Weblate (Portuguese)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: rupefelo <rupefelo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/pt/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
Ivo Grossen
5c8e8b9d11 Translated using Weblate (German)
Currently translated at 99.6% (285 of 286 strings)

Co-authored-by: Ivo Grossen <ivo.grossen95@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/de/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00
தமிழ்நேரம்
d975020260 Translated using Weblate (Tamil)
Currently translated at 100.0% (286 of 286 strings)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/spoolman/web-client/ta/
Translation: Spoolman/Web Client
2025-05-31 19:44:51 +02:00