yavsc/src/Yavsc.Org/Views/Command/Create.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

114 lines
4.4 KiB
Text

@model RdvQuery
@section header {
<style>
#map {
width: 100%;
height: 250px;
}
</style>
<script type="text/javascript" src="~/js/moment-with-locales.min.js"></script>
<script src="~/js/datetime.bundle.min.js" asp-append-version="true"></script>
<link rel="stylesheet" href="~/css/bootstrap-datetimepicker.min.css" asp-append-version="true"/>
}
@{ ViewBag.Title = $"Proposition de rendez-vous à {Model.PerformerProfile.Performer.UserName} [{ViewBag.Activity.Name}]"; }
<h2>@ViewBag.Title</h2>
<form asp-action="Create" method="post">
<div class="form-horizontal">
<h4>Saisissez votre demande de rendez-vous</h4>
<hr />
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group" has-feedback>
<fieldset>
<legend>La date de votre évennement</legend>
<label for="EventDate" class="col-md-2 control-label">
Date de l'évennement
</label>
<div class="col-md-10">
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class='input-group date' id='datetimepicker2'>
<input class="form-control" name="EventDate" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<span asp-validation-for="EventDate" class="text-danger">
</span>
</div>
</div>
</div>
</fieldset>
</div>
<div class="form-group">
<fieldset>
<label asp-for="Location.Address" class="col-md-2 control-label">Address</label>
<div class="col-md-10">
<input asp-for="Location.Address" class="form-control" type="text" data-val-required="Spécifier un lieu" />
<span id="AddressError" asp-validation-for="Location.Address" class="text-danger"></span>
<ul id="LocationCombo" >
</ul>
<div id="map"></div>
</div>
</fieldset>
</div>
<div class="form-group">
<fieldset>
<label asp-for="Reason" class="col-md-2 control-label">
Donnez ici une raison à cette demande
</label>
<div class="col-md-10">
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div id='reason1'>
<textarea rows="15" asp-for="Reason" type="text" name="Reason" id="Reason" maxlength="4096" class="form-control"></textarea>
<span asp-validation-for="Reason" class="text-danger"></span>
</div>
</div>
</div>
</div>
</div>
</fieldset>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-primary" value="Créer" />
</div>
</div>
</div>
@Html.HiddenFor(model=>model.ClientId)
@Html.HiddenFor(model=>model.PerformerId)
@Html.HiddenFor(model=>model.ActivityCode)
@Html.HiddenFor(model=>model.Location.Latitude)
@Html.Hidden("Location.Longitude")
</form>
@section scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
@{ await Html.RenderPartialAsync("_MapScriptsPartial"); }
<script>
$(document).ready(function(){
$("#Location_Address").googlegeocode({
culture: '@System.Globalization.CultureInfo.CurrentCulture.Name',
mapsApiKey: '@Config.GoogleSettings.BrowserApiKey',
mapId: 'map',
longId: 'Location_Longitude',
latId: 'Location_Latitude',
addrValidationId: 'AddressError',
formValidId: 'ValidationSummary',
locComboId: 'LocationCombo'});
$('#datetimepicker2').datetimepicker({
locale: 'fr',
format: "YYYY/MM/DD HH:mm"
});
})
</script>
}