File size: " . $file_size_mb . " MB"; + echo "
Modificated: " . $file_last_modified_formatted; + } + } + echo ""; +} + +?> \ No newline at end of file diff --git a/logic.js b/logic.js new file mode 100644 index 00000000..e4c73ae7 --- /dev/null +++ b/logic.js @@ -0,0 +1,190 @@ +const button = document.getElementById("menu-button"); +const searchBtn = document.getElementById('searchBtn') +const menu = document.getElementById("menu"); +const submitDeleteBtn = document.getElementById('submitDelete'); +const searchInput = document.getElementById('search-input'); +const fileToUpload = document.getElementById('fileToUpload'); +const submitUploadBtn = document.getElementById('submitUploadBtn') + +let currentFolder = 'root' + +button.addEventListener("click", function() { + menu.style.display = menu.style.display === "block" ? "none" : "block"; +}); + + +const folders = document.querySelectorAll(".folder"); +folders.forEach(folder => { + folder.addEventListener("click", function(e) { + const submenu = this.querySelector("ul"); + submenu.style.display = submenu.style.display === "block" ? "none" : "block"; + + currentFolder = e.target.getAttribute('path'); + }); +}); + + + + + +// New Modal +// Get the modal +const newmodal = document.getElementById("newModal"); + +// Get the button that opens the modal +const newBtn = document.getElementById("newBtn"); + + +// When the user clicks the button, open the modal +newBtn.onclick = function() { + newmodal.style.display = "block"; +} + + + +//Edit Modal + +// Get the modal +const editModal = document.querySelector(".editModal"); + +// Get the button that opens the modal +const editBtn = document.querySelectorAll(".editBtn"); + +const cancelBtn = document.querySelectorAll(".cancel"); +cancelBtn.forEach(item => { + item.addEventListener("click", cancel); + +}) + +function cancel(e) { + editModal.style.display = "none"; + + +} + +// When the user clicks the button, open the modal +editBtn.forEach(item => { + item.addEventListener("click", changeName); + +}) + +// Edit + +function changeName (event) { + editModal.style.display = "block"; + const actualPathFile = document.getElementById("actualPathFile"); + const inputHref = event.currentTarget.getAttribute("actualPath"); + // console.log(inputHref); + actualPathFile.value=inputHref; + +} + +//Delete + +// Get the modal +const deleteModal = document.querySelector(".deleteModal"); + +// Get the button that opens the modal +const deleteBtn = document.querySelectorAll(".delete-button"); + +cancelBtn.forEach(item => { + item.addEventListener("click", cancel); + +}) + +function cancel(e) { + editModal.style.display = "none"; + deleteModal.style.display = "none"; + + +} + +deleteBtn.forEach(item => { + item.addEventListener("click", deleteFile); + +}) + +submitDeleteBtn.addEventListener('click', submitDeleteFile) + + +let inputHrefD='' + +function deleteFile(e){ + deleteModal.style.display = "block"; + inputHrefD = e.target.getAttribute("deletePath"); +} + +function submitDeleteFile(){ + fetch(`delete.php?file=${inputHrefD}`) + .then(res => res.json()) + .then(data => { + let parentElement = document.getElementById('menu') + let elementToDelete = document.getElementById(data.file); + parentElement.removeChild(elementToDelete); + deleteModal.style.display = "none"; + }) +} + +searchBtn.addEventListener('click', search) + +function search(){ + let searchValue = searchInput.value + fetch(`search.php?search_term=${searchValue}`) + .then(res => res.json()) + .then(data => { + console.log(data) + menu.innerHTML = '' + data.folders.forEach((folder)=>{ + let li = document.createElement('li') + li.classList.add('list-group-item') + li.classList.add('folder') + folderNameArr = folder.split('/') + folderName = folderNameArr[folderNameArr.length - 1] + li.innerText = folderName + menu.appendChild(li) + }) + + data.files.forEach((file)=>{ + let li = document.createElement('li') + li.setAttribute('id', file) + li.classList.add('list-group-item') + li.classList.add('file') + + fileNameArr = file.split('/') + fileName = fileNameArr[fileNameArr.length - 1] + + li.innerHTML= ` + ${fileName} + + + ` + menu.appendChild(li) + }) + }) + +} + +fileToUpload.addEventListener("change", Upload) +submitUploadBtn.addEventListener('click', submitUpload) + +let file = '' + +function Upload(e){ + file = e.target.files[0] +} + +function submitUpload(){ + const form_data = new FormData(); + form_data.append("file", file); + form_data.append("currentFolder", currentFolder) + + fetch(`back.php`, { + method: "POST", + body: form_data, + }) + .then(res => res.json()) + .then(data => { + console.log(data) + window.location.href = 'index.php' + }) +} \ No newline at end of file diff --git a/root/folder1/video.mp4 b/root/folder1/video.mp4 new file mode 100644 index 00000000..5e57a263 Binary files /dev/null and b/root/folder1/video.mp4 differ diff --git a/root/folder2/City Run.mp3 b/root/folder2/City Run.mp3 new file mode 100644 index 00000000..17fa99cf Binary files /dev/null and b/root/folder2/City Run.mp3 differ diff --git a/root/folder3/descarga.jpeg b/root/folder3/descarga.jpeg new file mode 100644 index 00000000..2861cdd3 Binary files /dev/null and b/root/folder3/descarga.jpeg differ diff --git a/root/folder4/Lorem.txt b/root/folder4/Lorem.txt new file mode 100644 index 00000000..e5d35344 --- /dev/null +++ b/root/folder4/Lorem.txt @@ -0,0 +1 @@ +Lorem ipsum \ No newline at end of file diff --git a/root/hi.txt b/root/hi.txt new file mode 100644 index 00000000..e69de29b diff --git a/search.php b/search.php new file mode 100644 index 00000000..0a2b77f4 --- /dev/null +++ b/search.php @@ -0,0 +1,41 @@ + true, + 'folders' => $foldersArray, + 'files' => $filesArray, + 'search' => $searchInputValue, +]); + +?> \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 00000000..d6cc489b --- /dev/null +++ b/styles.css @@ -0,0 +1,95 @@ +* { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +.search-bar { + width: 20vw; +} + + +main{ + + width: 100%; +} + +.aside{ + display: flex; + flex-direction: column; + border: 1px solid black; + height: 50rem; + margin-top: 5%; + flex-wrap: nowrap; + align-items: center; + +} + +.asideContent{ + margin-left: 5%; +} + +.mainFolder{ + position: fixed; + top: 15%; + right: 40%; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + gap: 10px; +} + +.folder ul { + display: none; + list-style-type: none; + font-size: 18px; +} + +.folder{ + list-style-type: none; +} + + +.folder:hover{ + cursor: pointer; +} + +#menu{ + list-style-type: none; +} + + +li a {text-decoration : none; color : #2d2f31;} + + +span { + padding : 30px; + background : #2d2f31; + color : white; + font-size : 1.2em; + font-variant : small-caps; + cursor : pointer; + display: block; +} + +span::after { + float: right; + right: 10%; + content: "+"; +} + +.slide { + clear:both; + width:100%; + height:0px; + overflow: hidden; + text-align: center; + transition: height .4s ease; +} + +.slide li {padding : 30px;} + +#touch {position: absolute; opacity: 0; height: 0px;} + +#touch:checked + .slide {height: 300px;}