mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	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.  - Closes #10669 - 2nd attempt (the first was in #21570) --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		| @@ -69,3 +69,12 @@ func getUserHeatmapData(user *user_model.User, team *organization.Team, doer *us | |||||||
| 		OrderBy("timestamp"). | 		OrderBy("timestamp"). | ||||||
| 		Find(&hdata) | 		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 | ||||||
|  | } | ||||||
|   | |||||||
| @@ -118,6 +118,12 @@ footer = Footer | |||||||
| footer.software = About Software | footer.software = About Software | ||||||
| footer.links = Links | 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] | [editor] | ||||||
| buttons.heading.tooltip = Add heading | buttons.heading.tooltip = Add heading | ||||||
| buttons.bold.tooltip = Add bold text | buttons.bold.tooltip = Add bold text | ||||||
|   | |||||||
| @@ -107,6 +107,7 @@ func Dashboard(ctx *context.Context) { | |||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		ctx.Data["HeatmapData"] = data | 		ctx.Data["HeatmapData"] = data | ||||||
|  | 		ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	feeds, count, err := activities_model.GetFeeds(ctx, activities_model.GetFeedsOptions{ | 	feeds, count, err := activities_model.GetFeeds(ctx, activities_model.GetFeedsOptions{ | ||||||
|   | |||||||
| @@ -74,6 +74,7 @@ func Profile(ctx *context.Context) { | |||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		ctx.Data["HeatmapData"] = data | 		ctx.Data["HeatmapData"] = data | ||||||
|  | 		ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if len(ctx.ContextUser.Description) != 0 { | 	if len(ctx.ContextUser.Description) != 0 { | ||||||
|   | |||||||
| @@ -1,5 +1,11 @@ | |||||||
| {{if .HeatmapData}} | {{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 slot="loading"> | ||||||
| 			<div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.locale.Tr "user.heatmap.loading"}}</div> | 			<div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.locale.Tr "user.heatmap.loading"}}</div> | ||||||
| 		</div> | 		</div> | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <template> | <template> | ||||||
|   <div id="user-heatmap"> |   <div id="user-heatmap"> | ||||||
|     <div class="total-contributions"> |     <div class="total-contributions"> | ||||||
|       {{ sum }} contributions in the last 12 months |       {{ locale.contributions_in_the_last_12_months }} | ||||||
|     </div> |     </div> | ||||||
|     <calendar-heatmap |     <calendar-heatmap | ||||||
|       :locale="locale" |       :locale="locale" | ||||||
| @@ -41,15 +41,6 @@ export default { | |||||||
|     ], |     ], | ||||||
|     endDate: new Date(), |     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() { |   mounted() { | ||||||
|     // work around issue with first legend color being rendered twice and legend cut off |     // work around issue with first legend color being rendered twice and legend cut off | ||||||
|     const legend = document.querySelector('.vch__external-legend-wrapper'); |     const legend = document.querySelector('.vch__external-legend-wrapper'); | ||||||
|   | |||||||
| @@ -18,11 +18,15 @@ export function initHeatmap() { | |||||||
|       return {date: new Date(v), count: heatmap[v]}; |       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 = { |     const locale = { | ||||||
|       months: new Array(12).fill().map((_, idx) => translateMonth(idx)), |       months: new Array(12).fill().map((_, idx) => translateMonth(idx)), | ||||||
|       days: new Array(7).fill().map((_, idx) => translateDay(idx)), |       days: new Array(7).fill().map((_, idx) => translateDay(idx)), | ||||||
|       contributions: 'contributions', |       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}); |     const View = createApp(ActivityHeatmap, {values, locale}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yarden Shoham
					Yarden Shoham