[feat] Export alert history as CSV
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 76/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- desktop, observability
Research direction
Read lib/services/metrics_csv.dart for the existing CSV export pattern, then inspect lib/state/alert_log.dart and lib/views/ping_matrix/widgets/alert_log_dialog.dart to see the event fields and dialog flow. Add lib/services/alerts_csv.dart, update the four language files, and add tests under test/ for empty input, escaping, order, and severity mapping. Done means the dialog exports a correctly formatted CSV and the stated Flutter checks pass.
Written by the indexing model from the issue text.
Description
The alert log lives only in memory (lib/state/alert_log.dart, capped at 200 events) and the Alerts dialog can only clear it (lib/views/ping_matrix/widgets/alert_log_dialog.dart). There is no way to keep incident history for a report.
Scope
- Add a pure
buildAlertsCsv(List<AlertEvent>)underlib/services/, following thebuildMetricsCsvpattern inlib/services/metrics_csv.dart:- header:
timestamp,target_id,target_name,from,to,severity,rtt_ms,loss_rate, - ISO-8601 UTC timestamps, RFC-4180 quoting for commas/quotes/newlines,
- oldest-first order (reverse of the newest-first in-memory list).
- header:
- Add an
exportAlertsCsv(...)helper that saves the file viapath_provider(mirrorexportMetricsCsv), filenamevelocenet-alerts-<timestamp>.csv. - Add an Export CSV button to
AlertLogDialognext to "Clear all"; disabled when the log is empty; snackbar with the saved path or an error. - Add the new i18n keys to all four
assets/lang/*.jsonfiles. - Unit tests: empty log, escaping (comma/quote/newline), ordering, severity mapping (info/warning/critical).
Acceptance criteria
flutter analyzeandflutter testpass.- The exported CSV opens correctly in Excel/LibreOffice.
- In-memory behavior and the 200-event cap are unchanged.
Files
lib/services/(newalerts_csv.dart)lib/views/ping_matrix/widgets/alert_log_dialog.dartassets/lang/en.json,fa.json,ru.json,zh.jsontest/
- Dominant language
- Dart
- Stars
- 15
- Forks
- 1
- Avg merge
- 2h 55m
- Merged PRs (30d)
- 15
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Cadman021/VeloceNet-Studio
-
enhancement help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Cadman021/VeloceNet-Studio#35 ·
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Cadman021/VeloceNet-Studio#12 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted i18n
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Cadman021/VeloceNet-Studio#10 ·
Maintainers usually reply within 1 day
-
enhancement good first issue UI
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Cadman021/VeloceNet-Studio#3 ·
Maintainers usually reply within 1 day
-
bug enhancement good first issue UI
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Cadman021/VeloceNet-Studio#2 ·
Maintainers usually reply within 1 day
All issues in Cadman021/VeloceNet-Studio
Similar issues
-
bug enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
AOSSIE-Org/Ell-ena#356 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
espresso3389/pdfrx#776 ·
Maintainers usually reply within 1 day
-
breaking
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
rrousselGit/riverpod#4942 ·
Maintainers usually reply within 1 day
-
feat(reputation): show the source of an attestation before importing itPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
MostroP2P/app#881 · 1 comment ·
Maintainers usually reply within 1 day
-
[기능 제안]Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100