Skip to content

Commit

Permalink
Index viewmodel + parannuksia
Browse files Browse the repository at this point in the history
  • Loading branch information
ArttuKuikka committed Oct 4, 2024
1 parent baa8f8a commit 2086c46
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 91 deletions.
52 changes: 29 additions & 23 deletions Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Microsoft.EntityFrameworkCore;
using RuokalistaServer.Data;
using RuokalistaServer.Models;
using RuokalistaServer.ViewModels;

namespace RuokalistaServer.Controllers
{
Expand All @@ -17,52 +18,57 @@ public HomeController(ApplicationDbContext db)
}

[HttpGet("/")]
public async Task <IActionResult> Index(int? weekId, int? Year)
public async Task <IActionResult> Index(int? Year, int? Week)
{
ViewBag.Nykyinenviikko = false;
ViewBag.RuokaOlemassa = false;
var viikko = weekId ?? System.Globalization.ISOWeek.GetWeekOfYear(DateTime.Now);
var viikko = Week ?? System.Globalization.ISOWeek.GetWeekOfYear(DateTime.Now);
var vuosi = Year ?? DateTime.Now.Year;
if (weekId== null)

var model = new IndexViewModel();


model.NextWeeksMenuExists = db.Ruokalista.Where(m => m.Year == DateTime.Now.Year)?.FirstOrDefault(k => k.WeekId == viikko + 1) != null;
//if not viewing custom week and year
if (Week == null && Year == null)
{
if (DateTime.Today.DayOfWeek == DayOfWeek.Sunday || DateTime.Today.DayOfWeek == DayOfWeek.Saturday)
{
ViewBag.NytOnSeuraavaViikko = true;
model.ShowingNextWeeksMenu = true;
viikko += 1;
}
if(DateTime.Today.DayOfWeek == DayOfWeek.Friday && DateTime.Now.Hour > 12)
else if(DateTime.Today.DayOfWeek == DayOfWeek.Friday && DateTime.Now.Hour > 12)
{
if(db.Ruokalista.Where(m => m.Year == DateTime.Now.Year)?.FirstOrDefault(k => k.WeekId == viikko + 1) != null)
if(model.NextWeeksMenuExists)
{
ViewBag.NytOnSeuraavaViikko = true;
viikko+= 1;
model.ShowingNextWeeksMenu = true;
viikko += 1;
}
}
}

ViewBag.viikko = viikko;


var ruokalista = db.Ruokalista.Where(m => m.Year == vuosi)?.FirstOrDefault(k => k.WeekId == viikko);
model.Ruokalista = db.Ruokalista.Where(m => m.Year == vuosi)?.FirstOrDefault(k => k.WeekId == viikko);


if(ruokalista != null)
if(model.Ruokalista != null)
{
if (ruokalista.WeekId == System.Globalization.ISOWeek.GetWeekOfYear(DateTime.Now))
if (model.Ruokalista.WeekId == System.Globalization.ISOWeek.GetWeekOfYear(DateTime.Now))
{
ViewBag.Nykyinenviikko = true;
ViewBag.SeuraavaViikko = db.Ruokalista.Where(m => m.Year == DateTime.Now.Year)?.FirstOrDefault(k => k.WeekId == viikko + 1);
model.ShowingCurrentWeeksMenu = true;

}
ViewBag.RuokaOlemassa = true;
ViewBag.Vuosi = ruokalista.Year;
}

return View("Index", model);
}

ViewBag.SeuraavaViikkoNumero = viikko + 1;
ViewBag.ruokalista = ruokalista;
return View();
[HttpGet("/{Year:int}/{Week:int}")]
public async Task<IActionResult> SpesificIndex(int? Year, int? Week)
{
return await Index(Year, Week);
}


[HttpGet("Listaa")]
public async Task<IActionResult> Listaa()
{
Expand Down
12 changes: 12 additions & 0 deletions ViewModels/IndexViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using RuokalistaServer.Models;

namespace RuokalistaServer.ViewModels
{
public class IndexViewModel
{
public Ruokalista? Ruokalista { get; set; }
public bool ShowingNextWeeksMenu { get; set; }
public bool ShowingCurrentWeeksMenu { get; set; }
public bool NextWeeksMenuExists { get; set; }
}
}
108 changes: 42 additions & 66 deletions Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
@@ -1,92 +1,67 @@

@model RuokalistaServer.ViewModels.IndexViewModel

@{
ViewData["Title"] = "Ruokalista";
ViewData["Title"] = Model.Ruokalista != null ? $"Viikon {Model.Ruokalista.WeekId} ruokalista" : "Tätä ruokalistaa ei ole olemassa";
}


<div class="text-center" style="font-family:'Ruokalistafont', sans-serif;">

@{
if(ViewBag.RuokaOlemassa ?? false)
if(Model.Ruokalista != null)
{
@if (ViewBag.NykyinenViikko ?? false)
@if (Model.ShowingCurrentWeeksMenu)
{
<div class="siteTitle">Tämän viikon(@ViewBag.viikko) ruokalista</div>
<div class="siteTitle">Tämän viikon(@Model.Ruokalista.WeekId) ruokalista</div>
}
else if (ViewBag.NytOnSeuraavaViikko ?? false)
else if (Model.ShowingNextWeeksMenu)
{
<div class="siteTitle">Seuraavan viikon(@ViewBag.viikko) ruokalista</div>
<div class="siteTitle">Seuraavan viikon(@Model.Ruokalista.WeekId) ruokalista</div>
}
else
{
<div class="siteTitle">Viikon(@ViewBag.viikko) ruokalista</div>
<div class="siteTitle"> @Model.Ruokalista.Year/@Model.Ruokalista.WeekId ruokalista</div>
}

RuokalistaServer.Models.Ruokalista ruoka = ViewBag.ruokalista;

if (ViewBag.Nykyinenviikko && DateTime.Now.DayOfWeek == DayOfWeek.Monday){
<div class="dayTitle" style="color:orange">Maanantai</div>
<div class="ruokaText" style ="color:orange">@ruoka.Maanantai</div>
}
else
{
<div class="dayTitle">Maanantai</div>
<div class="ruokaText">@ruoka.Maanantai</div>
}


<div class="@(Model.ShowingCurrentWeeksMenu && DateTime.Now.DayOfWeek == DayOfWeek.Monday ? "highlighted" : "")">
<h3 class="dayTitle">Maanantai</h3>
<h4 class="ruokaText">@Model.Ruokalista.Maanantai</h4>

</div>
<br />


if (ViewBag.Nykyinenviikko && DateTime.Now.DayOfWeek == DayOfWeek.Tuesday)
{
<div class="dayTitle" style="color:orange">Tiistai</div>
<div class="ruokaText" style="color:orange">@ruoka.Tiistai</div>
}
else
{
<div class="dayTitle">Tiistai</div>
<div class="ruokaText">@ruoka.Tiistai</div>
}

<div class="@(Model.ShowingCurrentWeeksMenu && DateTime.Now.DayOfWeek == DayOfWeek.Tuesday ? "highlighted" : "")">
<h3 class="dayTitle">Tiistai</h3>
<h4 class="ruokaText">@Model.Ruokalista.Tiistai</h4>

</div>
<br />

<div class="@(Model.ShowingCurrentWeeksMenu && DateTime.Now.DayOfWeek == DayOfWeek.Wednesday ? "highlighted" : "")">
<h3 class="dayTitle">Keskiviikko</h3>
<h4 class="ruokaText">@Model.Ruokalista.Keskiviikko</h4>

if (ViewBag.Nykyinenviikko && DateTime.Now.DayOfWeek == DayOfWeek.Wednesday)
{
<div class="dayTitle" style="color:orange">Keskiviikko</div>
<div class="ruokaText" style="color:orange">@ruoka.Keskiviikko</div>
}
else
{
<div class="dayTitle">Keskiviikko</div>
<div class="ruokaText">@ruoka.Keskiviikko</div>
}
</div>
<br />

<div class="@(Model.ShowingCurrentWeeksMenu && DateTime.Now.DayOfWeek == DayOfWeek.Thursday ? "highlighted" : "")">
<h3 class="dayTitle">Torstai</h3>
<h4 class="ruokaText">@Model.Ruokalista.Torstai</h4>

</div>
<br />

if (ViewBag.Nykyinenviikko && DateTime.Now.DayOfWeek == DayOfWeek.Thursday)
{
<div class="dayTitle" style="color:orange">Torstai</div>
<div class="ruokaText" style="color:orange">@ruoka.Torstai</div>
}
else
{
<div class="dayTitle">Torstai</div>
<div class="ruokaText">@ruoka.Torstai</div>
}
<div class="@(Model.ShowingCurrentWeeksMenu && DateTime.Now.DayOfWeek == DayOfWeek.Friday ? "highlighted" : "")">
<h3 class="dayTitle">Perjantai</h3>
<h4 class="ruokaText">@Model.Ruokalista.Perjantai</h4>

</div>
<br />

if (ViewBag.Nykyinenviikko && DateTime.Now.DayOfWeek == DayOfWeek.Friday)
{
<div class="dayTitle" style="color:orange">Perjantai</div>
<div class="ruokaText" style="color:orange">@ruoka.Perjantai</div>
}
else
{
<div class="dayTitle">Perjantai</div>
<div class="ruokaText">@ruoka.Perjantai</div>
}


<br />

Expand All @@ -103,14 +78,15 @@

<div>
<a class="btn btn-primary" onclick="window.location = '/Listaa';" style="margin: 0em 1em 0.5em 0em">&#x27F5; Edelliset viikot</a>
@if(@ViewBag.Nykyinenviikko){
if(@ViewBag.SeuraavaViikko != null){
<a class="btn btn-primary" onclick="window.location = '/?weekId=@ViewBag.SeuraavaViikkoNumero&Year=@ViewBag.Vuosi';" style="margin: 0em 1em 0.5em 0em">Seuraava viikko &#x27F6;</a>
}
}


@if (Model.Ruokalista != null && Model.NextWeeksMenuExists && !Model.ShowingNextWeeksMenu)
{
//jos vuosi on vaihtunut niin ei toimi
<a class="btn btn-primary" onclick="window.location = '/@Model.Ruokalista.Year/@(Model.Ruokalista.WeekId + 1)';" style="margin: 0em 1em 0.5em 0em">Seuraava viikko &#x27F6;</a>
}

</div>
</div>
<br />


4 changes: 2 additions & 2 deletions Views/Home/Listaa.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
@foreach(var viikko in Model)
{
<tr>
<td><h3>@viikko.WeekId</h3> <p>@viikko.Year</p></td>
<td><a class="btn btn-primary" onclick="window.location = '/?weekId=@viikko.WeekId&Year=@viikko.Year';">Näytä</a></td>
<td><a href="/@viikko.Year/@viikko.WeekId"><h3>Viikko @viikko.WeekId</h3></a> <p>@viikko.Year</p></td>
<td><a class="btn btn-primary" onclick="window.location = '/@viikko.Year/@viikko.WeekId';">Näytä</a></td>

</tr>
}
Expand Down
3 changes: 3 additions & 0 deletions wwwroot/css/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ body {
font-size: 1.9em
}

.highlighted {
color: orange;
}


@font-face {
Expand Down

0 comments on commit 2086c46

Please sign in to comment.