summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/views/align/align.actions.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-03-08 22:11:55 +0100
committerJules Laplace <julescarbon@gmail.com>2021-03-08 22:11:55 +0100
commitd2cb17038b8537a609be06be2ed7013dbe27117e (patch)
tree028ceac9edddafc03ce80c49d5a05981bec3fcbe /animism-align/frontend/app/views/align/align.actions.js
parentb5ceb782f40fc1e402d1e58bc1ced2e4038fd787 (diff)
beginning the BIG refactor. moving editor stuff into per-episode hierarchy
Diffstat (limited to 'animism-align/frontend/app/views/align/align.actions.js')
-rw-r--r--animism-align/frontend/app/views/align/align.actions.js136
1 files changed, 0 insertions, 136 deletions
diff --git a/animism-align/frontend/app/views/align/align.actions.js b/animism-align/frontend/app/views/align/align.actions.js
deleted file mode 100644
index 1583e4e..0000000
--- a/animism-align/frontend/app/views/align/align.actions.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import * as types from 'app/types'
-import { store } from 'app/store'
-import actions from 'app/actions'
-// import { session } from 'app/session'
-import throttle from 'lodash.throttle'
-import debounce from 'lodash.debounce'
-
-import { ZOOM_STEPS } from 'app/constants'
-import { timestampToSeconds, post } from 'app/utils'
-import { cutFirstSentence } from 'app/utils/align.utils'
-import { annotationFadeTimings } from 'app/utils/annotation.utils'
-
-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 })
- }
-}
-export const throttledSetZoom = throttle(zoom => dispatch => {
- setZoom(zoom)(dispatch)
-}, 250, { leading: true })
-
-export const setCursor = cursor_ts => dispatch => (
- dispatch({ type: types.align.set_display_setting, key: 'cursor_ts', value: cursor_ts })
-)
-export const setCursorRegion = (a_ts, b_ts) => dispatch => (
- dispatch({ type: types.align.set_display_setting, key: 'cursor_region', value: { a_ts, b_ts } })
-)
-export const clearCursorRegion = () => dispatch => (
- dispatch({ type: types.align.set_display_setting, key: 'cursor_region', value: null })
-)
-
-export const setSelectedAnnotation = annotation => dispatch => {
- debouncedUpdateAnnotation.flush()
- dispatch({ type: types.align.set_selected_annotation, data: annotation })
-}
-export const clearSelectedAnnotation = () => dispatch => {
- debouncedUpdateAnnotation.flush()
- dispatch({ type: types.align.clear_selected_annotation })
-}
-export const updateSelectedAnnotation = annotation => dispatch => {
- debouncedUpdateAnnotation(annotation)
- dispatch({ type: types.align.set_selected_annotation, data: { ...annotation } })
-}
-export const debouncedUpdateAnnotation = debounce(annotation => {
- console.log('updating annotation', annotation)
- actions.annotation.update(annotation)
-}, 2000, { leading: false, trailing: true })
-
-export const cloneSelectedAnnotation = annotation => dispatch => {
- const newAnnotation = { ...annotation }
- delete newAnnotation.id
- if (annotation.settings.fullscreen) {
- const {
- fadeInDuration, fadeOutDuration, duration,
- start_ts, end_ts, fade_in_end_ts, fade_out_start_ts,
- } = annotationFadeTimings(annotation)
- newAnnotation.start_ts += duration - fadeOutDuration - fadeInDuration
- } else {
- newAnnotation.start_ts += 1
- }
- actions.annotation.create(newAnnotation)
- .then(res => {
- console.log('cloned annotation', res.res)
- setSelectedParagraph(res.res)
- })
-}
-
-export const setSelectedParagraph = paragraph_id => dispatch => {
- dispatch({ type: types.align.set_display_setting, key: 'selected_paragraph_id', value: paragraph_id })
-}
-export const clearSelectedParagraph = () => dispatch => {
- dispatch({ type: types.align.set_display_setting, key: 'selected_paragraph_id', value: -1 })
-}
-
-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)
- }
- // console.log(croppedText)
- dispatch({
- type: types.align.set_temporary_annotation,
- data: {
- id: 'new',
- start_ts,
- end_ts: 0.0,
- text: croppedText,
- type: 'sentence',
- settings: {},
- }
- })
-}
-export const showEditAnnotationForm = (annotation) => dispatch => {
- dispatch({
- type: types.align.set_temporary_annotation,
- 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,
- data: {}
- })
-}
-
-
-export const spliceTime = start_ts => dispatch => {
- let duration = timestampToSeconds(prompt("How many seconds to add or remove? Enter a positive / negative number"))
- if (!duration) {
- return
- }
- console.log(start_ts, duration)
- const data = {
- start_ts, duration,
- }
- post(dispatch, types.api, 'splice', '/api/v1/annotation/splice', data)
- .then(res => {
- console.log(res)
- alert(res.count + ' records updated!')
- actions.annotation.index()
- })
-} \ No newline at end of file