diff options
| -rw-r--r-- | config.sample.js | 2 | ||||
| -rw-r--r-- | pages/home.html | 2 | ||||
| -rw-r--r-- | pages/panel.html (renamed from pages/admin/index.html) | 4 | ||||
| -rw-r--r-- | public/css/style.css | 2 | ||||
| -rw-r--r-- | public/js/.DS_Store | bin | 0 -> 6148 bytes | |||
| -rw-r--r-- | public/js/panel.js | 0 | ||||
| -rw-r--r-- | public/js/upload.js | 43 | ||||
| -rw-r--r-- | routes/api.js | 6 | ||||
| -rw-r--r-- | routes/routes.js | 75 |
9 files changed, 55 insertions, 79 deletions
diff --git a/config.sample.js b/config.sample.js index cf5f49d..ade99e0 100644 --- a/config.sample.js +++ b/config.sample.js @@ -6,7 +6,7 @@ module.exports = { Ideally the only options you should change are port and basedomain. */ - // Your base domain where the app is running. + // Your base domain where the app is running. Remember to finish it with '/' basedomain: 'https://i.kanacchi.moe/', // Token to use on the api. Leave blank for public diff --git a/pages/home.html b/pages/home.html index 555878c..b4aa56d 100644 --- a/pages/home.html +++ b/pages/home.html @@ -35,7 +35,7 @@ <div class="columns"> <div class="column"></div> - <div class="column"><a href="/dashboard" class="is-danger">Dashboard</a></div> + <div class="column"><a id='panel' href="/panel" target="_blank" class="is-danger">Dashboard</a></div> <div class="column"></div> </div> diff --git a/pages/admin/index.html b/pages/panel.html index 8049be8..8926c46 100644 --- a/pages/admin/index.html +++ b/pages/panel.html @@ -20,7 +20,7 @@ General </p> <ul class="menu-list"> - <li><a>Frontpage</a></li> + <li><a href="/">Frontpage</a></li> <li><a>Uploads</a></li> </ul> <p class="menu-label"> @@ -46,7 +46,7 @@ </ul> </aside> </div> - <div class="column has-text-centered"> + <div class="column has-text-centered" id='page'> <img src="/images/logo.png"> </div> </div> diff --git a/public/css/style.css b/public/css/style.css index 324bb9d..fcd4923 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -50,7 +50,7 @@ div#dropzone:hover { color: #fff; } -div#uploads, p#tokenContainer { display: none; } +div#uploads, p#tokenContainer, a#panel { display: none; } img.logo { height: 200px; margin-top: 20px; } .dz-preview .dz-details { display: flex; } diff --git a/public/js/.DS_Store b/public/js/.DS_Store Binary files differnew file mode 100644 index 0000000..5008ddf --- /dev/null +++ b/public/js/.DS_Store diff --git a/public/js/panel.js b/public/js/panel.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/public/js/panel.js diff --git a/public/js/upload.js b/public/js/upload.js index 488ca3a..be15ace 100644 --- a/public/js/upload.js +++ b/public/js/upload.js @@ -1,15 +1,33 @@ window.onload = function () { + var USINGTOKEN; var maxSize = '512'; - if(!localStorage.token){ - document.getElementById('tokenContainer').style.display = 'flex' - document.getElementById("tokenSubmit").addEventListener("click", function(){ - getInfo(document.getElementById("token").value) - }); - }else{ - getInfo(localStorage.token); + // First check to see if the service is using token or not + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + USINGTOKEN = JSON.parse(xhr.responseText).token; + prepareTokenThing(); + } + } + xhr.open('GET', '/api/check', true); + xhr.send(null); + + function prepareTokenThing(){ + + if(!USINGTOKEN) return getInfo(); + + if(!localStorage.token){ + document.getElementById('tokenContainer').style.display = 'flex' + document.getElementById("tokenSubmit").addEventListener("click", function(){ + getInfo(document.getElementById("token").value) + }); + }else{ + getInfo(localStorage.token); + } + } function prepareDropzone(){ @@ -73,15 +91,20 @@ window.onload = function () { document.getElementById('btnGithub').style.display = 'none'; document.getElementById('tokenContainer').style.display = 'none'; document.getElementById('uploadContainer').appendChild(div); - - if(xhr.responseText.maxFileSize) maxSize = xhr.responseText.maxFileSize; + document.getElementById('panel').style.display = 'block'; + + if(xhr.responseText.maxFileSize) maxSize = JSON.parse(xhr.responseText).maxFileSize; if(token) localStorage.token = token; + prepareDropzone(); } } } xhr.open('GET', '/api/info', true); - xhr.setRequestHeader('auth', token); + + if(token !== undefined) + xhr.setRequestHeader('auth', token); + xhr.send(null); } };
\ No newline at end of file diff --git a/routes/api.js b/routes/api.js index 23a1a60..a4e8e0b 100644 --- a/routes/api.js +++ b/routes/api.js @@ -3,6 +3,12 @@ const routes = require('express').Router() const uploadController = require('../controllers/uploadController') const galleryController = require('../controllers/galleryController') +routes.get ('/check', (req, res, next) => { + if(config.TOKEN === '') + return res.json({token: false}) + return res.json({token: true}) +}) + routes.get ('/info', (req, res, next) => { if(config.TOKEN !== '') diff --git a/routes/routes.js b/routes/routes.js index fcbba34..c849335 100644 --- a/routes/routes.js +++ b/routes/routes.js @@ -2,88 +2,35 @@ const config = require('../config.js') const routes = require('express').Router() const path = require('path') -routes.get('/', (req, res) => { - - let options = { - root: 'pages/', - dotfiles: 'deny', - headers: { - 'x-timestamp': Date.now(), - 'x-sent': true - } +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 - } - } +routes.get('/', (req, res) => { - res.sendFile('index.html', options, function (err) { + res.sendFile('home.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) { +routes.get('/panel', 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) { + res.sendFile('panel.html', 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.sendFile('pages/home.html') - -}) -*/ - module.exports = routes
\ No newline at end of file |