Browse Source

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

maziggy 3 months ago
parent
commit
63c707b1df
4 changed files with 17 additions and 2 deletions
  1. 5 1
      CHANGELOG.md
  2. 11 0
      frontend/src/pages/ArchivesPage.tsx
  3. 0 0
      static/assets/index-B5u_lQK-.js
  4. 1 1
      static/index.html

+ 5 - 1
CHANGELOG.md

@@ -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 - 0
frontend/src/pages/ArchivesPage.tsx

@@ -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 it is too large
+ 0 - 0
static/assets/index-B5u_lQK-.js


+ 1 - 1
static/index.html

@@ -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>

Some files were not shown because too many files changed in this diff