15
templates/_partials/_row.html.twig
Normal file
15
templates/_partials/_row.html.twig
Normal file
@ -0,0 +1,15 @@
|
||||
<tr class="border-b">
|
||||
<th scope="row" class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap dark:text-white">
|
||||
{% if file.type == 'dir' %}
|
||||
{{ ux_icon('folder:closed', {height: '32px', width: '32px'}) }}
|
||||
{% else %}
|
||||
{{ ux_icon('file:default', {height: '32px', width: '32px'}) }}
|
||||
{% endif %}
|
||||
</th>
|
||||
<td class="px-6 py-4">
|
||||
{{ file.name }}
|
||||
</td>
|
||||
<td class="px-6 py-4">
|
||||
{{ file.size }}
|
||||
</td>
|
||||
</tr>
|
36
templates/_partials/_table.html.twig
Normal file
36
templates/_partials/_table.html.twig
Normal file
@ -0,0 +1,36 @@
|
||||
<div class="max-w-4xl overflow-x-auto shadow-md sm:rounded-lg ">
|
||||
<table class="w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400">
|
||||
<thead class="text-xs text-gray-700 uppercase bg-gray-200 dark:bg-gray-700 dark:text-gray-400">
|
||||
<tr>
|
||||
<th scope="col" class="px-6 py-3" style="width: 5%;">
|
||||
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
name
|
||||
</th>
|
||||
<th scope="col" class="px-6 py-3">
|
||||
Size
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for dirContent in content %}
|
||||
{% include '_partials/_row.html.twig' with {file: dirContent} %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
{{ form_start(fileForm, {'attr': {'data-controller': 'upload-file'}}) }}
|
||||
<div class="flex items-center justify-center max-w-4xl mt-5">
|
||||
<label for="upload_file_form_file" class="flex flex-col items-center justify-center w-full h-64 border-2 border-gray-300 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-gray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600">
|
||||
<div class="flex flex-col items-center justify-center pt-5 pb-6">
|
||||
{{ ux_icon('file:upload', {height: '64px', width: '64px'}) }}
|
||||
<p class="mb-2 text-sm text-gray-500 dark:text-gray-400"><span class="font-semibold">Click to upload</span> or drag and drop</p>
|
||||
</div>
|
||||
{{ form_widget(fileForm.file) }}
|
||||
<button type="submit" class="hidden"></button>
|
||||
</label>
|
||||
</div>
|
||||
{{ form_end(fileForm) }}
|
20
templates/base.html.twig
Normal file
20
templates/base.html.twig
Normal file
@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Files | {% block title %}{% endblock %}</title>
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text><text y=%221.3em%22 x=%220.2em%22 font-size=%2276%22 fill=%22%23fff%22>sf</text></svg>">
|
||||
<link href="https://cdn.jsdelivr.net/npm/flowbite@2.5.2/dist/flowbite.min.css" rel="stylesheet" />
|
||||
<script src="https://cdn.jsdelivr.net/npm/flowbite@2.5.2/dist/flowbite.min.js"></script>
|
||||
|
||||
{% block stylesheets %}
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
{% block importmap %}{{ importmap('app') }}{% endblock %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body data-turbo="true">
|
||||
{% block body %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
9
templates/home.html.twig
Normal file
9
templates/home.html.twig
Normal file
@ -0,0 +1,9 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Home{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<center class="container mt-5">
|
||||
{% include '_partials/_table.html.twig' %}
|
||||
</center>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user