summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/views/align/align.actions.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-11-02 16:38:13 +0100
committerJules Laplace <julescarbon@gmail.com>2020-11-02 16:38:13 +0100
commit4e2121e9160b627415a31f628fa3f00711138375 (patch)
treea0d328b4e0bd3fd92c9326a52c2e22bab130bf2a /animism-align/frontend/app/views/align/align.actions.js
parentfaee66ed90bca15fa803deb733cbe9ccce9c19d8 (diff)
images can include images from galleries. command to duplicate annotations
Diffstat (limited to 'animism-align/frontend/app/views/align/align.actions.js')
-rw-r--r--animism-align/frontend/app/views/align/align.actions.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/animism-align/frontend/app/views/align/align.actions.js b/animism-align/frontend/app/views/align/align.actions.js
index 0766460..1583e4e 100644
--- a/animism-align/frontend/app/views/align/align.actions.js
+++ b/animism-align/frontend/app/views/align/align.actions.js
@@ -8,6 +8,7 @@ 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 })
@@ -49,6 +50,24 @@ export const debouncedUpdateAnnotation = debounce(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 })