diff --git a/package.json b/package.json
index cda1ff9..7ad72d2 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"dotenv": "^6.1.0",
"express": "^4.13.3",
"express-graphql": "^0.6.12",
+ "express-handlebars": "^4.0.4",
"googleapis": "^32.0.0",
"graphql": "^0.13.2",
"morgan": "^1.8.0",
diff --git a/src/api/index.js b/src/api/index.js
index 4780e57..f85bb9c 100755
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -13,11 +13,13 @@ export default ({ config, controller }) => {
api.get('/blueprints', (req, res) => {
const bps = controller.blueprints()
- res.json(bps.map(bp => ({
- source: bp.sheet.name,
- tab: bp.name,
- urls: bp.urls
- })))
+ res.render('blueprints', {
+ bps: bps.map(bp => ({
+ source: bp.sheet.name,
+ tab: bp.name,
+ urls: bp.urls
+ }))
+ })
})
api.get('/update', (req, res) => {
diff --git a/src/index.js b/src/index.js
index e341eb1..3352614 100755
--- a/src/index.js
+++ b/src/index.js
@@ -5,11 +5,17 @@ import middleware from './middleware'
import api from './api'
// import config from './sheets_config'
import dotenv from 'dotenv'
+const hbs = require('express-handlebars')
dotenv.config()
let app = express()
app.server = http.createServer(app)
+app.engine('.hbs', hbs({
+ extname: '.hbs',
+ defaultLayout: 'default'
+}))
+app.set('view engine', '.hbs')
// enable cross origin requests explicitly in development
if (process.env.NODE_ENV === 'development') {
diff --git a/src/sheets_config.js b/src/sheets_config.js
index f606c6d..c27cef0 100644
--- a/src/sheets_config.js
+++ b/src/sheets_config.js
@@ -9,6 +9,25 @@ const timemapStructure = {
export_tags: BP.tree
}
+const treatyStructure = {
+ treaty_export_events: BP.deeprows,
+ treaty_export_categories: [BP.groups, BP.rows],
+ export_narratives: BP.rows,
+ treaty_export_sources: BP.deepids,
+ export_sites: BP.rows,
+ export_tags: BP.tree
+}
+
+const moraldriftStructure = {
+ moraldrift_export_events: BP.deeprows,
+ moraldrift_export_categories: [BP.groups, BP.rows],
+ moraldrift_export_narratives: BP.rows,
+ moraldrift_export_sources: BP.deepids,
+ moraldrift_export_sites: BP.rows,
+ moraldrift_export_tags: BP.tree
+
+}
+
export default {
gsheets: [{
name: 'example',
diff --git a/views/blueprints.hbs b/views/blueprints.hbs
new file mode 100644
index 0000000..ce92a87
--- /dev/null
+++ b/views/blueprints.hbs
@@ -0,0 +1,8 @@
+
Blueprints
+
+{{#each bps}}
+Source: {{ source }}
+Tab: {{ tab }}
+URLS: {{ urls }}
+
+{{/each}}
diff --git a/views/layouts/default.hbs b/views/layouts/default.hbs
new file mode 100644
index 0000000..c621e4c
--- /dev/null
+++ b/views/layouts/default.hbs
@@ -0,0 +1,15 @@
+
+
+
+
+
+ Datasheet Server
+
+
+
+
+
+ {{{body}}}
+
+
+
diff --git a/yarn.lock b/yarn.lock
index 14f648c..05e71ad 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -751,6 +751,11 @@ arrify@^1.0.0, arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+asap@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
@@ -1198,7 +1203,7 @@ color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-commander@^2.16.0:
+commander@^2.16.0, commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -1865,6 +1870,17 @@ express-graphql@^0.6.12:
http-errors "^1.3.0"
raw-body "^2.3.2"
+express-handlebars@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/express-handlebars/-/express-handlebars-4.0.4.tgz#b42b6bc09f4c7fe35f4afbda7aedadd6c2527fae"
+ integrity sha512-WxbQorVc7V9ORzp9YpG3fLAzrfIrKcScSezuFxTZRFJSx/P2f7QJ9ZyADV8cyPuomyzUxAJnw6t8dnriLfBNvg==
+ dependencies:
+ glob "^7.1.6"
+ graceful-fs "^4.2.4"
+ handlebars "^4.7.6"
+ object.assign "^4.1.0"
+ promise "^8.1.0"
+
express@^4.13.3:
version "4.16.4"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
@@ -2151,6 +2167,18 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.6:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-dirs@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -2246,6 +2274,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+graceful-fs@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
graphql@^0.13.2:
version "0.13.2"
resolved "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270"
@@ -2262,6 +2295,18 @@ gtoken@^2.3.0:
mime "^2.2.0"
pify "^3.0.0"
+handlebars@^4.7.6:
+ version "4.7.6"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
+ integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.0"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@@ -3041,6 +3086,11 @@ minimist@^1.1.0, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
@@ -3142,6 +3192,11 @@ negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -3276,6 +3331,11 @@ object-hash@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
+object-keys@^1.0.11:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
object-keys@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
@@ -3286,6 +3346,16 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
+object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -3607,6 +3677,13 @@ progress@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
+promise@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
+ integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
+ dependencies:
+ asap "~2.0.6"
+
prop-types@^15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
@@ -4075,7 +4152,7 @@ source-map@^0.5.0, source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-source-map@^0.6.0:
+source-map@^0.6.0, source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -4371,6 +4448,13 @@ type-is@~1.6.16:
media-typer "0.3.0"
mime-types "~2.1.18"
+uglify-js@^3.1.4:
+ version "3.9.4"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b"
+ integrity sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==
+ dependencies:
+ commander "~2.20.3"
+
uid2@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
@@ -4542,7 +4626,7 @@ widest-line@^2.0.0:
dependencies:
string-width "^2.1.1"
-wordwrap@~1.0.0:
+wordwrap@^1.0.0, wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"