Merge pull request #5680 from xyzmaker123/community-tab

Community tab
This commit is contained in:
Christoph Atteneder 2021-09-27 11:04:13 +02:00 committed by GitHub
commit b098656d0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 553 additions and 2 deletions

View File

@ -222,6 +222,8 @@ shared.unconfirmedTransactionsLimitReached=You have too many unconfirmed transac
shared.numItemsLabel=Number of entries: {0}
shared.filter=Filter
shared.enabled=Enabled
shared.openUrl=Open URL
shared.copyUrl=Copy URL
####################################################################
@ -241,6 +243,7 @@ mainView.menu.support=Support
mainView.menu.settings=Settings
mainView.menu.account=Account
mainView.menu.dao=DAO
mainView.menu.community=Community
mainView.marketPriceWithProvider.label=Market price by {0}
mainView.marketPrice.bisqInternalPrice=Price of latest Bisq trade
@ -2523,6 +2526,50 @@ dao.factsAndFigures.transactions.invalidTx=No. of all invalid transactions
dao.factsAndFigures.transactions.irregularTx=No. of all irregular transactions
####################################################################
# Community
####################################################################
community.join.title=Join the community
community.join.description.part1=Bisq is social. Come and join our community on any of the following platforms.
community.join.description.part2=We are interested in helping make Bisq better, we'd love to hear from you!
community.section.getInTouch.title=Get in touch with developers and get support
community.section.getInTouch.description=Keybase and Github are the top two platforms you should access for all things Bisq. You can follow along with project, suggest changes, get support. If you are using Bisq it is recommended to have a Github and Keybase account if you would live to get involved in any discussions.
community.section.ask.title=Ask questions to other users
community.section.updates.title=Get project updates
community.section.chat.title=Chat with other users
community.section.getStarted.title=Get started
community.section.documentation.title=Read documentation
community.platform.github.title=Github
community.platform.github.description=The place to go to collaborate in the development of Bisq, raise an issue, and access any code or documentation
community.platform.keybase.title=Keybase
community.platform.keybase.description=Most active Bisq community for live support and discussion around all things Bisq.
community.platform.forum.title=Forum
community.platform.forum.description=Great place for discussion and general questions about Bisq.
community.platform.reddit.title=Reddit
community.platform.reddit.description=Get involved in the Bisq subreddit.
community.platform.twitter.title=Twitter
community.platform.twitter.description=Follow our Twitter for news and updates.
community.platform.youtube.title=Youtube
community.platform.youtube.description=Watch some great tutorial for how to use Bisq.
community.platform.mastadon.title=Mastadon
community.platform.mastadon.description=A community-owned alternative to Twitter
community.platform.blog.title=Bisq Blog
community.platform.blog.description=Read the latest news and developments from Bisq.
community.platform.markets.title=Bisq Markets
community.platform.markets.description=Follow the market trading volumes accross multiple currencies.
community.platform.telegram.title=Telegram
community.platform.telegram.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support.
community.platform.irc.title=Freenode IRC
community.platform.irc.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support.
community.platform.matrix.title=Matrix
community.platform.matrix.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support.
community.platform.website.title=Bisq - Getting Started
community.platform.website.description=The Bisq website Getting Started guide has everything you need to get started with Bisq.
community.platform.wiki.title=Bisq Wiki
community.platform.wiki.description=For all guides, tutorials, and how-to's regarding using Bisq.
####################################################################
# Windows

View File

@ -2192,6 +2192,105 @@ textfield */
-fx-padding: 2 0 0 0;
}
/********************************************************************************************************************
* *
* Community *
* *
********************************************************************************************************************/
.community-tab {
-fx-background-color: -bs-content-background-gray;
-fx-padding: 30 20;
}
.community-heading-1 {
-fx-font-weight: bold;
-fx-font-size: 1.4em;
}
.community-heading-2 {
-fx-padding: 45 0 0 0;
-fx-font-weight: normal;
-fx-font-size: 1.4em;
}
.community-platform-item {
-fx-padding: 20;
-fx-background-color: -fx-base;
}
.community-platform-item:hover {
-fx-background-color: -bs-community-platform-hover;
}
.community-platform-item-title {
-fx-font-size: 1.4em;
-fx-font-weight: 600;
-fx-text-fill: -bs-color-primary;
}
.community-platform-item:hover .community-platform-item-title {
-fx-text-fill: -fx-dark-text-color;
}
.community-platform-item-description {
-fx-text-fill: -bs-community-platform-description;
}
.community-platform-item:hover .community-platform-item-description {
-fx-text-fill: -fx-dark-text-color;
}
.community-platform-item-button {
-fx-background-color: transparent !important;
-fx-padding: 0;
-fx-cursor: hand;
}
.community-icon {
-fx-min-width: 3.6em;
-fx-min-height: 3em;
-fx-background-color: -bs-community-platform-icon;
}
.icon-keybase {
-fx-shape: "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z";
}
.icon-mastodon {
-fx-shape: "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z";
}
.icon-reddit {
-fx-shape: "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z";
}
.icon-telegram {
-fx-shape: "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z";
}
.icon-matrix {
-fx-shape: "M506.3,508.1V11.9h-35.7V0H520v520h-49.4v-11.9H506.3z M13.7,11.9v496.2h35.7V520H0V0h49.4v11.9H13.7z M166.3,169.2v25.1h0.7c6.7-9.6,14.8-17,24.2-22.2c9.4-5.3,20.3-7.9,32.5-7.9c11.7,0,22.4,2.3,32.1,6.8 c9.7,4.5,17,12.6,22.1,24c5.5-8.1,13-15.3,22.4-21.5c9.4-6.2,20.6-9.3,33.5-9.3c9.8,0,18.9,1.2,27.3,3.6c8.4,2.4,15.5,6.2,21.5,11.5 c6,5.3,10.6,12.1,14,20.6c3.3,8.5,5,18.7,5,30.7v124.1h-50.9V249.6c0-6.2-0.2-12.1-0.7-17.6c-0.5-5.5-1.8-10.3-3.9-14.3 c-2.2-4.1-5.3-7.3-9.5-9.7c-4.2-2.4-9.9-3.6-17-3.6c-7.2,0-13,1.4-17.4,4.1c-4.4,2.8-7.9,6.3-10.4,10.8c-2.5,4.4-4.2,9.4-5,15.1 c-0.8,5.6-1.3,11.3-1.3,17v103.3h-50.9v-104c0-5.5-0.1-10.9-0.4-16.3c-0.2-5.4-1.3-10.3-3.1-14.9c-1.8-4.5-4.8-8.2-9-10.9 c-4.2-2.7-10.3-4.1-18.5-4.1c-2.4,0-5.6,0.5-9.5,1.6c-3.9,1.1-7.8,3.1-11.5,6.1c-3.7,3-6.9,7.3-9.5,12.9c-2.6,5.6-3.9,13-3.9,22.1 v107.6h-50.9V169.2H166.3z";
}
.icon-github {
-fx-shape: "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z";
}
.icon-forum {
-fx-shape: "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z";
}
.icon-twitter {
-fx-shape: "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z";
}
.icon-youtube {
-fx-shape: "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z";
}
.icon-globe {
-fx-shape: "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z";
}
/********************************************************************************************************************
* *
* News *

View File

@ -28,6 +28,7 @@ import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.components.AutoTooltipToggleButton;
import bisq.desktop.components.BusyAnimation;
import bisq.desktop.main.account.AccountView;
import bisq.desktop.main.community.CommunityView;
import bisq.desktop.main.dao.DaoView;
import bisq.desktop.main.funds.FundsView;
import bisq.desktop.main.market.MarketView;
@ -186,6 +187,7 @@ public class MainView extends InitializableView<StackPane, MainViewModel>
ToggleButton settingsButton = new NavButton(SettingsView.class, Res.get("mainView.menu.settings"));
ToggleButton accountButton = new NavButton(AccountView.class, Res.get("mainView.menu.account"));
ToggleButton daoButton = new NavButton(DaoView.class, Res.get("mainView.menu.dao"));
ToggleButton communityButton = new NavButton(CommunityView.class, Res.get("mainView.menu.community"));
JFXBadge portfolioButtonWithBadge = new JFXBadge(portfolioButton);
JFXBadge supportButtonWithBadge = new JFXBadge(supportButton);
@ -321,7 +323,7 @@ public class MainView extends InitializableView<StackPane, MainViewModel>
HBox.setHgrow(primaryNav, Priority.SOMETIMES);
HBox secondaryNav = new HBox(supportButtonWithBadge, getNavigationSpacer(), settingsButtonWithBadge,
getNavigationSpacer(), accountButton, getNavigationSpacer(), daoButton);
getNavigationSpacer(), accountButton, getNavigationSpacer(), daoButton, getNavigationSpacer(), communityButton);
secondaryNav.getStyleClass().add("nav-secondary");
HBox.setHgrow(secondaryNav, Priority.SOMETIMES);

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ This file is part of Bisq.
~
~ Bisq is free software: you can redistribute it and/or modify it
~ under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or (at
~ your option) any later version.
~
~ Bisq is distributed in the hope that it will be useful, but WITHOUT
~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
~ License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with Bisq. If not, see <http://www.gnu.org/licenses/>.
-->
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.VBox?>
<ScrollPane
fx:id="root"
fx:controller="bisq.desktop.main.community.CommunityView"
fitToWidth="true"
hbarPolicy="NEVER"
AnchorPane.bottomAnchor="0.0"
AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0"
AnchorPane.topAnchor="0.0"
xmlns:fx="http://javafx.com/fxml"
>
<VBox fx:id="content" spacing="20" styleClass="community-tab" />
</ScrollPane>

View File

@ -0,0 +1,226 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.community;
import bisq.desktop.common.view.FxmlView;
import bisq.desktop.common.view.InitializableView;
import bisq.desktop.common.view.ViewLoader;
import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.main.community.platform.Platform;
import bisq.desktop.main.community.platform.PlatformView;
import bisq.core.locale.Res;
import javax.inject.Inject;
import javafx.fxml.FXML;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@FxmlView
public class CommunityView extends InitializableView<ScrollPane, Void> {
@FXML
VBox content;
private final ViewLoader viewLoader;
private final Map<String, Platform> PLATFORMS = new HashMap<>() {{
put("github",
new Platform(
Res.get("community.platform.github.title"),
Res.get("community.platform.github.description"),
"https://github.com/bisq-network",
"icon-github"
)
);
put("keybase",
new Platform(
Res.get("community.platform.keybase.title"),
Res.get("community.platform.keybase.description"),
"https://keybase.io/team/bisq",
"icon-keybase"
)
);
put("forum",
new Platform(
Res.get("community.platform.forum.title"),
Res.get("community.platform.forum.description"),
"https://bisq.community/",
"icon-forum"
)
);
put("reddit",
new Platform(
Res.get("community.platform.reddit.title"),
Res.get("community.platform.reddit.description"),
"https://reddit.com/r/bisq",
"icon-reddit"
)
);
put("twitter",
new Platform(
Res.get("community.platform.twitter.title"),
Res.get("community.platform.twitter.description"),
"https://twitter.com/bisq_network/",
"icon-twitter"
)
);
put("youtube",
new Platform(
Res.get("community.platform.youtube.title"),
Res.get("community.platform.youtube.description"),
"https://youtube.com/c/bisq-network",
"icon-youtube"
)
);
put("mastadon",
new Platform(
Res.get("community.platform.mastadon.title"),
Res.get("community.platform.mastadon.description"),
"https://bitcoinhackers.org/@bisq",
"icon-mastodon"
)
);
put("blog",
new Platform(
Res.get("community.platform.blog.title"),
Res.get("community.platform.blog.description"),
"https://bisq.network/blog"
)
);
put("markets",
new Platform(
Res.get("community.platform.markets.title"),
Res.get("community.platform.markets.description"),
"https://bisq.network/markets"
)
);
put("telegram",
new Platform(
Res.get("community.platform.telegram.title"),
Res.get("community.platform.telegram.description"),
"https://t.me/bisq_p2p",
"icon-telegram"
)
);
put("irc",
new Platform(
Res.get("community.platform.irc.title"),
Res.get("community.platform.irc.description"),
"https://webchat.freenode.net/?channels=bisq",
"icon-globe"
)
);
put("matrix",
new Platform(
Res.get("community.platform.matrix.title"),
Res.get("community.platform.matrix.description"),
"https://matrix.to/#/#freenode_#bisq:matrix.org",
"icon-matrix"
)
);
put("website",
new Platform(
Res.get("community.platform.website.title"),
Res.get("community.platform.website.description"),
"https://bisq.network/"
)
);
put("wiki",
new Platform(
Res.get("community.platform.wiki.title"),
Res.get("community.platform.wiki.description"),
"https://bisq.wiki/"
)
);
}};
@Inject
public CommunityView(ViewLoader viewLoader) {
this.viewLoader = viewLoader;
}
@Override
public void initialize() {
addLabel(content, Res.get("community.join.title"), "community-heading-1");
addLabel(content, Res.get("community.join.description.part1"));
addLabel(content, Res.get("community.join.description.part2"));
addSectionLabel(content, Res.get("community.section.getInTouch.title"));
addLabel(content, Res.get("community.section.getInTouch.description"));
addPlatformsBox(content, Arrays.asList("github", "keybase"), true);
addSectionLabel(content, Res.get("community.section.ask.title"));
addPlatformsBox(content, Arrays.asList("forum", "reddit"));
addSectionLabel(content, Res.get("community.section.updates.title"));
addPlatformsBox(content, Arrays.asList("twitter", "youtube", "mastadon"));
addPlatformsBox(content, Arrays.asList("blog", "markets"));
addSectionLabel(content, Res.get("community.section.chat.title"));
addPlatformsBox(content, Arrays.asList("telegram", "irc", "matrix"));
addSectionLabel(content, Res.get("community.section.getStarted.title"));
addPlatformsBox(content, List.of("website"));
addSectionLabel(content, Res.get("community.section.documentation.title"));
addPlatformsBox(content, List.of("wiki"));
}
private void addPlatformsBox(VBox content, List<String> slugs, boolean wider) {
HBox platformsBox = new HBox();
platformsBox.setSpacing(20);
slugs.forEach(slug -> addPlatform(platformsBox, PLATFORMS.get(slug), wider));
content.getChildren().add(platformsBox);
}
private void addPlatformsBox(VBox content, List<String> slugs) {
addPlatformsBox(content, slugs, false);
}
private void addPlatform(HBox box, Platform platform, boolean wider) {
PlatformView platformView = (PlatformView) viewLoader.load(PlatformView.class);
platformView.setData(platform, wider);
box.getChildren().add(platformView.getRoot());
}
private void addLabel(Pane pane, String message, String styleClass) {
AutoTooltipLabel label = new AutoTooltipLabel(message);
if (styleClass != null) {
label.getStyleClass().add(styleClass);
}
pane.getChildren().add(label);
}
private void addLabel(Pane pane, String message) {
addLabel(pane, message, null);
}
private void addSectionLabel(Pane pane, String message) {
addLabel(pane, message, "community-heading-2");
}
}

View File

@ -0,0 +1,34 @@
package bisq.desktop.main.community.platform;
public class Platform {
private final String title;
private final String description;
private final String url;
private final String iconClass;
public Platform(String title, String description, String url, String iconClass) {
this.title = title;
this.description = description;
this.iconClass = iconClass;
this.url = url;
}
public Platform(String title, String description, String url) {
this(title, description, url, null);
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
public String getUrl() {
return url;
}
public String getIconClass() {
return iconClass;
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ This file is part of Bisq.
~
~ Bisq is free software: you can redistribute it and/or modify it
~ under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or (at
~ your option) any later version.
~
~ Bisq is distributed in the hope that it will be useful, but WITHOUT
~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
~ License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with Bisq. If not, see <http://www.gnu.org/licenses/>.
-->
<?import javafx.scene.layout.HBox?>
<HBox
fx:id="root"
fx:controller="bisq.desktop.main.community.platform.PlatformView"
styleClass="community-platform-item"
prefWidth="400"
xmlns:fx="http://javafx.com/fxml"
/>

View File

@ -0,0 +1,74 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.community.platform;
import bisq.desktop.common.view.AbstractView;
import bisq.desktop.common.view.FxmlView;
import bisq.desktop.components.AutoTooltipButton;
import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.util.FormBuilder;
import bisq.desktop.util.GUIUtil;
import bisq.core.locale.Res;
import bisq.common.util.Utilities;
import de.jensd.fx.fontawesome.AwesomeIcon;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
@FxmlView
public class PlatformView extends AbstractView<HBox, Void> {
public void setData(Platform platform, boolean wider) {
getRoot().setPrefWidth(wider ? 600 : 450);
if (platform.getIconClass() != null) {
getRoot().setSpacing(15.0);
AutoTooltipLabel imageLabel = new AutoTooltipLabel();
imageLabel.getStyleClass().addAll("community-icon", platform.getIconClass());
getRoot().getChildren().add(imageLabel);
}
VBox box = new VBox();
box.setSpacing(15);
getRoot().getChildren().add(box);
AutoTooltipLabel titleLabel = new AutoTooltipLabel(platform.getTitle());
titleLabel.getStyleClass().add("community-platform-item-title");
box.getChildren().add(titleLabel);
AutoTooltipLabel descriptionLabel = new AutoTooltipLabel(platform.getDescription());
descriptionLabel.getStyleClass().add("community-platform-item-description");
descriptionLabel.setWrapText(true);
box.getChildren().add(descriptionLabel);
HBox hbox = new HBox();
hbox.setSpacing(50);
box.getChildren().add(hbox);
AutoTooltipButton openURLButton = new AutoTooltipButton(Res.get("shared.openUrl"), FormBuilder.getIcon(AwesomeIcon.EXTERNAL_LINK));
openURLButton.setOnAction((event) -> GUIUtil.openWebPage(platform.getUrl(), false));
openURLButton.getStyleClass().add("community-platform-item-button");
hbox.getChildren().add(openURLButton);
AutoTooltipButton copyURLButton = new AutoTooltipButton(Res.get("shared.copyUrl"), FormBuilder.getIcon(AwesomeIcon.COPY));
copyURLButton.setOnAction((event) -> Utilities.copyToClipboard(platform.getUrl()));
copyURLButton.getStyleClass().add("community-platform-item-button");
hbox.getChildren().add(copyURLButton);
}
}

View File

@ -137,6 +137,9 @@
-bs-decimals: #db6300;
-bs-soft-red: #aa4c3b;
-bs-turquoise-light: #11eeee;
-bs-community-platform-icon: -fx-light-text-color;
-bs-community-platform-description: -bs-color-gray-4;
-bs-community-platform-hover: #2ea33c;
/* dao chart colors */
-bs-chart-dao-line1: -bs-color-blue-5;

View File

@ -104,6 +104,9 @@
-bs-prompt-text: -fx-control-inner-background;
-bs-soft-red: #aa4c3b;
-bs-turquoise-light: #11eeee;
-bs-community-platform-icon: -fx-dark-text-color;
-bs-community-platform-description: -fx-dark-text-color;
-bs-community-platform-hover: -bs-color-gray-2;
/* dao chart colors */
-bs-chart-dao-line1: -bs-color-blue-5;

View File

@ -18,7 +18,7 @@
package bisq.desktop.util;
public class Layout {
public static final double INITIAL_WINDOW_WIDTH = 1200;
public static final double INITIAL_WINDOW_WIDTH = 1240;
public static final double INITIAL_WINDOW_HEIGHT = 710; //740
public static final double MIN_WINDOW_WIDTH = 1020;
public static final double MIN_WINDOW_HEIGHT = 620;