Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-09 09:09:55 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-09 09:09:55 +0300
commit0221116862ee66024a03492b4fbbe4e069d84303 (patch)
treee0f46cc3c30534ab731af27c574183b1e222fd0e /app/assets/javascripts/error_tracking
parentce130e211808c9b02116f30af4a043f1a4d3a717 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/error_tracking')
-rw-r--r--app/assets/javascripts/error_tracking/components/error_tracking_list.vue45
-rw-r--r--app/assets/javascripts/error_tracking/store/list/actions.js7
-rw-r--r--app/assets/javascripts/error_tracking/store/list/mutation_types.js1
-rw-r--r--app/assets/javascripts/error_tracking/store/list/mutations.js3
-rw-r--r--app/assets/javascripts/error_tracking/store/list/state.js1
5 files changed, 51 insertions, 6 deletions
diff --git a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
index 552e8cac3a7..80a88489545 100644
--- a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
+++ b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue
@@ -16,7 +16,6 @@ import {
GlButtonGroup,
} from '@gitlab/ui';
import AccessorUtils from '~/lib/utils/accessor';
-import Icon from '~/vue_shared/components/icon.vue';
import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
import { __ } from '~/locale';
import { isEmpty } from 'lodash';
@@ -59,7 +58,7 @@ export default {
{
key: 'status',
label: '',
- tdClass: `${tableDataClass} text-right`,
+ tdClass: `${tableDataClass} text-center`,
},
{
key: 'details',
@@ -67,6 +66,11 @@ export default {
thClass: 'invisible w-0',
},
],
+ statusFilters: {
+ unresolved: __('Unresolved'),
+ ignored: __('Ignored'),
+ resolved: __('Resolved'),
+ },
sortFields: {
last_seen: __('Last Seen'),
first_seen: __('First Seen'),
@@ -83,7 +87,6 @@ export default {
GlLoadingIcon,
GlTable,
GlFormInput,
- Icon,
GlPagination,
TimeAgo,
GlButtonGroup,
@@ -136,6 +139,7 @@ export default {
'sortField',
'recentSearches',
'pagination',
+ 'statusFilter',
'cursor',
]),
paginationRequired() {
@@ -169,6 +173,7 @@ export default {
'fetchPaginatedResults',
'updateStatus',
'removeIgnoredResolvedErrors',
+ 'filterByStatus',
]),
setSearchText(text) {
this.errorSearchQuery = text;
@@ -191,9 +196,16 @@ export default {
isCurrentSortField(field) {
return field === this.sortField;
},
+ isCurrentStatusFilter(filter) {
+ return filter === this.statusFilter;
+ },
getIssueUpdatePath(errorId) {
return `/${this.projectPath}/-/error_tracking/${errorId}.json`;
},
+ filterErrors(status, label) {
+ this.filterValue = label;
+ return this.filterByStatus(status);
+ },
updateIssueStatus(errorId, status) {
this.updateStatus({
endpoint: this.getIssueUpdatePath(errorId),
@@ -260,11 +272,32 @@ export default {
</div>
<gl-dropdown
- class="sort-control"
+ :text="$options.statusFilters[statusFilter]"
+ class="status-dropdown mr-2"
+ menu-class="dropdown"
+ :disabled="loading"
+ >
+ <gl-dropdown-item
+ v-for="(label, status) in $options.statusFilters"
+ :key="status"
+ @click="filterErrors(status, label)"
+ >
+ <span class="d-flex">
+ <gl-icon
+ class="flex-shrink-0 append-right-4"
+ :class="{ invisible: !isCurrentStatusFilter(status) }"
+ name="mobile-issue-close"
+ />
+ {{ label }}
+ </span>
+ </gl-dropdown-item>
+ </gl-dropdown>
+
+ <gl-dropdown
:text="$options.sortFields[sortField]"
left
:disabled="loading"
- menu-class="sort-dropdown"
+ menu-class="dropdown"
>
<gl-dropdown-item
v-for="(label, field) in $options.sortFields"
@@ -272,7 +305,7 @@ export default {
@click="sortByField(field)"
>
<span class="d-flex">
- <icon
+ <gl-icon
class="flex-shrink-0 append-right-4"
:class="{ invisible: !isCurrentSortField(field) }"
name="mobile-issue-close"
diff --git a/app/assets/javascripts/error_tracking/store/list/actions.js b/app/assets/javascripts/error_tracking/store/list/actions.js
index 6f8573c0f4d..4170c1bf759 100644
--- a/app/assets/javascripts/error_tracking/store/list/actions.js
+++ b/app/assets/javascripts/error_tracking/store/list/actions.js
@@ -18,6 +18,7 @@ export function startPolling({ state, commit, dispatch }) {
search_term: state.searchQuery,
sort: state.sortField,
cursor: state.cursor,
+ issue_status: state.statusFilter,
},
},
successCallback: ({ data }) => {
@@ -83,6 +84,12 @@ export const searchByQuery = ({ commit, dispatch }, query) => {
dispatch('startPolling');
};
+export const filterByStatus = ({ commit, dispatch }, status) => {
+ commit(types.SET_STATUS_FILTER, status);
+ dispatch('stopPolling');
+ dispatch('startPolling');
+};
+
export const sortByField = ({ commit, dispatch }, field) => {
commit(types.SET_CURSOR, null);
commit(types.SET_SORT_FIELD, field);
diff --git a/app/assets/javascripts/error_tracking/store/list/mutation_types.js b/app/assets/javascripts/error_tracking/store/list/mutation_types.js
index 23495cbf01d..872ac8ea8fc 100644
--- a/app/assets/javascripts/error_tracking/store/list/mutation_types.js
+++ b/app/assets/javascripts/error_tracking/store/list/mutation_types.js
@@ -10,3 +10,4 @@ export const SET_SORT_FIELD = 'SET_SORT_FIELD';
export const SET_SEARCH_QUERY = 'SET_SEARCH_QUERY';
export const SET_CURSOR = 'SET_CURSOR';
export const REMOVE_IGNORED_RESOLVED_ERRORS = 'REMOVE_IGNORED_RESOLVED_ERRORS';
+export const SET_STATUS_FILTER = 'SET_STATUS_FILTER';
diff --git a/app/assets/javascripts/error_tracking/store/list/mutations.js b/app/assets/javascripts/error_tracking/store/list/mutations.js
index 38d156263fb..be0cd4de78d 100644
--- a/app/assets/javascripts/error_tracking/store/list/mutations.js
+++ b/app/assets/javascripts/error_tracking/store/list/mutations.js
@@ -62,4 +62,7 @@ export default {
[types.REMOVE_IGNORED_RESOLVED_ERRORS](state, error) {
state.errors = state.errors.filter(err => err.id !== error);
},
+ [types.SET_STATUS_FILTER](state, query) {
+ state.statusFilter = query;
+ },
};
diff --git a/app/assets/javascripts/error_tracking/store/list/state.js b/app/assets/javascripts/error_tracking/store/list/state.js
index 225a805e709..eb983fde9e0 100644
--- a/app/assets/javascripts/error_tracking/store/list/state.js
+++ b/app/assets/javascripts/error_tracking/store/list/state.js
@@ -3,6 +3,7 @@ export default () => ({
loading: true,
endpoint: null,
sortField: 'last_seen',
+ statusFilter: 'unresolved',
searchQuery: null,
indexPath: '',
recentSearches: [],