var folderHistory = false; var path = ''; var currentFolder = ''; var folderGoBack = []; var permissionModalHtml = null; var progressBar = 0; function init(folder) { loadFolder(folder); loadHistory(); } function loadHistory() { updateProgressBar(progressBar+5); let btnBack = $('#backbtn'); btnBack.prop('disabled','true'); $.ajax({ type: 'GET', url: '/api/drive/patharray?api_token=' + api_token, success: function (rawpath) { updateProgressBar(progressBar+30); var path = JSON.parse(rawpath); Object.keys(path).forEach(function (item) { var dir = path[item].dirname.split('/'); folderGoBack[path[item].basename] = dir[dir.length - 1]; }); folderHistory = true; updateProgressBar(progressBar+10); if(!currentFolder == '' || !currentFolder == 'root') { btnBack.removeAttr('disabled'); } updateProgressBar(progressBar+5); }, error: function () { if (folderHistory) { showNotification('error', 'Impossible de charger la hiérachie des dossiers', 'top', 'center') } } }); } function loadFolder(folder) { if (folder != undefined) { showLoader(); updateProgressBar(progressBar+5); $.ajax({ type: 'GET', url: '/api/drive/folders/'+folder+'?api_token=' + api_token, success: function (template) { // Load Explorer Content updateProgressBar(progressBar+30); $(".drive-explorer").html(template); currentFolder = folder; window.history.pushState("object or string", "Page Title", "/admin/drive/"+folder); updateProgressBar(progressBar+5); hideLoader(); $('.currentDir').attr('value',folder); if (folderHistory) { if((currentFolder == '' || currentFolder == 'root')) { $('#backbtn').prop('disabled','true'); } else { console.log('wtf'); console.log(folderGoBack); $('#backbtn').removeAttr('disabled'); } } updateProgressBar(progressBar+10); }, error: function () { showNotification('error', 'Impossible de charger le dossier '+folder, 'top', 'center') } }); } } function goBack() { loadFolder(folderGoBack[currentFolder]); } function showfile(file) { var fa = $('#fa-'+file); if(!fa.hasClass('fa-flip-vertical')) { $('#'+file).removeClass('d-none'); fa.addClass('fa-flip-vertical'); } else { $('#'+file).addClass('d-none'); fa.removeClass('fa-flip-vertical'); } } function showLoader() { $('#loader').fadeIn(200); } function hideLoader() { $('#loader').fadeOut(650); } function deleteFile(file, folder) { swal({ title: 'Êtes vous certain de vouloir supprimer le fichier ?', text: "Vous ne pourrez pas annuler cette action", type: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Oui', cancelButtonText: 'Non' }).then((result) => { if (result.value) { window.location.href = '/file/delete?f='+file+'&d='+folder } }) } function deleteFolder(folder) { swal({ title: 'Êtes vous certain de vouloir supprimer le dossier ?', text: "Vous ne pourrez pas annuler cette action", type: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'Oui', cancelButtonText: 'Non' }).then((result) => { if (result.value) { window.location.href = '/folder/delete?d='+folder } }) } function refreshFolder() { loadFolder(currentFolder); } function editPermission(folder,subject,id) { $('#permissionModal').on('hidden.bs.modal', function (e) { $('#permissionModalHtml').html(permissionModalHtml); }); $.ajax({ type: 'GET', url: '/api/drive/'+folder+'/permission/'+subject+'/'+id+'?api_token=' + api_token, success: function (modal) { permissionModalHtml = $('#permissionModalHtml').html(); $('#permissionModalHtml').html(modal); $('#permissionModal').modal('show'); }, error: function () { showNotification('error', 'Impossible de charger le dossier '+folder, 'top', 'center') } }); } function updateProgressBar(value) { progressBar = value; let bar = $('#progress-bar'); bar.css('width',value+"%"); if (progressBar >= 100) { $('.progress').fadeOut(1500); } else { $('.progress').fadeIn(650); } }