summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/views/editor/align/align.actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/frontend/app/views/editor/align/align.actions.js')
-rw-r--r--animism-align/frontend/app/views/editor/align/align.actions.js28
1 files changed, 19 insertions, 9 deletions
diff --git a/animism-align/frontend/app/views/editor/align/align.actions.js b/animism-align/frontend/app/views/editor/align/align.actions.js
index 1583e4e..65e3d46 100644
--- a/animism-align/frontend/app/views/editor/align/align.actions.js
+++ b/animism-align/frontend/app/views/editor/align/align.actions.js
@@ -10,10 +10,11 @@ import { timestampToSeconds, post } from 'app/utils'
import { cutFirstSentence } from 'app/utils/align.utils'
import { annotationFadeTimings } from 'app/utils/annotation.utils'
+/* scrolling the view */
+
export const setScrollPosition = start_ts => dispatch => (
dispatch({ type: types.align.set_display_setting, key: 'start_ts', value: start_ts })
)
-
export const setZoom = zoom => dispatch => {
if (0 <= zoom && zoom < ZOOM_STEPS.length) {
dispatch({ type: types.align.set_display_setting, key: 'zoom', value: zoom })
@@ -23,6 +24,8 @@ export const throttledSetZoom = throttle(zoom => dispatch => {
setZoom(zoom)(dispatch)
}, 250, { leading: true })
+/* cursor */
+
export const setCursor = cursor_ts => dispatch => (
dispatch({ type: types.align.set_display_setting, key: 'cursor_ts', value: cursor_ts })
)
@@ -33,6 +36,8 @@ export const clearCursorRegion = () => dispatch => (
dispatch({ type: types.align.set_display_setting, key: 'cursor_region', value: null })
)
+/* selecting annotations in the list */
+
export const setSelectedAnnotation = annotation => dispatch => {
debouncedUpdateAnnotation.flush()
dispatch({ type: types.align.set_selected_annotation, data: annotation })
@@ -69,6 +74,8 @@ export const cloneSelectedAnnotation = annotation => dispatch => {
})
}
+/* paragraph management */
+
export const setSelectedParagraph = paragraph_id => dispatch => {
dispatch({ type: types.align.set_display_setting, key: 'selected_paragraph_id', value: paragraph_id })
}
@@ -76,18 +83,20 @@ export const clearSelectedParagraph = () => dispatch => {
dispatch({ type: types.align.set_display_setting, key: 'selected_paragraph_id', value: -1 })
}
+/* annotation form - show / hide / update */
+
export const showNewAnnotationForm = (start_ts, text) => dispatch => {
- let croppedText;
- if (store.getState().align.annotation.start_ts) {
- croppedText = store.getState().align.annotation.text
- } else {
- croppedText = cutFirstSentence(text)
- }
+ const state = store.getState()
+ let croppedText = state.align.annotation.start_ts
+ ? state.align.annotation.text
+ : cutFirstSentence(text)
+
// console.log(croppedText)
dispatch({
type: types.align.set_temporary_annotation,
data: {
id: 'new',
+ episode_id: state.site.episode.id,
start_ts,
end_ts: 0.0,
text: croppedText,
@@ -102,14 +111,12 @@ export const showEditAnnotationForm = (annotation) => dispatch => {
data: annotation,
})
}
-
export const updateAnnotationForm = (key, value) => dispatch => {
dispatch({ type: types.align.update_temporary_annotation, key, value })
}
export const updateAnnotationSettings = (key, value) => dispatch => {
dispatch({ type: types.align.update_temporary_annotation_settings, key, value })
}
-
export const hideAnnotationForm = () => dispatch => {
dispatch({
type: types.align.set_temporary_annotation,
@@ -117,8 +124,10 @@ export const hideAnnotationForm = () => dispatch => {
})
}
+/* insert / removing time */
export const spliceTime = start_ts => dispatch => {
+ const state = store.getState()
let duration = timestampToSeconds(prompt("How many seconds to add or remove? Enter a positive / negative number"))
if (!duration) {
return
@@ -126,6 +135,7 @@ export const spliceTime = start_ts => dispatch => {
console.log(start_ts, duration)
const data = {
start_ts, duration,
+ episode_id: state.site.episode.id,
}
post(dispatch, types.api, 'splice', '/api/v1/annotation/splice', data)
.then(res => {