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
713188ff
Commit
713188ff
authored
May 12, 2020
by
Kushal Pandya
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'revert-30570' into 'master'
Revert 30570 See merge request gitlab-org/gitlab!31681
parents
c76d3e2e
57523d68
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
11 additions
and
125 deletions
+11
-125
app/assets/javascripts/notes/components/comment_form.vue
app/assets/javascripts/notes/components/comment_form.vue
+2
-35
app/assets/javascripts/notes/components/note_header.vue
app/assets/javascripts/notes/components/note_header.vue
+3
-22
app/assets/javascripts/notes/components/noteable_note.vue
app/assets/javascripts/notes/components/noteable_note.vue
+1
-7
app/assets/javascripts/vue_shared/components/notes/system_note.vue
...s/javascripts/vue_shared/components/notes/system_note.vue
+1
-1
app/assets/stylesheets/pages/notes.scss
app/assets/stylesheets/pages/notes.scss
+4
-0
app/controllers/projects/issues_controller.rb
app/controllers/projects/issues_controller.rb
+0
-1
changelogs/unreleased/207471-expose-note-confidential-attribute-in-apis-and-display-on-frontend.yml
...onfidential-attribute-in-apis-and-display-on-frontend.yml
+0
-5
changelogs/unreleased/217310.yml
changelogs/unreleased/217310.yml
+0
-5
locale/gitlab.pot
locale/gitlab.pot
+0
-6
spec/frontend/notes/components/comment_form_spec.js
spec/frontend/notes/components/comment_form_spec.js
+0
-31
spec/frontend/notes/components/note_header_spec.js
spec/frontend/notes/components/note_header_spec.js
+0
-12
No files found.
app/assets/javascripts/notes/components/comment_form.vue
View file @
713188ff
...
...
@@ -3,15 +3,7 @@ import $ from 'jquery';
import
{
mapActions
,
mapGetters
,
mapState
}
from
'
vuex
'
;
import
{
isEmpty
}
from
'
lodash
'
;
import
Autosize
from
'
autosize
'
;
import
{
GlAlert
,
GlFormCheckbox
,
GlIcon
,
GlIntersperse
,
GlLink
,
GlSprintf
,
GlTooltipDirective
,
}
from
'
@gitlab/ui
'
;
import
{
GlAlert
,
GlIntersperse
,
GlLink
,
GlSprintf
}
from
'
@gitlab/ui
'
;
import
{
__
,
sprintf
}
from
'
~/locale
'
;
import
TimelineEntryItem
from
'
~/vue_shared/components/notes/timeline_entry_item.vue
'
;
import
Flash
from
'
../../flash
'
;
...
...
@@ -32,7 +24,6 @@ import loadingButton from '../../vue_shared/components/loading_button.vue';
import
noteSignedOutWidget
from
'
./note_signed_out_widget.vue
'
;
import
discussionLockedWidget
from
'
./discussion_locked_widget.vue
'
;
import
issuableStateMixin
from
'
../mixins/issuable_state
'
;
import
glFeatureFlagsMixin
from
'
~/vue_shared/mixins/gl_feature_flags_mixin
'
;
export
default
{
name
:
'
CommentForm
'
,
...
...
@@ -45,16 +36,11 @@ export default {
loadingButton
,
TimelineEntryItem
,
GlAlert
,
GlFormCheckbox
,
GlIcon
,
GlIntersperse
,
GlLink
,
GlSprintf
,
},
directives
:
{
GlTooltip
:
GlTooltipDirective
,
},
mixins
:
[
issuableStateMixin
,
glFeatureFlagsMixin
()],
mixins
:
[
issuableStateMixin
],
props
:
{
noteableType
:
{
type
:
String
,
...
...
@@ -65,7 +51,6 @@ export default {
return
{
note
:
''
,
noteType
:
constants
.
COMMENT
,
noteIsConfidential
:
false
,
isSubmitting
:
false
,
isSubmitButtonDisabled
:
true
,
};
...
...
@@ -153,9 +138,6 @@ export default {
trackingLabel
()
{
return
slugifyWithUnderscore
(
`
${
this
.
commentButtonTitle
}
button`
);
},
confidentialNotesEnabled
()
{
return
Boolean
(
this
.
glFeatures
.
confidentialNotes
);
},
},
watch
:
{
note
(
newNote
)
{
...
...
@@ -203,7 +185,6 @@ export default {
note
:
{
noteable_type
:
this
.
noteableType
,
noteable_id
:
this
.
getNoteableData
.
id
,
confidential
:
this
.
noteIsConfidential
,
note
:
this
.
note
,
},
merge_request_diff_head_sha
:
this
.
getNoteableData
.
diff_head_sha
,
...
...
@@ -304,7 +285,6 @@ export default {
if
(
shouldClear
)
{
this
.
note
=
''
;
this
.
noteIsConfidential
=
false
;
this
.
resizeTextarea
();
this
.
$refs
.
markdownField
.
previewMarkdown
=
false
;
}
...
...
@@ -431,19 +411,6 @@ js-gfm-input js-autosize markdown-area js-vue-textarea qa-comment-input"
</p>
</gl-alert>
<div
class=
"note-form-actions"
>
<div
v-if=
"confidentialNotesEnabled"
class=
"js-confidential-note-toggle mb-4"
>
<gl-form-checkbox
v-model=
"noteIsConfidential"
>
<gl-icon
name=
"eye-slash"
:size=
"12"
/>
{{ __('Mark this comment as private') }}
<gl-icon
v-gl-tooltip:tooltipcontainer
.
bottom
name=
"question"
:size=
"12"
:title=
"__('Private comments are accessible by internal staff only')"
class=
"gl-text-gray-800"
/>
</gl-form-checkbox>
</div>
<div
class=
"float-left btn-group
append-right-10 comment-type-dropdown js-comment-type-dropdown droplab-dropdown"
...
...
app/assets/javascripts/notes/components/note_header.vue
View file @
713188ff
<
script
>
import
{
mapActions
}
from
'
vuex
'
;
import
{
GlIcon
,
GlTooltipDirective
}
from
'
@gitlab/ui
'
;
import
timeAgoTooltip
from
'
~/vue_shared/components/time_ago_tooltip.vue
'
;
import
GitlabTeamMemberBadge
from
'
~/vue_shared/components/user_avatar/badges/gitlab_team_member_badge.vue
'
;
...
...
@@ -8,10 +7,6 @@ export default {
components
:
{
timeAgoTooltip
,
GitlabTeamMemberBadge
,
GlIcon
,
},
directives
:
{
GlTooltip
:
GlTooltipDirective
,
},
props
:
{
author
:
{
...
...
@@ -49,11 +44,6 @@ export default {
required
:
false
,
default
:
true
,
},
isConfidential
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
,
},
},
data
()
{
return
{
...
...
@@ -170,32 +160,23 @@ export default {
</span>
</
template
>
<span
v-else
>
{{ __('A deleted user') }}
</span>
<span
class=
"note-headline-light note-headline-meta
d-sm-inline-flex align-items-center
"
>
<span
class=
"note-headline-light note-headline-meta"
>
<span
class=
"system-note-message"
>
<slot></slot>
</span>
<
template
v-if=
"createdAt"
>
<span
ref=
"actionText"
class=
"system-note-separator
ml-1
"
>
<span
ref=
"actionText"
class=
"system-note-separator"
>
<template
v-if=
"actionText"
>
{{
actionText
}}
</
template
>
</span>
<a
v-if=
"noteTimestampLink"
ref=
"noteTimestampLink"
:href=
"noteTimestampLink"
class=
"note-timestamp system-note-separator
mr-1
"
class=
"note-timestamp system-note-separator"
@
click=
"updateTargetNoteHash"
>
<time-ago-tooltip
:time=
"createdAt"
tooltip-placement=
"bottom"
/>
</a>
<time-ago-tooltip
v-else
ref=
"noteTimestamp"
:time=
"createdAt"
tooltip-placement=
"bottom"
/>
</template>
<gl-icon
v-if=
"isConfidential"
ref=
"confidentialIndicator"
v-gl-tooltip:tooltipcontainer
.
bottom
name=
"eye-slash"
:size=
"14"
:title=
"__('Private comments are accessible by internal staff only')"
class=
"mx-1 gl-text-gray-800"
/>
<slot
name=
"extra-controls"
></slot>
<i
v-if=
"showSpinner"
...
...
app/assets/javascripts/notes/components/noteable_note.vue
View file @
713188ff
...
...
@@ -255,13 +255,7 @@ export default {
</div>
<div
class=
"timeline-content"
>
<div
class=
"note-header"
>
<note-header
v-once
:author=
"author"
:created-at=
"note.created_at"
:note-id=
"note.id"
:is-confidential=
"note.confidential"
>
<note-header
v-once
:author=
"author"
:created-at=
"note.created_at"
:note-id=
"note.id"
>
<slot
slot=
"note-header-info"
name=
"note-header-info"
></slot>
<span
v-if=
"commit"
v-html=
"actionText"
></span>
<span
v-else
class=
"d-none d-sm-inline"
>
·
</span>
...
...
app/assets/javascripts/vue_shared/components/notes/system_note.vue
View file @
713188ff
...
...
@@ -107,7 +107,7 @@ export default {
<span
v-html=
"actionTextHtml"
></span>
<template
v-if=
"canSeeDescriptionVersion"
slot=
"extra-controls"
>
·
<button
type=
"button"
class=
"btn-blank btn-link
ml-1
"
@
click=
"toggleDescriptionVersion"
>
<button
type=
"button"
class=
"btn-blank btn-link"
@
click=
"toggleDescriptionVersion"
>
{{
__
(
'
Compare with previous version
'
)
}}
<icon
:name=
"descriptionVersionToggleIcon"
:size=
"12"
class=
"append-left-5"
/>
</button>
...
...
app/assets/stylesheets/pages/notes.scss
View file @
713188ff
...
...
@@ -660,6 +660,10 @@ $note-form-margin-left: 72px;
padding-bottom
:
0
;
}
.note-headline-light
{
display
:
inline
;
}
.note-headline-light
,
.discussion-headline-light
{
color
:
$gl-text-color-secondary
;
...
...
app/controllers/projects/issues_controller.rb
View file @
713188ff
...
...
@@ -51,7 +51,6 @@ class Projects::IssuesController < Projects::ApplicationController
before_action
only: :show
do
push_frontend_feature_flag
(
:real_time_issue_sidebar
,
@project
)
push_frontend_feature_flag
(
:confidential_notes
,
@project
)
end
around_action
:allow_gitaly_ref_name_caching
,
only:
[
:discussions
]
...
...
changelogs/unreleased/207471-expose-note-confidential-attribute-in-apis-and-display-on-frontend.yml
deleted
100644 → 0
View file @
c76d3e2e
---
title
:
Add confidential status support for new comments
merge_request
:
30570
author
:
type
:
added
changelogs/unreleased/217310.yml
deleted
100644 → 0
View file @
c76d3e2e
---
title
:
Fix missing space on system notes
merge_request
:
31598
author
:
type
:
fixed
locale/gitlab.pot
View file @
713188ff
...
...
@@ -12788,9 +12788,6 @@ msgstr ""
msgid "Mark comment as resolved"
msgstr ""
msgid "Mark this comment as private"
msgstr ""
msgid "Mark this issue as a duplicate of another issue"
msgstr ""
...
...
@@ -15592,9 +15589,6 @@ msgstr ""
msgid "Private - The group and its projects can only be viewed by members."
msgstr ""
msgid "Private comments are accessible by internal staff only"
msgstr ""
msgid "Private group(s)"
msgstr ""
...
...
spec/frontend/notes/components/comment_form_spec.js
View file @
713188ff
...
...
@@ -24,7 +24,6 @@ describe('issue_comment_form component', () => {
let
store
;
let
wrapper
;
let
axiosMock
;
let
features
=
{};
const
setupStore
=
(
userData
,
noteableData
)
=>
{
store
.
dispatch
(
'
setUserData
'
,
userData
);
...
...
@@ -38,16 +37,12 @@ describe('issue_comment_form component', () => {
noteableType
,
},
store
,
provide
:
{
glFeatures
:
features
,
},
});
};
beforeEach
(()
=>
{
axiosMock
=
new
MockAdapter
(
axios
);
store
=
createStore
();
features
=
{};
});
afterEach
(()
=>
{
...
...
@@ -303,32 +298,6 @@ describe('issue_comment_form component', () => {
});
});
});
describe
(
'
when note can be confidential
'
,
()
=>
{
it
(
'
appends confidential status to note payload when saving
'
,
()
=>
{
jest
.
spyOn
(
wrapper
.
vm
,
'
saveNote
'
).
mockReturnValue
(
new
Promise
(()
=>
{}));
wrapper
.
vm
.
note
=
'
confidential note
'
;
return
wrapper
.
vm
.
$nextTick
().
then
(()
=>
{
wrapper
.
find
(
'
.js-comment-submit-button
'
).
trigger
(
'
click
'
);
const
[
providedData
]
=
wrapper
.
vm
.
saveNote
.
mock
.
calls
[
0
];
expect
(
providedData
.
data
.
note
.
confidential
).
toBe
(
false
);
});
});
it
(
'
should render confidential toggle as false
'
,
()
=>
{
features
=
{
confidentialNotes
:
true
};
mountComponent
();
const
input
=
wrapper
.
find
(
'
.js-confidential-note-toggle .form-check-input
'
);
expect
(
input
.
exists
()).
toBe
(
true
);
expect
(
input
.
attributes
(
'
checked
'
)).
toBeFalsy
();
});
});
});
describe
(
'
issue is confidential
'
,
()
=>
{
...
...
spec/frontend/notes/components/note_header_spec.js
View file @
713188ff
...
...
@@ -19,7 +19,6 @@ describe('NoteHeader component', () => {
const
findActionText
=
()
=>
wrapper
.
find
({
ref
:
'
actionText
'
});
const
findTimestampLink
=
()
=>
wrapper
.
find
({
ref
:
'
noteTimestampLink
'
});
const
findTimestamp
=
()
=>
wrapper
.
find
({
ref
:
'
noteTimestamp
'
});
const
findConfidentialIndicator
=
()
=>
wrapper
.
find
({
ref
:
'
confidentialIndicator
'
});
const
findSpinner
=
()
=>
wrapper
.
find
({
ref
:
'
spinner
'
});
const
author
=
{
...
...
@@ -247,15 +246,4 @@ describe('NoteHeader component', () => {
});
});
});
describe
(
'
with confidentiality indicator
'
,
()
=>
{
it
.
each
`
status | condition
${
true
}
|
${
'
shows
'
}
${
false
}
|
${
'
hides
'
}
`
(
'
$condition icon indicator when isConfidential is $status
'
,
({
status
})
=>
{
createComponent
({
isConfidential
:
status
});
expect
(
findConfidentialIndicator
().
exists
()).
toBe
(
status
);
});
});
});
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