From: Vincent Vanwaelscappel Date: Fri, 17 Nov 2023 10:24:32 +0000 (+0100) Subject: wait #5990 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=a9b87fcf8e18cd6f74ddc53212d61cb58eb78ad7;p=fluidbook-toolbox.git wait #5990 @0.5 --- diff --git a/app/Fluidbook/Compiler/Accessibility.php b/app/Fluidbook/Compiler/Accessibility.php index 964cdee88..a5ab4183d 100644 --- a/app/Fluidbook/Compiler/Accessibility.php +++ b/app/Fluidbook/Compiler/Accessibility.php @@ -4,6 +4,7 @@ namespace App\Fluidbook\Compiler; use Cubist\Util\Files\Files; use Cubist\Util\Text; +use Exception; use PhpOffice\PhpSpreadsheet\Reader\Xlsx; trait Accessibility diff --git a/app/Fluidbook/Compiler/Links.php b/app/Fluidbook/Compiler/Links.php index 9cae18cb9..cb21d421d 100644 --- a/app/Fluidbook/Compiler/Links.php +++ b/app/Fluidbook/Compiler/Links.php @@ -246,7 +246,7 @@ trait Links if ($linkData['type'] == Link::SHOWLINK && $linkData['target'] !== 'hide') { $ids = explode(',', str_replace(' ', '', $linkData['to'])); - $close = ($linkData['close_button'] && $linkData['close_button'] !== 'none'); + $close = (isset($linkData['close_button']) && $linkData['close_button'] && $linkData['close_button'] !== 'none'); foreach ($ids as $id) { $show = (str_starts_with($id, '-')); $id = trim($id, '+- '); diff --git a/app/Models/FluidbookHealthIssues.php b/app/Models/FluidbookHealthIssues.php index 83a5775ac..f93fc726c 100644 --- a/app/Models/FluidbookHealthIssues.php +++ b/app/Models/FluidbookHealthIssues.php @@ -7,15 +7,16 @@ use App\Models\Base\ToolboxModel; use Cubist\Backpack\Magic\Fields\Integer; use Cubist\Backpack\Magic\Fields\Text; use Cubist\Backpack\Magic\Fields\Textarea; +use Illuminate\Support\Facades\Cache; class FluidbookHealthIssues extends ToolboxModel { const TYPE_MISSING_FILE = 1; const TYPE_QRCODE_NOT_READABLE = 2; - const CRIT_ERROR = 'error'; - const CRIT_WARNING = 'warning'; - const CRIT_INFO = 'info'; + const CRIT_ERROR = 5; + const CRIT_WARNING = 3; + const CRIT_INFO = 2; protected $table = 'fluidbook_health_issue'; protected $_options = ['name' => 'fluidbook-health', @@ -29,6 +30,7 @@ class FluidbookHealthIssues extends ToolboxModel parent::setFields(); $this->addField('fluidbook', FluidbookID::class, __('Fluidbook')); + $this->addField('criticality', Integer::class, __('Criticité')); $this->addField('type', Integer::class, __('Type')); $this->addField('data', Textarea::class, __('Détails')); $this->addField('count', Integer::class, __('Nombre d\'occurences')); @@ -39,27 +41,35 @@ class FluidbookHealthIssues extends ToolboxModel if (is_array($data)) { $data = json_encode($data); } + $d = static::getTypeData($fluidbookId); $issue = self::withoutGlobalScopes()->where('fluidbook', $fluidbookId)->where('type', $type)->where('data', $data)->first(); + $crit = $d[$type]['criticality']; if (!$issue) { - $issue = new self(['fluidbook' => $fluidbookId, 'type' => $type, 'data' => $data, 'count' => 0]); + $issue = new self(['criticality' => $crit, 'fluidbook' => $fluidbookId, 'type' => $type, 'data' => $data, 'count' => 0]); } $issue->count++; $issue->save(); + + $has = static::hasIssue($fluidbookId); + + if ($has === false || $has < $crit) { + Cache::set('audit_fluidbook_hasissue_' . $fluidbookId, $crit); + } } - public static function getIssues($fluidbookId) + protected static function getTypeData($fluidbookId) { /* - * __('Le chemin ":path" est introuvable') - * __('Le QRcode du lien :uid (page :page) n\'a pas pu être décodé') - */ - - $d = [ + * __('Le chemin ":path" est introuvable') + * __('Le QRcode du lien :uid (page :page) n\'a pas pu être décodé') + */ + return [ static::TYPE_MISSING_FILE => [ 'summary' => __('Erreur 404'), - 'criticality' => self::CRIT_ERROR, 'text' => 'Le chemin ":path" est introuvable', + 'criticality' => self::CRIT_ERROR, + 'text' => 'Le chemin ":path" est introuvable', ], static::TYPE_QRCODE_NOT_READABLE => @@ -72,6 +82,14 @@ class FluidbookHealthIssues extends ToolboxModel ], ]; + + } + + + public static function getIssues($fluidbookId) + { + $d = static::getTypeData($fluidbookId); + $issues = static::withoutGlobalScopes()->where('fluidbook', $fluidbookId)->orderBy('updated_at', 'DESC')->get(); $res = []; foreach ($issues as $issue) { @@ -98,5 +116,17 @@ class FluidbookHealthIssues extends ToolboxModel public static function deleteIssues($fluidbookId) { static::withoutGlobalScopes()->where('fluidbook', $fluidbookId)->forceDelete(); + Cache::set('audit_fluidbook_hasissue_' . $fluidbookId, false); + } + + public static function hasIssue($fluidbookId) + { + return Cache::rememberForever('audit_fluidbook_hasissue_' . $fluidbookId, function () use ($fluidbookId) { + try { + return static::withoutGlobalScopes()->where('fluidbook', $fluidbookId)->orderBy('criticality', 'ASC')->firstOrFail()->criticality; + } catch (\Exception $e) { + return 0; + } + }); } } diff --git a/public/packages/fluidbook/toolbox/css/audit.css.map b/public/packages/fluidbook/toolbox/css/audit.css.map index 2a0b656b1..e6492ef1e 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;;AAGJ;EACI,kBAAA;EACA,eAAA;EACA,gBAAA","file":"audit.css"} \ No newline at end of file +{"version":3,"sources":["audit.less"],"names":[],"mappings":"AAEA;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 6b0dd0ee7..b31cec7ea 100644 --- a/public/packages/fluidbook/toolbox/css/audit.less +++ b/public/packages/fluidbook/toolbox/css/audit.less @@ -1,3 +1,5 @@ +@import 'variables'; + h2 { margin-top: 30px; } @@ -7,14 +9,14 @@ h2 { } .la-exclamation-circle { - color: #c00; + color: @error; } .la-exclamation-triangle { - color: #F74D07; + color: @warning; } -.message{ +.message { text-align: center; font-size: 130%; margin-top: 60px; diff --git a/public/packages/fluidbook/toolbox/css/style.less b/public/packages/fluidbook/toolbox/css/style.less index b1aaf4c2b..92e588f7f 100644 --- a/public/packages/fluidbook/toolbox/css/style.less +++ b/public/packages/fluidbook/toolbox/css/style.less @@ -1,3 +1,5 @@ +@import 'variables'; + @primary: #467fcf; @primary-hover: darken(@primary, 5%); @primary-border: darken(@primary, 10%); @@ -490,4 +492,34 @@ table.dataTable thead .sorting::before, table.dataTable thead .sorting::after, t top: 6px } +[data-crit] { + position: relative;; + + &:after { + content: ''; + position: absolute; + right: 5px; + bottom: 5px; + display: block; + width: 10px; + height: 10px; + background-color: transparent; + border-radius: 50%; + } +} + + +[data-crit="5"] { + &:after { + background-color: @error; + } +} + +[data-crit="3"] { + &:after { + background-color: @warning; + } +} + + @import 'context-menu'; diff --git a/public/packages/fluidbook/toolbox/css/variables.css b/public/packages/fluidbook/toolbox/css/variables.css new file mode 100644 index 000000000..e69de29bb diff --git a/public/packages/fluidbook/toolbox/css/variables.css.map b/public/packages/fluidbook/toolbox/css/variables.css.map new file mode 100644 index 000000000..e69de29bb diff --git a/public/packages/fluidbook/toolbox/css/variables.less b/public/packages/fluidbook/toolbox/css/variables.less new file mode 100644 index 000000000..f87c59c20 --- /dev/null +++ b/public/packages/fluidbook/toolbox/css/variables.less @@ -0,0 +1,2 @@ +@error: #c00; +@warning: #F74D07; diff --git a/resources/views/fluidbook_publication/audit.blade.php b/resources/views/fluidbook_publication/audit.blade.php index 28a9be948..e2897c126 100644 --- a/resources/views/fluidbook_publication/audit.blade.php +++ b/resources/views/fluidbook_publication/audit.blade.php @@ -20,43 +20,48 @@ @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')}} - - - - - - - - - - - - - - @foreach($issues as $issue) + @if(count($issues)===0) +

{{__('Aucun problème n\'a été repéré lors de l\'audit')}}

+ @else + +
{{__('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 @endif @endsection diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/audit.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/audit.blade.php index 9a1327f02..efd3539ac 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/audit.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/audit.blade.php @@ -1,8 +1,9 @@ {{-- __('!! Paramètres des fluidbooks') --}} @if( $entry->allowsAudit()) {{__('Audit')}} + data-toggle="tooltip" data-crit="{{\App\Models\FluidbookHealthIssues::hasIssue($entry->id)}}" + title="{{__('Audit de la publication')}}"> {{__('Audit')}} @endif