Bläddra i källkod

fix generali fruibilità x end-user

ferrari 3 månader sedan
förälder
incheckning
3253001cd4

+ 3 - 3
app/Livewire/Login.php

@@ -40,13 +40,13 @@ class Login extends Component
         
             $user = Auth::user();
 
-            /*if (!$user->first_login_completed) 
+            if (!$user->first_login_completed) 
             {
                 $user->first_login_at = now();
                 $user->save();
 
-                return redirect('/first-login');
-            }*/
+                return redirect('/onboarding');
+            }
 
             return redirect()->route('dashboard');
         } 

+ 5 - 1
app/Models/City.php

@@ -11,6 +11,11 @@ class City extends Model
     use HasFactory;
     use SoftDeletes;
 
+    public function __construct()
+    {
+        setTenant();
+    }
+
     protected $fillable = [
         'country_id',
         'name',
@@ -21,5 +26,4 @@ class City extends Model
     {
         return $this->belongsTo(\App\Models\Country::class);
     }
-
 }

+ 5 - 0
app/Models/Country.php

@@ -11,6 +11,11 @@ class Country extends Model
     use HasFactory;
     use SoftDeletes;
 
+    public function __construct()
+    {
+        setTenant();
+    }
+
     protected $fillable = [
         'name',
         'enabled',

+ 122 - 109
public/assets/js/form-wizard/form-wizard.js

@@ -1,59 +1,72 @@
 // 1. horizontal wizard
 "use strict";
 var currentTab = 0;
+let nextBtn;
+let submitBtn;
 showTab(currentTab);
 function showTab(n) {
-  var x = document.getElementsByClassName("tab");
-  x[n].style.display = "block";
-  if (n == 0) {
-    document.getElementById("prevBtn").style.display = "none";
-  } else {
-    document.getElementById("prevBtn").style.display = "inline";
-  }
-  if (n == x.length - 1) {
-    // document.getElementById("nextBtn").innerHTML = "Invia";
-    document.getElementById("nextBtn").innerHTML = "Avanti";
-  } else {
-    document.getElementById("nextBtn").innerHTML = "Avanti";
-  }
-  fixStepIndicator(n);
+    var x = document.getElementsByClassName("tab");
+    x[n].style.display = "block";
+    if (n == 0) {
+        document.getElementById("prevBtn").style.display = "none";
+    } else {
+        document.getElementById("prevBtn").style.display = "inline";
+    }
+    if (n == x.length - 1) {
+        // document.getElementById("nextBtn").innerHTML = "Invia";
+        document.getElementById("nextBtn").innerHTML = "Avanti";
+    } else {
+        document.getElementById("nextBtn").innerHTML = "Avanti";
+    }
+    fixStepIndicator(n);
 }
 function nextPrev(n) {
-  var x = document.getElementsByClassName("tab");
-  if (n == 1 && !validateForm()) return false;
-  x[currentTab].style.display = "none";
-  currentTab = currentTab + n;
-  if (currentTab >= x.length) {
-    document.getElementById("regForm").submit();
-    return false;
-  }
-  showTab(currentTab);
+    nextBtn = document.getElementById("nextBtn");
+    submitBtn = document.getElementById("submitBtn");
+
+    var x = document.getElementsByClassName("tab");
+    if (n == 1 && !validateForm()) return false;
+    x[currentTab].style.display = "none";
+    currentTab = currentTab + n;
+    if (currentTab == x.length - 1) {
+      nextBtn.style.display = "none";
+      submitBtn.style.display = "";
+    } else {
+      submitBtn.style.display = "none";
+      nextBtn.style.display = "";
+    }
+    if (currentTab >= x.length) {
+        document.getElementById("regForm").submit();
+        return false;
+    }
+    showTab(currentTab);
 }
 function validateForm() {
-  var x,
-    y,
-    i,
-    valid = true;
-  x = document.getElementsByClassName("tab");
-  y = x[currentTab].getElementsByTagName("input");
-  for (i = 0; i < y.length; i++) {
-    if (y[i].value == "") {
-      y[i].className += " invalid";
-      valid = false;
+    var x,
+        y,
+        i,
+        valid = true;
+    x = document.getElementsByClassName("tab");
+    y = x[currentTab].getElementsByTagName("input");
+    for (i = 0; i < y.length; i++) {
+        if (y[i].value == "") {
+            y[i].className += " invalid";
+            valid = false;
+        }
+    }
+    if (valid) {
+        document.getElementsByClassName("step")[currentTab].className +=
+            " finish";
     }
-  }
-  if (valid) {
-    document.getElementsByClassName("step")[currentTab].className += " finish";
-  }
-  return valid;
+    return valid;
 }
 function fixStepIndicator(n) {
-  var i,
-    x = document.getElementsByClassName("step");
-  for (i = 0; i < x.length; i++) {
-    x[i].className = x[i].className.replace(" active", "");
-  }
-  x[n].className += " active";
+    var i,
+        x = document.getElementsByClassName("step");
+    for (i = 0; i < x.length; i++) {
+        x[i].className = x[i].className.replace(" active", "");
+    }
+    x[n].className += " active";
 }
 // 2. Numbering wizard
 var form = document.getElementById("msform");
@@ -61,65 +74,65 @@ var fieldsets = form.querySelectorAll("form");
 var currentStep = 0;
 var numSteps = 5;
 for (var i = 1; i < fieldsets.length; i++) {
-  fieldsets[i].style.display = "none";
+    fieldsets[i].style.display = "none";
 }
 function nextStep() {
-  document.getElementById("backbtn").disabled = false;
-  currentStep++;
-  if (currentStep > numSteps) {
-    currentStep = 1;
-  }
-  var stepper = document.getElementById("stepper1");
-  var steps = stepper.getElementsByClassName("step");
-  Array.from(steps).forEach((step, index) => {
-    let stepNum = index + 1;
-    let stepLength = steps.length;
-    if (stepNum === currentStep && currentStep < stepLength) {
-      addClass(step, "editing");
-      fieldsets[currentStep].style.display = "flex";
-    } else {
-      removeClass(step, "editing");
-    }
-    if (stepNum <= currentStep && currentStep < stepLength) {
-      addClass(step, "done");
-      addClass(step, "active");
-      removeClass(step, "editing");
-      fieldsets[currentStep - 1].style.display = "none";
-    } else {
-      removeClass(step, "done");
-    }
-    if (currentStep == stepLength - 1) {
-      document.getElementById("nextbtn").textContent = "Avanti";
-    }
-    if (currentStep > stepLength - 1) {
-      document.getElementById("nextbtn").textContent = "Avanti";
-      addClass(step, "done");
-      addClass(step, "active");
-      removeClass(step, "editing");
-      document.getElementById("nextbtn").disabled = true;
+    document.getElementById("backbtn").disabled = false;
+    currentStep++;
+    if (currentStep > numSteps) {
+        currentStep = 1;
     }
-  });
+    var stepper = document.getElementById("stepper1");
+    var steps = stepper.getElementsByClassName("step");
+    Array.from(steps).forEach((step, index) => {
+        let stepNum = index + 1;
+        let stepLength = steps.length;
+        if (stepNum === currentStep && currentStep < stepLength) {
+            addClass(step, "editing");
+            fieldsets[currentStep].style.display = "flex";
+        } else {
+            removeClass(step, "editing");
+        }
+        if (stepNum <= currentStep && currentStep < stepLength) {
+            addClass(step, "done");
+            addClass(step, "active");
+            removeClass(step, "editing");
+            fieldsets[currentStep - 1].style.display = "none";
+        } else {
+            removeClass(step, "done");
+        }
+        if (currentStep == stepLength - 1) {
+            document.getElementById("nextbtn").textContent = "Avanti";
+        }
+        if (currentStep > stepLength - 1) {
+            document.getElementById("nextbtn").textContent = "Avanti";
+            addClass(step, "done");
+            addClass(step, "active");
+            removeClass(step, "editing");
+            document.getElementById("nextbtn").disabled = true;
+        }
+    });
 }
 function backStep() {
-  currentStep--;
-  var stepper = document.getElementById("stepper1");
-  var steps = stepper.getElementsByClassName("step");
-  let stepLength = steps.length;
-  document.getElementById("nextbtn").textContent = "Next";
-  document.getElementById("nextbtn").disabled = false;
-  if (currentStep < stepLength - 1) {
-    document.getElementById("backbtn").disabled = false;
-    fieldsets[currentStep + 1].style.display = "none";
-    fieldsets[currentStep].style.display = "flex";
-    removeClass(steps[currentStep], "done");
-    removeClass(steps[currentStep], "active");
-    if (currentStep == 0) {
-      document.getElementById("backbtn").disabled = true;
+    currentStep--;
+    var stepper = document.getElementById("stepper1");
+    var steps = stepper.getElementsByClassName("step");
+    let stepLength = steps.length;
+    document.getElementById("nextbtn").textContent = "Next";
+    document.getElementById("nextbtn").disabled = false;
+    if (currentStep < stepLength - 1) {
+        document.getElementById("backbtn").disabled = false;
+        fieldsets[currentStep + 1].style.display = "none";
+        fieldsets[currentStep].style.display = "flex";
+        removeClass(steps[currentStep], "done");
+        removeClass(steps[currentStep], "active");
+        if (currentStep == 0) {
+            document.getElementById("backbtn").disabled = true;
+        }
+    } else {
+        removeClass(steps[currentStep], "done");
+        removeClass(steps[currentStep], "active");
     }
-  } else {
-    removeClass(steps[currentStep], "done");
-    removeClass(steps[currentStep], "active");
-  }
 }
 // function prevStep(){
 //   fieldsets[currentStep].style.display = "none";
@@ -128,21 +141,21 @@ function backStep() {
 // }
 /* get, set class, see https://ultimatecourses.com/blog/javascript-hasclass-addclass-removeclass-toggleclass */
 function hasClass(elem, className) {
-  return new RegExp(" " + className + " ").test(" " + elem.className + " ");
+    return new RegExp(" " + className + " ").test(" " + elem.className + " ");
 }
 function addClass(elem, className) {
-  if (!hasClass(elem, className)) {
-    elem.className += " " + className;
-  }
+    if (!hasClass(elem, className)) {
+        elem.className += " " + className;
+    }
 }
 function removeClass(elem, className) {
-  console.log("elem, className", elem, className);
-  var newClass = " " + elem.className.replace(/[\t\r\n]/g, " ") + " ";
-  if (hasClass(elem, className)) {
-    while (newClass.indexOf(" " + className + " ") >= 0) {
-      newClass = newClass.replace(" " + className + " ", " ");
+    console.log("elem, className", elem, className);
+    var newClass = " " + elem.className.replace(/[\t\r\n]/g, " ") + " ";
+    if (hasClass(elem, className)) {
+        while (newClass.indexOf(" " + className + " ") >= 0) {
+            newClass = newClass.replace(" " + className + " ", " ");
+        }
+        elem.className = newClass.replace(/^\s+|\s+$/g, "");
     }
-    elem.className = newClass.replace(/^\s+|\s+$/g, "");
-  }
-  console.log("elem.className", elem.className);
+    console.log("elem.className", elem.className);
 }

+ 16 - 16
resources/views/livewire/company.blade.php

@@ -11,7 +11,7 @@
             <div class="col-md-6 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="logo">Logo</label>
-                    <input class="form-control @error('logo') is-invalid @enderror" id="logo" name="logo" type="file" placeholder="Nessun file selezionato" accept="image/*" required>
+                    <input class="form-control @error('logo') is-invalid @enderror" wire:model="logo" id="logo" name="logo" type="file" placeholder="Nessun file selezionato" accept="image/*" required>
                     @error('logo')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -23,7 +23,7 @@
             <div class="col-md-6 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="name">Ragione sociale</label>
-                    <input class="form-control @error('name') is-invalid @enderror" id="name" name="name" type="text" placeholder="Inserisci" required value="{{$name}}">
+                    <input class="form-control @error('name') is-invalid @enderror" wire:model="name" id="name" name="name" type="text" placeholder="Inserisci" required value="{{$name}}">
                     @error('name')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -32,7 +32,7 @@
             <div class="col-md-6 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="business_name">Nome business</label>
-                    <input class="form-control @error('business_name') is-invalid @enderror" id="business_name" name="business_name" type="text" placeholder="Inserisci" required value="{{$business_name}}">
+                    <input class="form-control @error('business_name') is-invalid @enderror" wire:model="business_name" id="business_name" name="business_name" type="text" placeholder="Inserisci" required value="{{$business_name}}">
                     @error('business_name')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -42,7 +42,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="phone">Telefono</label>
-                    <input class="form-control @error('phone') is-invalid @enderror" id="phone" name="phone" type="tel" placeholder="Inserisci" required value="{{$phone}}">
+                    <input class="form-control @error('phone') is-invalid @enderror" wire:model="phone" id="phone" name="phone" type="tel" placeholder="Inserisci" required value="{{$phone}}">
                     @error('phone')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -51,7 +51,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="email">Email</label>
-                    <input class="form-control @error('email') is-invalid @enderror" id="email" name="email" type="email" placeholder="Inserisci" required value="{{$email}}">
+                    <input class="form-control @error('email') is-invalid @enderror" wire:model="email" id="email" name="email" type="email" placeholder="Inserisci" required value="{{$email}}">
                     @error('email')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -60,7 +60,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="pec">Pec</label>
-                    <input class="form-control @error('pec') is-invalid @enderror" id="pec" name="pec" type="text" placeholder="Inserisci" required value="{{$pec}}">
+                    <input class="form-control @error('pec') is-invalid @enderror" wire:model="pec" id="pec" name="pec" type="text" placeholder="Inserisci" required value="{{$pec}}">
                     @error('pec')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -69,7 +69,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="costitution_date">Data costituzione</label>
-                    <input class="form-control @error('costitution_date') is-invalid @enderror" id="costitution_date" name="costitution_date" type="date" placeholder="Inserisci" required value="{{$costitution_date}}">
+                    <input class="form-control @error('costitution_date') is-invalid @enderror" wire:model="costitution_date" id="costitution_date" name="costitution_date" type="date" placeholder="Inserisci" required value="{{$costitution_date}}">
                     @error('costitution_date')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -79,7 +79,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="address">Indirizzo</label>
-                    <input class="form-control @error('address') is-invalid @enderror" id="address" name="address" type="text" placeholder="Inserisci" required value="{{$address}}">
+                    <input class="form-control @error('address') is-invalid @enderror" wire:model="address" id="address" name="address" type="text" placeholder="Inserisci" required value="{{$address}}">
                     @error('address')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -88,7 +88,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="zip">Cap</label>
-                    <input class="form-control @error('zip') is-invalid @enderror" id="zip" name="zip" type="text" placeholder="Inserisci" required value="{{$zip}}">
+                    <input class="form-control @error('zip') is-invalid @enderror" wire:model="zip" id="zip" name="zip" type="text" placeholder="Inserisci" required value="{{$zip}}">
                     @error('zip')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -97,7 +97,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="city_id">Città</label>
-                    <select class="form-select @error('city_id') is-invalid @enderror" id="city_id" name="city_id" required>
+                    <select class="form-select @error('city_id') is-invalid @enderror" wire:model="city_id" id="city_id" name="city_id" required>
                         <option value="" @if (!$city_id) selected @endif disabled>Seleziona</option>
                         @foreach ($cities as $city)
                         <option value="{{$city->id}}" @if ($city_id == $city->id) selected @endif>{{$city->name}}</option>
@@ -111,7 +111,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="country_id">Stato</label>
-                    <select class="form-select @error('country_id') is-invalid @enderror" id="country_id" name="country_id" required>
+                    <select class="form-select @error('country_id') is-invalid @enderror" wire:model="country_id" id="country_id" name="country_id" required>
                         <option value="" @if (!$country_id) selected @endif disabled>Seleziona</option>
                         @foreach ($countries as $country)
                         <option value="{{$country->id}}" @if ($country_id == $country->id) selected @endif>{{$country->name}}</option>
@@ -127,7 +127,7 @@
                 <div class="form-group has-switch">
                     <label for="operational_headquarters">Sede operativa uguale alla sede legale</label>
                     <label class="switch">
-                        <input class="form-control @error('operational_headquarters') is-invalid @enderror" id="operational_headquarters" name="operational_headquarters" type="checkbox" @if ($operational_headquarters) checked @endif>
+                        <input class="form-control @error('operational_headquarters') is-invalid @enderror" wire:model="operational_headquarters" id="operational_headquarters" name="operational_headquarters" type="checkbox" @if ($operational_headquarters) checked @endif>
                         @error('operational_headquarters')
                         <div class="invalid-feedback">{{ $message }}</div>
                         @enderror
@@ -139,7 +139,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="fiscal_code">Codice fiscale</label>
-                    <input class="form-control @error('fiscal_code') is-invalid @enderror" id="fiscal_code" name="fiscal_code" type="text" placeholder="Inserisci" required value="{{$fiscal_code}}">
+                    <input class="form-control @error('fiscal_code') is-invalid @enderror" wire:model="fiscal_code" id="fiscal_code" name="fiscal_code" type="text" placeholder="Inserisci" required value="{{$fiscal_code}}">
                     @error('fiscal_code')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -148,7 +148,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="vat">Partita Iva</label>
-                    <input class="form-control @error('vat') is-invalid @enderror" id="vat" name="vat" type="text" placeholder="Inserisci" required value="{{$vat}}">
+                    <input class="form-control @error('vat') is-invalid @enderror" wire:model="vat" id="vat" name="vat" type="text" placeholder="Inserisci" required value="{{$vat}}">
                     @error('vat')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -157,7 +157,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="sdi_code">Codice SDI</label>
-                    <input class="form-control @error('sdi_code') is-invalid @enderror" id="sdi_code" name="sdi_code" type="text" placeholder="Inserisci" required value="{{$sdi_code}}">
+                    <input class="form-control @error('sdi_code') is-invalid @enderror" wire:model="sdi_code" id="sdi_code" name="sdi_code" type="text" placeholder="Inserisci" required value="{{$sdi_code}}">
                     @error('sdi_code')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror
@@ -166,7 +166,7 @@
             <div class="col-md-3 col-xs-12 mb-4">
                 <div class="form-group">
                     <label for="ateco_code">Codice ateco</label>
-                    <input class="form-control @error('ateco_code') is-invalid @enderror" id="ateco_code" name="ateco_code" type="text" placeholder="Inserisci" required value="{{$ateco_code}}">
+                    <input class="form-control @error('ateco_code') is-invalid @enderror" wire:model="ateco_code" id="ateco_code" name="ateco_code" type="text" placeholder="Inserisci" required value="{{$ateco_code}}">
                     @error('ateco_code')
                     <div class="invalid-feedback">{{ $message }}</div>
                     @enderror

+ 1 - 0
resources/views/livewire/onboarding.blade.php

@@ -201,6 +201,7 @@
                                     <div class="col">
                                         <div class="text-end btn-mb">
                                             {{-- <button class="btn btn-secondary" id="prevBtn" type="button" onclick="nextPrev(-1)">Indietro</button> --}}
+                                            <button class="btn btn-primary btn-medium" id="submitBtn" type="submit" style="display: none">Invia</button>
                                             <button class="btn btn-primary btn-medium" id="nextBtn" type="button" onclick="nextPrev(1)">Avanti</button>
                                         </div>
                                     </div>