Compare commits
	
		
			3 Commits
		
	
	
		
			Update_cre
			...
			7c8b1fefb7
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7c8b1fefb7 | |||
| 226255f75a | |||
| d574849407 | 
| @@ -16,12 +16,7 @@ application { | |||||||
|     mainClassName = "client.MainApplication" |     mainClassName = "client.MainApplication" | ||||||
| } | } | ||||||
|  |  | ||||||
| repositories { |  | ||||||
|     mavenCentral() |  | ||||||
| } |  | ||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     implementation("com.jfoenix:jfoenix:9.0.10") |  | ||||||
|     implementation(project(":data")) |     implementation(project(":data")) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,8 +0,0 @@ | |||||||
| package customUI; |  | ||||||
|  |  | ||||||
| public class Button extends javafx.scene.control.Button { |  | ||||||
|  |  | ||||||
|     public void setTextValue(String text){ |  | ||||||
|         super.setText(Converter.CONVERT_STR(text)); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| package customUI; |  | ||||||
|  |  | ||||||
| public class Converter { |  | ||||||
|     /* |  | ||||||
|     Ä, ä 		\u00c4, \u00e4 |  | ||||||
|     Ö, ö 		\u00d6, \u00f6 |  | ||||||
|     Ü, ü 		\u00dc, \u00fc |  | ||||||
|     ß 		    \u00df |  | ||||||
|      */ |  | ||||||
|     @SuppressWarnings("all") |  | ||||||
|     public static String CONVERT_STR(String str){ |  | ||||||
|         return str |  | ||||||
|                 .replace("ä", "\u00e4") |  | ||||||
|                 .replace("Ä", "\u00c4") |  | ||||||
|                 .replace("ö", "\u00f6") |  | ||||||
|                 .replace("Ö", "\u00d6") |  | ||||||
|                 .replace("ü", "\u00fc") |  | ||||||
|                 .replace("Ü", "\u00dc") |  | ||||||
|                 .replace("ß", "\u00df"); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| package customUI; |  | ||||||
|  |  | ||||||
| public class Label extends javafx.scene.control.Label { |  | ||||||
|     public Label(String content){ |  | ||||||
|         super(Converter.CONVERT_STR(content)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public Label(){ |  | ||||||
|         super(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public void setTextValue(String text){ |  | ||||||
|         super.setText(Converter.CONVERT_STR(text)); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,30 +1,26 @@ | |||||||
| package main; | package main; | ||||||
|  |  | ||||||
| import com.jfoenix.controls.JFXTimePicker; |  | ||||||
| import javafx.event.ActionEvent; | import javafx.event.ActionEvent; | ||||||
| import javafx.fxml.FXML; | import javafx.fxml.FXML; | ||||||
| import javafx.scene.Node; | import javafx.scene.Node; | ||||||
| import javafx.scene.control.*; | import javafx.scene.control.*; | ||||||
| import javafx.scene.layout.GridPane; |  | ||||||
| import javafx.stage.Stage; | import javafx.stage.Stage; | ||||||
| import javafx.util.StringConverter; |  | ||||||
| import javafx.util.converter.LocalTimeStringConverter; |  | ||||||
| import res.DataController; | import res.DataController; | ||||||
| import res.Event; | import res.Event; | ||||||
|  |  | ||||||
| import java.time.LocalTime; |  | ||||||
| import java.time.format.FormatStyle; |  | ||||||
| import java.util.Locale; |  | ||||||
|  |  | ||||||
| public class CreateEventController { | public class CreateEventController { | ||||||
|  |  | ||||||
|     @FXML |  | ||||||
|     public GridPane mainGrid; |  | ||||||
|     @FXML |     @FXML | ||||||
|     public DatePicker datePickerDate; |     public DatePicker datePickerDate; | ||||||
|     @FXML |     @FXML | ||||||
|     public TextField textName; |     public TextField textName; | ||||||
|     @FXML |     @FXML | ||||||
|  |     public TextField textStart; | ||||||
|  |     @FXML | ||||||
|  |     public TextField textEnd; | ||||||
|  |     @FXML | ||||||
|  |     public ComboBox<String> ComboBoxTyp; | ||||||
|  |     @FXML | ||||||
|     public ComboBox<String> ComboBoxPriotity; |     public ComboBox<String> ComboBoxPriotity; | ||||||
|     @FXML |     @FXML | ||||||
|     public CheckBox checkBoxIsFullDay; |     public CheckBox checkBoxIsFullDay; | ||||||
| @@ -32,10 +28,6 @@ public class CreateEventController { | |||||||
|     public CheckBox checkBoxIsPrivate; |     public CheckBox checkBoxIsPrivate; | ||||||
|     @FXML |     @FXML | ||||||
|     public Label labelError; |     public Label labelError; | ||||||
|     @FXML |  | ||||||
|     public JFXTimePicker timeStart; |  | ||||||
|     @FXML |  | ||||||
|     public JFXTimePicker timeEnd; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     public CreateEventController() { |     public CreateEventController() { | ||||||
| @@ -43,22 +35,6 @@ public class CreateEventController { | |||||||
|  |  | ||||||
|     @FXML |     @FXML | ||||||
|     public void initialize() { |     public void initialize() { | ||||||
|  |  | ||||||
|         StringConverter<LocalTime> defaultConverter = new LocalTimeStringConverter(FormatStyle.SHORT, Locale.GERMANY); |  | ||||||
|  |  | ||||||
|         JFXTimePicker timePickerStart = new JFXTimePicker(); |  | ||||||
|         timeStart = timePickerStart; |  | ||||||
|         timePickerStart.set24HourView(true); |  | ||||||
|         timePickerStart.setConverter(defaultConverter); |  | ||||||
|         timePickerStart.getStyleClass().add("timePicker"); |  | ||||||
|         mainGrid.add(timePickerStart, 1 , 3); |  | ||||||
|  |  | ||||||
|         JFXTimePicker timePickerEnd = new JFXTimePicker(); |  | ||||||
|         timeEnd = timePickerEnd; |  | ||||||
|         timePickerEnd.set24HourView(true); |  | ||||||
|         timePickerEnd.setConverter(defaultConverter); |  | ||||||
|         timePickerEnd.getStyleClass().add("timePicker"); |  | ||||||
|         mainGrid.add(timePickerEnd, 1 , 4); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -74,8 +50,8 @@ public class CreateEventController { | |||||||
|                     ComboBoxPriotity.getSelectionModel().getSelectedIndex(), |                     ComboBoxPriotity.getSelectionModel().getSelectedIndex(), | ||||||
|                     checkBoxIsFullDay.isSelected(), |                     checkBoxIsFullDay.isSelected(), | ||||||
|                     checkBoxIsPrivate.isSelected(), |                     checkBoxIsPrivate.isSelected(), | ||||||
|                     timeStart.getValue().toString(), |                     textStart.getText(), | ||||||
|                     timeEnd.getValue().toString(), |                     textEnd.getText(), | ||||||
|                     datePickerDate.getValue().atStartOfDay(), |                     datePickerDate.getValue().atStartOfDay(), | ||||||
|                     (int) DataController.USER_ID |                     (int) DataController.USER_ID | ||||||
|             ); |             ); | ||||||
|   | |||||||
| @@ -12,13 +12,17 @@ import java.util.Objects; | |||||||
| public class MainApplication extends Application { | public class MainApplication extends Application { | ||||||
|     @Override |     @Override | ||||||
|     public void start(Stage stage) throws IOException { |     public void start(Stage stage) throws IOException { | ||||||
|         FXMLLoader fxmlLoader = new FXMLLoader(MainApplication.class.getResource("main-view.fxml")); |                                                                                     //wieder ändern zu main-view.fxml | ||||||
|  |         FXMLLoader fxmlLoader = new FXMLLoader(MainApplication.class.getResource("../users/create-user.fxml")); | ||||||
|  |  | ||||||
|         Scene scene = new Scene(fxmlLoader.load(), 1200, 700); |         Scene scene = new Scene(fxmlLoader.load(), 1200, 700); | ||||||
|         scene.getStylesheets().add(Objects.requireNonNull( |         scene.getStylesheets().add(Objects.requireNonNull( | ||||||
|                 MainApplication.class.getResource("main-view.css")).toExternalForm()); |                                                     //wieder ändern zu main-view.css | ||||||
|  |                 MainApplication.class.getResource("../users/create-user.css")).toExternalForm()); | ||||||
|         stage.setTitle("SharePlaner"); |         stage.setTitle("SharePlaner"); | ||||||
|         stage.setScene(scene); |         stage.setScene(scene); | ||||||
|  |         //wieder löschen | ||||||
|  |         stage.show(); | ||||||
|  |  | ||||||
|         FXMLLoader fxmlLoaderLogin = new FXMLLoader(MainApplication.class.getResource("../users/login.fxml")); |         FXMLLoader fxmlLoaderLogin = new FXMLLoader(MainApplication.class.getResource("../users/login.fxml")); | ||||||
|         Scene sceneLogin = new Scene(fxmlLoaderLogin.load(), 650, 500); |         Scene sceneLogin = new Scene(fxmlLoaderLogin.load(), 650, 500); | ||||||
|   | |||||||
| @@ -1,11 +1,13 @@ | |||||||
| package main; | package main; | ||||||
|  |  | ||||||
|  | import javafx.event.ActionEvent; | ||||||
|  | import javafx.event.EventHandler; | ||||||
| import javafx.fxml.FXML; | import javafx.fxml.FXML; | ||||||
| import javafx.fxml.FXMLLoader; | import javafx.fxml.FXMLLoader; | ||||||
| import javafx.geometry.Pos; | import javafx.geometry.Pos; | ||||||
| import javafx.scene.Scene; | import javafx.scene.Scene; | ||||||
| import customUI.Button; | import javafx.scene.control.Button; | ||||||
| import customUI.Label; | import javafx.scene.control.Label; | ||||||
| import javafx.scene.control.ScrollPane; | import javafx.scene.control.ScrollPane; | ||||||
| import javafx.scene.layout.GridPane; | import javafx.scene.layout.GridPane; | ||||||
| import javafx.scene.layout.HBox; | import javafx.scene.layout.HBox; | ||||||
| @@ -28,7 +30,7 @@ public class MainController { | |||||||
|     private GridPane calendarGrid; |     private GridPane calendarGrid; | ||||||
|  |  | ||||||
|     @FXML |     @FXML | ||||||
|     private javafx.scene.control.Label LabelMonth; |     private Label LabelMonth; | ||||||
|  |  | ||||||
|     private final String[] dayNames = {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"}; |     private final String[] dayNames = {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"}; | ||||||
|     private final Label[] dayLabel = new Label[7]; |     private final Label[] dayLabel = new Label[7]; | ||||||
| @@ -108,7 +110,7 @@ public class MainController { | |||||||
|     private void createWeek() { |     private void createWeek() { | ||||||
|         for (int i = 0; i < 7; i++) { |         for (int i = 0; i < 7; i++) { | ||||||
|             Label label = new Label(); |             Label label = new Label(); | ||||||
|             label.setTextValue(dayNames[i]); |             label.setText(dayNames[i]); | ||||||
|             label.setMaxHeight(Double.MAX_VALUE); |             label.setMaxHeight(Double.MAX_VALUE); | ||||||
|             label.setMaxWidth(Double.MAX_VALUE); |             label.setMaxWidth(Double.MAX_VALUE); | ||||||
|             label.getStyleClass().add("labelDays"); |             label.getStyleClass().add("labelDays"); | ||||||
| @@ -140,31 +142,14 @@ public class MainController { | |||||||
|         HBox btnHBox = new HBox(); |         HBox btnHBox = new HBox(); | ||||||
|         btnHBox.setAlignment(Pos.BOTTOM_RIGHT); |         btnHBox.setAlignment(Pos.BOTTOM_RIGHT); | ||||||
|         Button deleteBtn = new Button(); |         Button deleteBtn = new Button(); | ||||||
|         deleteBtn.setTextValue(" X "); |         deleteBtn.setText(" X "); | ||||||
|         deleteBtn.setOnAction(e -> { |         deleteBtn.setOnAction(e -> { | ||||||
|             DataController dataController = new DataController(); |             DataController dataController = new DataController(); | ||||||
|             dataController.deleteEvent(event.getId()); |             dataController.deleteEvent(event.getId()); | ||||||
|             updateEvents(); |             updateEvents(); | ||||||
|         }); |         }); | ||||||
|         Button editBtn = new Button(); |         Button editBtn = new Button(); | ||||||
|         editBtn.setTextValue("edit"); |         editBtn.setText("edit"); | ||||||
|         editBtn.setOnAction(event1 -> { |  | ||||||
|             try { |  | ||||||
|                 FXMLLoader fxmlLoader = new FXMLLoader( |  | ||||||
|                         MainApplication.class.getResource("edit-event.fxml")); |  | ||||||
|                 Scene scene = new Scene(fxmlLoader.load(), 650, 650); |  | ||||||
|                 scene.getStylesheets().add(Objects.requireNonNull( |  | ||||||
|                         MainApplication.class.getResource("create-event.css")).toExternalForm()); |  | ||||||
|                 Stage stage = new Stage(); |  | ||||||
|                 stage.setTitle("Termin bearbeiten"); |  | ||||||
|                 stage.setScene(scene); |  | ||||||
|                 stage.initModality(Modality.APPLICATION_MODAL); |  | ||||||
|                 stage.setResizable(false); |  | ||||||
|                 stage.showAndWait(); |  | ||||||
|             } catch (IOException e) { |  | ||||||
|                 e.printStackTrace(); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|         btnHBox.getChildren().add(editBtn); |         btnHBox.getChildren().add(editBtn); | ||||||
|         btnHBox.getChildren().add(deleteBtn); |         btnHBox.getChildren().add(deleteBtn); | ||||||
|         vBox.getChildren().add(btnHBox); |         vBox.getChildren().add(btnHBox); | ||||||
| @@ -182,6 +167,12 @@ public class MainController { | |||||||
|         Label typeLabel = new Label("Wer: " + event.getOwnerName()); |         Label typeLabel = new Label("Wer: " + event.getOwnerName()); | ||||||
|         vBox.getChildren().add(typeLabel); |         vBox.getChildren().add(typeLabel); | ||||||
|  |  | ||||||
|  |         /* | ||||||
|  |         Ä, ä 		\u00c4, \u00e4 | ||||||
|  |         Ö, ö 		\u00d6, \u00f6 | ||||||
|  |         Ü, ü 		\u00dc, \u00fc | ||||||
|  |         ß 		    \u00df | ||||||
|  |          */ | ||||||
|         Label prioLabel = new Label("Priorit\u00e4t: " + event.getPriority()); |         Label prioLabel = new Label("Priorit\u00e4t: " + event.getPriority()); | ||||||
|         vBox.getChildren().add(prioLabel); |         vBox.getChildren().add(prioLabel); | ||||||
|  |  | ||||||
| @@ -220,7 +211,7 @@ public class MainController { | |||||||
|         weekStartDateTime = now.plusDays(weekOffset * 7L - dayOfWeek + 1); |         weekStartDateTime = now.plusDays(weekOffset * 7L - dayOfWeek + 1); | ||||||
|  |  | ||||||
|         for (int i = 0; i < 7; i++) { |         for (int i = 0; i < 7; i++) { | ||||||
|             dayLabel[i].setTextValue(dayFormatter.format(weekStartDateTime.plusDays(i))); |             dayLabel[i].setText(dayFormatter.format(weekStartDateTime.plusDays(i))); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         LabelMonth.setText(dateFormatter.format(weekStartDateTime)); |         LabelMonth.setText(dateFormatter.format(weekStartDateTime)); | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								client/app/src/main/java/users/CreateUserController.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								client/app/src/main/java/users/CreateUserController.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | package users; | ||||||
|  |  | ||||||
|  | import javafx.event.ActionEvent; | ||||||
|  | import javafx.scene.Node; | ||||||
|  | import javafx.scene.control.CheckBox; | ||||||
|  | import javafx.scene.control.Label; | ||||||
|  | import javafx.scene.control.TextField; | ||||||
|  | import javafx.stage.Stage; | ||||||
|  |  | ||||||
|  | import java.util.Objects; | ||||||
|  |  | ||||||
|  | public class CreateUserController { | ||||||
|  |  | ||||||
|  |     public TextField textName; | ||||||
|  |     public TextField textPassword; | ||||||
|  |     public TextField textPasswordSecond; | ||||||
|  |     public CheckBox checkBoxIsAdmin; | ||||||
|  |     public Label labelErrorName; | ||||||
|  |     public Label labelErrorPw; | ||||||
|  |  | ||||||
|  |     protected void createUser(ActionEvent event) { | ||||||
|  |         if (textName.getText().trim().isEmpty()) { | ||||||
|  |             labelErrorName.setText("Bitte Usernamen eingeben!"); | ||||||
|  |             labelErrorPw.setText(""); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (textPassword.getText().trim().isEmpty()) { | ||||||
|  |             labelErrorName.setText(""); | ||||||
|  |             labelErrorPw.setText("Bitte Passwort eingeben!"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (Objects.equals(textPassword.getText(), textPasswordSecond.getText())){ | ||||||
|  |             labelErrorName.setText(""); | ||||||
|  |             labelErrorPw.setText("Passwörter stimmen nicht überein!"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); | ||||||
|  |         stage.close(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -44,8 +44,3 @@ Label{ | |||||||
|     -fx-wrap-text: true; |     -fx-wrap-text: true; | ||||||
|     -fx-font-size: 16px; |     -fx-font-size: 16px; | ||||||
| } | } | ||||||
|  |  | ||||||
| .timePicker{ |  | ||||||
|     -fx-background-color: white; |  | ||||||
|     -fx-max-width: 200px; |  | ||||||
| } |  | ||||||
| @@ -5,7 +5,7 @@ | |||||||
|  |  | ||||||
| <?import javafx.collections.FXCollections?> | <?import javafx.collections.FXCollections?> | ||||||
| <?import java.lang.String?> | <?import java.lang.String?> | ||||||
| <GridPane fx:id="mainGrid" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" | <GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" | ||||||
|           fx:controller="main.CreateEventController"> |           fx:controller="main.CreateEventController"> | ||||||
|  |  | ||||||
|     <columnConstraints> |     <columnConstraints> | ||||||
| @@ -23,23 +23,26 @@ | |||||||
|         <RowConstraints vgrow="ALWAYS"/> |         <RowConstraints vgrow="ALWAYS"/> | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |         <RowConstraints vgrow="ALWAYS"/> | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |         <RowConstraints vgrow="ALWAYS"/> | ||||||
|  |         <RowConstraints vgrow="ALWAYS"/> | ||||||
|     </rowConstraints> |     </rowConstraints> | ||||||
|  |  | ||||||
|     <Label styleClass="mainLabel">Termin anlegen</Label> |     <Label styleClass="mainLabel">Termin anlegen</Label> | ||||||
|  |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="1">Titel:</Label> |     <Label styleClass="inputLabel" GridPane.rowIndex="1">Datum:</Label> | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="2">Datum:</Label> |     <Label styleClass="inputLabel" GridPane.rowIndex="2">Titel:</Label> | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="3">Von:</Label> |     <Label styleClass="inputLabel" GridPane.rowIndex="3">Von:</Label> | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="4">Bis:</Label> |     <Label styleClass="inputLabel" GridPane.rowIndex="4">Bis:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="5">Typ:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="6">Priorität:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="7">Ganztägig:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="8">Privat:</Label> | ||||||
|  |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="5">Priorität:</Label> |     <DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/> | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="6">Ganztägig:</Label> |     <TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="400" minWidth="400"/> | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="7">Privat:</Label> |     <TextField fx:id="textStart" GridPane.columnIndex="1" GridPane.rowIndex="3" maxWidth="400" minWidth="400"/> | ||||||
|  |     <TextField fx:id="textEnd" GridPane.columnIndex="1" GridPane.rowIndex="4" maxWidth="400" minWidth="400"/> | ||||||
|     <TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/> |     <ComboBox fx:id="ComboBoxTyp" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="400" minWidth="400"/> | ||||||
|     <DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/> |     <ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="6" maxWidth="200" minWidth="200"> | ||||||
|  |  | ||||||
|     <ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200"> |  | ||||||
|         <items> |         <items> | ||||||
|             <FXCollections fx:factory="observableArrayList"> |             <FXCollections fx:factory="observableArrayList"> | ||||||
|                 <String fx:value="gering"/> |                 <String fx:value="gering"/> | ||||||
| @@ -48,11 +51,11 @@ | |||||||
|             </FXCollections> |             </FXCollections> | ||||||
|         </items> |         </items> | ||||||
|     </ComboBox> |     </ComboBox> | ||||||
|     <CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/> |     <CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="7"/> | ||||||
|     <CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/> |     <CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="8"/> | ||||||
|     <Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="8"/> |     <Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="9"/> | ||||||
|  |  | ||||||
|     <HBox GridPane.columnIndex="1" GridPane.rowIndex="9" GridPane.columnSpan="2" alignment="CENTER_RIGHT"> |     <HBox GridPane.columnIndex="1" GridPane.rowIndex="10" GridPane.columnSpan="2" alignment="CENTER_RIGHT"> | ||||||
|         <Button onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</Button> |         <Button onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</Button> | ||||||
|         <Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Anlegen</Button> |         <Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Anlegen</Button> | ||||||
|     </HBox> |     </HBox> | ||||||
|   | |||||||
| @@ -1,60 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||||
|  |  | ||||||
| <?import javafx.scene.control.*?> |  | ||||||
| <?import javafx.scene.layout.*?> |  | ||||||
| <?import javafx.collections.FXCollections?> |  | ||||||
| <?import java.lang.String?> |  | ||||||
|  |  | ||||||
| <GridPane fx:id="mainGrid" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" |  | ||||||
|           fx:controller="main.CreateEventController"> |  | ||||||
|  |  | ||||||
|     <columnConstraints> |  | ||||||
|         <ColumnConstraints/> |  | ||||||
|         <ColumnConstraints/> |  | ||||||
|         <ColumnConstraints/> |  | ||||||
|     </columnConstraints> |  | ||||||
|     <rowConstraints> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|         <RowConstraints vgrow="ALWAYS"/> |  | ||||||
|     </rowConstraints> |  | ||||||
|  |  | ||||||
|     <Label styleClass="mainLabel">Termin bearbeiten</Label> |  | ||||||
|  |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="1">Titel:</Label> |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="2">Datum:</Label> |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="3">Von:</Label> |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="4">Bis:</Label> |  | ||||||
|  |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="5">Priorität:</Label> |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="6">Ganztägig:</Label> |  | ||||||
|     <Label styleClass="inputLabel" GridPane.rowIndex="7">Privat:</Label> |  | ||||||
|  |  | ||||||
|     <TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/> |  | ||||||
|     <DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/> |  | ||||||
|  |  | ||||||
|     <ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200"> |  | ||||||
|         <items> |  | ||||||
|             <FXCollections fx:factory="observableArrayList"> |  | ||||||
|                 <String fx:value="gering"/> |  | ||||||
|                 <String fx:value="mittel"/> |  | ||||||
|                 <String fx:value="hoch"/> |  | ||||||
|             </FXCollections> |  | ||||||
|         </items> |  | ||||||
|     </ComboBox> |  | ||||||
|     <CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/> |  | ||||||
|     <CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/> |  | ||||||
|     <Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="8"/> |  | ||||||
|  |  | ||||||
|     <HBox GridPane.columnIndex="1" GridPane.rowIndex="9" GridPane.columnSpan="2" alignment="CENTER_RIGHT"> |  | ||||||
|         <Button onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</Button> |  | ||||||
|         <Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Speichern</Button> |  | ||||||
|     </HBox> |  | ||||||
|  |  | ||||||
| </GridPane> |  | ||||||
							
								
								
									
										1
									
								
								client/app/src/main/resources/users/create-user.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								client/app/src/main/resources/users/create-user.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								client/app/src/main/resources/users/create-user.fxml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								client/app/src/main/resources/users/create-user.fxml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  |  | ||||||
|  | <?import javafx.scene.control.*?> | ||||||
|  | <?import javafx.scene.layout.*?> | ||||||
|  | <GridPane xmlns="http://javafx.com/javafx" | ||||||
|  |           xmlns:fx="http://javafx.com/fxml" | ||||||
|  |           fx:controller="users.CreateUserController"> | ||||||
|  |     <columnConstraints> | ||||||
|  |         <ColumnConstraints/> | ||||||
|  |         <ColumnConstraints/> | ||||||
|  |         <ColumnConstraints/> | ||||||
|  |         <ColumnConstraints/> | ||||||
|  |     </columnConstraints> | ||||||
|  |     <rowConstraints> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |         <RowConstraints vgrow="ALWAYS" /> | ||||||
|  |     </rowConstraints> | ||||||
|  |  | ||||||
|  |     <Label styleClass="mainLabel" GridPane.columnIndex="2" GridPane.columnSpan="2" >User anlegen</Label> | ||||||
|  |  | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="1" GridPane.columnIndex="1">Name:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="3" GridPane.columnIndex="1">Passwort:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="4" GridPane.columnIndex="1">Passwort wiederholen:</Label> | ||||||
|  |     <Label styleClass="inputLabel" GridPane.rowIndex="6" GridPane.columnIndex="1">Admin:</Label> | ||||||
|  |  | ||||||
|  |     <TextField fx:id="textName" GridPane.columnIndex="2" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/> | ||||||
|  |     <TextField fx:id="textPassword" GridPane.columnIndex="2" GridPane.rowIndex="3" maxWidth="400" minWidth="400"/> | ||||||
|  |     <TextField fx:id="textPasswordSecond" GridPane.columnIndex="2" GridPane.rowIndex="4" maxWidth="400" minWidth="400"/> | ||||||
|  |  | ||||||
|  |     <CheckBox fx:id="checkBoxIsAdmin" GridPane.columnIndex="2" GridPane.rowIndex="6"/> | ||||||
|  |  | ||||||
|  |     <Label fx:id="labelErrorName" GridPane.columnIndex="3" GridPane.rowIndex="1"/> | ||||||
|  |     <Label fx:id="labelErrorPw" GridPane.columnIndex="3" GridPane.rowIndex="3"/> | ||||||
|  | </GridPane> | ||||||
|  |  | ||||||
| @@ -16,12 +16,11 @@ public class DataController { | |||||||
|  |  | ||||||
|     public static long USER_ID = -1; |     public static long USER_ID = -1; | ||||||
|  |  | ||||||
|     private static final String ALL_EVENTS_ENDPOINT = "http://localhost:8080/event/all"; |     private static final String ALL_EVENTS_ENDPOINT = "http://localhost:8080/vpr/all-events"; | ||||||
|     private static final String ADD_EVENT_ENDPOINT = "http://localhost:8080/event/add"; |     private static final String ALL_USERS_ENDPOINT = "http://localhost:8080/vpr/all-users"; | ||||||
|     private static final String DELETE_EVENT_ENDPOINT = "http://localhost:8080/event/del"; |     private static final String ADD_EVENT_ENDPOINT = "http://localhost:8080/vpr/add-event"; | ||||||
|  |     private static final String DELETE_EVENT_ENDPOINT = "http://localhost:8080/vpr/del-event"; | ||||||
|     private static final String LOGIN_ENDPOINT = "http://localhost:8080/user/login"; |     private static final String LOGIN_ENDPOINT = "http://localhost:8080/vpr/login"; | ||||||
|     private static final String ALL_USERS_ENDPOINT = "http://localhost:8080/user/all"; |  | ||||||
|  |  | ||||||
|     private final HttpRequest httpRequest; |     private final HttpRequest httpRequest; | ||||||
|  |  | ||||||
| @@ -34,8 +33,7 @@ public class DataController { | |||||||
|             USER_ID = Long.parseLong(httpRequest.sendPostRequest( |             USER_ID = Long.parseLong(httpRequest.sendPostRequest( | ||||||
|                     LOGIN_ENDPOINT, |                     LOGIN_ENDPOINT, | ||||||
|                     "login=" + username |                     "login=" + username | ||||||
|                             + "&password=" + password, |                             + "&password=" + password | ||||||
|                     false |  | ||||||
|             )); |             )); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
|             e.printStackTrace(); |             e.printStackTrace(); | ||||||
| @@ -46,7 +44,7 @@ public class DataController { | |||||||
|  |  | ||||||
|     public void createEvent(Event event) { |     public void createEvent(Event event) { | ||||||
|         try { |         try { | ||||||
|             System.out.println(httpRequest.sendPostRequest(ADD_EVENT_ENDPOINT, event.getAsUrlParam(), true)); |             System.out.println(httpRequest.sendPostRequest(ADD_EVENT_ENDPOINT, event.getAsUrlParam())); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
|             throw new RuntimeException("Es konnte keine Verbindung mit dem Server hergestellt werden."); |             throw new RuntimeException("Es konnte keine Verbindung mit dem Server hergestellt werden."); | ||||||
|         } |         } | ||||||
| @@ -54,7 +52,7 @@ public class DataController { | |||||||
|  |  | ||||||
|     public void deleteEvent(int eventId) { |     public void deleteEvent(int eventId) { | ||||||
|         try { |         try { | ||||||
|             System.out.println(httpRequest.sendPostRequest(DELETE_EVENT_ENDPOINT, "eventId=" + eventId, true)); |             System.out.println(httpRequest.sendPostRequest(DELETE_EVENT_ENDPOINT, "eventId=" + eventId)); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
|             e.printStackTrace(); |             e.printStackTrace(); | ||||||
|         } |         } | ||||||
| @@ -64,7 +62,7 @@ public class DataController { | |||||||
|         ArrayList<Event> eventList = new ArrayList<>(); |         ArrayList<Event> eventList = new ArrayList<>(); | ||||||
|  |  | ||||||
|         try { |         try { | ||||||
|             String jsonResponse = httpRequest.sendPostRequest(ALL_EVENTS_ENDPOINT, "userId=" + USER_ID, true); |             String jsonResponse = httpRequest.sendPostRequest(ALL_EVENTS_ENDPOINT, "userId=" + USER_ID); | ||||||
|             System.out.println(jsonResponse); |             System.out.println(jsonResponse); | ||||||
|  |  | ||||||
|             ObjectMapper objectMapper = new ObjectMapper(); |             ObjectMapper objectMapper = new ObjectMapper(); | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ package res; | |||||||
|  |  | ||||||
| import com.sun.jdi.event.StepEvent; | import com.sun.jdi.event.StepEvent; | ||||||
|  |  | ||||||
| import java.nio.charset.StandardCharsets; |  | ||||||
| import java.time.Duration; | import java.time.Duration; | ||||||
| import java.time.LocalDate; | import java.time.LocalDate; | ||||||
| import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||||
| @@ -67,40 +66,21 @@ public class Event { | |||||||
|                  String end, |                  String end, | ||||||
|                  LocalDateTime date, |                  LocalDateTime date, | ||||||
|                  int ownerId |                  int ownerId | ||||||
|     ) throws IllegalArgumentException{ |     ) throws IllegalArgumentException { | ||||||
|         if(name.length() < 3){ |         if (name.length() < 3) { | ||||||
|             throw new IllegalArgumentException("Der Name muss eine L\u00e4nge von 3 haben."); |             throw new IllegalArgumentException("Der Name muss eine L\u00e4nge von 3 haben."); | ||||||
|         } |         } | ||||||
|         Pattern pattern = Pattern.compile("[A-Za-z\u00e4\u00f6\u00fc\u00c4\u00d6\u00dc\u00df0-9 =!?+*/$.:,;_<>()-]*"); |         Pattern pattern = Pattern.compile("[A-Za-zÄÖÜäöü0-9 =!?+*/$%€.:,;_<>()-]*"); | ||||||
|         Matcher matcher = pattern.matcher(name); |         Matcher matcher = pattern.matcher(name); | ||||||
|         if(!matcher.matches()){ |         if (!matcher.matches()) { | ||||||
|             System.out.println(name); |             throw new IllegalArgumentException("Der Name Darf nur aus Zahlen, Buchstaben und " + | ||||||
|  |                     "folgenden Sonderzeichen bestehen: =!?+*/$%€.:,;_ <>()-"); | ||||||
|             byte[] bytes = name.getBytes(StandardCharsets.UTF_16); |  | ||||||
|  |  | ||||||
|             String utf8EncodedString = new String(bytes, StandardCharsets.UTF_16); |  | ||||||
|             System.out.println(utf8EncodedString); |  | ||||||
|  |  | ||||||
|             for (char c : (name).toCharArray()) { |  | ||||||
|                 System.out.print(c + " " + (int)c + ", "); |  | ||||||
|         } |         } | ||||||
|             System.out.println(); |         if (priority < 0) { | ||||||
|             for (char c : (name).toCharArray()) { |  | ||||||
|                 System.out.print(c + " " + (int)c + ", "); |  | ||||||
|             } |  | ||||||
|             System.out.println(); |  | ||||||
|             for (char c : ("TäöüÄÖÜ").toCharArray()) { |  | ||||||
|                 System.out.print(c + " " + (int)c + ", "); |  | ||||||
|             } |  | ||||||
|             System.out.println(); |  | ||||||
|  |  | ||||||
|             throw new IllegalArgumentException("Der Name darf nur aus Zahlen, Buchstaben und folgenden Sonderzeichen bestehen: \u00e4\u00f6\u00fc \u00c4\u00d6\u00dc \u00df =!?+*/$.:,;_ <>()-"); |  | ||||||
|         } |  | ||||||
|         if(priority < 0){ |  | ||||||
|             throw new IllegalArgumentException("Bitte eine Priorit\u00e4t w\u00e4hlen."); |             throw new IllegalArgumentException("Bitte eine Priorit\u00e4t w\u00e4hlen."); | ||||||
|         } |         } | ||||||
|         LocalDateTime today = LocalDateTime.now().toLocalDate().atStartOfDay(); |         LocalDateTime today = LocalDateTime.now().toLocalDate().atStartOfDay(); | ||||||
|         if(Duration.between(today, date).isNegative()){ |         if (Duration.between(today, date).isNegative()) { | ||||||
|             throw new IllegalArgumentException("Das Datum muss in der Zukunft liegen."); |             throw new IllegalArgumentException("Das Datum muss in der Zukunft liegen."); | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -127,7 +107,7 @@ public class Event { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void setName(String name) { |     public void setName(String name) { | ||||||
|         this.name = convertToASCII(name); |         this.name = name; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public int getPriority() { |     public int getPriority() { | ||||||
| @@ -213,9 +193,4 @@ public class Event { | |||||||
|                 "&isFullDay=" + isFullDay() + |                 "&isFullDay=" + isFullDay() + | ||||||
|                 "&isPrivate=" + isPrivate(); |                 "&isPrivate=" + isPrivate(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private String convertToASCII(String s){ |  | ||||||
|         byte[] germanBytes = s.getBytes(); |  | ||||||
|         return new String(germanBytes, StandardCharsets.US_ASCII); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,23 +9,10 @@ import java.nio.charset.StandardCharsets; | |||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
|  |  | ||||||
| public class HttpRequest { | public class HttpRequest { | ||||||
|     public String sendPostRequest(String urlString, String urlParameters, boolean sendAuth) throws Exception { |     public String sendPostRequest(String urlString, String urlParameters) throws Exception { | ||||||
|         byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8); |         byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8); | ||||||
|         int postDataLength = postData.length; |         int postDataLength = postData.length; | ||||||
|  |  | ||||||
|         /* |  | ||||||
|         URL url = new URL("http://test.de:8080/event/add"); |  | ||||||
|         HttpURLConnection http = (HttpURLConnection)url.openConnection(); |  | ||||||
|         http.setRequestMethod("POST"); |  | ||||||
|         http.setDoOutput(true); |  | ||||||
|         http.setRequestProperty("Accept", "application/json"); |  | ||||||
|         http.setRequestProperty("Authorization", "Bearer {token}"); |  | ||||||
|         http.setRequestProperty("Content-Type", ""); |  | ||||||
|         http.setRequestProperty("Content-Length", "0"); |  | ||||||
|  |  | ||||||
|         System.out.println(http.getResponseCode() + " " + http.getResponseMessage()); |  | ||||||
|         http.disconnect(); |  | ||||||
|          */ |  | ||||||
|         URL url = new URL(urlString); |         URL url = new URL(urlString); | ||||||
|         HttpURLConnection con = (HttpURLConnection) url.openConnection(); |         HttpURLConnection con = (HttpURLConnection) url.openConnection(); | ||||||
|  |  | ||||||
| @@ -36,12 +23,6 @@ public class HttpRequest { | |||||||
|         con.setRequestProperty("charset", "utf-8"); |         con.setRequestProperty("charset", "utf-8"); | ||||||
|         con.setRequestProperty("Content-Length", Integer.toString(postDataLength)); |         con.setRequestProperty("Content-Length", Integer.toString(postDataLength)); | ||||||
|         con.setUseCaches(false); |         con.setUseCaches(false); | ||||||
|  |  | ||||||
|         if(sendAuth){ |  | ||||||
|             con.setRequestProperty("Accept", "application/json"); |  | ||||||
|             con.setRequestProperty("Authorization", "Bearer {token}"); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) { |         try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) { | ||||||
|             wr.write(postData); |             wr.write(postData); | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user