]> _ Git - fluidbook-toolbox.git/commitdiff
done #6066 @3
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Jul 2023 13:28:40 +0000 (15:28 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Jul 2023 13:28:40 +0000 (15:28 +0200)
app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php
resources/views/fluidbook_publication/delivery.blade.php [deleted file]
resources/views/fluidbook_publication/delivery/contact_manager.blade.php [new file with mode: 0644]
resources/views/fluidbook_publication/delivery/index.blade.php [new file with mode: 0644]
resources/views/fluidbook_publication/delivery/mainsettings.blade.php [new file with mode: 0644]
resources/views/fluidbook_publication/delivery_params.blade.php [deleted file]
resources/views/fluidbook_publication/link_contact_manager.blade.php [deleted file]

index 572109b78e2a19287433a1b248c50bc9308d0cb6..baf9f778669bef6be509ee71559e66406f4920b3 100644 (file)
@@ -32,7 +32,7 @@ trait DownloadOperation
         if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401);
         }
-        return view('fluidbook_publication.delivery', ['fluidbook' => FluidbookPublication::where('id', $id)->first()]);
+        return view('fluidbook_publication.delivery.index', ['fluidbook' => FluidbookPublication::where('id', $id)->first()]);
     }
 
     protected function deliveryThumb($id, $type)
diff --git a/resources/views/fluidbook_publication/delivery.blade.php b/resources/views/fluidbook_publication/delivery.blade.php
deleted file mode 100644 (file)
index 232ff1b..0000000
+++ /dev/null
@@ -1,621 +0,0 @@
-@extends(backpack_view('blank'))
-
-@php
-    $breadcrumbs = [
-        trans('backpack::crud.admin') => url(config('backpack.base.route_prefix'), 'dashboard'),
-        trans('backpack::base.my_account') => false,
-    ];
-    $statusText = $fluidbook->status ? __('prêt') : __('en cours de production');
-    $qrCodeMobile = QrCode::size(311)->color(27, 42, 78)->generate($fluidbook->getPreviewURL());
-
-    $fluidbookDesktopPreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'desktop']);
-    $fluidbookMobilePreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'mobile']);
-
-    $fluidbookMobileFirstId = $fluidbook->mobilefirstFluidbookId;
-    if($fluidbookMobileFirstId){
-        $previewMobileFirstUrl = App\Models\FluidbookPublication::find($fluidbookMobileFirstId)->getPreviewURL();
-        $qrCodeMobileFirst = QrCode::size(311)->color(27, 42, 78)->generate($previewMobileFirstUrl);
-        $fluidbookMobileFirstPreview = route('deliveryThumb', ['id' => $fluidbookMobileFirstId, 'type' => 'mobile']);
-    }
-
-    $totalPages = $fluidbook->getPagesNumber();
-    $settings = [
-        ['Titre' => $fluidbook->title],
-        ['Nombre de pages' => $totalPages. ' pages'],
-        ['Langue principale' => renameSettings($fluidbook->locale)],
-        [__('Date de création') => ( new \Carbon\Carbon($fluidbook->created_at))->isoFormat('DD/MM/Y') ],
-        [__('Dernière modification') => ( new \Carbon\Carbon($fluidbook->updated_at))->isoFormat('DD/MM/Y') ],
-        ['Mode de navigation' => renameSettings($fluidbook->mobileTransitions)],
-        ['SEO' => renameSettings($fluidbook->seoVersion)],
-        ['SCORM (e-learning)' => $fluidbook->scorm_enabled ? 'SCORM '.$fluidbook->getSCORMVersion() : __('Désactivé')],
-        ['Statistiques Fluidbook' => renameSettings($fluidbook->stats, true, true)],
-        ['Google Analytics' => $fluidbook->googleAnalytics ? $fluidbook->googleTagManager : __('Désactivé')]
-    ];
-
-    function renameSettings($v, $fem = false, $plurial = false) {
-        $e = $fem ? 'e' : '';
-        $s = $plurial ? 's' : '';
-        return match ($v) {
-            'flip3d','flip' => 'Flip',
-            'fade' => 'Air',
-            '1' => __('Activé'.($e).($s)),
-            '0','',null => __('Désactivé'.($e).($s)),
-            'fr' => __('Français'),
-            'en' => __('Anglais'),
-            default => ucfirst($v)
-        };
-    }
-
-    $features = [
-        'index' => ["value" => $fluidbook->index,"text" => __('Index'),"svg" => "nav-index"],
-        'print' => ["value" => $fluidbook->print,"text" => __('Imprimer'),"svg" => "nav-print"],
-        'chapters' => ["value" => $fluidbook->chapters,"text" => __('Sommaire'),"svg" => "nav-chapters"],
-        'friend' => ["value" => $fluidbook->share,"text" => __('Partager'),"svg" => "nav-share"],
-        'bookmark' => ["value" => $fluidbook->bookmark,"text" => __('Marques-pages'),"svg" => "nav-bookmarks"],
-        'pdf' => ["value" => $fluidbook->pdf,"text" => __('Télécharger'),"svg" => "nav-download"],
-        'sound' => ["value" => $fluidbook->soundTheme,"text" => __('Son'),"svg" => "nav-sound-on"],
-        'search' => ["value" => $fluidbook->search,"text" => __('Recherche'),"svg" => "nav-search"],
-        'help' => ["value" => $fluidbook->help,"text" => __('Aide'),"svg" => "nav-help"],
-        'notes' => ["value" => $fluidbook->notes,"text" => __('Notes'),"svg" => "nav-notes"],
-        'fullscreen' => ["value" => $fluidbook->fullscreen,"text" => __('Plein écran'),"svg" => "nav-fullscreen"],
-    ];
-
-    $orders = explode(',',$fluidbook->navOrder);
-    $orders = array_map(function($n) { return trim($n); }, $orders);
-    $orders = array_flip($orders);
-    $orders = array_intersect_key($orders,$features);
-
-    $featuresSorted = array_merge($orders, $features);
-
-    $enabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "0" && !empty($n['value']); });
-    $disabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "1" && empty($n['value']); });
-
-    $icons = App\Models\FluidbookIconset::get('icons')->toArray();
-
-    $statUrl = route('stats', ['fluidbook_id' => $fluidbook->id, 'hash' => $fluidbook->hash]);
-    $cid = $fluidbook->cid;
-
-    $socialImage = route('social_image',['cid' => $cid]);
-    if($fluidbook->facebook_image)
-        $socialImage = $fluidbook->facebook_image;
-
-    $installServerUrl = null;
-    if($fluidbook->install_online) {
-        if($fluidbook->install_online['server']) {
-            $serverId = intval($fluidbook->install_online['server']);
-            $serverPath = $fluidbook->install_online['path'];
-            $servers=\App\Models\FluidbookExternalInstallServer::getAllServers();
-            $serverInfos = $servers[$serverId];
-            $baseUrl = $serverInfos['base_url'];
-            $serverName = $serverInfos['name'];
-            $installServerUrl = $baseUrl.$serverPath;
-        }
-    }
-
-    $downloadVersions = $fluidbook->getDownloadVersions();
-    $prefixDownloadUrl = '/fluidbook-publication/'.$fluidbook->id;
-    $prefixDownloadUrl = $prefixDownloadUrl.'/package';
-
-    foreach ($downloadVersions as $key => $version) {
-        if($key === "online") {
-            $downloadVersions[$key]['text'] = __("Standard");
-            $downloadVersions[$key]['type'] = __("(serveur web)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-standard-server.svg'));
-            $downloadVersions[$key]['notice_fr'] = "https://docs.google.com/document/d/1MK9aswqXXYleJwmbexKiAHNeNei-zTUb7CnbjkmNur4/edit";
-            $downloadVersions[$key]['notice_en'] = "https://docs.google.com/document/d/18GlmLzUqJq_1UgAasSZKN9xDHmKQr4Mt8dY9Pex-Llw/edit?usp=drive_link";
-        }elseif ($key === "scorm") {
-            $downloadVersions[$key]['text'] = __("LMS Scorm");
-            $downloadVersions[$key]['type'] = __("(LMS / SCORM)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-lms-scorm.svg'));
-            $downloadVersions[$key]['notice_fr'] = "https://docs.google.com/document/d/1wDrOihLieSRWLiXVHE4n7Ka_qHcDde_DeU6R--mzAZM/edit?usp=drive_link";
-            $downloadVersions[$key]['notice_en'] = "https://docs.google.com/document/d/1g3jXC20krSiOSFG0TqzoJ7FsB8OUnvvjoI4yOMO8xUM/edit?usp=drive_link";
-        }elseif ($key === "sharepoint") {
-            $downloadVersions[$key]['text'] = __("SharePoint");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-sharepoint.svg'));
-            $downloadVersions[$key]['notice_fr'] = "https://docs.google.com/document/d/15r6ajKDjLTlELhYVyIWJNzLkrsp8aqy4aRkP5vwNVQU/edit?usp=drive_link";
-            $downloadVersions[$key]['notice_en'] = "https://docs.google.com/document/d/1FMh-fgMoFKPztGmexNA2h6VAbFa-OclPeYpLsv2eRtw/edit?usp=drive_link";
-        }elseif ($key === "mac_exe_html") {
-            $downloadVersions[$key]['text'] = __("Version Offline");
-            $downloadVersions[$key]['type'] = __("(Mac App)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-mac-app.svg'), true);
-        }elseif ($key === "win_ins_html") {
-            $downloadVersions[$key]['text'] = __("Version Offline");
-            $downloadVersions[$key]['type'] = __("(Windows App)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-windows-app.svg'));
-        }elseif ($key === "win_cd_html") {
-            $downloadVersions[$key]['text'] = __("Version Offline");
-            $downloadVersions[$key]['type'] = __("(CD-ROM / Clé USB)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-cd-usb.svg'));
-        }
-    }
-
-    $objectMail = "[Fluidbook #".$fluidbook->id."]";
-
-    $lang = app()->getLocale();
-
-    $noticesUrls = [
-        'fr' => [
-            'widget' => "https://docs.google.com/document/d/1ezbBxEWqmTbWgBwGXmJUefCpRsRFuF6VAFRh5rDIJUQ/edit?usp=drive_link",
-            'ga' => "https://docs.google.com/document/d/1ycKxPWOtXUFyaPB2Eltfnq-Y5yn_XwwVue1TKwh4Kbk/edit?usp=drive_link"
-        ],
-        'en' => [
-            'widget' => "https://docs.google.com/document/d/1J8xEY727rhdoAgD5mk96BZOuBES4sFvctuwomyIXWKI/edit?usp=drive_link",
-            'ga' => "https://docs.google.com/document/d/1dus2uWddT8VY8MIoEnx6KOfJWRQq_AYRGhYLtd2dYgI/edit?usp=drive_link"
-        ],
-    ];
-
-    $CDPMail = $fluidbook->getProjectManagerEmail();
-@endphp
-
-@section('after_styles')
-    <link rel="stylesheet" href="/packages/fluidbook/toolbox/css/delivery.css"/>
-@endsection
-
-@section('content')
-    <div id="svg-container">
-        {!! $icons[0]["icons"] !!}
-    </div>
-    <div class="row">
-        <div class="col-spec col-lg-8 col-xl-9 bold-labels">
-            <div class="w-100">
-                <section class="container-fluid animated fadeIn">
-                    <h2 class="m-0">
-                        <span class="font-weight-light">{{ __('Bonjour :nom, votre Fluidbook est :status', ['nom' => Auth::user()->firstname ?: '', 'status' =>  $statusText]) }} !</span>
-                    </h2>
-                    @if($fluidbook->status)
-                        <h2 class="mb-4">
-                            <span class="text-capitalize">{{ $fluidbook->title }}</span>
-                        </h2>
-                    @else
-                        <p style="line-height: 22px;">{{ __('Vous pouvez voir ci-dessous les différentes versions de votre Fluidbook et vérifier ses
-                            caractéristiques') }}. <br>{{ __('Si tout vous convient, faites le savoir à votre chef de projet, il vous
-                            préparera les livrables') }}.</p>
-                    @endif
-                    <div class="delivery-anchor">
-                        <ul class="d-flex flex-md-row flex-sm-column list-none p-0 icon-m">
-                            <li><a href="#s_glimpses" class="text-decoration-none"><img
-                                        src="{{ url('images/icons/icon-eye.svg') }}"/>{{ __('Aperçu de votre Fluidbook') }}
-                                </a></li>
-                            <li><a href="#s_settings" class="text-decoration-none"><img
-                                        src="{{ url('images/icons/icon-settings.svg') }}"/>{{ __('Paramètres du Fluidbook') }}
-                                </a></li>
-                            <li class="{{ !$fluidbook->status ? 'disabled' : '' }}"><a href="#s_social"
-                                                                                       class="text-decoration-none"><img
-                                        src="{{ url('images/icons/icon-like.svg') }}"/>{{ __('Faites connaitre votre Fluidbook') }}
-                                </a></li>
-                            <li class="{{ !$fluidbook->status ? 'disabled' : '' }}"><a href="#s_stats"
-                                                                                       class="text-decoration-none"><img
-                                        src="{{ url('images/icons/icon-stats.svg') }}"/>{{ __('Mesurez votre audience') }}
-                                </a></li>
-                        </ul>
-                    </div>
-                </section>
-                <div id="s_glimpses" class="card">
-                    <div class="card-body">
-                        <div class="mb-4">
-                            <h2 class="m-0">{{ __('Aperçu de votre Fluidbook :id', ['id' => $fluidbook->id ]) }} -
-                                <span class="text-uppercase">{{ $fluidbook->locale }}</span>
-                            </h2>
-                            <span>{{ __('Cliquez sur l’une des versions ci-dessous pour la visualiser :') }}</span>
-                        </div>
-                        <div class="delivery-glimpses row">
-                            <div class="preview {{ $fluidbookMobileFirstId ? 'col-md-6' : 'col-md-8' }}">
-                                <p>{{ __('Version Desktop') }}</p>
-                                <div class="block">
-                                    <a href="{{ $fluidbook->getPreviewURL() }}" target="_blank" rel="noopener"
-                                       class="overlay-link"></a>
-                                    <div class="preview-block">
-                                        <img class="preview-desktop" src="{{ $fluidbookDesktopPreview }}"/>
-                                    </div>
-                                    <a href="{{ $fluidbook->getPreviewURL() }}" target="_blank" rel="noopener"
-                                       class="btn btn-primary">{{ __('Voir') }}</a>
-                                </div>
-                            </div>
-                            <div class="preview {{ $fluidbookMobileFirstId ? 'col-md-3' : 'col-md-4' }}">
-                                <p>{{ __('Version Mobile') }}</p>
-                                <div class="block">
-                                    <a href="" data-featherlight="#scanBoxMobile" class="overlay-link"></a>
-                                    <div class="preview-block">
-                                        <img class="preview-mobile" src="{{ $fluidbookMobilePreview }}"/>
-                                    </div>
-                                    <a href="#" data-featherlight="#scanBoxMobile"
-                                       class="btn btn-primary">{{ __('Voir') }}</a>
-                                </div>
-                                @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobile', 'text' => 'Mobile', 'qrcode' => $qrCodeMobile])
-                            </div>
-                            @if($fluidbookMobileFirstId)
-                                <div class="preview col-md-3">
-                                    <p>{{ __('Version Mobile-first') }}</p>
-                                    <div class="block">
-                                        <a href="#" data-featherlight="#scanBoxMobileFirst" class="overlay-link"></a>
-                                        <div class="preview-block">
-                                            <img class="preview-mobile" src="{{ $fluidbookMobileFirstPreview }}"/>
-                                        </div>
-                                        <a href="#" data-featherlight="#scanBoxMobileFirst"
-                                           class="btn btn-primary">{{ __('Voir') }}</a>
-                                    </div>
-                                    @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobileFirst', 'text' => 'Mobile-first', 'qrcode' => $qrCodeMobileFirst])
-                                </div>
-                            @endif
-                        </div>
-                        <div class="indication align-items-center flex-row d-flex icon-m">
-                            <img src="{{ url('images/icons/icon-indication.svg') }}"/>
-                            <p class="m-0">{{__('Attention, ces liens temporaires de démo ne doivent être utilisés que pour
-                                la validation du Fluidbook') }}. {{__('Merci de ne pas les partager !') }}</p>
-                        </div>
-                    </div>
-                </div>
-
-                <div id="s_settings" class="card">
-                    <div class="card-body">
-                        <div>
-                            <h2 class="m-0">{{ __('Paramètres du Fluidbook') }}</h2>
-                            <span>{{ __('Voici les caractéristiques et fonctionnalités de votre Fluidbook') }}</span>
-                        </div>
-                        <div class="row mb-3">
-                            @if($settings)
-                                <div class="col-md-6">
-                                    @include('fluidbook_publication.delivery_params', ['init' => 0, 'settings', $settings])
-                                </div>
-                                <div class="col-md-6">
-                                    @include('fluidbook_publication.delivery_params', ['init' => 5, 'settings', $settings])
-                                </div>
-                            @endif
-                        </div>
-                        @if($enabledFeatures || $disabledFeatures)
-                            <div class="row mb-3">
-                                @if($enabledFeatures)
-                                    <div class="col-md-6">
-                                        <p>{{ __('Principales fonctionnalités activées') }}</p>
-                                        <div class="d-grid gap-8 feature-grid">
-                                            @foreach($enabledFeatures as $enabledFeature)
-                                                <div
-                                                    class="delivery-feature d-flex align-center text-center flex-column">
-                                                    <svg xmlns="http://www.w3.org/2000/svg">
-                                                        <use href="#{{ $enabledFeature['svg'] }}"/>
-                                                    </svg>
-                                                    <p class="title">{{ $enabledFeature['text'] }}</p>
-                                                </div>
-                                            @endforeach
-                                        </div>
-                                    </div>
-                                @endif
-                                @if($disabledFeatures)
-                                    <div class="col-md-6">
-                                        <p>{{ __('Principales fonctionnalités désactivées') }}</p>
-                                        <div class="d-grid gap-8 feature-grid">
-                                            @foreach($disabledFeatures as $disabledFeature)
-                                                <div
-                                                    class="delivery-feature disabled-feature d-flex align-center text-center flex-column">
-                                                    <svg xmlns="http://www.w3.org/2000/svg">
-                                                        <use href="#{{ $disabledFeature['svg'] }}"/>
-                                                    </svg>
-                                                    <p class="title">{{ $disabledFeature['text'] }}</p>
-                                                </div>
-                                            @endforeach
-                                        </div>
-                                    </div>
-                                @endif
-                            </div>
-                        @endif
-                        <div class="">
-                            <p class="m-0">{{ __('Vous souhaitez modifier un paramètre ou une fonctionnalité ?') }}
-                                @include('fluidbook_publication.link_contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
-                            </p>
-                        </div>
-                    </div>
-                </div>
-                @if($fluidbook->status)
-                    <div id="s_social" class="card">
-                        <div class="card-body">
-                            <div class="">
-                                <h2>{{ __('Faites connaitre votre Fluidbook') }}</h2>
-                                <p>{{ __('Pour gagner en visibilité, vous devez donner de la visibilité à votre Fluidbook sur votre site web, votre blog, vos réseaux sociaux, etc.
-                                verez ci-dessous quelques images pour vous aider à le diffuser') }}.</p>
-                            </div>
-
-                            <p class="fw-semibold">{{ __('Image pour réseaux sociaux') }}</p>
-
-                            <div class="row">
-                                <div class="col-md-4 delivery-social-image">
-                                    <img src="{{ $socialImage }}"/>
-                                </div>
-
-                                <div class="col-md-8">
-                                    <div class="card">
-                                        <div class="card-body">
-                                            <a href="https://www.opengraph.xyz/url/{{ $fluidbook->getPreviewURL(['time'=>0]) }}"
-                                               class="mb-3 d-inline-block" target="_blank" rel="noopener">
-                                                {{ __('Simuler l\'apparence de votre Fluidbook lorsqu\'il est partagé sur les principaux réseaux sociaux') }}
-                                            </a>
-                                            <ul class="list-none p-0">
-                                                <li class="pb-2">
-                                                    {{ __('Si lorsque vous partager votre publication sur les réseaux sociaux, l\'image n\'apparaît pas ou si c\'est une autre image,
-                                                    vous pouvez utiliser les outils suivant pour réinitialiser le cache des principaux réseaux sociaux') }}.
-                                                </li>
-                                                <li>Linkedin : <a href="https://www.linkedin.com/post-inspector">https://www.linkedin.com/post-inspector</a>
-                                                </li>
-                                                <li>Facebook : <a
-                                                        href="https://developers.facebook.com/tools/debug/sharing/batch">https://developers.facebook.com/tools/debug/sharing/batch</a>
-                                                </li>
-                                                <li>Twitter : <a href="https://cards-dev.twitter.com/validator">https://cards-dev.twitter.com/validator</a>
-                                                </li>
-                                            </ul>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                            <!--<div class="row">
-                                <div class="col-sm-12">
-                                    <p>Images de promotion (sites web, emails, newsletters etc.)</p>
-                                </div>
-                                <div class="col-md-4">
-                                </div>
-                                <div class="col-md-4">
-                                </div>
-                                <div class="col-md-4">
-                                </div>
-                            </div>-->
-                            <div class="delivery-preview-mini">
-                                <p class="fw-semibold">{{ __('Mini Fluidbook animé') }}</p>
-                                <div class="container-iframe">
-                                    <iframe width="677" height="401" frameborder="0" marginheight="0" marginwidth="0"
-                                            allowfullscreen="true"
-                                            src="{{$fluidbook->getPreviewUrl()}}/?widget=1&action=fullscreen&nav=auto"></iframe>
-                                </div>
-                                <div class="mt-2">
-                                    <a href="{{ $noticesUrls[$lang]['widget'] }}" target="_blank"
-                                       rel="noopener">{{ __('Voir la notice') }}</a>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                @endif
-                <div id="s_stats" class="card">
-                    <div class="card-body">
-                        <div class="">
-                            <h2>{{ __('Mesurez votre audience') }}</h2>
-                            <p>{{ __('Les statistiques vous aident à mesurer l\'efficacité de votre Fluidbook et vous
-                                fournissent des informations précieuses sur votre public.')}} {{ __('Connaître les préférences
-                                et
-                                les besoins de vos lecteurs constitue également une base solide pour améliorer votre
-                                document')}}.</p>
-                        </div>
-                        <div class="row">
-                            <div class="col-md-6">
-                                <div class="card">
-                                    <div class="card-body">
-                                        <h3 class="font-xl">{{ __('Statistiques Fluidbook') }}</h3>
-                                        <p>{{ __('Avec notre module de statistiques intégré, vous savez combien de personnes
-                                            ont vu
-                                            votre Fluidbook, quelles pages les ont le plus intéressé, quels
-                                            mots-clés ils ont
-                                            cherché, etc...') }}</p>
-                                        @if($fluidbook->stats)
-                                            <a href="{{ $statUrl }}" class="btn btn-primary" target="_blank"
-                                               rel="noopener">
-                                                {{ __('Voir les statistiques') }}
-                                            </a>
-                                        @else
-                                            <button
-                                                class="btn bg-default pointer-none disabled">{{ __('Statistiques désactivées') }}</button>
-                                        @endif
-                                    </div>
-                                </div>
-                            </div>
-                            <div class="col-md-6">
-                                <div class="card">
-                                    <div class="card-body">
-                                        <h3 class="font-xl">{{ __('Statistiques Google Analytics') }}</h3>
-                                        <p>{{ __('Fluidbook est conçu pour fonctionner avec Google Analytics et Google Tag
-                                            Manager
-                                            (GTM) pour vous donner accès à l\'un des outils de statistiques gratuits les
-                                            plus
-                                            puissants du marché')}}.</p>
-                                        @if($fluidbook->googleAnalytics)
-                                            <a href="https://analytics.google.com/" class="btn btn-primary"
-                                               target="_blank" rel="noopener">
-                                                {{ __('Voir les statistiques') }}
-                                            </a>
-                                        @else
-                                            <button
-                                                class="btn bg-default pointer-none disabled">{{ __('Statistiques désactivées') }}</button>
-                                            <a href="{{ $noticesUrls[$lang]['ga'] }}" class="btn bg-default ml-2"
-                                               target="_blank" rel="noopener">{{ __('Voir
-                                                la notice')}}</a>
-                                        @endif
-                                        <div class="mt-3">
-                                            <p class="m-0">{{ __('Vous souhaitez activer Google Analytics dans votre Fluidbook
-                                                ?')}}</p>
-                                            @include('fluidbook_publication.link_contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-
-
-                <div class="card bg-dark">
-                    <div class="card-body">
-                        <h2>{{ __('Une question sur votre Fluidbook ?') }}</h2>
-                        <p>
-                            {{ __('Vous avez remarqué une erreur ou vous souhaitez changer un paramètre ?') }}
-                            @if(!$CDPMail)
-                                {{ __('Contacter votre chef de projet') }}
-                            @endif
-                        </p>
-                        @if($CDPMail)
-                            <a href="mailto:{{ $CDPMail }}?subject={{ $objectMail }}" class="btn btn-primary">
-                                {{ __('Contacter votre chef de projet') }}
-                            </a>
-                        @endif
-                    </div>
-                </div>
-            </div>
-        </div>
-        @if($fluidbook->status)
-            <div class="col-spec col-lg-4 col-xl-3">
-                <div class="card position-sticky" style="top: 50px">
-                    <div class="card-body">
-                        <h2>{{ __('Publiez votre Fluidbook') }}</h2>
-                        <p>{{ __('L\'adresse d’hébergement a déjà été configurée, vous pouvez mettre votre Fluidbook
-                            directement en ligne en cliquant ci-dessous :')}}</p>
-                        <div class="btn-install">
-                            <a href="{{ $prefixDownloadUrl.'/install/online' }}"
-                               class="btn btn-primary font-weight-normal text-left" target="_blank" rel="noopener">
-                                {!! __('Installer sur le serveur :server', ['server' => "<span class='font-weight-bold'>".$serverName."</span>"]) !!}
-                                <p class="m-0 font-xs font-weight-normal">{{ $installServerUrl }}</p>
-                            </a>
-                        </div>
-                        <div class="delivery-dropdown position-relative">
-                            <div class="dropdown-control d-flex justify-content-between">
-                                <span>{{ __('Téléchargez et installez votre Fluidbook') }}</span>
-                                <img src="{{ url('images/icons/icon-arrow-down.svg') }}"/>
-                            </div>
-                            <div class="dropdown-content position-relative">
-                                @php
-                                    $activeVersions = array_filter($downloadVersions, function($n) {
-                                        return $n['install'];
-                                    });
-                                    $winVersion = array_filter(array_keys($downloadVersions), function($n) {
-                                        return str_contains($n, "win");
-                                    });
-                                    $winActiveVersion = array_filter(array_keys($activeVersions), function($n) {
-                                        return str_contains($n, "win");
-                                    });
-
-                                    if(sizeof($winVersion) > 1 && sizeof($winActiveVersion) === 0)
-                                        unset($downloadVersions['win_cd_html'])
-                                @endphp
-                                @foreach($downloadVersions as $key => $version)
-                                    @php
-                                        $downloadUrl = $prefixDownloadUrl.'/download/';
-                                        $downloadUrl .= $key === 'scorm/' ?'scorm/'.$key : $key;
-                                        if(str_contains(key($activeVersions), "win")) {
-                                            if(str_contains($key, "win")) $version['install'] = true;
-                                        }
-                                    @endphp
-                                    @isset($version['text'])
-                                        <div
-                                            class="dropdown-element position-relative d-flex align-items-center {{ $version['install'] || ( str_contains($key, "win") && sizeof($winActiveVersion) > 0 ) ? 'active' : '' }}">
-                                            <a href=""></a>
-                                            <div class="icon">
-                                                {!! $version['icon'] !!}
-                                            </div>
-                                            <div class="text">
-                                                <p class="version m-0">
-                                                    {{ $version['text'] }}
-                                                </p>
-                                                @if((sizeof($winActiveVersion) === sizeof($winVersion) && str_contains($key, "win")) || (sizeof($winActiveVersion) > 1 && str_contains($key, "win") ) || !str_contains($key, "win"))
-                                                    @isset($version['type'])
-                                                        <p class="type m-0">
-                                                            {{ $version['type'] }}
-                                                        </p>
-                                                    @endisset
-                                                @endif
-                                            </div>
-                                            <div class="tools d-flex align-center ml-auto">
-                                                @isset($version['notice_fr'])
-                                                    <a href="{{ $version['notice_fr'] }}"
-                                                       class="mr-1 instruction position-relative">
-                                                        <svg id="Instruction" xmlns="http://www.w3.org/2000/svg"
-                                                             width="30" height="30" viewBox="0 0 30 30">
-                                                            <circle id="Ellipse_24" data-name="Ellipse 24" cx="15"
-                                                                    cy="15" r="15" fill="rgba(70,127,207,0.1)"/>
-                                                            <g id="Groupe_270" data-name="Groupe 270"
-                                                               transform="translate(9.5 8.5)">
-                                                                <path id="Tracé_124" data-name="Tracé 124"
-                                                                      d="M12.5,13.54H3a1.5,1.5,0,0,1,0-3h8.5a1,1,0,0,0,1-1v-8a1,1,0,0,0-1-1H3A1.5,1.5,0,0,0,1.5,2V12"
-                                                                      transform="translate(-1.5 -0.54)" fill="none"
-                                                                      stroke="#3a72c5" stroke-linecap="round"
-                                                                      stroke-linejoin="round" stroke-width="1"/>
-                                                                <line id="Ligne_20" data-name="Ligne 20" y2="3"
-                                                                      transform="translate(10 10)" fill="none"
-                                                                      stroke="#3a72c5" stroke-linecap="round"
-                                                                      stroke-linejoin="round" stroke-width="1"/>
-                                                            </g>
-                                                        </svg>
-                                                    </a>
-                                                @endisset
-                                                @if($version['install'] || (str_contains($key, "win") && sizeof($winActiveVersion) > 0))
-                                                    <a class="download-overlay" href="{{ $downloadUrl }}"></a>
-                                                    <a href="{{ $downloadUrl }}" class="download">
-                                                        <svg id="Groupe_268" data-name="Groupe 268"
-                                                             xmlns="http://www.w3.org/2000/svg" width="30" height="30"
-                                                             viewBox="0 0 30 30">
-                                                            <rect id="Rectangle_480" data-name="Rectangle 480"
-                                                                  width="30" height="30" rx="15" fill="#467fcf"/>
-                                                            <g id="Groupe_265" data-name="Groupe 265"
-                                                               transform="translate(8.5 8)">
-                                                                <path id="Tracé_122" data-name="Tracé 122"
-                                                                      d="M.5,10.5v1a2,2,0,0,0,2,2h9a2,2,0,0,0,2-2v-1"
-                                                                      transform="translate(-0.5 -0.5)" fill="none"
-                                                                      stroke="#fff" stroke-linecap="round"
-                                                                      stroke-linejoin="round" stroke-width="1"/>
-                                                                <path id="Tracé_123" data-name="Tracé 123"
-                                                                      d="M4,6,7,9.5,10,6"
-                                                                      transform="translate(-0.5 -0.5)" fill="none"
-                                                                      stroke="#fff" stroke-linecap="round"
-                                                                      stroke-linejoin="round" stroke-width="1"/>
-                                                                <line id="Ligne_19" data-name="Ligne 19" y1="9"
-                                                                      transform="translate(6.5)" fill="none"
-                                                                      stroke="#fff" stroke-linecap="round"
-                                                                      stroke-linejoin="round" stroke-width="1"/>
-                                                            </g>
-                                                        </svg>
-                                                    </a>
-                                                @else
-                                                    <svg id="Groupe_271" data-name="Groupe 271"
-                                                         xmlns="http://www.w3.org/2000/svg" width="30" height="30"
-                                                         viewBox="0 0 30 30">
-                                                        <circle id="Ellipse_24" data-name="Ellipse 24" cx="15" cy="15"
-                                                                r="15" fill="#fff"/>
-                                                        <g id="Groupe_271-2" data-name="Groupe 271"
-                                                           transform="translate(10 8.252)" opacity="0.2">
-                                                            <rect id="Rectangle_481" data-name="Rectangle 481"
-                                                                  width="10" height="8" rx="1"
-                                                                  transform="translate(0 5)" fill="none"
-                                                                  stroke="#1b2a4e" stroke-linecap="round"
-                                                                  stroke-linejoin="round" stroke-width="1"/>
-                                                            <path id="Tracé_125" data-name="Tracé 125"
-                                                                  d="M10.5,5.5V4a3.5,3.5,0,0,0-7,0V5.5"
-                                                                  transform="translate(-2 -0.5)" fill="none"
-                                                                  stroke="#1b2a4e" stroke-linecap="round"
-                                                                  stroke-linejoin="round" stroke-width="1"/>
-                                                            <circle id="Ellipse_30" data-name="Ellipse 30" cx="0.5"
-                                                                    cy="0.5" r="0.5" transform="translate(4.5 8.5)"
-                                                                    fill="none" stroke="#1b2a4e" stroke-linecap="round"
-                                                                    stroke-linejoin="round" stroke-width="1"/>
-                                                        </g>
-                                                    </svg>
-                                                @endif
-                                            </div>
-                                        </div>
-                                    @endisset
-                                @endforeach
-                                <p class="m-0">{{ __('Il vous manque une version ?') }}</p>
-                                @include('fluidbook_publication.link_contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        @endif
-    </div>
-@endsection
-
-@push('after_scripts')
-    <script>
-        (function ($) {
-            $(function () {
-                document.documentElement.style.setProperty('--dropdown-content-height', $(".delivery-dropdown").height + 'px');
-                document.documentElement.style.setProperty('--dropdown-control-height', $(".dropdown-control").innerHeight() + 2 + 'px');
-                $(document).on('click', '.dropdown-control', function () {
-                    $(".delivery-dropdown").toggleClass("active")
-                });
-            })
-        })(jQuery);
-    </script>
-@endpush
diff --git a/resources/views/fluidbook_publication/delivery/contact_manager.blade.php b/resources/views/fluidbook_publication/delivery/contact_manager.blade.php
new file mode 100644 (file)
index 0000000..03eb995
--- /dev/null
@@ -0,0 +1,7 @@
+@if($mail)
+    <a href="mailto:{{$mail}}?subject={{$object}}" {!!  (isset($class)?'class="'.e($class).'"':'')!!}>
+        @endif
+        {{ $text??__('Contactez votre chef de projet') }}
+        @if($mail)
+    </a>
+@endif
diff --git a/resources/views/fluidbook_publication/delivery/index.blade.php b/resources/views/fluidbook_publication/delivery/index.blade.php
new file mode 100644 (file)
index 0000000..22cb1dd
--- /dev/null
@@ -0,0 +1,620 @@
+@extends(backpack_view('blank'))
+
+@php
+    $breadcrumbs = [
+        trans('backpack::crud.admin') => url(config('backpack.base.route_prefix'), 'dashboard'),
+        trans('backpack::base.my_account') => false,
+    ];
+    $statusText = $fluidbook->status ? __('prêt') : __('en cours de production');
+    $qrCodeMobile = QrCode::size(311)->color(27, 42, 78)->generate($fluidbook->getPreviewURL());
+
+    $fluidbookDesktopPreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'desktop']);
+    $fluidbookMobilePreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'mobile']);
+
+    $fluidbookMobileFirstId = $fluidbook->mobilefirstFluidbookId;
+    if($fluidbookMobileFirstId){
+        $previewMobileFirstUrl = App\Models\FluidbookPublication::find($fluidbookMobileFirstId)->getPreviewURL();
+        $qrCodeMobileFirst = QrCode::size(311)->color(27, 42, 78)->generate($previewMobileFirstUrl);
+        $fluidbookMobileFirstPreview = route('deliveryThumb', ['id' => $fluidbookMobileFirstId, 'type' => 'mobile']);
+    }
+
+    $totalPages = $fluidbook->getPagesNumber();
+    $settings = [
+        __('Titre') => $fluidbook->title,
+        __('Nombre de pages') => $totalPages. ' pages',
+        __('Langue principale') => renameSettings($fluidbook->locale),
+        __('Date de création') => ( new \Carbon\Carbon($fluidbook->created_at))->isoFormat('DD/MM/Y'),
+        __('Dernière modification') => ( new \Carbon\Carbon($fluidbook->updated_at))->isoFormat('DD/MM/Y'),
+        __('Mode de navigation') => renameSettings($fluidbook->mobileTransitions),
+        __('SEO') => renameSettings($fluidbook->seoVersion),
+        'SCORM ('.__('e-learning').')' => $fluidbook->scorm_enabled ? 'SCORM '.$fluidbook->getSCORMVersion() : __('Désactivé'),
+        __('Statistiques Fluidbook') => renameSettings($fluidbook->stats, true, true),
+        'Google Analytics' => $fluidbook->googleAnalytics ? $fluidbook->googleTagManager : __('Désactivé')
+    ];
+
+    function renameSettings($v, $fem = false, $plural = false) {
+        if($fem){
+            if($plural){
+                $enabled=__('Activées');
+                $disabled=__('Désactivées');
+            }else{
+                $enabled=__('Activée');
+                $disabled=__('Désactivée');
+            }
+        }else{
+            if($plural){
+                $enabled=__('Activés');
+                $disabled=__('Désactivés');
+            }else{
+                $enabled=__('Activé');
+                $disabled=__('Désactivé');
+            }
+        }
+        return match ($v) {
+            'flip3d','flip' => 'Flip',
+            'fade' => 'Air',
+            '1' => $enabled,
+            '0','',null => $disabled,
+            'fr' => __('Français'),
+            'en' => __('Anglais'),
+            default => ucfirst($v)
+        };
+    }
+
+    function getGoogleDocsURL($id){
+        return 'https://docs.google.com/document/d/'.$id.'/export?format=pdf';
+    }
+
+    $features = [
+        'index' => ["value" => $fluidbook->index,"text" => __('Index'),"svg" => "nav-index"],
+        'print' => ["value" => $fluidbook->print,"text" => __('Imprimer'),"svg" => "nav-print"],
+        'chapters' => ["value" => $fluidbook->chapters,"text" => __('Sommaire'),"svg" => "nav-chapters"],
+        'friend' => ["value" => $fluidbook->share,"text" => __('Partager'),"svg" => "nav-share"],
+        'bookmark' => ["value" => $fluidbook->bookmark,"text" => __('Marques-pages'),"svg" => "nav-bookmarks"],
+        'pdf' => ["value" => $fluidbook->pdf,"text" => __('Télécharger'),"svg" => "nav-download"],
+        'sound' => ["value" => $fluidbook->soundTheme,"text" => __('Son'),"svg" => "nav-sound-on"],
+        'search' => ["value" => $fluidbook->search,"text" => __('Recherche'),"svg" => "nav-search"],
+        'help' => ["value" => $fluidbook->help,"text" => __('Aide'),"svg" => "nav-help"],
+        'notes' => ["value" => $fluidbook->notes,"text" => __('Notes'),"svg" => "nav-notes"],
+        'fullscreen' => ["value" => $fluidbook->fullscreen,"text" => __('Plein écran'),"svg" => "nav-fullscreen"],
+    ];
+
+    $orders = explode(',',$fluidbook->navOrder);
+    $orders = array_map(function($n) { return trim($n); }, $orders);
+    $orders = array_flip($orders);
+    $orders = array_intersect_key($orders,$features);
+
+    $featuresSorted = array_merge($orders, $features);
+
+    $enabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "0" && !empty($n['value']); });
+    $disabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "1" && empty($n['value']); });
+
+    $icons = App\Models\FluidbookIconset::get('icons')->toArray();
+
+    $statUrl = route('stats', ['fluidbook_id' => $fluidbook->id, 'hash' => $fluidbook->hash]);
+    $cid = $fluidbook->cid;
+
+    $socialImage = route('social_image',['cid' => $cid]);
+    if($fluidbook->facebook_image)
+        $socialImage = $fluidbook->facebook_image;
+
+    $installServerUrl = null;
+    if($fluidbook->install_online) {
+        if($fluidbook->install_online['server']) {
+            $serverId = intval($fluidbook->install_online['server']);
+            $serverPath = $fluidbook->install_online['path'];
+            $servers=\App\Models\FluidbookExternalInstallServer::getAllServers();
+            $serverInfos = $servers[$serverId];
+            $baseUrl = $serverInfos['base_url'];
+            $serverName = $serverInfos['name'];
+            $installServerUrl = $baseUrl.$serverPath;
+        }
+    }
+
+    $downloadVersions = $fluidbook->getDownloadVersions();
+    $prefixDownloadUrl = '/fluidbook-publication/'.$fluidbook->id;
+    $prefixDownloadUrl = $prefixDownloadUrl.'/package';
+
+    foreach ($downloadVersions as $key => $version) {
+        if($key === "online") {
+            $downloadVersions[$key]['text'] = __("Standard");
+            $downloadVersions[$key]['type'] = __("(Serveur Web)");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-standard-server.svg'));
+            $downloadVersions[$key]['notice_fr'] = "1j4lEk2vqUnenXZQs2ucNZg51aFTLmTOoHPgYolj46m0";
+            $downloadVersions[$key]['notice_en'] = "1CeLq8R8LMhWjZ0caXrO0HcfxRtzqGQkpaKJvDcYt_ZY";
+        }elseif ($key === "scorm") {
+            $downloadVersions[$key]['text'] = __("LMS Scorm");
+            $downloadVersions[$key]['type'] = __("(LMS / SCORM)");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-lms-scorm.svg'));
+            $downloadVersions[$key]['notice_fr'] = "1cZ_dTdehk2av0ZUGryY1xLF5IQoqSyCmgBXPH1OYPu4"; // Pas de notice en Français
+            $downloadVersions[$key]['notice_en'] = "1cZ_dTdehk2av0ZUGryY1xLF5IQoqSyCmgBXPH1OYPu4";
+        }elseif ($key === "sharepoint") {
+            $downloadVersions[$key]['text'] = __("SharePoint");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-sharepoint.svg'));
+            $downloadVersions[$key]['notice_fr'] = "1O5EInYbNmNmcqi0VXq0FU7CqeYV6VJeJ0aI-bbgSlBc";
+            $downloadVersions[$key]['notice_en'] = "1YeBLektflXZZz6yU-EKpYxe7i0fL0Oy13pB1vMdwMgw";
+        }elseif ($key === "mac_exe_html") {
+            $downloadVersions[$key]['text'] = __("Version Offline");
+            $downloadVersions[$key]['type'] = __("(Application MacOS)");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-mac-app.svg'), true);
+        }elseif ($key === "win_ins_html") {
+            $downloadVersions[$key]['text'] = __("Version Offline");
+            $downloadVersions[$key]['type'] = __("(Application Windows)");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-windows-app.svg'));
+        }elseif ($key === "win_cd_html") {
+            $downloadVersions[$key]['text'] = __("Version Offline");
+            $downloadVersions[$key]['type'] = __("(CD-ROM / Clé USB)");
+            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-cd-usb.svg'));
+        }
+    }
+
+    $objectMail = "[Fluidbook #".$fluidbook->id."]";
+
+    $lang = app()->getLocale();
+
+    $noticesUrls = [
+        'fr' => [
+            'widget' => "15F40AfCYpAvT_w2Y1cC-Y88rV1bCOXUuiRh7C__RugM",
+            'ga' => "1gDnVgCx7MMcKlqJbPFCpRN27hBGpXEC1-s7f1Lsev5E"
+        ],
+        'en' => [
+            'widget' => "1rn-fW8cRJsBiBrNonZgZNcZ-4sSmvglvJsSsmhdfXA8",
+            'ga' => "1wg2dr7zs68k_Pq33idwbROSmamGHsAU0kdNYswSyklc"
+        ],
+    ];
+
+    $CDPMail = $fluidbook->getProjectManagerEmail();
+@endphp
+
+@section('after_styles')
+    <link rel="stylesheet" href="/packages/fluidbook/toolbox/css/delivery.css"/>
+@endsection
+
+@section('content')
+    <div id="svg-container">
+        {!! $icons[0]["icons"] !!}
+    </div>
+    <div class="row">
+        <div class="col-spec col-lg-8 col-xl-9 bold-labels">
+            <div class="w-100">
+                <section class="container-fluid animated fadeIn">
+                    <h2 class="m-0">
+                        <span class="font-weight-light">{{ __('Bonjour :nom, votre Fluidbook est :status', ['nom' => Auth::user()->firstname ?: '', 'status' =>  $statusText]) }} !</span>
+                    </h2>
+                    @if($fluidbook->status)
+                        <h2 class="mb-4">
+                            <span class="text-capitalize">{{ $fluidbook->title }}</span>
+                        </h2>
+                    @else
+                        <p style="line-height: 22px;">
+                            {{ __('Vous pouvez voir ci-dessous les différentes versions de votre Fluidbook et vérifier ses caractéristiques.') }}
+                            <br>{{ __('Si tout vous convient, faites le savoir à votre chef de projet, il vous préparera les livrables.') }}
+                        </p>
+                    @endif
+                    <div class="delivery-anchor">
+                        <ul class="d-flex flex-md-row flex-sm-column list-none p-0 icon-m">
+                            <li><a href="#s_glimpses" class="text-decoration-none"><img
+                                        src="{{ url('images/icons/icon-eye.svg') }}"/>{{ __('Aperçu de votre Fluidbook') }}
+                                </a></li>
+                            <li><a href="#s_settings" class="text-decoration-none"><img
+                                        src="{{ url('images/icons/icon-settings.svg') }}"/>{{ __('Paramètres du Fluidbook') }}
+                                </a></li>
+                            <li class="{{ !$fluidbook->status ? 'disabled' : '' }}"><a href="#s_social"
+                                                                                       class="text-decoration-none"><img
+                                        src="{{ url('images/icons/icon-like.svg') }}"/>{{ __('Faites connaitre votre Fluidbook') }}
+                                </a></li>
+                            <li class="{{ !$fluidbook->status ? 'disabled' : '' }}"><a href="#s_stats"
+                                                                                       class="text-decoration-none"><img
+                                        src="{{ url('images/icons/icon-stats.svg') }}"/>{{ __('Mesurez votre audience') }}
+                                </a></li>
+                        </ul>
+                    </div>
+                </section>
+                <div id="s_glimpses" class="card">
+                    <div class="card-body">
+                        <div class="mb-4">
+                            <h2 class="m-0">{{ __('Aperçu de votre Fluidbook :id', ['id' => $fluidbook->id ]) }} -
+                                <span class="text-uppercase">{{ $fluidbook->locale }}</span>
+                            </h2>
+                            <span>{{ __('Cliquez sur l’une des versions ci-dessous pour la visualiser :') }}</span>
+                        </div>
+                        <div class="delivery-glimpses row">
+                            <div class="preview {{ $fluidbookMobileFirstId ? 'col-md-6' : 'col-md-8' }}">
+                                <p>{{ __('Version Desktop') }}</p>
+                                <div class="block">
+                                    <a href="{{ $fluidbook->getPreviewURL() }}" target="_blank" rel="noopener"
+                                       class="overlay-link"></a>
+                                    <div class="preview-block">
+                                        <img class="preview-desktop" src="{{ $fluidbookDesktopPreview }}"/>
+                                    </div>
+                                    <a href="{{ $fluidbook->getPreviewURL() }}" target="_blank" rel="noopener"
+                                       class="btn btn-primary">{{ __('Voir') }}</a>
+                                </div>
+                            </div>
+                            <div class="preview {{ $fluidbookMobileFirstId ? 'col-md-3' : 'col-md-4' }}">
+                                <p>{{ __('Version Mobile') }}</p>
+                                <div class="block">
+                                    <a href="" data-featherlight="#scanBoxMobile" class="overlay-link"></a>
+                                    <div class="preview-block">
+                                        <img class="preview-mobile" src="{{ $fluidbookMobilePreview }}"/>
+                                    </div>
+                                    <a href="#" data-featherlight="#scanBoxMobile"
+                                       class="btn btn-primary">{{ __('Voir') }}</a>
+                                </div>
+                                @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobile', 'text' => 'Mobile', 'qrcode' => $qrCodeMobile])
+                            </div>
+                            @if($fluidbookMobileFirstId)
+                                <div class="preview col-md-3">
+                                    <p>{{ __('Version Mobile-first') }}</p>
+                                    <div class="block">
+                                        <a href="#" data-featherlight="#scanBoxMobileFirst" class="overlay-link"></a>
+                                        <div class="preview-block">
+                                            <img class="preview-mobile" src="{{ $fluidbookMobileFirstPreview }}"/>
+                                        </div>
+                                        <a href="#" data-featherlight="#scanBoxMobileFirst"
+                                           class="btn btn-primary">{{ __('Voir') }}</a>
+                                    </div>
+                                    @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobileFirst', 'text' => 'Mobile-first', 'qrcode' => $qrCodeMobileFirst])
+                                </div>
+                            @endif
+                        </div>
+                        <div class="indication align-items-center flex-row d-flex icon-m">
+                            <img src="{{ url('images/icons/icon-indication.svg') }}"/>
+                            <p class="m-0">{{__('Attention, ces liens temporaires de démo ne doivent être utilisés que pour la validation du Fluidbook.') }} {{__('Merci de ne pas les partager !') }}</p>
+                        </div>
+                    </div>
+                </div>
+
+                <div id="s_settings" class="card">
+                    <div class="card-body">
+                        <div>
+                            <h2 class="m-0">{{ __('Paramètres du Fluidbook') }}</h2>
+                            <span>{{ __('Voici les caractéristiques et fonctionnalités de votre Fluidbook') }}</span>
+                        </div>
+                        <div class="row mb-3">
+                            @if($settings)
+                                @include('fluidbook_publication.delivery.mainsettings', ['settings'=> $settings])
+                            @endif
+                        </div>
+                        @if($enabledFeatures || $disabledFeatures)
+                            <div class="row mb-3">
+                                @if($enabledFeatures)
+                                    <div class="col-md-6">
+                                        <p>{{ __('Principales fonctionnalités activées') }}</p>
+                                        <div class="d-grid gap-8 feature-grid">
+                                            @foreach($enabledFeatures as $enabledFeature)
+                                                <div
+                                                    class="delivery-feature d-flex align-center text-center flex-column">
+                                                    <svg xmlns="http://www.w3.org/2000/svg">
+                                                        <use href="#{{ $enabledFeature['svg'] }}"/>
+                                                    </svg>
+                                                    <p class="title">{{ $enabledFeature['text'] }}</p>
+                                                </div>
+                                            @endforeach
+                                        </div>
+                                    </div>
+                                @endif
+                                @if($disabledFeatures)
+                                    <div class="col-md-6">
+                                        <p>{{ __('Principales fonctionnalités désactivées') }}</p>
+                                        <div class="d-grid gap-8 feature-grid">
+                                            @foreach($disabledFeatures as $disabledFeature)
+                                                <div
+                                                    class="delivery-feature disabled-feature d-flex align-center text-center flex-column">
+                                                    <svg xmlns="http://www.w3.org/2000/svg">
+                                                        <use href="#{{ $disabledFeature['svg'] }}"/>
+                                                    </svg>
+                                                    <p class="title">{{ $disabledFeature['text'] }}</p>
+                                                </div>
+                                            @endforeach
+                                        </div>
+                                    </div>
+                                @endif
+                            </div>
+                        @endif
+                        <div class="">
+                            <p class="m-0">{{ __('Vous souhaitez modifier un paramètre ou une fonctionnalité ?') }}
+                                @include('fluidbook_publication.delivery.contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
+                            </p>
+                        </div>
+                    </div>
+                </div>
+                @if($fluidbook->status)
+                    <div id="s_social" class="card">
+                        <div class="card-body">
+                            <div class="">
+                                <h2>{{ __('Faites connaitre votre Fluidbook') }}</h2>
+                                <p>{{ __('Pour gagner en visibilité, vous devez donner de la visibilité à votre Fluidbook sur votre site web, votre blog, vos réseaux sociaux, etc.') }}</p>
+                                <p>{{__('Vous trouverez ci-dessous des images, outils et informations pour vous aider à le diffuser.')}}</p>
+                            </div>
+
+                            <p class="fw-semibold">{{ __('Image pour réseaux sociaux') }}</p>
+
+                            <div class="row">
+                                <div class="col-md-4 delivery-social-image">
+                                    <img src="{{ $socialImage }}"/>
+                                </div>
+
+                                <div class="col-md-8">
+                                    <div class="card">
+                                        <div class="card-body">
+                                            <a href="https://www.opengraph.xyz/url/{{ $fluidbook->getPreviewURL(['time'=>0]) }}"
+                                               class="mb-3 d-inline-block" target="_blank" rel="noopener">
+                                                {{ __('Simuler l\'apparence de votre Fluidbook lorsqu\'il est partagé sur les principaux réseaux sociaux') }}
+                                            </a>
+                                            <ul class="list-none p-0">
+                                                <li class="pb-2">
+                                                    {{ __('Si lorsque vous partager votre publication sur les réseaux sociaux, l\'image n\'apparaît pas ou si c\'est une image qui n\'est plus à jour, vous pouvez utiliser les outils suivant pour réinitialiser le cache des principaux réseaux sociaux.') }}
+                                                </li>
+                                                @php
+                                                    $social=[
+                                                        'Facebook'=>'https://developers.facebook.com/tools/debug/sharing/batch',
+                                                        'LinkedIn'=>'https://www.linkedin.com/post-inspector',
+                                                        'Twitter'=>'https://cards-dev.twitter.com/validator'
+                                                        ];
+                                                @endphp
+                                                @foreach($social as $name=>$url)
+                                                    <li>{{$name}} : <a href="{{$url}}">{{$url}}</a>
+                                                    </li>
+                                                @endforeach
+                                            </ul>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <!--<div class="row">
+                                <div class="col-sm-12">
+                                    <p>Images de promotion (sites web, emails, newsletters etc.)</p>
+                                </div>
+                                <div class="col-md-4">
+                                </div>
+                                <div class="col-md-4">
+                                </div>
+                                <div class="col-md-4">
+                                </div>
+                            </div>-->
+                            <div class="delivery-preview-mini">
+                                <p class="fw-semibold">{{ __('Mini Fluidbook animé') }}</p>
+                                <div class="container-iframe">
+                                    <iframe width="677" height="401" frameborder="0" marginheight="0" marginwidth="0"
+                                            allowfullscreen="true"
+                                            src="{{$fluidbook->getPreviewUrl()}}/?widget=1&action=fullscreen&nav=auto"></iframe>
+                                </div>
+                                <div class="mt-2">
+                                    <a href="{{ getGoogleDocsURL($noticesUrls[$lang]['widget']) }}"
+                                       rel="noopener">{{ __('Voir la notice') }}</a>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                @endif
+                <div id="s_stats" class="card">
+                    <div class="card-body">
+                        <div class="">
+                            <h2>{{ __('Mesurez votre audience') }}</h2>
+                            <p>{{ __('Les statistiques vous aident à mesurer l\'efficacité de votre Fluidbook et vous fournissent des informations précieuses sur votre public.')}}
+                                {{ __('Connaître les préférences et les besoins de vos lecteurs constitue également une base solide pour améliorer votre document')}}
+                                .</p>
+                        </div>
+                        <div class="row">
+                            <div class="col-md-6">
+                                <div class="card">
+                                    <div class="card-body">
+                                        <h3 class="font-xl">{{ __('Statistiques Fluidbook') }}</h3>
+                                        <p>{{ __('Avec notre module de statistiques intégré, vous savez combien de personnes ont vu votre Fluidbook, quelles pages les ont le plus intéressé, quels mots-clés ils ont cherché, etc...') }}</p>
+                                        @if($fluidbook->stats)
+                                            <a href="{{ $statUrl }}" class="btn btn-primary" target="_blank"
+                                               rel="noopener">
+                                                {{ __('Voir les statistiques') }}
+                                            </a>
+                                        @else
+                                            <button
+                                                class="btn bg-default pointer-none disabled">{{ __('Statistiques désactivées') }}</button>
+                                        @endif
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="col-md-6">
+                                <div class="card">
+                                    <div class="card-body">
+                                        <h3 class="font-xl">{{ __('Statistiques Google Analytics') }}</h3>
+                                        <p>{{ __('Fluidbook est conçu pour fonctionner avec Google Analytics et Google Tag Manager (GTM) pour vous donner accès à l\'un des outils de statistiques gratuits les plus puissants du marché')}}
+                                            .</p>
+                                        @if($fluidbook->googleAnalytics)
+                                            <a href="https://analytics.google.com/" class="btn btn-primary"
+                                               target="_blank" rel="noopener">
+                                                {{ __('Voir les statistiques') }}
+                                            </a>
+                                        @else
+                                            <button
+                                                class="btn bg-default pointer-none disabled">{{ __('Statistiques désactivées') }}</button>
+                                            <a href="{{ getGoogleDocsURL($noticesUrls[$lang]['ga']) }}"
+                                               class="btn bg-default ml-2" rel="noopener">{{ __('Voir la notice')}}</a>
+                                        @endif
+                                        <div class="mt-3">
+                                            <p class="m-0">{{ __('Vous souhaitez activer Google Analytics dans votre Fluidbook ?')}}</p>
+                                            @include('fluidbook_publication.delivery.contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+
+                <div class="card bg-dark">
+                    <div class="card-body">
+                        <h2>{{ __('Une question sur votre Fluidbook ?') }}</h2>
+                        <p>
+                            {{ __('Vous avez remarqué une erreur ou vous souhaitez changer un paramètre ?') }}
+                        </p>
+                        @include('fluidbook_publication.delivery.contact_manager', ['mail' => $CDPMail, 'object' => $objectMail,'class'=>'btn btn-primary'])
+                    </div>
+                </div>
+            </div>
+        </div>
+        @if($fluidbook->status)
+            <div class="col-spec col-lg-4 col-xl-3">
+                <div class="card position-sticky" style="top: 50px">
+                    <div class="card-body">
+                        <h2>{{ __('Publiez votre Fluidbook') }}</h2>
+                        <p>{{ __('L\'adresse d’hébergement a déjà été configurée, vous pouvez mettre votre Fluidbook
+                            directement en ligne en cliquant ci-dessous :')}}</p>
+                        <div class="btn-install">
+                            <a href="{{ $prefixDownloadUrl.'/install/online' }}"
+                               class="btn btn-primary font-weight-normal text-left" rel="noopener">
+                                {!! __('Installer sur le serveur :server', ['server' => "<span class='font-weight-bold'>".$serverName."</span>"]) !!}
+                                <p class="m-0 font-xs font-weight-normal">{{ $installServerUrl }}</p>
+                            </a>
+                        </div>
+                        <div class="delivery-dropdown position-relative">
+                            <div class="dropdown-control d-flex justify-content-between">
+                                <span>{{ __('Téléchargez et installez votre Fluidbook') }}</span>
+                                <img src="{{ url('images/icons/icon-arrow-down.svg') }}"/>
+                            </div>
+                            <div class="dropdown-content position-relative">
+                                @php
+                                    $activeVersions = array_filter($downloadVersions, function($n) {
+                                        return $n['install'];
+                                    });
+                                    $winVersion = array_filter(array_keys($downloadVersions), function($n) {
+                                        return str_contains($n, "win");
+                                    });
+                                    $winActiveVersion = array_filter(array_keys($activeVersions), function($n) {
+                                        return str_contains($n, "win");
+                                    });
+
+                                    if(sizeof($winVersion) > 1 && sizeof($winActiveVersion) === 0)
+                                        unset($downloadVersions['win_cd_html'])
+                                @endphp
+                                @foreach($downloadVersions as $key => $version)
+                                    @php
+                                        $downloadUrl = $prefixDownloadUrl.'/download/';
+                                        $downloadUrl .= $key === 'scorm/' ?'scorm/'.$key : $key;
+                                        if(str_contains(key($activeVersions), "win")) {
+                                            if(str_contains($key, "win")) $version['install'] = true;
+                                        }
+                                    @endphp
+                                    @isset($version['text'])
+                                        <div
+                                            class="dropdown-element position-relative d-flex align-items-center {{ $version['install'] || ( str_contains($key, "win") && sizeof($winActiveVersion) > 0 ) ? 'active' : '' }}">
+                                            <a href=""></a>
+                                            <div class="icon">
+                                                {!! $version['icon'] !!}
+                                            </div>
+                                            <div class="text">
+                                                <p class="version m-0">
+                                                    {{ $version['text'] }}
+                                                </p>
+                                                @if((sizeof($winActiveVersion) === sizeof($winVersion) && str_contains($key, "win")) || (sizeof($winActiveVersion) > 1 && str_contains($key, "win") ) || !str_contains($key, "win"))
+                                                    @isset($version['type'])
+                                                        <p class="type m-0">
+                                                            {{ $version['type'] }}
+                                                        </p>
+                                                    @endisset
+                                                @endif
+                                            </div>
+                                            <div class="tools d-flex align-center ml-auto">
+                                                @isset($version['notice_'.$lang])
+                                                    <a href="{{ getGoogleDocsURL($version['notice_'.$lang]) }}"
+                                                       class="mr-1 instruction position-relative">
+                                                        <svg id="Instruction" xmlns="http://www.w3.org/2000/svg"
+                                                             width="30" height="30" viewBox="0 0 30 30">
+                                                            <circle id="Ellipse_24" data-name="Ellipse 24" cx="15"
+                                                                    cy="15" r="15" fill="rgba(70,127,207,0.1)"/>
+                                                            <g id="Groupe_270" data-name="Groupe 270"
+                                                               transform="translate(9.5 8.5)">
+                                                                <path id="Tracé_124" data-name="Tracé 124"
+                                                                      d="M12.5,13.54H3a1.5,1.5,0,0,1,0-3h8.5a1,1,0,0,0,1-1v-8a1,1,0,0,0-1-1H3A1.5,1.5,0,0,0,1.5,2V12"
+                                                                      transform="translate(-1.5 -0.54)" fill="none"
+                                                                      stroke="#3a72c5" stroke-linecap="round"
+                                                                      stroke-linejoin="round" stroke-width="1"/>
+                                                                <line id="Ligne_20" data-name="Ligne 20" y2="3"
+                                                                      transform="translate(10 10)" fill="none"
+                                                                      stroke="#3a72c5" stroke-linecap="round"
+                                                                      stroke-linejoin="round" stroke-width="1"/>
+                                                            </g>
+                                                        </svg>
+                                                    </a>
+                                                @endisset
+                                                @if($version['install'] || (str_contains($key, "win") && sizeof($winActiveVersion) > 0))
+                                                    <a class="download-overlay" href="{{ $downloadUrl }}"></a>
+                                                    <a href="{{ $downloadUrl }}" class="download">
+                                                        <svg id="Groupe_268" data-name="Groupe 268"
+                                                             xmlns="http://www.w3.org/2000/svg" width="30" height="30"
+                                                             viewBox="0 0 30 30">
+                                                            <rect id="Rectangle_480" data-name="Rectangle 480"
+                                                                  width="30" height="30" rx="15" fill="#467fcf"/>
+                                                            <g id="Groupe_265" data-name="Groupe 265"
+                                                               transform="translate(8.5 8)">
+                                                                <path id="Tracé_122" data-name="Tracé 122"
+                                                                      d="M.5,10.5v1a2,2,0,0,0,2,2h9a2,2,0,0,0,2-2v-1"
+                                                                      transform="translate(-0.5 -0.5)" fill="none"
+                                                                      stroke="#fff" stroke-linecap="round"
+                                                                      stroke-linejoin="round" stroke-width="1"/>
+                                                                <path id="Tracé_123" data-name="Tracé 123"
+                                                                      d="M4,6,7,9.5,10,6"
+                                                                      transform="translate(-0.5 -0.5)" fill="none"
+                                                                      stroke="#fff" stroke-linecap="round"
+                                                                      stroke-linejoin="round" stroke-width="1"/>
+                                                                <line id="Ligne_19" data-name="Ligne 19" y1="9"
+                                                                      transform="translate(6.5)" fill="none"
+                                                                      stroke="#fff" stroke-linecap="round"
+                                                                      stroke-linejoin="round" stroke-width="1"/>
+                                                            </g>
+                                                        </svg>
+                                                    </a>
+                                                @else
+                                                    <svg id="Groupe_271" data-name="Groupe 271"
+                                                         xmlns="http://www.w3.org/2000/svg" width="30" height="30"
+                                                         viewBox="0 0 30 30">
+                                                        <circle id="Ellipse_24" data-name="Ellipse 24" cx="15" cy="15"
+                                                                r="15" fill="#fff"/>
+                                                        <g id="Groupe_271-2" data-name="Groupe 271"
+                                                           transform="translate(10 8.252)" opacity="0.2">
+                                                            <rect id="Rectangle_481" data-name="Rectangle 481"
+                                                                  width="10" height="8" rx="1"
+                                                                  transform="translate(0 5)" fill="none"
+                                                                  stroke="#1b2a4e" stroke-linecap="round"
+                                                                  stroke-linejoin="round" stroke-width="1"/>
+                                                            <path id="Tracé_125" data-name="Tracé 125"
+                                                                  d="M10.5,5.5V4a3.5,3.5,0,0,0-7,0V5.5"
+                                                                  transform="translate(-2 -0.5)" fill="none"
+                                                                  stroke="#1b2a4e" stroke-linecap="round"
+                                                                  stroke-linejoin="round" stroke-width="1"/>
+                                                            <circle id="Ellipse_30" data-name="Ellipse 30" cx="0.5"
+                                                                    cy="0.5" r="0.5" transform="translate(4.5 8.5)"
+                                                                    fill="none" stroke="#1b2a4e" stroke-linecap="round"
+                                                                    stroke-linejoin="round" stroke-width="1"/>
+                                                        </g>
+                                                    </svg>
+                                                @endif
+                                            </div>
+                                        </div>
+                                    @endisset
+                                @endforeach
+                                <p class="m-0">{{ __('Il vous manque une version ?') }}</p>
+                                @include('fluidbook_publication.delivery.contact_manager', ['mail' => $CDPMail, 'object' => $objectMail])
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        @endif
+    </div>
+@endsection
+
+@push('after_scripts')
+    <script>
+        (function ($) {
+            $(function () {
+                document.documentElement.style.setProperty('--dropdown-content-height', $(".delivery-dropdown").height + 'px');
+                document.documentElement.style.setProperty('--dropdown-control-height', $(".dropdown-control").innerHeight() + 2 + 'px');
+                $(document).on('click', '.dropdown-control', function () {
+                    $(".delivery-dropdown").toggleClass("active")
+                });
+            })
+        })(jQuery);
+    </script>
+@endpush
diff --git a/resources/views/fluidbook_publication/delivery/mainsettings.blade.php b/resources/views/fluidbook_publication/delivery/mainsettings.blade.php
new file mode 100644 (file)
index 0000000..e4b1e83
--- /dev/null
@@ -0,0 +1,25 @@
+@php
+    $indexLeft=ceil(count($settings)/2);
+    $sides=['left'=>array_slice($settings,0,$indexLeft),'right'=>array_slice($settings,$indexLeft)];
+
+@endphp
+
+@foreach($sides as $side=>$settingsSide)
+    <div class="col-md-6">
+        <table
+            class="bg-white table table-striped table-hover nowrap rounded shadow-xs border-xs mt-2 dataTable dtr-inline"
+            data-responsive-table="1" data-has-details-row="0" data-has-bulk-actions="1" cellspacing="0"
+            aria-describedby="crudTable_info">
+            <tbody>
+            @foreach($settingsSide as $key=>$value)
+                <tr class="odd">
+                    <td class="dtr-control d-flex justify-content-between">
+                        <p class="m-0">{{$key }}</p>
+                        <p class="m-0">{{ $value }}</p>
+                    </td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+@endforeach
diff --git a/resources/views/fluidbook_publication/delivery_params.blade.php b/resources/views/fluidbook_publication/delivery_params.blade.php
deleted file mode 100644 (file)
index ff95fc5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<table class="bg-white table table-striped table-hover nowrap rounded shadow-xs border-xs mt-2 dataTable dtr-inline" data-responsive-table="1" data-has-details-row="0" data-has-bulk-actions="1" cellspacing="0" aria-describedby="crudTable_info">
-    <tbody>
-    @foreach($settings as $value)
-        @php
-            $index = $loop->index;
-            $key = key($settings[$index]);
-            $value_ = $settings[$index][$key]
-        @endphp
-        @if($init === 0 && $loop->iteration < 6)
-            <tr class="odd">
-                <td class="dtr-control d-flex justify-content-between">
-                    <p class="m-0">{{ __($key) }}</p>
-                    <p class="m-0">{{ $value_ }}</p>
-                </td>
-            </tr>
-        @elseif($init === 5 && $loop->iteration > 5)
-            <tr class="odd">
-                <td class="dtr-control d-flex justify-content-between">
-                    <p class="m-0">{{ __($key) }}</p>
-                    <p class="m-0">{{ $value_ }}</p>
-                </td>
-            </tr>
-        @endif
-    @endforeach
-    </tbody>
-</table>
diff --git a/resources/views/fluidbook_publication/link_contact_manager.blade.php b/resources/views/fluidbook_publication/link_contact_manager.blade.php
deleted file mode 100644 (file)
index fa0e42c..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-@if($mail)
-<a href="mailto:{{$mail}}?subject={{$object}}">
-@endif
-    {{ __('Contactez votre chef de projet') }}
-@if($mail)
-</a>
-@endif