mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-18 03:54:17 +02:00
Add virtual printer Queue mode and sidebar badge indicators
Virtual Printer Changes: - Add new "Queue" mode that archives files and adds them to print queue - Rename modes: "Immediate" → "Archive", "Queue for Review" → "Review" - Three modes now: Archive (immediate), Review (pending), Queue (print queue) - Queue mode creates unassigned queue items (printer_id=null) Print Queue Changes: - Make printer_id nullable in PrintQueueItem model/schema - Add support for unassigned queue items (no printer assigned) - Queue page shows "Unassigned" filter option - Edit modal allows assigning printer to unassigned items - Unassigned items highlighted in orange Sidebar Badge Indicators: - Queue icon shows yellow badge with pending queue item count - Archive icon shows blue badge with pending upload count - Badges auto-update every 5 seconds and on window focus Other: - Update backup/restore to handle nullable printer_id and ams_mapping - Add database migration for nullable printer_id column - Update VirtualPrinterSettings tests for new modes - Update virtual printer API integration tests - Remove speed controls documentation from wiki (not implemented)
This commit is contained in:
@@ -814,7 +814,7 @@ export interface DiscoveredTasmotaDevice {
|
||||
// Print Queue types
|
||||
export interface PrintQueueItem {
|
||||
id: number;
|
||||
printer_id: number;
|
||||
printer_id: number | null; // null = unassigned
|
||||
archive_id: number;
|
||||
position: number;
|
||||
scheduled_time: string | null;
|
||||
@@ -834,7 +834,7 @@ export interface PrintQueueItem {
|
||||
}
|
||||
|
||||
export interface PrintQueueItemCreate {
|
||||
printer_id: number;
|
||||
printer_id?: number | null; // null = unassigned
|
||||
archive_id: number;
|
||||
scheduled_time?: string | null;
|
||||
require_previous_success?: boolean;
|
||||
@@ -844,7 +844,7 @@ export interface PrintQueueItemCreate {
|
||||
}
|
||||
|
||||
export interface PrintQueueItemUpdate {
|
||||
printer_id?: number;
|
||||
printer_id?: number | null; // null = unassign
|
||||
position?: number;
|
||||
scheduled_time?: string | null;
|
||||
require_previous_success?: boolean;
|
||||
@@ -2516,7 +2516,7 @@ export const discoveryApi = {
|
||||
export interface VirtualPrinterStatus {
|
||||
enabled: boolean;
|
||||
running: boolean;
|
||||
mode: 'immediate' | 'queue';
|
||||
mode: 'immediate' | 'queue' | 'review' | 'print_queue'; // 'queue' is legacy, normalized to 'review'
|
||||
name: string;
|
||||
serial: string;
|
||||
model: string;
|
||||
@@ -2527,7 +2527,7 @@ export interface VirtualPrinterStatus {
|
||||
export interface VirtualPrinterSettings {
|
||||
enabled: boolean;
|
||||
access_code_set: boolean;
|
||||
mode: 'immediate' | 'queue';
|
||||
mode: 'immediate' | 'queue' | 'review' | 'print_queue'; // 'queue' is legacy, normalized to 'review'
|
||||
model: string;
|
||||
status: VirtualPrinterStatus;
|
||||
}
|
||||
@@ -2558,7 +2558,7 @@ export const virtualPrinterApi = {
|
||||
updateSettings: (data: {
|
||||
enabled?: boolean;
|
||||
access_code?: string;
|
||||
mode?: 'immediate' | 'queue';
|
||||
mode?: 'immediate' | 'review' | 'print_queue';
|
||||
model?: string;
|
||||
}) => {
|
||||
const params = new URLSearchParams();
|
||||
|
||||
Reference in New Issue
Block a user