From ef78bc6a084f92b4794e987b5832240d85b6479e Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 22 Jul 2020 14:05:15 +0200 Subject: refactor app using babel module-resolver --- .../frontend/app/views/align/align.actions.js | 93 +++++++ .../frontend/app/views/align/align.container.js | 29 +++ animism-align/frontend/app/views/align/align.css | 215 ++++++++++++++++ .../frontend/app/views/align/align.reducer.js | 85 +++++++ .../frontend/app/views/align/align.util.js | 65 +++++ .../components/annotations/annotation.form.js | 182 ++++++++++++++ .../components/annotations/annotation.index.js | 126 ++++++++++ .../annotationForms/annotationForm.image.js | 27 +++ .../annotationForms/annotationForm.video.js | 27 +++ .../annotations/annotationForms/index.js | 12 + .../annotationTypes/annotationTypes.image.js | 33 +++ .../annotationTypes/annotationTypes.text.js | 49 ++++ .../annotationTypes/annotationTypes.util.js | 28 +++ .../annotationTypes/annotationTypes.video.js | 33 +++ .../annotations/annotationTypes/index.js | 22 ++ .../components/player/playButton.component.js | 31 +++ .../align/components/timeline/cursor.component.js | 26 ++ .../components/timeline/playCursor.component.js | 36 +++ .../align/components/timeline/ticks.component.js | 88 +++++++ .../components/timeline/waveform.component.js | 101 ++++++++ .../align/containers/annotations.container.js | 40 +++ .../app/views/align/containers/script.container.js | 33 +++ .../views/align/containers/timeline.container.js | 171 +++++++++++++ .../app/views/annotation/annotation.reducer.js | 20 ++ .../frontend/app/views/audio/audio.actions.js | 40 +++ .../frontend/app/views/audio/audio.reducer.js | 30 +++ animism-align/frontend/app/views/index.js | 4 + .../app/views/media/components/media.form.js | 270 +++++++++++++++++++++ .../app/views/media/components/media.formImage.js | 172 +++++++++++++ .../media/components/media.formImageSelection.js | 213 ++++++++++++++++ .../app/views/media/components/media.formVideo.js | 111 +++++++++ .../views/media/components/media.indexOptions.js | 65 +++++ .../app/views/media/components/media.menu.js | 58 +++++ .../app/views/media/containers/media.edit.js | 57 +++++ .../app/views/media/containers/media.index.js | 115 +++++++++ .../app/views/media/containers/media.new.js | 81 +++++++ .../frontend/app/views/media/media.actions.js | 9 + .../frontend/app/views/media/media.container.js | 38 +++ animism-align/frontend/app/views/media/media.css | 70 ++++++ .../frontend/app/views/media/media.reducer.js | 22 ++ .../frontend/app/views/nav/header.component.js | 42 ++++ animism-align/frontend/app/views/nav/nav.css | 73 ++++++ .../views/paragraph/components/paragraph.form.js | 87 +++++++ .../views/paragraph/components/paragraph.list.js | 165 +++++++++++++ .../paragraph/components/paragraphTypes/index.js | 22 ++ .../paragraphTypes/paragraphTypes.image.js | 17 ++ .../paragraphTypes/paragraphTypes.text.js | 35 +++ .../paragraphTypes/paragraphTypes.video.js | 19 ++ .../containers/paragraphEditor.container.js | 85 +++++++ .../app/views/paragraph/paragraph.container.js | 69 ++++++ .../frontend/app/views/paragraph/paragraph.css | 93 +++++++ .../app/views/paragraph/paragraph.reducer.js | 20 ++ .../frontend/app/views/site/component.template.js | 28 +++ .../frontend/app/views/site/site.actions.js | 14 ++ .../frontend/app/views/site/site.reducer.js | 24 ++ .../app/views/upload/components/upload.form.js | 16 ++ .../app/views/upload/components/upload.index.js | 98 ++++++++ .../views/upload/components/upload.indexOptions.js | 61 +++++ .../app/views/upload/components/upload.menu.js | 18 ++ .../app/views/upload/components/upload.show.js | 69 ++++++ .../frontend/app/views/upload/upload.actions.js | 18 ++ .../frontend/app/views/upload/upload.container.js | 36 +++ animism-align/frontend/app/views/upload/upload.css | 182 ++++++++++++++ .../frontend/app/views/upload/upload.reducer.js | 22 ++ 64 files changed, 4240 insertions(+) create mode 100644 animism-align/frontend/app/views/align/align.actions.js create mode 100644 animism-align/frontend/app/views/align/align.container.js create mode 100644 animism-align/frontend/app/views/align/align.css create mode 100644 animism-align/frontend/app/views/align/align.reducer.js create mode 100644 animism-align/frontend/app/views/align/align.util.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotation.form.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotation.index.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationForms/annotationForm.image.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationForms/annotationForm.video.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationForms/index.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationTypes/annotationTypes.image.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationTypes/annotationTypes.text.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationTypes/annotationTypes.util.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationTypes/annotationTypes.video.js create mode 100644 animism-align/frontend/app/views/align/components/annotations/annotationTypes/index.js create mode 100644 animism-align/frontend/app/views/align/components/player/playButton.component.js create mode 100644 animism-align/frontend/app/views/align/components/timeline/cursor.component.js create mode 100644 animism-align/frontend/app/views/align/components/timeline/playCursor.component.js create mode 100644 animism-align/frontend/app/views/align/components/timeline/ticks.component.js create mode 100644 animism-align/frontend/app/views/align/components/timeline/waveform.component.js create mode 100644 animism-align/frontend/app/views/align/containers/annotations.container.js create mode 100644 animism-align/frontend/app/views/align/containers/script.container.js create mode 100644 animism-align/frontend/app/views/align/containers/timeline.container.js create mode 100644 animism-align/frontend/app/views/annotation/annotation.reducer.js create mode 100644 animism-align/frontend/app/views/audio/audio.actions.js create mode 100644 animism-align/frontend/app/views/audio/audio.reducer.js create mode 100644 animism-align/frontend/app/views/index.js create mode 100644 animism-align/frontend/app/views/media/components/media.form.js create mode 100644 animism-align/frontend/app/views/media/components/media.formImage.js create mode 100644 animism-align/frontend/app/views/media/components/media.formImageSelection.js create mode 100644 animism-align/frontend/app/views/media/components/media.formVideo.js create mode 100644 animism-align/frontend/app/views/media/components/media.indexOptions.js create mode 100644 animism-align/frontend/app/views/media/components/media.menu.js create mode 100644 animism-align/frontend/app/views/media/containers/media.edit.js create mode 100644 animism-align/frontend/app/views/media/containers/media.index.js create mode 100644 animism-align/frontend/app/views/media/containers/media.new.js create mode 100644 animism-align/frontend/app/views/media/media.actions.js create mode 100644 animism-align/frontend/app/views/media/media.container.js create mode 100644 animism-align/frontend/app/views/media/media.css create mode 100644 animism-align/frontend/app/views/media/media.reducer.js create mode 100644 animism-align/frontend/app/views/nav/header.component.js create mode 100644 animism-align/frontend/app/views/nav/nav.css create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraph.form.js create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraph.list.js create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraphTypes/index.js create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraphTypes/paragraphTypes.image.js create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraphTypes/paragraphTypes.text.js create mode 100644 animism-align/frontend/app/views/paragraph/components/paragraphTypes/paragraphTypes.video.js create mode 100644 animism-align/frontend/app/views/paragraph/containers/paragraphEditor.container.js create mode 100644 animism-align/frontend/app/views/paragraph/paragraph.container.js create mode 100644 animism-align/frontend/app/views/paragraph/paragraph.css create mode 100644 animism-align/frontend/app/views/paragraph/paragraph.reducer.js create mode 100644 animism-align/frontend/app/views/site/component.template.js create mode 100644 animism-align/frontend/app/views/site/site.actions.js create mode 100644 animism-align/frontend/app/views/site/site.reducer.js create mode 100644 animism-align/frontend/app/views/upload/components/upload.form.js create mode 100644 animism-align/frontend/app/views/upload/components/upload.index.js create mode 100644 animism-align/frontend/app/views/upload/components/upload.indexOptions.js create mode 100644 animism-align/frontend/app/views/upload/components/upload.menu.js create mode 100644 animism-align/frontend/app/views/upload/components/upload.show.js create mode 100644 animism-align/frontend/app/views/upload/upload.actions.js create mode 100644 animism-align/frontend/app/views/upload/upload.container.js create mode 100644 animism-align/frontend/app/views/upload/upload.css create mode 100644 animism-align/frontend/app/views/upload/upload.reducer.js (limited to 'animism-align/frontend/app/views') diff --git a/animism-align/frontend/app/views/align/align.actions.js b/animism-align/frontend/app/views/align/align.actions.js new file mode 100644 index 0000000..5176d81 --- /dev/null +++ b/animism-align/frontend/app/views/align/align.actions.js @@ -0,0 +1,93 @@ +import * as types from 'app/types' +import { store, history, dispatch } from 'app/store' +import { api, post, pad, preloadImage } from 'app/utils' +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 { getFirstPunctuationMarkIndex, cutFirstSentence } from 'app/views/align/align.util' + +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 setSelectedAnnotation = annotation => dispatch => { + dispatch({ type: types.align.set_selected_annotation, data: annotation }) + debouncedUpdateAnnotation.flush() +} +export const clearSelectedAnnotation = () => dispatch => { + dispatch({ type: types.align.clear_selected_annotation }) + debouncedUpdateAnnotation.flush() +} +export const updateSelectedAnnotation = annotation => dispatch => { + dispatch({ type: types.align.set_selected_annotation, data: { ...annotation } }) + debouncedUpdateAnnotation(annotation) +} +export const debouncedUpdateAnnotation = debounce(annotation => { + console.log('updating annotation', annotation) + actions.annotation.update(annotation) +}, 2000, { leading: false, trailing: true }) + + +export const setSelectedParagraph = paragraph_id => dispatch => { + dispatch({ type: types.align.set_display_setting, key: 'selected_paragraph_id', value: paragraph_id }) +} +export const clearSelectedParagraph = paragraph_id => 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: {} + }) +} diff --git a/animism-align/frontend/app/views/align/align.container.js b/animism-align/frontend/app/views/align/align.container.js new file mode 100644 index 0000000..a659fdd --- /dev/null +++ b/animism-align/frontend/app/views/align/align.container.js @@ -0,0 +1,29 @@ +import React, { Component } from 'react' +import { Route } from 'react-router-dom' +import { bindActionCreators } from 'redux' +import { connect } from 'react-redux' + +import './align.css' + +import Timeline from 'app/views/align/containers/timeline.container.js' +import Script from 'app/views/align/containers/script.container.js' +import actions from 'app/actions' + +class Container extends Component { + componentDidMount() { + document.body.scrollTo(0, 0) + document.body.parentNode.scrollTo(0, 0) + } + render() { + return ( +
+
+ +
+