From 4d730d78607fa67ef3725b36e896cf1481385af3 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Wed, 24 Jun 2026 15:41:29 +0200 Subject: [PATCH] feat(ui): add bug report button in Help and GitHub issue template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a "Report a bug" / "Segnala un bug" button (6 languages) in Help → Info that opens the issue tracker in the system browser via TopLevel.Launcher (cross-platform: desktop + Android). URL points to the current self-hosted repo; a TODO comment marks the constant for easy update once the project moves to GitHub. Adds .github/ISSUE_TEMPLATE/bug_report.yml — GitHub issue form with structured fields for version, platform, network, repro steps, expected behavior, and logs. --- .github/ISSUE_TEMPLATE/bug_report.yml | 91 +++++++++++++++++++++++++++ src/App/Localization/Loc.cs | 1 + src/App/Views/MainView.axaml.cs | 11 ++++ 3 files changed, 103 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..f339129 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,91 @@ +name: Bug Report +description: Report a problem with Palladium Wallet +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a bug. + Please fill in every section — incomplete reports are hard to reproduce and may be closed. + + - type: input + id: version + attributes: + label: Wallet version + description: Shown in Help → Info (e.g. `1.0.0`). + placeholder: "1.0.0" + validations: + required: true + + - type: dropdown + id: platform + attributes: + label: Platform + options: + - Windows + - Linux + - Android + validations: + required: true + + - type: dropdown + id: network + attributes: + label: Network + options: + - Mainnet + - Testnet + - Regtest + validations: + required: true + + - type: textarea + id: description + attributes: + label: What happened? + description: Describe the bug clearly and concisely. What did you see? What did you expect? + placeholder: "When I click … the wallet shows … instead of …" + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: Numbered steps that reliably trigger the bug. + placeholder: | + 1. Open the wallet + 2. Go to … + 3. Click … + 4. Observe … + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What should have happened instead? + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs / error messages + description: | + Paste any error dialogs, crash messages, or stack traces. + Leave blank if none. + render: text + validations: + required: false + + - type: checkboxes + id: checklist + attributes: + label: Before submitting + options: + - label: I searched existing issues and this is not a duplicate + required: true + - label: I reproduced this on the latest available version + required: false diff --git a/src/App/Localization/Loc.cs b/src/App/Localization/Loc.cs index 785d148..7c7881f 100644 --- a/src/App/Localization/Loc.cs +++ b/src/App/Localization/Loc.cs @@ -62,6 +62,7 @@ public sealed class Loc "SPV-Wallet für die Kryptowährung Palladium (PLM)."], ["help.tab.info"] = ["Info", "Info", "Info", "Info", "Info", "Info"], ["help.tab.donate"] = ["Dona", "Donate", "Donar", "Faire un don", "Doar", "Spenden"], + ["help.bug.report"] = ["Segnala un bug", "Report a bug", "Informar un error", "Signaler un bug", "Reportar um bug", "Fehler melden"], ["donate.desc"] = [ "Se questo wallet ti è utile, considera una piccola donazione allo sviluppatore.", "If you find this wallet useful, consider a small donation to the developer.", diff --git a/src/App/Views/MainView.axaml.cs b/src/App/Views/MainView.axaml.cs index 3404d2e..ad8a8ec 100644 --- a/src/App/Views/MainView.axaml.cs +++ b/src/App/Views/MainView.axaml.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; using Avalonia; using Avalonia.Controls; @@ -128,6 +129,16 @@ public partial class MainView : UserControl vm.IsHelpOpen = false; } + private async void OnOpenBugReportClick(object? sender, RoutedEventArgs e) + { + // TODO: replace with the final GitHub URL once the repo is on GitHub + // e.g. https://github.com/davide3011/PalladiumWallet/issues/new?assignees=&labels=bug&template=bug_report.yml + const string issueUrl = "https://santantonio.sytes.net/davide/PalladiumWallet/issues/new"; + var launcher = TopLevel.GetTopLevel(this)?.Launcher; + if (launcher is not null) + await launcher.LaunchUriAsync(new Uri(issueUrl)); + } + // Esc (desktop) or Back (Android) closes the topmost open overlay. protected override void OnKeyDown(KeyEventArgs e) {