Skip to content

Commit 5f272ae

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent 92bcd7d commit 5f272ae

File tree

247 files changed

+1163
-1314
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

247 files changed

+1163
-1314
lines changed

app/assets/javascripts/profile/components/user_achievements.vue

+68-67
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import timeagoMixin from '~/vue_shared/mixins/timeago';
88
import { joinPaths } from '~/lib/utils/url_utility';
99
import getUserAchievements from './graphql/get_user_achievements.query.graphql';
1010
11-
export const MAX_VISIBLE_ACHIEVEMENTS = 7;
12-
1311
export default {
1412
name: 'UserAchievements',
1513
components: { GlAvatar, GlBadge, GlPopover, GlSprintf },
@@ -38,27 +36,25 @@ export default {
3836
},
3937
methods: {
4038
processNodes(nodes) {
41-
return Object.entries(groupBy(nodes, 'achievement.id'))
42-
.slice(0, MAX_VISIBLE_ACHIEVEMENTS)
43-
.map(([id, values]) => {
44-
const {
45-
achievement: { name, avatarUrl, description, namespace },
46-
createdAt,
47-
} = values[0];
48-
const count = values.length;
49-
return {
50-
id: `user-achievement-${id}`,
51-
name,
52-
timeAgo: this.timeFormatted(createdAt),
53-
avatarUrl: avatarUrl || gon.gitlab_logo,
54-
description,
55-
namespace: namespace && {
56-
fullPath: namespace.fullPath,
57-
webUrl: joinPaths(this.rootUrl, namespace.achievementsPath),
58-
},
59-
count,
60-
};
61-
});
39+
return Object.entries(groupBy(nodes, 'achievement.id')).map(([id, values]) => {
40+
const {
41+
achievement: { name, avatarUrl, description, namespace },
42+
createdAt,
43+
} = values[0];
44+
const count = values.length;
45+
return {
46+
id: `user-achievement-${id}`,
47+
name,
48+
timeAgo: this.timeFormatted(createdAt),
49+
avatarUrl: avatarUrl || gon.gitlab_logo,
50+
description,
51+
namespace: namespace && {
52+
fullPath: namespace.fullPath,
53+
webUrl: joinPaths(this.rootUrl, namespace.achievementsPath),
54+
},
55+
count,
56+
};
57+
});
6258
},
6359
achievementAwardedMessage(userAchievement) {
6460
return userAchievement.namespace
@@ -85,51 +81,56 @@ export default {
8581
<h2 class="gl-font-base gl-mb-2 gl-mt-4">
8682
{{ $options.i18n.achievementsLabel }}
8783
</h2>
88-
<div
89-
v-for="userAchievement in userAchievements"
90-
:key="userAchievement.id"
91-
class="gl-mr-2 gl-display-inline-block gl-align-top gl-text-center"
92-
data-testid="user-achievement"
93-
>
94-
<gl-avatar
95-
:id="userAchievement.id"
96-
:src="userAchievement.avatarUrl"
97-
:size="32"
98-
tabindex="0"
99-
shape="rect"
100-
class="gl-p-1 gl-border-none"
101-
/>
102-
<br />
103-
<gl-badge v-if="showCountBadge(userAchievement.count)" variant="info">{{
104-
getCountBadge(userAchievement.count)
105-
}}</gl-badge>
106-
<gl-popover :target="userAchievement.id">
107-
<div>
108-
<span class="gl-font-bold">{{ userAchievement.name }}</span>
109-
<gl-badge v-if="showCountBadge(userAchievement.count)" variant="info">{{
110-
getCountBadge(userAchievement.count)
111-
}}</gl-badge>
112-
</div>
113-
<div>
114-
<gl-sprintf :message="achievementAwardedMessage(userAchievement)">
115-
<template #timeAgo>
116-
<span>{{ userAchievement.timeAgo }}</span>
117-
</template>
118-
<template v-if="userAchievement.namespace" #namespace>
119-
<a :href="userAchievement.namespace.webUrl">{{
120-
userAchievement.namespace.fullPath
121-
}}</a>
122-
</template>
123-
</gl-sprintf>
124-
</div>
125-
<div
126-
v-if="userAchievement.description"
127-
class="gl-mt-5"
128-
data-testid="achievement-description"
84+
<div class="gl-flex gl-gap-3 gl-flex-wrap">
85+
<div
86+
v-for="userAchievement in userAchievements"
87+
:key="userAchievement.id"
88+
class="gl-relative"
89+
data-testid="user-achievement"
90+
>
91+
<gl-avatar
92+
:id="userAchievement.id"
93+
:src="userAchievement.avatarUrl"
94+
:size="48"
95+
tabindex="0"
96+
shape="rect"
97+
class="gl-p-1 gl-outline-none"
98+
/>
99+
<br />
100+
<gl-badge
101+
v-if="showCountBadge(userAchievement.count)"
102+
class="gl-absolute gl-left-7 gl-top-7 gl-z-1"
103+
variant="info"
104+
>{{ getCountBadge(userAchievement.count) }}</gl-badge
129105
>
130-
{{ userAchievement.description }}
131-
</div>
132-
</gl-popover>
106+
<gl-popover :target="userAchievement.id">
107+
<div>
108+
<span class="gl-font-bold">{{ userAchievement.name }}</span>
109+
<gl-badge v-if="showCountBadge(userAchievement.count)" variant="info">{{
110+
getCountBadge(userAchievement.count)
111+
}}</gl-badge>
112+
</div>
113+
<div>
114+
<gl-sprintf :message="achievementAwardedMessage(userAchievement)">
115+
<template #timeAgo>
116+
<span>{{ userAchievement.timeAgo }}</span>
117+
</template>
118+
<template v-if="userAchievement.namespace" #namespace>
119+
<a :href="userAchievement.namespace.webUrl">{{
120+
userAchievement.namespace.fullPath
121+
}}</a>
122+
</template>
123+
</gl-sprintf>
124+
</div>
125+
<div
126+
v-if="userAchievement.description"
127+
class="gl-mt-5"
128+
data-testid="achievement-description"
129+
>
130+
{{ userAchievement.description }}
131+
</div>
132+
</gl-popover>
133+
</div>
133134
</div>
134135
</div>
135136
</template>

app/assets/javascripts/super_sidebar/super_sidebar_bundle.js

-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Vue.use(VueApollo);
1919
const getTrialStatusWidgetData = (sidebarData) => {
2020
if (sidebarData.trial_status_widget_data_attrs && sidebarData.trial_status_popover_data_attrs) {
2121
const {
22-
containerId,
2322
trialDaysUsed,
2423
trialDuration,
2524
navIconImagePath,
@@ -36,15 +35,13 @@ const getTrialStatusWidgetData = (sidebarData) => {
3635
return {
3736
showTrialStatusWidget: true,
3837
showDuoProTrialStatusWidget: false,
39-
containerId,
4038
trialDaysUsed: Number(trialDaysUsed),
4139
trialDuration: Number(trialDuration),
4240
navIconImagePath,
4341
percentageComplete: Number(percentageComplete),
4442
planName,
4543
plansHref,
4644
daysRemaining,
47-
targetId: containerId,
4845
trialEndDate: new Date(trialEndDate),
4946
trialDiscoverPagePath,
5047
};
@@ -55,7 +52,6 @@ const getTrialStatusWidgetData = (sidebarData) => {
5552
sidebarData.duo_pro_trial_status_popover_data_attrs
5653
) {
5754
const {
58-
containerId,
5955
trialDaysUsed,
6056
trialDuration,
6157
percentageComplete,
@@ -72,7 +68,6 @@ const getTrialStatusWidgetData = (sidebarData) => {
7268
return {
7369
showDuoProTrialStatusWidget: true,
7470
showTrialStatusWidget: false,
75-
containerId,
7671
trialDaysUsed: Number(trialDaysUsed),
7772
trialDuration: Number(trialDuration),
7873
percentageComplete: Number(percentageComplete),
@@ -81,7 +76,6 @@ const getTrialStatusWidgetData = (sidebarData) => {
8176
featureId,
8277
dismissEndpoint,
8378
daysRemaining,
84-
targetId: containerId,
8579
trialEndDate: new Date(trialEndDate),
8680
purchaseNowUrl,
8781
learnAboutButtonUrl: widgetUrl,

app/assets/javascripts/vue_shared/components/source_viewer/components/blame_info.vue

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ export default {
2121
};
2222
</script>
2323
<template>
24-
<div class="blame gl-bg-gray-10 gl-border-r">
25-
<div class="blame-commit gl-border-none!">
24+
<div class="blame gl-border-r gl-bg-gray-10">
25+
<div class="blame-commit !gl-border-none">
2626
<commit-info
2727
v-for="(blame, index) in blameInfo"
2828
:key="index"
2929
:class="{ 'gl-border-t': blame.blameOffset !== '0px' }"
30-
class="gl-display-flex gl-absolute gl-px-3"
30+
class="gl-absolute gl-flex gl-px-3"
3131
:style="{ top: blame.blameOffset }"
3232
:commit="blame.commit"
3333
:span="blame.span"

0 commit comments

Comments
 (0)