From 176d643360a0ca311d81b4638f6723935d9f25fd Mon Sep 17 00:00:00 2001 From: NickolaiYurchenko Date: Tue, 18 Feb 2020 19:41:01 +0200 Subject: [PATCH] web/storagenode: payments markup Change-Id: Ifb65f126408e9593febff153f88abf0aa3644b79 --- web/storagenode/package.json | 3 +- .../src/app/components/SNOContentFilling.vue | 55 ++++- .../components/payments/EstimationArea.vue | 111 +++++++++ .../payments/EstimationPeriodDropdown.vue | 81 +++++++ .../components/payments/EstimationTable.vue | 189 +++++++++++++++ .../components/payments/HeldHistoryTable.vue | 126 ++++++++++ .../app/components/payments/HeldProgress.vue | 158 +++++++++++++ .../payments/PayoutPeriodCalendar.vue | 217 ++++++++++++++++++ .../app/components/payments/SingleInfo.vue | 51 ++++ web/storagenode/src/app/router/index.ts | 7 + web/storagenode/src/app/views/PayoutArea.vue | 160 +++++++++++++ .../static/images/BlackArrowExpand.svg | 3 + .../static/images/BlackArrowHide.svg | 3 + .../static/images/BlueArrowRight.svg | 3 + .../static/images/payments/GrayArrowLeft.svg | 3 + 15 files changed, 1167 insertions(+), 3 deletions(-) create mode 100644 web/storagenode/src/app/components/payments/EstimationArea.vue create mode 100644 web/storagenode/src/app/components/payments/EstimationPeriodDropdown.vue create mode 100644 web/storagenode/src/app/components/payments/EstimationTable.vue create mode 100644 web/storagenode/src/app/components/payments/HeldHistoryTable.vue create mode 100644 web/storagenode/src/app/components/payments/HeldProgress.vue create mode 100644 web/storagenode/src/app/components/payments/PayoutPeriodCalendar.vue create mode 100644 web/storagenode/src/app/components/payments/SingleInfo.vue create mode 100644 web/storagenode/src/app/views/PayoutArea.vue create mode 100644 web/storagenode/static/images/BlackArrowExpand.svg create mode 100644 web/storagenode/static/images/BlackArrowHide.svg create mode 100644 web/storagenode/static/images/BlueArrowRight.svg create mode 100644 web/storagenode/static/images/payments/GrayArrowLeft.svg diff --git a/web/storagenode/package.json b/web/storagenode/package.json index 43fc30424..ae90f5a96 100644 --- a/web/storagenode/package.json +++ b/web/storagenode/package.json @@ -79,7 +79,8 @@ "selector-pseudo-class-parentheses-space-inside": "never", "selector-max-type": 1, "font-family-no-missing-generic-family-keyword": true, - "at-rule-no-unknown": true, + "at-rule-no-unknown": null, + "scss/at-rule-no-unknown": true, "media-feature-range-operator-space-before": "always", "media-feature-range-operator-space-after": "always", "media-feature-parentheses-space-inside": "never", diff --git a/web/storagenode/src/app/components/SNOContentFilling.vue b/web/storagenode/src/app/components/SNOContentFilling.vue index 7c0e57a7b..8251d73bf 100644 --- a/web/storagenode/src/app/components/SNOContentFilling.vue +++ b/web/storagenode/src/app/components/SNOContentFilling.vue @@ -3,7 +3,7 @@ @@ -105,11 +115,15 @@ import ChecksArea from '@/app/components/ChecksArea.vue'; import DiskSpaceChart from '@/app/components/DiskSpaceChart.vue'; import EgressChart from '@/app/components/EgressChart.vue'; import IngressChart from '@/app/components/IngressChart.vue'; +import EstimationArea from '@/app/components/payments/EstimationArea.vue'; +import SingleInfo from '@/app/components/payments/SingleInfo.vue'; import PayoutArea from '@/app/components/PayoutArea.vue'; import SatelliteSelection from '@/app/components/SatelliteSelection.vue'; +import BlueArrowRight from '@/../static/images/BlueArrowRight.svg'; import LargeDisqualificationIcon from '@/../static/images/largeDisqualify.svg'; +import { RouteConfig } from '@/app/router'; import { APPSTATE_ACTIONS } from '@/app/store/modules/appState'; import { formatBytes } from '@/app/utils/converter'; import { BandwidthInfo, DiskSpaceInfo, SatelliteInfo } from '@/storagenode/dashboard'; @@ -129,6 +143,7 @@ class Checks { @Component ({ components: { + EstimationArea, EgressChart, IngressChart, SatelliteSelection, @@ -138,9 +153,12 @@ class Checks { ChecksArea, PayoutArea, LargeDisqualificationIcon, + BlueArrowRight, + SingleInfo, }, }) export default class SNOContentFilling extends Vue { + public readonly PAYOUT_PATH: string = RouteConfig.Payout.path; public chartWidth: number = 0; public chartHeight: number = 0; @@ -383,6 +401,27 @@ export default class SNOContentFilling extends Vue { } } + &__payout-header { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + + &__link { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-end; + + &__text { + font-size: 16px; + line-height: 22px; + color: #224ca5; + margin-right: 9px; + } + } + } + &__chart-area, &__checks-area { display: flex; @@ -394,6 +433,18 @@ export default class SNOContentFilling extends Vue { &__bar-info { width: 339px; } + + &__estimation-area { + margin-top: 11px; + } + + &__total-info-area { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + margin-top: 20px; + } } .chart-container { diff --git a/web/storagenode/src/app/components/payments/EstimationArea.vue b/web/storagenode/src/app/components/payments/EstimationArea.vue new file mode 100644 index 000000000..26ea781a9 --- /dev/null +++ b/web/storagenode/src/app/components/payments/EstimationArea.vue @@ -0,0 +1,111 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/EstimationPeriodDropdown.vue b/web/storagenode/src/app/components/payments/EstimationPeriodDropdown.vue new file mode 100644 index 000000000..70b36aa1a --- /dev/null +++ b/web/storagenode/src/app/components/payments/EstimationPeriodDropdown.vue @@ -0,0 +1,81 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/EstimationTable.vue b/web/storagenode/src/app/components/payments/EstimationTable.vue new file mode 100644 index 000000000..bf93df8f9 --- /dev/null +++ b/web/storagenode/src/app/components/payments/EstimationTable.vue @@ -0,0 +1,189 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/HeldHistoryTable.vue b/web/storagenode/src/app/components/payments/HeldHistoryTable.vue new file mode 100644 index 000000000..d2910aecd --- /dev/null +++ b/web/storagenode/src/app/components/payments/HeldHistoryTable.vue @@ -0,0 +1,126 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/HeldProgress.vue b/web/storagenode/src/app/components/payments/HeldProgress.vue new file mode 100644 index 000000000..7ae029b4d --- /dev/null +++ b/web/storagenode/src/app/components/payments/HeldProgress.vue @@ -0,0 +1,158 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/PayoutPeriodCalendar.vue b/web/storagenode/src/app/components/payments/PayoutPeriodCalendar.vue new file mode 100644 index 000000000..ecc87aca4 --- /dev/null +++ b/web/storagenode/src/app/components/payments/PayoutPeriodCalendar.vue @@ -0,0 +1,217 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/components/payments/SingleInfo.vue b/web/storagenode/src/app/components/payments/SingleInfo.vue new file mode 100644 index 000000000..c5be08a7a --- /dev/null +++ b/web/storagenode/src/app/components/payments/SingleInfo.vue @@ -0,0 +1,51 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/src/app/router/index.ts b/web/storagenode/src/app/router/index.ts index 6405c1f71..5d4ac8c15 100644 --- a/web/storagenode/src/app/router/index.ts +++ b/web/storagenode/src/app/router/index.ts @@ -9,12 +9,14 @@ import Page404 from '@/app/components/errors/Page404.vue'; import { NavigationLink } from '@/app/types/navigation'; import DashboardArea from '@/app/views/DashboardArea.vue'; import NotificationsArea from '@/app/views/NotificationsArea.vue'; +import PayoutArea from '@/app/views/PayoutArea.vue'; Vue.use(Router); export abstract class RouteConfig { public static Root = new NavigationLink('', 'Root'); public static Notifications = new NavigationLink('/notifications', 'Notifications'); + public static Payout = new NavigationLink('/payout-information', 'Payout'); } /** @@ -33,6 +35,11 @@ export const router = new Router({ name: RouteConfig.Notifications.name, component: NotificationsArea }, + // { + // path: RouteConfig.Payout.path, + // name: RouteConfig.Payout.name, + // component: PayoutArea + // }, { path: '*', name: '404', diff --git a/web/storagenode/src/app/views/PayoutArea.vue b/web/storagenode/src/app/views/PayoutArea.vue new file mode 100644 index 000000000..aab2da77f --- /dev/null +++ b/web/storagenode/src/app/views/PayoutArea.vue @@ -0,0 +1,160 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + + + + + + diff --git a/web/storagenode/static/images/BlackArrowExpand.svg b/web/storagenode/static/images/BlackArrowExpand.svg new file mode 100644 index 000000000..b4e1bc259 --- /dev/null +++ b/web/storagenode/static/images/BlackArrowExpand.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/storagenode/static/images/BlackArrowHide.svg b/web/storagenode/static/images/BlackArrowHide.svg new file mode 100644 index 000000000..061963eca --- /dev/null +++ b/web/storagenode/static/images/BlackArrowHide.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/storagenode/static/images/BlueArrowRight.svg b/web/storagenode/static/images/BlueArrowRight.svg new file mode 100644 index 000000000..b1d31f386 --- /dev/null +++ b/web/storagenode/static/images/BlueArrowRight.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/storagenode/static/images/payments/GrayArrowLeft.svg b/web/storagenode/static/images/payments/GrayArrowLeft.svg new file mode 100644 index 000000000..bbe189b79 --- /dev/null +++ b/web/storagenode/static/images/payments/GrayArrowLeft.svg @@ -0,0 +1,3 @@ + + +