summaryrefslogtreecommitdiff
path: root/animism-align/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/frontend')
-rw-r--r--animism-align/frontend/app/store.js24
-rw-r--r--animism-align/frontend/app/views/align/align.reducer.js2
-rw-r--r--animism-align/frontend/app/views/audio/audio.actions.js6
-rw-r--r--animism-align/frontend/app/views/paragraph/components/paragraph.list.js2
-rw-r--r--animism-align/frontend/app/views/paragraph/paragraph.reducer.js2
-rw-r--r--animism-align/frontend/app/views/viewer/nav/nav.parent.js2
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.container.js1
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.transcript.js1
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.actions.js3
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.container.js1
-rw-r--r--animism-align/frontend/site/actions.js11
-rw-r--r--animism-align/frontend/site/app.js31
-rw-r--r--animism-align/frontend/site/index.js4
-rw-r--r--animism-align/frontend/site/site/site.reducer.js12
-rw-r--r--animism-align/frontend/site/store.js31
15 files changed, 90 insertions, 43 deletions
diff --git a/animism-align/frontend/app/store.js b/animism-align/frontend/app/store.js
index f7477df..d1843f7 100644
--- a/animism-align/frontend/app/store.js
+++ b/animism-align/frontend/app/store.js
@@ -5,31 +5,39 @@ import { createBrowserHistory } from 'history'
import thunk from 'redux-thunk'
// import { login } from 'app/utils'
+// cms
import uploadReducer from 'app/views/upload/upload.reducer'
-import alignReducer from 'app/views/align/align.reducer'
-import audioReducer from 'app/views/audio/audio.reducer'
-import paragraphReducer from 'app/views/paragraph/paragraph.reducer'
import annotationReducer from 'app/views/annotation/annotation.reducer'
import siteReducer from 'app/views/site/site.reducer'
import mediaReducer from 'app/views/media/media.reducer'
-import viewerReducer from 'app/views/viewer/viewer.reducer'
import episodeReducer from 'app/views/episode/episode.reducer'
import venueReducer from 'app/views/venue/venue.reducer'
+// editor
+import alignReducer from 'app/views/align/align.reducer'
+import paragraphReducer from 'app/views/paragraph/paragraph.reducer'
+
+// viewer
+import audioReducer from 'app/views/audio/audio.reducer'
+import viewerReducer from 'app/views/viewer/viewer.reducer'
+
const createRootReducer = history => (
combineReducers({
auth: (state = {}) => state,
router: connectRouter(history),
site: siteReducer,
+
upload: uploadReducer,
- align: alignReducer,
- audio: audioReducer,
- paragraph: paragraphReducer,
annotation: annotationReducer,
media: mediaReducer,
- viewer: viewerReducer,
episode: episodeReducer,
venue: venueReducer,
+
+ align: alignReducer,
+ paragraph: paragraphReducer,
+
+ audio: audioReducer,
+ viewer: viewerReducer,
})
)
diff --git a/animism-align/frontend/app/views/align/align.reducer.js b/animism-align/frontend/app/views/align/align.reducer.js
index dec27a4..8a660c0 100644
--- a/animism-align/frontend/app/views/align/align.reducer.js
+++ b/animism-align/frontend/app/views/align/align.reducer.js
@@ -1,5 +1,5 @@
import * as types from 'app/types'
-import { session, getDefault, getDefaultInt } from 'app/session'
+// import { session, getDefault, getDefaultInt } from 'app/session'
const initialState = {
timeline: {
diff --git a/animism-align/frontend/app/views/audio/audio.actions.js b/animism-align/frontend/app/views/audio/audio.actions.js
index b5d4e1b..ef5a4f6 100644
--- a/animism-align/frontend/app/views/audio/audio.actions.js
+++ b/animism-align/frontend/app/views/audio/audio.actions.js
@@ -34,12 +34,14 @@ export const pause = () => dispatch => {
audioPlayer.pause()
}
export const seek = play_ts => dispatch => {
+ console.log('seek to', play_ts)
audioPlayer.currentTime = play_ts
- dispatch({ type: types.audio.seek, seek_ts: audioPlayer.currentTime })
+ console.log(play_ts, audioPlayer.currentTime)
+ dispatch({ type: types.audio.seek, seek_ts: audioPlayer.currentTime || play_ts })
}
export const jump = delta_ts => dispatch => {
audioPlayer.currentTime += delta_ts
- dispatch({ type: types.audio.seek, seek_ts: audioPlayer.currentTime })
+ dispatch({ type: types.audio.seek, seek_ts: audioPlayer.currentTime || play_ts })
}
export const toggle = () => dispatch => {
if (store.getState().audio.playing) {
diff --git a/animism-align/frontend/app/views/paragraph/components/paragraph.list.js b/animism-align/frontend/app/views/paragraph/components/paragraph.list.js
index a8f32b3..1507b51 100644
--- a/animism-align/frontend/app/views/paragraph/components/paragraph.list.js
+++ b/animism-align/frontend/app/views/paragraph/components/paragraph.list.js
@@ -14,6 +14,7 @@ class ParagraphList extends Component {
componentDidUpdate(prevProps) {
if (this.props.audio.play_ts === prevProps.audio.play_ts) return
+ if (!this.props.paragraphs) return
this.setCurrentParagraph()
}
@@ -64,6 +65,7 @@ class ParagraphList extends Component {
onAnnotationClick, onParagraphDoubleClick,
} = this.props
const { currentParagraph, currentAnnotation } = this.state
+ if (!paragraphs) return null
return paragraphs.map((paragraph, i) => {
if (selectedParagraph && selectedParagraph.id === paragraph.id) {
paragraph = selectedParagraph
diff --git a/animism-align/frontend/app/views/paragraph/paragraph.reducer.js b/animism-align/frontend/app/views/paragraph/paragraph.reducer.js
index 041014f..3b33128 100644
--- a/animism-align/frontend/app/views/paragraph/paragraph.reducer.js
+++ b/animism-align/frontend/app/views/paragraph/paragraph.reducer.js
@@ -1,5 +1,5 @@
import * as types from 'app/types'
-import { session, getDefault, getDefaultInt } from 'app/session'
+// import { session, getDefault, getDefaultInt } from 'app/session'
import { crudState, crudReducer } from 'app/api/crud.reducer'
diff --git a/animism-align/frontend/app/views/viewer/nav/nav.parent.js b/animism-align/frontend/app/views/viewer/nav/nav.parent.js
index d18aac0..cb83f94 100644
--- a/animism-align/frontend/app/views/viewer/nav/nav.parent.js
+++ b/animism-align/frontend/app/views/viewer/nav/nav.parent.js
@@ -61,7 +61,7 @@ class NavParent extends Component {
e && e.preventDefault()
e && e.stopPropagation()
const { viewer } = this.props
- // console.log('>> SEEK')
+ console.log('>> SEEK', viewer.nextSection)
if (viewer.nextSection) {
actions.viewer.seekToSection(viewer.nextSection)
} else {
diff --git a/animism-align/frontend/app/views/viewer/player/player.container.js b/animism-align/frontend/app/views/viewer/player/player.container.js
index 26697f9..0bf64d1 100644
--- a/animism-align/frontend/app/views/viewer/player/player.container.js
+++ b/animism-align/frontend/app/views/viewer/player/player.container.js
@@ -83,6 +83,7 @@ class PlayerContainer extends Component {
// console.log('inCurrentSection?', inCurrentSection)
// console.log('didSeek?', didSeek)
// if the current TS isn't in the same section as the current one...
+ console.log(currentSection.start_ts, play_ts, currentSection.end_ts)
if (inCurrentSection) {
return
}
diff --git a/animism-align/frontend/app/views/viewer/player/player.transcript.js b/animism-align/frontend/app/views/viewer/player/player.transcript.js
index 15d376a..9796008 100644
--- a/animism-align/frontend/app/views/viewer/player/player.transcript.js
+++ b/animism-align/frontend/app/views/viewer/player/player.transcript.js
@@ -60,6 +60,7 @@ class PlayerTranscript extends Component {
const className = "player-transcript " + color + " " + (
inlineParagraphCount > 2 ? 'scrollable' : 'not-scrollable'
)
+ console.log(this.props.section)
return (
<div
className={className}
diff --git a/animism-align/frontend/app/views/viewer/viewer.actions.js b/animism-align/frontend/app/views/viewer/viewer.actions.js
index 82d3cf1..1372013 100644
--- a/animism-align/frontend/app/views/viewer/viewer.actions.js
+++ b/animism-align/frontend/app/views/viewer/viewer.actions.js
@@ -47,6 +47,8 @@ export const loadSections = () => dispatch => {
const { order: annotationOrder, lookup: annotationLookup } = state.annotation.index
const { lookup: mediaLookup } = state.media.index
+ console.log(state)
+
// loop over the annotations in time order.
annotationOrder.forEach((annotation_id, i) => {
// fetch the current annotation
@@ -206,7 +208,6 @@ export const loadSections = () => dispatch => {
})
// console.log(sections)
// console.log(footnoteList)
- // console.log(fullscreenTimeline)
dispatch({ type: types.viewer.load_sections, sections, footnoteList })
}
diff --git a/animism-align/frontend/app/views/viewer/viewer.container.js b/animism-align/frontend/app/views/viewer/viewer.container.js
index 90787db..c81b79e 100644
--- a/animism-align/frontend/app/views/viewer/viewer.container.js
+++ b/animism-align/frontend/app/views/viewer/viewer.container.js
@@ -35,6 +35,7 @@ import VitrineModal from './modals/modals.vitrine'
class ViewerContainer extends Component {
render() {
const { loaded, viewer, playing } = this.props
+ // console.log(loaded, playing, viewer)
if (!loaded) {
return <div className='viewer loading'><Loader /></div>
}
diff --git a/animism-align/frontend/site/actions.js b/animism-align/frontend/site/actions.js
index f11ce13..2642469 100644
--- a/animism-align/frontend/site/actions.js
+++ b/animism-align/frontend/site/actions.js
@@ -1,8 +1,10 @@
import { bindActionCreators } from 'redux'
// import { actions as crudActions } from './api'
-import * as audioActions from 'app/views/audio.actions'
-import * as viewerActions from 'app/views/viewer.actions'
+import * as siteActions from 'site/site/site.actions'
+import * as audioActions from 'app/views/audio/audio.actions'
+import * as viewerActions from 'app/views/viewer/viewer.actions'
+import * as transcriptActions from 'app/views/paragraph/transcript.actions'
import { store } from './store'
@@ -11,12 +13,13 @@ export default
// .map(a => [a, crudActions[a]])
// .concat(
[
- // ['site', siteActions],
+ ['site', siteActions],
['audio', audioActions],
['viewer', viewerActions],
+ ['transcript', transcriptActions]
] //)
.map(p => [p[0], bindActionCreators(p[1], store.dispatch)])
.concat([
// ['socket', socketActions],
])
- .reduce((a,b) => (a[b[0]] = b[1])&&a,{}) \ No newline at end of file
+ .reduce((a,b) => (a[b[0]] = b[1])&&a,{})
diff --git a/animism-align/frontend/site/app.js b/animism-align/frontend/site/app.js
index 4f8a6cf..8509954 100644
--- a/animism-align/frontend/site/app.js
+++ b/animism-align/frontend/site/app.js
@@ -3,31 +3,26 @@ import { ConnectedRouter } from 'connected-react-router'
import { Route } from 'react-router'
// import ViewerContainer from './viewer/viewer.container'
+import Viewer from 'app/views/viewer/viewer.container'
import actions from './actions'
export default class App extends Component {
componentDidMount() {
- const path_partz = window.location.pathname.split('/')
- const graph_name = path_partz[1]
- let path_name = null
- if (path_partz.length > 2) {
- path_name = path_partz[2]
- }
- // console.log('loading', graph_name, path_name)
- actions.site.loadSite(graph_name, path_name)
+ actions.site.loadProject()
}
render() {
- return (
- <ConnectedRouter history={this.props.history}>
- <div className='app'>
- <Route exact key='root' path='/' render={() => {
- // setTimeout(() => this.props.history.push('/'), 10)
- return null
- }} />
- </div>
- </ConnectedRouter>
- )
+ return <Viewer />
+ // return (
+ // <ConnectedRouter history={this.props.history}>
+ // <div className='app'>
+ // <Route exact key='root' path='/' render={() => {
+ // // setTimeout(() => this.props.history.push('/'), 10)
+ // return null
+ // }} />
+ // </div>
+ // </ConnectedRouter>
+ // )
}
}
/*
diff --git a/animism-align/frontend/site/index.js b/animism-align/frontend/site/index.js
index 448d38d..7d47bd0 100644
--- a/animism-align/frontend/site/index.js
+++ b/animism-align/frontend/site/index.js
@@ -7,7 +7,7 @@ import '../app/common/form.css'
import { store } from './store'
-import Viewer from 'app/views/viewer/viewer.container'
+import App from './app'
const container = document.createElement('div')
container.classList.add('container')
@@ -15,6 +15,6 @@ document.body.appendChild(container)
ReactDOM.render(
<Provider store={store}>
- <Viewer />
+ <App />
</Provider>, container
)
diff --git a/animism-align/frontend/site/site/site.reducer.js b/animism-align/frontend/site/site/site.reducer.js
new file mode 100644
index 0000000..ea10886
--- /dev/null
+++ b/animism-align/frontend/site/site/site.reducer.js
@@ -0,0 +1,12 @@
+// import * as types from 'app/types'
+
+const initialState = {
+}
+
+export default function siteReducer(state = initialState, action) {
+ console.log(action.type, action)
+ switch (action.type) {
+ default:
+ return state
+ }
+}
diff --git a/animism-align/frontend/site/store.js b/animism-align/frontend/site/store.js
index 0b4aff7..2d9ffbc 100644
--- a/animism-align/frontend/site/store.js
+++ b/animism-align/frontend/site/store.js
@@ -1,25 +1,46 @@
-import { crudReducer } from 'app/api/crud.reducer'
+import { crudState, crudReducer } from 'app/api/crud.reducer'
import { applyMiddleware, compose, combineReducers, createStore } from 'redux'
import { connectRouter, routerMiddleware } from 'connected-react-router'
import { createBrowserHistory } from 'history'
import thunk from 'redux-thunk'
-// import siteReducer from './site/site.reducer'
+import audioReducer from 'app/views/audio/audio.reducer'
+import alignReducer from 'app/views/align/align.reducer'
+import viewerReducer from 'app/views/viewer/viewer.reducer'
+import paragraphReducer from 'app/views/paragraph/paragraph.reducer'
+import siteReducer from 'site/site/site.reducer'
+
+// document.querySelector("#plain_content").remove()
+const siteData = JSON.parse(document.querySelector("#site_data").innerText)
const createRootReducer = history => (
combineReducers([
"media",
- "upload",
"annotation",
"paragraph",
"episode",
"venue",
].reduce((a, type) => {
- a[type] = crudReducer(type)
+ a[type] = (() => {
+ const initialState = {
+ ...crudState(),
+ index: siteData[type],
+ }
+ if (type === 'paragraph') {
+ return (state=initialState, action) => paragraphReducer(state, action)
+ } else {
+ const typeReducer = crudReducer(type)
+ return (state=initialState, action) => typeReducer(state, action)
+ }
+ })()
return a
}, {
- auth: (state = {}) => state,
+ // auth: (state = {}) => state,
router: connectRouter(history),
+ site: siteReducer,
+ audio: audioReducer,
+ align: alignReducer,
+ viewer: viewerReducer,
}))
)