summaryrefslogtreecommitdiff
path: root/examples/index.js
blob: f1fabfa2f9dcfcac466f1192d3a0f031904059fd (plain)
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
var okcms = require('..');

var isProduction = process.env.OK_PRODUCTION === 'true'
var port = process.env.PORT || 1337;

var app  = okcms.createApp({

  root: 'public',

  debug: !isProduction,
  production: isProduction,

  admin: {
    dashboard: {
      resources: {
        card: {
          groupBy: 'stack',
          descending: true
        }
      }
    },
  },

  schemas: {
    page: {
      id: {type: 'string'},
      title: {type: 'string'},
      body: {type: 'text'},
      links: {type: 'link-list'},
    },
    bread: {
      type: {type: 'string', id: true},
      title: {type: 'string'},
      description: {type: 'text'},
      color: {type: 'enum', options: ["red","blue","green"]},
      video: {type: 'video'},
      images: {type: 'gallery'}
    },
    test: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
      flagged: {type: 'flag'},
      media: {type: 'media'},
    },
    flour: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
      image: {type: 'image'},
    },
    card: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
      stack: {type: 'foreign-key', key: 'stack'},
    },
    stack: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
    }
  },

  resources: [
    { type: 'page', static: {id: 'about'}},
    { type: 'page', static: {id: 'contact'}},
    { type: 'bread' },
    { type: 'test' },
    { type: 'flour' },
    { type: 'card' },
    { type: 'stack' },
  ],

  services: {
    s3: {
      key: process.env.S3_KEY,
      secret: process.env.S3_SECRET,
      bucket: process.env.S3_BUCKET,
      dirname: "okcms-example",
      image: { allowed: true, preserveFilename: false, maxbytes: 2*1024*1024 },
      video: { allowed: true, preserveFilename: true, maxbytes: 200*1024*1024 },
      audio: { allowed: true, preserveFilename: true, maxbytes: 100*1024*1024 },
    },
    
    webhook: {
      active: false,
      secret: 'test',
      command: '/path/to/build.sh',
    },
    
    example: {
      lib: require("./lib/okexample"),
      stuff: "things",
    },
    
    dumpfm: {
      lib: require("./lib/okdumpfm"),
    }
  },

  views: {
    '/': {
      data: [
        {type: 'bread', query: '*'},
        {type: 'page', query: '*'}
      ]
    },
    '/about': {
      data: {type: 'page', query: 'about'}
    },
    '/contact': {
      data: {type: 'page', query: 'contact'}
    },
    '/:id': {
      data: {type: 'bread', query: ':id'}
    }
  }

}).listen(port)

console.log('Server listening at port %d...', port);