Skip to content
This repository was archived by the owner on Nov 25, 2025. It is now read-only.

Version 2.2

Choose a tag to compare

@SluberskiHomeLab SluberskiHomeLab released this 03 Oct 13:09
· 16 commits to main since this release
bf28fec

Version 2.2 Changelog

Added

  • Multiple Pages Support: Dashboard now supports multiple pages with individual configurations

    • Collapsible navigation menu (hamburger menu) in top left corner
    • Each page can have its own set of groups and services
    • Clean URL routing (/page/1, /page/2, etc.)
    • Auto-redirect from root URL to first available page
  • Enhanced Navigation:

    • "Edit config" button added to dashboard (top right)
    • "Return to dashboard" button added to configuration page (top right)
    • Navigation menu shows all available pages with proper theming
  • Database Schema Updates:

    • New pages table with title and display order
    • Added page_id foreign key to groups table
    • Migration scripts for seamless upgrades
    • Default "Home" page created automatically
  • Configuration Management:

    • New "Pages" tab in configuration interface
    • Full CRUD operations for pages (Create, Read, Update, Delete)
    • Page assignment for groups with visual indicators
    • Validation to prevent deletion of pages with associated groups
  • Comprehensive Widgets System: Added dedicated support for widgets to display information from specific services

    • Weather Widget: Displays current weather conditions, temperature, humidity, and wind speed
      • Configurable API key, location, units (metric/imperial), and update intervals
      • Real-time weather data from OpenWeatherMap API
      • Weather icons and detailed conditions display
    • Sun Position Widget: Shows sunrise, sunset times and daylight duration
      • Configurable latitude/longitude coordinates
      • Real-time daylight progress tracking with visual progress bar
      • Automatic day/night status detection
    • Date/Time Widget: Displays current time and date with customizable formatting
      • Horizontal layout with time prominently displayed first, then date
      • Configurable timezone, 12/24-hour format, date formats
      • Optional greeting messages and timezone display
      • Real-time updates every second
  • Widget Management Interface:

    • New "Widgets" tab in configuration page
    • Full CRUD operations for widgets (Create, Read, Update, Delete)
    • JSON configuration editor with real-time validation
    • Widget type selection dropdown (datetime, weather, sun_position)
    • Display order and enable/disable toggles
    • Page assignment for widgets
  • Database Schema:

    • New widgets table with JSONB configuration support
    • Migration script 004_add_widgets.sql for seamless upgrades
    • Support for flexible widget configurations

Changed

  • Service Configuration: IP address and port fields are now optional

    • Updated database constraints to allow NULL values
    • Enhanced form validation and error handling
    • Improved user experience for services without IP/port
  • API Enhancements:

    • Added comprehensive error handling and logging
    • Better validation for required fields
    • Specific error messages for different failure types
    • New endpoints for pages management (/api/pages)
  • Frontend Improvements:

    • Enhanced error handling with detailed console logging
    • Better form field handling for optional values
    • Improved conditional rendering for IP:port display
    • Updated service cards to handle optional fields gracefully
  • Widget Layout and Display:

    • DateTime widgets displayed prominently below page title at full size
    • Other widgets (weather, sun position) displayed at 50% size below search area
    • Improved visual hierarchy with clean separation of widget types
    • All widgets now use compact 12pt font sizes for better space utilization
    • Responsive scaling with appropriate sizing for both full and small display modes
  • Enhanced JSON Configuration Editor:

    • Fixed JSON editing functionality to allow proper text input during editing
    • Real-time validation with visual error indicators (red border for invalid JSON)
    • Improved state management to handle temporary invalid JSON states
    • Prevention of saving widgets with invalid JSON configurations
    • Better user experience with immediate feedback during editing
  • Widget Component Architecture:

    • Extensible widget system designed for easy addition of new widget types
    • Consistent theming across all widgets using dashboard color schemes
    • Responsive design with proper scaling for different display contexts
    • Error handling and loading states for all API-dependent widgets

Fixed

  • Database constraint violations when saving services without IP/port
  • Form validation issues in configuration interface
  • Navigation and routing edge cases
  • Service display inconsistencies

Technical Details

  • New API Endpoints:

    • GET /api/pages - List all pages
    • POST /api/pages - Create new page
    • PUT /api/pages/:id - Update page
    • DELETE /api/pages/:id - Delete page
    • GET /api/widgets - List all widgets
    • POST /api/widgets - Create new widget
    • PUT /api/widgets/:id - Update widget
    • DELETE /api/widgets/:id - Delete widget
  • Database Migrations:

    • 002_optional_ip_port.sql - Made IP and port optional
    • 003_add_pages.sql - Added pages functionality
  • New Components:

    • NavigationMenu.js - Collapsible navigation drawer
    • RootRedirect.js - Handles root URL redirection
    • WidgetContainer.js - Main widget display controller with selective rendering
    • DateTimeWidget.js - Real-time clock and date display
    • WeatherWidget.js - Weather conditions and forecast
    • SunPositionWidget.js - Solar position and daylight tracking
  • Widget Configuration Examples:

    • Weather: {"apiKey": "your-key", "location": "City,Country", "units": "metric"}
    • Sun Position: {"latitude": 40.7128, "longitude": -74.0060}
    • DateTime: {"timezone": "America/New_York", "format12Hour": true, "showSeconds": false}

Documentation

  • WIDGETS.md: Comprehensive widget documentation including:
    • Configuration guide for all widget types
    • API key setup instructions
    • Troubleshooting guide
    • Usage examples and best practices

Docker Images

  • Published to Docker Hub as sluberskihomelab/ditdashdot-dashboard:2.2
  • Published to Docker Hub as sluberskihomelab/ditdashdot-api:2.2
  • Also available with :latest tag