Ristrutturazione pagina. Sistemazione filtri e paginazione

This commit is contained in:
Marco Audiffredi 2024-09-27 10:08:27 +02:00
parent 1eaab73937
commit 7881535aba
2 changed files with 148 additions and 90 deletions

View File

@ -63,22 +63,10 @@ namespace VirtualTask.Controllers
string data = response.Content.ReadAsStringAsync().Result;
modelList = JsonConvert.DeserializeObject<List<Chiamate>>(data);
ViewBag.Impianti = getImpianti();
ViewBag.Tecnici = getTecnici();
ViewBag.StatiChiamata = getStatiChiamata();
//if (!string.IsNullOrEmpty(searchString))
//{
// modelList = modelList.Where(s => s.chcodimp.ToUpper().Contains(searchString.ToUpper())).ToList();
// ViewData["CurrentFilter"] = searchString;
//}
//else
// ViewData["CurrentFilter"] = null;
if (!string.IsNullOrEmpty(impianto))
{
modelList = modelList.Where(s => s.chcodimp.Contains(impianto)).ToList();
modelList = modelList.Where(s => s.chcodimp!=null && s.chcodimp.Contains(impianto)).ToList();
ViewData["CurrentFilter"] = impianto;
@ -87,45 +75,62 @@ namespace VirtualTask.Controllers
else
ViewData["CurrentFilter"] = null;
if (!string.IsNullOrEmpty(tecnico))
{
modelList = modelList.Where(s => s.chtchiam !=null && s.chtchiam.Contains(tecnico)).ToList();
modelList = modelList.Where(s => s.chtchiam != null && s.chtchiam.Contains(tecnico)).ToList();
ViewData["CurrentFilter"] = tecnico;
ViewData["CurrentFilterTec"] = tecnico;
ViewBag.Impianto = tecnico;
}
else
ViewData["CurrentFilter"] = null;
ViewData["CurrentFilterTec"] = null;
if (dataIni.Date != DateTime.MinValue)
{
modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date >= dataIni.Date).ToList();
}
if (dataFin.Date != DateTime.MinValue)
{
modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date <= dataFin.Date).ToList();
}
if (!string.IsNullOrEmpty(stato))
{
modelList = modelList.Where(x => x.chstato.Contains(stato)).ToList();
ViewData["CurrentFilter"] = stato;
ViewBag.Impianto = stato;
}
else
ViewData["CurrentFilter"] = null;
if (!string.IsNullOrEmpty(indirizzo))
{
modelList = modelList.Where(s => s.indirizzoBreve.ToUpper().Contains(indirizzo.ToUpper())).ToList();
ViewData["CurrentFilter"] = indirizzo;
ViewData["CurrentFilterIndiri"] = indirizzo;
}
else
ViewData["CurrentFilter"] = null;
ViewData["CurrentFilterIndiri"] = null;
if (dataIni.Date != DateTime.MinValue)
{
modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date >= dataIni.Date).ToList();
ViewData["CurrentFilterDataDa"] = dataIni.Date;
ViewBag.Da = dataIni.Date.ToString("yyyy-MM-dd");
}
else
ViewData["CurrentFilterDataDa"] = DateTime.MinValue;
if (dataFin.Date != DateTime.MinValue)
{
modelList = modelList.Where(x => x.chdata.GetValueOrDefault().Date <= dataFin.Date).ToList();
ViewData["CurrentFilterDataA"] = dataFin.Date;
ViewBag.A = dataFin.Date.ToString("yyyy-MM-dd");
}
else
ViewData["CurrentFilterDataA"] = DateTime.MinValue;
if (!string.IsNullOrEmpty(stato))
{
modelList = modelList.Where(x => x.chstato.Contains(stato)).ToList();
ViewData["CurrentFilterStato"] = stato;
}
else
ViewData["CurrentFilterStato"] = null;
if (page != null && page < 1)
{
@ -137,6 +142,11 @@ namespace VirtualTask.Controllers
.OrderByDescending(s => s.chnumero)
.ToPagedList(page ?? 1, pageSize);
ViewBag.Impianti = getImpianti(impianto);
ViewBag.Tecnici = getTecnici(tecnico);
ViewBag.StatiChiamata = getStatiChiamata(stato);
return View(shortLinks);
}
else
@ -157,11 +167,11 @@ namespace VirtualTask.Controllers
admin = helper.GetStringValue("admin");
ViewBag.Admin = admin;
ViewBag.Impianti = getImpianti();
ViewBag.StatiChiamata = getStatiChiamata();
ViewBag.Impianti = getImpianti(null);
ViewBag.StatiChiamata = getStatiChiamata(null);
//ViewBag.TipiChiamata = getTipiChiamata();
ViewBag.CodiciSegnalazione = getCodiciSegnalazione();
ViewBag.Tecnici = getTecnici();
ViewBag.Tecnici = getTecnici(null);
return View();
}
@ -325,11 +335,10 @@ namespace VirtualTask.Controllers
}
ViewBag.Impianti = getImpianti();
ViewBag.StatiChiamata = getStatiChiamata();
//ViewBag.TipiChiamata = getTipiChiamata();
ViewBag.Impianti = getImpianti(null);
ViewBag.StatiChiamata = getStatiChiamata(null);
ViewBag.CodiciSegnalazione = getCodiciSegnalazione();
ViewBag.Tecnici = getTecnici();
ViewBag.Tecnici = getTecnici(null);
return View(chiamata);
}
@ -456,9 +465,19 @@ namespace VirtualTask.Controllers
#region metodi interni
private List<SelectListItem> getImpianti()
private List<SelectListItem> getImpianti(string impianto)
{
SessionHelper helper = new SessionHelper(this);
//if (!string.IsNullOrEmpty(impianto))
//{
// helper.SetStringValue("imp", impianto);
//}
//else
//{
// helper.SetStringValue("imp", "");
//}
token = helper.GetStringValue("tok");
apiUrl = helper.GetStringValue("apiUrl");
urlBase = apiUrl + "impiantiListMngr";
@ -487,33 +506,50 @@ namespace VirtualTask.Controllers
string s = role.imcodimp + " - " + role.imdescri;
listItem.Value = role.imcodimp;
listItem.Text = s;
if(role.imcodimp!=null && role.imcodimp.Equals(impianto))
{
listItem.Selected = true;
}
selectItems.Add(listItem);
}
}
return selectItems;
}
private List<SelectListItem> getStatiChiamata()
private List<SelectListItem> getStatiChiamata(string stato)
{
List<SelectListItem> selectItems = new List<SelectListItem>();
SelectListItem listItemFirt = new SelectListItem();
listItemFirt.Value = string.Empty;
listItemFirt.Text = " - Stato";
selectItems.Add(listItemFirt);
SelectListItem listItem = new SelectListItem();
listItem.Value = "C";
listItem.Text = "Assegnata";
if(!string.IsNullOrEmpty(stato) &&stato.Equals("C"))
listItem.Selected = true;
selectItems.Add(listItem);
listItem = new SelectListItem();
listItem.Value = "B";
listItem.Text = "Da Assegnare";
if (!string.IsNullOrEmpty(stato) && stato.Equals("B"))
listItem.Selected = true;
selectItems.Add(listItem);
listItem = new SelectListItem();
listItem.Value = "Z";
listItem.Text = "Chiusa";
if (!string.IsNullOrEmpty(stato) && stato.Equals("Z"))
listItem.Selected = true;
selectItems.Add(listItem);
listItem = new SelectListItem();
listItem.Value = "S";
listItem.Text = "Sospesa";
if (!string.IsNullOrEmpty(stato) && stato.Equals("S"))
listItem.Selected = true;
selectItems.Add(listItem);
return selectItems;
@ -565,7 +601,7 @@ namespace VirtualTask.Controllers
return selectItems;
}
private List<SelectListItem> getTecnici()
private List<SelectListItem> getTecnici(string tecnico)
{
SessionHelper helper = new SessionHelper(this);
token = helper.GetStringValue("tok");
@ -597,6 +633,10 @@ namespace VirtualTask.Controllers
string s = role.tccodice + " - " + role.tcdescri;
listItem.Value = role.tccodice;
listItem.Text = s;
if (role.tccodice != null && role.tccodice.Equals(tecnico))
{
listItem.Selected = true;
}
selectItems.Add(listItem);
}
}

View File

@ -6,6 +6,11 @@
@{
ViewData["Title"] = "Chiamate";
Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml";
string da = string.Empty;
if (!string.IsNullOrEmpty( (string)ViewBag.Da))
{
da = ViewBag.Da;
}
}
@ -18,45 +23,65 @@
@using (Html.BeginForm("Index","Chiamate"))
{
<div style="width:100%">
<div style="float:left;width:33%;padding:0 20px;">
<b>Tecnico:</b>
@Html.DropDownList("tecnico", ViewBag.Tecnici, null, new { @class = "agy-form-field require" })
</div>
<div style="float:left;width:33%;padding:0 20px;">
<b>Impianto:</b>
@Html.DropDownList("impianto", ViewBag.Impianti, null, new { @class = "agy-form-field require" })
</div>
<div style="float:left;width:33%;padding:0 20px;">
<b>Indirizzo:</b>
<div>
@Html.TextBox("indirizzo", null, new { placeholder = "Cerca per indirizzo impianto", @class = "agy-form-field require" })
</div>
</div>
<div style="float:left;width:25%;padding:0 20px;">
<b>Data da:</b>
@Html.TextBox("dataIni", null, new { type = "date", @class = "agy-form-field require" })
</div>
<div style="float:left;width:25%;padding:0 20px;">
<b>Data a:</b>
@Html.TextBox("dataFin", null, new { type = "date", @class = "agy-form-field require" })
</div>
<div style="float:left;width:25%;padding:0 20px;">
<b>Stato chiamata:</b>
@Html.DropDownList("stato", ViewBag.StatiChiamata, null, new { @class = "agy-form-field require" })
</div>
<div class="card">
<h5 class="card-header">Ricerca</h5>
<div class="table-responsive text-nowrap">
<table class="table">
<div style="float:left;width:24%;padding:18px 0px;">
<div style="float:left;width:57%;"><input type="submit" value="Cerca" class="agy-btn submitForm" /></div>
<tbody class="table-border-bottom-0">
<tr>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Data giro</i>
<span class="fw-medium">@Html.DropDownList("tecnico", ViewBag.Tecnici, null, new { @class = "agy-form-field require" })</span>
</td>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Impianto:</i>
<span class="fw-medium">@Html.DropDownList("impianto", ViewBag.Impianti, null, new { @class = "agy-form-field require" })</span>
</td>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Indirizzo:</i>
<span class="fw-medium">@Html.TextBox("indirizzo", null, new { placeholder = "Cerca per indirizzo impianto", @class = "agy-form-field require" })</span>
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Data da:</i>
@* <span class="fw-medium">@Html.TextBox("dataIni", @da, new { type = "date", @class = "agy-form-field require" })</span>*@
<span class="fw-medium"><input type="date" id="dataIni" name="dataIni" value="@da" class="agy-form-field" /></span>
</td>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Data a:</i>
@* <span class="fw-medium"> @Html.TextBox("dataFin", null, new { type = "date", @class = "agy-form-field require" })</span>*@
<span class="fw-medium"><input type="date" id="dataFin" name="dataFin" value="@da" class="agy-form-field" /></span>
</td>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">Stato:</i>
<span class="fw-medium">@Html.DropDownList("stato", ViewBag.StatiChiamata, null, new { @class = "agy-form-field require" }) </span>
</td>
<td>
<i class="bx bxl-angular bx-sm text-black me-3">&nbsp;</i>
<span class="fw-medium"><input type="submit" value="Cerca" class="agy-btn submitForm" /></span>
</td>
</tr>
</tbody>
</table>
</div>
<div style="float:left;width:2%;">&nbsp;</div>
<div style="float:left;width:2%;">&nbsp;</div>
<div style="float:left;width:2%;">&nbsp;</div>
</div>
}
<table class="table">
}
<div style="width:100%;height:30px;">
&nbsp;
</div>
<table class="table table-striped">
<thead>
<tr>
@* <th>Seriale</th> *@
@ -78,14 +103,7 @@
<tr>
@Html.HiddenFor(modelItem => item.chserial)
@Html.HiddenFor(modelItem => item.chcodese)
@* <td>
@Html.DisplayFor(modelItem => item.chserial)
@Html.HiddenFor(modelItem => item.chserial)
</td>
<td>
@Html.DisplayFor(modelItem => item.chcodese)
</td>
*@
<td>
@Html.DisplayFor(modelItem => item.numIntero)
</td>
@ -152,7 +170,7 @@
</tbody>
</table>
<nav>
@Html.PagedListPager(Model, page => Url.Action("index", new { page = page, searchString=@ViewData["CurrentFilter"] }), new PagedListRenderOptions()
@Html.PagedListPager(Model, page => Url.Action("index", new { page = page, impianto=@ViewData["CurrentFilter"],tecnico=@ViewData["CurrentFilterTec"],indirizzo=@ViewData["CurrentFilterIndiri"],stato=@ViewData["CurrentFilterStato"],dataIni=@ViewData["CurrentFilterDataDa"],dataFin=@ViewData["CurrentFilterDataA"] }), new PagedListRenderOptions()
{
ActiveLiElementClass = "active",
PageClasses = new[]{ "page-link"},