1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
var isIphone = !! (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))
var isIpad = !! (navigator.userAgent.match(/iPad/i))
var isAndroid = !! (navigator.userAgent.match(/Android/i))
var isMobile = isIphone || isIpad || isAndroid
var isDesktop = ! isMobile
document.body.classList.add(isDesktop ? 'desktop' : 'mobile')
$(function(){
$.getJSON('/db.json', function(data){
site = data
var entries = site.entries = {}
site.entry.forEach(function(entry){
entries[entry.id] = entry
entry.tags = entry.tags.split('#').map(function(tag){
return tag.trim()
})
})
ready()
})
})
function ready() {
bind()
build()
}
function bind(){
$('.cell').click( function(){
var id = $(this).data().id
var entry = site.entries[id]
show_entry(entry)
})
$('.close').click( function(){
close_modals()
})
$('.page, #entry').click( function(){
close_modals()
})
$('.inner').click( function(e){
e.stopPropagation()
})
$('.tag').click( function(){
var tag = $(this).html()
filter_by_tag(tag)
})
var gallery = new Flickity( "#testimonials", {
cellSelector: '.testimonial',
wrapAround: true,
prevNextButtons: true,
pageDots: false,
setGallerySize: false,
draggable: true,
autoPlay: 5000,
})
}
function build(){
$('.cell').each( function(){
var id = $(this).data().id
var entry = site.entries[id]
if (! entry) return
if (entry.media && entry.media.length) {
var media = entry.media[0]
switch (media.type) {
case 'youtube':
bg = media.thumb
break
case 'image':
bg = media.uri
break
}
$(this).css('background-image', 'url(' + bg + ')')
}
})
}
function show_entry(entry){
console.log('showing', entry)
$('#entry h2').html(entry.title)
$('#entry .content').html(newlineToBr(entry.body))
$('#entry .media').empty()
if (entry.gallery) {
}
else {
}
$('body').addClass('entry')
}
function hide_entry(){
setTimeout(clear_entry, 500)
}
function clear_entry(){
}
function close_modals(){
$('body').removeClass('entry').removeClass('about')
}
function newlineToBr(s){ return s.replace(/\n/g,'<br>') }
|