diff --git a/app/static/js/ascroll.js b/app/static/js/ascroll.js
index b4d2e83..85dc4a1 100755
--- a/app/static/js/ascroll.js
+++ b/app/static/js/ascroll.js
@@ -195,10 +195,9 @@ function showOverlay(event) {
function renderAnnotation(config, video, ascroll, clip) {
var div = document.createElement('div')
div.classList.add('annotation')
-
- var annotation = clip[0]
- var color1 = `hsl(${annotation.color1.hue}, 60%, 15%)`
- var color2 = `hsl(${annotation.color2.hue}, 60%, 15%)`
+ var annotation = clip.annotations[0]
+ var color1 = `hsl(${clip.color1.hue}, 60%, 15%)`
+ var color2 = `hsl(${clip.color2.hue}, 60%, 15%)`
if (!config.first) {
config.first = annotation
config.info.style.background = color1
@@ -211,7 +210,7 @@ function renderAnnotation(config, video, ascroll, clip) {
figcaption = `${txt}`
}
var values = []
- clip.forEach(a => {
+ clip.annotations.forEach(a => {
values.push(a.value.replace(/src="\//g, `src="${pandoraURL}/`).replace(/href="\//g, `href="${pandoraURL}/`))
})
values = values.join('
')
@@ -290,22 +289,29 @@ async function loadClips(annotations) {
colors[clip.id] = clip
})
var previous
+
annotations.forEach(annotation => {
var clipId = annotation.id.split('/')[0] + '/' + annotation.in.toFixed(3) + '-'+ annotation.out.toFixed(3)
- clips[clipId] = clips[clipId] || []
- clips[clipId].push(annotation)
- annotation.color1 = colors[clipId]
-
- if(previous) {
- previous.color2 = annotation.color1
+ clips[clipId] = clips[clipId] || {
+ id: clipId,
+ color1: colors[clipId],
+ annotations: []
+ }
+ clips[clipId].annotations.push(annotation)
+ annotation.color1 = colors[clipId]
+ if(previous && previous.id != clipId) {
+ previous.color2 = clips[clipId].color1
+ }
+ if (!previous || previous.id != clipId) {
+ previous = clips[clipId]
}
- previous = annotation
})
- if (annotations.length) {
- annotations[annotations.length - 1].color2 = annotations[0].color1
+ var clips = Object.values(clips)
+ if (clips.length) {
+ clips[clips.length - 1].color2 = clips[0].color1
}
//return annotations
- return Object.values(clips)
+ return clips
})
}