diff options
| author | Pitu <[email protected]> | 2017-01-30 05:13:07 -0300 |
|---|---|---|
| committer | Pitu <[email protected]> | 2017-01-30 05:13:07 -0300 |
| commit | 6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2 (patch) | |
| tree | ad6efa64785c0862d2c8cf8df2a980580c3a4703 /public/js | |
| parent | Removed unused dependency (diff) | |
| parent | Bumped version (diff) | |
| download | host.fuwn.me-6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2.tar.xz host.fuwn.me-6b7fd3bcf431fd6df9059c83a34f5a15b00fd7b2.zip | |
Merged dev into master
Diffstat (limited to 'public/js')
| -rw-r--r-- | public/js/auth.js | 56 | ||||
| -rw-r--r-- | public/js/panel.js | 98 | ||||
| -rw-r--r-- | public/js/upload.js | 20 |
3 files changed, 101 insertions, 73 deletions
diff --git a/public/js/auth.js b/public/js/auth.js new file mode 100644 index 0000000..68cf9e3 --- /dev/null +++ b/public/js/auth.js @@ -0,0 +1,56 @@ +var page = {}; + +page.do = function(dest){ + + var user = document.getElementById('user').value; + var pass = document.getElementById('pass').value; + + if(user === undefined || user === null || user === '') + return swal('Error', 'You need to specify a username', 'error'); + if(pass === undefined || pass === null || pass === '') + return swal('Error', 'You need to specify a username', 'error'); + + axios.post('/api/' + dest, { + username: user, + password: pass + }) + .then(function (response) { + + if(response.data.success === false) + return swal('Error', response.data.description, 'error'); + + localStorage.token = response.data.token; + window.location = '/panel'; + + }) + .catch(function (error) { + return swal('An error ocurred', 'There was an error with the request, please check the console for more information.', 'error'); + console.log(error); + }); +} + +page.verify = function(){ + page.token = localStorage.token; + if(page.token === undefined) return; + + axios.post('/api/tokens/verify', { + token: page.token + }) + .then(function (response) { + + if(response.data.success === false) + return swal('Error', response.data.description, 'error'); + + window.location = '/panel'; + + }) + .catch(function (error) { + return swal('An error ocurred', 'There was an error with the request, please check the console for more information.', 'error'); + console.log(error); + }); + +} + +window.onload = function () { + page.verify(); +}
\ No newline at end of file diff --git a/public/js/panel.js b/public/js/panel.js index 4df7d5d..8337cd4 100644 --- a/public/js/panel.js +++ b/public/js/panel.js @@ -1,17 +1,11 @@ let panel = {} panel.page; -panel.token = localStorage.admintoken; +panel.token = localStorage.token; panel.filesView = localStorage.filesView; panel.preparePage = function(){ - if(!panel.token){ - document.getElementById('auth').style.display = 'flex'; - document.getElementById('tokenSubmit').addEventListener('click', function(){ - panel.verifyToken(document.getElementById('token').value); - }); - return; - } + if(!panel.token) return window.location = '/auth'; panel.verifyToken(panel.token, true); } @@ -20,7 +14,6 @@ panel.verifyToken = function(token, reloadOnError){ reloadOnError = false; axios.post('/api/tokens/verify', { - type: 'admin', token: token }) .then(function (response) { @@ -32,15 +25,15 @@ panel.verifyToken = function(token, reloadOnError){ type: "error" }, function(){ if(reloadOnError){ - localStorage.removeItem("admintoken"); - location.reload(); + localStorage.removeItem("token"); + location.location = '/auth'; } }) return; } - axios.defaults.headers.common['auth'] = token; - localStorage.admintoken = token; + axios.defaults.headers.common['token'] = token; + localStorage.token = token; panel.token = token; return panel.prepareDashboard(); @@ -73,7 +66,7 @@ panel.prepareDashboard = function(){ } panel.logout = function(){ - localStorage.removeItem("admintoken"); + localStorage.removeItem("token"); location.reload('/'); } @@ -85,14 +78,12 @@ panel.getUploads = function(album = undefined, page = undefined){ if(album !== undefined) url = '/api/album/' + album + '/' + page - axios.get(url) - .then(function (response) { + axios.get(url).then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } - var prevPage = 0; var nextPage = page + 1; @@ -125,9 +116,7 @@ panel.getUploads = function(album = undefined, page = undefined){ if(panel.filesView === 'thumbs'){ - container.innerHTML = ` - ${pagination} <hr> ${listType} @@ -135,10 +124,8 @@ panel.getUploads = function(album = undefined, page = undefined){ </div> ${pagination} - `; - panel.page.appendChild(container); var table = document.getElementById('table'); @@ -157,7 +144,6 @@ panel.getUploads = function(album = undefined, page = undefined){ }else{ container.innerHTML = ` - ${pagination} <hr> ${listType} @@ -175,7 +161,6 @@ panel.getUploads = function(album = undefined, page = undefined){ </table> <hr> ${pagination} - `; panel.page.appendChild(container); @@ -201,11 +186,7 @@ panel.getUploads = function(album = undefined, page = undefined){ table.appendChild(tr); } - } - - - }) .catch(function (error) { return swal("An error ocurred", 'There was an error with the request, please check the console for more information.', "error"); @@ -238,7 +219,7 @@ panel.deleteFile = function(id){ .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -258,10 +239,9 @@ panel.deleteFile = function(id){ panel.getAlbums = function(){ - axios.get('/api/albums') - .then(function (response) { + axios.get('/api/albums').then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -324,7 +304,6 @@ panel.getAlbums = function(){ panel.submitAlbum(); }); - }) .catch(function (error) { return swal("An error ocurred", 'There was an error with the request, please check the console for more information.', "error"); @@ -357,7 +336,7 @@ panel.renameAlbum = function(id){ .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else if(response.data.description === 'Name already in use') swal.showInputError("That name is already in use!"); else swal("An error ocurred", response.data.description, "error"); return; @@ -396,7 +375,7 @@ panel.deleteAlbum = function(id){ .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -424,7 +403,7 @@ panel.submitAlbum = function(){ .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -446,7 +425,7 @@ panel.getAlbumsSidebar = function(){ axios.get('/api/albums/sidebar') .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -489,7 +468,7 @@ panel.changeTokens = function(){ axios.get('/api/tokens') .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -497,35 +476,21 @@ panel.changeTokens = function(){ var container = document.createElement('div'); container.className = "container"; container.innerHTML = ` - <h2 class="subtitle">Manage your tokens</h2> - - <label class="label">Client token:</label> - <p class="control has-addons"> - <input id="clientToken" class="input is-expanded" type="text" placeholder="Your client token"> - <a id="submitClientToken" class="button is-primary">Save</a> - </p> + <h2 class="subtitle">Manage your token</h2> - <label class="label">Admin token:</label> + <label class="label">Your current token:</label> <p class="control has-addons"> - <input id="adminToken" class="input is-expanded" type="text" placeholder="Your admin token"> - <a id="submitAdminToken" class="button is-primary">Save</a> + <input id="token" readonly class="input is-expanded" type="text" placeholder="Your token" value="${response.data.token}"> + <a id="getNewToken" class="button is-primary">Request new token</a> </p> `; panel.page.appendChild(container); - document.getElementById('clientToken').value = response.data.clientToken; - document.getElementById('adminToken').value = response.data.adminToken; - - document.getElementById('submitClientToken').addEventListener('click', function(){ - panel.submitToken('client', document.getElementById('clientToken').value); + document.getElementById('getNewToken').addEventListener('click', function(){ + panel.getNewToken(); }); - document.getElementById('submitAdminToken').addEventListener('click', function(){ - panel.submitToken('admin', document.getElementById('adminToken').value); - }); - - }) .catch(function (error) { return swal("An error ocurred", 'There was an error with the request, please check the console for more information.', "error"); @@ -534,16 +499,13 @@ panel.changeTokens = function(){ } -panel.submitToken = function(type, token){ +panel.getNewToken = function(){ - axios.post('/api/tokens/change', { - type: type, - token: token - }) + axios.post('/api/tokens/change') .then(function (response) { if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + if(response.data.description === 'No token provided') return panel.verifyToken(panel.token); else return swal("An error ocurred", response.data.description, "error"); } @@ -552,14 +514,8 @@ panel.submitToken = function(type, token){ text: 'Your token was changed successfully.', type: "success" }, function(){ - - if(type === 'client') - localStorage.token = token; - else if(type === 'admin') - localStorage.admintoken = token - + localStorage.token = response.data.token; location.reload(); - }) }) diff --git a/public/js/upload.js b/public/js/upload.js index ba67d15..b52f670 100644 --- a/public/js/upload.js +++ b/public/js/upload.js @@ -36,7 +36,6 @@ upload.verifyToken = function(token, reloadOnError){ reloadOnError = false; axios.post('/api/tokens/verify', { - type: 'client', token: token }) .then(function (response) { @@ -101,10 +100,11 @@ upload.prepareDropzone = function(){ maxFiles: 1000, autoProcessQueue: true, headers: { - 'auth': upload.token + 'token': upload.token }, init: function() { this.on('addedfile', function(file) { + myDropzone = this; document.getElementById('uploads').style.display = 'block'; }); } @@ -139,6 +139,22 @@ upload.prepareDropzone = function(){ } +//Handle image paste event +window.addEventListener('paste', function(event) { + var items = (event.clipboardData || event.originalEvent.clipboardData).items; + for (index in items) { + var item = items[index]; + if (item.kind === 'file') { + var blob = item.getAsFile(); + console.log(blob.type); + var file = new File([blob], "pasted-image."+blob.type.match(/(?:[^\/]*\/)([^;]*)/)[1]); + file.type = blob.type; + console.log(file); + myDropzone.addFile(file); + } + } +}); + window.onload = function () { upload.checkIfPublic(); };
\ No newline at end of file |