Add Schedule button to archive cards (Issue #208)

- Add "Schedule" button next to "Reprint" on archive cards for quick
  access to print queue functionality
- Button respects queue:create permission for restricted users
- Previously only accessible via context menu (right-click)

Closes #208
This commit is contained in:
maziggy
2026-02-01 09:28:02 +01:00
parent 9bd12df6bf
commit 63c707b1df
4 changed files with 39 additions and 24 deletions
+5 -1
View File
@@ -5,6 +5,10 @@ All notable changes to Bambuddy will be documented in this file.
## [0.1.7b] - Not released
### Enhancements
- **Schedule Button on Archive Cards** (Issue #208):
- Added "Schedule" button next to "Reprint" on archive cards for quick access to print scheduling
- Previously only available in the context menu (right-click)
- Respects `queue:create` permission for users with restricted access
- **Streaming Overlay Improvements** (Issue #164):
- **Configurable FPS**: Add `?fps=30` parameter to control camera frame rate (1-30, default 15)
- **Status-only mode**: Add `?camera=false` parameter to hide camera and show only status overlay on black background
@@ -15,7 +19,7 @@ All notable changes to Bambuddy will be documented in this file.
- Portable backups: works across different installations and data directories
- Faster backup/restore: direct file copy instead of JSON export/import
- Progress indicator and navigation blocking during backup/restore operations
- Legacy JSON-based backup/restore still available via `/backup-legacy` and `/restore-legacy` endpoints
- Removed ~2000 lines of legacy JSON-based backup/restore code
### Fixes
- **Library thumbnails missing after restore** - Fixed library files using absolute paths that break after restore on different systems:
+11
View File
@@ -908,6 +908,17 @@ function ArchiveCard({
<Printer className="w-3 h-3 flex-shrink-0" />
<span className="hidden sm:inline">Reprint</span>
</Button>
<Button
variant="secondary"
size="sm"
className="flex-1 min-w-0"
onClick={() => setShowSchedule(true)}
disabled={!hasPermission('queue:create')}
title={!hasPermission('queue:create') ? 'You do not have permission to add to queue' : 'Schedule Print'}
>
<Calendar className="w-3 h-3 flex-shrink-0" />
<span className="hidden sm:inline">Schedule</span>
</Button>
<Button
variant="secondary"
size="sm"
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -23,7 +23,7 @@
<!-- Splash screens for iOS -->
<link rel="apple-touch-startup-image" href="/img/android-chrome-512x512.png" />
<script type="module" crossorigin src="/assets/index-B9KMl1Nj.js"></script>
<script type="module" crossorigin src="/assets/index-B5u_lQK-.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BMToB_z5.css">
</head>
<body>