diff --git a/app/assets/javascripts/pages/users/activity_calendar.js b/app/assets/javascripts/pages/users/activity_calendar.js index 13bba06d425bbf111d9417c949d613da9d0a28c9..dbb0fe585791f777f5dc827e5c1deb246730b375 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 @@ -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/show/index.js b/app/assets/javascripts/pages/users/show/index.js new file mode 100644 index 0000000000000000000000000000000000000000..dbb5e29c689ce16b49f530ce039c180ac2c7e2bb --- /dev/null +++ b/app/assets/javascripts/pages/users/show/index.js @@ -0,0 +1,3 @@ +import initReadMore from '~/read_more'; + +initReadMore(); diff --git a/app/assets/javascripts/pages/users/user_overview_block.js b/app/assets/javascripts/pages/users/user_overview_block.js index 8d2d66d812e840fb74b96b23220c2d6eb875b19c..48c5e9a6c12d9ef262d17e9fee1274c7383c7845 100644 --- a/app/assets/javascripts/pages/users/user_overview_block.js +++ b/app/assets/javascripts/pages/users/user_overview_block.js @@ -16,7 +16,12 @@ export default class UserOverviewBlock { loadData() { const containerEl = document.querySelector(this.container); - const loadingEl = containerEl.querySelector(`.loading`); + + if (!containerEl) { + return; + } + + const loadingEl = containerEl.querySelector('.loading'); loadingEl.classList.remove('hide'); diff --git a/app/assets/javascripts/pages/users/user_tabs.js b/app/assets/javascripts/pages/users/user_tabs.js index 79eb3902116f3683688d7de46c44d6a55c338201..b5acc39e8df25fd9e8bab51751a0f3cf071c8244 100644 --- a/app/assets/javascripts/pages/users/user_tabs.js +++ b/app/assets/javascripts/pages/users/user_tabs.js @@ -67,17 +67,32 @@ 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 }) { @@ -197,10 +212,11 @@ export default class UserTabs { this.loadActivityCalendar(); UserTabs.renderMostRecentBlocks('#js-overview .activities-block', { - requestParams: { limit: 15 }, + requestParams: { limit: 10 }, }); + 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; @@ -240,7 +256,7 @@ export default class UserTabs { } static renderActivityCalendar(data, $calendarWrap) { - const monthsAgo = UserTabs.getVisibleCalendarPeriod($calendarWrap); + const monthsAgo = UserTabs.getVisibleCalendarPeriod(); const calendarActivitiesPath = $calendarWrap.data('calendarActivitiesPath'); const utcOffset = $calendarWrap.data('utcOffset'); const calendarHint = __('Issues, merge requests, pushes, and comments.'); @@ -259,6 +275,10 @@ export default class UserTabs { firstDayOfWeek: gon.first_day_of_week, monthsAgo, }); + + // Scroll to end + const calendarContainer = document.querySelector('.js-contrib-calendar'); + calendarContainer.scrollLeft = calendarContainer.scrollWidth; } toggleLoading(status) { @@ -283,10 +303,7 @@ export default class UserTabs { 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; + static getVisibleCalendarPeriod() { + return 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..afb4ed943e79fc14c7c6a0a1cb416d8b27348d63 100644 --- a/app/assets/javascripts/profile/components/activity_calendar.vue +++ b/app/assets/javascripts/profile/components/activity_calendar.vue @@ -78,8 +78,8 @@ export default { diff --git a/app/assets/javascripts/profile/components/overview_tab.vue b/app/assets/javascripts/profile/components/overview_tab.vue index 8cfa3fb3eea188ed45158038df5dacf477b274ec..148bdbc43b124d539e7df95e3833de102222cbe7 100644 --- a/app/assets/javascripts/profile/components/overview_tab.vue +++ b/app/assets/javascripts/profile/components/overview_tab.vue @@ -40,7 +40,7 @@ export default { try { const { data: events } = await axios.get(this.userActivityPath, { - params: { limit: 10 }, + params: { limit: 5 }, }); this.events = events; } catch (error) { @@ -54,19 +54,19 @@ export default {