Skip to content

Commit a9e9667

Browse files
committed
feat: Enhance category customization with modal
Introduce a new modal for comprehensive category styling, allowing users to select from curated themes or choose custom background and text colors. This also includes fixes for drag-and-drop reordering issues and blank loading screens.
1 parent a50857f commit a9e9667

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

CHANGELOG.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.8.0]
6+
7+
### Fixed
8+
- **CRITICAL:** Fixed a persistent and critical bug that prevented drag-and-drop reordering of repository cards within the same category and in the "Uncategorized" section.
9+
- Fixed an issue where the application would show a blank "Loading settings..." screen when run in a web browser. It now loads instantly with default settings.
10+
11+
### Changed
12+
- **Category Customization:** Replaced the simple color palette popover with a full-featured modal. Users can now choose from curated themes or select custom background and text colors for each category.
13+
- **UI Consistency:** Updated all tooltips on category headers to use the same styled component as the rest of the application for a more polished look.
14+
515
## [0.7.0]
616

717
### Changed
@@ -166,4 +176,4 @@ All notable changes to this project will be documented in this file.
166176
- Global settings for package manager and build commands.
167177
- **Electron Packaging:** Application is fully packaged for Windows, macOS, and Linux using Electron and esbuild.
168178
- **Automatic Updates:** Integrated `electron-updater` to automatically check for and install new versions from GitHub Releases.
169-
- **In-App Documentation Viewer:** Added an "Info Hub" to view the README, functional manual, technical manual, and this changelog directly within the application.
179+
- **In-App Documentation Viewer:** Added an "Info Hub" to view the README, functional manual, technical manual, and this changelog directly within the application.

FUNCTIONAL_MANUAL.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The dashboard is divided into collapsible sections called categories. This allow
2222

2323
- **Creating Categories:** Click the "Add Category" button at the bottom of the dashboard to create a new section.
2424
- **Renaming & Deleting:** **Double-click** a category's name to edit it. Hover over the title to reveal a **trash icon** for deleting it.
25-
- **Color Customization:** Hover over a category's title and click the **paintbrush icon**. This opens a popover with a curated palette of predefined color themes, ensuring your dashboard always looks great. A "Reset" button is available to revert to the default theme.
25+
- **Color Customization:** Hover over a category's title and click the **paintbrush icon**. This opens a dedicated dialog where you can style the category. You can choose from a curated list of predefined themes for a polished look, or select custom colors for both the background and text using color pickers. A "Reset to Default" button is available to clear any custom styling.
2626
- **Collapsing Sections:** Click the chevron icon (▶) next to a category's title to hide or show the repositories within it. This state is saved automatically, so your layout will be preserved the next time you open the app.
2727
- **Assigning Repositories:** Simply drag a repository card and drop it onto a category header to assign it.
2828
- **Reordering:**
@@ -171,4 +171,7 @@ The application is designed to keep itself up-to-date automatically.
171171

172172
- **Checking:** On startup, the dashboard silently checks for a new version from the project's official GitHub repository.
173173
- **Downloading:** If a new version is found, a small notification will appear indicating that the download has started. The download happens in the background.
174-
- **Installation:** Once the download is complete, a prominent blue banner will appear at the top of the application window. To install the update, simply click the **"Restart & Install"** button. The application will close and restart as the new version.
174+
- **Installation:** Once the download is complete, a prominent blue banner will appear at the top of the application window. To install the update, simply click the **"Restart & Install"** button. The application will close and restart as the new version.
175+
176+
## 9. Web Mode (Preview)
177+
When the application is run in a standard web browser (outside of the Electron desktop app), it will load in a "simulation mode" with default settings. This is intended for preview and demonstration purposes, as features that rely on accessing your local file system (like running tasks or cloning repositories) are not available.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This application provides a simple, powerful dashboard to manage and automate th
55
## Core Features
66

77
- **Centralized Dashboard:** View the status, branch, and build health of all your repositories in one place.
8-
- **Customizable Dashboard Categories:** Organize your repositories into collapsible sections with configurable colors, full drag-and-drop support, and a global expand/collapse control.
8+
- **Customizable Dashboard Categories:** Organize your repositories into collapsible sections with configurable colors (via a new modal with presets and custom pickers), full drag-and-drop support, and a global expand/collapse control.
99
- **Multi-VCS Support:** Manage both Git and Subversion (SVN) repositories seamlessly.
1010
- **Repository-Specific Tasks:** Create custom, multi-step automation scripts (e.g., pull/update, install, build) for each repository.
1111
- **Quick Actions:** Manually refresh repository state, copy URLs/paths with a single click, and access all common actions via a right-click context menu.
@@ -44,4 +44,4 @@ This application provides a simple, powerful dashboard to manage and automate th
4444
- Click a task button or use the task selection menu to run your task.
4545
- The resizable log panel will automatically appear at the bottom, showing the progress of your script.
4646
---
47-
_For developer information, including how to run this project in development mode or build it from source, please see the **Technical Manual** tab in the Info Hub._
47+
_For developer information, including how to run this project in development mode or build it from source, please see the **Technical Manual** tab in the Info Hub._

TECHNICAL_MANUAL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ The application is split into three main processes, which is standard for Electr
4949
- **Primary State:** The root `App.tsx` component manages the entire application state, including the list of repositories, global settings, **dashboard categories**, the active view, and the state of modals and panels. UI-specific state, such as the position and visibility of the right-click `ContextMenu`, is also managed here to ensure a single source of truth.
5050
- **VCS State:** `App.tsx` also holds state for `detailedStatuses` and `branchLists` which are fetched periodically and after tasks complete to keep the UI in sync with the file system.
5151
- **Parallel Task Execution:** To support running multiple tasks concurrently, a unique `executionId` is generated for each task run. This ID is passed between the renderer and main processes, allowing log output (`task-log`) and completion events (`task-step-end`) to be correctly routed to the appropriate repository and UI components without conflict.
52-
- **Component Architecture:** Key new components include `CategoryHeader.tsx` for managing category sections and a heavily refactored `Dashboard.tsx` that now handles complex drag-and-drop logic for both repositories and categories.
52+
- **Component Architecture:** Key new components include `CategoryHeader.tsx` for managing category sections, a new `CategoryColorModal.tsx` for a comprehensive customization experience, and a heavily refactored `Dashboard.tsx` that now handles complex drag-and-drop logic.
5353

5454
### Data Persistence
5555

5656
All application data, including repositories, **categories,** and global settings, is persisted to a single `settings.json` file.
5757

5858
- **Location:** The file is stored in the standard application user data directory for your operating system (e.g., `%APPDATA%` on Windows, `~/Library/Application Support` on macOS). This ensures that user settings are preserved across application updates.
59-
- **Management:** A `SettingsProvider` context handles loading this data on startup and saving it whenever it changes. The context was expanded to include functions for creating, updating, deleting, and reordering categories (`addCategory`, `updateCategory`, etc.), as well as managing their collapsed state (`toggleCategoryCollapse`, `toggleAllCategoriesCollapse`). The `Category` data structure now includes a `collapsed` property, as well as optional `color` and `backgroundColor` fields, which are also saved to `settings.json` to persist the UI state across sessions.
59+
- **Management:** A `SettingsProvider` context handles loading this data on startup and saving it whenever it changes. To resolve persistent bugs with drag-and-drop reordering, the data model was updated to include an `uncategorizedOrder` array in `settings.json`. The `SettingsContext` now explicitly manages this list, and the `moveRepositoryToCategory` function was significantly refactored to robustly handle all reordering and moving scenarios.
6060
- **Migration:** A one-time migration process runs on startup to move `settings.json` for users updating from versions prior to `0.2.2`, where the file was incorrectly stored next to the application executable.
6161

6262
## 4. Development Workflow
@@ -96,4 +96,4 @@ The application is configured to automatically check for updates on startup usin
9696
1. Ensure the `version` in `package.json` is incremented.
9797
2. Create a `GH_TOKEN` (GitHub Personal Access Token) with `repo` scopes and make it available as an environment variable.
9898
3. Run the command `npm run publish`. This will build the application, create installers, and upload them to a new draft release on GitHub.
99-
4. Navigate to the GitHub release, add release notes, and publish it.
99+
4. Navigate to the GitHub release, add release notes, and publish it.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "git-automation-dashboard",
3-
"version": "0.7.0",
3+
"version": "0.8.0",
44
"description": "A dashboard to manage and automate the workflow for a set of Git repositories.",
55
"main": "dist/main.js",
66
"author": "AI Assistant",
@@ -73,4 +73,4 @@
7373
}
7474
]
7575
}
76-
}
76+
}

0 commit comments

Comments
 (0)