conventionschedule-android/webapp/main.js

102 lines
2.0 KiB
JavaScript

const DEFAULT_LANG = 'pt';
var data = {};
var prepared_data = {};
function prepare_convention_series(data){
prepared_data[data.statute.uuid]={'kind': 'statute', ...data.statute};
prepare_string(data.name);
for(var edition of data.editions) prepare_convention_edition(edition);
}
function prepare_string(data){
prepared_data[data.uuid]={'kind': 'string', ...data};
}
function prepare_convention_edition(data){
prepared_data[data.uuid]={'kind': 'convention_edition', ...data};
prepare_string(data.name);
prepare_string(data.theme);
for(var tag of data.tags) prepare_tag(tag);
for(var place of data.places) prepare_place(place);
for(var event of data.events) prepare_event(event);
}
function prepare_event(data){
}
function prepare_place(data){
}
function prepare_tag(data){
console.log(data);
}
function re_render_everything(){
document.body.innerHTML = '';
return
}
function render_page(){
return
}
var get_language = () => document.location.hash.split('#')[1] || "";
var get_pageuuid = () => document.location.hash.split('#')[2] || "";
function change_page(page){
window.history.replaceState(
{},
"",
(
"#"+
get_language()+
"#"+
page
)
);
}
function change_language(lang){
window.history.replaceState(
{},
"",
(
"#"+
lang+
"#"+
get_pageuuid()
)
);
}
function init(){
prepare_convention_series(data);
change_page(data.featured || data.editions[0]);
re_render_everything();
}
window.onpopstate = (event) => {
re_render_everything();
}
(() => {
if(
((document.location.hash.split('#')[2] || "") === "")
||
((document.location.hash.split('#')[1] || "") === "")
){
change_language(DEFAULT_LANG);
}
})();
jQuery.getJSON(
'./data.json',
(resp) => {
document.body.innerHTML = '';
data = resp;
init();
}
);