From: Vincent Vanwaelscappel Date: Fri, 17 Nov 2023 09:33:37 +0000 (+0100) Subject: wip #5990 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=cf2a379732c79659f24f38e22c910d784c7dc0f8;p=fluidbook-toolbox.git wip #5990 @0.5 --- diff --git a/app/Fluidbook/Farm.php b/app/Fluidbook/Farm.php index f348806c7..233f63af4 100644 --- a/app/Fluidbook/Farm.php +++ b/app/Fluidbook/Farm.php @@ -30,7 +30,7 @@ class Farm ['name' => 'isleofdogs', 'host' => 'paris.cubedesigners.com', 'port' => 9458, 'weight' => 2, 'region' => 'UE'], ['name' => 'jumanji', 'host' => 'paris.cubedesigners.com', 'port' => 9459, 'weight' => 2, 'region' => 'UE'], ['name' => 'kingkong', 'host' => 'kingkong.cubedesigners.com', 'weight' => 6, 'region' => 'US'], - ['name' => 'nakedgun', 'host' => 'nakedgun.cubedesigners.com', 'weight' => 4, 'region' => 'UE'], + //['name' => 'nakedgun', 'host' => 'nakedgun.cubedesigners.com', 'weight' => 4, 'region' => 'UE'], ]; public static function forceServer($server) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/AuditOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/AuditOperation.php index b65ce9b0f..6fa37bf78 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/AuditOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/AuditOperation.php @@ -5,12 +5,14 @@ namespace App\Http\Controllers\Admin\Operations\FluidbookPublication; use App\Fluidbook\Compiler\Compiler; use App\Http\Controllers\Admin\Operations\FluidbookPreviewOperation; use App\Http\Middleware\CheckIfAdmin; +use App\Jobs\FluidbookAuditRefresh; use App\Models\FluidbookHealthIssues; use App\Models\FluidbookPublication; use App\Models\FluidbookTheme; use Cubist\Backpack\Http\Controllers\Base\XSendFileController; use Cubist\Util\PHP; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Route; // __('!!Paramètres des fluidbooks') @@ -18,7 +20,9 @@ trait AuditOperation { protected function setupAuditRoutes($segment, $routeName, $controller) { - Route::match(['get'], $segment . '/{id}/audit', $controller . '@audit'); + Route::match(['get'], $segment . '/{id}/audit', $controller . '@audit')->name('fluidbook_audit'); + Route::match(['get'], $segment . '/{id}/audit/refresh', $controller . '@auditRefresh')->name('fluidbook_audit_refresh'); + Route::match(['get'], $segment . '/{id}/audit/reset', $controller . '@auditReset')->name('fluidbook_audit_reset'); } @@ -35,4 +39,23 @@ trait AuditOperation $fluidbook = FluidbookPublication::withoutGlobalScopes()->find($id); return view('fluidbook_publication.audit', ['id' => $id, 'fluidbook' => $fluidbook, 'issues' => FluidbookHealthIssues::getIssues($id)]); } + + protected function auditRefresh($id) + { + if (!FluidbookPublication::hasPermission($id, 'admin')) { + abort(401); + } + FluidbookAuditRefresh::dispatch($id); + sleep(1); + return redirect(route('fluidbook_audit', ['id' => $id])); + } + + protected function auditReset($id) + { + if (!FluidbookPublication::hasPermission($id, 'admin')) { + abort(401); + } + FluidbookHealthIssues::deleteIssues($id); + return $this->auditRefresh($id); + } } diff --git a/app/Jobs/FluidbookAuditRefresh.php b/app/Jobs/FluidbookAuditRefresh.php new file mode 100644 index 000000000..171ce5fde --- /dev/null +++ b/app/Jobs/FluidbookAuditRefresh.php @@ -0,0 +1,26 @@ +onQueue('fluidbookprocess'); + $this->book_id = $book_id; + parent::__construct(); + } + + public function handle() + { + Cache::set('fluidbook_auditing_' . $this->book_id, true); + Artisan::call('fluidbook:compile ' . $this->book_id); + Cache::forget('fluidbook_auditing_' . $this->book_id); + } +} diff --git a/app/Models/FluidbookHealthIssues.php b/app/Models/FluidbookHealthIssues.php index 8ba729ba9..83a5775ac 100644 --- a/app/Models/FluidbookHealthIssues.php +++ b/app/Models/FluidbookHealthIssues.php @@ -83,10 +83,10 @@ class FluidbookHealthIssues extends ToolboxModel $replace[$k] = '' . $r . ''; } - if(!isset($data['fixText'])){ - $fix=''; - }else{ - $fix='' . $data['fixText'] . ''; + if (!isset($data['fixText'])) { + $fix = ''; + } else { + $fix = '' . $data['fixText'] . ''; } $line = ['type' => $issue->type, 'criticality' => $data['criticality'], 'summary' => $data['summary'], 'text' => __($data['text'], $replace), 'count' => $issue->count, 'last' => $issue->updated_at, 'fix' => $fix]; @@ -94,4 +94,9 @@ class FluidbookHealthIssues extends ToolboxModel } return $res; } + + public static function deleteIssues($fluidbookId) + { + static::withoutGlobalScopes()->where('fluidbook', $fluidbookId)->forceDelete(); + } } diff --git a/public/packages/fluidbook/toolbox/css/audit.css b/public/packages/fluidbook/toolbox/css/audit.css index 161d1991a..8ca7e2876 100644 --- a/public/packages/fluidbook/toolbox/css/audit.css +++ b/public/packages/fluidbook/toolbox/css/audit.css @@ -11,4 +11,9 @@ h2 { .la-exclamation-triangle { color: #F74D07; } +.message { + text-align: center; + font-size: 130%; + margin-top: 60px; +} /*# sourceMappingURL=audit.css.map */ \ No newline at end of file diff --git a/public/packages/fluidbook/toolbox/css/audit.css.map b/public/packages/fluidbook/toolbox/css/audit.css.map index c6026795a..2a0b656b1 100644 --- a/public/packages/fluidbook/toolbox/css/audit.css.map +++ b/public/packages/fluidbook/toolbox/css/audit.css.map @@ -1 +1 @@ -{"version":3,"sources":["audit.less"],"names":[],"mappings":"AAAA;EACI,gBAAA;;AAGJ;AAAwB;EACpB,eAAA;;AAGJ;EACI,WAAA;;AAGJ;EACI,cAAA","file":"audit.css"} \ No newline at end of file +{"version":3,"sources":["audit.less"],"names":[],"mappings":"AAAA;EACI,gBAAA;;AAGJ;AAAwB;EACpB,eAAA;;AAGJ;EACI,WAAA;;AAGJ;EACI,cAAA;;AAGJ;EACI,kBAAA;EACA,eAAA;EACA,gBAAA","file":"audit.css"} \ No newline at end of file diff --git a/public/packages/fluidbook/toolbox/css/audit.less b/public/packages/fluidbook/toolbox/css/audit.less index 235140764..6b0dd0ee7 100644 --- a/public/packages/fluidbook/toolbox/css/audit.less +++ b/public/packages/fluidbook/toolbox/css/audit.less @@ -13,3 +13,9 @@ h2 { .la-exclamation-triangle { color: #F74D07; } + +.message{ + text-align: center; + font-size: 130%; + margin-top: 60px; +} diff --git a/resources/views/fluidbook_publication/audit.blade.php b/resources/views/fluidbook_publication/audit.blade.php index 9b6fa0782..28a9be948 100644 --- a/resources/views/fluidbook_publication/audit.blade.php +++ b/resources/views/fluidbook_publication/audit.blade.php @@ -16,30 +16,47 @@ @section('content')

{{__('Audit du fluidbook :title - #:id',['title'=>$fluidbook->title,'id'=>$id])}}

- - - - - - - - - - - - - - @foreach($issues as $issue) + + @if(\Illuminate\Support\Facades\Cache::get('fluidbook_auditing_'.$id)) +

{{__('Audit en cours... Veuillez patienter quelques instants')}}

+ + @else + + + {{__('Relancer l\'audit')}} +   + {{__('Effacer les erreurs et relancer l\'audit')}} + +
{{__('Criticité')}}{{__('Type')}}{{__('Détails')}}{{__('Nombre')}}{{__('Date')}}{{__('Corriger le problème')}}
+ - - - - - - + + + + + + - @endforeach - -
{!! $icons[$issue['criticality']] !!}{{$issue['summary']}}{!! $issue['text'] !!}{{$issue['count']}}{{$issue['last']}}{!! $issue['fix'] !!}{{__('Criticité')}}{{__('Type')}}{{__('Détails')}}{{__('Nombre')}}{{__('Date')}}{{__('Corriger le problème')}}
+ + + + @foreach($issues as $issue) + + {!! $icons[$issue['criticality']] !!} + {{$issue['summary']}} + {!! $issue['text'] !!} + {{$issue['count']}} + {{$issue['last']}} + {!! $issue['fix'] !!} + + @endforeach + + + + @endif @endsection