aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpitu <[email protected]>2017-01-14 22:36:24 -0300
committerpitu <[email protected]>2017-01-14 22:36:24 -0300
commit91a7ec7286e1855ecebb7face35f1677a0f752e5 (patch)
tree9fd4d6b4a26f1d7c81e131a7497eae60bc11040e
parentwhoops (diff)
downloadhost.fuwn.me-91a7ec7286e1855ecebb7face35f1677a0f752e5.tar.xz
host.fuwn.me-91a7ec7286e1855ecebb7face35f1677a0f752e5.zip
WIP admin, probably not smart to clone repo now
-rw-r--r--lolisafe.js4
-rw-r--r--pages/admin/index.html56
-rw-r--r--pages/home.html63
-rw-r--r--public/index.html61
-rw-r--r--routes/api.js21
-rw-r--r--routes/routes.js90
6 files changed, 222 insertions, 73 deletions
diff --git a/lolisafe.js b/lolisafe.js
index 2e9135d..ab3a3c8 100644
--- a/lolisafe.js
+++ b/lolisafe.js
@@ -1,4 +1,5 @@
const config = require('./config.js')
+const api = require('./routes/api.js')
const routes = require('./routes/routes.js')
const express = require('express')
const db = require('knex')(config.database)
@@ -18,7 +19,8 @@ if( prefix !== '' )
safe.use('/' + prefix, express.static('./uploads'))
safe.use('/', express.static('./public'))
-safe.use('/api' , routes)
+safe.use('/', routes)
+safe.use('/api', api)
safe.use(function (req, res, next) {
res.status(404).sendFile('404.html', {
diff --git a/pages/admin/index.html b/pages/admin/index.html
new file mode 100644
index 0000000..8049be8
--- /dev/null
+++ b/pages/admin/index.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>loli-safe - A self hosted upload service</title>
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.3.0/css/bulma.min.css">
+ <link rel="stylesheet" type="text/css" href="/css/style.css">
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/min/dropzone.min.js"></script>
+ <script type="text/javascript" src="/js/upload.js"></script>
+ </head>
+ <body>
+ <section class="section">
+ <div class="container">
+ <h1 class="title">Dashboard</h1>
+ <h2 class="subtitle">A simple <strong>dashboard</strong>, to sort your uploaded stuff</h2>
+ <hr>
+ <div class="columns">
+ <div class="column is-3">
+ <aside class="menu">
+ <p class="menu-label">
+ General
+ </p>
+ <ul class="menu-list">
+ <li><a>Frontpage</a></li>
+ <li><a>Uploads</a></li>
+ </ul>
+ <p class="menu-label">
+ Galleries
+ </p>
+ <ul class="menu-list">
+ <li><a>Manage your galleries</a></li>
+ <li>
+ <a class="is-active">Galleries</a>
+ <ul>
+ <li><a>Gallery 1</a></li>
+ <li><a>Gallery 2</a></li>
+ <li><a>Gallery 3</a></li>
+ </ul>
+ </li>
+ </ul>
+ <p class="menu-label">
+ Administration
+ </p>
+ <ul class="menu-list">
+ <li><a>Change your token</a></li>
+ <li><a>Some other fancy stuff</a></li>
+ </ul>
+ </aside>
+ </div>
+ <div class="column has-text-centered">
+ <img src="/images/logo.png">
+ </div>
+ </div>
+ </div>
+ </section>
+ </body>
+</html> \ No newline at end of file
diff --git a/pages/home.html b/pages/home.html
new file mode 100644
index 0000000..555878c
--- /dev/null
+++ b/pages/home.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>loli-safe - A self hosted upload service</title>
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.3.0/css/bulma.min.css">
+ <link rel="stylesheet" type="text/css" href="/css/style.css">
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/min/dropzone.min.js"></script>
+ <script type="text/javascript" src="/js/upload.js"></script>
+ </head>
+
+ <body>
+ <section class="hero is-fullheight has-text-centered">
+ <div class="hero-body">
+ <div class="container">
+ <p id="b">
+ <img class='logo' src="/images/logo.png">
+ </p>
+ <h1 id="bulma" class="title">loli-safe</h1>
+ <h2 id="modern-framework" class="subtitle">A <strong>modern</strong> self-hosted file upload service</h2>
+
+ <div class="columns">
+ <div class="column"></div>
+ <div class="column" id='uploadContainer'>
+
+ <p id='tokenContainer' class="control has-addons has-addons-centered">
+ <input id='token' class="input is-danger" type="text" placeholder="Your upload token">
+ <a id='tokenSubmit' class="button is-danger">Check</a>
+ </p>
+
+ <a id='btnGithub' class="button is-danger is-outlined" href='https://github.com/kanadeko/loli-safe' target='_blank'>View on Github</a>
+
+ </div>
+ <div class="column"></div>
+ </div>
+
+ <div class="columns">
+ <div class="column"></div>
+ <div class="column"><a href="/dashboard" class="is-danger">Dashboard</a></div>
+ <div class="column"></div>
+ </div>
+
+ <div id="uploads">
+ <div id="template" class="columns">
+ <div class="column">
+ <p data-dz-size></p>
+ </div>
+ <div class="column">
+ <p data-dz-name></p>
+ </div>
+ <div class="column">
+ <progress class="progress is-danger" value="100" max="100" data-dz-uploadprogress></progress>
+ <p data-dz-errormessage></p>
+ <p class="link"></p>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </section>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/public/index.html b/public/index.html
deleted file mode 100644
index 1b1ebab..0000000
--- a/public/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>loli-safe - A self hosted upload service</title>
- <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.3.0/css/bulma.min.css">
- <link rel="stylesheet" type="text/css" href="/css/style.css">
- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/4.3.0/min/dropzone.min.js"></script>
- <script type="text/javascript" src="/js/upload.js"></script>
- </head>
-
- <body>
- <section class="hero is-fullheight has-text-centered">
- <div class="hero-body">
- <div class="container">
- <p id="b">
- <img class='logo' src="/images/logo.png">
- </p>
- <h1 id="bulma" class="title">
- loli-safe
- </h1>
- <h2 id="modern-framework" class="subtitle">
- A <strong>modern</strong> self-hosted file upload service
- </h2>
-
- <div class="columns">
- <div class="column"></div>
- <div class="column" id='uploadContainer'>
-
- <p id='tokenContainer' class="control has-addons has-addons-centered">
- <input id='token' class="input is-danger" type="text" placeholder="Your upload token">
- <a id='tokenSubmit' class="button is-danger">Check</a>
- </p>
-
- <a id='btnGithub' class="button is-danger is-outlined" href='https://github.com/kanadeko/loli-safe' target='_blank'>View on Github</a>
-
- </div>
- <div class="column"></div>
- </div>
-
- <div id="uploads">
- <div id="template" class="columns">
- <div class="column">
- <p data-dz-size></p>
- </div>
- <div class="column">
- <p data-dz-name></p>
- </div>
- <div class="column">
- <progress class="progress is-danger" value="100" max="100" data-dz-uploadprogress></progress>
- <p data-dz-errormessage></p>
- <p class="link"></p>
- </div>
- </div>
- </div>
-
- </div>
- </div>
- </section>
-
- </body>
-</html> \ No newline at end of file
diff --git a/routes/api.js b/routes/api.js
new file mode 100644
index 0000000..23a1a60
--- /dev/null
+++ b/routes/api.js
@@ -0,0 +1,21 @@
+const config = require('../config.js')
+const routes = require('express').Router()
+const uploadController = require('../controllers/uploadController')
+const galleryController = require('../controllers/galleryController')
+
+routes.get ('/info', (req, res, next) => {
+
+ if(config.TOKEN !== '')
+ if(req.headers.auth !== config.TOKEN)
+ return res.status(401).send('not-authorized')
+
+ return res.json({
+ maxFileSize: config.uploads.maxsize.slice(0, -2)
+ })
+})
+
+routes.post ('/upload', (req, res, next) => uploadController.upload(req, res, next))
+routes.get ('/gallery', (req, res, next) => galleryController.list(req, res, next))
+routes.get ('/gallery/test', (req, res, next) => galleryController.test(req, res, next))
+
+module.exports = routes \ No newline at end of file
diff --git a/routes/routes.js b/routes/routes.js
index 23a1a60..fcbba34 100644
--- a/routes/routes.js
+++ b/routes/routes.js
@@ -1,21 +1,89 @@
const config = require('../config.js')
const routes = require('express').Router()
-const uploadController = require('../controllers/uploadController')
-const galleryController = require('../controllers/galleryController')
+const path = require('path')
-routes.get ('/info', (req, res, next) => {
+routes.get('/', (req, res) => {
+
+ let options = {
+ root: 'pages/',
+ dotfiles: 'deny',
+ headers: {
+ 'x-timestamp': Date.now(),
+ 'x-sent': true
+ }
+ }
+
+ res.sendFile('home.html', options, function (err) {
+ if (err) {
+ console.log(err)
+ res.status(err.status).end()
+ } else {
+ console.log('Sent: home.html')
+ }
+ })
+
+})
+
+routes.get('/admin', function (req, res, next) {
+
+ let options = {
+ root: 'pages/admin/',
+ dotfiles: 'deny',
+ headers: {
+ 'x-timestamp': Date.now(),
+ 'x-sent': true
+ }
+ }
+
+ res.sendFile('index.html', options, function (err) {
+ if (err) {
+ console.log(err)
+ res.status(err.status).end()
+ } else {
+ console.log('Sent: index.html')
+ }
+ })
+
+})
+
+routes.get('/admin/:name', function (req, res, next) {
+
+ let options = {
+ root: 'pages/admin/',
+ dotfiles: 'deny',
+ headers: {
+ 'x-timestamp': Date.now(),
+ 'x-sent': true
+ }
+ }
+
+ let fileName = req.params.name
+
+ res.sendFile(fileName, options, function (err) {
+ if (err) {
+ console.log(err)
+ res.status(err.status).end()
+ } else {
+ console.log('Sent:', fileName)
+ }
+ })
+
+})
+
+/*
+routes.get('/', (req, res) => {
+ res.sendFile('pages/home.html')
+})
+
+routes.get('/dashboard', (req, res, next) => {
if(config.TOKEN !== '')
if(req.headers.auth !== config.TOKEN)
return res.status(401).send('not-authorized')
-
- return res.json({
- maxFileSize: config.uploads.maxsize.slice(0, -2)
- })
-})
+
+ return res.sendFile('pages/home.html')
-routes.post ('/upload', (req, res, next) => uploadController.upload(req, res, next))
-routes.get ('/gallery', (req, res, next) => galleryController.list(req, res, next))
-routes.get ('/gallery/test', (req, res, next) => galleryController.test(req, res, next))
+})
+*/
module.exports = routes \ No newline at end of file