mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	* ui: remove the divider between heatmap and feeds in the dashboard view * this commit reverses6ccd19ef86Signed-off-by: surtur <a_mirre@utb.cz> * add a divider to the default user dashboard view * another one-line change, this time as a direct complement of2bfc71614cto implement a divider of sorts (as per6ccd19ef86originally) Signed-off-by: surtur <a_mirre@utb.cz> * removed the divider in heatmap.tmpl * the separator is added by partial templates as needed Signed-off-by: surtur <a_mirre@utb.cz> * load proper dashboard template code in profile.tmpl * as discussed in Discord * includes a divider of its own Signed-off-by: surtur <a_mirre@utb.cz>
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
    <div>
 | 
						|
        <div v-show="isLoading">
 | 
						|
            <slot name="loading"></slot>
 | 
						|
        </div>
 | 
						|
        <h4 class="total-contributions" v-if="!isLoading">
 | 
						|
            {{ totalContributions }} total contributions in the last 12 months
 | 
						|
        </h4>
 | 
						|
        <calendar-heatmap v-show="!isLoading" :locale="locale" :no-data-text="locale.no_contributions" :tooltip-unit="locale.contributions" :end-date="endDate" :values="values" :range-color="colorRange"/>
 | 
						|
    </div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
import {CalendarHeatmap} from 'vue-calendar-heatmap';
 | 
						|
const {AppSubUrl, heatmapUser} = window.config;
 | 
						|
 | 
						|
export default {
 | 
						|
    name: "ActivityHeatmap",
 | 
						|
    components: {
 | 
						|
        CalendarHeatmap
 | 
						|
    },
 | 
						|
    data() {
 | 
						|
        return {
 | 
						|
            isLoading: true,
 | 
						|
            colorRange: [],
 | 
						|
            endDate: null,
 | 
						|
            values: [],
 | 
						|
            totalContributions: 0,
 | 
						|
            suburl: AppSubUrl,
 | 
						|
            user: heatmapUser,
 | 
						|
            locale: {
 | 
						|
                contributions: 'contributions',
 | 
						|
                no_contributions: 'No contributions',
 | 
						|
            },
 | 
						|
        };
 | 
						|
    },
 | 
						|
    mounted() {
 | 
						|
        this.colorRange = [
 | 
						|
            this.getColor(0),
 | 
						|
            this.getColor(1),
 | 
						|
            this.getColor(2),
 | 
						|
            this.getColor(3),
 | 
						|
            this.getColor(4),
 | 
						|
            this.getColor(5)
 | 
						|
        ];
 | 
						|
        this.endDate = new Date();
 | 
						|
        this.loadHeatmap(this.user);
 | 
						|
    },
 | 
						|
    methods: {
 | 
						|
        loadHeatmap(userName) {
 | 
						|
            const self = this;
 | 
						|
            $.get(`${this.suburl}/api/v1/users/${userName}/heatmap`, (chartRawData) => {
 | 
						|
                const chartData = [];
 | 
						|
                for (let i = 0; i < chartRawData.length; i++) {
 | 
						|
                    self.totalContributions += chartRawData[i].contributions;
 | 
						|
                    chartData[i] = {date: new Date(chartRawData[i].timestamp * 1000), count: chartRawData[i].contributions};
 | 
						|
                }
 | 
						|
                self.values = chartData;
 | 
						|
                self.isLoading = false;
 | 
						|
            });
 | 
						|
        },
 | 
						|
        getColor(idx) {
 | 
						|
            const el = document.createElement('div');
 | 
						|
            el.className = `heatmap-color-${idx}`;
 | 
						|
            document.body.appendChild(el);
 | 
						|
 | 
						|
            const color = getComputedStyle(el).backgroundColor;
 | 
						|
 | 
						|
            document.body.removeChild(el);
 | 
						|
 | 
						|
            return color;
 | 
						|
        }
 | 
						|
    },
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped>
 | 
						|
 | 
						|
</style>
 |