summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/issue_show/components
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-05-17 13:54:09 +0000
committerFilipa Lacerda <filipa@gitlab.com>2017-05-17 13:54:09 +0000
commit81c69c288b626a5bea2d5abddfe5dab1107e35e1 (patch)
treeaced138d4dd63d86e1f00599a995150be9c077e4 /app/assets/javascripts/issue_show/components
parent4693aa9c9c67bc65145bb92d0476ad1a259cf7ca (diff)
parent6963442d6719f1428105d39e017438f26eeae928 (diff)
downloadgitlab-ce-81c69c288b626a5bea2d5abddfe5dab1107e35e1.tar.gz
Merge branch 'issue-edit-inline-confidential' into 'issue-edit-inline'
Issue edit inline confidential See merge request !11389
Diffstat (limited to 'app/assets/javascripts/issue_show/components')
-rw-r--r--app/assets/javascripts/issue_show/components/app.vue13
-rw-r--r--app/assets/javascripts/issue_show/components/fields/confidential_checkbox.vue23
-rw-r--r--app/assets/javascripts/issue_show/components/form.vue4
3 files changed, 39 insertions, 1 deletions
diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue
index eb594cfb60b..87757b1a35d 100644
--- a/app/assets/javascripts/issue_show/components/app.vue
+++ b/app/assets/javascripts/issue_show/components/app.vue
@@ -41,6 +41,10 @@ export default {
required: false,
default: '',
},
+ isConfidential: {
+ type: Boolean,
+ required: true,
+ },
markdownPreviewUrl: {
type: String,
required: true,
@@ -78,6 +82,7 @@ export default {
this.showForm = true;
this.store.formState = {
title: this.state.titleText,
+ confidential: this.isConfidential,
description: this.state.descriptionText,
};
},
@@ -86,7 +91,13 @@ export default {
},
updateIssuable() {
this.service.updateIssuable(this.store.formState)
- .then(() => {
+ .then((res) => {
+ const data = res.json();
+
+ if (data.confidential !== this.isConfidential) {
+ location.reload();
+ }
+
eventHub.$emit('close.form');
})
.catch(() => {
diff --git a/app/assets/javascripts/issue_show/components/fields/confidential_checkbox.vue b/app/assets/javascripts/issue_show/components/fields/confidential_checkbox.vue
new file mode 100644
index 00000000000..a0ff08e9111
--- /dev/null
+++ b/app/assets/javascripts/issue_show/components/fields/confidential_checkbox.vue
@@ -0,0 +1,23 @@
+<script>
+ export default {
+ props: {
+ formState: {
+ type: Object,
+ required: true,
+ },
+ },
+ };
+</script>
+
+<template>
+ <fieldset class="checkbox">
+ <label for="issue-confidential">
+ <input
+ type="checkbox"
+ value="1"
+ id="issue-confidential"
+ v-model="formState.confidential" />
+ This issue is confidential and should only be visible to team members with at least Reporter access.
+ </label>
+ </fieldset>
+</template>
diff --git a/app/assets/javascripts/issue_show/components/form.vue b/app/assets/javascripts/issue_show/components/form.vue
index cba3c0830a7..4288c5f8d90 100644
--- a/app/assets/javascripts/issue_show/components/form.vue
+++ b/app/assets/javascripts/issue_show/components/form.vue
@@ -2,6 +2,7 @@
import titleField from './fields/title.vue';
import descriptionField from './fields/description.vue';
import editActions from './edit_actions.vue';
+ import confidentialCheckbox from './fields/confidential_checkbox.vue';
export default {
props: {
@@ -26,6 +27,7 @@
titleField,
descriptionField,
editActions,
+ confidentialCheckbox,
},
};
</script>
@@ -34,6 +36,8 @@
<form>
<title-field
:form-state="formState" />
+ <confidential-checkbox
+ :form-state="formState" />
<description-field
:form-state="formState"
:markdown-preview-url="markdownPreviewUrl"