summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYarden Shoham <git@yardenshoham.com>2023-04-17 21:26:01 +0300
committerGitHub <noreply@github.com>2023-04-17 14:26:01 -0400
commitf045e58cc7ba076a0ac4b0b5bf0702fa155eaa59 (patch)
tree1df8a5337e1f915e3f8aae79d0c317668cd8b401
parent5eb4c6386709259a9280c5aad6e0488f381144c5 (diff)
downloadgitea-f045e58cc7ba076a0ac4b0b5bf0702fa155eaa59.tar.gz
gitea-f045e58cc7ba076a0ac4b0b5bf0702fa155eaa59.zip
Localize activity heatmap (except tooltip) (#24131)
The calculation of the total sum is moved to the backend so a full HTML string could be sent. ![image](https://user-images.githubusercontent.com/20454870/232112381-c11d896b-ba47-40f8-b2a3-71cf4b3208de.png) - Closes #10669 - 2nd attempt (the first was in #21570) --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: Giteabot <teabot@gitea.io>
-rw-r--r--models/activities/user_heatmap.go9
-rw-r--r--options/locale/locale_en-US.ini6
-rw-r--r--routers/web/user/home.go1
-rw-r--r--routers/web/user/profile.go1
-rw-r--r--templates/user/heatmap.tmpl8
-rw-r--r--web_src/js/components/ActivityHeatmap.vue11
-rw-r--r--web_src/js/features/heatmap.js6
7 files changed, 30 insertions, 12 deletions
diff --git a/models/activities/user_heatmap.go b/models/activities/user_heatmap.go
index d3f0f0db73..3320799526 100644
--- a/models/activities/user_heatmap.go
+++ b/models/activities/user_heatmap.go
@@ -69,3 +69,12 @@ func getUserHeatmapData(user *user_model.User, team *organization.Team, doer *us
OrderBy("timestamp").
Find(&hdata)
}
+
+// GetTotalContributionsInHeatmap returns the total number of contributions in a heatmap
+func GetTotalContributionsInHeatmap(hdata []*UserHeatmapData) int64 {
+ var total int64
+ for _, v := range hdata {
+ total += v.Contributions
+ }
+ return total
+}
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index c2c8f1e120..2b0260a615 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -118,6 +118,12 @@ footer = Footer
footer.software = About Software
footer.links = Links
+[heatmap]
+number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
+no_contributions = No contributions
+less = Less
+more = More
+
[editor]
buttons.heading.tooltip = Add heading
buttons.bold.tooltip = Add bold text
diff --git a/routers/web/user/home.go b/routers/web/user/home.go
index a0a5dc3c4b..1f77379044 100644
--- a/routers/web/user/home.go
+++ b/routers/web/user/home.go
@@ -107,6 +107,7 @@ func Dashboard(ctx *context.Context) {
return
}
ctx.Data["HeatmapData"] = data
+ ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data)
}
feeds, count, err := activities_model.GetFeeds(ctx, activities_model.GetFeedsOptions{
diff --git a/routers/web/user/profile.go b/routers/web/user/profile.go
index d690fa4d01..b39ba58f12 100644
--- a/routers/web/user/profile.go
+++ b/routers/web/user/profile.go
@@ -74,6 +74,7 @@ func Profile(ctx *context.Context) {
return
}
ctx.Data["HeatmapData"] = data
+ ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data)
}
if len(ctx.ContextUser.Description) != 0 {
diff --git a/templates/user/heatmap.tmpl b/templates/user/heatmap.tmpl
index 9d58bc8fc5..5d42a5435b 100644
--- a/templates/user/heatmap.tmpl
+++ b/templates/user/heatmap.tmpl
@@ -1,5 +1,11 @@
{{if .HeatmapData}}
- <div id="user-heatmap" data-heatmap-data="{{Json .HeatmapData}}">
+ <div id="user-heatmap"
+ data-heatmap-data="{{Json .HeatmapData}}"
+ data-locale-total-contributions="{{$.locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" ($.locale.PrettyNumber .HeatmapTotalContributions)}}"
+ data-locale-no-contributions="{{.locale.Tr "heatmap.no_contributions"}}"
+ data-locale-more="{{.locale.Tr "heatmap.more"}}"
+ data-locale-less="{{.locale.Tr "heatmap.less"}}"
+ >
<div slot="loading">
<div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.locale.Tr "user.heatmap.loading"}}</div>
</div>
diff --git a/web_src/js/components/ActivityHeatmap.vue b/web_src/js/components/ActivityHeatmap.vue
index 98ffce44b5..7834ebe82c 100644
--- a/web_src/js/components/ActivityHeatmap.vue
+++ b/web_src/js/components/ActivityHeatmap.vue
@@ -1,7 +1,7 @@
<template>
<div id="user-heatmap">
<div class="total-contributions">
- {{ sum }} contributions in the last 12 months
+ {{ locale.contributions_in_the_last_12_months }}
</div>
<calendar-heatmap
:locale="locale"
@@ -41,15 +41,6 @@ export default {
],
endDate: new Date(),
}),
- computed: {
- sum() {
- let s = 0;
- for (let i = 0; i < this.values.length; i++) {
- s += this.values[i].count;
- }
- return s;
- }
- },
mounted() {
// work around issue with first legend color being rendered twice and legend cut off
const legend = document.querySelector('.vch__external-legend-wrapper');
diff --git a/web_src/js/features/heatmap.js b/web_src/js/features/heatmap.js
index f80089ee43..2c65293b64 100644
--- a/web_src/js/features/heatmap.js
+++ b/web_src/js/features/heatmap.js
@@ -18,11 +18,15 @@ export function initHeatmap() {
return {date: new Date(v), count: heatmap[v]};
});
+ // last heatmap tooltip localization attempt https://github.com/go-gitea/gitea/pull/24131/commits/a83761cbbae3c2e3b4bced71e680f44432073ac8
const locale = {
months: new Array(12).fill().map((_, idx) => translateMonth(idx)),
days: new Array(7).fill().map((_, idx) => translateDay(idx)),
contributions: 'contributions',
- no_contributions: 'No contributions',
+ contributions_in_the_last_12_months: el.getAttribute('data-locale-total-contributions'),
+ no_contributions: el.getAttribute('data-locale-no-contributions'),
+ more: el.getAttribute('data-locale-more'),
+ less: el.getAttribute('data-locale-less'),
};
const View = createApp(ActivityHeatmap, {values, locale});