mirror of
https://github.com/AJMicke/KickerELO.git
synced 2026-03-11 13:31:02 +01:00
Working entry of results
This commit is contained in:
11
pom.xml
11
pom.xml
@@ -32,15 +32,10 @@
|
|||||||
<artifactId>vaadin-spring-boot-starter</artifactId>
|
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- <dependency>
|
|
||||||
<groupId>org.apache.derby</groupId>
|
|
||||||
<artifactId>derbyclient</artifactId>
|
|
||||||
<version>10.13.1.1</version>
|
|
||||||
</dependency>-->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.h2database</groupId>
|
<groupId>org.mariadb.jdbc</groupId>
|
||||||
<artifactId>h2</artifactId>
|
<artifactId>mariadb-java-client</artifactId>
|
||||||
<scope>runtime</scope>
|
<version>3.5.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
23
src/main/frontend/index.html
Normal file
23
src/main/frontend/index.html
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!--
|
||||||
|
This file is auto-generated by Vaadin.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<style>
|
||||||
|
body, #outlet {
|
||||||
|
height: 100vh;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<!-- index.ts is included here automatically (either by the dev server or during the build) -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- This outlet div is where the views are rendered -->
|
||||||
|
<div id="outlet"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
19
src/main/frontend/themes/my-theme/styles.css
Normal file
19
src/main/frontend/themes/my-theme/styles.css
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
CSS styling examples for the Vaadin app.
|
||||||
|
|
||||||
|
Visit https://vaadin.com/docs/styling/application-theme/ for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Example: CSS class name to center align the content . */
|
||||||
|
.centered-content {
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Example: the style is applied only to the textfields which have the `bordered` class name. */
|
||||||
|
vaadin-text-field.bordered::part(input-field) {
|
||||||
|
box-shadow: inset 0 0 0 1px var(--lumo-contrast-30pct);
|
||||||
|
background-color: var(--lumo-base-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
3
src/main/frontend/themes/my-theme/theme.json
Normal file
3
src/main/frontend/themes/my-theme/theme.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"lumoImports" : [ "typography", "color", "spacing", "badge", "utility" ]
|
||||||
|
}
|
||||||
@@ -57,8 +57,15 @@ public class MainView extends VerticalLayout {
|
|||||||
loserGoals.setValue(0);
|
loserGoals.setValue(0);
|
||||||
loserGoals.setStepButtonsVisible(true);
|
loserGoals.setStepButtonsVisible(true);
|
||||||
|
|
||||||
Button saveButton = new Button("Speichern", e ->
|
Button saveButton = new Button("Speichern", e -> {
|
||||||
eloService.enterResult1vs1(winnerSelect.getValue(), loserSelect.getValue(), loserGoals.getValue().shortValue()));
|
try {
|
||||||
|
eloService.enterResult1vs1(winnerSelect.getValue(), loserSelect.getValue(), loserGoals.getValue().shortValue());
|
||||||
|
Notification.show("Gespeichert").addThemeVariants(NotificationVariant.LUMO_SUCCESS);
|
||||||
|
} catch (NoSuchPlayerException err) {
|
||||||
|
Notification.show("Konnte nicht gespeichert werden").addThemeVariants(NotificationVariant.LUMO_ERROR);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Use custom CSS classes to apply styling. This is defined in
|
// Use custom CSS classes to apply styling. This is defined in
|
||||||
|
|||||||
@@ -1,27 +1,30 @@
|
|||||||
package org.kickerelo.kickerelo.data;
|
package org.kickerelo.kickerelo.data;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class Ergebnis1vs1 {
|
public class Ergebnis1vs1 {
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "ID")
|
@Column(name = "ID", unique = true, nullable = false)
|
||||||
|
@GeneratedValue
|
||||||
private long id;
|
private long id;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "GEWINNER")
|
@JoinColumn(name = "GEWINNER", nullable = false)
|
||||||
private Spieler gewinner;
|
private Spieler gewinner;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "VERLIERER")
|
@JoinColumn(name = "VERLIERER", nullable = false)
|
||||||
private Spieler verlierer;
|
private Spieler verlierer;
|
||||||
|
|
||||||
@Column(name = "TORE_VERLIERER")
|
@Column(name = "TORE_VERLIERER", nullable = false)
|
||||||
private short toreVerlierer;
|
private short toreVerlierer;
|
||||||
|
|
||||||
@Column(name = "ZEITPUNKT")
|
@Column(name = "ZEITPUNKT", updatable = false)
|
||||||
|
@CreationTimestamp
|
||||||
private LocalDateTime timestamp;
|
private LocalDateTime timestamp;
|
||||||
|
|
||||||
public Ergebnis1vs1() {
|
public Ergebnis1vs1() {
|
||||||
|
|||||||
@@ -1,35 +1,38 @@
|
|||||||
package org.kickerelo.kickerelo.data;
|
package org.kickerelo.kickerelo.data;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
import org.hibernate.annotations.CreationTimestamp;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class Ergebnis2vs2 {
|
public class Ergebnis2vs2 {
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "ID")
|
@Column(name = "ID", unique = true, nullable = false)
|
||||||
|
@GeneratedValue
|
||||||
private long id;
|
private long id;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "GEWINNER_VORN")
|
@JoinColumn(name = "GEWINNER_VORN", nullable = false)
|
||||||
private Spieler gewinnerVorn;
|
private Spieler gewinnerVorn;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "GEWINNER_HINTEN")
|
@JoinColumn(name = "GEWINNER_HINTEN", nullable = false)
|
||||||
private Spieler gewinnerHinten;
|
private Spieler gewinnerHinten;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "VERLIERER_VORN")
|
@JoinColumn(name = "VERLIERER_VORN", nullable = false)
|
||||||
private Spieler verliererVorn;
|
private Spieler verliererVorn;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "VERLIERER_HINTEN")
|
@JoinColumn(name = "VERLIERER_HINTEN", nullable = false)
|
||||||
private Spieler verliererHinten;
|
private Spieler verliererHinten;
|
||||||
|
|
||||||
@Column(name = "TORE_VERLIERER")
|
@Column(name = "TORE_VERLIERER", nullable = false)
|
||||||
private short toreVerlierer;
|
private short toreVerlierer;
|
||||||
|
|
||||||
@Column(name = "ZEITPUNKT")
|
@Column(name = "ZEITPUNKT", nullable = false, updatable = false)
|
||||||
|
@CreationTimestamp
|
||||||
private LocalDateTime timestamp;
|
private LocalDateTime timestamp;
|
||||||
|
|
||||||
public Ergebnis2vs2() {
|
public Ergebnis2vs2() {
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ public class Spieler {
|
|||||||
@Column(name = "ELO", nullable = false)
|
@Column(name = "ELO", nullable = false)
|
||||||
private float elo;
|
private float elo;
|
||||||
|
|
||||||
|
@Column(name = "ELO_ALT")
|
||||||
|
private float elo_alt;
|
||||||
|
|
||||||
public Spieler() {
|
public Spieler() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,4 +45,12 @@ public class Spieler {
|
|||||||
public void setElo(float elo) {
|
public void setElo(float elo) {
|
||||||
this.elo = elo;
|
this.elo = elo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getElo_alt() {
|
||||||
|
return elo_alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setElo_alt(float elo_alt) {
|
||||||
|
this.elo_alt = elo_alt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
57
src/main/java/org/kickerelo/kickerelo/data/update-schema.sql
Normal file
57
src/main/java/org/kickerelo/kickerelo/data/update-schema.sql
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
CREATE SEQUENCE ergebnis1vs1_seq INCREMENT BY 50 START WITH 1;
|
||||||
|
|
||||||
|
CREATE SEQUENCE ergebnis2vs2_seq INCREMENT BY 50 START WITH 1;
|
||||||
|
|
||||||
|
CREATE SEQUENCE spieler_seq INCREMENT BY 50 START WITH 1;
|
||||||
|
|
||||||
|
CREATE TABLE ergebnis1vs1
|
||||||
|
(
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
gewinner INT NOT NULL,
|
||||||
|
verlierer INT NOT NULL,
|
||||||
|
tore_verlierer SMALLINT NOT NULL,
|
||||||
|
zeitpunkt datetime NULL,
|
||||||
|
CONSTRAINT pk_ergebnis1vs1 PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE ergebnis2vs2
|
||||||
|
(
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
gewinner_vorn INT NOT NULL,
|
||||||
|
gewinner_hinten INT NOT NULL,
|
||||||
|
verlierer_vorn INT NOT NULL,
|
||||||
|
verlierer_hinten INT NOT NULL,
|
||||||
|
tore_verlierer SMALLINT NOT NULL,
|
||||||
|
zeitpunkt datetime NOT NULL,
|
||||||
|
CONSTRAINT pk_ergebnis2vs2 PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE spieler
|
||||||
|
(
|
||||||
|
id INT NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
elo FLOAT NOT NULL,
|
||||||
|
elo_alt FLOAT NULL,
|
||||||
|
CONSTRAINT pk_spieler PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE spieler
|
||||||
|
ADD CONSTRAINT uc_spieler_name UNIQUE (name);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis1vs1
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS1VS1_ON_GEWINNER FOREIGN KEY (gewinner) REFERENCES spieler (id);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis1vs1
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS1VS1_ON_VERLIERER FOREIGN KEY (verlierer) REFERENCES spieler (id);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis2vs2
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_GEWINNER_HINTEN FOREIGN KEY (gewinner_hinten) REFERENCES spieler (id);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis2vs2
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_GEWINNER_VORN FOREIGN KEY (gewinner_vorn) REFERENCES spieler (id);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis2vs2
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_VERLIERER_HINTEN FOREIGN KEY (verlierer_hinten) REFERENCES spieler (id);
|
||||||
|
|
||||||
|
ALTER TABLE ergebnis2vs2
|
||||||
|
ADD CONSTRAINT FK_ERGEBNIS2VS2_ON_VERLIERER_VORN FOREIGN KEY (verlierer_vorn) REFERENCES spieler (id);
|
||||||
@@ -4,3 +4,12 @@ spring.mustache.check-template-location = false
|
|||||||
|
|
||||||
# Launch the default browser when starting the application in development mode
|
# Launch the default browser when starting the application in development mode
|
||||||
vaadin.launch-browser=true
|
vaadin.launch-browser=true
|
||||||
|
|
||||||
|
spring.datasource.url=jdbc:mariadb://localhost:3306/kickerelo
|
||||||
|
spring.datasource.username=
|
||||||
|
spring.datasource.password=
|
||||||
|
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
||||||
|
spring.jpa.hibernate.ddl-auto=validate
|
||||||
|
spring.jpa.show-sql=true
|
||||||
|
spring.jpa.format-sql=true
|
||||||
|
spring.jpa.open-in-view=false
|
||||||
Reference in New Issue
Block a user