Update Laravel to 7.0

This commit is contained in:
George Frederick "Buzz" Beurling
2020-06-20 17:03:30 -04:00
parent f104c1b61b
commit 8866cafd31
57 changed files with 8739 additions and 2281 deletions

View File

@@ -10,15 +10,107 @@
<form action="/admin/config/customisation" method="POST">
@csrf
<div class="row ml-2">
<div class="col-md-6 p-2">
<div class="col-md-12 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="escadron_name_full" name="public_index_img_url" aria-describedby="emailHelp" value="{{\App\Config::getData('public_index_img_url')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_banner_cadet_desc" name="text_public_banner_cadet_desc" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_banner_cadet_desc')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_banner_apprendre_plus" name="text_public_banner_apprendre_plus" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_banner_apprendre_plus')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_intro_title" name="text_public_intro_title" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_intro_title')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_intro_desc" name="text_public_intro_desc" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_intro_desc')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_picture_title" name="text_public_picture_title" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_picture_title')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_picture_desc" name="text_public_picture_desc" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_picture_desc')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_news_title" name="text_public_news_title" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_news_title')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_news_desc" name="text_public_news_desc" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_news_desc')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_news_button" name="text_public_news_button" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_news_button')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_schedule_desc" name="text_public_schedule_desc" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_schedule_desc')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_schedule_title" name="text_public_schedule_title" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_schedule_title')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_picture_nb" name="text_public_picture_nb" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_picture_nb')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-6 p-2">
<div class="form-group">
<label for="exampleInputEmail1">Photo page publique</label>
<input type="text" class="form-control" id="text_public_cta" name="text_public_cta" aria-describedby="emailHelp" value="{{\App\Config::getData('text_public_cta')}}">
<small id="emailHelp" class="form-text text-muted">URL vers la photo a afficher dans l'en tête de la page publique.</small>
</div>
</div>
<div class="col-md-12 p-2">
<button type="submit" class="btn btn-primary">Sauvegarder</button>
<a href="/?editMode" target="_blank" class="btn btn-outline-secondary">Activer le mode édition</a>
</div>
</div>
</form>

View File

@@ -82,7 +82,7 @@
<p class="my-auto ml-3">N'utilise pas un horaire</p>
@endif
</div>
<div>
<div style="height: 2.7rem;overflow: hidden">
{!! $event_type->admin_desc !!}
</div>
<div class="row">
@@ -93,7 +93,7 @@
</div>
<div class="col-md-4 text-right">
@if($event_type->id != 1)
<button class="btn btn-danger btn-just-icon">
<button class="btn btn-danger btn-just-icon" onclick="deleteEventType({{$event_type->id}})">
<i class="fas fa-trash-alt"></i>
</button>
@else
@@ -107,6 +107,9 @@
</div>
</div>
@endforeach
<div class="col-12 text-right">
<a class="btn btn-primary" href="/admin/config/instruction/event_type/create">Ajouter un type d'évenement</a>
</div>
</div>
</div>
</div>
@@ -146,5 +149,45 @@
},
date: new Date(end)
});
function deleteEventType(id)
{
Swal.fire({
title: 'Êtes vous certain ?',
text: "Vous ne pourrez annuler cette action",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Oui',
cancelButtonText: 'Non'
}).then((result) => {
if (result.value) {
let request = $.ajax({
url: "/api/eventType/"+id,
method: "DELETE",
data: { api_token : api_token },
dataType: "html"
});
request.done(function (msg) {
Swal.fire(
'Supprimé!',
'Le type d\'évenement a été supprimé',
'success'
).then(() => {
window.location.href = '/admin/config/instruction';
});
});
request.fail(function (jqXHR, textStatus) {
Swal.fire({
type: 'error',
title: 'Oops...',
text: 'Le type d\'évenement n\'a pas pus être supprimé',
footer: '<small>'+textStatus+'</small>'
})
})
}
});
}
</script>
@endsection

View File

@@ -0,0 +1,207 @@
@extends('layouts.admin.main')
@section('content')
<div class="col-12">
<div class="card">
<div class="card-header card-header-primary">
<h4 class="card-title">Ajouter un type d'évenement</h4>
</div>
<div class="card-body">
<div class="content">
<form method="post">
@csrf
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label class="label-control">Nom</label>
<input type="text" class="form-control" name="name" />
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label class="label-control">Emplacement</label>
<input type="text" class="form-control" name="location" />
</div>
</div>
<div class="col-md-2">
<div class="togglebutton">
<label>
<input type="checkbox" checked="" name="is_mandatory">
<span class="toggle"></span>
Obligatoire
</label>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="label-control">Heure de début</label>
<input name="begin_time" type="time" class="form-control"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="label-control">Heure de fin</label>
<input name="end_time" type="time" class="form-control"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group iconpicker-container">
<label for="type">Icone</label>
<div class="input-group iconpicker-container">
<input id="calendar_icon" name="calendar_icon" data-placement="bottomRight" class="form-control icp icp-auto iconpicker-element iconpicker-input" type="text">
<span class="input-group-addon"><i id="calendar_icon_display" class="fas fa-assistive-listening-systems"></i></span>
</div>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="type">Couleur</label>
<div class="input-group iconpicker-container">
<input class="form-control" type="text" name="calendar_color" id="calendar_color" onclick="pickr.show()">
<span class="color-picker"></span>
</div>
</div>
</div>
<div class="col-md-12">
<label class="mb-0">Description</label>
<div class="form-group">
<textarea name="admin_desc" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
</textarea>
</div>
<hr>
</div>
<div class="col-md-12">
<label class="mb-0">Message de la semaine</label>
<div class="togglebutton float-right">
<label>
<input type="checkbox" name="use_weekly_msg" type="button" data-toggle="collapse" data-target="#collapseMSG" aria-expanded="false" aria-controls="collapseMSG">
<span class="toggle"></span>
</label>
</div>
</div>
<div class="collapse w-100" id="collapseMSG">
<div class="col-md-12">
<div class="form-group">
<label>Heure publication des messages de la semaine</label>
<select class="form-control mt-3" name="weekly_msg_publication_time">
<option value="-1days">-1 Jour</option>
<option value="-2days">-2 Jours</option>
<option value="-3days">-3 Jours</option>
<option value="-4days">-4 Jours</option>
<option value="-5days">-5 Jours</option>
<option value="-6days">-6 Jours</option>
<option value="-7days">-7 Jours</option>
<option value="-2weeks">-2 Semaines</option>
</select>
</div>
<label class="mb-0 mt-4">Message par défaut</label>
<div class="form-group mt-0">
<textarea name="weekly_msg" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6">
</textarea>
</div>
</div>
</div>
<div class="col-md-12">
<hr>
<label class="mb-0">Horaire</label>
<div class="togglebutton float-right">
<label>
<input type="checkbox" name="use_schedule" type="button" data-toggle="collapse" data-target="#collapseSchedule" aria-expanded="false" aria-controls="collapseSchedule">
<span class="toggle"></span>
</label>
</div>
</div>
<div class="col-md-12">
<div class="collapse" id="collapseSchedule">
<div class="card-body" style="overflow: scroll">
<div id="editor" class="m-3" style="width: 110vw">
@loaderDot
</div>
</div>
</div>
</div>
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary">Sauvegarder</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@section('custom_scripts')
<script src="https://cdn.jsdelivr.net/npm/@simonwep/pickr/dist/pickr.min.js"></script>
<script src="/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.js"></script>
<script src="/js/plugins/schedule/editorv2.js"></script>
<script src="/js/plugins/autocomplete.js"></script>
<script>
$('.richeditor').trumbowyg({
lang: 'fr',
btns: [
['viewHTML'],
['emoji'],
['undo', 'redo'], // Only supported in Blink browsers
['strong', 'em', 'del'],
['superscript', 'subscript'],
['fontfamily'],
['fontsize'],
['foreColor', 'backColor'],
['link'],
['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
['unorderedList', 'orderedList'],
['horizontalRule'],
['removeformat'],
['fullscreen']
]
});
$('.icp-auto').iconpicker({ placement: 'right',animation: 'false'});
const pickr = Pickr.create({
el: '.color-picker',
theme: 'monolith', // or 'monolith', or 'nano'
swatches: [
'rgba(244, 67, 54, 1)',
'rgba(233, 30, 99, 1)',
'rgba(156, 39, 176, 1)',
'rgba(103, 58, 183, 1)',
'rgba(63, 81, 181, 1)',
'rgba(33, 150, 243, 1)',
'rgba(3, 169, 244, 1)',
'rgba(0, 188, 212, 1)',
'rgba(0, 150, 136, 1)',
'rgba(76, 175, 80, 1)',
'rgba(139, 195, 74, 1)',
'rgba(205, 220, 57, 1)',
'rgba(255, 235, 59, 1)',
'rgba(255, 193, 7, 1)'
],
comparison: false,
components: {
// Main components
preview: true,
opacity: false,
hue: true,
// Input / output Options
interaction: {
hex: true,
rgba: false,
hsla: false,
hsva: false,
cmyk: false,
input: true,
clear: false,
save: false
}
}
});
pickr.on('change', (color,instance) => {
$('#calendar_color').val(color.toHEXA().toString());
});
initEditor(1,'eventType');
</script>
@endsection

View File

@@ -27,7 +27,7 @@
<div class="col-md-2">
<div class="togglebutton">
<label>
<input type="checkbox" checked="" name="is_mandatory">
<input type="checkbox" name="is_mandatory" @if($event_type->is_mandatory == 1) checked @endif>
<span class="toggle"></span>
Obligatoire
</label>
@@ -96,12 +96,6 @@
<option value="-2weeks" @if($event_type->weekly_msg_publication_time == '-2weeks') selected @endif>-2 Semaines</option>
</select>
</div>
<label class="mb-0 mt-4">Message par défaut</label>
<div class="form-group mt-0">
<textarea name="weekly_msg" class="form-control richeditor" name="admin_desc" id="admin_desc" rows="6" required>
{!! $event_type->weekly_msg!!}
</textarea>
</div>
</div>
</div>
<div class="col-md-12">

View File

@@ -20,7 +20,7 @@
<div class="col-12 d-none" id="descContainer{{$niveau}}-{{$periode}}">
<div class="form-group">
<label for="exampleFormControlTextarea1">Description de la période</label>
<textarea class="form-control" name="desc_n{{$niveau}}_p{{$periode}} no-mandatory" id="exampleFormControlTextarea1" rows="2">{{$desc}}</textarea>
<textarea class="form-control" name="desc_n{{$niveau}}_p{{$periode}} no-mandatory" id="exampleFormControlTextarea1" rows="2" placeholder="Description de la période">{{$desc}}</textarea>
</div>
</div>
<div class="col-6 mb-1" id="OCOMContainer{{$niveau}}-{{$periode}}">

View File

@@ -1,7 +1,7 @@
@extends('layouts.admin.main')
@section('content')
<form action="/admin/schedule/event/add" method="POST">
<form action="/admin/schedule/event/add" method="POST" enctype="multipart/form-data">
<div class="row">
@csrf
<div class="col-9">
@@ -69,7 +69,7 @@
<span class="input-group-text btn-file">
<span class="fileinput-new cursor">Select file</span>
<span class="fileinput-exists cursor">Change</span>
<input type="file" name="file_msg" multiple>
<input type="file" name="files[]" multiple>
</span>
</span>
</div>
@@ -97,7 +97,7 @@
</div>
<div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion">
<div class="card-body" style="overflow: scroll">
<div id="scheduleEditor" class="m-3" style="width: 110vw">
<div id="editor" class="m-3" style="width: 110vw">
@loaderDot
</div>
</div>
@@ -250,13 +250,12 @@
});
</script>
<script src="/js/calendar.js"></script>
<script src="/js/plugins/schedule/editor.js"></script>
<script src="/js/plugins/schedule/editorv2.js"></script>
<script src="/js/plugins/autocomplete.js"></script>
<script>
$(function () {
console.log('Document READY loading schedule editor');
loadEventType('{{$date}}');
loadEventType('{{$date}}',2);
})
</script>
@endsection

View File

@@ -151,6 +151,26 @@
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour du calendrier
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">
<i class="fas fa-coffee"></i>
</div>
<div class="col m-auto text-left">
Mise à jour de la section nouvelle
</div>
</div>
</li>
<li class="list-group-item">
<div class="row">
<div class="text-success" style="font-size: 1.3rem;width: 1.5rem">

View File

@@ -15,4 +15,5 @@
<!-- Plugin CSS -->
<link href='/assets/fullcalendar/core/main.css' rel='stylesheet' />
<link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' />
<link href='/assets/fullcalendar/daygrid/main.css' rel='stylesheet' />
<link href='/assets/fullcalendar/list/main.css' rel='stylesheet' />

View File

@@ -41,7 +41,10 @@
<script src="/js/material-dashboard.js"></script>
<script src="/js/material-kit.min.js"></script>
<script src='/assets/fullcalendar/core/main.js'></script>
<script src='/assets/fullcalendar/core/locales/fr-ca.js'></script>
<script src='/assets/fullcalendar/daygrid/main.js'></script>
<script src='/assets/fullcalendar/interaction/main.js'></script>
<script src='/assets/fullcalendar/list/main.js'></script>
<script>
function toggleEdit() {
if ($('#edit-switch').prop("checked")) {
@@ -56,14 +59,28 @@
var calendarEl = document.getElementById('public_calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['dayGrid'],
plugins: ['dayGrid','interaction','list'],
locale: 'fr',
header: {
left: 'title',
center: '',
center: 'dayGridMonth,listWeek',
right: 'prev,next'
},
events: '/api/schedule/events',
eventRender: function(event, element) {
if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth')
{
let i = document.createElement('i');
i.className = event.event.extendedProps.icon+' mx-1';
event.el.querySelector('.fc-content').prepend(i);
}
else if(event.event.extendedProps.icon && event.view.type == 'listWeek')
{
let i = document.createElement('i');
i.className = event.event.extendedProps.icon+' mr-1';
event.el.querySelector('.fc-list-item-title').prepend(i);
}
},
eventClick: function (info) {
console.log(info.event.id)
$.get("/api/schedule/events/modal/" + info.event.id + "/" + info.event.extendedProps.extraParams.db_type, function (data) {

View File

@@ -5,7 +5,7 @@
<hr>
@if ($pictures->isEmpty())
<h4 class="text-center mt-5 mb-5">Aucune Photo</h4>
@endif
@else
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
@@ -30,4 +30,5 @@
</div>
<div class="m-5">
<a href="/pictures" class="btn btn-primary btn-block p-2">Voir toutes les photos</a>
</div>
</div>
@endif

View File

@@ -16,11 +16,6 @@
@else
<span class="badge badge-pill badge-info">Optionnel</span>
@endif
@if (is_int($event->type))
<span class="badge badge-pill badge-default">{{$event->type}}</span>
@else
<span class="badge badge-pill" style="background-color: {{\App\ComplementaryActivity::find($event->type)->calendar_color}}">{{\App\ComplementaryActivity::find($event->type)->name}}</span>
@endif
</div>
</div>
<div class="row mt-4">

View File

@@ -1,15 +1,9 @@
@extends('layouts.public.main')
@section('content')
<div class="page-header header-filter clear-filter" data-parallax="true" style="background-image: url({{'"'.\App\Config::getData('public_index_img_url').'"'}});">
<div class="container">
<div class="row">
<div class="col-md-8 ml-auto mr-auto">
<div class="brand">
<h2 class="news-title">{{ $new->title }}</h2>
</div>
</div>
</div>
<div class="row" style="height: 45vh; width: 100vw">
<div class="col-12 text-center m-auto">
<h2 class="news-title text-white">{{ $new->title }}</h2>
</div>
</div>
<div class="main main-raised">
@@ -23,7 +17,9 @@
class="col-12"
@else
class="col-4"
@endif><span class="image fit"><a href="/picture/{{$picture->id}}"><img src="{{ $picture->url }}" alt="{{ $picture->title }}"></a></span></div>
@endif>
<span class="image fit"><a href="/picture/{{$picture->id}}"><img src="{{ $picture->url }}" alt="{{ $picture->title }}"></a></span>
</div>
@endforeach
</div>
<p>
@@ -41,9 +37,14 @@
@endforeach
@endif
</div>
<div class="col-12 mt-3">
@foreach($new->files as $file)
<a href="{{\App\GoogleDriveFile::getDownloadURL('.Systeme/.Fichier/.MessageDeLaSemaine',$file)}}" class="btn btn-outline-primary btn-round"><div class="d-inline-flex" style="max-width: 10rem;overflow: hidden">{{$file}}</div><i class="fas fa-cloud-download-alt ml-2"></i></a>
@endforeach
</div>
</div>
</div>
<a href="{{ url()->previous() }}" class="btn button primary">Retour</a>
<a href="/" class="btn button primary">Retour</a>
</div>
</div>
@endsection