+++ /dev/null
-<?php
-
-namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
-
-use App\Models\FluidbookPublication;
-use Illuminate\Support\Facades\Route;
-use Prologue\Alerts\Facades\Alert;
-
-trait UpgradeOperation
-{
- protected function setupUpgradeRoutes($segment, $routeName, $controller)
- {
- Route::match(['get'], $segment . '/{id}/upgrade', $controller . '@upgrade');
- }
-
- protected function setupUpgradeDefaults()
- {
- $this->crud->operation(['list', 'show'], function () {
- $this->crud->addButton('line', 'upgrade', 'view', 'crud::buttons.fluidbook_publication.upgrade', 'end');
- });
- }
-
- public function upgrade($id)
- {
- if (!FluidbookPublication::hasPermission($id, 'write')) {
- abort(401);
- }
- FluidbookPublication::find($id)->upgrade();
- Alert::add('success', __('La publication a été mise à niveau à la dernière version.'))->flash();
- return redirect(backpack_url('fluidbook-publication'));
- }
-
-}
+++ /dev/null
-<?php
-
-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\Backpack\Middleware\CORSMiddleware;
-use Cubist\Excel\Excel;
-use Cubist\Util\Files\Files;
-use Cubist\Util\Text;
-use GuzzleHttp\Client;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Support\Facades\Route;
-use PhpOffice\PhpSpreadsheet\Exception;
-
-trait YSLOperation
-{
- protected function setupYSLRoutes($segment, $routeName, $controller)
- {
- Route::get($segment . '/{id}/yslreport', [
- 'uses' => $controller . '@yslreport',
- ]);
-
- Route::post($segment . '/postyslreport', [
- 'uses' => $controller . '@postyslreport',
- ])->middleware([CORSMiddleware::class])->withoutMiddleware([CheckIfAdmin::class, VerifyCsrfToken::class]);
- }
-
- protected function setupYSLDefaults()
- {
-
- if (config('app.env') !== 'ysl') {
- return;
- }
-
- $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');
- }
-
- /**
- * @throws Exception
- */
- protected function yslreport($id)
- {
- if (!FluidbookPublication::hasPermission($id, 'read')) {
- abort(401);
- }
-
- $tmp = Files::tempnam() . '.xls';
-
- $fluidbook = FluidbookPublication::withoutGlobalScopes()->find($id);
-
- $head = ['Date', 'Page', 'Rating', 'Country', 'Function', 'Suggestions'];
- $data = [];
- 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']);
- }
-
- protected function postyslreport()
- {
- try {
- $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 = ['Content-type' => "text/plain"];
-
- return response($res, 200, $headers);
- }
-}