diff options
Diffstat (limited to 'public/js/panel.js')
| -rw-r--r-- | public/js/panel.js | 374 |
1 files changed, 257 insertions, 117 deletions
diff --git a/public/js/panel.js b/public/js/panel.js index f59d3c6..5608ad2 100644 --- a/public/js/panel.js +++ b/public/js/panel.js @@ -20,10 +20,10 @@ panel.verifyToken = function(token, reloadOnError = false){ type: 'admin', token: token }) - .then(function (response) { + .then(function (response) { - if(response.data.success === false){ - swal({ + if(response.data.success === false){ + swal({ title: "An error ocurred", text: response.data.description, type: "error" @@ -34,18 +34,18 @@ panel.verifyToken = function(token, reloadOnError = false){ } }) return; - } + } - axios.defaults.headers.common['auth'] = token; - localStorage.admintoken = token; + axios.defaults.headers.common['auth'] = token; + localStorage.admintoken = token; panel.token = token; return panel.prepareDashboard(); - }) - .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); - }); + }) + .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); + }); } @@ -76,26 +76,27 @@ panel.getUploads = function(album = undefined){ url = '/api/album/' + album axios.get(url) - .then(function (response) { - if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); - else return swal("An error ocurred", response.data.description, "error"); - } - - panel.page.innerHTML = ''; - var container = document.createElement('div'); + .then(function (response) { + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } + + panel.page.innerHTML = ''; + var container = document.createElement('div'); container.innerHTML = ` <table class="table is-striped is-narrow"> - <thead> - <tr> - <th>File</th> - <th>Album</th> - <th>Date</th> - </tr> - </thead> - <tbody id="table"> - </tbody> - </table>`; + <thead> + <tr> + <th>File</th> + <th>Album</th> + <th>Date</th> + <th></th> + </tr> + </thead> + <tbody id="table"> + </tbody> + </table>`; panel.page.appendChild(container); var table = document.getElementById('table'); @@ -105,56 +106,100 @@ panel.getUploads = function(album = undefined){ var tr = document.createElement('tr'); tr.innerHTML = ` <tr> - <th><a href="${item.file}" target="_blank">${item.file}</a></th> - <th>${item.album}</th> - <td>${item.date}</td> - </tr> - `; + <th><a href="${item.file}" target="_blank">${item.file}</a></th> + <th>${item.album}</th> + <td>${item.date}</td> + <td> + <a class="button is-small is-danger is-outlined" title="Delete album" onclick="panel.deleteFile(${item.id})"> + <span class="icon is-small"> + <i class="fa fa-trash-o"></i> + </span> + </a> + </td> + </tr> + `; 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"); - console.log(error); - }); + }) + .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); + }); } +panel.deleteFile = function(id){ + swal({ + title: "Are you sure?", + text: "You wont be able to recover the file!", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#ff3860", + confirmButtonText: "Yes, delete it!", + closeOnConfirm: false + }, + function(){ + + axios.post('/api/upload/delete', { + id: id + }) + .then(function (response) { + + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } + + swal("Deleted!", "The file has been deleted.", "success"); + panel.getUploads(); + return; + + }) + .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); + }); + + } + ); +} + panel.getAlbums = function(){ axios.get('/api/albums') - .then(function (response) { - if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); - else return swal("An error ocurred", response.data.description, "error"); - } + .then(function (response) { + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } - panel.page.innerHTML = ''; - var container = document.createElement('div'); + panel.page.innerHTML = ''; + var container = document.createElement('div'); container.className = "container"; container.innerHTML = ` <h2 class="subtitle">Create new album</h2> <p class="control has-addons has-addons-centered"> - <input id="albumName" class="input" type="text" placeholder="Name"> - <a id="submitAlbum" class="button is-primary">Submit</a> + <input id="albumName" class="input" type="text" placeholder="Name"> + <a id="submitAlbum" class="button is-primary">Submit</a> </p> <h2 class="subtitle">List of albums</h2> <table class="table is-striped is-narrow"> - <thead> - <tr> - <th>Name</th> - <th>Files</th> - <th>Created At</th> - </tr> - </thead> - <tbody id="table"> - </tbody> - </table>`; + <thead> + <tr> + <th>Name</th> + <th>Files</th> + <th>Created At</th> + <th></th> + </tr> + </thead> + <tbody id="table"> + </tbody> + </table>`; panel.page.appendChild(container); var table = document.getElementById('table'); @@ -164,11 +209,23 @@ panel.getAlbums = function(){ var tr = document.createElement('tr'); tr.innerHTML = ` <tr> - <th>${item.name}</th> - <th>${item.files}</th> - <td>${item.date}</td> - </tr> - `; + <th>${item.name}</th> + <th>${item.files}</th> + <td>${item.date}</td> + <td> + <a class="button is-small is-primary is-outlined" title="Edit name" onclick="panel.renameAlbum(${item.id})"> + <span class="icon is-small"> + <i class="fa fa-pencil"></i> + </span> + </a> + <a class="button is-small is-danger is-outlined" title="Delete album" onclick="panel.deleteAlbum(${item.id})"> + <span class="icon is-small"> + <i class="fa fa-trash-o"></i> + </span> + </a> + </td> + </tr> + `; table.appendChild(tr); } @@ -178,11 +235,94 @@ panel.getAlbums = function(){ }); - }) - .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); - }); + }) + .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); + }); + +} + +panel.renameAlbum = function(id){ + + swal({ + title: "Rename album", + text: "New name you want to give the album:", + type: "input", + showCancelButton: true, + closeOnConfirm: false, + animation: "slide-from-top", + inputPlaceholder: "My super album" + },function(inputValue){ + if (inputValue === false) return false; + if (inputValue === "") { + swal.showInputError("You need to write something!"); + return false + } + + axios.post('/api/albums/rename', { + id: id, + name: inputValue + }) + .then(function (response) { + + if(response.data.success === false){ + if(response.data.description === 'not-authorized') 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; + } + + swal("Success!", "Your album was renamed to: " + inputValue, "success"); + panel.getAlbumsSidebar(); + panel.getAlbums(); + return; + + }) + .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); + }); + + }); + +} + +panel.deleteAlbum = function(id){ + swal({ + title: "Are you sure?", + text: "This won't delete your files, only the album!", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#ff3860", + confirmButtonText: "Yes, delete it!", + closeOnConfirm: false + }, + function(){ + + axios.post('/api/albums/delete', { + id: id + }) + .then(function (response) { + + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } + + swal("Deleted!", "Your album has been deleted.", "success"); + panel.getAlbumsSidebar(); + panel.getAlbums(); + return; + + }) + .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); + }); + + } + ); } @@ -191,36 +331,36 @@ panel.submitAlbum = function(){ axios.post('/api/albums', { name: document.getElementById('albumName').value }) - .then(function (response) { + .then(function (response) { - if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); - else return swal("An error ocurred", response.data.description, "error"); - } + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } - swal("Woohoo!", "Album was added successfully", "success"); + swal("Woohoo!", "Album was added successfully", "success"); panel.getAlbumsSidebar(); panel.getAlbums(); return; - }) - .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); - }); + }) + .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); + }); } 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); - else return swal("An error ocurred", response.data.description, "error"); - } + .then(function (response) { + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } - var albumsContainer = document.getElementById('albumsContainer'); + var albumsContainer = document.getElementById('albumsContainer'); albumsContainer.innerHTML = ''; if(response.data.albums === undefined) return; @@ -241,11 +381,11 @@ panel.getAlbumsSidebar = function(){ } - }) - .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); - }); + }) + .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); + }); } @@ -256,28 +396,28 @@ panel.getAlbum = function(item){ 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); - else return swal("An error ocurred", response.data.description, "error"); - } + .then(function (response) { + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } - panel.page.innerHTML = ''; - var container = document.createElement('div'); + panel.page.innerHTML = ''; + 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> + <input id="clientToken" class="input is-expanded" type="text" placeholder="Your client token"> + <a id="submitClientToken" class="button is-primary">Save</a> </p> <label class="label">Admin 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="adminToken" class="input is-expanded" type="text" placeholder="Your admin token"> + <a id="submitAdminToken" class="button is-primary">Save</a> </p> `; @@ -295,11 +435,11 @@ panel.changeTokens = function(){ }); - }) - .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); - }); + }) + .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); + }); } @@ -309,14 +449,14 @@ panel.submitToken = function(type, token){ type: type, token: token }) - .then(function (response) { + .then(function (response) { - if(response.data.success === false){ - if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); - else return swal("An error ocurred", response.data.description, "error"); - } + if(response.data.success === false){ + if(response.data.description === 'not-authorized') return panel.verifyToken(panel.token); + else return swal("An error ocurred", response.data.description, "error"); + } - swal({ + swal({ title: "Woohoo!", text: 'Your token was changed successfully.', type: "success" @@ -331,11 +471,11 @@ panel.submitToken = function(type, token){ }) - }) - .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); - }); + }) + .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); + }); } |