FabioFratini vor 6 Monaten
Ursprung
Commit
bbbb67e76d

+ 4 - 4
app/Http/Livewire/EmailComunications.php

@@ -16,7 +16,7 @@ use Illuminate\Support\Facades\Log;
 
 class EmailComunications extends Component
 {
-    public $records, $subject, $message, $selectedRecipients = [], $scheduledDateTime, $sendNow = true;
+    public $records, $subject, $message, $selectedRecipients = [], $scheduledDateTime, $sendNow = 'true';
     public $dataId, $update = false, $add = false;
     public $users = [];
 
@@ -45,7 +45,7 @@ class EmailComunications extends Component
 
     public function sortBy($field)
     {
-        if($this->sortField === $field) {
+        if ($this->sortField === $field) {
             $this->sortAsc = ! $this->sortAsc;
         } else {
             $this->sortAsc = true;
@@ -66,7 +66,7 @@ class EmailComunications extends Component
 
     public function mount()
     {
-        if(Auth::user()->level != env('LEVEL_ADMIN', 0))
+        if (Auth::user()->level != env('LEVEL_ADMIN', 0))
             return redirect()->to('/dashboard');
 
         $this->users = Member::select('id', 'last_name', 'email')->get();
@@ -99,7 +99,7 @@ class EmailComunications extends Component
 
             $recipients = User::whereIn('id', $this->selectedRecipients)->get();
 
-            if ($this->sendNow) {
+            if ($this->sendNow === 'true') { // Cambiare il confronto
                 $this->sendEmailNow($template, $recipients);
                 session()->flash('success', 'Template creato e Email inviate a ' . $recipients->count() . ' destinatari!');
             } else {

+ 56 - 3
resources/views/livewire/email_comunications.blade.php

@@ -158,11 +158,18 @@
                             </div>
                         </div>
 
-                        @if(!$sendNow)
+                        @if($sendNow === false || $sendNow === 'false')
                         <div class="row mb-3">
                             <div class="col-md-6">
                                 <label for="scheduledDateTime" class="form-label">Data e Ora di Invio</label>
-                                <input type="datetime-local" class="form-control @error('scheduledDateTime') is-invalid @enderror" id="scheduledDateTime" wire:model="scheduledDateTime">
+                                <input type="datetime-local"
+                                    class="form-control @error('scheduledDateTime') is-invalid @enderror"
+                                    id="scheduledDateTime"
+                                    wire:model="scheduledDateTime"
+                                    min="{{ now()->format('Y-m-d\TH:i') }}">
+                                <div class="form-text">
+                                    <small class="text-muted">Seleziona quando vuoi che l'email venga inviata</small>
+                                </div>
                                 @error('scheduledDateTime')
                                     <div class="invalid-feedback">{{ $message }}</div>
                                 @enderror
@@ -175,7 +182,7 @@
                             <button type="button" class="btn--ui lightGrey" wire:click="cancel()">Annulla</button>
                             @if($add)
                                 <button type="submit" class="btn--ui" wire:click.prevent="store()">
-                                    @if($sendNow)
+                                    @if($sendNow === false || $sendNow === 'false')
                                         Salva e Invia
                                     @else
                                         Salva e Programma
@@ -302,5 +309,51 @@
 
         }
 
+       document.addEventListener('DOMContentLoaded', function() {
+        const datetimeInput = document.getElementById('scheduledDateTime');
+        if (datetimeInput) {
+            const now = new Date();
+            now.setHours(now.getHours() + 1);
+            const minDateTime = now.toISOString().slice(0, 16);
+            datetimeInput.min = minDateTime;
+        }
+
+        const sendNowRadio = document.getElementById('sendNow');
+        const scheduleForRadio = document.getElementById('scheduleFor');
+
+        function updateButtonText() {
+            const sendButton = document.querySelector('button[wire\\:click\\.prevent="store()"]');
+            if (sendButton) {
+                if (sendNowRadio && sendNowRadio.checked) {
+                    sendButton.textContent = 'Salva e Invia';
+                } else if (scheduleForRadio && scheduleForRadio.checked) {
+                    sendButton.textContent = 'Salva e Programma';
+                } else {
+                    sendButton.textContent = 'Salva e Invia';
+                }
+            }
+        }
+
+        if (sendNowRadio) {
+            sendNowRadio.addEventListener('change', updateButtonText);
+        }
+        if (scheduleForRadio) {
+            scheduleForRadio.addEventListener('change', updateButtonText);
+        }
+
+        updateButtonText();
+    });
+
+    document.addEventListener('livewire:load', function() {
+        Livewire.on('load-data-table', function() {
+            setTimeout(() => {
+                const sendButton = document.querySelector('button[wire\\:click\\.prevent="store()"]');
+                if (sendButton) {
+                    sendButton.textContent = 'Salva e Invia';
+                }
+            }, 100);
+        });
+    });
+
     </script>
 @endpush

+ 2 - 2
resources/views/livewire/sms_comunications.blade.php

@@ -161,7 +161,7 @@
                             </div>
                         </div>
 
-                        @if(!$sendNow)
+                        @if($sendNow === false || $sendNow === 'false')
                         <div class="row mb-3">
                             <div class="col-md-6">
                                 <label for="scheduledDateTime" class="form-label">Data e Ora di Invio</label>
@@ -178,7 +178,7 @@
                             <button type="button" class="btn--ui lightGrey" wire:click="cancel()">Annulla</button>
                             @if($add)
                                 <button type="submit" class="btn--ui" wire:click.prevent="store()">
-                                    @if($sendNow)
+                                    @if($sendNow === false || $sendNow === 'false')
                                         Salva e Invia
                                     @else
                                         Salva e Programma