kanadeko 7 years ago
parent
commit
0c6912d2c3
9 changed files with 55 additions and 79 deletions
  1. 1 1
      config.sample.js
  2. 1 1
      pages/home.html
  3. 2 2
      pages/admin/index.html
  4. 1 1
      public/css/style.css
  5. BIN
      public/js/.DS_Store
  6. 0 0
      public/js/panel.js
  7. 33 10
      public/js/upload.js
  8. 6 0
      routes/api.js
  9. 11 64
      routes/routes.js

+ 1 - 1
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

+ 1 - 1
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>
 

+ 2 - 2
pages/admin/index.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>

+ 1 - 1
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; }

BIN
public/js/.DS_Store


+ 0 - 0
public/js/panel.js


+ 33 - 10
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);
 	}
 };

+ 6 - 0
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 !== '')

+ 11 - 64
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