about summary refs log tree commit diff
path: root/app/assets/javascripts/components/actions/timelines.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/actions/timelines.jsx')
-rw-r--r--app/assets/javascripts/components/actions/timelines.jsx45
1 files changed, 42 insertions, 3 deletions
diff --git a/app/assets/javascripts/components/actions/timelines.jsx b/app/assets/javascripts/components/actions/timelines.jsx
index 4d4122ec7..383b727e9 100644
--- a/app/assets/javascripts/components/actions/timelines.jsx
+++ b/app/assets/javascripts/components/actions/timelines.jsx
@@ -1,6 +1,12 @@
-export const TIMELINE_SET    = 'TIMELINE_SET';
-export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
-export const TIMELINE_DELETE = 'TIMELINE_DELETE';
+import api from '../api'
+
+export const TIMELINE_SET     = 'TIMELINE_SET';
+export const TIMELINE_UPDATE  = 'TIMELINE_UPDATE';
+export const TIMELINE_DELETE  = 'TIMELINE_DELETE';
+
+export const TIMELINE_REFRESH_REQUEST = 'TIMELINE_REFRESH_REQUEST';
+export const TIMELINE_REFRESH_SUCCESS = 'TIMELINE_REFRESH_SUCCESS';
+export const TIMELINE_REFRESH_FAIL    = 'TIMELINE_REFRESH_FAIL';
 
 export function setTimeline(timeline, statuses) {
   return {
@@ -24,3 +30,36 @@ export function deleteFromTimelines(id) {
     id: id
   };
 }
+
+export function refreshTimelineRequest(timeline) {
+  return {
+    type: TIMELINE_REFRESH_REQUEST,
+    timeline: timeline
+  };
+}
+
+export function refreshTimeline(timeline) {
+  return function (dispatch, getState) {
+    dispatch(refreshTimelineRequest(timeline));
+
+    api(getState).get(`/api/statuses/${timeline}`).then(function (response) {
+      dispatch(refreshTimelineSuccess(timeline, response.data));
+    }).catch(function (error) {
+      dispatch(refreshTimelineFail(timeline, error));
+    });
+  };
+}
+
+export function refreshTimelineSuccess(timeline, statuses) {
+  return function (dispatch) {
+    dispatch(setTimeline(timeline, statuses));
+  };
+}
+
+export function refreshTimelineFail(timeline, error) {
+  return {
+    type: TIMELINE_REFRESH_FAIL,
+    timeline: timeline,
+    error: error
+  };
+}