Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
5e7210c0
Commit
5e7210c0
authored
Dec 05, 2016
by
Bryce Johnson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Show avatars for approvals remaining.
parent
8b91a695
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
18 deletions
+69
-18
app/assets/javascripts/merge_request_widget/approvals/components/approvals_footer.js.es6
...quest_widget/approvals/components/approvals_footer.js.es6
+15
-5
app/assets/javascripts/vue_common_component/link_to_member_avatar.js.es6
...scripts/vue_common_component/link_to_member_avatar.js.es6
+34
-12
app/assets/stylesheets/pages/merge_requests.scss
app/assets/stylesheets/pages/merge_requests.scss
+20
-0
app/views/projects/merge_requests/widget/_open.html.haml
app/views/projects/merge_requests/widget/_open.html.haml
+0
-1
No files found.
app/assets/javascripts/merge_request_widget/approvals/components/approvals_footer.js.es6
View file @
5e7210c0
...
...
@@ -13,6 +13,7 @@
data() {
return {
loading: true,
pendingAvatar: '/assets/no_avatar.png'
};
},
computed: {
...
...
@@ -34,14 +35,23 @@
});
},
template: `
<div v-if='hasApprovers' class='mr-widget-footer approved-by-users'>
<div v-for='approver in approvedByUsers'>
<link-to-member-avatar
<div v-if='hasApprovers' class='mr-widget-footer approved-by-users approvals-footer'>
<span v-for='approver in approvedByUsers'>
<link-to-member-avatar
extra-link-class='approver-avatar'
:avatar-url='approver.avatar.url'
:display-name='approver.name'
:username='approver.username'>
:username='approver.username'
:show-tooltip='true'>
</link-to-member-avatar>
</div>
</span>
<span v-for='n in approvalsLeft'>
<link-to-member-avatar
:non-user='true'
:avatar-url='pendingAvatar'
:show-tooltip='false'>
</link-to-member-avatar>
</span>
<span v-if='showUnapproveButton'>
<i class='fa fa-close'></i>
<button @click='removeApproval'>Remove your approval</button>
...
...
app/assets/javascripts/vue_common_component/link_to_member_avatar.js.es6
View file @
5e7210c0
...
...
@@ -12,26 +12,36 @@
},
username: {
type: String,
required:
true
required:
false,
},
displayName: {
type: String,
required:
tru
e,
required:
fals
e,
},
a
vatarClass: {
extraA
vatarClass: {
type: String,
default: '
avatar avatar-inline s48
',
default: '',
required: false,
},
l
inkClass: {
extraL
inkClass: {
type: String,
default: '
author_link has-tooltip
',
default: '',
required: false,
},
showTooltip: {
type: Boolean,
required: false,
default: false,
},
size: {
type: Number,
default: 48,
required: false
},
nonUser: {
type: Boolean,
default: false,
required: false,
}
},
data() {
...
...
@@ -41,16 +51,28 @@
},
computed: {
userProfileUrl() {
return `/${this.username}`;
return
this.nonUser || !this.username ? '' :
`/${this.username}`;
},
preppedAvatarUrl() {
return this.avatarUrl || this.noAvatarUrl;
},
tooltipClass() {
return this.showTooltip ? 'has-tooltip' : '';
},
avatarClass() {
return `avatar avatar-inline s${this.size} ${this.extraAvatarClass}`
},
disabledClass() {
return this.nonUser ? 'disabled' : '';
},
linkClass() {
return `author_link ${this.tooltipClass} ${this.extraLinkClass} ${this.disabledClass}`
}
},
template: `
<a :href='userProfileUrl' :class='linkClass' :data-original-title='displayName' data-container='body'>
<img :class='avatarClass' :src='preppedAvatarUrl' :width='size' :height='size' :alt='displayName'/>
</a>
`
<a :href='userProfileUrl' :class='linkClass' :data-original-title='displayName' data-container='body'>
<img :class='avatarClass' :src='preppedAvatarUrl' :width='size' :height='size' :alt='displayName'/>
</a>
`
});
})();
\ No newline at end of file
})();
app/assets/stylesheets/pages/merge_requests.scss
View file @
5e7210c0
...
...
@@ -428,3 +428,23 @@
padding-right
:
0
;
}
}
.approvals-footer
{
a
.disabled
{
pointer-events
:
none
;
cursor
:
default
;
}
.approver-avatar
{
position
:
relative
;
display
:
inline-block
;
&
:
:
before
{
content
:
'\2713'
;
color
:
green
;
background
:
white
;
position
:
absolute
;
top
:
0
;
right
:
32%
;
}
}
}
app/views/projects/merge_requests/widget/_open.html.haml
View file @
5e7210c0
...
...
@@ -55,5 +55,4 @@
-
if
@merge_request
.
approvals
.
any?
%approvals-footer
{
':approved-by-users'
=>
'approvals.approvedByUsers'
,
':approver-names'
=>
'approvals.approverNames'
,
':approvals-left'
=>
'approvals.approvalsLeft'
,
':user-can-approve'
=>
'approvals.userCanApprove'
,
':user-has-approved'
=>
'approvals.userHasApproved'
}
=
icon
(
'spinner spin'
,
class:
'loading-icon'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment