From 3bc76cacaf2230de623d5d7bdc2a54095459b097 Mon Sep 17 00:00:00 2001 From: Devin Bileck <603793+devinbileck@users.noreply.github.com> Date: Fri, 12 Apr 2019 12:05:47 -0700 Subject: [PATCH 1/2] Add specific URL validation for proposal links Since all proposals should be created in GitHub, and we have URL redirects in place in case we switch platforms in the future, enforce proposal links to utilize the specific URL redirect. Resolves #2473 --- .../resources/i18n/displayStrings.properties | 4 ++-- .../main/dao/governance/ProposalDisplay.java | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 3b35daa3715..dea1d10a8db 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -1715,8 +1715,8 @@ dao.proposal.create.publishing=Proposal publishing is in progress ... dao.proposal=proposal dao.proposal.display.type=Proposal type dao.proposal.display.name=Name/nickname -dao.proposal.display.link=Link to detail info -dao.proposal.display.link.prompt=Link to GitHub issue +dao.proposal.display.link=Link to detailed info +dao.proposal.display.link.prompt=Link to proposal dao.proposal.display.requestedBsq=Requested amount in BSQ dao.proposal.display.bsqAddress=BSQ address dao.proposal.display.txId=Proposal transaction ID diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java index da3d883c7a9..f3fd978989d 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java @@ -29,6 +29,7 @@ import bisq.desktop.util.GUIUtil; import bisq.desktop.util.Layout; import bisq.desktop.util.validation.BsqValidator; +import bisq.desktop.util.validation.RegexValidator; import bisq.core.btc.BaseCurrencyNetwork; import bisq.core.dao.DaoFacade; @@ -58,7 +59,6 @@ import bisq.core.user.Preferences; import bisq.core.util.BsqFormatter; import bisq.core.util.validation.InputValidator; -import bisq.core.util.validation.UrlInputValidator; import bisq.asset.Asset; @@ -230,8 +230,20 @@ public void createAllFields(String title, int gridRowStartIndex, double top, Pro linkInputTextField = addInputTextField(gridPane, ++gridRow, Res.get("dao.proposal.display.link")); linkInputTextField.setPromptText(Res.get("dao.proposal.display.link.prompt")); - if (isMakeProposalScreen) - linkInputTextField.setValidator(new UrlInputValidator()); + if (isMakeProposalScreen) { + RegexValidator validator = new RegexValidator(); + if (proposalType == ProposalType.COMPENSATION_REQUEST) { + validator.setPattern("https://bisq.network/compensation/\\d+"); + linkInputTextField.setText("https://bisq.network/compensation/#"); + } else if (proposalType == ProposalType.REIMBURSEMENT_REQUEST) { + validator.setPattern("https://bisq.network/reimbursement/\\d+"); + linkInputTextField.setText("https://bisq.network/reimbursement/#"); + } else { + validator.setPattern("https://bisq.network/proposals/\\d+"); + linkInputTextField.setText("https://bisq.network/proposals/#"); + } + linkInputTextField.setValidator(validator); + } inputControls.add(linkInputTextField); Tuple3 tuple = addTopLabelHyperlinkWithIcon(gridPane, gridRow, From 69df47d876d7b78e1835ffa97dc874698411c538 Mon Sep 17 00:00:00 2001 From: Devin Bileck <603793+devinbileck@users.noreply.github.com> Date: Fri, 12 Apr 2019 17:11:03 -0700 Subject: [PATCH 2/2] Update links based on https://github.com/bisq-network/bisq-website/pull/164 --- .../desktop/main/dao/governance/ProposalDisplay.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java index f3fd978989d..0981633b2ce 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java @@ -233,14 +233,14 @@ public void createAllFields(String title, int gridRowStartIndex, double top, Pro if (isMakeProposalScreen) { RegexValidator validator = new RegexValidator(); if (proposalType == ProposalType.COMPENSATION_REQUEST) { - validator.setPattern("https://bisq.network/compensation/\\d+"); - linkInputTextField.setText("https://bisq.network/compensation/#"); + validator.setPattern("https://bisq.network/dao-compensation/\\d+"); + linkInputTextField.setText("https://bisq.network/dao-compensation/#"); } else if (proposalType == ProposalType.REIMBURSEMENT_REQUEST) { - validator.setPattern("https://bisq.network/reimbursement/\\d+"); - linkInputTextField.setText("https://bisq.network/reimbursement/#"); + validator.setPattern("https://bisq.network/dao-reimbursement/\\d+"); + linkInputTextField.setText("https://bisq.network/dao-reimbursement/#"); } else { - validator.setPattern("https://bisq.network/proposals/\\d+"); - linkInputTextField.setText("https://bisq.network/proposals/#"); + validator.setPattern("https://bisq.network/dao-proposals/\\d+"); + linkInputTextField.setText("https://bisq.network/dao-proposals/#"); } linkInputTextField.setValidator(validator); }