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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
var okcms = require('..');
var projectSchema = {
id: {type: 'string', id: true, hidden: true},
title: {type: 'string'},
menu: {type: 'string'},
description: {type: 'text'},
media: {type: 'media-list'},
thumbnail: {type: 'image'},
}
var app = okcms.createApp({
meta: {
project: 'TwoHustlers'
},
root: 'public',
debug: false,
production: true,
schemas: {
page: {
id: {type: 'string', hidden: true},
title: {type: 'string'},
body: {type: 'text'},
collabs: {type: 'text'},
contact: {type: 'text'},
image: {type: 'string'}
},
advertising: projectSchema,
content: projectSchema,
experiential: projectSchema,
shape: {
id: {type: 'string', id: true, hidden: true},
title: {type: 'string'},
images: {type: 'double-captioned-image-list'},
}
},
resources: [
{ type: 'page', static: {id: 'about'}},
{ type: 'page', static: {id: 'contact'}},
{ type: 'shape', static: {id: 'shape-images'}},
{ type: 'shape', static: {id: 'about-images'}},
{ type: 'advertising' },
{ type: 'content' },
{ type: 'experiential' },
],
services: {
s3: {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
bucket: process.env.S3_BUCKET,
dirname: "twohustlers",
maxbytes: 1024*1024*2,
}
},
views: {
'/': {
data: [
{type: 'page', query: 'contact'},
// {type: 'shape', query: 'about-images'},
{type: 'shape', query: 'shape-images'},
// {type: 'retail', query: '*'},
{type: 'advertising', query: '*'},
{type: 'experiential', query: '*'},
{type: 'content', query: '*'},
]
},
'/about': {
data: [
{type: 'page', query: 'about'},
{type: 'shape', query: 'about-images'},
],
template: 'about'
},
'/contact': {
data: {type: 'page', query: 'contact'}
},
'/all': {
data: [
// {type: 'retail', query: '*'},
{type: 'advertising', query: '*'},
{type: 'experiential', query: '*'},
{type: 'content', query: '*'},
{type: 'page', query: 'about'}
],
template: 'all'
},
// '/retail/:id': {
// data: {
// type: 'retail',
// as: 'project',
// query: {
// id: ':id'
// }
// },
// template: 'project'
// },
'/advertising/:id': {
data: {
type: 'advertising',
as: 'project',
query: {
id: ':id'
}
},
template: 'project'
},
'/experiential/:id': {
data: {
type: 'experiential',
as: 'project',
query: {
id: ':id'
}
},
template: 'project'
},
'/content/:id': {
data: {
type: 'content',
as: 'project',
query: {
id: ':id'
}
},
template: 'project'
}
}
}).listen(1337);
console.log('Server listening at port 1337...');
|