diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-03-10 15:40:32 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-03-10 15:40:32 +0100 |
| commit | 136eeeda21cefe3544b3d7ffd4210f9788774301 (patch) | |
| tree | 49701142bf5e7c081f783fd3cdc6601d4e0c65b2 /animism-align/frontend/app/views/editor/align | |
| parent | c84a675c07fd1997588794a26bf41c04f23c121e (diff) | |
sorting mdia. attach annotations and paragraphs to episods
Diffstat (limited to 'animism-align/frontend/app/views/editor/align')
| -rw-r--r-- | animism-align/frontend/app/views/editor/align/align.actions.js | 28 | ||||
| -rw-r--r-- | animism-align/frontend/app/views/editor/align/components/annotations/annotation.index.js | 2 |
2 files changed, 21 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 => { diff --git a/animism-align/frontend/app/views/editor/align/components/annotations/annotation.index.js b/animism-align/frontend/app/views/editor/align/components/annotations/annotation.index.js index 7c76fca..e2c7a51 100644 --- a/animism-align/frontend/app/views/editor/align/components/annotations/annotation.index.js +++ b/animism-align/frontend/app/views/editor/align/components/annotations/annotation.index.js @@ -58,6 +58,7 @@ class AnnotationIndex extends PureComponent { } else { actions.paragraph.create({ type: 'paragraph', + episode_id: this.props.episode_id, start_ts: annotation.start_ts, }).then(data => { actions.align.setSelectedParagraph(data.res.id) @@ -119,6 +120,7 @@ const mapStateToProps = state => ({ selectedAnnotation: state.align.selectedAnnotation, index: state.annotation.index, media: state.media.index.lookup, + episode_id: state.site.episode.id, }) export default connect(mapStateToProps)(AnnotationIndex) |
