diff --git a/app/assets/javascripts/pages/users/activity_calendar.js b/app/assets/javascripts/pages/users/activity_calendar.js index 13bba06d425bbf111d9417c949d613da9d0a28c9..abc72018c82c845ad0808299a9972e21abe1409b 100644 --- a/app/assets/javascripts/pages/users/activity_calendar.js +++ b/app/assets/javascripts/pages/users/activity_calendar.js @@ -72,7 +72,7 @@ export default class ActivityCalendar { this.clickDay = this.clickDay.bind(this); this.currentSelectedDate = ''; this.daySpace = 1; - this.daySize = 15; + this.daySize = 14; this.daySizeWithSpace = this.daySize + this.daySpace * 2; this.monthNames = [ __('Jan'), @@ -131,7 +131,6 @@ export default class ActivityCalendar { this.renderDays(); this.renderMonths(); this.renderDayTitles(); - this.renderKey(); } // Add extra padding for the last month label if it is also the last column @@ -153,7 +152,7 @@ export default class ActivityCalendar { .select(container) .append('svg') .attr('width', width) - .attr('height', 169) + .attr('height', 140) .attr('class', 'contrib-calendar') .attr('data-testid', 'contrib-calendar'); } @@ -257,25 +256,6 @@ export default class ActivityCalendar { .text((date) => this.monthNames[date.month]); } - renderKey() { - this.svg - .append('g') - .attr('transform', `translate(18, ${this.daySizeWithSpace * 8 + 16})`) - .selectAll('rect') - .data(CONTRIB_LEGENDS) - .enter() - .append('rect') - .attr('width', this.daySize) - .attr('height', this.daySize) - .attr('x', (_, i) => this.daySizeWithSpace * i) - .attr('y', 0) - .attr('data-level', (_, i) => i) - .attr('class', 'user-contrib-cell has-tooltip contrib-legend') - .attr('title', (x) => x.title) - .attr('data-container', 'body') - .attr('data-html', true); - } - clickDay(stamp) { if (this.currentSelectedDate !== stamp.date) { this.currentSelectedDate = stamp.date; diff --git a/app/assets/javascripts/pages/users/user_tabs.js b/app/assets/javascripts/pages/users/user_tabs.js index f9e22808b0d9c74d0182e026f71e44a032c29127..35d7edad96b8bae05ffc250ca9efed4bcb408467 100644 --- a/app/assets/javascripts/pages/users/user_tabs.js +++ b/app/assets/javascripts/pages/users/user_tabs.js @@ -1,8 +1,8 @@ // TODO: Remove this with the removal of the old navigation. // See https://gitlab.com/gitlab-org/gitlab/-/issues/435899. -import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils'; import $ from 'jquery'; +import initReadMore from '~/read_more'; import Activities from '~/activities'; import AjaxCache from '~/lib/utils/ajax_cache'; import axios from '~/lib/utils/axios_utils'; @@ -66,18 +66,35 @@ import UserOverviewBlock from './user_overview_block'; const CALENDAR_TEMPLATE = `
-
-
+
+
+
+ + + + + + + + + +
+
+
`; -const CALENDAR_PERIOD_6_MONTHS = 6; const CALENDAR_PERIOD_12_MONTHS = 12; -/* computation based on - * width = (group + 1) * this.daySizeWithSpace + this.getExtraWidthPadding(group); - * (see activity_calendar.js) - */ -const OVERVIEW_CALENDAR_BREAKPOINT = 918; export default class UserTabs { constructor({ defaultAction, action, parentEl }) { @@ -105,12 +122,6 @@ export default class UserTabs { .off('shown.bs.tab', '.nav-links a[data-toggle="tab"]') .on('shown.bs.tab', '.nav-links a[data-toggle="tab"]', (event) => this.tabShown(event)) .on('click', '.gl-pagination a', (event) => this.changeProjectsPage(event)); - - window.addEventListener('resize', () => this.onResize()); - } - - onResize() { - this.loadActivityCalendar(); } changeProjectsPage(e) { @@ -194,19 +205,25 @@ export default class UserTabs { return; } + initReadMore(); + this.loadActivityCalendar(); UserTabs.renderMostRecentBlocks('#js-overview .activities-block', { requestParams: { limit: 15 }, }); + UserTabs.renderMostRecentBlocks('#js-overview .projects-block', { - requestParams: { limit: 10, skip_pagination: true, skip_namespace: true, compact_mode: true }, + requestParams: { limit: 3, skip_pagination: true, skip_namespace: true, card_mode: true }, }); this.loaded.overview = true; } static renderMostRecentBlocks(container, options) { + if ($(container).length === 0) { + return; + } // eslint-disable-next-line no-new new UserOverviewBlock({ container, @@ -218,8 +235,6 @@ export default class UserTabs { loadActivityCalendar() { const $calendarWrap = this.$parentEl.find('.tab-pane.active .user-calendar'); - if (!$calendarWrap.length || bp.getBreakpointSize() === 'xs') return; - const calendarPath = $calendarWrap.data('calendarPath'); AjaxCache.retrieve(calendarPath) @@ -240,7 +255,6 @@ export default class UserTabs { } static renderActivityCalendar(data, $calendarWrap) { - const monthsAgo = UserTabs.getVisibleCalendarPeriod($calendarWrap); const calendarActivitiesPath = $calendarWrap.data('calendarActivitiesPath'); const utcOffset = $calendarWrap.data('utcOffset'); const calendarHint = __('Issues, merge requests, pushes, and comments.'); @@ -257,8 +271,12 @@ export default class UserTabs { calendarActivitiesPath, utcOffset, firstDayOfWeek: gon.first_day_of_week, - monthsAgo, + CALENDAR_PERIOD_12_MONTHS, }); + + // Scroll to end + const calendarContainer = document.querySelector('.js-contrib-calendar'); + calendarContainer.scrollLeft = calendarContainer.scrollWidth; } toggleLoading(status) { @@ -282,11 +300,4 @@ export default class UserTabs { getCurrentAction() { return this.$parentEl.find('.nav-links a.active').data('action'); } - - static getVisibleCalendarPeriod($calendarWrap) { - const width = $calendarWrap.width(); - return width < OVERVIEW_CALENDAR_BREAKPOINT - ? CALENDAR_PERIOD_6_MONTHS - : CALENDAR_PERIOD_12_MONTHS; - } } diff --git a/app/assets/javascripts/profile/components/activity_calendar.vue b/app/assets/javascripts/profile/components/activity_calendar.vue index d359b478d35c0523851b6549f0c947e233a86301..b9668210f79158a0ed7801dde1519cb1468daa40 100644 --- a/app/assets/javascripts/profile/components/activity_calendar.vue +++ b/app/assets/javascripts/profile/components/activity_calendar.vue @@ -1,12 +1,8 @@ diff --git a/app/assets/javascripts/profile/components/overview_tab.vue b/app/assets/javascripts/profile/components/overview_tab.vue index 8cfa3fb3eea188ed45158038df5dacf477b274ec..ab8a2871a41c1c78214ddf418cd9b42137bd7ce9 100644 --- a/app/assets/javascripts/profile/components/overview_tab.vue +++ b/app/assets/javascripts/profile/components/overview_tab.vue @@ -54,19 +54,19 @@ export default {