Fixing relative URLs bug + Adding EasyMDE

This commit is contained in:
Axel 2024-01-05 14:49:58 +01:00
parent d675b8efda
commit b418163269
12 changed files with 2019 additions and 246 deletions

1
.gitignore vendored
View file

@ -19,3 +19,4 @@ yarn-error.log
/.vscode
/storage/content
/storage/clockwork
.DS_Store

View file

@ -7,6 +7,7 @@ use App\Helpers\Upload;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
use App\Http\Resources\UserResource;
use App\Http\Resources\FileResource;
@ -37,6 +38,7 @@ class BundleResource extends JsonResource
'fullsize' => (int)$this->fullsize,
'title' => $this->title,
'description' => $this->description,
'description_html' => ! empty($this->description) ? Str::markdown($this->description) : null,
'max_downloads' => (int)$this->max_downloads,
'downloads' => (int)$this->downloads,
'files' => FileResource::collection($this->files),

1793
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -13,6 +13,7 @@
"alpinejs": "^3.12.0",
"autoprefixer": "^10.4.14",
"dropzone": "^6.0.0-beta.2",
"easymde": "^2.18.0",
"global": "^4.4.0",
"lodash": "^4.17.21",
"moment": "^2.29.4",

View file

@ -130,7 +130,7 @@
<span class="font-title text-xs text-primary uppercase mr-1">
@lang('app.upload-description')
</span>
<span x-text="metadata.description"></span>
<span x-html="metadata.description_html"></span>
</p>
</div>

View file

@ -1,7 +1,7 @@
<header class="relative bg-gradient-to-r from-primary-light to-primary px-2 py-4 text-center">
<h1 class="relative font-title font-medium font-body text-4xl text-center text-white uppercase">
<div class="grow text-center">
<a href="/">
<a href="{{ route('homepage') }}">
{{ config('app.name') }}
</a>
</div>

View file

@ -50,7 +50,7 @@
newBundle: function() {
axios({
url: '/new',
url: BASE_URL+'/new',
method: 'POST'
})
.then( (response) => {
@ -144,7 +144,7 @@
</select>
@else
<p class="text-center">
<a href="/login" class="text-primary font-bold hover:underline">@lang('app.do-login')</a>
<a href="{{ route('login') }}" class="text-primary font-bold hover:underline">@lang('app.do-login')</a>
@lang('app.to-get-bundles')
</p>
@endif

View file

@ -12,6 +12,10 @@
@stack('styles')
@vite('resources/js/app.js')
<script>
const BASE_URL = '{{ route('homepage') }}'
</script>
</head>
<body class="font-display text-[13px] selection:bg-purple-100 outline-none select-none">

View file

@ -32,7 +32,7 @@
}
axios({
url: '/login',
url: BASE_URL+'/login',
method: 'POST',
data: {
login: this.user.login,

View file

@ -3,8 +3,11 @@
@section('page_title', __('app.upload-files-title'))
@push('scripts')
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.css">
<script src="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.js"></script>
<script>
let baseUrl = @js($baseUrl);
let bundle = @js($bundle);
let maxFiles = @js(config('sharing.max_files'));
@ -14,6 +17,7 @@
Alpine.data('upload', () => ({
bundle: null,
dropzone: null,
easymde: null,
uploadedFiles: [],
completed: false,
step: 0,
@ -55,6 +59,15 @@
else {
this.step = 1
}
this.easymde = new EasyMDE({
maxHeight: '50px',
forceSync: false,
initialValue: this.bundle.description,
spellChecker: false,
status: false,
autofocus: false
});
}
},
@ -90,12 +103,12 @@
}
axios({
url: '/upload/'+this.bundle.slug,
url: BASE_URL+'/upload/'+this.bundle.slug,
method: 'POST',
data: {
expiry: this.bundle.expiry,
title: this.bundle.title,
description: this.bundle.description,
description: this.easymde.value(),
max_downloads: this.bundle.max_downloads,
password: this.bundle.password,
auth: this.bundle.owner_token
@ -119,7 +132,7 @@
this.showModal('{{ __('app.confirm-complete') }}', () => {
axios({
url: '/upload/'+this.bundle.slug+'/complete',
url: BASE_URL+'/upload/'+this.bundle.slug+'/complete',
method: 'POST',
data: {
auth: this.bundle.owner_token
@ -147,7 +160,7 @@
this.maxFiles = this.maxFiles - this.countFilesOnServer() >= 0 ? this.maxFiles - this.countFilesOnServer() : 0
this.dropzone = new Dropzone('#upload-frm', {
url: '/upload/'+this.bundle.slug+'/file',
url: BASE_URL+'/upload/'+this.bundle.slug+'/file',
method: 'POST',
headers: {
'X-Upload-Auth': this.bundle.owner_token
@ -223,7 +236,7 @@
let lfile = file
axios({
url: '/upload/'+this.bundle.slug+'/file',
url: BASE_URL+'/upload/'+this.bundle.slug+'/file',
method: 'DELETE',
data: {
uuid: lfile.uuid,
@ -252,7 +265,7 @@
deleteBundle: function() {
this.showModal('{{ __('app.confirm-delete-bundle') }}', () => {
axios({
url: '/upload/'+this.bundle.slug+'/delete',
url: BASE_URL+'/upload/'+this.bundle.slug+'/delete',
method: 'DELETE',
data: {
auth: this.bundle.owner_token

View file

@ -24,8 +24,8 @@ use App\Http\Middleware\UploadAccess;
Public route for login
*/
Route::controller(WebController::class)->group(function() {
Route::get('/login', 'login');
Route::post('/login', 'doLogin');
Route::get('/login', 'login')->name('login');
Route::post('/login', 'doLogin')->name('login.post');
Route::get('/logout', 'logout')->name('logout');
});

425
yarn.lock

File diff suppressed because it is too large Load diff