Skip to content

Release v1.1.0: Customizable fields UI, full-width inputs, secure external links#3

Merged
anikchowdhurybd merged 13 commits into
mainfrom
clean-build
Nov 6, 2025
Merged

Release v1.1.0: Customizable fields UI, full-width inputs, secure external links#3
anikchowdhurybd merged 13 commits into
mainfrom
clean-build

Conversation

@anikchowdhurybd

Copy link
Copy Markdown
Contributor

This PR merges the clean-build branch into main for the v1.1.0 release.

Highlights

  • Customizable fields UI
    • Editable app title (persists in localStorage)
    • Field settings modal: add / delete / update fields (label, type, placeholder, required)
    • Dynamic form/table rendered from configuration
  • Usability
    • Header and footer centered
    • All form inputs/textarea/select now 100% width
    • Search across all dynamic fields
  • External Links
    • Secure external link opening via preload → main IPC (open-external)
    • Footer includes LinkedIn profile link
  • Stability & Security
    • Context isolation and sandbox enabled
    • Preload exposes minimal API
  • Build / CI
    • GitHub Actions Windows build succeeded
    • Tag: v1.1.0

Notes

  • Dynamic field configuration stored in localStorage (no DB migration required)
  • Existing church records schema intact

Checklist

  • App runs locally (npm start)
  • CI build green
  • Version bumped to 1.1.0

After merge:

  • Optional: Create GitHub Release from tag v1.1.0 and attach installer
  • Optional: Remove DevTools opening in main.js before packaging

- 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
Copilot AI review requested due to automatic review settings November 6, 2025 20:21
@anikchowdhurybd
anikchowdhurybd merged commit 5f714a3 into main Nov 6, 2025
3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread main.js
Comment on lines +24 to +25
// Open DevTools for debugging
win.webContents.openDevTools();

Copilot AI Nov 6, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
// Open DevTools for debugging
win.webContents.openDevTools();
// Open DevTools for debugging (only in development)
if (process.env.NODE_ENV === 'development') {
win.webContents.openDevTools();
}

Copilot uses AI. Check for mistakes.
Comment thread README.md
Comment on lines +1 to +17
# 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

Copilot AI Nov 6, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment thread renderer.js
const query = searchInput.value.toLowerCase();

const filtered = allRecords.filter(record => {
if (!window.fieldManager) return false;

Copilot AI Nov 6, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
if (!window.fieldManager) return false;
if (!window.fieldManager) return true;

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants