Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Localize activity heatmap (except tooltip) #24131

Merged
merged 19 commits into from
Apr 17, 2023
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions models/activities/user_heatmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
6 changes: 6 additions & 0 deletions options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions routers/web/user/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
Expand Down
1 change: 1 addition & 0 deletions routers/web/user/profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
8 changes: 7 additions & 1 deletion templates/user/heatmap.tmpl
Original file line number Diff line number Diff line change
@@ -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-html="{{$.locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" (LocaleNumber .HeatmapTotalContributions)}}"
yardenshoham marked this conversation as resolved.
Show resolved Hide resolved
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>
Expand Down
14 changes: 2 additions & 12 deletions web_src/js/components/ActivityHeatmap.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<template>
<div id="user-heatmap">
<div class="total-contributions">
{{ sum }} contributions in the last 12 months
</div>
<!-- eslint-disable-next-line vue/no-v-html (safely generated in the backend) -->
<div class="total-contributions" v-html="locale.contributions_in_the_last_12_months_html"/>
silverwind marked this conversation as resolved.
Show resolved Hide resolved
<calendar-heatmap
:locale="locale"
:no-data-text="locale.no_contributions"
Expand Down Expand Up @@ -41,15 +40,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');
Expand Down
6 changes: 5 additions & 1 deletion web_src/js/features/heatmap.js
Original file line number Diff line number Diff line change
Expand Up @@ -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_html: el.getAttribute('data-locale-total-contributions-html'),
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});
Expand Down