diff options
| author | pitu <[email protected]> | 2017-01-14 19:24:32 -0300 |
|---|---|---|
| committer | pitu <[email protected]> | 2017-01-14 19:24:32 -0300 |
| commit | f4b8544f69a92056960494762e4ba72753c3b463 (patch) | |
| tree | f2229b9ac73f72adbb4138be52d93b3f7d296d8a /public/js/upload.js | |
| parent | Updated readme (diff) | |
| download | host.fuwn.me-f4b8544f69a92056960494762e4ba72753c3b463.tar.xz host.fuwn.me-f4b8544f69a92056960494762e4ba72753c3b463.zip | |
Added token submission to frontpage
Diffstat (limited to 'public/js/upload.js')
| -rw-r--r-- | public/js/upload.js | 122 |
1 files changed, 74 insertions, 48 deletions
diff --git a/public/js/upload.js b/public/js/upload.js index 0696af6..636627e 100644 --- a/public/js/upload.js +++ b/public/js/upload.js @@ -1,53 +1,79 @@ -var maxSize = '512'; - -var xhr = new XMLHttpRequest(); -xhr.onreadystatechange = function() { - if (xhr.readyState == XMLHttpRequest.DONE) { - if(xhr.responseText !== 'not-authorized'){ - document.getElementById('btnGithub').style.display = 'none'; - document.getElementById('dropzone').style.display = 'flex'; - } - if(xhr.responseText.maxFileSize) - maxSize = xhr.responseText.maxFileSize; - } -} -xhr.open('GET', '/api/info', true); -xhr.send(null); window.onload = function () { - var previewNode = document.querySelector("#template"); - previewNode.id = ""; - var previewTemplate = previewNode.parentNode.innerHTML; - previewNode.parentNode.removeChild(previewNode); - - var dropzone = new Dropzone('div#dropzone', { - url: '/api/upload', - paramName: 'file', - maxFilesize: maxSize, - parallelUploads: 2, - uploadMultiple: false, - previewsContainer: 'div#uploads', - previewTemplate: previewTemplate, - createImageThumbnails: false, - maxFiles: 1000, - autoProcessQueue: true - }); - - // Update the total progress bar - dropzone.on("uploadprogress", function(file, progress) { - file.previewElement.querySelector(".progress").style.width = progress + "%"; - }); - - dropzone.on("success", function(file, response) { - // Handle the responseText here. For example, add the text to the preview element: - a = document.createElement('a'); - a.href = response.url; - a.target = '_blank'; - a.innerHTML = response.filename; - - file.previewTemplate.querySelector(".progress").style.display = 'none'; - file.previewTemplate.querySelector(".link").appendChild(a); - }); + 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); + } + + function prepareDropzone(){ + + var previewNode = document.querySelector("#template"); + previewNode.id = ""; + var previewTemplate = previewNode.parentNode.innerHTML; + previewNode.parentNode.removeChild(previewNode); + + var dropzone = new Dropzone('div#dropzone', { + url: '/api/upload', + paramName: 'file', + maxFilesize: maxSize, + parallelUploads: 2, + uploadMultiple: false, + previewsContainer: 'div#uploads', + previewTemplate: previewTemplate, + createImageThumbnails: false, + maxFiles: 1000, + autoProcessQueue: true + }); + + // Update the total progress bar + dropzone.on("uploadprogress", function(file, progress) { + file.previewElement.querySelector(".progress").style.width = progress + "%"; + }); + dropzone.on("success", function(file, response) { + // Handle the responseText here. For example, add the text to the preview element: + a = document.createElement('a'); + a.href = response.url; + a.target = '_blank'; + a.innerHTML = response.filename; + + file.previewTemplate.querySelector(".progress").style.display = 'none'; + file.previewTemplate.querySelector(".link").appendChild(a); + }); + + } + + function getInfo(token) { + var xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + if(xhr.responseText !== 'not-authorized'){ + + div = document.createElement('div'); + div.id = 'dropzone'; + div.innerHTML = 'Click here or drag and drop files'; + div.style.display = 'flex'; + + 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; + if(token) localStorage.token = token; + prepareDropzone(); + } + } + } + xhr.open('GET', '/api/info', true); + xhr.setRequestHeader('auth', token); + xhr.send(null); + } };
\ No newline at end of file |