Browse Source

frontend: make use of new width space and use more icons

develop
Alice Gaudon 1 month ago
parent
commit
7d6242861e
6 changed files with 113 additions and 109 deletions
  1. +1
    -1
      assets/sass/_vars.scss
  2. +40
    -40
      views/desktop-utility.njk
  3. +43
    -41
      views/file-manager.njk
  4. +1
    -1
      views/file-upload.njk
  5. +27
    -25
      views/url-manager.njk
  6. +1
    -1
      views/url-shrinker.njk

+ 1
- 1
assets/sass/_vars.scss View File

@ -29,5 +29,5 @@ $errorText: darken($error, 30%);
$errorColor: desaturate($errorText, 50%);
// Responsivity
$mobileThreshold: 632px;
$mobileThreshold: 850px;
$desktopThreshold: 940px;

+ 40
- 40
views/desktop-utility.njk View File

@ -1,6 +1,6 @@
<div class="container">
<section class="panel">
<h2>Setup a desktop utility</h2>
<h2><i data-feather="tool"></i> Setup a desktop utility</h2>
<p>There may be a desktop client at some point. For now, if you're an advanced user, you can setup
scripts/macros.</p>
@ -12,7 +12,7 @@
<table class="data-table">
<thead>
<tr>
<th>Name</th>
<th class="table-col-grow">Name</th>
<th>Download link</th>
</tr>
</thead>
@ -114,46 +114,46 @@
<p>For examples with curl, please download and review the scripts above.</p>
</section>
</section>
</div>
<section class="panel">
<h2>Auth tokens</h2>
<form action="{{ route('generate-token') }}" method="POST">
{{ macros.csrf(getCsrfToken) }}
<button type="submit"><i data-feather="plus"></i> Generate a new token</button>
</form>
<section class="panel">
<h2><i data-feather="key"></i> Auth tokens</h2>
<form action="{{ route('generate-token') }}" method="POST">
{{ macros.csrf(getCsrfToken) }}
<table class="data-table">
<thead>
<tr>
<th>#</th>
<th>Secret</th>
<th>Created at</th>
<th>Last used at</th>
<th>Actions</th>
</tr>
</thead>
<button type="submit"><i data-feather="plus"></i> Generate a new token</button>
</form>
<tbody>
{% for token in auth_tokens %}
<table class="data-table">
<thead>
<tr>
<td>{{ token.id }}</td>
<td>
<div class="copyable-text">
<div class="content">{{ token.secret }}</div>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td>{{ token.created_at.toISOString() }}</td>
<td>{{ token.used_at.toISOString() }}</td>
<td>
<form action="{{ route('revoke-token', token.id) }}" method="POST">
<button class="button danger"><i data-feather="trash"></i> Revoke</button>
</form>
</td>
<th>#</th>
<th class="table-col-grow">Secret</th>
<th>Created at</th>
<th>Last used at</th>
<th>Actions</th>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</thead>
<tbody>
{% for token in auth_tokens %}
<tr>
<td>{{ token.id }}</td>
<td>
<div class="copyable-text">
<div class="content">{{ token.secret }}</div>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td>{{ token.created_at.toISOString() }}</td>
<td>{{ token.used_at.toISOString() }}</td>
<td class="actions">
<form action="{{ route('revoke-token', token.id) }}" method="POST">
<button class="button danger"><i data-feather="trash"></i> <span class="tip">Revoke</span></button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</div>

+ 43
- 41
views/file-manager.njk View File

@ -10,47 +10,49 @@
<h1>File manager</h1>
<p>You're their manager, please be nice with them.</p>
<section class="panel">
<h2>File list</h2>
<table class="data-table">
<thead>
<tr>
<th>#</th>
<th>URL</th>
<th>Name</th>
<th>Size</th>
<th>Expires at</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for file in files %}
<div class="container">
<section class="panel">
<h2><i data-feather="folder"></i> File list</h2>
<table class="data-table">
<thead>
<tr>
<td>{{ file.id }}</td>
<td>
<div class="copyable-text">
<a class="content" href="{{ file.getURL() }}" target="_blank">{{ file.getURL() }}</a>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td>{{ file.real_name }}</td>
<td>{{ (file.size / (1024 * 1024)).toFixed(2) }}MB</td>
{% set expires_at = file.getExpirationDate() %}
<td>{% if expires_at %}{{ expires_at.toISOString() }}{% else %}Never{% endif %}</td>
<td>
{% if file.shouldBeDeleted() %}
Pending deletion
{% else %}
<form action="{{ route('delete-file-frontend', file.slug) }}" method="post">
{{ macros.csrf(getCsrfToken) }}
<button class="button danger"><i data-feather="trash"></i> Delete</button>
</form>
{% endif %}
</td>
<th>#</th>
<th class="table-col-grow">URL</th>
<th>Name</th>
<th>Size</th>
<th>Expires at</th>
<th>Actions</th>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</thead>
<tbody>
{% for file in files %}
<tr>
<td>{{ file.id }}</td>
<td>
<div class="copyable-text">
<a class="content" href="{{ file.getURL() }}" target="_blank">{{ file.getURL() }}</a>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td><pre>{{ file.real_name }}</pre></td>
<td>{{ (file.size / (1024 * 1024)).toFixed(2) }}MB</td>
{% set expires_at = file.getExpirationDate() %}
<td>{% if expires_at %}{{ expires_at.toISOString() }}{% else %}Never{% endif %}</td>
<td class="actions">
{% if file.shouldBeDeleted() %}
Pending deletion
{% else %}
<form action="{{ route('delete-file-frontend', file.slug) }}" method="post">
{{ macros.csrf(getCsrfToken) }}
<button class="button danger"><i data-feather="trash"></i> <span class="tip">Delete</span></button>
</form>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</div>
{% endblock %}

+ 1
- 1
views/file-upload.njk View File

@ -12,7 +12,7 @@
<div class="container">
<section class="panel">
<h2>Upload a file</h2>
<h2><i data-feather="upload"></i> Upload a file</h2>
<form action="{{ route('post-file-frontend') }}" method="POST" enctype="multipart/form-data"
id="upload-form">


+ 27
- 25
views/url-manager.njk View File

@ -8,31 +8,33 @@
<h1>URL manager</h1>
<p>These are permanent.</p>
<section class="panel">
<h2>URL list</h2>
<table class="data-table">
<thead>
<tr>
<th>#</th>
<th>URL</th>
<th>Target</th>
</tr>
</thead>
<tbody>
{% for url in urls %}
<div class="container">
<section class="panel">
<h2><i data-feather="link"></i> URL list</h2>
<table class="data-table">
<thead>
<tr>
<td>{{ url.id }}</td>
<td>
<div class="copyable-text">
<a class="content" href="{{ url.getURL() }}" target="_blank">{{ url.getURL() }}</a>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td>{{ url.target_url }}</td>
<th>#</th>
<th class="table-col-grow">URL</th>
<th>Target</th>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</thead>
<tbody>
{% for url in urls %}
<tr>
<td>{{ url.id }}</td>
<td>
<div class="copyable-text">
<a class="content" href="{{ url.getURL() }}" target="_blank">{{ url.getURL() }}</a>
<button class="copy-button"><i data-feather="copy"></i></button>
</div>
</td>
<td><pre>{{ url.target_url }}</pre></td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</div>
{% endblock %}

+ 1
- 1
views/url-shrinker.njk View File

@ -12,7 +12,7 @@
<div class="container">
<section class="panel">
<h2>Shrink a URL</h2>
<h2><i data-feather="crosshair"></i> Shrink a URL</h2>
<form action="{{ route('shrink-url') }}" method="POST" id="url-shrink-form">
{{ macros.field(_locals, 'text', 'target_url', '', 'Target URL', 'Only valid URLs starting with http:// or https://', validation_attributes='required') }}


Loading…
Cancel
Save