feat: add app bar with theme toggle and remove weather forecast demo code

This commit is contained in:
2025-10-19 21:28:11 +02:00
parent 74cfa283a1
commit 75393940b4
26 changed files with 115 additions and 55 deletions

Binary file not shown.

View File

@@ -1,12 +1,41 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\Programmieren\\CSharp\\JudoWeb\\",
"Documents": [],
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{98166726-DC3A-4D5B-889A-8B4428E28656}|API\\API.csproj|d:\\programmieren\\csharp\\judoweb\\api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{98166726-DC3A-4D5B-889A-8B4428E28656}|API\\API.csproj|solutionrelative:api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeDocumentMoniker": "API\\Program.cs",
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeToolTip": "API\\Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-05T16:26:39.39Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -1,12 +1,41 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\Programmieren\\CSharp\\JudoWeb\\",
"Documents": [],
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{98166726-DC3A-4D5B-889A-8B4428E28656}|API\\API.csproj|d:\\programmieren\\csharp\\judoweb\\api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{98166726-DC3A-4D5B-889A-8B4428E28656}|API\\API.csproj|solutionrelative:api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeDocumentMoniker": "API\\Program.cs",
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeToolTip": "API\\Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-05T16:26:39.39Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -10,4 +10,8 @@
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\" />
</ItemGroup>
</Project>

View File

@@ -1,33 +0,0 @@
using Microsoft.AspNetCore.Mvc;
namespace API.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
}

View File

@@ -1,13 +0,0 @@
namespace API
{
public class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
}

View File

@@ -10,4 +10,4 @@
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
</html>

BIN
GUI/public/Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

BIN
GUI/public/appBarIcon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,8 +1,48 @@
<script setup lang="ts"></script>
<script setup lang="ts">
import { onMounted } from 'vue';
import { useTheme } from 'vuetify';
const theme = useTheme();
function changeTheme() {
theme.toggle();
localStorage.setItem("theme", theme.name.value);
}
onMounted(() => {
theme.change(localStorage.getItem("theme") || "light");
});
</script>
<template>
<h1>You did it!</h1>
<router-view></router-view>
<v-app>
<v-app-bar image="./appBarIcon.png">
<template v-slot:image>
<v-img
:gradient="theme.name.value === 'dark' ? 'to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)' : 'to top, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)'"
/>
</template>
<template v-slot:prepend>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
</template>
<v-app-bar-title class="title">Judoteam - Stadtlohn</v-app-bar-title>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon="mdi-brightness-6" @click="changeTheme()"></v-btn>
</v-app-bar>
<v-main>
<router-view></router-view>
</v-main>
</v-app>
</template>
<style scoped></style>

View File

@@ -0,0 +1,3 @@
.title{
font-weight: 600;
}

View File

@@ -3,6 +3,7 @@
<template>
<h1>Home Vue</h1>
<h2>Willkommen bei JudoWeb</h2>
</template>
<style scoped>

View File

@@ -1 +1 @@
# JudoWeb
# JudoWebsurf