diff options
Diffstat (limited to 'app/assets/javascripts/logs')
-rw-r--r-- | app/assets/javascripts/logs/components/environment_logs.vue | 23 | ||||
-rw-r--r-- | app/assets/javascripts/logs/stores/actions.js | 5 | ||||
-rw-r--r-- | app/assets/javascripts/logs/stores/getters.js | 4 | ||||
-rw-r--r-- | app/assets/javascripts/logs/stores/mutation_types.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/logs/stores/mutations.js | 10 | ||||
-rw-r--r-- | app/assets/javascripts/logs/stores/state.js | 2 |
6 files changed, 32 insertions, 13 deletions
diff --git a/app/assets/javascripts/logs/components/environment_logs.vue b/app/assets/javascripts/logs/components/environment_logs.vue index b0acd69bae0..03019e4c25e 100644 --- a/app/assets/javascripts/logs/components/environment_logs.vue +++ b/app/assets/javascripts/logs/components/environment_logs.vue @@ -5,15 +5,17 @@ import { GlSprintf, GlAlert, GlDropdown, + GlDropdownDivider, GlDropdownItem, GlFormGroup, GlSearchBoxByClick, GlInfiniteScroll, } from '@gitlab/ui'; +import { s__ } from '~/locale'; import DateTimePicker from '~/vue_shared/components/date_time_picker/date_time_picker.vue'; import LogControlButtons from './log_control_buttons.vue'; -import { timeRanges, defaultTimeRange } from '~/monitoring/constants'; +import { timeRanges, defaultTimeRange } from '~/vue_shared/constants'; import { timeRangeFromUrl } from '~/monitoring/utils'; import { formatDate } from '../utils'; @@ -22,6 +24,7 @@ export default { GlSprintf, GlAlert, GlDropdown, + GlDropdownDivider, GlDropdownItem, GlFormGroup, GlSearchBoxByClick, @@ -90,6 +93,16 @@ export default { shouldShowElasticStackCallout() { return !this.isElasticStackCalloutDismissed && this.disableAdvancedControls; }, + + podDropdownText() { + if (this.pods.current) { + return this.pods.current; + } else if (this.advancedFeaturesEnabled) { + // "All pods" is a valid option when advanced querying is available + return s__('Environments|All pods'); + } + return s__('Environments|No pod selected'); + }, }, mounted() { this.setInitData({ @@ -178,11 +191,17 @@ export default { > <gl-dropdown id="pods-dropdown" - :text="pods.current || s__('Environments|No pods to display')" + :text="podDropdownText" :disabled="environments.isLoading" class="d-flex gl-h-32 js-pods-dropdown" toggle-class="dropdown-menu-toggle" > + <template v-if="advancedFeaturesEnabled"> + <gl-dropdown-item key="all-pods" @click="showPodLogs(null)"> + {{ s__('Environments|All pods') }} + </gl-dropdown-item> + <gl-dropdown-divider /> + </template> <gl-dropdown-item v-for="podName in pods.options" :key="podName" diff --git a/app/assets/javascripts/logs/stores/actions.js b/app/assets/javascripts/logs/stores/actions.js index 4544ebdfec1..834462573cc 100644 --- a/app/assets/javascripts/logs/stores/actions.js +++ b/app/assets/javascripts/logs/stores/actions.js @@ -82,7 +82,6 @@ export const setTimeRange = ({ dispatch, commit }, timeRange) => { export const showEnvironment = ({ dispatch, commit }, environmentName) => { commit(types.SET_PROJECT_ENVIRONMENT, environmentName); - commit(types.SET_CURRENT_POD_NAME, null); dispatch('fetchLogs'); }; @@ -107,16 +106,16 @@ export const fetchEnvironments = ({ commit, dispatch }, environmentsPath) => { }; export const fetchLogs = ({ commit, state }) => { - commit(types.REQUEST_PODS_DATA); commit(types.REQUEST_LOGS_DATA); return requestLogsUntilData(state) .then(({ data }) => { const { pod_name, pods, logs, cursor } = data; + commit(types.RECEIVE_LOGS_DATA_SUCCESS, { logs, cursor }); + commit(types.SET_CURRENT_POD_NAME, pod_name); commit(types.RECEIVE_PODS_DATA_SUCCESS, pods); - commit(types.RECEIVE_LOGS_DATA_SUCCESS, { logs, cursor }); }) .catch(() => { commit(types.RECEIVE_PODS_DATA_ERROR); diff --git a/app/assets/javascripts/logs/stores/getters.js b/app/assets/javascripts/logs/stores/getters.js index 58f2dbf4835..8770306fdd6 100644 --- a/app/assets/javascripts/logs/stores/getters.js +++ b/app/assets/javascripts/logs/stores/getters.js @@ -1,7 +1,7 @@ import { formatDate } from '../utils'; -const mapTrace = ({ timestamp = null, message = '' }) => - [timestamp ? formatDate(timestamp) : '', message].join(' | '); +const mapTrace = ({ timestamp = null, pod = '', message = '' }) => + [timestamp ? formatDate(timestamp) : '', pod, message].join(' | '); export const trace = state => state.logs.lines.map(mapTrace).join('\n'); diff --git a/app/assets/javascripts/logs/stores/mutation_types.js b/app/assets/javascripts/logs/stores/mutation_types.js index 5ff49135e41..7e7771a9df8 100644 --- a/app/assets/javascripts/logs/stores/mutation_types.js +++ b/app/assets/javascripts/logs/stores/mutation_types.js @@ -14,6 +14,5 @@ export const REQUEST_LOGS_DATA_PREPEND = 'REQUEST_LOGS_DATA_PREPEND'; export const RECEIVE_LOGS_DATA_PREPEND_SUCCESS = 'RECEIVE_LOGS_DATA_PREPEND_SUCCESS'; export const RECEIVE_LOGS_DATA_PREPEND_ERROR = 'RECEIVE_LOGS_DATA_PREPEND_ERROR'; -export const REQUEST_PODS_DATA = 'REQUEST_PODS_DATA'; export const RECEIVE_PODS_DATA_SUCCESS = 'RECEIVE_PODS_DATA_SUCCESS'; export const RECEIVE_PODS_DATA_ERROR = 'RECEIVE_PODS_DATA_ERROR'; diff --git a/app/assets/javascripts/logs/stores/mutations.js b/app/assets/javascripts/logs/stores/mutations.js index d94d71cd25a..d77c2894a05 100644 --- a/app/assets/javascripts/logs/stores/mutations.js +++ b/app/assets/javascripts/logs/stores/mutations.js @@ -1,8 +1,9 @@ import * as types from './mutation_types'; import { convertToFixedRange } from '~/lib/utils/datetime_range'; -const mapLine = ({ timestamp, message }) => ({ +const mapLine = ({ timestamp, pod, message }) => ({ timestamp, + pod, message, }); @@ -21,6 +22,10 @@ export default { // Environments Data [types.SET_PROJECT_ENVIRONMENT](state, environmentName) { state.environments.current = environmentName; + + // Clear current pod options + state.pods.current = null; + state.pods.options = []; }, [types.REQUEST_ENVIRONMENTS_DATA](state) { state.environments.options = []; @@ -81,9 +86,6 @@ export default { [types.SET_CURRENT_POD_NAME](state, podName) { state.pods.current = podName; }, - [types.REQUEST_PODS_DATA](state) { - state.pods.options = []; - }, [types.RECEIVE_PODS_DATA_SUCCESS](state, podOptions) { state.pods.options = podOptions; }, diff --git a/app/assets/javascripts/logs/stores/state.js b/app/assets/javascripts/logs/stores/state.js index e058f15b6b4..2c8f47294cc 100644 --- a/app/assets/javascripts/logs/stores/state.js +++ b/app/assets/javascripts/logs/stores/state.js @@ -1,4 +1,4 @@ -import { timeRanges, defaultTimeRange } from '~/monitoring/constants'; +import { timeRanges, defaultTimeRange } from '~/vue_shared/constants'; import { convertToFixedRange } from '~/lib/utils/datetime_range'; export default () => ({ |