yavsc/src/Yavsc.Org/Views/Home/Index.cshtml
Paul Schneider 952d263b9f refac: separate front assets into esbuild bundles
Sort ~50 Mo de libs tierces hors du repo et regroupe le code
front en 6 bundles thématiques + 2 assets statiques.

Bundles produits par esbuild :
- core.bundle.min.js   : jQuery + jQuery UI + Bootstrap 4 + validation
                          + tout le code applicatif 'core'
                          (site, signout, signin, input-lib, md-helpers,
                          audiovideoinput, parallax, google.geocode,
                          google-geoloc). Chargé par _Layout.cshtml.
- chat.bundle.min.js   : core subset (sans Bootstrap) + chat.js + comment.js
                          (SignalR client chargé séparément, voir plus bas)
- dropzone.bundle.min.js : jQuery + dropzone + yavsc-remote-fs
- datetime.bundle.min.js : jQuery + jQuery UI + eonasdan datetimepicker
                          + jquery-timepicker
- timepicker.bundle.min.js : jQuery + jQuery UI + jquery-timepicker
- quill.bundle.min.js  : Quill rich text editor

Assets statiques (non bundlés, copiés depuis node_modules) :
- signalr.min.js       : client SignalR 2.x (legacy server)
- moment-with-locales.min.js : moment + 137 locales (require dynamique
                               non résolvable statiquement par esbuild)

CSS vendor copiées comme assets statiques vers wwwroot/css/ :
bootstrap.min.css, jquery-ui.min.css, dropzone.min.css,
dropzone-basic.min.css, bootstrap-datetimepicker.min.css,
jquery.timepicker.css

Exception gitignore : jonthornton-Datepair/jquery.datepair.min.js
n'est pas sur npm, conservé comme asset statique sous
wwwroot/lib/jonthornton-Datepair/ (téléchargé depuis upstream).

Vues Razor mises à jour (15 fichiers) pour pointer vers les bundles
et les CSS vendor. Suppression de la majorité de wwwroot/lib/ (1300+
fichiers). Suppression des jquery*.js, quill.js, showdown.js,
to-markdown.js, jquery.signalR-2.2.1.js, dropzone.js et de leurs
.min.js associés.

'jquery-datepair' et 'jquery-ui-map' non publiés sur npm :
- jquery-ui-map n'est utilisé nulle part dans le repo (vérifié),
  la dépendance est purement historique.
- datepair reste en static sous wwwroot/lib/jonthornton-Datepair/.
2026-06-14 14:11:33 +01:00

90 lines
2.5 KiB
Text
Executable file

@model IEnumerable<Activity>
@{
ViewBag.Title = @Localizer["Page d'accueil"];
int i=0;
bool multipleact = Model.Count()>1;
}
@section scripts {
<script>
$(document).ready(function(){
var car = $('.carousel').first();
var fi = car.children('.carousel-inner').first()
.children('.item').first();
var capt = fi.children('.carousel-caption-s');
fi.addClass('active');
car.animate({'background-color':'rgba(0, 0, 0, .5)'},500,function() {
car.animate({'background-color':'rgba(0, 0, 0, 0)'},500)
})
})
</script>
}
@section subbanner {
<div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="6000">
@if (multipleact) {
<ol class="carousel-indicators">
@{
foreach (var act in Model) {
if (i==0) {
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
} else {
<li data-target="#myCarousel" data-slide-to="@i"></li>
}
i++;
}
}
</ol> }
<div class="carousel-inner" role="listbox">
@{
string cls = "item";
i=0;
foreach (var act in Model) {
<div class="@cls" style="background-image: url('@act.Photo'); background-repeat: no-repeat; ">
<div class="carousel-caption-s" >
<p><em>@act.Name</em><br/>
@act.Description </p>
@if (act.Children.Count>0) {
<a asp-route-id="@act.Code" class="btn btn-light">
@foreach (Activity c in act.Children) {
@Html.DisplayFor(subact=>c)
}
</a>
}
@foreach (var frm in act.Forms) {
<a class="btn btn-primary" asp-controller="FrontOffice" asp-action="@frm.ActionName" asp-route-id="@act.Code">
@frm.Title
</a>
}
</div>
</div>
i++;
cls = "item";
}
}
</div>
</div>
}
@section ctxmenu {
@if (ViewBag.Announces!=null) {
<li><a asp-controller="Announces" class="badge" >
<img src="@SiteSettings.Value.Logo" alt="announces" title="Annonces @SiteSettings.Value.Title" /></a></li>
}
}
@section header {
<style>
.navbar {
margin-bottom: 0;
}
</style>
}