-
Version 2.2 Stable
released this
2025-10-03 08:03:14 -05:00 | 14 commits to main since this releaseVersion 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
pagestable with title and display order - Added
page_idforeign key to groups table - Migration scripts for seamless upgrades
- Default "Home" page created automatically
- New
-
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
- Weather Widget: Displays current weather conditions, temperature, humidity, and wind speed
-
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
widgetstable with JSONB configuration support - Migration script
004_add_widgets.sqlfor seamless upgrades - Support for flexible widget configurations
- New
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 pagesPOST /api/pages- Create new pagePUT /api/pages/:id- Update pageDELETE /api/pages/:id- Delete pageGET /api/widgets- List all widgetsPOST /api/widgets- Create new widgetPUT /api/widgets/:id- Update widgetDELETE /api/widgets/:id- Delete widget
-
Database Migrations:
002_optional_ip_port.sql- Made IP and port optional003_add_pages.sql- Added pages functionality
-
New Components:
NavigationMenu.js- Collapsible navigation drawerRootRedirect.js- Handles root URL redirectionWidgetContainer.js- Main widget display controller with selective renderingDateTimeWidget.js- Real-time clock and date displayWeatherWidget.js- Weather conditions and forecastSunPositionWidget.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}
- Weather:
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
:latesttag
Downloads
-
Source code (ZIP)
5 downloads
-
Source code (TAR.GZ)
2 downloads
-