137 lines
5.3 KiB
Plaintext
137 lines
5.3 KiB
Plaintext
@model VirtualTask.Models.DatiAzienda
|
|
|
|
@{
|
|
ViewData["Title"] = "Nuova Intestazione Buoni Intervento";
|
|
Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml";
|
|
}
|
|
|
|
<div class="agy-project-wrapper agy-project-page-wrapper">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<form id="createForm" asp-action="Create" enctype="multipart/form-data">
|
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
|
|
|
@Html.HiddenFor(x => x.azienda)
|
|
@Html.HiddenFor(x => x.url_logo)
|
|
|
|
<div class="form-group">
|
|
<h5><label asp-for="tecnico" class="control-label"></label></h5>
|
|
@Html.DropDownListFor(x => x.tecnico, (IEnumerable<SelectListItem>)ViewBag.AllTecnici, new { @class = "form-control" })
|
|
<span asp-validation-for="tecnico" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
|
|
|
<div class="form-group">
|
|
<h5><label asp-for="ragsoc" class="control-label"></label></h5>
|
|
<input asp-for="ragsoc" class="form-control" />
|
|
<span asp-validation-for="ragsoc" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
|
|
|
<div class="form-group">
|
|
<h5><label asp-for="logo" class="control-label"></label></h5>
|
|
<input type="file" asp-for="logo" />
|
|
<span asp-validation-for="logo" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
|
|
|
<div class="form-group">
|
|
<h5><label asp-for="testo_buono" class="control-label"></label></h5>
|
|
<textarea asp-for="testo_buono" class="form-control"></textarea>
|
|
<span asp-validation-for="testo_buono" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
|
|
|
<div class="form-group">
|
|
<input type="submit" value="Salva" class="agy-btn submitForm" />
|
|
<a asp-action="Index" class="agy-btn submitForm">Torna alla lista</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ✅ Modale di conferma identica a quella della Edit -->
|
|
<div class="modal fade" id="saveModal" tabindex="-1" role="dialog" aria-labelledby="saveModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="saveModalLabel">Dati salvati</h5>
|
|
</div>
|
|
<div class="modal-body">
|
|
I dati salvati non saranno visibili nell'app finché non effettuerai il logout.
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-primary" id="modalOkBtn">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="~/js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
|
|
|
@section Scripts {
|
|
@{
|
|
await Html.RenderPartialAsync("_ValidationScriptsPartial");
|
|
}
|
|
|
|
<script>
|
|
// inizializza TinyMCE
|
|
tinymce.init({
|
|
selector: 'textarea#testo_buono',
|
|
height: 300,
|
|
menubar: false,
|
|
plugins: 'lists link table code',
|
|
toolbar: 'undo redo | bold italic | bullist numlist | link table | code'
|
|
});
|
|
|
|
// intercetta il submit per gestire la chiamata AJAX + popup
|
|
document.getElementById('createForm').addEventListener('submit', function (e) {
|
|
e.preventDefault();
|
|
|
|
tinymce.triggerSave();
|
|
|
|
const form = e.target;
|
|
const formData = new FormData(form);
|
|
|
|
fetch(form.action, {
|
|
method: 'POST',
|
|
body: formData
|
|
})
|
|
.then(response => {
|
|
if (response.ok) {
|
|
// ✅ Mostra la modale di conferma
|
|
$('#saveModal').modal('show');
|
|
|
|
// reset del form
|
|
form.reset();
|
|
if (tinymce.get('testo_buono')) {
|
|
tinymce.get('testo_buono').setContent('');
|
|
}
|
|
} else {
|
|
response.text().then(text => {
|
|
alert("Errore nel salvataggio: " + text);
|
|
});
|
|
}
|
|
})
|
|
.catch(err => {
|
|
alert("Errore di rete: " + err);
|
|
});
|
|
});
|
|
|
|
// quando l'utente clicca OK sulla modale, vai alla Index
|
|
document.getElementById('modalOkBtn').addEventListener('click', function () {
|
|
window.location.href = '@Url.Action("Index")';
|
|
});
|
|
</script>
|
|
|
|
}
|