diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-03-08 22:11:55 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-03-08 22:11:55 +0100 |
| commit | d2cb17038b8537a609be06be2ed7013dbe27117e (patch) | |
| tree | 028ceac9edddafc03ce80c49d5a05981bec3fcbe /animism-align/frontend/app/views/align/align.actions.js | |
| parent | b5ceb782f40fc1e402d1e58bc1ced2e4038fd787 (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.js | 136 |
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 |
