summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/utils
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/utils
parentfaee66ed90bca15fa803deb733cbe9ccce9c19d8 (diff)
images can include images from galleries. command to duplicate annotations
Diffstat (limited to 'animism-align/frontend/app/utils')
-rw-r--r--animism-align/frontend/app/utils/annotation.utils.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/animism-align/frontend/app/utils/annotation.utils.js b/animism-align/frontend/app/utils/annotation.utils.js
index d76f473..b1f93d1 100644
--- a/animism-align/frontend/app/utils/annotation.utils.js
+++ b/animism-align/frontend/app/utils/annotation.utils.js
@@ -56,3 +56,40 @@ export const sectionProgress = (section, play_ts) => {
export const sectionProgressPercentage = (section, play_ts) => {
return (Math.round(sectionProgress(section, play_ts) * 2000) / 20) + '%'
}
+
+export const makeMediaItems = (media, types) => {
+ const { lookup, order } = media
+ if (!(types instanceof Set)) {
+ types = new Set(types)
+ }
+ const listItems = order.filter(id => types.has(lookup[id].type)).map(id => {
+ const { title, author, type } = lookup[id]
+ return {
+ name: id,
+ label: '[' + type + '] ' + author + ' - ' + title
+ }
+ }).sort((a,b) => a.label.localeCompare(b.label))
+ return listItems
+}
+
+export const makeGalleryItems = (annotation, media) => {
+ if (!annotation.settings.media_id) return {}
+ if (!media.lookup[annotation.settings.media_id]) return {}
+ let thumbnail, frame_id
+ const item = media.lookup[annotation.settings.media_id]
+ if (item.type !== 'gallery') return {}
+ const gallery_items = item.settings.image_order.map((id, index) => {
+ const caption = item.settings.caption_lookup && item.settings.caption_lookup[id]
+ console.log(caption)
+ return {
+ name: index,
+ label: (index + 1) + ") " + (caption ? (caption.title || "") : "")
+ }
+ })
+ if (annotation.settings.frame_index) {
+ frame_id = item.settings.image_order[annotation.settings.frame_index]
+ thumbnail = item.settings.thumbnail_lookup[frame_id]
+ }
+ return { item, gallery_items, frame_id, thumbnail }
+}
+