mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-10-26 07:46:35 +01:00
1831 lines
53 KiB
JavaScript
1831 lines
53 KiB
JavaScript
|
|
function getCookie(name) {
|
||
|
|
var cookieValue = null;
|
||
|
|
if (document.cookie && document.cookie !== '') {
|
||
|
|
var cookies = document.cookie.split(';');
|
||
|
|
for (var i = 0; i < cookies.length; i++) {
|
||
|
|
var cookie = jQuery.trim(cookies[i]);
|
||
|
|
// Does this cookie string begin with the name we want?
|
||
|
|
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
||
|
|
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return cookieValue;
|
||
|
|
}
|
||
|
|
|
||
|
|
var fileManager = angular.module('fileManager', ['angularFileUpload']);
|
||
|
|
|
||
|
|
fileManager.config(['$interpolateProvider', function ($interpolateProvider) {
|
||
|
|
$interpolateProvider.startSymbol('{$');
|
||
|
|
$interpolateProvider.endSymbol('$}');
|
||
|
|
}]);
|
||
|
|
|
||
|
|
|
||
|
|
fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader, $window) {
|
||
|
|
|
||
|
|
$('form').submit(function (e) {
|
||
|
|
e.preventDefault();
|
||
|
|
});
|
||
|
|
|
||
|
|
$(document.body).click(function () {
|
||
|
|
rightClickNode.style.display = "none";
|
||
|
|
});
|
||
|
|
|
||
|
|
var editor = ace.edit("htmlEditorContent");
|
||
|
|
var aceEditorMode = '';
|
||
|
|
|
||
|
|
var domainName = $("#domainNameInitial").text();
|
||
|
|
var domainRandomSeed = "";
|
||
|
|
|
||
|
|
$scope.currentRPath = "/";
|
||
|
|
var homeRPathBack = "/";
|
||
|
|
|
||
|
|
|
||
|
|
var homePathBack = "/home/" + domainName;
|
||
|
|
$scope.currentPath = "/home/" + domainName;
|
||
|
|
$scope.startingPath = domainName;
|
||
|
|
$scope.completeStartingPath = "/home/" + domainName;
|
||
|
|
var trashPath = homePathBack + '/.trash'
|
||
|
|
|
||
|
|
$scope.editDisable = true;
|
||
|
|
// disable loading image on tree loading
|
||
|
|
$scope.treeLoading = true;
|
||
|
|
// html editor
|
||
|
|
$scope.errorMessageEditor = true;
|
||
|
|
$scope.htmlEditorLoading = true;
|
||
|
|
$scope.saveSuccess = true;
|
||
|
|
var allFilesAndFolders = [];
|
||
|
|
|
||
|
|
$scope.showUploadBox = function () {
|
||
|
|
$('#uploadBox').modal('show');
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.showHTMLEditorModal = function () {
|
||
|
|
$scope.htmlEditorLoading = false;
|
||
|
|
$scope.errorMessageEditor = true;
|
||
|
|
$('#showHTMLEditor').modal('show');
|
||
|
|
$scope.fileInEditor = allFilesAndFolders[0];
|
||
|
|
$scope.getFileContents();
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
// tree
|
||
|
|
|
||
|
|
$scope.fetchChilds = function (element, completePath, functionName) {
|
||
|
|
|
||
|
|
// start loading tree
|
||
|
|
$scope.treeLoading = false;
|
||
|
|
|
||
|
|
var funcCompletePath = "";
|
||
|
|
var nodeForChilds = "";
|
||
|
|
|
||
|
|
if (functionName === "primary") {
|
||
|
|
nodeForChilds = element.currentTarget.parentNode;
|
||
|
|
funcCompletePath = completePath;
|
||
|
|
} else {
|
||
|
|
nodeForChilds = element.parentNode;
|
||
|
|
funcCompletePath = completePath;
|
||
|
|
}
|
||
|
|
url = '/filemanager/controller';
|
||
|
|
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
completeStartingPath: completePath,
|
||
|
|
method: "list",
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.treeLoading = true;
|
||
|
|
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
|
||
|
|
/// node prepration
|
||
|
|
|
||
|
|
var ulNode = prepareChildNodeUL();
|
||
|
|
nodeForChilds.appendChild(ulNode);
|
||
|
|
|
||
|
|
var filesData = response.data;
|
||
|
|
|
||
|
|
var keys = Object.keys(filesData);
|
||
|
|
|
||
|
|
for (var i = 0; i < keys.length; i++) {
|
||
|
|
if (keys[i] === "error_message" | keys[i] === "status") {
|
||
|
|
continue;
|
||
|
|
} else {
|
||
|
|
path = filesData[keys[i]][0];
|
||
|
|
completePath = filesData[keys[i]][1];
|
||
|
|
dropDown = filesData[keys[i]][2];
|
||
|
|
finalPrepration(ulNode, path, completePath, dropDown);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
activateMinus(nodeForChilds, funcCompletePath);
|
||
|
|
} else {
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
function finalPrepration(parentNode, path, completePath, dropDown) {
|
||
|
|
parentNode.appendChild(prepareChildNodeLI(path, completePath, dropDown));
|
||
|
|
}
|
||
|
|
|
||
|
|
function prepareChildNodeLI(path, completePath, dropDown) {
|
||
|
|
|
||
|
|
// text nodes are created
|
||
|
|
var spaceNode = document.createTextNode(" ");
|
||
|
|
var pathNode = document.createTextNode(" " + path);
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var attachFunc = function () {
|
||
|
|
$scope.fetchChilds(aNode, completePath, "secondary");
|
||
|
|
};
|
||
|
|
|
||
|
|
var aNode = document.createElement('a');
|
||
|
|
aNode.setAttribute('href', '#');
|
||
|
|
aNode.addEventListener("click", attachFunc);
|
||
|
|
aNode.setAttribute('onclick', 'return false;');
|
||
|
|
|
||
|
|
var secondANode = document.createElement('a');
|
||
|
|
secondANode.setAttribute('href', '#');
|
||
|
|
secondANode.setAttribute('onclick', 'return false;');
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var iNodePlus = document.createElement('i');
|
||
|
|
iNodePlus.setAttribute('class', 'fa fa-plus');
|
||
|
|
iNodePlus.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodePlus.style.color = "#007bff";
|
||
|
|
|
||
|
|
var iNodeFolder = document.createElement('i');
|
||
|
|
iNodeFolder.setAttribute('class', 'fa fa-folder');
|
||
|
|
iNodeFolder.setAttribute('aria-hidden', 'true');
|
||
|
|
|
||
|
|
var iNodeFile = document.createElement('i');
|
||
|
|
iNodeFile.setAttribute('class', 'fa fa-file');
|
||
|
|
iNodeFile.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodeFile.style.color = "#007bff";
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var liNode = document.createElement('li');
|
||
|
|
liNode.setAttribute('class', 'list-group-item');
|
||
|
|
liNode.style.border = "None";
|
||
|
|
|
||
|
|
// node preparation
|
||
|
|
|
||
|
|
if (dropDown == true) {
|
||
|
|
secondANode.appendChild(iNodeFolder);
|
||
|
|
secondANode.appendChild(pathNode);
|
||
|
|
secondANode.addEventListener("click", function () {
|
||
|
|
$scope.fetchForTableSecondary(secondANode, "fromTree", completePath);
|
||
|
|
});
|
||
|
|
|
||
|
|
// This makes completion of <a href="#"><i class="fa fa-folder" aria-hidden="true"></i> {{ startingPath }} </a>
|
||
|
|
|
||
|
|
|
||
|
|
aNode.appendChild(spaceNode);
|
||
|
|
aNode.appendChild(iNodePlus);
|
||
|
|
aNode.appendChild(spaceNode);
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
liNode.appendChild(aNode);
|
||
|
|
liNode.appendChild(secondANode);
|
||
|
|
|
||
|
|
return liNode;
|
||
|
|
} else {
|
||
|
|
liNode.appendChild(iNodeFile);
|
||
|
|
liNode.appendChild(pathNode);
|
||
|
|
return liNode;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function prepareChildNodeUL() {
|
||
|
|
|
||
|
|
// text nodes are created
|
||
|
|
var ulNode = document.createElement('ul');
|
||
|
|
ulNode.setAttribute('class', 'list-group list-group-flush');
|
||
|
|
return ulNode;
|
||
|
|
}
|
||
|
|
|
||
|
|
function activateMinus(node, completePath) {
|
||
|
|
|
||
|
|
var collectionOfA = node.getElementsByTagName("a");
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var aNode = document.createElement('a');
|
||
|
|
aNode.setAttribute('href', '#');
|
||
|
|
aNode.addEventListener("click", function () {
|
||
|
|
deleteChilds(aNode, completePath);
|
||
|
|
});
|
||
|
|
aNode.setAttribute('onclick', 'return false;');
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var spaceNode = document.createTextNode(" ");
|
||
|
|
|
||
|
|
var iNodeMinus = document.createElement('i');
|
||
|
|
iNodeMinus.setAttribute('class', 'fa fa-minus');
|
||
|
|
iNodeMinus.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodeMinus.style.color = "#007bff";
|
||
|
|
|
||
|
|
// prepare node
|
||
|
|
|
||
|
|
aNode.appendChild(iNodeMinus);
|
||
|
|
aNode.appendChild(spaceNode);
|
||
|
|
|
||
|
|
node.insertBefore(aNode, collectionOfA[1]);
|
||
|
|
node.removeChild(collectionOfA[0]);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function deleteChilds(aNode, completePath) {
|
||
|
|
|
||
|
|
parent = aNode.parentNode;
|
||
|
|
|
||
|
|
var collectionOfUL = parent.getElementsByTagName("ul");
|
||
|
|
parent.removeChild(collectionOfUL[0]);
|
||
|
|
|
||
|
|
|
||
|
|
var collectionOfA = parent.getElementsByTagName("a");
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var newANode = document.createElement('a');
|
||
|
|
newANode.setAttribute('href', '#');
|
||
|
|
newANode.addEventListener("click", function () {
|
||
|
|
$scope.fetchChilds(newANode, completePath, "secondary");
|
||
|
|
});
|
||
|
|
newANode.setAttribute('onclick', 'return false;');
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var spaceNode = document.createTextNode(" ");
|
||
|
|
|
||
|
|
var iNodePlus = document.createElement('i');
|
||
|
|
iNodePlus.setAttribute('class', 'fa fa-plus');
|
||
|
|
iNodePlus.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodePlus.style.color = "#007bff";
|
||
|
|
|
||
|
|
// prepare node
|
||
|
|
|
||
|
|
newANode.appendChild(iNodePlus);
|
||
|
|
newANode.appendChild(spaceNode);
|
||
|
|
|
||
|
|
parent.insertBefore(newANode, collectionOfA[1]);
|
||
|
|
parent.removeChild(collectionOfA[0]);
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// tree ends
|
||
|
|
|
||
|
|
|
||
|
|
$scope.selectAll = function () {
|
||
|
|
|
||
|
|
var tableBody = document.getElementById("tableBodyFiles");
|
||
|
|
var getFileName = tableBody.firstChild.firstChild.innerHTML;
|
||
|
|
allFilesAndFolders = [];
|
||
|
|
|
||
|
|
var collectionOfA = tableBody.getElementsByTagName("tr");
|
||
|
|
|
||
|
|
for (var i = 0; i < collectionOfA.length; i++) {
|
||
|
|
collectionOfA[i].style.background = "#ccdbe8";
|
||
|
|
var getFileName = collectionOfA[i].getElementsByTagName('td')[0].innerHTML;
|
||
|
|
allFilesAndFolders.push(getFileName);
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.buttonActivator();
|
||
|
|
|
||
|
|
};
|
||
|
|
$scope.unSelectAll = function () {
|
||
|
|
|
||
|
|
var tableBody = document.getElementById("tableBodyFiles");
|
||
|
|
var getFileName = tableBody.firstChild.firstChild.innerHTML;
|
||
|
|
allFilesAndFolders = [];
|
||
|
|
|
||
|
|
var collectionOfA = tableBody.getElementsByTagName("tr");
|
||
|
|
|
||
|
|
for (var i = 0; i < collectionOfA.length; i++) {
|
||
|
|
collectionOfA[i].style.background = "None";
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.buttonActivator();
|
||
|
|
};
|
||
|
|
|
||
|
|
function addFileOrFolderToList(nodeName) {
|
||
|
|
|
||
|
|
var rightClickNode = document.getElementById("rightClick")
|
||
|
|
|
||
|
|
var check = 1;
|
||
|
|
var getFileName = nodeName.getElementsByTagName('td')[0].innerHTML;
|
||
|
|
|
||
|
|
if (nodeName.style.backgroundColor === "rgb(204, 219, 232)") {
|
||
|
|
|
||
|
|
var tempArray = [];
|
||
|
|
nodeName.style.background = "None";
|
||
|
|
|
||
|
|
for (var j = 0; j < allFilesAndFolders.length; j++) {
|
||
|
|
if (allFilesAndFolders[j] != getFileName) {
|
||
|
|
tempArray.push(allFilesAndFolders[j]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
allFilesAndFolders = tempArray;
|
||
|
|
// activating deactivating functions
|
||
|
|
$scope.buttonActivator();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
nodeName.style.background = "#ccdbe8";
|
||
|
|
|
||
|
|
|
||
|
|
for (var j = 0; j < allFilesAndFolders.length; j++) {
|
||
|
|
if (allFilesAndFolders[j] === getFileName) {
|
||
|
|
check = 0;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (check === 1) {
|
||
|
|
allFilesAndFolders.push(getFileName);
|
||
|
|
}
|
||
|
|
|
||
|
|
// activating deactivating functions
|
||
|
|
$scope.buttonActivator();
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function createTR(fileName, fileSize, lastModified, permissions, dirCheck) {
|
||
|
|
|
||
|
|
// text nodes are created
|
||
|
|
var fileNameNode = document.createTextNode(fileName);
|
||
|
|
var fileSizeNode = document.createTextNode(fileSize);
|
||
|
|
var lastModifiedNode = document.createTextNode(lastModified);
|
||
|
|
var permissionsNode = document.createTextNode(permissions);
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var iNodeFolder = document.createElement('i');
|
||
|
|
iNodeFolder.setAttribute('class', 'fa fa-folder');
|
||
|
|
iNodeFolder.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodeFolder.style.color = "#007bff";
|
||
|
|
|
||
|
|
var iNodeFile = document.createElement('i');
|
||
|
|
iNodeFile.setAttribute('class', 'fa fa-file');
|
||
|
|
iNodeFile.setAttribute('aria-hidden', 'true');
|
||
|
|
iNodeFile.style.color = "#007bff";
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var firstTDNode = document.createElement('td');
|
||
|
|
var secondTDNode = document.createElement('td');
|
||
|
|
var thirdTDNode = document.createElement('td');
|
||
|
|
var forthTDNode = document.createElement('td');
|
||
|
|
var fifthTDNode = document.createElement('td');
|
||
|
|
|
||
|
|
fifthTDNode.style.display = "none";
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
|
||
|
|
var thNode = document.createElement('th');
|
||
|
|
thNode.setAttribute('scope', 'row');
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
var trNode = document.createElement('tr');
|
||
|
|
|
||
|
|
// node preparation
|
||
|
|
|
||
|
|
firstTDNode.appendChild(fileNameNode);
|
||
|
|
secondTDNode.appendChild(fileSizeNode);
|
||
|
|
thirdTDNode.appendChild(lastModifiedNode);
|
||
|
|
forthTDNode.appendChild(permissionsNode);
|
||
|
|
|
||
|
|
if (dirCheck == true) {
|
||
|
|
thNode.appendChild(iNodeFolder);
|
||
|
|
trNode.appendChild(thNode);
|
||
|
|
trNode.addEventListener("dblclick", function () {
|
||
|
|
$scope.fetchForTableSecondary(firstTDNode, "doubleClick");
|
||
|
|
});
|
||
|
|
trNode.addEventListener("click", function () {
|
||
|
|
addFileOrFolderToList(trNode);
|
||
|
|
});
|
||
|
|
trNode.addEventListener("contextmenu", function (event) {
|
||
|
|
$scope.rightClickCallBack(event, trNode);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Hidden td to represent file or folder
|
||
|
|
|
||
|
|
var fileOrFolderNode = document.createTextNode("Folder");
|
||
|
|
fifthTDNode.appendChild(fileOrFolderNode)
|
||
|
|
} else {
|
||
|
|
thNode.appendChild(iNodeFile);
|
||
|
|
trNode.appendChild(thNode);
|
||
|
|
trNode.addEventListener("click", function () {
|
||
|
|
addFileOrFolderToList(trNode);
|
||
|
|
});
|
||
|
|
trNode.addEventListener("contextmenu", function (event) {
|
||
|
|
$scope.rightClickCallBack(event, trNode);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Hidden td to represent file or folder
|
||
|
|
|
||
|
|
var fileOrFolderNode = document.createTextNode("File");
|
||
|
|
fifthTDNode.appendChild(fileOrFolderNode)
|
||
|
|
}
|
||
|
|
|
||
|
|
trNode.appendChild(firstTDNode);
|
||
|
|
trNode.appendChild(secondTDNode);
|
||
|
|
trNode.appendChild(thirdTDNode);
|
||
|
|
trNode.appendChild(forthTDNode);
|
||
|
|
trNode.appendChild(fifthTDNode);
|
||
|
|
|
||
|
|
return trNode;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Button Activator
|
||
|
|
|
||
|
|
$scope.buttonActivator = function () {
|
||
|
|
|
||
|
|
// for restore button
|
||
|
|
if ($scope.currentPath === trashPath) {
|
||
|
|
var restoreBTN = document.getElementById("restoreRight");
|
||
|
|
restoreBTN.style.display = "block";
|
||
|
|
} else {
|
||
|
|
var restoreBTN = document.getElementById("restoreRight");
|
||
|
|
restoreBTN.style.display = "none";
|
||
|
|
}
|
||
|
|
// for edit button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length === 1) {
|
||
|
|
var editNode = document.getElementById("editFile");
|
||
|
|
editNode.style.pointerEvents = "auto";
|
||
|
|
|
||
|
|
var editNotRight = document.getElementById("editOnRight");
|
||
|
|
|
||
|
|
var result = findFileExtension(allFilesAndFolders[0]);
|
||
|
|
|
||
|
|
if (result !== undefined) {
|
||
|
|
if (result[0] === "js") {
|
||
|
|
aceEditorMode = "ace/mode/javascript";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "html") {
|
||
|
|
aceEditorMode = "ace/mode/html";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "css") {
|
||
|
|
aceEditorMode = "ace/mode/css";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "php") {
|
||
|
|
aceEditorMode = "ace/mode/php";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "py") {
|
||
|
|
aceEditorMode = "ace/mode/python";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "txt") {
|
||
|
|
aceEditorMode = "";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "htaccess") {
|
||
|
|
aceEditorMode = "";
|
||
|
|
editNotRight.style.display = "Block";
|
||
|
|
} else {
|
||
|
|
var editNode = document.getElementById("editFile");
|
||
|
|
editNode.style.pointerEvents = "none";
|
||
|
|
editNotRight.style.display = "None";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var editNode = document.getElementById("editFile");
|
||
|
|
editNode.style.pointerEvents = "none";
|
||
|
|
editNotRight.style.display = "None";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var editNode = document.getElementById("editFile");
|
||
|
|
editNode.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
// extraction button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length === 1) {
|
||
|
|
var extractFileNode = document.getElementById("extractFile");
|
||
|
|
extractFileNode.style.pointerEvents = "auto";
|
||
|
|
|
||
|
|
var extractNodeRight = document.getElementById("extractOnRight");
|
||
|
|
|
||
|
|
var result = findFileExtension(allFilesAndFolders[0]);
|
||
|
|
|
||
|
|
if (result !== undefined) {
|
||
|
|
if (result[0] === "gz") {
|
||
|
|
extractFileNode.style.pointerEvents = "auto";
|
||
|
|
extractNodeRight.style.display = "Block";
|
||
|
|
} else if (result[0] === "zip") {
|
||
|
|
extractFileNode.style.pointerEvents = "auto";
|
||
|
|
extractNodeRight.style.display = "Block";
|
||
|
|
} else {
|
||
|
|
extractFileNode.style.pointerEvents = "none";
|
||
|
|
extractNodeRight.style.display = "None";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
extractFileNode.style.pointerEvents = "none";
|
||
|
|
extractNodeRight.style.display = "None";
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var extractFileNode = document.getElementById("extractFile");
|
||
|
|
extractFileNode.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// move button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length >= 1) {
|
||
|
|
|
||
|
|
var moveFileNode = document.getElementById("moveFile");
|
||
|
|
moveFileNode.style.pointerEvents = "auto";
|
||
|
|
} else {
|
||
|
|
var moveFileNode = document.getElementById("moveFile");
|
||
|
|
moveFileNode.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
//copy button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length >= 1) {
|
||
|
|
|
||
|
|
var copeFileNode = document.getElementById("copyFile");
|
||
|
|
copeFileNode.style.pointerEvents = "auto";
|
||
|
|
} else {
|
||
|
|
var copeFileNode = document.getElementById("copyFile");
|
||
|
|
copeFileNode.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// rename button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length === 1) {
|
||
|
|
|
||
|
|
var renameFileNode = document.getElementById("renameFile");
|
||
|
|
renameFileNode.style.pointerEvents = "auto";
|
||
|
|
} else {
|
||
|
|
var renameFileNode = document.getElementById("renameFile");
|
||
|
|
renameFileNode.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// compress button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length >= 1) {
|
||
|
|
var compressFile = document.getElementById("compressFile");
|
||
|
|
compressFile.style.pointerEvents = "auto";
|
||
|
|
} else {
|
||
|
|
var compressFile = document.getElementById("compressFile");
|
||
|
|
compressFile.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// move button
|
||
|
|
|
||
|
|
if (allFilesAndFolders.length >= 1) {
|
||
|
|
|
||
|
|
var deleteFile = document.getElementById("deleteFile");
|
||
|
|
deleteFile.style.pointerEvents = "auto";
|
||
|
|
} else {
|
||
|
|
var deleteFile = document.getElementById("deleteFile");
|
||
|
|
deleteFile.style.pointerEvents = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
};
|
||
|
|
$scope.buttonActivator();
|
||
|
|
|
||
|
|
// table functions
|
||
|
|
|
||
|
|
|
||
|
|
$scope.fetchForTableSecondary = function (node, functionName) {
|
||
|
|
|
||
|
|
allFilesAndFolders = [];
|
||
|
|
$scope.buttonActivator();
|
||
|
|
url = "/filemanager/controller";
|
||
|
|
var completePathToFile = "";
|
||
|
|
|
||
|
|
if (domainName === "") {
|
||
|
|
|
||
|
|
if (functionName === "startPoint") {
|
||
|
|
completePathToFile = $scope.currentRPath;
|
||
|
|
} else if (functionName === "doubleClick") {
|
||
|
|
|
||
|
|
completePathToFile = $scope.currentRPath + "/" + node.innerHTML;
|
||
|
|
} else if (functionName === "homeFetch") {
|
||
|
|
completePathToFile = homeRPathBack;
|
||
|
|
} else if (functionName === "goBackOnPath") {
|
||
|
|
var pos = $scope.currentRPath.lastIndexOf("/");
|
||
|
|
completePathToFile = $scope.currentRPath.slice(0, pos);
|
||
|
|
} else if (functionName === "refresh") {
|
||
|
|
completePathToFile = $scope.currentRPath;
|
||
|
|
var rightClickNode = document.getElementById("rightClick");
|
||
|
|
} else if (functionName === "fromTree") {
|
||
|
|
completePathToFile = arguments[2];
|
||
|
|
}
|
||
|
|
$scope.currentRPath = completePathToFile;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
if (functionName === "startPoint") {
|
||
|
|
completePathToFile = $scope.currentPath;
|
||
|
|
} else if (functionName === "doubleClick") {
|
||
|
|
completePathToFile = $scope.currentPath + "/" + node.innerHTML;
|
||
|
|
} else if (functionName === "homeFetch") {
|
||
|
|
completePathToFile = homePathBack;
|
||
|
|
} else if (functionName === "goBackOnPath") {
|
||
|
|
var pos = $scope.currentPath.lastIndexOf("/");
|
||
|
|
completePathToFile = $scope.currentPath.slice(0, pos);
|
||
|
|
} else if (functionName === "refresh") {
|
||
|
|
completePathToFile = $scope.currentPath;
|
||
|
|
var rightClickNode = document.getElementById("rightClick");
|
||
|
|
} else if (functionName === "fromTree") {
|
||
|
|
completePathToFile = arguments[2];
|
||
|
|
}
|
||
|
|
$scope.currentPath = completePathToFile;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
completeStartingPath: completePathToFile,
|
||
|
|
method: "listForTable",
|
||
|
|
home: "/",
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
var tableBody = document.getElementById("tableBodyFiles");
|
||
|
|
var loadingPath = "/static/filemanager/images/loading.gif";
|
||
|
|
tableBody.innerHTML = '<img src="' + loadingPath + '">';
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
tableBody.innerHTML = '';
|
||
|
|
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
|
||
|
|
|
||
|
|
/// node prepration
|
||
|
|
|
||
|
|
var filesData = response.data;
|
||
|
|
|
||
|
|
var keys = Object.keys(filesData);
|
||
|
|
|
||
|
|
for (var i = 0; i < keys.length; i++) {
|
||
|
|
if (keys[i] === "error_message" | keys[i] === "status") {
|
||
|
|
continue;
|
||
|
|
} else {
|
||
|
|
var fileName = filesData[keys[i]][0];
|
||
|
|
var lastModified = filesData[keys[i]][2];
|
||
|
|
var fileSize = filesData[keys[i]][3];
|
||
|
|
var permissions = filesData[keys[i]][4];
|
||
|
|
var dirCheck = filesData[keys[i]][5];
|
||
|
|
console.log(fileName);
|
||
|
|
if (fileName === "..filemanagerkey") {
|
||
|
|
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
tableBody.appendChild(createTR(fileName, fileSize, lastModified, permissions, dirCheck));
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 10, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'homeFetch');
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
function findFileExtension(fileName) {
|
||
|
|
return (/[.]/.exec(fileName)) ? /[^.]+$/.exec(fileName) : undefined;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.fetchForTableSecondary(null, "startPoint");
|
||
|
|
|
||
|
|
// html editor
|
||
|
|
|
||
|
|
$scope.getFileContents = function () {
|
||
|
|
|
||
|
|
var completePathForFile = $scope.currentPath + "/" + allFilesAndFolders[0];
|
||
|
|
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
fileName: completePathForFile,
|
||
|
|
method: "readFileContents",
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.htmlEditorLoading = true;
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
|
||
|
|
var editor = ace.edit("htmlEditorContent");
|
||
|
|
editor.setTheme("ace/theme/chrome");
|
||
|
|
editor.getSession().setMode(aceEditorMode);
|
||
|
|
editor.setValue(response.data.fileContents);
|
||
|
|
|
||
|
|
} else {
|
||
|
|
$scope.errorMessageEditor = false;
|
||
|
|
$scope.error_message = response.data.error_message;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.putFileContents = function () {
|
||
|
|
|
||
|
|
$scope.htmlEditorLoading = false;
|
||
|
|
$scope.saveSuccess = true;
|
||
|
|
$scope.errorMessageEditor = true;
|
||
|
|
|
||
|
|
var completePathForFile = $scope.currentPath + "/" + allFilesAndFolders[0];
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
fileName: completePathForFile,
|
||
|
|
method: "writeFileContents",
|
||
|
|
fileContent: editor.getValue(),
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.htmlEditorLoading = true;
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
$scope.htmlEditorLoading = true;
|
||
|
|
$scope.saveSuccess = false;
|
||
|
|
} else {
|
||
|
|
$scope.errorMessageEditor = false;
|
||
|
|
$scope.error_message = response.data.error_message;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
/// code mirror open
|
||
|
|
|
||
|
|
$scope.editWithCodeMirror = function () {
|
||
|
|
var completePathForFile = $scope.currentPath + "/" + allFilesAndFolders[0];
|
||
|
|
var finalURL = 'https://' + window.location.hostname + ':' + window.location.port + '/filemanager/editFile?domainName=' + domainName + '&fileName=' + completePathForFile;
|
||
|
|
window.open(finalURL);
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
// uploads
|
||
|
|
|
||
|
|
$scope.errorMessage = true;
|
||
|
|
var uploader;
|
||
|
|
if (domainName == "") {
|
||
|
|
uploader = $scope.uploader = new FileUploader({
|
||
|
|
url: "/filemanager/upload",
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken') // X-CSRF-TOKEN is used for Ruby on Rails Tokens
|
||
|
|
},
|
||
|
|
formData: [{
|
||
|
|
"method": "upload",
|
||
|
|
"home": homeRPathBack
|
||
|
|
}]
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
uploader = $scope.uploader = new FileUploader({
|
||
|
|
url: "/filemanager/upload",
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken') // X-CSRF-TOKEN is used for Ruby on Rails Tokens
|
||
|
|
},
|
||
|
|
formData: [{
|
||
|
|
"method": "upload",
|
||
|
|
"home": homePathBack
|
||
|
|
}]
|
||
|
|
});
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
uploader.onCompleteItem = function (fileItem, response, status, headers) {
|
||
|
|
if (response.uploadStatus === 1) {
|
||
|
|
$scope.errorMessage = true;
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
$scope.errorMessage = false;
|
||
|
|
$scope.fileName = response.fileName;
|
||
|
|
$scope.error_message = response.error_message;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
uploader.onAfterAddingFile = function (fileItem) {
|
||
|
|
var basepath;
|
||
|
|
if (domainName == "") {
|
||
|
|
basepath = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
basepath = $scope.currentPath
|
||
|
|
}
|
||
|
|
$scope.errorMessage = true;
|
||
|
|
fileItem.formData.push(
|
||
|
|
{
|
||
|
|
"completePath": basepath,
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
|
||
|
|
});
|
||
|
|
};
|
||
|
|
|
||
|
|
// folder functions
|
||
|
|
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFolder = true;
|
||
|
|
|
||
|
|
//
|
||
|
|
$scope.showCreateFolderModal = function () {
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFolder = true;
|
||
|
|
$scope.newFolderName = "";
|
||
|
|
$('#showCreateFolder').modal('show');
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.createFolderEnter = function ($event) {
|
||
|
|
var keyCode = $event.which || $event.keyCode;
|
||
|
|
if (keyCode === 13) {
|
||
|
|
$scope.htmlEditorLoading = false;
|
||
|
|
$scope.createNewFolder();
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.createNewFolder = function () {
|
||
|
|
|
||
|
|
var completePathForFolder;
|
||
|
|
if (domainName === "") {
|
||
|
|
completePathForFolder = $scope.currentRPath + "/" + $scope.newFolderName;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
} else {
|
||
|
|
completePathForFolder = $scope.currentPath + "/" + $scope.newFolderName;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($scope.newFolderName.length === 0) {
|
||
|
|
$scope.errorMessageFolder = false;
|
||
|
|
$scope.error_message = "Please enter folder name!";
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
folderName: completePathForFolder,
|
||
|
|
method: "createNewFolder",
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
var url = '/filemanager/controller';
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
$scope.createSuccess = false;
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
$('#showCreateFolder').modal('hide');
|
||
|
|
} else {
|
||
|
|
$scope.errorMessageFolder = false;
|
||
|
|
$scope.error_message = response.data.error_message;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
|
||
|
|
$scope.showCreateFileModal = function () {
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
$scope.newFileName = "";
|
||
|
|
$('#showCreateFile').modal('show');
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.createFileEnter = function ($event) {
|
||
|
|
var keyCode = $event.which || $event.keyCode;
|
||
|
|
if (keyCode === 13) {
|
||
|
|
$scope.htmlEditorLoading = false;
|
||
|
|
$scope.createNewFile();
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.createNewFile = function () {
|
||
|
|
var completePathForFile;
|
||
|
|
if (domainName === "") {
|
||
|
|
completePathForFile = $scope.currentRPath + "/" + $scope.newFileName;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
} else {
|
||
|
|
completePathForFile = $scope.currentPath + "/" + $scope.newFileName;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
if ($scope.newFileName.length === 0) {
|
||
|
|
$scope.errorMessageFile = false;
|
||
|
|
$scope.error_message = "Please enter file name!";
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
fileName: completePathForFile,
|
||
|
|
method: "createNewFile",
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
$scope.createSuccess = false;
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
$('#showCreateFile').modal('hide');
|
||
|
|
} else {
|
||
|
|
$scope.errorMessageFile = false;
|
||
|
|
$scope.error_message = response.data.error_message;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFile = true;
|
||
|
|
|
||
|
|
//
|
||
|
|
|
||
|
|
$scope.deleteLoading = true;
|
||
|
|
|
||
|
|
$scope.showDeleteModal = function () {
|
||
|
|
$('#showDelete').modal('show');
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.deleteFolderOrFile = function () {
|
||
|
|
var pth;
|
||
|
|
var trash;
|
||
|
|
if (domainName === "") {
|
||
|
|
pth = $scope.currentRPath;
|
||
|
|
trash = true;
|
||
|
|
|
||
|
|
} else {
|
||
|
|
pth = $scope.currentPath;
|
||
|
|
trash = $scope.skipTrash
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.deleteLoading = false;
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
path: pth,
|
||
|
|
method: "deleteFolderOrFile",
|
||
|
|
fileAndFolders: allFilesAndFolders,
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName,
|
||
|
|
skipTrash: trash
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
$scope.deleteLoading = true;
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
$('#showDelete').modal('hide');
|
||
|
|
var notification = alertify.notify('Successfully Deleted!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify('Files/Folders can not be deleted', 'error', 5, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
// Compression
|
||
|
|
|
||
|
|
$scope.compressionLoading = true;
|
||
|
|
|
||
|
|
$scope.showCompressionModal = function () {
|
||
|
|
$('#showCompression').modal('show');
|
||
|
|
|
||
|
|
$scope.listOfFiles = "";
|
||
|
|
$scope.compressedFileName = "";
|
||
|
|
|
||
|
|
for (var i = 0; i < allFilesAndFolders.length; i++) {
|
||
|
|
$scope.listOfFiles = $scope.listOfFiles + allFilesAndFolders[i] + "\n";
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.startCompression = function () {
|
||
|
|
var basepathh;
|
||
|
|
if (domainName === "") {
|
||
|
|
basepathh = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
basepathh = $scope.currentPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$scope.compressionLoading = false;
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
home: homePathBack,
|
||
|
|
basePath: basepathh,
|
||
|
|
listOfFiles: allFilesAndFolders,
|
||
|
|
compressedFileName: $scope.compressedFileName,
|
||
|
|
compressionType: $scope.compressionType,
|
||
|
|
method: 'compress',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.compressionLoading = true;
|
||
|
|
$('#showCompression').modal('hide');
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Successfully Compressed!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
// extraction
|
||
|
|
|
||
|
|
$scope.extractionLoading = true;
|
||
|
|
|
||
|
|
$scope.showExtractionModal = function () {
|
||
|
|
$scope.extractionLocation = $scope.currentPath;
|
||
|
|
$('#showExtraction').modal('show');
|
||
|
|
$scope.fileToBeExtracted = allFilesAndFolders[0];
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.startExtraction = function () {
|
||
|
|
|
||
|
|
var pathbase;
|
||
|
|
if (domainName === "") {
|
||
|
|
pathbase = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
pathbase = $scope.currentPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
$scope.extractionLoading = false;
|
||
|
|
|
||
|
|
var completeFileToExtract = pathbase + "/" + allFilesAndFolders[0];
|
||
|
|
var extractionType = "";
|
||
|
|
|
||
|
|
if (findFileExtension(completeFileToExtract) == "gz") {
|
||
|
|
extractionType = "tar.gz";
|
||
|
|
} else {
|
||
|
|
extractionType = "zip";
|
||
|
|
}
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
home: homePathBack,
|
||
|
|
basePath: pathbase,
|
||
|
|
fileToExtract: completeFileToExtract,
|
||
|
|
extractionType: extractionType,
|
||
|
|
extractionLocation: $scope.extractionLocation,
|
||
|
|
method: 'extract',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.extractionLoading = true;
|
||
|
|
$('#showExtraction').modal('hide');
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Successfully Extracted!', 'success', 5, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 10, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
/// move
|
||
|
|
|
||
|
|
$scope.moveLoading = true;
|
||
|
|
|
||
|
|
$scope.showMoveModal = function () {
|
||
|
|
$('#showMove').modal('show');
|
||
|
|
$scope.pathToMoveTo = $scope.currentPath;
|
||
|
|
|
||
|
|
$scope.listOfFiles = "";
|
||
|
|
|
||
|
|
for (var i = 0; i < allFilesAndFolders.length; i++) {
|
||
|
|
$scope.listOfFiles = $scope.listOfFiles + allFilesAndFolders[i] + "\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.startMoving = function () {
|
||
|
|
|
||
|
|
var basepth;
|
||
|
|
if (domainName == "") {
|
||
|
|
basepth = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
basepth = $scope.currentPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.moveLoading = false;
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
home: homePathBack,
|
||
|
|
basePath: basepth,
|
||
|
|
newPath: $scope.pathToMoveTo,
|
||
|
|
fileAndFolders: allFilesAndFolders,
|
||
|
|
method: 'move',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.moveLoading = true;
|
||
|
|
$('#showMove').modal('hide');
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Successfully Moved!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
/// copy
|
||
|
|
|
||
|
|
$scope.copyLoading = true;
|
||
|
|
|
||
|
|
$scope.showCopyModal = function () {
|
||
|
|
$('#showCopy').modal('show');
|
||
|
|
$scope.pathToCopyTo = $scope.currentPath;
|
||
|
|
|
||
|
|
$scope.listOfFiles = "";
|
||
|
|
|
||
|
|
for (var i = 0; i < allFilesAndFolders.length; i++) {
|
||
|
|
$scope.listOfFiles = $scope.listOfFiles + allFilesAndFolders[i] + "\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$scope.startCopying = function () {
|
||
|
|
var basepath;
|
||
|
|
|
||
|
|
if (domainName == "") {
|
||
|
|
basepath = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
basepath = $scope.currentPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.copyLoading = false;
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
home: homePathBack,
|
||
|
|
basePath: basepath,
|
||
|
|
newPath: $scope.pathToCopyTo,
|
||
|
|
fileAndFolders: allFilesAndFolders,
|
||
|
|
method: 'copy',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
$scope.copyLoading = true;
|
||
|
|
|
||
|
|
$('#showCopy').modal('hide');
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Successfully Copied!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
// right click settings
|
||
|
|
|
||
|
|
var rightClickNode = document.getElementById("rightClick");
|
||
|
|
rightClickNode.style.display = "none";
|
||
|
|
|
||
|
|
$scope.rightClickCallBack = function (event, trNode) {
|
||
|
|
var rightClickNode = document.getElementById("rightClick")
|
||
|
|
rightClickNode.style.display = "block";
|
||
|
|
|
||
|
|
event.preventDefault();
|
||
|
|
$scope.unSelectAll();
|
||
|
|
|
||
|
|
$('#rightClick').css({
|
||
|
|
'top': event.pageY,
|
||
|
|
'left': event.pageX
|
||
|
|
});
|
||
|
|
|
||
|
|
// If we want to enable download for this node
|
||
|
|
|
||
|
|
var downloadOnRight = document.getElementById("downloadOnRight");
|
||
|
|
|
||
|
|
if (trNode.lastChild.innerHTML === "File") {
|
||
|
|
downloadOnRight.style.display = "Block";
|
||
|
|
} else {
|
||
|
|
downloadOnRight.style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
$scope.addFileOrFolderToListForRightClick(trNode);
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.addFileOrFolderToListForRightClick = function (nodeName) {
|
||
|
|
|
||
|
|
var check = 1;
|
||
|
|
var getFileName = nodeName.getElementsByTagName('td')[0].innerHTML;
|
||
|
|
|
||
|
|
if (nodeName.style.backgroundColor === "#ccdbe8") {
|
||
|
|
|
||
|
|
var tempArray = [];
|
||
|
|
nodeName.style.background = "None";
|
||
|
|
|
||
|
|
for (var j = 0; j < allFilesAndFolders.length; j++) {
|
||
|
|
if (allFilesAndFolders[j] != getFileName) {
|
||
|
|
tempArray.push(allFilesAndFolders[j]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
allFilesAndFolders = tempArray;
|
||
|
|
// activating deactivating functions
|
||
|
|
$scope.buttonActivator();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
nodeName.style.background = "#ccdbe8";
|
||
|
|
|
||
|
|
|
||
|
|
for (var j = 0; j < allFilesAndFolders.length; j++) {
|
||
|
|
if (allFilesAndFolders[j] === getFileName) {
|
||
|
|
check = 0;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (check === 1) {
|
||
|
|
allFilesAndFolders.push(getFileName);
|
||
|
|
}
|
||
|
|
|
||
|
|
// activating deactivating functions
|
||
|
|
$scope.buttonActivator();
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
// rename
|
||
|
|
|
||
|
|
|
||
|
|
$scope.renameLoading = true;
|
||
|
|
|
||
|
|
$scope.showRenameModal = function () {
|
||
|
|
$('#showRename').modal('show');
|
||
|
|
$scope.fileToRename = allFilesAndFolders[0];
|
||
|
|
$scope.newFileName = "";
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.renameEnter = function ($event) {
|
||
|
|
var keyCode = $event.which || $event.keyCode;
|
||
|
|
if (keyCode === 13) {
|
||
|
|
$scope.htmlEditorLoading = false;
|
||
|
|
$scope.renameFile();
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.renameFile = function () {
|
||
|
|
|
||
|
|
var bpath;
|
||
|
|
if (domainName === "") {
|
||
|
|
bpath = $scope.currentRPath;
|
||
|
|
} else {
|
||
|
|
bpath = $scope.currentPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scope.renameLoading = false;
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
basePath: bpath,
|
||
|
|
existingName: $scope.fileToRename,
|
||
|
|
newFileName: $scope.newFileName,
|
||
|
|
method: 'rename',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.moveLoading = true;
|
||
|
|
$('#showRename').modal('hide');
|
||
|
|
$scope.renameLoading = true;
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Successfully Renamed!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
// Fix permissions
|
||
|
|
|
||
|
|
$scope.fixPermissions = function () {
|
||
|
|
|
||
|
|
url = "/filemanager/changePermissions";
|
||
|
|
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
domainName: domainName,
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
|
||
|
|
if (response.data.permissionsChanged === 1) {
|
||
|
|
var notification = alertify.notify('Permissions successfully fixed!', 'success', 5, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
// Download files
|
||
|
|
|
||
|
|
$scope.downloadFile = function () {
|
||
|
|
url = "/filemanager/downloadFile";
|
||
|
|
var downloadURL = $scope.currentPath + "/" + allFilesAndFolders[0];
|
||
|
|
window.location.href = url + '?domainName=' + domainName + '&fileToDownload=' + downloadURL;
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.RootDownloadFile = function () {
|
||
|
|
url = "/filemanager/RootDownloadFile";
|
||
|
|
var downloadURL = $scope.currentPath + "/" + allFilesAndFolders[0];
|
||
|
|
window.location.href = url + '?fileToDownload=' + downloadURL;
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
// Change permissions
|
||
|
|
|
||
|
|
$scope.changePermissionsLoading = true;
|
||
|
|
|
||
|
|
$scope.userPermissions = 0;
|
||
|
|
$scope.groupPermissions = 0;
|
||
|
|
$scope.wordlPermissions = 0;
|
||
|
|
|
||
|
|
$scope.showPermissionsModal = function () {
|
||
|
|
$('#showPermissions').modal('show');
|
||
|
|
$scope.permissionsPath = allFilesAndFolders[0];
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.updateReadPermissions = function (value) {
|
||
|
|
|
||
|
|
switch (value) {
|
||
|
|
|
||
|
|
case 'userRead':
|
||
|
|
|
||
|
|
if ($scope.userRead === true) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions + 4;
|
||
|
|
} else {
|
||
|
|
if ($scope.userRead !== undefined) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions - 4;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'groupRead':
|
||
|
|
if ($scope.groupRead === true) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions + 4;
|
||
|
|
} else {
|
||
|
|
if ($scope.groupRead !== undefined) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions - 4;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'worldRead':
|
||
|
|
if ($scope.worldRead === true) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions + 4;
|
||
|
|
} else {
|
||
|
|
if ($scope.worldRead !== undefined) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions - 4;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.updateWritePermissions = function (value) {
|
||
|
|
|
||
|
|
switch (value) {
|
||
|
|
|
||
|
|
case 'userWrite':
|
||
|
|
|
||
|
|
if ($scope.userWrite === true) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions + 2;
|
||
|
|
} else {
|
||
|
|
if ($scope.userWrite !== undefined) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions - 2;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'groupWrite':
|
||
|
|
if ($scope.groupWrite === true) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions + 2;
|
||
|
|
} else {
|
||
|
|
if ($scope.groupWrite !== undefined) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions - 2;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'worldWrite':
|
||
|
|
if ($scope.worldWrite === true) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions + 2;
|
||
|
|
} else {
|
||
|
|
if ($scope.worldWrite !== undefined) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions - 2;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.updateExecutePermissions = function (value) {
|
||
|
|
|
||
|
|
switch (value) {
|
||
|
|
|
||
|
|
case 'userExecute':
|
||
|
|
|
||
|
|
if ($scope.userExecute === true) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions + 1;
|
||
|
|
} else {
|
||
|
|
if ($scope.userExecute !== undefined) {
|
||
|
|
$scope.userPermissions = $scope.userPermissions - 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'groupExecute':
|
||
|
|
if ($scope.groupExecute === true) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions + 1;
|
||
|
|
} else {
|
||
|
|
if ($scope.groupExecute !== undefined) {
|
||
|
|
$scope.groupPermissions = $scope.groupPermissions - 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
|
||
|
|
|
||
|
|
case 'worldExecute':
|
||
|
|
if ($scope.worldExecute === true) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions + 1;
|
||
|
|
} else {
|
||
|
|
if ($scope.worldExecute !== undefined) {
|
||
|
|
$scope.wordlPermissions = $scope.wordlPermissions - 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.changePermissionsRecursively = function () {
|
||
|
|
$scope.changePermissions(1);
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$scope.changePermissions = function (recursive) {
|
||
|
|
|
||
|
|
$scope.changePermissionsLoading = false;
|
||
|
|
var newPermissions = String($scope.userPermissions) + String($scope.groupPermissions) + String($scope.wordlPermissions);
|
||
|
|
|
||
|
|
var data = {
|
||
|
|
basePath: $scope.currentPath,
|
||
|
|
permissionsPath: $scope.permissionsPath,
|
||
|
|
method: 'changePermissions',
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
recursive: recursive,
|
||
|
|
newPermissions: newPermissions,
|
||
|
|
domainName: domainName
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
|
||
|
|
$scope.changePermissionsLoading = true;
|
||
|
|
$('#showPermissions').modal('hide');
|
||
|
|
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
var notification = alertify.notify('Permissions Successfully Changed!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify(response.data.error_message, 'error', 5, function () {
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
///
|
||
|
|
|
||
|
|
//
|
||
|
|
$scope.cyberPanelLoading = true;
|
||
|
|
$scope.showRestoreModal = function () {
|
||
|
|
$scope.createSuccess = true;
|
||
|
|
$scope.errorMessageFolder = true;
|
||
|
|
$scope.newFolderName = "";
|
||
|
|
$('#showRestore').modal('show');
|
||
|
|
};
|
||
|
|
|
||
|
|
$scope.restoreFinal = function () {
|
||
|
|
$scope.cyberPanelLoading = false;
|
||
|
|
var data = {
|
||
|
|
path: $scope.currentPath,
|
||
|
|
method: "restore",
|
||
|
|
fileAndFolders: allFilesAndFolders,
|
||
|
|
domainRandomSeed: domainRandomSeed,
|
||
|
|
domainName: domainName,
|
||
|
|
};
|
||
|
|
var config = {
|
||
|
|
headers: {
|
||
|
|
'X-CSRFToken': getCookie('csrftoken')
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||
|
|
|
||
|
|
function ListInitialDatas(response) {
|
||
|
|
$scope.cyberPanelLoading = true;
|
||
|
|
if (response.data.status === 1) {
|
||
|
|
$('#showRestore').modal('hide');
|
||
|
|
var notification = alertify.notify('Successfully restored to its original location!', 'success', 5, function () {
|
||
|
|
});
|
||
|
|
$scope.fetchForTableSecondary(null, 'refresh');
|
||
|
|
} else {
|
||
|
|
var notification = alertify.notify('Files/Folders can not be restored', 'error', 5, function () {
|
||
|
|
console.log('dismissed');
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function cantLoadInitialDatas(response) {
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
});
|