Commit Graph

279 Commits

Author SHA1 Message Date
PaulVua
a3b2bef5c1 Improve database page layout and highlight most recent data
Layout improvements:
- Reorganized cards to fit 3 across on large screens (col-lg-4)
- View database, download data, and danger zone now on same row
- Added h-100 class to cards for equal height
- Made delete button larger and full-width for better visibility

Button spacing:
- Added mb-2 (margin-bottom) to all measurement trigger buttons
- Improved vertical spacing for better readability

Data visualization:
- Added light green background (#d4edda) to first table row
- First row now highlights the most recent data entry
- Makes it easy to see the latest sensor reading at a glance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 14:48:34 +01:00
PaulVua
f679732591 Fix i18n translations not applying properly on database page
Fixed race condition where translations weren't being applied to the database page when French language was selected. The issue was caused by the i18n system loading asynchronously while page content was being rendered.

Changes:
- Added applyTranslationsWhenReady() function that waits for translations to load
- Re-apply translations after dynamic content (sidebar/topbar) is loaded
- Added languageChanged event listener to re-apply translations on language switch
- Ensures all text appears in the selected language (French/English)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 14:42:33 +01:00
PaulVua
857d590b8f Order database table display by insertion order (ROWID) instead of timestamp
Changed the data retrieval query to use ROWID DESC instead of timestamp DESC, ensuring that the most recently inserted data appears first regardless of timestamp field values. This fixes the issue where entries with "not connected" or invalid timestamps would appear in wrong order.

Benefits:
- Most recent database entries always shown at top
- Works correctly even when timestamp is null, "not connected", or incorrect
- Based on actual insertion order rather than timestamp field

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 14:38:22 +01:00
PaulVua
141dd68716 Add database cleanup feature to empty all sensor tables
Added a "Danger Zone" section on the database page that allows users to empty all sensor data tables while preserving configuration and timestamp tables. The feature includes:

- New Python script (sqlite/empty_sensor_tables.py) to safely empty sensor tables
- Backend endpoint in launcher.php (empty_sensor_tables)
- Frontend UI with red warning card and confirmation dialog
- Detailed feedback showing deleted record counts per table
- i18n support for French and English

Tables emptied: data_NPM, data_NPM_5channels, data_BME280, data_envea, data_WIND, data_MPPT, data_NOISE, modem_status
Tables preserved: timestamp_table, config_table, envea_sondes_table, config_scripts_table

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 14:33:21 +01:00
PaulVua
79a9217307 Add i18n translations for page content (Home, Database, Logs)
Extended internationalization support by adding translation keys and data-i18n attributes to page content. Previously only the sidebar was translated - now the main content of Home, Database, and Logs pages will switch between French and English when the user changes the language selector.

Translation keys added:
- Home page: title, welcome message, PM measures, Linux stats, disk/memory usage
- Database page: all UI labels, buttons, and dropdown options
- Logs page: title, description, log types, and action buttons

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 16:42:43 +01:00
PaulVua
fe604791f0 Enable i18n language switching on all pages and hide incomplete features
Added i18n.js script to all main pages (index, database, saraR4, wifi, logs, admin) to enable language switching functionality across the entire application. Commented out Map and Terminal menu items in the sidebar as these pages are not yet ready for production use.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 16:38:28 +01:00
PaulVua
624fb4abbc Add sidebar i18n support and fix language selector visibility
Extended the internationalization system to support sidebar navigation menu with French/English translations. Fixed language selector dropdown styling to improve text visibility with proper contrast (gray background instead of transparent).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 16:29:44 +01:00
PaulVua
163d60bf34 Implement lightweight offline i18n system with French/English support
**Core System:**
- Add i18n.js translation library with data-attribute support
- Create translation files (fr.json, en.json) with offline support
- Store language preference in SQLite config_table
- Add backend endpoints for get/set language

**UI Features:**
- Add language switcher dropdown to topbar (🇫🇷 FR / 🇬🇧 EN)
- Auto-sync language selection across all pages
- Support for static HTML and dynamically created elements

**Implementation:**
- Migrate sensors.html as working example
- Add data-i18n attributes to all UI elements
- Support for buttons, inputs, and dynamic content
- Comprehensive README documentation in html/lang/

**Technical Details:**
- Works completely offline (local JSON files)
- No external dependencies
- Database-backed user preference
- Event-based language change notifications
- Automatic translation on page load

Next steps: Gradually migrate other pages (admin, wifi, index, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 18:10:06 +01:00
PaulVua
906eaa851d Fix BME280 and sensor cards not displaying
- Refactor sensor card creation to use config_table instead of non-existent config_scripts_table
- Fix BME280 card check: use config.BME280 instead of response["BME280/get_data_v2.py"]
- Fix NOISE card check: use config.NOISE instead of response.i2C_sound
- Fix Envea card check: use config.envea instead of response["envea/read_value_v2.py"]
- Create dedicated createSensorCards() function for cleaner code
- Remove obsolete get_config_scripts_sqlite AJAX call

Now sensor cards properly display based on config_table settings.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:49:02 +01:00
PaulVua
954680ef6e Refactor Claude Code settings to use template pattern
- Create .claude/settings.json as project-wide template
- Untrack .claude/settings.local.json for local overrides
- Add .claude/settings.local.json to .gitignore
- Add .claude/README.md documenting the setup

This allows:
- Project defaults versioned in git
- Local customization without conflicts
- Clean separation of shared vs personal settings

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:33:13 +01:00
PaulVua
1f4d38257e Fix WiFi setup flow and improve hotspot management
- Fix deviceID overwrite bug: preserve manual configuration across reboots
- Use deviceName as hotspot SSID for better device identification
- Implement live WiFi scanning instead of reading stale CSV data
- Improve hotspot management with dynamic connection detection
- Add database status updates on WiFi connection success/failure
- Hide password in logs for better security

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:27:37 +01:00
Your Name
a38ce79555 update 2026-01-05 15:50:35 +00:00
Your Name
62ef47aa67 update 2025-11-26 09:55:45 +00:00
Your Name
ca7533a344 update 2025-11-26 09:11:04 +00:00
Your Name
403c57bf18 update 2025-11-26 09:00:07 +00:00
Your Name
129b2de68e update 2025-11-11 13:41:44 +00:00
Your Name
d2c88e0d18 update 2025-11-11 13:23:30 +00:00
Your Name
fba5af53cb update 2025-11-05 15:57:11 +01:00
Your Name
04fbf81798 update 2025-11-05 14:50:29 +01:00
Your Name
65beead82b update 2025-11-05 14:44:30 +01:00
Your Name
26ee893a96 update 2025-11-03 18:59:09 +01:00
Your Name
5cf37c3cee update 2025-11-03 17:45:18 +01:00
root
3ecc27fd3e update 2025-11-03 17:42:39 +01:00
AirLab
072fca72cc update 2025-11-03 17:31:13 +01:00
AirLab
c038084343 update 2025-11-03 17:20:37 +01:00
AirLab
6069ab04cf update 2025-10-07 15:03:11 +02:00
AirLab
79f3ede17f Add password protection for critical transmission settings
- Add unlock/lock button for protected settings in admin panel
- Protect AirCarto, uSpot, and miotiq transmission checkboxes
- Require password '123plouf' to enable editing protected checkboxes
- Visual feedback with lock/unlock icons and toast notifications
- Add CLAUDE.md documentation file for development guidance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 14:59:38 +02:00
root
9de903f2db update 2025-10-02 15:53:14 +01:00
Your Name
77fcdaa08e update 2025-09-19 14:08:01 +02:00
Your Name
1fca3091eb update 2025-09-18 16:46:25 +01:00
Your Name
d0b49bf30c update 2025-09-18 16:45:08 +01:00
Your Name
4779f426d9 update 2025-09-18 16:43:49 +01:00
Your Name
9aab95edb6 update 2025-09-09 09:47:45 +02:00
root
fe61b56b5b update 2025-07-22 16:38:41 +01:00
Your Name
25c5a7a65a update 2025-07-22 15:36:36 +02:00
root
4d512685a0 update 2025-07-22 10:39:13 +02:00
root
44b2e2189d update 2025-07-21 12:22:56 +01:00
root
74fc3baece update 2025-07-21 11:11:09 +01:00
Your Name
0539cb67af update 2025-07-02 08:25:29 +01:00
Your Name
98115ab22b update 2025-07-02 08:01:41 +01:00
Your Name
2989a7a9ed update 2025-06-30 15:10:29 +01:00
Your Name
aa458fbac4 update 2025-06-30 14:59:40 +01:00
707dffd6f8 Actualiser installation_part2.sh 2025-06-24 20:39:37 +00:00
c917131b2d Actualiser installation_part1.sh 2025-06-23 09:36:04 +00:00
root
057dc7d87b update 2025-06-05 16:48:38 +02:00
Your Name
fcc30243f5 update 2025-06-05 15:06:08 +02:00
Your Name
75774cea62 update 2025-06-05 12:50:45 +02:00
Your Name
3731c2b7cf update 2025-06-05 12:42:35 +02:00
Your Name
1240ebf6cd update 2025-06-04 15:54:43 +02:00
root
e27f2430b7 update 2025-05-28 16:00:02 +02:00