Files
c-cms-legacy/public/js/plugins/drive-explorer.js
George Frederick "Buzz" Beurling ae3be2b977 Permission update
2020-03-22 20:00:23 -04:00

183 lines
5.0 KiB
JavaScript
Vendored

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
{
$('#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);
}
}