mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-10-31 20:56:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers\Admin\Eggs;
 | |
| 
 | |
| use Illuminate\View\View;
 | |
| use App\Models\Egg;
 | |
| use Illuminate\Http\RedirectResponse;
 | |
| use Prologue\Alerts\AlertsMessageBag;
 | |
| use Illuminate\View\Factory as ViewFactory;
 | |
| use App\Http\Controllers\Controller;
 | |
| use App\Services\Eggs\Scripts\InstallScriptService;
 | |
| use App\Http\Requests\Admin\Egg\EggScriptFormRequest;
 | |
| 
 | |
| class EggScriptController extends Controller
 | |
| {
 | |
|     /**
 | |
|      * EggScriptController constructor.
 | |
|      */
 | |
|     public function __construct(
 | |
|         protected AlertsMessageBag $alert,
 | |
|         protected InstallScriptService $installScriptService,
 | |
|         protected ViewFactory $view
 | |
|     ) {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Handle requests to render installation script for an Egg.
 | |
|      */
 | |
|     public function index(int $egg): View
 | |
|     {
 | |
|         $egg = Egg::with('scriptFrom', 'configFrom')
 | |
|             ->where('id', $egg)
 | |
|             ->firstOrFail();
 | |
| 
 | |
|         $copy = Egg::query()
 | |
|             ->whereNull('copy_script_from')
 | |
|             ->whereNot('id', $egg->id)
 | |
|             ->firstOrFail();
 | |
| 
 | |
|         $rely = Egg::query()->where('copy_script_from', $egg->id)->firstOrFail();
 | |
| 
 | |
|         return view('admin.eggs.scripts', [
 | |
|             'copyFromOptions' => $copy,
 | |
|             'relyOnScript' => $rely,
 | |
|             'egg' => $egg,
 | |
|         ]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Handle a request to update the installation script for an Egg.
 | |
|      *
 | |
|      * @throws \App\Exceptions\Model\DataValidationException
 | |
|      */
 | |
|     public function update(EggScriptFormRequest $request, Egg $egg): RedirectResponse
 | |
|     {
 | |
|         $this->installScriptService->handle($egg, $request->normalize());
 | |
|         $this->alert->success(trans('admin/eggs.notices.script_updated'))->flash();
 | |
| 
 | |
|         return redirect()->route('admin.eggs.scripts', $egg);
 | |
|     }
 | |
| }
 | 
