diff --git a/README.md b/README.md old mode 100644 new mode 100755 index d12eebca..8f3cf5a5 --- a/README.md +++ b/README.md @@ -1,76 +1,61 @@ -`#html` `#css` `#js` `#php` `#master-in-software-engineering` +# File System explorer 📁 -# PHP Local FileSystem explorer +In this project we made a file system manager where you can create, modify and delete files and folders. -

- Version -

+## Documentation 📋 ->In this project you will have to create a system file explorer that allows the user to navigate, create directories and upload files in the same way as he would in his usual operating system. +Here we allocate all our documentes related to the project. Also there are files related to MVC pattern. ->The file explorer is a tool that allows you to directly view and manipulate the files and directories associated with a path, so you must take into account from which path the user starts and which path they can access. +- [Google Slide](https://docs.google.com/presentation/d/1n7jquvSCbY8NQCoDNMlEhuPCda0rXvcUKNP8slYYhBY/edit?usp=sharing) +- [useCase.drawio](https://drive.google.com/file/d/1h6NfXHpgnrK7r7wzWNbd0U-mS1tFE_ET/view?usp=sharing) +- [MVC documentaion](https://docs.google.com/document/d/1idHQrTkUZaREq1hbpX1Y0NTLs2Bc-GRdyV388erAAy0/edit?usp=sharing) +- [Github project with MVC](https://github.com/Cherrerotinoco/filesystem-explorer) +## Authors 🧑‍💻 +Developed by: -## Index +- [@Cherrerotinoco](https://github.com/Cherrerotinoco) +- [@Paola3stefania](https://github.com/Paola3stefania) +- [@andarbech](https://github.com/andarbech) +- [@sanadriu](https://github.com/sanadriu) -- [Requirements](#requirements) -- [Repository](#repository) -- [Technologies used](#technologies-used) -- [Project delivery](#project-delivery) -- [Resources](#resources) -## Requirements + -- You cannot use file third-party libraries -- You will not be able to use global variables in PHP. -- You must use GIT -- You must use the PHP > v7 -- Create a clear and orderly directory structure -- Both the code and the comments must be written in English -- Use the camelCase code style to define variables and functions -- In the case of using HTML, never use inline styles -- In the case of using different programming languages ​​always define the implementation in separate terms -- Remember that it is important to divide the tasks into several sub-tasks so that in this way you can associate each particular step of the construction with a specific commit -- You should try as much as possible that the commits and the planned tasks are the same -Delete files that are not used or are not necessary to evaluate the project +# C H A N G E S +### code in script in layout/table.php + --- Code change in layouts/table.php -## Repository + $.extend( true, $.fn.dataTable.defaults, { + "searching": false, + } ); -First of all you must fork this project into your GitHub account. + https://datatables.net/examples/advanced_init/defaults.html -To create a fork on GitHub is as easy as clicking the “fork” button on the repository page. -Fork on GitHub +### addon html layout of searchbar from bootstrap 5 -## Technologies used + --- Code change in layouts/searchs.php -\* HTML + https://mdbootstrap.com/docs/standard/forms/search/ -\* CSS -\* JS +### insert function of search Bar -\* PHP +---- Code in index.php , header section, before headcrumbs => renderSearch(); -## Project delivery +### defining the action in action folders -To deliver this project you must follow the steps indicated in the document: -- [Submitting a solution](https://www.notion.so/Submitting-a-solution-524dab1a71dd4b96903f26385e24cdb6) +---- Code in SearchFile , index.php -- You must include the project documentation in PDF format. -- You must include a presentation in PDF format explaining: - - Comparison of the original design (Wireframe) with the final result of the project - - Comparison of the use case diagram with the actions that the user can finally perform - - Comparison of the original use case diagram with the final user actions - - What lessons you’ve learned during this project - - What problems have you encountered when developing this project? - - How you have organized and distributed the tasks +======= +# Modal Edit File -## Resources - -- [File system](https://es.wikipedia.org/wiki/Administrador_de_archivos) -- [PHP FileSystem W3C](https://www.w3schools.com/php/php_ref_filesystem.asp) -- [PHP FileSystem Oficial](https://www.php.net/manual/es/book.filesystem.php) -- [README Guidelines Example](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2) +Files affected by Christian +- index.php +- layouts/modalEditFile.php +- layouts/table.php +- assets/js/init.js +- assets/js/events.js diff --git a/actions/createDirectory/index.php b/actions/createDirectory/index.php new file mode 100755 index 00000000..0b659277 --- /dev/null +++ b/actions/createDirectory/index.php @@ -0,0 +1,57 @@ +getMessage()); + } +} + +setSessionValue("errorList", $errorList); +setSessionValue("successList", $successList); + +$url = getSessionValue("path"); +header("Location: ../../index.php?path=$url"); diff --git a/actions/createFile/index.php b/actions/createFile/index.php new file mode 100755 index 00000000..f8435a2c --- /dev/null +++ b/actions/createFile/index.php @@ -0,0 +1,58 @@ +getMessage()); + } +} + +setSessionValue("errorList", $errorList); +setSessionValue("successList", $successList); + +$url = getSessionValue("path"); +header("Location: ../../index.php?path=$url"); diff --git a/actions/delete/index.php b/actions/delete/index.php new file mode 100644 index 00000000..6726a977 --- /dev/null +++ b/actions/delete/index.php @@ -0,0 +1,39 @@ +getMessage()); +} + +setSessionValue("errorList", $errorList); +setSessionValue("successList", $successList); + +$url = getSessionValue("path"); +header("Location: ../../index.php?path=$url"); diff --git a/actions/editFile/get.php b/actions/editFile/get.php new file mode 100644 index 00000000..a72c8ca7 --- /dev/null +++ b/actions/editFile/get.php @@ -0,0 +1,15 @@ + 0) { + array_push($errorList, getUploadError($file, $code)); + } else { + $tmpname = $file['tmp_name']; + $filename = $file["name"]; + $fullname = joinPath([$destpath, $filename]); + + move_uploaded_file($tmpname, $fullname); + + array_push($successList, "File $filename has been uploaded succesfully."); + } + } + } catch (Throwable $e) { + array_push($errorList, $e->getMessage()); + } +} + +setSessionValue("errorList", $errorList); +setSessionValue("successList", $successList); + +$url = getSessionValue("path"); +header("Location: ../../index.php?path=$url"); diff --git a/assets/images/Polygon Luminary.svg b/assets/images/Polygon Luminary.svg new file mode 100755 index 00000000..e129aae4 --- /dev/null +++ b/assets/images/Polygon Luminary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/extensions/csv-svgrepo-com.svg b/assets/images/extensions/csv-svgrepo-com.svg new file mode 100755 index 00000000..ce7034ef --- /dev/null +++ b/assets/images/extensions/csv-svgrepo-com.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/doc-svgrepo-com.svg b/assets/images/extensions/doc-svgrepo-com.svg new file mode 100755 index 00000000..91918ef6 --- /dev/null +++ b/assets/images/extensions/doc-svgrepo-com.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/folder-svgrepo-com.svg b/assets/images/extensions/folder-svgrepo-com.svg new file mode 100755 index 00000000..5c8b693e --- /dev/null +++ b/assets/images/extensions/folder-svgrepo-com.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/gif-svgrepo-com.svg b/assets/images/extensions/gif-svgrepo-com.svg new file mode 100755 index 00000000..94df94a6 --- /dev/null +++ b/assets/images/extensions/gif-svgrepo-com.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/jpg-svgrepo-com.svg b/assets/images/extensions/jpg-svgrepo-com.svg new file mode 100755 index 00000000..e4fa39cb --- /dev/null +++ b/assets/images/extensions/jpg-svgrepo-com.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/m3u-svgrepo-com.svg b/assets/images/extensions/m3u-svgrepo-com.svg new file mode 100755 index 00000000..9487c86c --- /dev/null +++ b/assets/images/extensions/m3u-svgrepo-com.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/mp3-svgrepo-com.svg b/assets/images/extensions/mp3-svgrepo-com.svg new file mode 100755 index 00000000..611184c6 --- /dev/null +++ b/assets/images/extensions/mp3-svgrepo-com.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/mp4-svgrepo-com.svg b/assets/images/extensions/mp4-svgrepo-com.svg new file mode 100755 index 00000000..07a6efa2 --- /dev/null +++ b/assets/images/extensions/mp4-svgrepo-com.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/odt-svgrepo-com.svg b/assets/images/extensions/odt-svgrepo-com.svg new file mode 100755 index 00000000..55592089 --- /dev/null +++ b/assets/images/extensions/odt-svgrepo-com.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/pdf-svgrepo-com.svg b/assets/images/extensions/pdf-svgrepo-com.svg new file mode 100755 index 00000000..118e93ac --- /dev/null +++ b/assets/images/extensions/pdf-svgrepo-com.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/png-svgrepo-com.svg b/assets/images/extensions/png-svgrepo-com.svg new file mode 100755 index 00000000..cb229511 --- /dev/null +++ b/assets/images/extensions/png-svgrepo-com.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/ppt-svgrepo-com.svg b/assets/images/extensions/ppt-svgrepo-com.svg new file mode 100755 index 00000000..337f2461 --- /dev/null +++ b/assets/images/extensions/ppt-svgrepo-com.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/rar-svgrepo-com.svg b/assets/images/extensions/rar-svgrepo-com.svg new file mode 100755 index 00000000..d6485660 --- /dev/null +++ b/assets/images/extensions/rar-svgrepo-com.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/svg-svgrepo-com.svg b/assets/images/extensions/svg-svgrepo-com.svg new file mode 100755 index 00000000..10d28b37 --- /dev/null +++ b/assets/images/extensions/svg-svgrepo-com.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/txt-svgrepo-com.svg b/assets/images/extensions/txt-svgrepo-com.svg new file mode 100755 index 00000000..bbaf6939 --- /dev/null +++ b/assets/images/extensions/txt-svgrepo-com.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/extensions/zip-svgrepo-com.svg b/assets/images/extensions/zip-svgrepo-com.svg new file mode 100755 index 00000000..fff70d24 --- /dev/null +++ b/assets/images/extensions/zip-svgrepo-com.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js/config.js b/assets/js/config.js new file mode 100644 index 00000000..8e330a06 --- /dev/null +++ b/assets/js/config.js @@ -0,0 +1,3 @@ +const ROOT_DIRECTORY = "./drive"; + +export { ROOT_DIRECTORY }; diff --git a/assets/js/events.js b/assets/js/events.js new file mode 100755 index 00000000..a2eaa666 --- /dev/null +++ b/assets/js/events.js @@ -0,0 +1,92 @@ +import { ROOT_DIRECTORY } from "./config.js"; + +function setInputValueEvent(inputTargetSelector, eventTargetAction) { + const input = document.querySelectorAll(inputTargetSelector); + + if (!input) return; + + document.addEventListener("click", function (event) { + if (event.target.dataset?.action !== eventTargetAction) return; + + input.forEach(elm => { + elm.value = event.target.dataset.payload; + }); + + console.log(event.target.dataset.payload); + }); +} + +function setImageEvent() { + document.addEventListener("click", function (event) { + if (event.target.dataset?.action !== "view-image") return; + + const container = document.querySelector("#view-file"); + const image = document.createElement("img"); + image.classList.add("w-100"); + image.src = `${ROOT_DIRECTORY}/${event.target.dataset.payload}`; + + container.innerHTML = null; + container.insertAdjacentElement("afterbegin", image); + }); +} + +function setVideoEvent() { + document.addEventListener("click", function (event) { + if (event.target.dataset?.action !== "view-video") return; + + const container = document.querySelector("#view-file"); + const video = document.createElement("video"); + video.classList.add("w-100"); + video.src = `${ROOT_DIRECTORY}/${event.target.dataset.payload}`; + video.controls = true; + + container.innerHTML = null; + container.insertAdjacentElement("afterbegin", video); + }); +} + +function setEditFile() { + document.addEventListener("click", function (event) { + if (event.target.dataset?.action !== "edit-file") return; + + // Get txt content + const filePath = event.target.dataset.payload + fetch('../../actions/editFile/get.php', { + method: 'POST', + headers:{ + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + "filePath": filePath + }) + }) + .then(res => res.json()) + .then(data => { + document.querySelector("#dataFile").value = data + }) + + document.querySelector("#formEditFile").addEventListener('submit', e => { + e.preventDefault(); + + fetch('../../actions/editFile/put.php', { + method: 'POST', + headers:{ + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + "filePath": filePath, + "data": document.querySelector("#dataFile").value + }) + }) + .then(res => res.json()) + .then(data => { + if (data !== false || data !== 'false') { + return document.querySelector("#clodeEditModal").click(); + } + }) + }) + + }); +} + +export { setInputValueEvent, setImageEvent, setVideoEvent, setEditFile }; diff --git a/assets/js/init.js b/assets/js/init.js new file mode 100755 index 00000000..2cc6a634 --- /dev/null +++ b/assets/js/init.js @@ -0,0 +1,7 @@ +import { setImageEvent, setInputValueEvent, setVideoEvent, setEditFile } from "./events.js"; + +setInputValueEvent(".input_rename_path", "rename"); +setInputValueEvent("#input_delete_path", "delete"); +setImageEvent(); +setVideoEvent(); +setEditFile(); \ No newline at end of file diff --git a/assets/styles/css/main.css b/assets/styles/css/main.css new file mode 100755 index 00000000..20414ea2 --- /dev/null +++ b/assets/styles/css/main.css @@ -0,0 +1,1763 @@ +@charset "UTF-8"; +* { + box-sizing: border-box; +} + +ul, +ol { + margin: 0; + padding: 0; + list-style: none; +} + +a { + color: inherit; + text-decoration: none; +} + +*::-webkit-scrollbar { + width: 8px; + /* Tamaño del scroll en vertical */ + height: 8px; + /* Tamaño del scroll en horizontal */ +} + +*::-webkit-scrollbar-thumb { + background: #cccccc; + border-radius: 4px; +} + +/* Cambiamos el fondo y agregamos una sombra cuando esté en hover */ +*::-webkit-scrollbar-thumb:hover { + background: #b3b3b3; + box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2); +} + +/* Cambiamos el fondo cuando esté en active */ +*::-webkit-scrollbar-thumb:active { + background-color: #999999; +} + +/* Ponemos un color de fondo y redondeamos las esquinas del track */ +*::-webkit-scrollbar-track { + background: #e0e0e0; + border-radius: 4px; +} + +/* Cambiamos el fondo cuando esté en active o hover */ +*::-webkit-scrollbar-track:hover, +*::-webkit-scrollbar-track:active { + background: #d4d4d4; +} + +.body { + background-image: url("../../../../assets/images/Polygon Luminary.svg"); + background-size: cover; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; +} + +.list-group-item { + background: none; + color: white; +} +.list-group-item.disabled { + background: none; + color: silver; +} + +.icon-btn { + border: none; + outline: none; + background: none; + color: white; +} +.icon-btn:hover { + color: #0d6efd; +} + +/* ===== Breakpoints ===== */ +/* ===== Colors ===== */ +/* ===== Color Classes ===== */ +.text-color-blue { + color: #0d6efd; +} + +.bg-color-blue { + background-color: #0d6efd; +} + +.border-color-blue { + border-color: #0d6efd; +} + +.text-color-indigo { + color: #6610f2; +} + +.bg-color-indigo { + background-color: #6610f2; +} + +.border-color-indigo { + border-color: #6610f2; +} + +.text-color-purple { + color: #6f42c1; +} + +.bg-color-purple { + background-color: #6f42c1; +} + +.border-color-purple { + border-color: #6f42c1; +} + +.text-color-pink { + color: #d63384; +} + +.bg-color-pink { + background-color: #d63384; +} + +.border-color-pink { + border-color: #d63384; +} + +.text-color-red { + color: #dc3545; +} + +.bg-color-red { + background-color: #dc3545; +} + +.border-color-red { + border-color: #dc3545; +} + +.text-color-orange { + color: #fd7e14; +} + +.bg-color-orange { + background-color: #fd7e14; +} + +.border-color-orange { + border-color: #fd7e14; +} + +.text-color-yellow { + color: #ffc107; +} + +.bg-color-yellow { + background-color: #ffc107; +} + +.border-color-yellow { + border-color: #ffc107; +} + +.text-color-green { + color: #198754; +} + +.bg-color-green { + background-color: #198754; +} + +.border-color-green { + border-color: #198754; +} + +.text-color-teal { + color: #20c997; +} + +.bg-color-teal { + background-color: #20c997; +} + +.border-color-teal { + border-color: #20c997; +} + +.text-color-cyan { + color: #0dcaf0; +} + +.bg-color-cyan { + background-color: #0dcaf0; +} + +.border-color-cyan { + border-color: #0dcaf0; +} + +.text-color-transparent { + color: transparent; +} + +.bg-color-transparent { + background-color: transparent; +} + +.border-color-transparent { + border-color: transparent; +} + +/* ===== Display Mode Classes ===== */ +.inline-block { + display: inline-block; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.grid { + display: grid; +} + +/* ===== Flex Direction Classes ===== */ +.flex-row { + flex-direction: row; +} + +.flex-column { + flex-direction: column; +} + +.flex-row-reverse { + flex-direction: row-reverse; +} + +.flex-column-reverse { + flex-direction: column-reverse; +} + +/* ===== Flex Wrap Classes ===== */ +.flex-wrap { + flex-wrap: wrap; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse; +} + +/* ===== Flex Main Axis Alignment Classes ===== */ +.justify-content-start { + justify-content: start; +} + +.justify-content-end { + justify-content: end; +} + +.justify-content-center { + justify-content: center; +} + +.justify-content-space-between { + justify-content: space-between; +} + +.justify-content-space-evenly { + justify-content: space-evenly; +} + +.justify-content-space-around { + justify-content: space-around; +} + +/* ===== Flex Cross Axis Alignment Classes ===== */ +.align-items-start { + align-items: start; +} + +.align-items-end { + align-items: end; +} + +.align-items-center { + align-items: center; +} + +.align-items-stretch { + align-items: stretch; +} + +/* =====~ Flex Content Alignment Classes ===== */ +.align-content-start { + align-content: start; +} + +.align-content-end { + align-content: end; +} + +.align-content-center { + align-content: center; +} + +.align-content-space-between { + align-content: space-between; +} + +.align-content-space-evenly { + align-content: space-evenly; +} + +.align-content-space-around { + align-content: space-around; +} + +/* ===== Font Config Variables ===== */ +/* ===== Font Size Classes ===== */ +.font-size-100 { + font-size: 0.512rem; +} + +.font-size-200 { + font-size: 0.64rem; +} + +.font-size-300 { + font-size: 0.8rem; +} + +.font-size-400 { + font-size: 1rem; +} + +.font-size-500 { + font-size: 1.5625rem; +} + +.font-size-600 { + font-size: 1.953125rem; +} + +.font-size-700 { + font-size: 2.44140625rem; +} + +.font-size-800 { + font-size: 3.0517578125rem; +} + +.font-size-900 { + font-size: 3.8146972656rem; +} + +/* ===== Font Weight Classes ===== */ +.font-weight-100 { + font-weight: 100; +} + +.font-weight-200 { + font-weight: 200; +} + +.font-weight-300 { + font-weight: 300; +} + +.font-weight-400 { + font-weight: 400; +} + +.font-weight-500 { + font-weight: 500; +} + +.font-weight-600 { + font-weight: 600; +} + +.font-weight-700 { + font-weight: 700; +} + +.font-weight-800 { + font-weight: 800; +} + +.font-weight-900 { + font-weight: 900; +} + +/* ===== Font Style Classes ===== */ +.font-style-normal { + font-style: normal; +} + +.font-style-italic { + font-style: italic; +} + +/* ===== Text Align Classes ===== */ +.text-align-left { + text-align: left; +} + +.text-align-right { + text-align: right; +} + +.text-align-center { + text-align: center; +} + +.text-align-justify { + text-align: justify; +} + +/* ===== Text Decoration Classes ===== */ +.text-decoration-none { + text-decoration: "none"; +} + +.text-decoration-underline { + text-decoration: "underline"; +} + +/* ===== Border Radius Config Variables ===== */ +/* ===== Border Radius Classes ===== */ +.radius-0 { + border-radius: 0rem; +} + +.radius-1 { + border-radius: 0.125rem; +} + +.radius-2 { + border-radius: 0.25rem; +} + +.radius-3 { + border-radius: 0.375rem; +} + +.radius-4 { + border-radius: 0.5rem; +} + +.radius-5 { + border-radius: 0.625rem; +} + +.radius-6 { + border-radius: 0.75rem; +} + +.radius-7 { + border-radius: 0.875rem; +} + +.radius-8 { + border-radius: 1rem; +} + +.radius-9 { + border-radius: 1.125rem; +} + +.radius-10 { + border-radius: 1.25rem; +} + +.radius-round { + border-radius: 50%; +} + +/* ===== Spacing Config Variables ===== */ +/* ===== Padding Classes ===== */ +.p-0 { + padding: 0rem; +} + +.px-0 { + padding-left: 0rem; + padding-right: 0rem; +} + +.py-0 { + padding-top: 0rem; + padding-bottom: 0rem; +} + +.pl-0 { + padding-left: 0rem; +} + +.pr-0 { + padding-right: 0rem; +} + +.pt-0 { + padding-top: 0rem; +} + +.pb-0 { + padding-bottom: 0rem; +} + +.p-1 { + padding: 0.25rem; +} + +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.pl-1 { + padding-left: 0.25rem; +} + +.pr-1 { + padding-right: 0.25rem; +} + +.pt-1 { + padding-top: 0.25rem; +} + +.pb-1 { + padding-bottom: 0.25rem; +} + +.p-2 { + padding: 0.5rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.pl-2 { + padding-left: 0.5rem; +} + +.pr-2 { + padding-right: 0.5rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pb-2 { + padding-bottom: 0.5rem; +} + +.p-3 { + padding: 0.75rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.pl-3 { + padding-left: 0.75rem; +} + +.pr-3 { + padding-right: 0.75rem; +} + +.pt-3 { + padding-top: 0.75rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.p-4 { + padding: 1rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.pl-4 { + padding-left: 1rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pt-4 { + padding-top: 1rem; +} + +.pb-4 { + padding-bottom: 1rem; +} + +.p-5 { + padding: 1.25rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.pl-5 { + padding-left: 1.25rem; +} + +.pr-5 { + padding-right: 1.25rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.pb-5 { + padding-bottom: 1.25rem; +} + +.p-6 { + padding: 1.5rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.pl-6 { + padding-left: 1.5rem; +} + +.pr-6 { + padding-right: 1.5rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.p-7 { + padding: 1.75rem; +} + +.px-7 { + padding-left: 1.75rem; + padding-right: 1.75rem; +} + +.py-7 { + padding-top: 1.75rem; + padding-bottom: 1.75rem; +} + +.pl-7 { + padding-left: 1.75rem; +} + +.pr-7 { + padding-right: 1.75rem; +} + +.pt-7 { + padding-top: 1.75rem; +} + +.pb-7 { + padding-bottom: 1.75rem; +} + +.p-8 { + padding: 2rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.pl-8 { + padding-left: 2rem; +} + +.pr-8 { + padding-right: 2rem; +} + +.pt-8 { + padding-top: 2rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.p-9 { + padding: 2.25rem; +} + +.px-9 { + padding-left: 2.25rem; + padding-right: 2.25rem; +} + +.py-9 { + padding-top: 2.25rem; + padding-bottom: 2.25rem; +} + +.pl-9 { + padding-left: 2.25rem; +} + +.pr-9 { + padding-right: 2.25rem; +} + +.pt-9 { + padding-top: 2.25rem; +} + +.pb-9 { + padding-bottom: 2.25rem; +} + +.p-10 { + padding: 2.5rem; +} + +.px-10 { + padding-left: 2.5rem; + padding-right: 2.5rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + +.pl-10 { + padding-left: 2.5rem; +} + +.pr-10 { + padding-right: 2.5rem; +} + +.pt-10 { + padding-top: 2.5rem; +} + +.pb-10 { + padding-bottom: 2.5rem; +} + +/* ===== Margin Classes ===== */ +.m-0 { + margin: 0rem; +} + +.mx-0 { + margin-left: 0rem; + margin-right: 0rem; +} + +.my-0 { + margin-top: 0rem; + margin-bottom: 0rem; +} + +.ml-0 { + margin-left: 0rem; +} + +.mr-0 { + margin-right: 0rem; +} + +.mt-0 { + margin-top: 0rem; +} + +.mb-0 { + margin-bottom: 0rem; +} + +.m-1 { + margin: 0.25rem; +} + +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.my-1 { + margin-top: 0.25rem; + margin-bottom: 0.25rem; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.m-2 { + margin: 0.5rem; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.m-3 { + margin: 0.75rem; +} + +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} + +.my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.m-4 { + margin: 1rem; +} + +.mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.ml-4 { + margin-left: 1rem; +} + +.mr-4 { + margin-right: 1rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.m-5 { + margin: 1.25rem; +} + +.mx-5 { + margin-left: 1.25rem; + margin-right: 1.25rem; +} + +.my-5 { + margin-top: 1.25rem; + margin-bottom: 1.25rem; +} + +.ml-5 { + margin-left: 1.25rem; +} + +.mr-5 { + margin-right: 1.25rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.m-6 { + margin: 1.5rem; +} + +.mx-6 { + margin-left: 1.5rem; + margin-right: 1.5rem; +} + +.my-6 { + margin-top: 1.5rem; + margin-bottom: 1.5rem; +} + +.ml-6 { + margin-left: 1.5rem; +} + +.mr-6 { + margin-right: 1.5rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.m-7 { + margin: 1.75rem; +} + +.mx-7 { + margin-left: 1.75rem; + margin-right: 1.75rem; +} + +.my-7 { + margin-top: 1.75rem; + margin-bottom: 1.75rem; +} + +.ml-7 { + margin-left: 1.75rem; +} + +.mr-7 { + margin-right: 1.75rem; +} + +.mt-7 { + margin-top: 1.75rem; +} + +.mb-7 { + margin-bottom: 1.75rem; +} + +.m-8 { + margin: 2rem; +} + +.mx-8 { + margin-left: 2rem; + margin-right: 2rem; +} + +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.ml-8 { + margin-left: 2rem; +} + +.mr-8 { + margin-right: 2rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.m-9 { + margin: 2.25rem; +} + +.mx-9 { + margin-left: 2.25rem; + margin-right: 2.25rem; +} + +.my-9 { + margin-top: 2.25rem; + margin-bottom: 2.25rem; +} + +.ml-9 { + margin-left: 2.25rem; +} + +.mr-9 { + margin-right: 2.25rem; +} + +.mt-9 { + margin-top: 2.25rem; +} + +.mb-9 { + margin-bottom: 2.25rem; +} + +.m-10 { + margin: 2.5rem; +} + +.mx-10 { + margin-left: 2.5rem; + margin-right: 2.5rem; +} + +.my-10 { + margin-top: 2.5rem; + margin-bottom: 2.5rem; +} + +.ml-10 { + margin-left: 2.5rem; +} + +.mr-10 { + margin-right: 2.5rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.mb-10 { + margin-bottom: 2.5rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-auto { + margin-top: auto; + margin-bottom: auto; +} + +/* ===== Grid/Flexbox Gap Classes ===== */ +.gap-0 { + gap: 0rem; +} + +.gap-1 { + gap: 0.25rem; +} + +.gap-2 { + gap: 0.5rem; +} + +.gap-3 { + gap: 0.75rem; +} + +.gap-4 { + gap: 1rem; +} + +.gap-5 { + gap: 1.25rem; +} + +.gap-6 { + gap: 1.5rem; +} + +.gap-7 { + gap: 1.75rem; +} + +.gap-8 { + gap: 2rem; +} + +.gap-9 { + gap: 2.25rem; +} + +.gap-10 { + gap: 2.5rem; +} + +/* ===== State Classes ===== */ +.is-hidden { + display: none !important; +} + +/* ===== Dimensional Classes ===== */ +.width-0 { + width: 0%; +} + +.height-0 { + height: 0%; +} + +.width-5 { + width: 5%; +} + +.height-5 { + height: 5%; +} + +.width-10 { + width: 10%; +} + +.height-10 { + height: 10%; +} + +.width-15 { + width: 15%; +} + +.height-15 { + height: 15%; +} + +.width-20 { + width: 20%; +} + +.height-20 { + height: 20%; +} + +.width-25 { + width: 25%; +} + +.height-25 { + height: 25%; +} + +.width-30 { + width: 30%; +} + +.height-30 { + height: 30%; +} + +.width-35 { + width: 35%; +} + +.height-35 { + height: 35%; +} + +.width-40 { + width: 40%; +} + +.height-40 { + height: 40%; +} + +.width-45 { + width: 45%; +} + +.height-45 { + height: 45%; +} + +.width-50 { + width: 50%; +} + +.height-50 { + height: 50%; +} + +.width-55 { + width: 55%; +} + +.height-55 { + height: 55%; +} + +.width-60 { + width: 60%; +} + +.height-60 { + height: 60%; +} + +.width-65 { + width: 65%; +} + +.height-65 { + height: 65%; +} + +.width-70 { + width: 70%; +} + +.height-70 { + height: 70%; +} + +.width-75 { + width: 75%; +} + +.height-75 { + height: 75%; +} + +.width-80 { + width: 80%; +} + +.height-80 { + height: 80%; +} + +.width-85 { + width: 85%; +} + +.height-85 { + height: 85%; +} + +.width-90 { + width: 90%; +} + +.height-90 { + height: 90%; +} + +.width-95 { + width: 95%; +} + +.height-95 { + height: 95%; +} + +.width-100 { + width: 100%; +} + +.height-100 { + height: 100%; +} + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; +} + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type=search] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +.navbar { + min-height: 5rem; +} + +.aside-nav { + min-height: 0; + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(4px); +} +@media screen and (min-width: 768px) { + .aside-nav { + min-height: calc(100vh - 5rem); + } +} +.aside-nav__button { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 1rem 1.25rem; + outline: none; + border: none; + background: rgba(75, 69, 69, 0.25); + box-shadow: 0 0 2px rgba(0, 0, 0, 0.25); + color: white; +} +.aside-nav__button--accordion:not(.collapsed) { + background: rgba(255, 255, 255, 0.25); +} +.aside-nav__button--accordion:not(.collapsed)::after { + background: none; + font-family: "Material Icons"; + content: "\e5cf"; +} +.aside-nav__button--accordion::after { + background: none; + font-family: "Material Icons"; + content: "\e5cf"; +} + +.main-child { + width: 100%; + padding: 1rem; + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(4px); + box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25); + border-radius: 0.25rem; +} + +/*# sourceMappingURL=main.css.map */ diff --git a/assets/styles/css/main.css.map b/assets/styles/css/main.css.map new file mode 100755 index 00000000..7841dab7 --- /dev/null +++ b/assets/styles/css/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../sass/base/_reset.scss","../sass/base/_body.scss","../sass/components/_list-group.scss","../sass/components/_icon-btn.scss","../sass/utilities/_breakpoint.scss","../sass/utilities/_color.scss","../sass/utilities/_display.scss","../sass/utilities/_flex.scss","../sass/utilities/_font.scss","../sass/utilities/_radius.scss","../sass/utilities/_spacing.scss","../sass/utilities/_state.scss","../sass/utilities/_dimension.scss","../sass/vendors/_normalize.scss","../sass/layout/_navbar.scss","../sass/layout/_aside-nav.scss","../sass/layout/_main.scss"],"names":[],"mappings":"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C;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAGb;AAGC;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AACZ;EAAY;;;AAjBZ;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EAAY;;;AACZ;E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","file":"main.css"} \ No newline at end of file diff --git a/assets/styles/sass/base/_body.scss b/assets/styles/sass/base/_body.scss new file mode 100755 index 00000000..4d7953ce --- /dev/null +++ b/assets/styles/sass/base/_body.scss @@ -0,0 +1,6 @@ +.body { + background-image: url("../../../../assets/images/Polygon\ Luminary.svg"); + background-size: cover; + + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; +} \ No newline at end of file diff --git a/assets/styles/sass/base/_index.scss b/assets/styles/sass/base/_index.scss new file mode 100755 index 00000000..748e7f52 --- /dev/null +++ b/assets/styles/sass/base/_index.scss @@ -0,0 +1,2 @@ +@forward "reset"; +@forward "body"; diff --git a/assets/styles/sass/base/_reset.scss b/assets/styles/sass/base/_reset.scss new file mode 100755 index 00000000..94fa6267 --- /dev/null +++ b/assets/styles/sass/base/_reset.scss @@ -0,0 +1,51 @@ +@use "sass:map"; + +* { + box-sizing: border-box; +} + +ul, +ol { + margin: 0; + padding: 0; + list-style: none; +} + +a { + color: inherit; + text-decoration: none; +} + + +*::-webkit-scrollbar { + width: 8px; /* Tamaño del scroll en vertical */ + height: 8px; /* Tamaño del scroll en horizontal */ +} + +*::-webkit-scrollbar-thumb { + background: rgb(204, 204, 204); + border-radius: 4px; +} + +/* Cambiamos el fondo y agregamos una sombra cuando esté en hover */ +*::-webkit-scrollbar-thumb:hover { + background: rgb(179, 179, 179); + box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2); +} + +/* Cambiamos el fondo cuando esté en active */ +*::-webkit-scrollbar-thumb:active { + background-color: rgb(153, 153, 153); +} + +/* Ponemos un color de fondo y redondeamos las esquinas del track */ +*::-webkit-scrollbar-track { + background: rgb(224, 224, 224); + border-radius: 4px; +} + +/* Cambiamos el fondo cuando esté en active o hover */ +*::-webkit-scrollbar-track:hover, +*::-webkit-scrollbar-track:active { +background: rgb(212, 212, 212); +} \ No newline at end of file diff --git a/assets/styles/sass/components/_icon-btn.scss b/assets/styles/sass/components/_icon-btn.scss new file mode 100644 index 00000000..fece56d2 --- /dev/null +++ b/assets/styles/sass/components/_icon-btn.scss @@ -0,0 +1,11 @@ +.icon-btn { + border: none; + outline: none; + background: none; + + color: white; + + &:hover { + color: #0d6efd; + } +} \ No newline at end of file diff --git a/assets/styles/sass/components/_index.scss b/assets/styles/sass/components/_index.scss new file mode 100755 index 00000000..a42d8a72 --- /dev/null +++ b/assets/styles/sass/components/_index.scss @@ -0,0 +1,2 @@ +@forward "list-group"; +@forward "icon-btn"; diff --git a/assets/styles/sass/components/_list-group.scss b/assets/styles/sass/components/_list-group.scss new file mode 100755 index 00000000..6c1c4d37 --- /dev/null +++ b/assets/styles/sass/components/_list-group.scss @@ -0,0 +1,11 @@ +.list-group { + &-item { + background: none; + color: white; + + &.disabled { + background: none; + color: rgb(192,192,192); + } + } +} \ No newline at end of file diff --git a/assets/styles/sass/layout/_aside-nav.scss b/assets/styles/sass/layout/_aside-nav.scss new file mode 100755 index 00000000..181ccee4 --- /dev/null +++ b/assets/styles/sass/layout/_aside-nav.scss @@ -0,0 +1,47 @@ +$size-threeshold: 768px; + +.aside-nav { + min-height: 0; + + @media screen and (min-width: $size-threeshold) { + + min-height: calc(100vh - 5rem); + } + + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(4px); + + &__button { + display: flex; + align-items: center; + justify-content: space-between; + + width: 100%; + padding: 1rem 1.25rem; + + outline: none; + border: none; + + background: rgba(75, 69, 69, 0.25); + box-shadow: 0 0 2px rgba(0,0,0,0.25); + color: white; + + &--accordion { + &:not(.collapsed) { + background: rgba(255,255,255,0.25); + + &::after { + background: none; + font-family: 'Material Icons'; + content: '\e5cf'; + } + } + + &::after { + background: none; + font-family: 'Material Icons'; + content: '\e5cf'; + } + } + } +} \ No newline at end of file diff --git a/assets/styles/sass/layout/_index.scss b/assets/styles/sass/layout/_index.scss new file mode 100755 index 00000000..edcaa606 --- /dev/null +++ b/assets/styles/sass/layout/_index.scss @@ -0,0 +1,3 @@ +@forward "navbar"; +@forward "aside-nav"; +@forward "main"; \ No newline at end of file diff --git a/assets/styles/sass/layout/_main.scss b/assets/styles/sass/layout/_main.scss new file mode 100644 index 00000000..8d74fa8e --- /dev/null +++ b/assets/styles/sass/layout/_main.scss @@ -0,0 +1,11 @@ +.main{ + &-child { + width: 100%; + padding: 1rem; + + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(4px); + box-shadow: 0 0 1rem rgba(0,0,0, 0.25); + border-radius: 0.25rem; + } +} \ No newline at end of file diff --git a/assets/styles/sass/layout/_navbar.scss b/assets/styles/sass/layout/_navbar.scss new file mode 100755 index 00000000..11769882 --- /dev/null +++ b/assets/styles/sass/layout/_navbar.scss @@ -0,0 +1,3 @@ +.navbar { + min-height: 5rem; +} \ No newline at end of file diff --git a/assets/styles/sass/main.scss b/assets/styles/sass/main.scss new file mode 100755 index 00000000..ca01a953 --- /dev/null +++ b/assets/styles/sass/main.scss @@ -0,0 +1,5 @@ +@use "base"; +@use "components"; +@use "utilities"; +@use "vendors"; +@use "layout"; \ No newline at end of file diff --git a/assets/styles/sass/utilities/_breakpoint.scss b/assets/styles/sass/utilities/_breakpoint.scss new file mode 100755 index 00000000..01b69777 --- /dev/null +++ b/assets/styles/sass/utilities/_breakpoint.scss @@ -0,0 +1,7 @@ +/* ===== Breakpoints ===== */ + +$sm: 576px !default; +$md: 768px !default; +$lg: 992px !default; +$xl: 1200px !default; +$xxl: 1400px !default; \ No newline at end of file diff --git a/assets/styles/sass/utilities/_color.scss b/assets/styles/sass/utilities/_color.scss new file mode 100755 index 00000000..bda9266e --- /dev/null +++ b/assets/styles/sass/utilities/_color.scss @@ -0,0 +1,34 @@ +/* ===== Colors ===== */ + +$colors: ( + "blue": #0d6efd, + "indigo": #6610f2, + "purple": #6f42c1, + "pink": #d63384, + "red": #dc3545, + "orange": #fd7e14, + "yellow": #ffc107, + "green": #198754, + "teal": #20c997, + "cyan": #0dcaf0, + "transparent": transparent, +) !default; + +/* ===== Color Classes ===== */ + +@each $name, $value in $colors { + .text-color-#{$name} { + color: $value; + } + + .bg-color-#{$name} { + background-color: $value; + } + + .border-color-#{$name} { + border-color: $value; + } +} + + + diff --git a/assets/styles/sass/utilities/_dimension.scss b/assets/styles/sass/utilities/_dimension.scss new file mode 100755 index 00000000..0faf2beb --- /dev/null +++ b/assets/styles/sass/utilities/_dimension.scss @@ -0,0 +1,11 @@ +/* ===== Dimensional Classes ===== */ + +@for $i from 0 through 20 { + .width-#{$i * 5} { + width: $i * 5%; + } + + .height-#{$i * 5} { + height: $i * 5%; + } +} diff --git a/assets/styles/sass/utilities/_display.scss b/assets/styles/sass/utilities/_display.scss new file mode 100755 index 00000000..64e11108 --- /dev/null +++ b/assets/styles/sass/utilities/_display.scss @@ -0,0 +1,9 @@ +/* ===== Display Mode Classes ===== */ + +$_display-modes: inline-block, block, flex, grid; + +@each $display-mode in $_display-modes { + .#{$display-mode} { + display: $display-mode; + } +} diff --git a/assets/styles/sass/utilities/_flex.scss b/assets/styles/sass/utilities/_flex.scss new file mode 100755 index 00000000..b9aa79aa --- /dev/null +++ b/assets/styles/sass/utilities/_flex.scss @@ -0,0 +1,49 @@ +/* ===== Flex Direction Classes ===== */ + +$_direction-opts: row, column, row-reverse, column-reverse; + +@each $value in $_direction-opts { + .flex-#{$value} { + flex-direction: $value; + } +} + +/* ===== Flex Wrap Classes ===== */ + +$_wrap-opts: wrap, wrap-reverse; + +@each $value in $_wrap-opts { + .flex-#{$value} { + flex-wrap: $value; + } +} + +/* ===== Flex Main Axis Alignment Classes ===== */ + +$_justify-content-opts: start, end, center, space-between, space-evenly, space-around; + +@each $value in $_justify-content-opts { + .justify-content-#{$value} { + justify-content: $value; + } +} + +/* ===== Flex Cross Axis Alignment Classes ===== */ + +$_align-items-opts: start, end, center, stretch; + +@each $value in $_align-items-opts { + .align-items-#{$value} { + align-items: $value; + } +} + +/* =====~ Flex Content Alignment Classes ===== */ + +$_align-content-opts: start, end, center, space-between, space-evenly, space-around; + +@each $value in $_align-content-opts { + .align-content-#{$value} { + align-content: $value; + } +} diff --git a/assets/styles/sass/utilities/_font.scss b/assets/styles/sass/utilities/_font.scss new file mode 100755 index 00000000..10b94bea --- /dev/null +++ b/assets/styles/sass/utilities/_font.scss @@ -0,0 +1,66 @@ +@use "sass:math"; + +/* ===== Font Config Variables ===== */ + +$font-size-base: 1rem !default; +$font-size-scale: 1.25 !default; + +/* ===== Font Size Classes ===== */ + +$_font-sizes: ( + 100: $font-size-base * math.pow($font-size-scale, -3), + 200: $font-size-base * math.pow($font-size-scale, -2), + 300: $font-size-base * math.pow($font-size-scale, -1), + 400: $font-size-base, + 500: $font-size-base * math.pow($font-size-scale, 2), + 600: $font-size-base * math.pow($font-size-scale, 3), + 700: $font-size-base * math.pow($font-size-scale, 4), + 800: $font-size-base * math.pow($font-size-scale, 5), + 900: $font-size-base * math.pow($font-size-scale, 6) +); + +@each $name, $value in $_font-sizes { + .font-size-#{$name} { + font-size: $value; + } +} + +/* ===== Font Weight Classes ===== */ + +$_font-weights: 100, 200, 300, 400, 500, 600, 700, 800, 900; + +@each $value in $_font-weights { + .font-weight-#{$value} { + font-weight: $value; + } +} + +/* ===== Font Style Classes ===== */ + +$_font-styles: normal, italic; + +@each $value in $_font-styles { + .font-style-#{$value} { + font-style: $value; + } +} + +/* ===== Text Align Classes ===== */ + +$_text-aligns: left, right, center, justify; + +@each $value in $_text-aligns{ + .text-align-#{$value} { + text-align: $value; + } +} + +/* ===== Text Decoration Classes ===== */ + +$_text-decorations: "none", "underline"; + +@each $value in $_text-decorations { + .text-decoration-#{$value} { + text-decoration: $value; + } +} \ No newline at end of file diff --git a/assets/styles/sass/utilities/_index.scss b/assets/styles/sass/utilities/_index.scss new file mode 100755 index 00000000..97c44bef --- /dev/null +++ b/assets/styles/sass/utilities/_index.scss @@ -0,0 +1,9 @@ +@forward "breakpoint"; +@forward "color"; +@forward "display"; +@forward "flex"; +@forward "font"; +@forward "radius"; +@forward "spacing"; +@forward "state"; +@forward "dimension"; \ No newline at end of file diff --git a/assets/styles/sass/utilities/_radius.scss b/assets/styles/sass/utilities/_radius.scss new file mode 100755 index 00000000..296cb565 --- /dev/null +++ b/assets/styles/sass/utilities/_radius.scss @@ -0,0 +1,16 @@ +/* ===== Border Radius Config Variables ===== */ + +$radius-gap: 0.125rem !default; +$radius-iterations: 10 !default; + +/* ===== Border Radius Classes ===== */ + +@for $i from 0 through $radius-iterations { + .radius-#{$i} { + border-radius: $radius-gap * $i; + } +} + +.radius-round { + border-radius: 50%; +} \ No newline at end of file diff --git a/assets/styles/sass/utilities/_spacing.scss b/assets/styles/sass/utilities/_spacing.scss new file mode 100755 index 00000000..1f099807 --- /dev/null +++ b/assets/styles/sass/utilities/_spacing.scss @@ -0,0 +1,66 @@ +/* ===== Spacing Config Variables ===== */ + +$spacer-gap: 0.25rem !default; +$spacer-iterations: 10 !default; + +/* ===== Padding Classes ===== */ + +@for $i from 0 through $spacer-iterations { + .p-#{$i} { + padding: $i * $spacer-gap; + } // Full + + .px-#{$i} { + padding-left: $i * $spacer-gap; + padding-right: $i * $spacer-gap; + } // Horizontal + + .py-#{$i} { + padding-top: $i * $spacer-gap; + padding-bottom: $i * $spacer-gap; + } // Vertical + + .pl-#{$i} { padding-left: $i * $spacer-gap; } // Left + .pr-#{$i} { padding-right: $i * $spacer-gap; } // Right + .pt-#{$i} { padding-top: $i * $spacer-gap; } // Top + .pb-#{$i} { padding-bottom: $i * $spacer-gap; } // Bottom +} + +/* ===== Margin Classes ===== */ + +@for $i from 0 through $spacer-iterations{ + .m-#{$i} { + margin: $i * $spacer-gap; + } // Full + + .mx-#{$i} { + margin-left: $i * $spacer-gap; + margin-right: $i * $spacer-gap; + } // Horizontal + + .my-#{$i} { + margin-top: $i * $spacer-gap; + margin-bottom: $i * $spacer-gap; + } // Vertical + + .ml-#{$i} { margin-left: $i * $spacer-gap; } // Left + .mr-#{$i} { margin-right: $i * $spacer-gap; } // Right + .mt-#{$i} { margin-top: $i * $spacer-gap; } // Top + .mb-#{$i} { margin-bottom: $i * $spacer-gap; } // Bottom +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} // Horizontal Centered + +.my-auto { + margin-top: auto; + margin-bottom: auto; +} + +/* ===== Grid/Flexbox Gap Classes ===== */ + +@for $i from 0 through $spacer-iterations { + .gap-#{$i} { gap: $i * $spacer-gap; } +} \ No newline at end of file diff --git a/assets/styles/sass/utilities/_state.scss b/assets/styles/sass/utilities/_state.scss new file mode 100755 index 00000000..db6b8232 --- /dev/null +++ b/assets/styles/sass/utilities/_state.scss @@ -0,0 +1,5 @@ +/* ===== State Classes ===== */ + +.is-hidden { + display: none !important; +} \ No newline at end of file diff --git a/assets/styles/sass/vendors/_index.scss b/assets/styles/sass/vendors/_index.scss new file mode 100755 index 00000000..a6ceee71 --- /dev/null +++ b/assets/styles/sass/vendors/_index.scss @@ -0,0 +1 @@ +@forward "normalize"; \ No newline at end of file diff --git a/assets/styles/sass/vendors/_normalize.scss b/assets/styles/sass/vendors/_normalize.scss new file mode 100755 index 00000000..b6eb8216 --- /dev/null +++ b/assets/styles/sass/vendors/_normalize.scss @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + + html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} \ No newline at end of file diff --git a/config.php b/config.php new file mode 100755 index 00000000..7ac0b1da --- /dev/null +++ b/config.php @@ -0,0 +1,4 @@ +Apple Pay icon \ No newline at end of file diff --git a/drive/paypal-svdsaddgrepo-com.svg b/drive/paypal-svdsaddgrepo-com.svg new file mode 100644 index 00000000..8bfdf589 --- /dev/null +++ b/drive/paypal-svdsaddgrepo-com.svg @@ -0,0 +1 @@ + diff --git a/drive/rucoo.txt b/drive/rucoo.txt new file mode 100644 index 00000000..2a940984 --- /dev/null +++ b/drive/rucoo.txt @@ -0,0 +1,2 @@ +hello from txt +hi \ No newline at end of file diff --git a/drive/sample-5s.mp4 b/drive/sample-5s.mp4 new file mode 100644 index 00000000..7936dc09 Binary files /dev/null and b/drive/sample-5s.mp4 differ diff --git a/drive/ssssaaa.txt b/drive/ssssaaa.txt new file mode 100644 index 00000000..e69de29b diff --git a/drive/test/hello.txt b/drive/test/hello.txt new file mode 100644 index 00000000..e69de29b diff --git a/drive/test/l2c2ow.txt b/drive/test/l2c2ow.txt new file mode 100644 index 00000000..e69de29b diff --git a/index.php b/index.php new file mode 100755 index 00000000..25663a29 --- /dev/null +++ b/index.php @@ -0,0 +1,75 @@ + + + + + + + + + FileSystem Explorer + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+
+ +
+ + +
+
+ + + + \ No newline at end of file diff --git a/layouts/aside.php b/layouts/aside.php new file mode 100755 index 00000000..4377a848 --- /dev/null +++ b/layouts/aside.php @@ -0,0 +1,51 @@ + + + + + +
+ +
+ + + + + + + + + + + + + + +"; + echo "".$folder["name"].""; + + foreach($files as $key => $file ){ + + if(str_contains($file["path"], $folder["path"])){ + + echo "
  • ".$file["name"]."
  • "; + unset($files[$key]); + } + } + echo ""; + + } + +} + +function routingNav(string $path){ + + if(str_contains($path, "..")) return "index.php"; + else return $path ; + +} \ No newline at end of file diff --git a/layouts/notifications.php b/layouts/notifications.php new file mode 100755 index 00000000..45e37ae9 --- /dev/null +++ b/layouts/notifications.php @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/layouts/search.php b/layouts/search.php new file mode 100644 index 00000000..07076cb5 --- /dev/null +++ b/layouts/search.php @@ -0,0 +1,16 @@ + +
    +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeSizeLast access dateLast modification dateActions
    -svgrepo-com.svg" width="32" alt="" /> +
    + + + + + + + + + + + +
    +
    folderFolder +
    + + + + + "> + + north_east + + +
    +
    + +
    + Oops! Something went wrong :( +
    + +
    + +|]+\/?)*$/", $path)) return false; + if (preg_match("/\.{2}\//", $path)) return false; + + return true; +} + +function validateName($name) +{ + if (!preg_match("/^[^\/\\:*?\"<>|]+$/", $name)) return false; + + return true; +} + +function validateUploadedFile($file) +{ + $type = $file['type']; + $code = $file['error']; + + $FILE_TYPES = [ + 'application/msword', + 'application/vnd.ms-powerpoint', + 'application/vnd.ms-excel', + 'image/svg+xml', + 'image/jpg', + 'image/jpeg', + 'image/png', + 'text/csv', + 'text/plain', + 'application/vnd.oasis.opendocument.text', + 'application/pdf', + 'application/zip', + 'application/vnd.rar', + 'application/x-msdownload', + 'audio/mpeg', + 'video/mp4', + ]; + + if ($code) return $code; + if (!in_array($type, $FILE_TYPES)) return 9; + + return 0; +} diff --git a/utils/deleteNode.php b/utils/deleteNode.php new file mode 100644 index 00000000..03c90195 --- /dev/null +++ b/utils/deleteNode.php @@ -0,0 +1,28 @@ + $name, "size" => $size, "type" => $type, "modtime" => $modtime, "acctime" => $acctime]; +} diff --git a/utils/getFolderContent.php b/utils/getFolderContent.php new file mode 100755 index 00000000..16971634 --- /dev/null +++ b/utils/getFolderContent.php @@ -0,0 +1,59 @@ + [], "folders" => []]; + + //para que pueda obtener todo de la raiz + + $folderPathFull = $urlFolderPath === "ROOT" ? ROOT_DIRECTORY : joinPath([ROOT_DIRECTORY, $urlFolderPath]); + if ($urlFolderPath === "ROOT") $urlFolderPath = ROOT_DIRECTORY; + + try { + $fileNames = scandir($folderPathFull, SCANDIR_SORT_ASCENDING); + + foreach ($fileNames as $fileName) { + if (in_array($fileName, [".", ".."])) continue; + + $urlPath = joinPath([$urlFolderPath, $fileName]); + $filePath = joinPath([$folderPathFull, $fileName]); + $info = getFileInfo($filePath); + + $list = is_dir($filePath) ? "folders" : "files"; + + //id + array_push( + $content[$list], + [ + "path" => $urlPath, + "name" => $info["name"], + "size" => $info["size"], + "type" => $info["type"], + "modtime" => $info["modtime"], + "acctime" => $info["acctime"], + ] + ); + } + + if ($urlFolderPath !== "/") { + $parentpath = preg_replace("/\/[^\/:*?\"<>|]*$/", "", $urlFolderPath); + + array_push($content["folders"], [ + "path" => $parentpath ? $parentpath : "/", + "name" => "..", + "type" => "", + "size" => "", + "modtime" => "", + "acctime" => "" + ]); + } + + return $content; + } catch (Throwable $e) { + var_dump($e->getMessage()); + return null; + } +} diff --git a/utils/getFormattedSize.php b/utils/getFormattedSize.php new file mode 100755 index 00000000..3cf3d5dc --- /dev/null +++ b/utils/getFormattedSize.php @@ -0,0 +1,8 @@ + $node, "href" => $acc]); + } + + return $links; +} diff --git a/utils/getUploadError.php b/utils/getUploadError.php new file mode 100755 index 00000000..1f2c8458 --- /dev/null +++ b/utils/getUploadError.php @@ -0,0 +1,28 @@ + [], "folders" => []]; + + $query = $_SESSION["search"]; + + $allFiles = getFolderContent("ROOT"); + //have to do this for every folder + + foreach ($allFiles["files"] as $item) { + if (str_contains($item["name"], $query)) { + array_push($content["files"], $item); + } + } + + foreach ($allFiles["folders"] as $item) { + if (str_contains($item["name"], $query)) { + array_push($content["folders"], $item); + } + } + + + $_SESSION['QUERY'] = $content; +} diff --git a/utils/url.php b/utils/url.php new file mode 100755 index 00000000..6176768c --- /dev/null +++ b/utils/url.php @@ -0,0 +1,15 @@ +