Skip to content

Commit

Permalink
feat: city operations
Browse files Browse the repository at this point in the history
  • Loading branch information
1grzyb1 committed Oct 16, 2023
1 parent ba4045c commit 7e5d802
Show file tree
Hide file tree
Showing 8 changed files with 87 additions and 11 deletions.
3 changes: 2 additions & 1 deletion odyseja-ui/src/routes/panel/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
{label: 'Harmonogram', route: '/panel/timetable', icon: 'ic:round-calendar-view-month'},
{label: 'Problemy', route: '/panel/problem', icon: 'ic:round-format-list-bulleted'},
{label: 'Informacje', route: '/panel/info', icon: 'ic:outline-info'},
{label: 'Sceny', route: '/panel/stage', icon: 'ic:outline-curtains'}
{label: 'Sceny', route: '/panel/stage', icon: 'ic:outline-curtains'},
{label: 'Miasta', route: '/panel/city', icon: 'ic:outline-curtains'}
];
export let data: Cities
Expand Down
9 changes: 1 addition & 8 deletions odyseja-ui/src/routes/panel/+layout.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
import {get} from "$lib/apiService";
import type {Cities, City} from "$lib/types";
import {fetchCities} from "./city/cityService";


export async function load() {
const cities = await fetchCities();
console.log(cities)
return cities
}

async function fetchCities(): Promise<Cities> {
const data = await get('/city');
const cites = data as City[]
return {cities: cites} as Cities;
}
43 changes: 43 additions & 0 deletions odyseja-ui/src/routes/panel/city/+page.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<script lang="ts">
import type {Cities, City} from "$lib/types";
import {del} from "$lib/apiService";
import {fetchCities} from "./cityService";
import Dialog from "$lib/Dialog.svelte";
import CityDialog from "./CityDialog.svelte";
export let data: Cities
let cityDialog: HTMLDialogElement;
async function addNew() {
cityDialog.show()
}
async function deleteCity(city: City) {
await del(`/city/${city.id}`, 'Miasto usunięte')
await refresh()
}
async function refresh() {
data = await fetchCities()
cityDialog.close()
}
</script>

<h2 class="mb-6">Miasta</h2>

<section class="p-4">
{#each data.cities as city}
<div class="flex">
<label class="label p-2">
<input class="input" type="text" placeholder="Input" bind:value={city.name} readonly/>
</label>
<button class="btn btn-md variant-filled-error h-10" type="button" on:click={deleteCity(city)}>Del</button>
</div>
{/each}
<button class="btn btn-md variant-filled-secondary h-10" on:click={addNew} type="button">Dodaj</button>
</section>

<Dialog bind:dialog={cityDialog}>
<CityDialog onSave={refresh}/>
</Dialog>
6 changes: 6 additions & 0 deletions odyseja-ui/src/routes/panel/city/+page.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import type {PageLoad} from './$types';
import {fetchCities} from "./cityService";

export const load = (({params}) => {
return fetchCities();
}) satisfies PageLoad;
25 changes: 25 additions & 0 deletions odyseja-ui/src/routes/panel/city/CityDialog.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<script lang="ts">
import {post} from "$lib/apiService";
import type {City} from "$lib/types";
export let onSave;
let cityName = '';
async function save() {
await post({id: 0, name: cityName} as City, '/city', 'Zapisano')
onSave();
}
</script>

<label class="label">
<span>Drużyna</span>
<input bind:value={cityName} class="input" type="text"/>
</label>

<button
class="btn btn-md variant-filled-primary"
on:click={save}
type="button">Zapisz
</button>
8 changes: 8 additions & 0 deletions odyseja-ui/src/routes/panel/city/cityService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import type {Cities, City} from "$lib/types";
import {get} from "$lib/apiService";

export async function fetchCities(): Promise<Cities> {
const data = await get('/city');
const cites = data as City[]
return {cities: cites} as Cities;
}
2 changes: 1 addition & 1 deletion odyseja-ui/src/routes/panel/stage/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
</script>

<div class="mt-4 mx-4 flex justify-between items-center">
<h2 class="mb-6">Problemy</h2>
<h2 class="mb-6">Sceny</h2>
<button type="button" on:click={toggleEdit} class="btn btn-md variant-filled-primary"
disabled='{editToggled}'>Edytuj
</button>
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/odyseja/odysejapka/rest/CityController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class CityController(

@Secured("ROLE_ADMIN")
@PostMapping
fun saveCity(cityEntity: CityEntity) {
fun saveCity(@RequestBody cityEntity: CityEntity) {
cityService.addCity(cityEntity)
}

Expand Down

0 comments on commit 7e5d802

Please sign in to comment.