Release v1.1.0: Customizable fields UI, full-width inputs, secure external links#3
Conversation
- Editable app title (click to edit, persists in localStorage) - Settings modal for field management - Add/delete/update custom fields dynamically - Customize field properties: label, type, placeholder, required - Dynamic form rendering based on field configuration - Dynamic table columns (shows first 5 fields) - Search across all dynamic fields - Reset to default 15 church record fields - All customizations persist in localStorage
…opening - Center align app header and footer - Make all form inputs 100% width with box-sizing - Add openExternal to preload.js for secure external link handling - Fix field-manager initialization timing - LinkedIn link now opens in external browser
- Fix link click handler to use closest() for better event targeting - Add null check for window.api before calling openExternal - Add width: 100% to form inputs and textareas in style.css - Remove redundant !important override from inline styles
- Enable DevTools in main.js - Add debug console logs to field-manager.js - Change script loading from defer to normal execution - Field manager is loading correctly based on console output
- Add typeof check for window.api.openExternal function - Add catch block for promise rejection - Add console warning if API not available - Prevents uncaught error when clicking external links
- Centered header/footer; inputs now full-width - Field manager initialization stabilized - Secure external link open via IPC (preload/main) - Minor styling/layout improvements
There was a problem hiding this comment.
Pull Request Overview
This pull request transforms a basic data entry application into a fully customizable church records management system with dynamic field configuration capabilities. The update introduces a modern dark-themed UI, localStorage-based customization persistence, and enhanced data management features.
Key Changes:
- Added dynamic field management system allowing users to customize form fields without code changes
- Implemented editable application title with localStorage persistence
- Enhanced database schema from 3 fields to 15 church-specific fields
- Added comprehensive Excel export with proper column mapping
Reviewed Changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| style.css | New file providing complete dark theme styling for the modernized UI |
| field-manager.js | New file implementing the dynamic field customization system with modal UI |
| index.html | New file with complete HTML structure, modals, and inline link handling script |
| renderer.js | Refactored to integrate with field manager for dynamic form and table rendering |
| preload.js | Added secure external link opener with URL validation |
| main.js | Added shell integration for external links and DevTools opening |
| database.js | Expanded schema from 3 to 15 fields with church record template support |
| package.json | Version bump to 1.1.0 with formatting improvements |
| README.md | Comprehensive documentation update with usage instructions |
| .vscode/settings.json | Added spell check configuration for custom words |
| .github/workflows/build-windows.yml | Added clean-build branch to CI/CD triggers |
| create-repo.js | Removed unused repository creation script |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // Open DevTools for debugging | ||
| win.webContents.openDevTools(); |
There was a problem hiding this comment.
The DevTools are being opened automatically on every startup. This is useful for development but should be removed or conditionalized for production builds to avoid exposing the developer console to end users.
| // Open DevTools for debugging | |
| win.webContents.openDevTools(); | |
| // Open DevTools for debugging (only in development) | |
| if (process.env.NODE_ENV === 'development') { | |
| win.webContents.openDevTools(); | |
| } |
| # Data Entry App# Data Entry App | ||
|
|
||
| An offline data entry and data collection application for managing data efficiently. | ||
|
|
||
| ## Features | ||
|
|
||
| - Offline data entry | ||
| - Data collection | ||
| - Data management | ||
| A customizable offline data entry application for managing church records and other data efficiently.An offline data entry and data collection application for managing data efficiently. | ||
|
|
||
|
|
||
|
|
||
| ## Features## Features | ||
|
|
||
|
|
||
|
|
||
| ### Core Features- Offline data entry | ||
|
|
||
| - **Offline Data Entry**: All data persists locally using SQL.js- Data collection | ||
|
|
||
| - **Full CRUD Operations**: Create, Read, Update, Delete records- Data management |
There was a problem hiding this comment.
The README.md file contains duplicated content. Lines 1-17 repeat the headers "Data Entry App", "Features", and feature items, causing formatting issues. The duplicate text should be removed to clean up the documentation.
| const query = searchInput.value.toLowerCase(); | ||
|
|
||
| const filtered = allRecords.filter(record => { | ||
| if (!window.fieldManager) return false; |
There was a problem hiding this comment.
The search functionality will return false for all records when window.fieldManager is not available. Consider adding a fallback to show all records instead of filtering to an empty result set, which would provide better user experience during initialization.
| if (!window.fieldManager) return false; | |
| if (!window.fieldManager) return true; |
This PR merges the
clean-buildbranch intomainfor the v1.1.0 release.Highlights
open-external)v1.1.0Notes
Checklist
npm start)1.1.0After merge:
v1.1.0and attach installermain.jsbefore packaging