This repository has been archived on 2025-11-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
supervisor/ui/IMPROVEMENTS_SUMMARY.md

4.7 KiB

Job Detail View Improvements

Summary of Changes

Implemented several UX improvements to simplify and unify the job detail interface:

1. Auto-Display Job Output

  • Removed: "View Output" button
  • Added: Automatic output loading when viewing job details
  • Output displays automatically in the bottom pane when available
  • No manual action needed - output appears as soon as job completes

2. Enhanced Job Sidebar

  • Added: Signatures count display
    • Shows "X signature(s)" if present
    • Shows "None" if no signatures
  • Added: Timeout display (already present, kept for completeness)
  • Added: Edit Job button (✏️)
  • Sidebar now shows: Status, Job ID, Runner, Timeout, Signatures, Created

3. Inline Job Editing

  • Removed: Separate job creation modal
  • Added: Inline editing in job detail view
  • Click "✏️ Edit Job" button to enter edit mode
  • Edit mode transforms the view:
    • Payload island: Becomes editable textarea
    • Logs island: Remains read-only (shows execution logs)
    • Bottom pane: Shows edit form with Runner and Timeout inputs
  • Actions: Cancel or Save Changes buttons
  • Unified look - uses same layout as viewing

4. Simplified Layout

  • Same three-pane structure for viewing and editing
  • No modal overlays for job management
  • Consistent visual language throughout
  • Edit mode is clearly indicated by header change

New User Flow

Viewing a Job

1. Click job in table
2. View opens with:
   - Sidebar: Job metadata (status, ID, runner, timeout, signatures, created)
   - Top-left: Payload (read-only code)
   - Top-right: Logs (auto-loaded)
   - Bottom: Output (auto-loaded when available) or status message

Editing a Job

1. Click "✏️ Edit Job" in sidebar
2. View transforms:
   - Sidebar: Unchanged (shows current job info)
   - Top-left: Payload becomes editable textarea
   - Top-right: Logs remain visible
   - Bottom: Edit form with Runner and Timeout inputs
3. Make changes
4. Click "💾 Save Changes" or "Cancel"
5. View returns to normal mode with updated data

Running a Job

1. Click "▶ Run Job" in sidebar
2. Bottom pane shows "⏳ Job is running..."
3. When complete, output auto-loads in bottom pane
4. Status badge updates automatically

Benefits

User Experience

  • Fewer clicks: No need to click "View Output" button
  • Immediate feedback: Output appears automatically
  • Unified interface: Edit and view use same layout
  • Less cognitive load: No modal context switching
  • More information: Signatures count visible at a glance

Code Quality

  • Reduced complexity: Removed job creation modal code
  • Consistent patterns: Single layout for all job operations
  • Better state management: Edit mode is a simple boolean flag
  • Maintainable: Less code to maintain and test

Visual Design

  • Cleaner: No modal overlays
  • Consistent: Same island structure throughout
  • Professional: Smooth transitions between modes
  • Informative: All relevant data visible

Technical Implementation

State Added

job_detail_output: Option<String>,  // Auto-loaded output
editing_job: bool,                  // Edit mode flag
edit_job_payload: String,           // Edit buffer for payload
edit_job_runner: String,            // Edit buffer for runner
edit_job_timeout: String,           // Edit buffer for timeout

Messages Added

EditJob,                           // Enter edit mode
CancelEditJob,                     // Exit edit mode
UpdateEditJobPayload(String),      // Update payload buffer
UpdateEditJobRunner(String),       // Update runner buffer
UpdateEditJobTimeout(String),      // Update timeout buffer
SaveJobEdit,                       // Save changes
JobEditSaved(Result<String, String>), // Save result

Auto-Loading

  • Output loads automatically when ViewJobDetail message is sent
  • Stored in job_detail_output instead of modal state
  • Displayed immediately when available
  • No user interaction required

Edit Mode

  • Payload textarea replaces code block
  • Bottom pane shows edit form instead of status
  • Header changes to "Edit Settings"
  • Cancel restores original view
  • Save updates job and reloads data

CSS Additions

.edit-textarea          /* Editable payload textarea */
.edit-form              /* Edit form container */
.edit-form .form-group  /* Form field groups */
.edit-form label        /* Form labels */

Future Enhancements

Potential improvements:

  • Add signature management in edit mode
  • Show signature details (public keys) in sidebar
  • Add job cloning feature
  • Real-time output streaming for running jobs
  • Diff view when editing to show changes
  • Undo/redo for edits
  • Auto-save drafts