diff options
author | Yarden Shoham <git@yardenshoham.com> | 2023-04-17 21:26:01 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-17 14:26:01 -0400 |
commit | f045e58cc7ba076a0ac4b0b5bf0702fa155eaa59 (patch) | |
tree | 1df8a5337e1f915e3f8aae79d0c317668cd8b401 | |
parent | 5eb4c6386709259a9280c5aad6e0488f381144c5 (diff) | |
download | gitea-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.go | 9 | ||||
-rw-r--r-- | options/locale/locale_en-US.ini | 6 | ||||
-rw-r--r-- | routers/web/user/home.go | 1 | ||||
-rw-r--r-- | routers/web/user/profile.go | 1 | ||||
-rw-r--r-- | templates/user/heatmap.tmpl | 8 | ||||
-rw-r--r-- | web_src/js/components/ActivityHeatmap.vue | 11 | ||||
-rw-r--r-- | web_src/js/features/heatmap.js | 6 |
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}); |