diff --git a/laravel_app/app/Livewire/DownloadForm.php b/laravel_app/app/Livewire/DownloadForm.php new file mode 100644 index 0000000..65d7546 --- /dev/null +++ b/laravel_app/app/Livewire/DownloadForm.php @@ -0,0 +1,59 @@ +loginUsingId(1); + $this->buttonText = __('Start'); + } + + public function start() + { + $this->buttonText = __('Downloading...'); + + // Commands to run + $projectFolder = base_path('../'); + + $command = [ + sprintf('%srunpython.sh', $projectFolder ), + ]; + + // Convert commands array to a single string + + $process = new Process($command); + $process->setTimeout(3600); // stel een geschikte timeout in + $process->start(); + + try { + $myOutput = []; + $process->wait(function ($type, $buffer) use (&$myOutput){ + $this->stream(to: 'output', content: $buffer); + $myOutput[] = $buffer; + }); + $this->output = collect($myOutput)->join('
'); + + } catch (ProcessFailedException $exception) { + + logger('error', $exception->getMessage()); + echo $exception->getMessage(); + } + $this->buttonText = __('Done'); + } + + + + + public function render() + { + return view('livewire.download-form'); + } +} diff --git a/laravel_app/config/livewire.php b/laravel_app/config/livewire.php new file mode 100644 index 0000000..cdce349 --- /dev/null +++ b/laravel_app/config/livewire.php @@ -0,0 +1,159 @@ + 'App\\Livewire', + + /* + |--------------------------------------------------------------------------- + | View Path + |--------------------------------------------------------------------------- + | + | This value is used to specify where Livewire component Blade templates are + | stored when running file creation commands like `artisan make:livewire`. + | It is also used if you choose to omit a component's render() method. + | + */ + + 'view_path' => resource_path('views/livewire'), + + /* + |--------------------------------------------------------------------------- + | Layout + |--------------------------------------------------------------------------- + | The view that will be used as the layout when rendering a single component + | as an entire page via `Route::get('/post/create', CreatePost::class);`. + | In this case, the view returned by CreatePost will render into $slot. + | + */ + + 'layout' => 'layouts.app', + + /* + |--------------------------------------------------------------------------- + | Lazy Loading Placeholder + |--------------------------------------------------------------------------- + | Livewire allows you to lazy load components that would otherwise slow down + | the initial page load. Every component can have a custom placeholder or + | you can define the default placeholder view for all components below. + | + */ + + 'lazy_placeholder' => null, + + /* + |--------------------------------------------------------------------------- + | Temporary File Uploads + |--------------------------------------------------------------------------- + | + | Livewire handles file uploads by storing uploads in a temporary directory + | before the file is stored permanently. All file uploads are directed to + | a global endpoint for temporary storage. You may configure this below: + | + */ + + 'temporary_file_upload' => [ + 'disk' => null, // Example: 'local', 's3' | Default: 'default' + 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB) + 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp' + 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1' + 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs... + 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4', + 'mov', 'avi', 'wmv', 'mp3', 'm4a', + 'jpg', 'jpeg', 'mpga', 'webp', 'wma', + ], + 'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated... + ], + + /* + |--------------------------------------------------------------------------- + | Render On Redirect + |--------------------------------------------------------------------------- + | + | This value determines if Livewire will run a component's `render()` method + | after a redirect has been triggered using something like `redirect(...)` + | Setting this to true will render the view once more before redirecting + | + */ + + 'render_on_redirect' => false, + + /* + |--------------------------------------------------------------------------- + | Eloquent Model Binding + |--------------------------------------------------------------------------- + | + | Previous versions of Livewire supported binding directly to eloquent model + | properties using wire:model by default. However, this behavior has been + | deemed too "magical" and has therefore been put under a feature flag. + | + */ + + 'legacy_model_binding' => false, + + /* + |--------------------------------------------------------------------------- + | Auto-inject Frontend Assets + |--------------------------------------------------------------------------- + | + | By default, Livewire automatically injects its JavaScript and CSS into the + | and of pages containing Livewire components. By disabling + | this behavior, you need to use @livewireStyles and @livewireScripts. + | + */ + + 'inject_assets' => true, + + /* + |--------------------------------------------------------------------------- + | Navigate (SPA mode) + |--------------------------------------------------------------------------- + | + | By adding `wire:navigate` to links in your Livewire application, Livewire + | will prevent the default link handling and instead request those pages + | via AJAX, creating an SPA-like effect. Configure this behavior here. + | + */ + + 'navigate' => [ + 'show_progress_bar' => true, + 'progress_bar_color' => '#2299dd', + ], + + /* + |--------------------------------------------------------------------------- + | HTML Morph Markers + |--------------------------------------------------------------------------- + | + | Livewire intelligently "morphs" existing HTML into the newly rendered HTML + | after each update. To make this process more reliable, Livewire injects + | "markers" into the rendered Blade surrounding @if, @class & @foreach. + | + */ + + 'inject_morph_markers' => true, + + /* + |--------------------------------------------------------------------------- + | Pagination Theme + |--------------------------------------------------------------------------- + | + | When enabling Livewire's pagination feature by using the `WithPagination` + | trait, Livewire will use Tailwind templates to render pagination views + | on the page. If you want Bootstrap CSS, you can specify: "bootstrap" + | + */ + + 'pagination_theme' => 'tailwind', +]; diff --git a/laravel_app/resources/views/components/layouts/app1.blade.php b/laravel_app/resources/views/components/layouts/app1.blade.php new file mode 100644 index 0000000..9e219c0 --- /dev/null +++ b/laravel_app/resources/views/components/layouts/app1.blade.php @@ -0,0 +1,14 @@ + + + + + + + + + {{ $title ?? 'Page Title' }} + + +{{ $slot }} + + diff --git a/laravel_app/resources/views/livewire/download-form.blade.php b/laravel_app/resources/views/livewire/download-form.blade.php new file mode 100644 index 0000000..2b04383 --- /dev/null +++ b/laravel_app/resources/views/livewire/download-form.blade.php @@ -0,0 +1,40 @@ + + + {{ __('Two Factor Authentication') }} + + + + {{ __('Add additional security to your account using two factor authentication.') }} + + + +

+ {{ __('Finish enabling two factor authentication.') }} + +

+
+

+ {{ __('When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone\'s Google Authenticator application.') }} +

+
+
+

+ {{ __('some text') }} +

+
+ +
{{ $output }} +
+
+ + {{ $buttonText }} + +
+
+
+ + + + + diff --git a/laravel_app/routes/web.php b/laravel_app/routes/web.php index 5b2f286..8865335 100644 --- a/laravel_app/routes/web.php +++ b/laravel_app/routes/web.php @@ -13,6 +13,7 @@ | */ +Route::get('/streamer', \App\Livewire\DownloadForm::class ); Route::get('/', function () { return view('welcome'); });