Added 'updateTaskDisplay' method to hide tasks marked as done if their due date is before the current day. This helps declutter the task view by filtering out outdated completed tasks. The 'updateTaskDisplay' method is invoked during initialization and when tasks are loaded.
Converted `dueTime` to a valid datetime-local format to fix display issues in the task edit modal. This resolves inconsistencies where the due time would not display correctly due to format mismatches.
- Added a date input and an "Update Date" button in the header to allow users to select and update the current date for the Kanban board.
- Modified CSS to support new header layout with flexbox for better alignment and distribution.
- Enhanced JavaScript to initialize the Kanban board with the selected date and to allow dynamic updates based on the chosen date.
- Improved user experience with button hover state and default date setting to today's date.
- Ensured the Kanban state is retained across date changes, enhancing data persistence and usability.
Updated to correctly set attributes for non-timed tasks when they are dropped into a specific column. This ensures tasks are properly categorized and their due times remain clear. Addresses potential confusion in task organization when moved.
Added an optional 'id' parameter to the createTaskElement method to retain task IDs when reloading tasks from storage. This ensures task IDs remain consistent across sessions, preventing issues related to task identification and management.
Reordered event emission to after updating task data. Added dataset updates for task's parent column to maintain a consistent state. This prevents bugs where tasks could end up in incorrect columns after moving. Adjusts heights for consistent UI.
Refactored time slot handling to avoid updating task due time when startTime is not valid. This prevents potential misalignment of task due times when tasks are dropped outside of defined slots. Also added missing dueTime update in the tasks map for synchronization. Adjustments ensure more consistent task scheduling and improved user interaction.
Ensure the task's column in the tasks map is correctly updated after
drag-and-drop to maintain consistent state. This prevents potential display
inconsistencies and logical errors when tasks are moved between columns.
Removed redundant emitTaskMovedEvent function to streamline task event emissions. Now emitting a generalized 'taskChanged' event for task movements, ensuring consistent event handling and reducing code duplication.
Removed the 'required' attribute from the task description field to allow users to create tasks without a description. This change addresses user feedback requesting more flexibility in task creation forms.
Improved the header's layout by making the logo and button positioning more intuitive and visually appealing. Adjusted header padding and button placement to be more consistent. Added text alignment to non-timed tasks for better readability.
Introduced a "Delete all entries" link in the footer that clears
local storage state upon confirmation from the user. Modified
CSS to properly align new footer elements. This improvement
enhances user control over stored data, ensuring an easy way
to reset the application state.
Switched from using `this.tasks.values()` to `this.tasks.entries()` in the serialize method. This change directly reduces the complexity of the serialization process by eliminating a mapping step, making it more efficient and streamlined. No functional changes to the output.
Introduce state persistence to example to save and load Kanblendar state using localStorage, enhancing user experience by remembering their tasks and settings across sessions. Implement a new 'taskChanged' custom event to trigger state saving whenever tasks are created, moved, edited, or deleted. This ensures state consistency and reduces the risk of data loss.
Refactor to attach Kanblendar instance to the window object for global access in example.
Introduced methods to serialize and deserialize tasks to enable saving and loading Kanblendar state. This addition facilitates persistence and recovery of task data, ensuring continuity. Adjusted task element creation and placement to maintain task integrity during deserialization.
Moved event listener for task button from Kanblendar init method to DOMContentLoaded handler. This change simplifies the Kanblendar class and improves modularity by placing event listening logic closer to the button initialization. Helps maintain separation of concerns and makes the code easier to manage and test.
Ensures tasks without due times are moved to a non-timed section rather than attempting to update their location based on an undefined value. This change prevents errors related to missing due time values and improves overall task management experience.
Added adjustTimeSlotHeights method and invoked it wherever necessary
to ensure that all time slots and non-timed tasks sections maintain
equal height. This addresses inconsistencies in the layout, improving
the visual alignment and user experience.
Added functionality to highlight the current time slot in the Kanblendar application for better time tracking. This feature updates every minute and visually indicates the active time slot by applying a specific CSS class.
Introduced the Kanblendar project, which combines a Kanban board and a daily calendar. Users can create, edit, and organize tasks in columns and time slots, with notification support for upcoming tasks.
Added README.md with detailed usage instructions and LICENSE file for licensing under MIT. Created example files (HTML, CSS, JS) to illustrate the usage of Kanblendar, and essential styles and scripts for its functionality.