]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6260 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Sep 2023 13:26:31 +0000 (15:26 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Sep 2023 13:26:31 +0000 (15:26 +0200)
app/Http/Controllers/Admin/Operations/FluidbookPublication/YSLOperation.php
resources/views/vendor/backpack/base/inc/sidebar_content.blade.php

index 9173b6d8bdd8053b777cdb017cf26d59a01aa8ab..e8337999e14a557fb7a46011572dfb98d61299ed 100644 (file)
@@ -2,6 +2,8 @@
 
 namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
 
+use App\Http\Middleware\CheckIfAdmin;
+use App\Http\Middleware\VerifyCsrfToken;
 use App\Models\FluidbookPublication;
 use App\Models\YSLSurvey;
 use Cubist\Excel\Excel;
@@ -22,7 +24,7 @@ trait YSLOperation
 
         Route::post($segment . '/postyslreport', [
             'uses' => $controller . '@postyslreport',
-        ]);
+        ])->withoutMiddleware([CheckIfAdmin::class, VerifyCsrfToken::class]);
     }
 
     protected function setupYSLDefaults()
@@ -32,14 +34,13 @@ trait YSLOperation
             return;
         }
 
-        if (!can('fluidbook-publication:write')) {
-            $this->crud->removeButtonFromStack('preview', 'line');
-            $this->crud->removeButtonFromStack('edit', 'line');
-            $this->crud->removeButtonFromStack('download', 'line');
-            $this->crud->removeButtonFromStack('clone', 'line');
-            $this->crud->removeButtonFromStack('upgrade', 'line');
-            $this->crud->removeButtonFromStack('deletefb', 'line');
-        }
+        $this->crud->removeButtonFromStack('preview', 'line');
+        $this->crud->removeButtonFromStack('edit', 'line');
+        $this->crud->removeButtonFromStack('download', 'line');
+        $this->crud->removeButtonFromStack('clone', 'line');
+        $this->crud->removeButtonFromStack('upgrade', 'line');
+        $this->crud->removeButtonFromStack('deletefb', 'line');
+
         $this->crud->addButtonFromView('line', 'yslreport', 'fluidbook_publication.yslreport', 'end');
     }
 
@@ -48,7 +49,7 @@ trait YSLOperation
      */
     protected function yslreport($id)
     {
-        if (!FluidbookPublication::hasPermission($id)) {
+        if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401);
         }
 
@@ -57,14 +58,10 @@ trait YSLOperation
         $fluidbook = FluidbookPublication::withoutGlobalScopes()->find($id);
 
         $head = ['Date', 'Page', 'Rating', 'Country', 'Function', 'Suggestions'];
-        // $sql = "SELECT * FROM ysl_survey WHERE fluidbook_id='" . $core->con->escape($bid) . "' ORDER BY date ASC";
-
-        //$r = $core->con->select($sql);
         $data = [];
-//        while ($r->fetch()) {
-//            $data[] = [date('Y-m-d H:i:s', $r->date), $r->page, $r->rating, $r->country, $r->function, $r->suggestions];
-//        }
-
+        foreach (YSLSurvey::withoutGlobalScopes()->where('fluidbook_id', $id)->orderBy('date', 'ASC')->get() as $r) {
+            $data[] = [date('Y-m-d H:i:s', $r->date), $r->page, $r->rating, $r->country, $r->function, $r->suggestions];
+        }
         Excel::fromArray('Survey data #' . $id, $data, $head, $tmp, 100);
 
         return response()->download($tmp, 'report-' . $id . '-' . Text::str2URL($fluidbook->title) . '.xlsx', ['content-type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
@@ -72,30 +69,43 @@ trait YSLOperation
 
     protected function postyslreport()
     {
-        $i = new YSLSurvey();
-        $i->fluidbook_id = $_POST['Fluidbook_ID'];
-        $i->page = $_POST['page'];
-        $i->rating = $_POST['rating'];
-        $i->suggestions = $_POST['suggestions'];
-        $i->country = $_POST['country'];
-        $i->function = $_POST['function'];
-        $i->title = $_POST['title'];
-        $i->date = time();
-        $i->save();
-
         try {
-            $client = new Client(['timeout' => 10.0]);
-            $client->request('post', 'https://suivi.ysl-retailhandbook.com/importCSV.php', ['form_params' => [
-                'Fluidbook_ID' => $_POST['Fluidbook_ID'],
-                'page' => $_POST['page'],
-                'rating' => $_POST['rating'],
-                'feedback' => $_POST['feedback'],
-                'country' => $_POST['country'],
-                'function' => $_POST['function'],
-                'title' => $_POST['title'],
-            ]]);
-        } catch (Exception $e1) {
-            Log::error($e1->getMessage());
+            $i = new YSLSurvey();
+            $i->fluidbook_id = $_POST['Fluidbook_ID'];
+            $i->page = $_POST['page'];
+            $i->rating = $_POST['rating'];
+            $i->suggestions = $_POST['feedback'];
+            $i->country = $_POST['country'];
+            $i->function = $_POST['function'];
+            $i->title = $_POST['title'];
+            $i->date = time();
+            $i->save();
+
+            try {
+                $client = new Client(['timeout' => 10.0]);
+                $client->request('post', 'https://suivi.ysl-retailhandbook.com/importCSV.php', ['form_params' => [
+                    'Fluidbook_ID' => $_POST['Fluidbook_ID'],
+                    'page' => $_POST['page'],
+                    'rating' => $_POST['rating'],
+                    'feedback' => $_POST['feedback'],
+                    'country' => $_POST['country'],
+                    'function' => $_POST['function'],
+                    'title' => $_POST['title'],
+                ]]);
+            } catch (Exception $e1) {
+                Log::error($e1->getMessage());
+            }
+
+            $res = '1';
+        } catch (\Exception $e) {
+            $res = '0';
         }
+
+        $headers = ['Access-Control-Allow-Origin' => '*',
+            'Access-Control-Allow-Methods' => 'POST,GET,OPTIONS,PUT,DELETE',
+            'Access-Control-Allow-Headers' => 'Content-Type,Accept,x-requested-with',
+            'Content-type' => "text/plain"];
+
+        return response($res, 200, $headers);
     }
 }
index aa5895d60f4abaed50ac022de802808ba2f2e655..352d58763b67bd29d472dab87ce17efb9f72d206 100644 (file)
         });
     </script>
 @endpush
-<li class="nav-item"><a class="nav-link" href="{{ backpack_url('dashboard') }}"><i
+@if(config('app.env') !== 'ysl')
+    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('dashboard') }}"><i
                 class='nav-icon la la-dashboard'></i>{{ trans('backpack::base.dashboard') }}
-    </a></li>
-<li class="nav-item"><a class="nav-link" href="{{ backpack_url('tasks') }}"><i
+        </a></li>
+    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('tasks') }}"><i
                 class='nav-icon la la-bell'></i>{{ __('Notifications') }}
-    </a></li>
+        </a></li>
+
 
-@can('files:read')
-    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('file') }}"><i
+    @can('files:read')
+        <li class="nav-item"><a class="nav-link" href="{{ backpack_url('file') }}"><i
                     class='nav-icon las la-cloud'></i>{{ __('Partage de fichiers') }}
-        </a></li>
-@endcan
+            </a></li>
+    @endcan
 
-@canany(['quiz:read','quiztranslation:read','elearning_media:read'])
-    <li {!! sidebarState('elearning',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+    @canany(['quiz:read','quiztranslation:read','elearning_media:read'])
+        <li {!! sidebarState('elearning',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
                     class='nav-icon la la-chalkboard-teacher'></i>{{__('e-Learning')}}</a>
-        <ul class='nav-dropdown-items'>
-            @can('quiz:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz') }}"><i
+            <ul class='nav-dropdown-items'>
+                @can('quiz:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiz') }}"><i
                                 class="la la-question nav-icon"></i> {{__('Quiz')}}</a></li>
-            @endcan
-            @can('elearning-media:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-media') }}"><i
+                @endcan
+                @can('elearning-media:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-media') }}"><i
                                 class="la la-photo-video nav-icon"></i> {{__('Media')}}</a></li>
-            @endcan
-            @can('elearning-package:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-package') }}"><i
+                @endcan
+                @can('elearning-package:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('elearning-package') }}"><i
                                 class="la la-cubes nav-icon"></i> {{__('Package')}}</a></li>
-            @endcan
-            @can('quiztranslation:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiztranslation') }}"><i
+                @endcan
+                @can('quiztranslation:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('quiztranslation') }}"><i
                                 class="la la-language nav-icon"></i> {{__('Traductions')}}</a></li>
-            @endcan
-        </ul>
-    </li>
-@endcanany
+                @endcan
+            </ul>
+        </li>
+    @endcanany
+@endif
 
 @canany(['fluidbook-quote:read','signature:read','fluidbook-theme:read','fluidbook-iconset:read','fluibook-translate:write','fluidbook-publication:read'])
     <li {!! sidebarState('fluidbook',true) !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
-                    class="nav-icon la"><img src="/images/icons/icon-fluidbook.svg"/></i>{{__('Fluidbook')}}</a>
+                class="nav-icon la"><img src="/images/icons/icon-fluidbook.svg"/></i>{{__('Fluidbook')}}</a>
         <ul class='nav-dropdown-items'>
             @can('fluidbook-publication:read')
                 <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-publication') }}"><i
-                                class="la la-book-reader nav-icon"></i> {{__('Publications')}}</a></li>
+                            class="la la-book-reader nav-icon"></i> {{__('Publications')}}</a></li>
             @endcan
-            @can('fluidbook-theme:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-theme') }}"><i
+            @if(config('app.env') !== 'ysl')
+                @can('fluidbook-theme:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-theme') }}"><i
                                 class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
-            @endcan
-            @can('fluidbook-iconset:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-iconset') }}"><i
+                @endcan
+                @can('fluidbook-iconset:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-iconset') }}"><i
                                 class="la la-icons nav-icon"></i> {{__('Jeux d\'icônes')}}</a></li>
-            @endcan
-            @can('fluidbook-collection:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-collection') }}"><i
+                @endcan
+                @can('fluidbook-collection:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-collection') }}"><i
                                 class="la la-university nav-icon"></i> {{__('Collections')}}</a></li>
-            @endcan
-            @can('fluidbook-translate:write')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('fluidbook-translate/1/edit/?_locale=en') }}'><i
+                @endcan
+                @can('fluidbook-translate:write')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('fluidbook-translate/1/edit/?_locale=en') }}'><i
                                 class='la la-language nav-icon'></i>
-                        <span> {{__('Traductions')}}</span></a>
-                </li>
-            @endcan
-            @can('signature:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
+                            <span> {{__('Traductions')}}</span></a>
+                    </li>
+                @endcan
+                @can('signature:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
                                 class="la la-signature nav-icon"></i> {{__('Signatures')}}</a></li>
-            @endcan
-            @can('fluidbook-external-install-server:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-external-install-server') }}"><i
+                @endcan
+                @can('fluidbook-external-install-server:read')
+                    <li class="nav-item"><a class="nav-link"
+                                            href="{{ backpack_url('fluidbook-external-install-server') }}"><i
                                 class="la las la-server nav-icon"></i> {{__('Serveurs externes')}}</a></li>
-            @endcan
-            @can('fluidbook-quote:read')
-                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-quote') }}"><i
+                @endcan
+                @can('fluidbook-quote:read')
+                    <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-quote') }}"><i
                                 class="la la-wpforms nav-icon"></i> {{__('Demandes de devis')}}</a></li>
-            @endcan
+                @endcan
+            @endif
         </ul>
     </li>
 @endcanany
-@can('tools')
-    <li {!! sidebarState('tools') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+@if(config('app.env') !== 'ysl')
+    @can('tools')
+        <li {!! sidebarState('tools') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
                     class='nav-icon la la-tools'></i>{{__('Outils')}}</a>
-        @include('tools.sidebar')
-    </li>
-@endcan
-@canany(['users:read','company:read','managerolesandpersmissions'])
-    <li {!! sidebarState('users') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+            @include('tools.sidebar')
+        </li>
+    @endcan
+    @canany(['users:read','company:read','managerolesandpersmissions'])
+        <li {!! sidebarState('users') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
                     class='nav-icon la la-group'></i>{{__('Clients')}}</a>
-        <ul class='nav-dropdown-items'>
-            @can('company:read')
-                <li class='nav-item'><a class='nav-link' href='{{ backpack_url('company') }}'><i
+            <ul class='nav-dropdown-items'>
+                @can('company:read')
+                    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('company') }}'><i
                                 class='nav-icon la la-building'></i>
-                        <span>{{__('Clients')}}</span></a></li>
-                <li class='nav-item'><a class='nav-link' href='{{ backpack_url('users') }}'><i
+                            <span>{{__('Clients')}}</span></a></li>
+                    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('users') }}'><i
                                 class='nav-icon la la-user-lock'></i>
-                        <span>{{__('Utilisateurs')}}</span></a></li>
-            @endcan
-            @can('managerolesandpersmissions')
-                <li class='nav-item'><a class='nav-link' href='{{ backpack_url('role') }}'><i
+                            <span>{{__('Utilisateurs')}}</span></a></li>
+                @endcan
+                @can('managerolesandpersmissions')
+                    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('role') }}'><i
                                 class='nav-icon la la-group'></i>
-                        <span>{{__('Roles')}}</span></a></li>
-                <li class='nav-item'><a class='nav-link' href='{{ backpack_url('permission') }}'><i
+                            <span>{{__('Roles')}}</span></a></li>
+                    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('permission') }}'><i
                                 class='nav-icon la la-key'></i><span>{{__('Permissions')}}</span></a></li>
-            @endcan
-        </ul>
-    </li>
-@endcan
+                @endcan
+            </ul>
+        </li>
+    @endcan
 
-@canany(['team-leave:read','team-overtime:read','extranet:manage_emails'])
-    <li {!! sidebarState('team') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+    @canany(['team-leave:read','team-overtime:read','extranet:manage_emails'])
+        <li {!! sidebarState('team') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
                     class='nav-icon la la-mug-hot'></i>{{__('Équipe')}}</a>
-        <ul class='nav-dropdown-items'>
-            @can('extranet:manage_emails')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('team-emails') }}'><i
+            <ul class='nav-dropdown-items'>
+                @can('extranet:manage_emails')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('team-emails') }}'><i
                                 class='nav-icon la la-mail-bulk'></i>
-                        <span>{{__('Emails')}}</span></a>
-                </li>
-            @endcan
-            @can('extranet:manage_servers')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('team-servers') }}'><i
+                            <span>{{__('Emails')}}</span></a>
+                    </li>
+                @endcan
+                @can('extranet:manage_servers')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('team-servers') }}'><i
                                 class='nav-icon las la-server'></i>
-                        <span>{{__('Serveurs')}}</span></a>
-                </li>
-            @endcan
-            @can('team-pay:read')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('team-pay') }}'><i
+                            <span>{{__('Serveurs')}}</span></a>
+                    </li>
+                @endcan
+                @can('team-pay:read')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('team-pay') }}'><i
                                 class="nav-icon las la-file-invoice-dollar"></i>
-                        <span>{{__('Bulletins de salaire')}}</span></a>
-                </li>
-            @endcan
-            @can('team-leave:read')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('team-leave') }}'><i
+                            <span>{{__('Bulletins de salaire')}}</span></a>
+                    </li>
+                @endcan
+                @can('team-leave:read')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('team-leave') }}'><i
                                 class="nav-icon las la-umbrella-beach"></i>
-                        <span>{{__('Congés et absences')}}</span></a>
-                </li>
-            @endcan
-            @can('team-overtime:read')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('team-overtime') }}'><i
+                            <span>{{__('Congés et absences')}}</span></a>
+                    </li>
+                @endcan
+                @can('team-overtime:read')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('team-overtime') }}'><i
                                 class="nav-icon las la-stopwatch"></i>
-                        <span>{{__('Heures supp')}}</span></a>
-                </li>
-            @endcan
-        </ul>
-    </li>
-@endcan
+                            <span>{{__('Heures supp')}}</span></a>
+                    </li>
+                @endcan
+            </ul>
+        </li>
+    @endcan
 
-@canany(['maintenance','toolbox-translate:admin'])
-    <li {!! sidebarState('admin') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
+    @canany(['maintenance','toolbox-translate:admin'])
+        <li {!! sidebarState('admin') !!}><a class='nav-link nav-dropdown-toggle' href='#'><i
                     class='nav-icon la la-cogs'></i>{{__('Administration')}}</a>
-        <ul class='nav-dropdown-items'>
-            @can('toolbox-translate:admin')
-                <li class="nav-item"><a class="nav-link"
-                                        href='{{ backpack_url('toolbox-translate/1/edit/?_locale=en') }}'><i
+            <ul class='nav-dropdown-items'>
+                @can('toolbox-translate:admin')
+                    <li class="nav-item"><a class="nav-link"
+                                            href='{{ backpack_url('toolbox-translate/1/edit/?_locale=en') }}'><i
                                 class='la la-language'></i>
-                        <span>{{__('Traduction')}}</span></a>
-                </li>
-            @endcan
-            @can('maintenance')
-                <li class="nav-item"><a class="nav-link" href='{{ backpack_url('backup') }}'><i class='la la-hdd-o'></i>
-                        <span>{{__('Sauvegardes')}}</span></a>
-                </li>
-                <li class="nav-item"><a class="nav-link" href='{{ backpack_url('log') }}'><i class='la la-terminal'></i>
-                        <span>{{__('Journaux d\'erreurs')}}</span></a>
-                </li>
-            @endcan
-        </ul>
-    </li>
-@endcanany
+                            <span>{{__('Traduction')}}</span></a>
+                    </li>
+                @endcan
+                @can('maintenance')
+                    <li class="nav-item"><a class="nav-link" href='{{ backpack_url('backup') }}'><i
+                                class='la la-hdd-o'></i>
+                            <span>{{__('Sauvegardes')}}</span></a>
+                    </li>
+                    <li class="nav-item"><a class="nav-link" href='{{ backpack_url('log') }}'><i
+                                class='la la-terminal'></i>
+                            <span>{{__('Journaux d\'erreurs')}}</span></a>
+                    </li>
+                @endcan
+            </ul>
+        </li>
+    @endcanany
+@endif