// Contributors render the page to show repository contributors graph
func Contributors(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("repo.activity.navbar.contributors")
-
ctx.Data["PageIsActivity"] = true
ctx.Data["PageIsContributors"] = true
-
- ctx.PageData["contributionType"] = "commits"
-
- ctx.PageData["repoLink"] = ctx.Repo.RepoLink
-
ctx.HTML(http.StatusOK, tplContributors)
}
{{if .Permission.CanRead ctx.Consts.RepoUnitTypeCode}}
<div id="repo-contributors-chart"
+ data-repo-link="{{.RepoLink}}"
data-locale-filter-label="{{ctx.Locale.Tr "repo.contributors.contribution_type.filter_label"}}"
data-locale-contribution-type-commits="{{ctx.Locale.Tr "repo.contributors.contribution_type.commits"}}"
data-locale-contribution-type-additions="{{ctx.Locale.Tr "repo.contributors.contribution_type.additions"}}"
import 'chartjs-adapter-dayjs-4/dist/chartjs-adapter-dayjs-4.esm';
import $ from 'jquery';
-const {pageData} = window.config;
-
const customEventListener = {
id: 'customEventListener',
afterEvent: (chart, args, opts) => {
type: Object,
required: true,
},
+ repoLink: {
+ type: String,
+ required: true,
+ },
},
data: () => ({
isLoading: false,
errorText: '',
totalStats: {},
sortedContributors: {},
- repoLink: pageData.repoLink || [],
- type: pageData.contributionType,
+ type: 'commits',
contributorsStats: [],
xAxisStart: null,
xAxisEnd: null,
<!-- Contribution type -->
<div class="ui dropdown jump" id="repo-contributors">
<div class="ui basic compact button">
- <span class="text">
- <span class="not-mobile">{{ locale.filterLabel }} </span><strong>{{ locale.contributionType[type] }}</strong>
- <svg-icon name="octicon-triangle-down" :size="14"/>
- </span>
+ <span class="not-mobile">{{ locale.filterLabel }}</span> <strong>{{ locale.contributionType[type] }}</strong>
+ <svg-icon name="octicon-triangle-down" :size="14"/>
</div>
<div class="menu">
- <div :class="['item', {'active': type === 'commits'}]">
+ <div :class="['item', {'selected': type === 'commits'}]" data-value="commits">
{{ locale.contributionType.commits }}
</div>
- <div :class="['item', {'active': type === 'additions'}]">
+ <div :class="['item', {'selected': type === 'additions'}]" data-value="additions">
{{ locale.contributionType.additions }}
</div>
- <div :class="['item', {'active': type === 'deletions'}]">
+ <div :class="['item', {'selected': type === 'deletions'}]" data-value="deletions">
{{ locale.contributionType.deletions }}
</div>
</div>
const {default: RepoContributors} = await import(/* webpackChunkName: "contributors-graph" */'../components/RepoContributors.vue');
try {
const View = createApp(RepoContributors, {
+ repoLink: el.getAttribute('data-repo-link'),
locale: {
filterLabel: el.getAttribute('data-locale-filter-label'),
contributionType: {