]> _ Git - psq.git/commitdiff
new lens + searchable
authorLouis Jeckel <louis.jeckel@outlook.com>
Fri, 30 Oct 2020 12:25:36 +0000 (13:25 +0100)
committerLouis Jeckel <louis.jeckel@outlook.com>
Fri, 30 Oct 2020 12:25:36 +0000 (13:25 +0100)
app/Nova/Lenses/SentEmailToAdmin.php [new file with mode: 0644]
app/Nova/SentEmail.php

diff --git a/app/Nova/Lenses/SentEmailToAdmin.php b/app/Nova/Lenses/SentEmailToAdmin.php
new file mode 100644 (file)
index 0000000..eb4d0e6
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+
+namespace App\Nova\Lenses;
+
+use App\MailgunEvent;
+use Illuminate\Http\Request;
+use Illuminate\Support\Arr;
+use Laravel\Nova\Fields\Badge;
+use Laravel\Nova\Fields\BelongsTo;
+use Laravel\Nova\Fields\DateTime;
+use Laravel\Nova\Fields\ID;
+use Laravel\Nova\Fields\Text;
+use Laravel\Nova\Http\Requests\LensRequest;
+use Laravel\Nova\Lenses\Lens;
+use Metrixinfo\Nova\Fields\Iframe;
+
+class SentEmailToAdmin extends Lens
+{
+    public $name = "Email envoyés a PSQ";
+    /**
+     * Get the query builder / paginator for the lens.
+     *
+     * @param  \Laravel\Nova\Http\Requests\LensRequest  $request
+     * @param  \Illuminate\Database\Eloquent\Builder  $query
+     * @return mixed
+     */
+    public static function query(LensRequest $request, $query)
+    {
+        return $request->withOrdering($request->withFilters(
+            $query->where('recipient', 'like', '%prescription-quotidien.com')
+        ));
+    }
+
+    /**
+     * Get the fields available to the lens.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array
+     */
+    public function fields(Request $request)
+    {
+        return [
+            Text::make('Destinataire', 'recipient'),
+            Text::make('Objet', 'subject'),
+            Iframe::make('Contenu', 'content')->onlyOnDetail(),
+            Badge::make('Etat mail', fn() => MailgunEvent::STATUSES[$this->status ?? 'unknown']['label'])
+                ->map(Arr::pluck(MailgunEvent::STATUSES, 'badge', 'label')),
+            DateTime::make('Envoyé le', 'created_at'),
+            DateTime::make('Dernier événement', 'updated_at')->onlyOnDetail()
+        ];
+    }
+
+    /**
+     * Get the cards available on the lens.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array
+     */
+    public function cards(Request $request)
+    {
+        return [];
+    }
+
+    /**
+     * Get the filters available for the lens.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array
+     */
+    public function filters(Request $request)
+    {
+        return [];
+    }
+
+    /**
+     * Get the actions available on the lens.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array
+     */
+    public function actions(Request $request)
+    {
+        return parent::actions($request);
+    }
+
+    /**
+     * Get the URI key for the lens.
+     *
+     * @return string
+     */
+    public function uriKey()
+    {
+        return 'sent-email-to-admin';
+    }
+}
index a54dde147070b078d70778dc7b5112c22f0b7b75..f29eb1ec0542c349ed546ad5ad8be26dc014744a 100644 (file)
@@ -4,6 +4,7 @@ namespace App\Nova;
 
 use App\MailgunEvent;
 use App\Nova\Filters\EmailStatusFilter;
+use App\Nova\Lenses\SentEmailToAdmin;
 use Illuminate\Http\Request;
 use Illuminate\Support\Arr;
 use Laravel\Nova\Fields\Badge;
@@ -24,6 +25,14 @@ class SentEmail extends Resource
     public static $model = \App\SentEmail::class;
 
 
+    public static $globallySearchable = false;
+
+    public static $search = [
+        'subject',
+        'recipient',
+        'content'
+    ];
+
     /**
      * @var string
      */
@@ -135,7 +144,9 @@ class SentEmail extends Resource
      */
     public function lenses(Request $request)
     {
-        return [];
+        return [
+            new SentEmailToAdmin
+        ];
     }
 
     /**