79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Livewire\Project\Shared\EnvironmentVariable;
 | |
| 
 | |
| use Livewire\Component;
 | |
| 
 | |
| class Add extends Component
 | |
| {
 | |
|     public $parameters;
 | |
| 
 | |
|     public bool $shared = false;
 | |
| 
 | |
|     public bool $is_preview = false;
 | |
| 
 | |
|     public string $key;
 | |
| 
 | |
|     public ?string $value = null;
 | |
| 
 | |
|     public bool $is_build_time = false;
 | |
| 
 | |
|     public bool $is_multiline = false;
 | |
| 
 | |
|     public bool $is_literal = false;
 | |
| 
 | |
|     protected $listeners = ['clearAddEnv' => 'clear'];
 | |
| 
 | |
|     protected $rules = [
 | |
|         'key' => 'required|string',
 | |
|         'value' => 'nullable',
 | |
|         'is_build_time' => 'required|boolean',
 | |
|         'is_multiline' => 'required|boolean',
 | |
|         'is_literal' => 'required|boolean',
 | |
|     ];
 | |
| 
 | |
|     protected $validationAttributes = [
 | |
|         'key' => 'key',
 | |
|         'value' => 'value',
 | |
|         'is_build_time' => 'build',
 | |
|         'is_multiline' => 'multiline',
 | |
|         'is_literal' => 'literal',
 | |
|     ];
 | |
| 
 | |
|     public function mount()
 | |
|     {
 | |
|         $this->parameters = get_route_parameters();
 | |
|     }
 | |
| 
 | |
|     public function submit()
 | |
|     {
 | |
|         $this->validate();
 | |
|         // if (str($this->value)->startsWith('{{') && str($this->value)->endsWith('}}')) {
 | |
|         //     $type = str($this->value)->after('{{')->before('.')->value;
 | |
|         //     if (! collect(SHARED_VARIABLE_TYPES)->contains($type)) {
 | |
|         //         $this->dispatch('error', 'Invalid  shared variable type.', 'Valid types are: team, project, environment.');
 | |
| 
 | |
|         //         return;
 | |
|         //     }
 | |
|         // }
 | |
|         $this->dispatch('saveKey', [
 | |
|             'key' => $this->key,
 | |
|             'value' => $this->value,
 | |
|             'is_build_time' => $this->is_build_time,
 | |
|             'is_multiline' => $this->is_multiline,
 | |
|             'is_literal' => $this->is_literal,
 | |
|             'is_preview' => $this->is_preview,
 | |
|         ]);
 | |
|         $this->clear();
 | |
|     }
 | |
| 
 | |
|     public function clear()
 | |
|     {
 | |
|         $this->key = '';
 | |
|         $this->value = '';
 | |
|         $this->is_build_time = false;
 | |
|         $this->is_multiline = false;
 | |
|         $this->is_literal = false;
 | |
|     }
 | |
| }
 | 
