Commit c09217e7 authored by Bryce Johnson's avatar Bryce Johnson

Disable approval buttons during API calls.

parent ccf8b725
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
required: false, required: false,
}, },
}, },
data() {
return {
approving: false,
};
},
computed: { computed: {
approvalsRequiredStringified() { approvalsRequiredStringified() {
const baseString = `${this.approvalsLeft} more approval`; const baseString = `${this.approvalsLeft} more approval`;
...@@ -61,7 +66,10 @@ ...@@ -61,7 +66,10 @@
}, },
methods: { methods: {
approveMergeRequest() { approveMergeRequest() {
return gl.ApprovalsStore.approve(); this.approving = true;
return gl.ApprovalsStore.approve().then(() => {
this.approving = false;
});
}, },
}, },
beforeCreate() { beforeCreate() {
...@@ -74,6 +82,7 @@ ...@@ -74,6 +82,7 @@
</h4> </h4>
<div v-if='showApproveButton' class='append-bottom-10'> <div v-if='showApproveButton' class='append-bottom-10'>
<button <button
:disabled='approving'
@click='approveMergeRequest' @click='approveMergeRequest'
class='btn btn-primary approve-btn'> class='btn btn-primary approve-btn'>
Approve Merge Request Approve Merge Request
......
...@@ -35,14 +35,22 @@ ...@@ -35,14 +35,22 @@
required: true, required: true,
}, },
}, },
data() {
return {
unapproving: false,
};
},
computed: { computed: {
showUnapproveButton() { showUnapproveButton() {
return this.userHasApproved && !this.userCanApprove; return this.userHasApproved && !this.userCanApprove;
}, },
}, },
methods: { methods: {
removeApproval() { unapproveMergeRequest() {
gl.ApprovalsStore.unapprove(); this.unapproving = true;
gl.ApprovalsStore.unapprove().then(() => {
this.unapproving = false;
});
}, },
}, },
beforeCreate() { beforeCreate() {
...@@ -70,9 +78,13 @@ ...@@ -70,9 +78,13 @@
</link-to-member-avatar> </link-to-member-avatar>
</span> </span>
<span class='unapprove-btn-wrap' v-if='showUnapproveButton'> <span class='unapprove-btn-wrap' v-if='showUnapproveButton'>
<span class='unapprove-btn' @click='removeApproval()'> <button
:disabled='unapproving'
@click='unapproveMergeRequest'
class='btn btn-link unapprove-btn'>
<i class='fa fa-close'></i> <i class='fa fa-close'></i>
Remove your approval</span> Remove your approval</span>
</button>
</span> </span>
</div> </div>
`, `,
......
...@@ -473,15 +473,22 @@ ...@@ -473,15 +473,22 @@
.unapprove-btn-wrap { .unapprove-btn-wrap {
border-left: 1px solid $gl-gray-light; border-left: 1px solid $gl-gray-light;
padding-left: 15px; padding-left: 5px;
margin-left: 10px; margin-left: 10px;
} }
.unapprove-btn { .unapprove-btn {
border: none;
background: transparent;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: $gl-gray-light; color: $gl-gray-light;
text-decoration: none;
}
&:focus {
outline: none;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment