Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
efb0c7f501
commit
d9e821dbd9
|
|
@ -1 +1 @@
|
|||
1.13.0
|
||||
1.12.0
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@ export default {
|
|||
thClass: 'w-15p',
|
||||
tdClass: 'table-col d-flex align-items-center d-sm-table-cell',
|
||||
},
|
||||
{
|
||||
key: 'ignore',
|
||||
label: '',
|
||||
tdClass: 'table-col d-flex align-items-center d-sm-table-cell',
|
||||
},
|
||||
{
|
||||
key: 'details',
|
||||
tdClass: 'table-col d-sm-none d-flex align-items-center',
|
||||
|
|
@ -97,6 +102,14 @@ export default {
|
|||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
projectPath: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
listPath: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
hasLocalStorage: AccessorUtils.isLocalStorageAccessSafe(),
|
||||
data() {
|
||||
|
|
@ -144,6 +157,7 @@ export default {
|
|||
'loadRecentSearches',
|
||||
'setIndexPath',
|
||||
'fetchPaginatedResults',
|
||||
'updateStatus',
|
||||
]),
|
||||
setSearchText(text) {
|
||||
this.errorSearchQuery = text;
|
||||
|
|
@ -166,6 +180,16 @@ export default {
|
|||
isCurrentSortField(field) {
|
||||
return field === this.sortField;
|
||||
},
|
||||
getIssueUpdatePath(errorId) {
|
||||
return `/${this.projectPath}/-/error_tracking/${errorId}.json`;
|
||||
},
|
||||
updateIssueStatus(errorId, status) {
|
||||
this.updateStatus({
|
||||
endpoint: this.getIssueUpdatePath(errorId),
|
||||
redirectUrl: this.listPath,
|
||||
status,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -299,6 +323,16 @@ export default {
|
|||
<time-ago :time="errors.item.lastSeen" class="text-secondary" />
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:ignore="errors">
|
||||
<gl-button
|
||||
ref="ignoreError"
|
||||
v-gl-tooltip.hover
|
||||
:title="__('Ignore')"
|
||||
@click="updateIssueStatus(errors.item.id, 'ignored')"
|
||||
>
|
||||
<gl-icon name="eye-slash" :size="12" />
|
||||
</gl-button>
|
||||
</template>
|
||||
<template v-slot:details="errors">
|
||||
<gl-button
|
||||
:href="getDetailsLink(errors.item.id)"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,13 @@ export default () => {
|
|||
store,
|
||||
render(createElement) {
|
||||
const domEl = document.querySelector(this.$options.el);
|
||||
const { indexPath, enableErrorTrackingLink, illustrationPath } = domEl.dataset;
|
||||
const {
|
||||
indexPath,
|
||||
enableErrorTrackingLink,
|
||||
illustrationPath,
|
||||
projectPath,
|
||||
listPath,
|
||||
} = domEl.dataset;
|
||||
let { errorTrackingEnabled, userCanEnableErrorTracking } = domEl.dataset;
|
||||
|
||||
errorTrackingEnabled = parseBoolean(errorTrackingEnabled);
|
||||
|
|
@ -26,6 +32,8 @@ export default () => {
|
|||
errorTrackingEnabled,
|
||||
illustrationPath,
|
||||
userCanEnableErrorTracking,
|
||||
projectPath,
|
||||
listPath,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ export const createStore = () =>
|
|||
list: {
|
||||
namespaced: true,
|
||||
state: listState(),
|
||||
actions: listActions,
|
||||
mutations: listMutations,
|
||||
actions: { ...actions, ...listActions },
|
||||
mutations: { ...mutations, ...listMutations },
|
||||
},
|
||||
details: {
|
||||
namespaced: true,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ module Projects::ErrorTrackingHelper
|
|||
'user-can-enable-error-tracking' => can?(current_user, :admin_operations, project).to_s,
|
||||
'enable-error-tracking-link' => project_settings_operations_path(project),
|
||||
'error-tracking-enabled' => error_tracking_enabled.to_s,
|
||||
'project-path' => project.full_path,
|
||||
'list-path' => project_error_tracking_index_path(project),
|
||||
'illustration-path' => image_path('illustrations/cluster_popover.svg')
|
||||
}
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Implement ability to ignore Sentry errrors from the list view
|
||||
merge_request: 22819
|
||||
author:
|
||||
type: added
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
title: Upgrade Pages to 1.13.0
|
||||
merge_request: 23023
|
||||
author:
|
||||
type: added
|
||||
|
|
@ -14,7 +14,7 @@ document more information about using branches to work together.
|
|||
|
||||
Forking a project is in most cases a two-step process.
|
||||
|
||||
1. Click on the fork button located located in between the star and clone buttons on the project's home page.
|
||||
1. Click on the fork button located in between the star and clone buttons on the project's home page.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ describe('ErrorTrackingList', () => {
|
|||
store,
|
||||
propsData: {
|
||||
indexPath: '/path',
|
||||
listPath: '/error_tracking',
|
||||
projectPath: 'project/test',
|
||||
enableErrorTrackingLink: '/link',
|
||||
userCanEnableErrorTracking,
|
||||
errorTrackingEnabled,
|
||||
|
|
@ -59,6 +61,7 @@ describe('ErrorTrackingList', () => {
|
|||
searchByQuery: jest.fn(),
|
||||
sortByField: jest.fn(),
|
||||
fetchPaginatedResults: jest.fn(),
|
||||
updateStatus: jest.fn(),
|
||||
};
|
||||
|
||||
const state = {
|
||||
|
|
@ -139,6 +142,14 @@ describe('ErrorTrackingList', () => {
|
|||
});
|
||||
});
|
||||
|
||||
it('each error in the list should have an ignore button', () => {
|
||||
const error = wrapper.findAll('tbody tr');
|
||||
|
||||
error.wrappers.forEach((_, index) => {
|
||||
expect(error.at(index).exists('glicon-stub[name="eye-slash"]')).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('filtering', () => {
|
||||
const findSearchBox = () => wrapper.find(GlFormInput);
|
||||
|
||||
|
|
@ -205,6 +216,35 @@ describe('ErrorTrackingList', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('When the ignore button on an error is clicked', () => {
|
||||
beforeEach(() => {
|
||||
store.state.list.loading = false;
|
||||
store.state.list.errors = errorsList;
|
||||
|
||||
mountComponent({
|
||||
stubs: {
|
||||
GlTable: false,
|
||||
GlLink: false,
|
||||
GlButton: false,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('sends the "ignored" status and error ID', () => {
|
||||
const ignoreButton = wrapper.find({ ref: 'ignoreError' });
|
||||
ignoreButton.trigger('click');
|
||||
expect(actions.updateStatus).toHaveBeenCalledWith(
|
||||
expect.anything(),
|
||||
{
|
||||
endpoint: '/project/test/-/error_tracking/3.json',
|
||||
redirectUrl: '/error_tracking',
|
||||
status: 'ignored',
|
||||
},
|
||||
undefined,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('When error tracking is disabled and user is not allowed to enable it', () => {
|
||||
beforeEach(() => {
|
||||
mountComponent({
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ describe Projects::ErrorTrackingHelper do
|
|||
describe '#error_tracking_data' do
|
||||
let(:can_enable_error_tracking) { true }
|
||||
let(:setting_path) { project_settings_operations_path(project) }
|
||||
let(:list_path) { project_error_tracking_index_path(project) }
|
||||
let(:project_path) { project.full_path }
|
||||
|
||||
let(:index_path) do
|
||||
project_error_tracking_index_path(project, format: :json)
|
||||
|
|
@ -30,6 +32,8 @@ describe Projects::ErrorTrackingHelper do
|
|||
'user-can-enable-error-tracking' => 'true',
|
||||
'enable-error-tracking-link' => setting_path,
|
||||
'error-tracking-enabled' => 'false',
|
||||
'list-path' => list_path,
|
||||
'project-path' => project_path,
|
||||
'illustration-path' => match_asset_path('/assets/illustrations/cluster_popover.svg')
|
||||
)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ describe 'Test coverage of the Project Import' do
|
|||
# opening a follow-up issue to fix this.
|
||||
MUTED_RELATIONS = %w[
|
||||
project.milestones.events.push_event_payload
|
||||
project.issues.events
|
||||
project.issues.events.push_event_payload
|
||||
project.issues.notes.events
|
||||
project.issues.notes.events.push_event_payload
|
||||
|
|
@ -55,13 +56,19 @@ describe 'Test coverage of the Project Import' do
|
|||
# Note that we use separate fixture to test ee-only features.
|
||||
# Most of the relations are present in `complex/project.json`
|
||||
# which is our main fixture.
|
||||
PROJECT_JSON_FIXTURES_EE =
|
||||
if Gitlab.ee?
|
||||
['ee/spec/fixtures/lib/gitlab/import_export/designs/project.json'].freeze
|
||||
else
|
||||
[]
|
||||
end
|
||||
|
||||
PROJECT_JSON_FIXTURES = [
|
||||
'spec/fixtures/lib/gitlab/import_export/complex/project.json',
|
||||
'spec/fixtures/lib/gitlab/import_export/group/project.json',
|
||||
'spec/fixtures/lib/gitlab/import_export/light/project.json',
|
||||
'spec/fixtures/lib/gitlab/import_export/milestone-iid/project.json',
|
||||
'ee/spec/fixtures/lib/gitlab/import_export/designs/project.json'
|
||||
].freeze
|
||||
'spec/fixtures/lib/gitlab/import_export/milestone-iid/project.json'
|
||||
].freeze + PROJECT_JSON_FIXTURES_EE
|
||||
|
||||
it 'ensures that all imported/exported relations are present in test JSONs' do
|
||||
not_tested_relations = (relations_from_config - tested_relations) - MUTED_RELATIONS
|
||||
|
|
|
|||
Loading…
Reference in New Issue