mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 23:37:33 -05:00 
			
		
		
		
	Merge remote-tracking branch 'origin/ClientRegistrationRefactor' into v5-develop
This commit is contained in:
		
						commit
						5f0614066c
					
				@ -20,82 +20,102 @@ class ClientRegistrationFields
 | 
				
			|||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'first_name',
 | 
					                'key' => 'first_name',
 | 
				
			||||||
                'required' => true,
 | 
					                'required' => true,
 | 
				
			||||||
 | 
					                'visible' => true,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'last_name',
 | 
					                'key' => 'last_name',
 | 
				
			||||||
                'required' => true,
 | 
					                'required' => true,
 | 
				
			||||||
 | 
					                'visible' => true,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'email',
 | 
					                'key' => 'email',
 | 
				
			||||||
                'required' => true,
 | 
					                'required' => true,
 | 
				
			||||||
 | 
					                'visible' => true,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'phone',
 | 
					                'key' => 'phone',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => true,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'password',
 | 
					                'key' => 'password',
 | 
				
			||||||
                'required' => true,
 | 
					                'required' => true,
 | 
				
			||||||
 | 
					                'visible' => true,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'name',
 | 
					                'key' => 'name',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'website',
 | 
					                'key' => 'website',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'address1',
 | 
					                'key' => 'address1',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'address2',
 | 
					                'key' => 'address2',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'city',
 | 
					                'key' => 'city',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'state',
 | 
					                'key' => 'state',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'postal_code',
 | 
					                'key' => 'postal_code',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'country_id',
 | 
					                'key' => 'country_id',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'custom_value1',
 | 
					                'key' => 'custom_value1',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'custom_value2',
 | 
					                'key' => 'custom_value2',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'custom_value3',
 | 
					                'key' => 'custom_value3',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'custom_value4',
 | 
					                'key' => 'custom_value4',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'public_notes',
 | 
					                'key' => 'public_notes',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'vat_number',
 | 
					                'key' => 'vat_number',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            [
 | 
					            [
 | 
				
			||||||
                'key' => 'currency_id',
 | 
					                'key' => 'currency_id',
 | 
				
			||||||
                'required' => false,
 | 
					                'required' => false,
 | 
				
			||||||
 | 
					                'visible' => false,
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -40,8 +40,8 @@ class RegisterRequest extends FormRequest
 | 
				
			|||||||
        $rules = [];
 | 
					        $rules = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        foreach ($this->company()->client_registration_fields as $field) {
 | 
					        foreach ($this->company()->client_registration_fields as $field) {
 | 
				
			||||||
            if ($field['required']) {
 | 
					            if ($field['visible']) {
 | 
				
			||||||
                $rules[$field['key']] = ['bail','required'];
 | 
					                $rules[$field['key']] = $field['required'] ? ['bail','required'] : ['sometimes'];
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Models\Company;
 | 
				
			||||||
 | 
					use Illuminate\Support\Facades\Schema;
 | 
				
			||||||
 | 
					use Illuminate\Database\Schema\Blueprint;
 | 
				
			||||||
 | 
					use Illuminate\Database\Migrations\Migration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return new class extends Migration
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Run the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function up()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Company::query()->cursor()->each(function ($company){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $crfs = $company->client_registration_fields;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            foreach($crfs as $key => $crf)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                $crfs[$key]['visible'] = $crfs[$key]['required'];
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $company->client_registration_fields = $crfs;
 | 
				
			||||||
 | 
					            $company->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Reverse the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function down()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -29,7 +29,7 @@
 | 
				
			|||||||
                <div class="grid grid-cols-12 gap-4 mt-10">
 | 
					                <div class="grid grid-cols-12 gap-4 mt-10">
 | 
				
			||||||
                    @if($register_company->client_registration_fields)
 | 
					                    @if($register_company->client_registration_fields)
 | 
				
			||||||
                    @foreach($register_company->client_registration_fields as $field)
 | 
					                    @foreach($register_company->client_registration_fields as $field)
 | 
				
			||||||
                        @if($field['required'])
 | 
					                        @if($field['visible'])
 | 
				
			||||||
                            <div class="col-span-12 md:col-span-6">
 | 
					                            <div class="col-span-12 md:col-span-6">
 | 
				
			||||||
                                <section class="flex items-center">
 | 
					                                <section class="flex items-center">
 | 
				
			||||||
                                    <label 
 | 
					                                    <label 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user