5 Commits

11 changed files with 439 additions and 26 deletions

View File

@@ -457,4 +457,31 @@ public class AccountMgr {
String[] priceD = { "1", String.valueOf((int) (price * 100)) };
Database.update("price", priceH, priceD);
}
/**
* update password in User table
* @param password User
* @return update password
* @author Reshad Meher
*/
protected static long updatePassword( User password) {
String[] pwH = {"password"};
String[] pwD = {password.getPassword()};
long updates = Database.update("user",pwH,pwD);
return updates;
}
/**
* update adress in User table
* @param address Adresss
* @return update Adrssse
* @author Reshad Meher
*/
protected static long updateAdreess(Address address ){
String[] adH = {"stree","numbrt","plz","city"};
String[] adD = {address.getStreet(),address.getNumber(),address.getPlz(),address.getCity()};
long updates = Database.update("user",adH,adD);
return updates;
}
}

View File

@@ -6,6 +6,10 @@ import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
public class MenueController {
@FXML
@@ -71,14 +75,26 @@ public class MenueController {
@FXML
ComboBox<String> cbPickChild;
@FXML
Button btLogin;
@FXML
Button btSaveOrder;
@FXML
ListView<String> lvFoodInfo;
public ObservableList<Node> buttons = FXCollections.observableArrayList();
public ObservableList<String> children = FXCollections.observableArrayList();
public List<Child> allChildren = AccountMgr.getAllChildrenFromParentWithId(3);
public void initialize(){
FoodPlan foodplanMon = FoodMgr.getFoodPlanById(1);
FoodPlan foodplanTue = FoodMgr.getFoodPlanById(2);
FoodPlan foodplanWed = FoodMgr.getFoodPlanById(3);
FoodPlan foodplanThu = FoodMgr.getFoodPlanById(4);
FoodPlan foodplanFri = FoodMgr.getFoodPlanById(5);
for (Child c : allChildren){
children.add(c.getFirstname());
}
cbPickChild.setItems(children);
}
public void setButtonActive(ActionEvent event) {
Button b = (Button) event.getSource();
@@ -87,14 +103,7 @@ public class MenueController {
buttons = p.getChildrenUnmodifiable();
for(Node button : buttons){
System.out.println(b.getStyleClass());
/*
b.getStyleClass().remove("active");
if (button.equals(b)){
b.getStyleClass().add("active");;
}
*/
button.setDisable(button.equals(b));
}
}
}

View File

@@ -0,0 +1,149 @@
package com.bib.essensbestellungsverwaltung;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.TextField;
import java.io.IOException;
/**
* @author Reshad Meher
*/
public class SettingsController {
@FXML
private TextField tfOldPassword;
@FXML
private TextField tfNewPassword;
@FXML
private TextField tfConfirmNewPasword;
@FXML
private TextField tfPostCode;
@FXML
private TextField tfStreet;
@FXML
private TextField tfCity;
@FXML
private TextField tfHousNumber;
Alert alert;
@FXML
private void onPasswordChangClick(){
String oldPassword = tfOldPassword.getText();
String newPassword = tfNewPassword.getText();
String confirmNewPassword = tfConfirmNewPasword.getText();
if(!oldPassword.isEmpty() && !newPassword.isEmpty() && !confirmNewPassword.isEmpty()){
if(!newPassword.equals(confirmNewPassword)){
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Passwort");
alert.setHeaderText("Ihre neue Passwort und Bestätigung passt nicht. Nochmal versuchen");
alert.showAndWait();
}else {
User userPassword = new User(newPassword);
long UpdateUserPassword = AccountMgr.updatePassword(userPassword);
if (UpdateUserPassword > 0){
alert.setTitle("Passwort");
alert.setHeaderText("Ihre Passwort erfolgreich geändert");
alert.showAndWait();
}
else {
alert.setTitle("Passwort");
alert.setHeaderText("nei");
alert.showAndWait();
}
}
tfOldPassword.setText("");
tfNewPassword.setText("");
tfConfirmNewPasword.setText("");
}
else {
if(oldPassword.isEmpty()){
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Passwort");
alert.setHeaderText("Ihre aktuelles Passwort ist leer.");
alert.showAndWait();
}else if(newPassword.isEmpty()){
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Passwort");
alert.setHeaderText("Ihre neues Passwort ist leer.");
alert.showAndWait();
}if(confirmNewPassword.isEmpty()){
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Passwort");
alert.setHeaderText("Ihre neue Passwort Bestätigung ist leer.");
alert.showAndWait();
}else{
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Passwort");
alert.setHeaderText("Ihre Passwort wurde nicht geändert");
alert.showAndWait();
}
}
}
@FXML
private void onChangAdressClick(){
String postCode = tfPostCode.getText();
String street = tfStreet.getText();
String city = tfCity.getText();
String housNumber = tfHousNumber.getText();
if (!postCode.isEmpty() && !street.isEmpty() && !city.isEmpty() && !housNumber.isEmpty()) {
Address userAdress = new Address(street,housNumber,postCode,city);
long UpdateUserAdress = AccountMgr.updateAdreess(userAdress);
if (UpdateUserAdress > 0) {
alert.setTitle("Adresse");
alert.setHeaderText("Ihre Adresse erfolgreich geändert");
alert.showAndWait();
tfPostCode.setText("");
tfStreet.setText("");
tfCity.setText("");
tfHousNumber.setText("");
}
}else {
if (postCode.isEmpty()) {
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Adresse");
alert.setHeaderText("Postleitzahl ist leer.");
alert.showAndWait();
} else if (street.isEmpty()) {
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Adresse");
alert.setHeaderText("Straß ist leer.");
alert.showAndWait();
} else if (city.isEmpty()) {
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Adresse");
alert.setHeaderText("Statd ist leer.");
alert.showAndWait();
} else if (housNumber.isEmpty()) {
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Adresse");
alert.setHeaderText("Hausnumer ist leer.");
alert.showAndWait();
} else {
alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Adresse");
alert.setHeaderText("Ihre Adresse wurde nicht geändert");
alert.showAndWait();
}
}
}
@FXML
private void onLogOutBtClick() throws IOException{
FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("login-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 950,700);
StartViewApplication.primary.setScene(scene);
}
public void onSettingBtClick(ActionEvent actionEvent) {
}
}

View File

@@ -20,7 +20,7 @@ public class StartViewApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource((firstLaunch) ? "signUp-view.fxml" : "login-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 1200, 750);
Scene scene = new Scene(fxmlLoader.load(), 1300, 750);
primary = stage;
stage.setTitle("Essen Bestellung im Kindergarten");
stage.setScene(scene);

View File

@@ -52,4 +52,13 @@ public class User {
public Address getAddress() {
return address;
}
/**
*
* @author Reshad Meher
*/
public User (String password){
this.password = password;
}
}

View File

@@ -11,7 +11,7 @@
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="750.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.LoginController">
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="750.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.LoginController">
<children>
<VBox alignment="CENTER" prefHeight="750.0" prefWidth="400.0" style="-fx-background-color: lightblue;">
<children>

View File

@@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<BorderPane fx:id="contentView" prefHeight="750.0" prefWidth="1200.0" stylesheets="@menue.css" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.ParentMenuController">
<BorderPane fx:id="contentView" prefHeight="750.0" prefWidth="1300.0" stylesheets="@menue.css" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.ParentMenuController">
<left>
<VBox alignment="TOP_CENTER" prefHeight="750.0" prefWidth="350.0" spacing="10.0" style="-fx-background-color: #ADD8E6FF; -fx-padding: 20;" BorderPane.alignment="CENTER">
<children>

View File

@@ -0,0 +1,26 @@
#contentContainer{
-fx-background-color: #add8e6;
}
#contentContainer2{
-fx-background-color: lightblue;
}
#contentButton{
-fx-background-color: transparent;
}
#contentButton:hover{
-fx-underline: true;
-fx-background-color: #78939d;
-fx-text-fill: white;
}
#btLogOut{
-fx-background-color: transparent;
-fx-pref-height: 40px;
}
#btLogOut:hover{
-fx-underline: true;
}

View File

@@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane prefHeight="800.0" prefWidth="1205.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.SettingsController">
<children>
<VBox id="contentContainer" layoutY="-14.0" prefHeight="814.0" prefWidth="333.0" stylesheets="@parentMenue.css">
<children>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="327.0">
<children>
<ImageView fitHeight="60.0" fitWidth="60.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@pics/menu.png" />
</image>
</ImageView>
<Button id="contentButton" alignment="BASELINE_LEFT" mnemonicParsing="false" prefHeight="25.0" prefWidth="260.0" text="Essensplan">
<font>
<Font size="25.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<ImageView fitHeight="60.0" fitWidth="60.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@pics/little-kid.png" />
</image>
</ImageView>
<Button id="contentButton" alignment="BASELINE_LEFT" mnemonicParsing="false" prefHeight="25.0" prefWidth="260.0" text="Kind">
<font>
<Font size="25.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<ImageView fitHeight="60.0" fitWidth="60.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@pics/shopping-list.png" />
</image>
</ImageView>
<Button id="contentButton" alignment="BASELINE_LEFT" mnemonicParsing="false" prefHeight="52.0" prefWidth="260.0" text="Bestellung">
<font>
<Font size="25.0" />
</font>
</Button>
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<ImageView fitHeight="60.0" fitWidth="60.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@pics/setting.png" />
</image>
</ImageView>
<Button fx:id="BtSetting" alignment="BASELINE_LEFT" mnemonicParsing="false" onAction="#onSettingBtClick" prefHeight="52.0" prefWidth="260.0" text="Nutzereinstellungen">
<font>
<Font size="25.0" />
</font>
</Button>
</children>
</HBox>
</children>
<padding>
<Insets top="50.0" />
</padding></VBox>
<HBox id="contentContainer2" alignment="CENTER_RIGHT" prefHeight="40.0" prefWidth="1200.0" stylesheets="@parentMenue.css">
<children>
<Button mnemonicParsing="false" onAction="#onLogOutBtClick" text="Abmelden" />
</children>
</HBox>
<HBox fx:id="UserSetting" layoutX="343.0" layoutY="48.0" prefHeight="355.0" prefWidth="856.0" style="-fx-border-width: 1 1 1 1; -fx-border-color: lightblue;" AnchorPane.topAnchor="230.0">
<children>
<VBox prefHeight="353.0" prefWidth="260.0">
<children>
<Label text="Elterndaten">
<font>
<Font name="Microsoft Tai Le Bold" size="24.0" />
</font>
<VBox.margin>
<Insets bottom="25.0" left="25.0" right="25.0" top="10.0" />
</VBox.margin>
</Label>
<TextField prefHeight="36.0" prefWidth="274.0" promptText="aktuelles Passwort" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<VBox.margin>
<Insets bottom="25.0" left="20.0" right="25.0" top="5.0" />
</VBox.margin>
<font>
<Font name="Microsoft Tai Le Bold" size="16.0" />
</font>
</TextField>
<TextField promptText="neues Passwort" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<VBox.margin>
<Insets left="20.0" right="25.0" top="5.0" />
</VBox.margin>
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
</TextField>
<TextField promptText="passwort bestätigen " style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<VBox.margin>
<Insets bottom="25.0" left="20.0" right="25.0" top="25.0" />
</VBox.margin>
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
</TextField>
<Button alignment="BASELINE_LEFT" contentDisplay="TOP" mnemonicParsing="false" style="-fx-background-radius: 25; -fx-background-color: lightblue;" text="Passowrt ändern" textFill="WHITE">
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
<VBox.margin>
<Insets left="80.0" top="25.0" />
</VBox.margin>
</Button>
</children>
</VBox>
<VBox prefHeight="353.0" prefWidth="245.0">
<children>
<TextField prefHeight="35.0" prefWidth="102.0" promptText="PLZ" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<VBox.margin>
<Insets bottom="25.0" left="20.0" right="25.0" top="75.0" />
</VBox.margin>
<font>
<Font name="Microsoft Tai Le Bold" size="16.0" />
</font>
</TextField>
<TextField promptText="Straße" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
<VBox.margin>
<Insets bottom="25.0" left="20.0" right="25.0" top="5.0" />
</VBox.margin>
</TextField>
</children>
<HBox.margin>
<Insets left="80.0" />
</HBox.margin>
</VBox>
<VBox prefHeight="411.0" prefWidth="225.0">
<children>
<TextField promptText="Stadt" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<VBox.margin>
<Insets left="20.0" right="25.0" top="75.0" />
</VBox.margin>
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
</TextField>
<TextField promptText="Hausnummer" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
<VBox.margin>
<Insets left="25.0" right="25.0" top="25.0" />
</VBox.margin>
</TextField>
<Button alignment="BASELINE_LEFT" contentDisplay="TOP" mnemonicParsing="false" style="-fx-background-radius: 25; -fx-background-color: lightblue;" text="Adresse ändern" textFill="WHITE">
<font>
<Font name="Microsoft Tai Le Bold" size="16.799999237060547" />
</font>
<VBox.margin>
<Insets left="60.0" top="120.0" />
</VBox.margin>
</Button>
</children>
</VBox>
</children>
</HBox>
</children>
</AnchorPane>

View File

@@ -11,9 +11,9 @@
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="750.0" maxWidth="1200.0" minHeight="750.0" minWidth="1200.0" prefHeight="750.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.SingUpController">
<AnchorPane maxHeight="750.0" maxWidth="1300.0" minHeight="750.0" minWidth="1200.0" prefHeight="750.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.SingUpController">
<children>
<VBox layoutX="400.0" prefHeight="750.0" prefWidth="800.0" style="-fx-background-color: white;">
<VBox layoutX="400.0" prefHeight="750.0" prefWidth="900.0" style="-fx-background-color: white;">
<children>
<TextField fx:id="tfLastName" alignment="TOP_LEFT" prefHeight="26.0" prefWidth="282.0" promptText="Name" style="-fx-background-color: transparent; -fx-border-color: lightgray; -fx-border-width: 0 0 1 0;">
<effect>

View File

@@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<BorderPane fx:id="contentView" prefHeight="750.0" prefWidth="1200.0" stylesheets="@menue.css" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.WorkerMenuController">
<BorderPane fx:id="contentView" prefHeight="750.0" prefWidth="1300.0" stylesheets="@menue.css" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.WorkerMenuController">
<left>
<VBox alignment="TOP_CENTER" prefHeight="750.0" prefWidth="350.0" spacing="10.0" style="-fx-background-color: #ADD8E6FF; -fx-padding: 20;" BorderPane.alignment="CENTER">
<children>