feat: update stats page

This commit is contained in:
Maël Gangloff 2024-08-22 19:47:52 +02:00
parent 26ae674117
commit 68bd35e10e
No known key found for this signature in database
GPG Key ID: 11FDC81C24A7F629
2 changed files with 80 additions and 48 deletions

View File

@ -18,7 +18,7 @@ export default function StatisticsPage() {
getStatistics().then(setStats) getStatistics().then(setStats)
}, []) }, [])
const successRatio = stats !== undefined ? const successRate = stats !== undefined ?
(stats.domainPurchaseFailed === 0 ? undefined : stats.domainPurchased / stats.domainPurchaseFailed) (stats.domainPurchaseFailed === 0 ? undefined : stats.domainPurchased / stats.domainPurchaseFailed)
: undefined : undefined
@ -38,7 +38,7 @@ export default function StatisticsPage() {
<Card bordered={false}> <Card bordered={false}>
<Statistic <Statistic
loading={stats === undefined} loading={stats === undefined}
title={t`Alert sent`} title={t`Alerts sent`}
prefix={<NotificationOutlined/>} prefix={<NotificationOutlined/>}
value={stats?.alertSent} value={stats?.alertSent}
valueStyle={{color: 'blueviolet'}} valueStyle={{color: 'blueviolet'}}
@ -52,7 +52,7 @@ export default function StatisticsPage() {
<Card bordered={false}> <Card bordered={false}>
<Statistic <Statistic
loading={stats === undefined} loading={stats === undefined}
title={t`Domain name in database`} title={t`Domain names in database`}
prefix={<DatabaseOutlined/>} prefix={<DatabaseOutlined/>}
value={stats?.rdapQueries} value={stats?.rdapQueries}
valueStyle={{color: 'darkblue'}} valueStyle={{color: 'darkblue'}}
@ -63,7 +63,7 @@ export default function StatisticsPage() {
<Card bordered={false}> <Card bordered={false}>
<Statistic <Statistic
loading={stats === undefined} loading={stats === undefined}
title={t`Domain name tracked`} title={t`Tracked domain names`}
prefix={<AimOutlined/>} prefix={<AimOutlined/>}
value={stats?.domainTracked} value={stats?.domainTracked}
valueStyle={{color: 'darkviolet'}} valueStyle={{color: 'darkviolet'}}
@ -77,7 +77,7 @@ export default function StatisticsPage() {
<Card bordered={false}> <Card bordered={false}>
<Statistic <Statistic
loading={stats === undefined} loading={stats === undefined}
title={t`Domain name purchased`} title={t`Purchased domain names`}
prefix={<FieldTimeOutlined/>} prefix={<FieldTimeOutlined/>}
value={stats?.domainPurchased} value={stats?.domainPurchased}
valueStyle={{color: '#3f8600'}} valueStyle={{color: '#3f8600'}}
@ -87,31 +87,33 @@ export default function StatisticsPage() {
<Col span={12}> <Col span={12}>
<Card bordered={false}> <Card bordered={false}>
<Tooltip <Tooltip
title={t`This value is based on the status code of the HTTP response from the providers following the order.`}> title={t`This value is based on the status code of the HTTP response from the providers following the domain order.`}>
<Statistic <Statistic
loading={stats === undefined} loading={stats === undefined}
title={t`Success ratio`} title={t`Success rate`}
value={successRatio === undefined ? '-' : successRatio * 100} value={successRate === undefined ? '-' : successRate * 100}
suffix='%' suffix='%'
precision={2} precision={2}
valueStyle={{color: successRatio === undefined ? 'black' : successRatio >= 0.5 ? 'darkgreen' : 'orange'}} valueStyle={{color: successRate === undefined ? 'grey' : successRate >= 0.5 ? 'darkgreen' : 'orange'}}
/> />
</Tooltip> </Tooltip>
</Card> </Card>
</Col> </Col>
</Row> </Row>
<Divider/> <Divider/>
<Row gutter={16}> <Row gutter={16} justify='center' align='middle'>
{stats?.domainCount.map(({domain, tld}) => <Col span={4}> {stats?.domainCount
<Card bordered={false}> .sort((a, b) => b.domain - a.domain)
<Statistic .map(({domain, tld}) => <Col span={4}>
loading={stats === undefined} <Card bordered={false}>
title={`.${tld}`} <Statistic
value={domain} loading={stats === undefined}
valueStyle={{color: 'darkblue'}} title={`.${tld}`}
/> value={domain}
</Card> valueStyle={{color: 'darkblue'}}
</Col>)} />
</Card>
</Col>)}
</Row> </Row>
</> </>
} }

View File

@ -722,7 +722,7 @@ msgid "Domain Finder"
msgstr "" msgstr ""
#: assets/components/Sider.tsx:48 #: assets/components/Sider.tsx:48
#: assets/pages/info/TldPage.tsx:65 #: assets/pages/search/TldPage.tsx:65
msgid "TLD" msgid "TLD"
msgstr "" msgstr ""
@ -763,7 +763,7 @@ msgid "Statistics"
msgstr "" msgstr ""
#: assets/components/Sider.tsx:105 #: assets/components/Sider.tsx:105
#: assets/pages/watchdog/UserPage.tsx:16 #: assets/pages/UserPage.tsx:16
msgid "My Account" msgid "My Account"
msgstr "" msgstr ""
@ -796,23 +796,23 @@ msgid ""
"WHOIS by its registrar." "WHOIS by its registrar."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:71 #: assets/pages/search/TldPage.tsx:71
msgid "Flag" msgid "Flag"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:74 #: assets/pages/search/TldPage.tsx:74
msgid "Country" msgid "Country"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:79 #: assets/pages/search/TldPage.tsx:79
msgid "Registry Operator" msgid "Registry Operator"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:106 #: assets/pages/search/TldPage.tsx:106
msgid "This page presents all active TLDs in the root zone database." msgid "This page presents all active TLDs in the root zone database."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:109 #: assets/pages/search/TldPage.tsx:109
msgid "" msgid ""
"IANA provides the list of currently active TLDs, regardless of their type, " "IANA provides the list of currently active TLDs, regardless of their type, "
"and ICANN provides the list of gTLDs.\n" "and ICANN provides the list of gTLDs.\n"
@ -824,55 +824,47 @@ msgid ""
"At the same time, the list of root RDAP servers is updated." "At the same time, the list of root RDAP servers is updated."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:120 #: assets/pages/search/TldPage.tsx:120
msgid "Sponsored Top-Level-Domains" msgid "Sponsored Top-Level-Domains"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:122 #: assets/pages/search/TldPage.tsx:122
msgid "" msgid ""
"Top-level domains sponsored by specific organizations that set rules for " "Top-level domains sponsored by specific organizations that set rules for "
"registration and use, often related to particular interest groups or " "registration and use, often related to particular interest groups or "
"industries." "industries."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:129 #: assets/pages/search/TldPage.tsx:129
msgid "Generic Top-Level-Domains" msgid "Generic Top-Level-Domains"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:131 #: assets/pages/search/TldPage.tsx:131
msgid "" msgid ""
"Generic top-level domains open to everyone, not restricted by specific " "Generic top-level domains open to everyone, not restricted by specific "
"criteria, representing various themes or industries." "criteria, representing various themes or industries."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:138 #: assets/pages/search/TldPage.tsx:138
msgid "Brand Generic Top-Level-Domains" msgid "Brand Generic Top-Level-Domains"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:140 #: assets/pages/search/TldPage.tsx:140
msgid "" msgid ""
"Generic top-level domains associated with specific brands, allowing " "Generic top-level domains associated with specific brands, allowing "
"companies to use their own brand names as domains." "companies to use their own brand names as domains."
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:147 #: assets/pages/search/TldPage.tsx:147
msgid "Country-Code Top-Level-Domains" msgid "Country-Code Top-Level-Domains"
msgstr "" msgstr ""
#: assets/pages/info/TldPage.tsx:149 #: assets/pages/search/TldPage.tsx:149
msgid "" msgid ""
"Top-level domains based on country codes, identifying websites according to " "Top-level domains based on country codes, identifying websites according to "
"their country of origin." "their country of origin."
msgstr "" msgstr ""
#: assets/pages/watchdog/UserPage.tsx:18
msgid "Username"
msgstr ""
#: assets/pages/watchdog/UserPage.tsx:21
msgid "Roles"
msgstr ""
#: assets/pages/tracking/ConnectorsPage.tsx:20 #: assets/pages/tracking/ConnectorsPage.tsx:20
msgid "Connector created !" msgid "Connector created !"
msgstr "" msgstr ""
@ -897,10 +889,48 @@ msgstr ""
msgid "Sorry, the page you visited does not exist." msgid "Sorry, the page you visited does not exist."
msgstr "" msgstr ""
#: assets/pages/StatisticsPage.tsx:32
msgid "RDAP queries"
msgstr ""
#: assets/pages/StatisticsPage.tsx:41
msgid "Alerts sent"
msgstr ""
#: assets/pages/StatisticsPage.tsx:55
msgid "Domain names in database"
msgstr ""
#: assets/pages/StatisticsPage.tsx:66
msgid "Tracked domain names"
msgstr ""
#: assets/pages/StatisticsPage.tsx:80
msgid "Purchased domain names"
msgstr ""
#: assets/pages/StatisticsPage.tsx:90
msgid ""
"This value is based on the status code of the HTTP response from the "
"providers following the domain order."
msgstr ""
#: assets/pages/StatisticsPage.tsx:93
msgid "Success rate"
msgstr ""
#: assets/pages/LoginPage.tsx:33 #: assets/pages/LoginPage.tsx:33
msgid "Create an account" msgid "Create an account"
msgstr "" msgstr ""
#: assets/pages/UserPage.tsx:18
msgid "Username"
msgstr ""
#: assets/pages/UserPage.tsx:21
msgid "Roles"
msgstr ""
#: assets/utils/functions/showErrorAPI.tsx:19 #: assets/utils/functions/showErrorAPI.tsx:19
#, javascript-format #, javascript-format
msgid "Please retry after ${ duration } seconds" msgid "Please retry after ${ duration } seconds"
@ -953,23 +983,23 @@ msgid ""
"another" "another"
msgstr "" msgstr ""
#: assets/App.tsx:101 #: assets/App.tsx:100
msgid "TOS" msgid "TOS"
msgstr "" msgstr ""
#: assets/App.tsx:102 #: assets/App.tsx:101
msgid "Privacy Policy" msgid "Privacy Policy"
msgstr "" msgstr ""
#: assets/App.tsx:103 #: assets/App.tsx:102
msgid "FAQ" msgid "FAQ"
msgstr "" msgstr ""
#: assets/App.tsx:105 #: assets/App.tsx:104
msgid "Documentation" msgid "Documentation"
msgstr "" msgstr ""
#: assets/App.tsx:108 #: assets/App.tsx:107
#, javascript-format #, javascript-format
msgid "" msgid ""
"${ ProjectLink } is an open source project distributed under the ${ " "${ ProjectLink } is an open source project distributed under the ${ "