summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/logs/stores/mutations.js
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-13 12:09:22 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-13 12:09:22 +0000
commit286fe61013674fe2d245ffc8d2233baf09923e70 (patch)
tree2037291f5863105e54e75be056b49f7d62007cae /app/assets/javascripts/logs/stores/mutations.js
parent4cb5e5011abfe8d50ac3a7ebd0018c563c6d7af4 (diff)
downloadgitlab-ce-286fe61013674fe2d245ffc8d2233baf09923e70.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/logs/stores/mutations.js')
-rw-r--r--app/assets/javascripts/logs/stores/mutations.js52
1 files changed, 42 insertions, 10 deletions
diff --git a/app/assets/javascripts/logs/stores/mutations.js b/app/assets/javascripts/logs/stores/mutations.js
index ca31dd3bc20..d94d71cd25a 100644
--- a/app/assets/javascripts/logs/stores/mutations.js
+++ b/app/assets/javascripts/logs/stores/mutations.js
@@ -1,17 +1,24 @@
import * as types from './mutation_types';
+import { convertToFixedRange } from '~/lib/utils/datetime_range';
+
+const mapLine = ({ timestamp, message }) => ({
+ timestamp,
+ message,
+});
export default {
- /** Search data */
+ // Search Data
[types.SET_SEARCH](state, searchQuery) {
state.search = searchQuery;
},
- /** Time Range data */
+ // Time Range Data
[types.SET_TIME_RANGE](state, timeRange) {
- state.timeRange.current = timeRange;
+ state.timeRange.selected = timeRange;
+ state.timeRange.current = convertToFixedRange(timeRange);
},
- /** Environments data */
+ // Environments Data
[types.SET_PROJECT_ENVIRONMENT](state, environmentName) {
state.environments.current = environmentName;
},
@@ -28,24 +35,49 @@ export default {
state.environments.isLoading = false;
},
- /** Logs data */
+ // Logs data
[types.REQUEST_LOGS_DATA](state) {
+ state.timeRange.current = convertToFixedRange(state.timeRange.selected);
+
state.logs.lines = [];
state.logs.isLoading = true;
+
+ // start pagination from the beginning
+ state.logs.cursor = null;
state.logs.isComplete = false;
},
- [types.RECEIVE_LOGS_DATA_SUCCESS](state, lines) {
- state.logs.lines = lines;
+ [types.RECEIVE_LOGS_DATA_SUCCESS](state, { logs = [], cursor }) {
+ state.logs.lines = logs.map(mapLine);
state.logs.isLoading = false;
- state.logs.isComplete = true;
+ state.logs.cursor = cursor;
+
+ if (!cursor) {
+ state.logs.isComplete = true;
+ }
},
[types.RECEIVE_LOGS_DATA_ERROR](state) {
state.logs.lines = [];
state.logs.isLoading = false;
- state.logs.isComplete = true;
},
- /** Pods data */
+ [types.REQUEST_LOGS_DATA_PREPEND](state) {
+ state.logs.isLoading = true;
+ },
+ [types.RECEIVE_LOGS_DATA_PREPEND_SUCCESS](state, { logs = [], cursor }) {
+ const lines = logs.map(mapLine);
+ state.logs.lines = lines.concat(state.logs.lines);
+ state.logs.isLoading = false;
+ state.logs.cursor = cursor;
+
+ if (!cursor) {
+ state.logs.isComplete = true;
+ }
+ },
+ [types.RECEIVE_LOGS_DATA_PREPEND_ERROR](state) {
+ state.logs.isLoading = false;
+ },
+
+ // Pods data
[types.SET_CURRENT_POD_NAME](state, podName) {
state.pods.current = podName;
},