diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index b3df7c597c8..a50fc94ff83 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -c85e53a032101e7e53915ec10748f9559449431c +713cc8c7fb996ba95490debfffef04abff06f138 diff --git a/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests.query.graphql b/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests.query.graphql index 6d20c454f2c..0e826ea3d7c 100644 --- a/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests.query.graphql +++ b/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests.query.graphql @@ -57,6 +57,7 @@ query getGroupMergeRequests( deployedAfter: $deployedAfter environmentName: $environmentName not: $not + includeSubgroups: true before: $beforeCursor after: $afterCursor first: $firstPageSize diff --git a/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests_counts.query.graphql b/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests_counts.query.graphql index 25846bc2805..22cb0dc0e09 100644 --- a/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests_counts.query.graphql +++ b/app/assets/javascripts/merge_requests/list/queries/group/get_merge_requests_counts.query.graphql @@ -45,6 +45,7 @@ query getGroupMergeRequestsCount( deployedAfter: $deployedAfter environmentName: $environmentName not: $not + includeSubgroups: true ) { count } @@ -70,6 +71,7 @@ query getGroupMergeRequestsCount( deployedAfter: $deployedAfter environmentName: $environmentName not: $not + includeSubgroups: true ) { count } @@ -95,6 +97,7 @@ query getGroupMergeRequestsCount( deployedAfter: $deployedAfter environmentName: $environmentName not: $not + includeSubgroups: true ) { count } @@ -120,6 +123,7 @@ query getGroupMergeRequestsCount( deployedAfter: $deployedAfter environmentName: $environmentName not: $not + includeSubgroups: true ) { count } diff --git a/app/assets/javascripts/notes/components/note_form.vue b/app/assets/javascripts/notes/components/note_form.vue index 8c2c2e4148e..598c85b652d 100644 --- a/app/assets/javascripts/notes/components/note_form.vue +++ b/app/assets/javascripts/notes/components/note_form.vue @@ -310,7 +310,9 @@ export default { this.isSubmittingWithKeydown = true; this.handleUpdate(); } - this.updatedNoteBody = ''; + if (!this.isMeasuringCommentTemperature) { + this.updatedNoteBody = ''; + } }, runCommentTemperatureMeasurement(onSaveHandler) { this.isMeasuringCommentTemperature = true; diff --git a/app/assets/javascripts/todos/components/mutations/un_snooze_todo.mutation.graphql b/app/assets/javascripts/todos/components/mutations/un_snooze_todo.mutation.graphql new file mode 100644 index 00000000000..c5cbc99fb5b --- /dev/null +++ b/app/assets/javascripts/todos/components/mutations/un_snooze_todo.mutation.graphql @@ -0,0 +1,9 @@ +mutation unSnoozeTodo($todoId: TodoID!) { + todoUnSnooze(input: { id: $todoId }) { + todo { + id + snoozedUntil + } + errors + } +} diff --git a/app/assets/javascripts/todos/components/todo_item_actions.vue b/app/assets/javascripts/todos/components/todo_item_actions.vue index 7d2df1eb27b..40cbb20af0b 100644 --- a/app/assets/javascripts/todos/components/todo_item_actions.vue +++ b/app/assets/javascripts/todos/components/todo_item_actions.vue @@ -7,6 +7,7 @@ import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { INSTRUMENT_TODO_ITEM_CLICK, TODO_STATE_DONE, TODO_STATE_PENDING } from '../constants'; import markAsDoneMutation from './mutations/mark_as_done.mutation.graphql'; import markAsPendingMutation from './mutations/mark_as_pending.mutation.graphql'; +import unSnoozeTodoMutation from './mutations/un_snooze_todo.mutation.graphql'; import SnoozeTodoDropdown from './snooze_todo_dropdown.vue'; export default { @@ -99,17 +100,62 @@ export default { showError(); } }, + async unSnooze() { + try { + const { data } = await this.$apollo.mutate({ + mutation: unSnoozeTodoMutation, + variables: { + todoId: this.todo.id, + }, + optimisticResponse: { + todoUnSnooze: { + todo: { + id: this.todo.id, + snoozedUntil: null, + __typename: 'Todo', + }, + errors: [], + }, + }, + }); + + if (data.errors?.length > 0) { + reportToSentry(this.$options.name, new Error(data.errors.join(', '))); + this.showUnSnoozedError(); + } else { + this.$emit('change', this.todo.id, this.isDone); + } + } catch (failure) { + reportToSentry(this.$options.name, failure); + this.showUnSnoozedError(); + } + }, + showUnSnoozedError() { + this.$toast.show(s__('Todos|Failed to un-snooze todo. Try again later.'), { + variant: 'danger', + }); + }, }, i18n: { markAsPending: s__('Todos|Undo'), markAsDone: s__('Todos|Mark as done'), + unSnooze: s__('Todos|Remove snooze'), }, };