event-timeline/app/static/timeline/index.js

74 lines
2.1 KiB
JavaScript
Raw Normal View History

2021-11-12 18:21:51 +00:00
async function api(action, data) {
var url = prefix + '/api/'
var key = JSON.stringify([action, data])
if (!cache[key]) {
var response = await fetch(url, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
action: action,
data: data
})
})
cache[key] = await response.json()
}
return cache[key]
}
async function getCase(value) {
var conditions = [
{'key': 'case', 'operator': '==', 'value': value}
]
return await api('findDocuments', {
"query":{
"conditions":conditions,
"operator":"&"
},
"range":[0, 10000],
"keys": ["title", "date", "case", "id"]
}).then(response => {
var documents = response.data.items
var events = documents.map(data => {
var date = data.date.split('-')
var event = {
"start_date": {
"year": date[0],
"month": date[1],
"day": date[2],
"hour": "",
"minute": "",
"second": "",
"millisecond": "",
"format": ""
},
"end_date": {
"year": date[0],
"month": date[1],
"day": date[2],
"hour": "",
"minute": "",
"second": "",
"millisecond": "",
"format": ""
},
"media": {
"caption": data['title'],
"credit": "",
"url": mediaPrefix + "/documents/" + data.id + "/512p.jpg"
},
"text": {
"headline": data.title,
"text": data.description || data.title
},
"unique_id": data.id
};
return event
})
return {'events': events}
})
}
async function loadData(value) {
return await getCase(value)
}