From 30f2b793c213533589311b0a65482bd2cda7b2ce Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Thu, 5 Jun 2025 09:56:12 +0200 Subject: [PATCH] Erweiterungen --- .../de/assecutor/votianlt/model/Company.java | 17 ++++ .../de/assecutor/votianlt/model/Customer.java | 23 +++++ .../de/assecutor/votianlt/model/User.java | 28 ++++++ .../de/assecutor/votianlt/model/address.java | 12 --- .../votianlt/model/address_book.java | 13 --- .../model/address_book_addresses.java | 9 -- .../de/assecutor/votianlt/model/company.java | 17 ---- .../assecutor/votianlt/model/contractor.java | 11 --- .../votianlt/model/contractor_relation.java | 9 -- .../assecutor/votianlt/model/costcenter.java | 12 --- .../votianlt/model/costcenter_address.java | 8 -- .../de/assecutor/votianlt/model/country.java | 11 --- .../de/assecutor/votianlt/model/customer.java | 15 --- .../votianlt/model/customer_relation.java | 8 -- .../de/assecutor/votianlt/model/device.java | 15 --- .../votianlt/model/devices_invoice.java | 11 --- .../de/assecutor/votianlt/model/employee.java | 7 -- .../de/assecutor/votianlt/model/filter.java | 9 -- .../de/assecutor/votianlt/model/help.java | 7 -- .../de/assecutor/votianlt/model/invoice.java | 12 --- .../votianlt/model/invoice_credit.java | 13 --- .../java/de/assecutor/votianlt/model/job.java | 27 ------ .../java/de/assecutor/votianlt/model/log.java | 16 ---- .../assecutor/votianlt/model/log_invoice.java | 10 -- .../votianlt/model/notification.java | 10 -- .../votianlt/model/notification_info.java | 6 -- .../de/assecutor/votianlt/model/offer.java | 12 --- .../assecutor/votianlt/model/parameter.java | 11 --- .../assecutor/votianlt/model/price_table.java | 7 -- .../de/assecutor/votianlt/model/station.java | 16 ---- .../votianlt/model/transportorder.java | 16 ---- .../de/assecutor/votianlt/model/two_way.java | 8 -- .../de/assecutor/votianlt/model/user.java | 38 -------- .../de/assecutor/votianlt/model/vehicle.java | 18 ---- .../assecutor/votianlt/model/vlt_invoice.java | 21 ---- .../domain/AddCompanyRepository.java | 13 +++ .../service/AddCompanyService.java | 29 ++++++ .../add_company/ui/view/AddCompanyView.java | 96 +++++++++++++++++++ .../domain/AddCustomerRepository.java | 12 +++ .../service/AddCustomerService.java | 28 ++++++ .../add_customer/ui/view/AddCustomerView.java | 96 +++++++++++++++++++ .../pages/customers/domain/Customer.java | 19 ---- .../customers/domain/CustomerRepository.java | 1 + .../customers/service/CustomerService.java | 5 +- .../customers/ui/view/CustomersView.java | 40 ++------ .../pages/login/domain/LoginRepository.java | 16 ++++ .../pages/login/service/LoginService.java | 32 +++++++ .../pages/login/ui/view/LoginView.java | 66 +++++++++++++ .../register/domain/RegisterRepository.java | 6 +- .../register/service/RegisterService.java | 24 +---- .../pages/register/ui/view/RegisterView.java | 32 +++---- .../view/{OrdersView.java => StartView.java} | 12 +-- 52 files changed, 493 insertions(+), 517 deletions(-) create mode 100644 src/main/java/de/assecutor/votianlt/model/Company.java create mode 100644 src/main/java/de/assecutor/votianlt/model/Customer.java create mode 100644 src/main/java/de/assecutor/votianlt/model/User.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/address.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/address_book.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/address_book_addresses.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/company.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/contractor.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/contractor_relation.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/costcenter.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/costcenter_address.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/country.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/customer.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/customer_relation.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/device.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/devices_invoice.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/employee.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/filter.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/help.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/invoice.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/invoice_credit.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/job.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/log.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/log_invoice.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/notification.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/notification_info.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/offer.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/parameter.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/price_table.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/station.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/transportorder.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/two_way.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/user.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/vehicle.java delete mode 100644 src/main/java/de/assecutor/votianlt/model/vlt_invoice.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_company/domain/AddCompanyRepository.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_company/service/AddCompanyService.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_company/ui/view/AddCompanyView.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_customer/domain/AddCustomerRepository.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_customer/service/AddCustomerService.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/add_customer/ui/view/AddCustomerView.java delete mode 100644 src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/login/domain/LoginRepository.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/login/service/LoginService.java create mode 100644 src/main/java/de/assecutor/votianlt/pages/login/ui/view/LoginView.java rename src/main/java/de/assecutor/votianlt/pages/start/ui/view/{OrdersView.java => StartView.java} (83%) diff --git a/src/main/java/de/assecutor/votianlt/model/Company.java b/src/main/java/de/assecutor/votianlt/model/Company.java new file mode 100644 index 0000000..62f9b7b --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/Company.java @@ -0,0 +1,17 @@ +package de.assecutor.votianlt.model; + +import lombok.Data; +import org.bson.types.ObjectId; + +@Data +public class Company +{ + public ObjectId id; + + public String name; + public String street; + public String houseNumber; + public String addressAddition; + public String zip; + public String city; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/Customer.java b/src/main/java/de/assecutor/votianlt/model/Customer.java new file mode 100644 index 0000000..c54fa29 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/Customer.java @@ -0,0 +1,23 @@ +package de.assecutor.votianlt.model; + +import lombok.Data; +import org.bson.types.ObjectId; + +@Data +public class Customer +{ + private ObjectId id; + + public String title; + public String companyName; + public String firstname; + public String lastName; + public String telephone; + public String fax; + public String mail; + public String street; + public String houseNumber; + public String addressAddition; + public String zip; + public String city; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/User.java b/src/main/java/de/assecutor/votianlt/model/User.java new file mode 100644 index 0000000..9c5c0c6 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/model/User.java @@ -0,0 +1,28 @@ +package de.assecutor.votianlt.model; + +import lombok.Data; + +@Data +public class User +{ + public int usrId; + public int hqId; + public short type; + public String title; + public String name; + public String firstname; + public java.sql.Date birthdate; + public String email; + public String invitationEmail; + public String phone; + public String phone2; + public String fax; + public String password; + public byte isActivated; + public String activationCode; + public byte isEmailConfirmed; + public byte isPasswordLost; + public String passwordCode; + public int passwordTimestamp; + public long activationDate; +} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/address.java b/src/main/java/de/assecutor/votianlt/model/address.java deleted file mode 100644 index ed0e8d2..0000000 --- a/src/main/java/de/assecutor/votianlt/model/address.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.assecutor.votianlt.model; - -public class address { - public int ad_id; - public String ad_street; - public String ad_add; - public String ad_zipcode; - public String ad_city; - public String ad_country; - public String ad_lat; - public String ad_lng; -} diff --git a/src/main/java/de/assecutor/votianlt/model/address_book.java b/src/main/java/de/assecutor/votianlt/model/address_book.java deleted file mode 100644 index 5b26958..0000000 --- a/src/main/java/de/assecutor/votianlt/model/address_book.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.assecutor.votianlt.model; - -public class address_book { - public int adb_id; - public int usr_id; - public int ad_b_ad_id; - public String deliverHsno; - public String deliverCompany; - public String deliverTitle; - public String deliverFirstname; - public String deliverLastname; - public String deliverPhone; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java b/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java deleted file mode 100644 index 528136a..0000000 --- a/src/main/java/de/assecutor/votianlt/model/address_book_addresses.java +++ /dev/null @@ -1,9 +0,0 @@ -package de.assecutor.votianlt.model; - -public class address_book_addresses -{ - public int ad_b_ad_id; - public String deliverStreet; - public String deliverPlz; - public String deliverCity; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/company.java b/src/main/java/de/assecutor/votianlt/model/company.java deleted file mode 100644 index c17099d..0000000 --- a/src/main/java/de/assecutor/votianlt/model/company.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.assecutor.votianlt.model; - -public class company -{ - public int cmp_id; - public String cmp_comp; - public String cmp_comp2; - public String cmp_hsno; - public String cmp_Ustid; - public String cmp_Taxid; - public String cmp_Iban; - public String cmp_homepage; - public String votian_cmp_id; - public String votian_ad_id; - public String votian_tx_id; - public String votian_br_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/contractor.java b/src/main/java/de/assecutor/votianlt/model/contractor.java deleted file mode 100644 index a62dde5..0000000 --- a/src/main/java/de/assecutor/votianlt/model/contractor.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.assecutor.votianlt.model; - -public class contractor -{ - public int cr_id; - public int cmp_id; - public int usr_id; - public String votian_cr_id; - public String votian_cr_eid; - public String votian_hq_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/contractor_relation.java b/src/main/java/de/assecutor/votianlt/model/contractor_relation.java deleted file mode 100644 index c389a27..0000000 --- a/src/main/java/de/assecutor/votianlt/model/contractor_relation.java +++ /dev/null @@ -1,9 +0,0 @@ -package de.assecutor.votianlt.model; - -public class contractor_relation -{ - public int cr_r_id; - public int usr_id; - public int cr_id; - public String cr_filter_json; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/costcenter.java b/src/main/java/de/assecutor/votianlt/model/costcenter.java deleted file mode 100644 index c9044d6..0000000 --- a/src/main/java/de/assecutor/votianlt/model/costcenter.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.assecutor.votianlt.model; - -public class costcenter -{ - public int cs_id; - public int csc_id; - public String csc_comp; - public String csc_comp2; - public String csc_hsno; - public String csc_usr_name; - public String csc_usr_firstname; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/costcenter_address.java b/src/main/java/de/assecutor/votianlt/model/costcenter_address.java deleted file mode 100644 index cd94abd..0000000 --- a/src/main/java/de/assecutor/votianlt/model/costcenter_address.java +++ /dev/null @@ -1,8 +0,0 @@ -package de.assecutor.votianlt.model; - -public class costcenter_address -{ - public int csc_id; - public int ad_id; - public int adt_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/country.java b/src/main/java/de/assecutor/votianlt/model/country.java deleted file mode 100644 index c8b0e6f..0000000 --- a/src/main/java/de/assecutor/votianlt/model/country.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.assecutor.votianlt.model; - -public class country -{ - public String cou_iso_3; - public String cou_iso_no; - public String cou_mnemonic; - public String cou_name; - public String cou_iso_2; - public byte cou_continent; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/customer.java b/src/main/java/de/assecutor/votianlt/model/customer.java deleted file mode 100644 index 74822ca..0000000 --- a/src/main/java/de/assecutor/votianlt/model/customer.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.assecutor.votianlt.model; - -public class customer -{ - public int cs_id; - public int cmp_id; - public int csc_id; - public int emp_id; - public String votian_cs_id; - public String votian_cs_eid; - public String votian_cs_admin; - public String votian_hq_id; - public String votian_cs_id_parent; - public String votian_cs_id_related; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/customer_relation.java b/src/main/java/de/assecutor/votianlt/model/customer_relation.java deleted file mode 100644 index fd4070f..0000000 --- a/src/main/java/de/assecutor/votianlt/model/customer_relation.java +++ /dev/null @@ -1,8 +0,0 @@ -package de.assecutor.votianlt.model; - -public class customer_relation -{ - public int cs_r_id; - public int usr_id; - public int cr_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/device.java b/src/main/java/de/assecutor/votianlt/model/device.java deleted file mode 100644 index f2634c0..0000000 --- a/src/main/java/de/assecutor/votianlt/model/device.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.assecutor.votianlt.model; - -public class device -{ - public int d_id; - public int usr_id; - public int d_details; - public String d_name; - public int votian_dv_id; - public String device_name; - public String uuid; - public String code; - public int cust_id; - public int cust_acc_group; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/devices_invoice.java b/src/main/java/de/assecutor/votianlt/model/devices_invoice.java deleted file mode 100644 index c20b94a..0000000 --- a/src/main/java/de/assecutor/votianlt/model/devices_invoice.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.assecutor.votianlt.model; - -public class devices_invoice -{ - public int d_i_id; - public String d_i_create; - public String d_i_delete; - public int d_id; - public int vlt_i_id; - public int usr_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/employee.java b/src/main/java/de/assecutor/votianlt/model/employee.java deleted file mode 100644 index 297f762..0000000 --- a/src/main/java/de/assecutor/votianlt/model/employee.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.assecutor.votianlt.model; - -public class employee -{ - public int emp_id; - public int usr_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/filter.java b/src/main/java/de/assecutor/votianlt/model/filter.java deleted file mode 100644 index 33124fb..0000000 --- a/src/main/java/de/assecutor/votianlt/model/filter.java +++ /dev/null @@ -1,9 +0,0 @@ -package de.assecutor.votianlt.model; - -public class filter -{ - public int f_id; - public int f_type; - public String f_short; - public String f_status; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/help.java b/src/main/java/de/assecutor/votianlt/model/help.java deleted file mode 100644 index 0da9e4c..0000000 --- a/src/main/java/de/assecutor/votianlt/model/help.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.assecutor.votianlt.model; - -public class help -{ - public int h_id; - public String h_language; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/invoice.java b/src/main/java/de/assecutor/votianlt/model/invoice.java deleted file mode 100644 index 6626976..0000000 --- a/src/main/java/de/assecutor/votianlt/model/invoice.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.assecutor.votianlt.model; - -public class invoice -{ - public int i_id; - public int usr_id; - public int cr_id; - public String i_export_time; - public int i_create_date; - public String invoiceNumber; - public String fileName; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/invoice_credit.java b/src/main/java/de/assecutor/votianlt/model/invoice_credit.java deleted file mode 100644 index 87e6190..0000000 --- a/src/main/java/de/assecutor/votianlt/model/invoice_credit.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.assecutor.votianlt.model; - -public class invoice_credit -{ - public int i_c_id; - public String i_c_date; - public int usr_id; - public double i_c_amount; - public String purpose; - public String iban; - public String currency; - public double diff; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/job.java b/src/main/java/de/assecutor/votianlt/model/job.java deleted file mode 100644 index 0fbedf0..0000000 --- a/src/main/java/de/assecutor/votianlt/model/job.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.assecutor.votianlt.model; - -public class job -{ - public int jb_id; - public int cs_id; - public int cr_id; - public int jb_votian_id; - public java.sql.Date jb_ordertime; - public int jb_status; - public int jb_type; - public int jb_invoice_data; - public String useApp; - public String customerID; - public String datepickerPickup; - public String timepickerPickup; - public String datepickerDel; - public String timepickerDel; - public String remark; - public String price; - public String submit; - public String appUserID; - public String cargo_type; - public String cargo_weight; - public String cargo_volume; - public String jobdetail_instruction; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/log.java b/src/main/java/de/assecutor/votianlt/model/log.java deleted file mode 100644 index 860d1c4..0000000 --- a/src/main/java/de/assecutor/votianlt/model/log.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.assecutor.votianlt.model; - -public class log -{ - public int logo_id; - public String log_createtime; - public int hq_id; - public int jb_id; - public int usr_id; - public int cr_id; - public int cr_sid; - public int cs_id; - public int at_id; - public int pt_id; - public int emp_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/log_invoice.java b/src/main/java/de/assecutor/votianlt/model/log_invoice.java deleted file mode 100644 index 2ad0ef6..0000000 --- a/src/main/java/de/assecutor/votianlt/model/log_invoice.java +++ /dev/null @@ -1,10 +0,0 @@ -package de.assecutor.votianlt.model; - -public class log_invoice -{ - public int l_i_id; - public int i_id; - public String i_date; - public int i_export_time_1; - public String i_export_time_2; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/notification.java b/src/main/java/de/assecutor/votianlt/model/notification.java deleted file mode 100644 index 1301f9a..0000000 --- a/src/main/java/de/assecutor/votianlt/model/notification.java +++ /dev/null @@ -1,10 +0,0 @@ -package de.assecutor.votianlt.model; - -public class notification -{ - public int n_id; - public String n_date; - public int n_info_id; - public int usr_id; - public byte n_new; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/notification_info.java b/src/main/java/de/assecutor/votianlt/model/notification_info.java deleted file mode 100644 index ddbb33c..0000000 --- a/src/main/java/de/assecutor/votianlt/model/notification_info.java +++ /dev/null @@ -1,6 +0,0 @@ -package de.assecutor.votianlt.model; - -public class notification_info -{ - public int n_i_id; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/offer.java b/src/main/java/de/assecutor/votianlt/model/offer.java deleted file mode 100644 index 45daa2b..0000000 --- a/src/main/java/de/assecutor/votianlt/model/offer.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.assecutor.votianlt.model; - -public class offer -{ - public int o_id; - public int jb_id; - public int usr_id; - public int cr_id; - public java.sql.Date offer_time; - public String price; - public String remark; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/parameter.java b/src/main/java/de/assecutor/votianlt/model/parameter.java deleted file mode 100644 index 88c5ec2..0000000 --- a/src/main/java/de/assecutor/votianlt/model/parameter.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.assecutor.votianlt.model; - -public class parameter -{ - public int par_id; - public String par_key; - public int md_id; - public int hq_id; - public int emp_id; - public String par_value; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/price_table.java b/src/main/java/de/assecutor/votianlt/model/price_table.java deleted file mode 100644 index 44d8278..0000000 --- a/src/main/java/de/assecutor/votianlt/model/price_table.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.assecutor.votianlt.model; - -public class price_table -{ - public int pt_id; - public double pt_price; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/station.java b/src/main/java/de/assecutor/votianlt/model/station.java deleted file mode 100644 index abef876..0000000 --- a/src/main/java/de/assecutor/votianlt/model/station.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.assecutor.votianlt.model; - -public class station -{ - public int station_id; - public int jb_id; - public String station_type; - public int ad_id; - public int station_order; - public String station_name; - public String station_contact; - public String station_phone; - public java.sql.Date station_arrival_est; - public java.sql.Date station_departure_est; - public String instructions; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/transportorder.java b/src/main/java/de/assecutor/votianlt/model/transportorder.java deleted file mode 100644 index 7878e05..0000000 --- a/src/main/java/de/assecutor/votianlt/model/transportorder.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.assecutor.votianlt.model; - -public class transportorder -{ - public int tr_id; - public int jb_id; - public int usr_id; - public String tr_comment; - public String tr_state; - public String tr_driver_lat; - public String tr_driver_lng; - public String tr_driver_accuracy; - public String tr_driver_last_update; - public String tr_created; - public String tr_updated; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/two_way.java b/src/main/java/de/assecutor/votianlt/model/two_way.java deleted file mode 100644 index 30d8c7a..0000000 --- a/src/main/java/de/assecutor/votianlt/model/two_way.java +++ /dev/null @@ -1,8 +0,0 @@ -package de.assecutor.votianlt.model; - -public class two_way -{ - public int t_w_id; - public int usr_id; - public String t_w_secret; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/user.java b/src/main/java/de/assecutor/votianlt/model/user.java deleted file mode 100644 index a8695b3..0000000 --- a/src/main/java/de/assecutor/votianlt/model/user.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.assecutor.votianlt.model; - -public class user -{ - public int usr_id; - public int hq_id; - public short usr_type; - public String usr_title; - public String usr_name; - public String usr_firstname; - public java.sql.Date usr_birthdate; - public int ad_id; - public String usr_hsno; - public String usr_email; - public String usr_inv_email; - public String usr_phone; - public String usr_phone2; - public String usr_fax; - public String usr_account; - public String usr_password; - public String usr_modify; - public byte usr_is_activated; - public String usr_activation_code; - public byte usr_is_email_confirmed; - public String usr_code; - public int usr_code_timestamp; - public byte usr_is_password_lost; - public String usr_password_code; - public int usr_password_timestamp; - public byte usr_app; - public String votian_usr_id; - public String auth_customer; - public String auth_account; - public String auth_password; - public String auth_session_id; - public long activationDate; - public double balance; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/vehicle.java b/src/main/java/de/assecutor/votianlt/model/vehicle.java deleted file mode 100644 index 1e0cc0d..0000000 --- a/src/main/java/de/assecutor/votianlt/model/vehicle.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.assecutor.votianlt.model; - -public class vehicle -{ - public int vh_id; - public int usr_parent_id; - public int cr_id; - public int vh_details; - public int d_id; - public String title; - public String code; - public String votian_vht_id; - public String votian_vht_id_inv; - public String votian_cr_ar_jb_id; - public String votian_crvh_id; - public String votian_cr_id; - public String votian_crvh_sid; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java b/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java deleted file mode 100644 index 3029c0e..0000000 --- a/src/main/java/de/assecutor/votianlt/model/vlt_invoice.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.assecutor.votianlt.model; - -public class vlt_invoice -{ - public int vlt_i_id; - public int usr_id; - public String vlt_i_price; - public String vlt_i_date; - public int vlt_i_status; - public String vlt_i_html; - public String totalPriceNet; - public String totalPrice; - public String payedDays; - public String daysInMonth; - public String devicePrice; - public String basePrice; - public String systemVat; - public String basePricePayed; - public String vatPrice; - public String invoiceNumber; -} \ No newline at end of file diff --git a/src/main/java/de/assecutor/votianlt/pages/add_company/domain/AddCompanyRepository.java b/src/main/java/de/assecutor/votianlt/pages/add_company/domain/AddCompanyRepository.java new file mode 100644 index 0000000..06adcaa --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_company/domain/AddCompanyRepository.java @@ -0,0 +1,13 @@ +package de.assecutor.votianlt.pages.add_company.domain; + +import de.assecutor.votianlt.model.Company; +import de.assecutor.votianlt.model.Customer; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface AddCompanyRepository extends MongoRepository { + + // If you don't need a total row count, Slice is better than Page. + Slice findAllBy(Pageable pageable); +} diff --git a/src/main/java/de/assecutor/votianlt/pages/add_company/service/AddCompanyService.java b/src/main/java/de/assecutor/votianlt/pages/add_company/service/AddCompanyService.java new file mode 100644 index 0000000..d01abac --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_company/service/AddCompanyService.java @@ -0,0 +1,29 @@ +package de.assecutor.votianlt.pages.add_company.service; + +import de.assecutor.votianlt.model.Company; +import de.assecutor.votianlt.model.Customer; +import de.assecutor.votianlt.pages.add_company.domain.AddCompanyRepository; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Transactional(propagation = Propagation.REQUIRES_NEW) +public class AddCompanyService { + private final AddCompanyRepository addCompanyRepository; + + AddCompanyService(AddCompanyRepository addCompanyRepository) { + this.addCompanyRepository = addCompanyRepository; + } + + public List list(Pageable pageable) { + return addCompanyRepository.findAllBy(pageable).toList(); + } + + public void addCompany(Company company) { + addCompanyRepository.save(company); + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/add_company/ui/view/AddCompanyView.java b/src/main/java/de/assecutor/votianlt/pages/add_company/ui/view/AddCompanyView.java new file mode 100644 index 0000000..4355b87 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_company/ui/view/AddCompanyView.java @@ -0,0 +1,96 @@ +package de.assecutor.votianlt.pages.add_company.ui.view; + +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.html.Main; +import com.vaadin.flow.component.orderedlayout.FlexComponent; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.data.binder.Binder; +import com.vaadin.flow.data.binder.ValidationException; +import com.vaadin.flow.router.Menu; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.model.Company; +import de.assecutor.votianlt.pages.add_company.service.AddCompanyService; +import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; + +import java.time.Clock; + +@Route("add_company") +@PageTitle("Neuen Firma anlegen") +@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Neue Firma anlegen") +public class AddCompanyView extends Main { + private final AddCompanyService addCompanyService; + + TextField companyName; + TextField firstName; + TextField lastName; + TextField telephone; + TextField fax; + TextField mail; + TextField street; + TextField houseNumber; + TextField addressAddition; + TextField zip; + TextField city; + final Button submitButton; + + private final Binder binder = new Binder<>(Company.class); // Binder f + + public AddCompanyView(AddCompanyService addCompanyService, Clock clock) { + this.addCompanyService = addCompanyService; + + companyName = new TextField("Firmenname"); + companyName.setRequiredIndicatorVisible(true); + binder.forField(companyName) + .asRequired("Firmenname ist ein Pflichtfeld") // Pflichtfeldmeldung + .bind(Company::getName, Company::setName); + + firstName = new TextField("Vorname"); + lastName = new TextField("Nachname"); + telephone = new TextField("Telefonnummer"); + fax = new TextField("Faxnummer"); + mail = new TextField("E-Mail-Adresse"); + street = new TextField("Straße"); + houseNumber = new TextField("Hausnummer"); + addressAddition = new TextField("Adresszusatz"); + zip = new TextField("Postleitzahl"); + city = new TextField("Stadt"); + + // Setze den Button als primär + submitButton = new Button("Kunden anlegen", event -> submit()); + submitButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + + // Erstelle ein Div als Container (oder direkt ein Layout) + VerticalLayout formLayout = new VerticalLayout(); + formLayout.add(companyName, /*firstName, lastName, telephone, fax, mail, street, houseNumber, addressAddition, zip, city,*/ submitButton); + + // Zentriere die Inhalte vertikal und horizontal + formLayout.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); + formLayout.setSpacing(true); + formLayout.setSizeUndefined(); // Inhalt eng setzen + + setSizeFull(); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, + LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + + add(new ViewToolbar("Neuen Kunden anlegen")); + add(formLayout); + } + + private void submit() { + Company company = new Company(); + company.name = companyName.getValue(); + + try { + binder.writeBean(company); + + addCompanyService.addCompany(company); + + } catch (ValidationException e) { + System.err.println("Validierungsfehler: " + e.getMessage()); + } + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/add_customer/domain/AddCustomerRepository.java b/src/main/java/de/assecutor/votianlt/pages/add_customer/domain/AddCustomerRepository.java new file mode 100644 index 0000000..22c39cc --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_customer/domain/AddCustomerRepository.java @@ -0,0 +1,12 @@ +package de.assecutor.votianlt.pages.add_customer.domain; + +import de.assecutor.votianlt.model.Customer; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface AddCustomerRepository extends MongoRepository { + + // If you don't need a total row count, Slice is better than Page. + Slice findAllBy(Pageable pageable); +} diff --git a/src/main/java/de/assecutor/votianlt/pages/add_customer/service/AddCustomerService.java b/src/main/java/de/assecutor/votianlt/pages/add_customer/service/AddCustomerService.java new file mode 100644 index 0000000..4015d41 --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_customer/service/AddCustomerService.java @@ -0,0 +1,28 @@ +package de.assecutor.votianlt.pages.add_customer.service; + +import de.assecutor.votianlt.model.Customer; +import de.assecutor.votianlt.pages.add_customer.domain.AddCustomerRepository; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Transactional(propagation = Propagation.REQUIRES_NEW) +public class AddCustomerService { + private final AddCustomerRepository addCustomerRepository; + + AddCustomerService(AddCustomerRepository addCustomerRepository) { + this.addCustomerRepository = addCustomerRepository; + } + + public List list(Pageable pageable) { + return addCustomerRepository.findAllBy(pageable).toList(); + } + + public void addCustomer(Customer customer) { + addCustomerRepository.save(customer); + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/add_customer/ui/view/AddCustomerView.java b/src/main/java/de/assecutor/votianlt/pages/add_customer/ui/view/AddCustomerView.java new file mode 100644 index 0000000..04cb50a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/add_customer/ui/view/AddCustomerView.java @@ -0,0 +1,96 @@ +package de.assecutor.votianlt.pages.add_customer.ui.view; + +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.html.Main; +import com.vaadin.flow.component.orderedlayout.FlexComponent; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.data.binder.Binder; +import com.vaadin.flow.data.binder.ValidationException; +import com.vaadin.flow.router.Menu; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.model.Customer; +import de.assecutor.votianlt.pages.add_customer.service.AddCustomerService; +import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; + +import java.time.Clock; + +@Route("add_customer") +@PageTitle("Neuen Kunden anlegen") +@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Neuen Kunden anlegen") +public class AddCustomerView extends Main { + private final AddCustomerService addCustomerService; + + TextField companyName; + TextField firstName; + TextField lastName; + TextField telephone; + TextField fax; + TextField mail; + TextField street; + TextField houseNumber; + TextField addressAddition; + TextField zip; + TextField city; + final Button submitButton; + + private final Binder binder = new Binder<>(Customer.class); // Binder f + + public AddCustomerView(AddCustomerService todoService, Clock clock) { + this.addCustomerService = todoService; + + companyName = new TextField("Firmenname"); + companyName.setRequiredIndicatorVisible(true); + binder.forField(companyName) + .asRequired("Firmenname ist ein Pflichtfeld") // Pflichtfeldmeldung + .bind(Customer::getCompanyName, Customer::setCompanyName); + + firstName = new TextField("Vorname"); + lastName = new TextField("Nachname"); + telephone = new TextField("Telefonnummer"); + fax = new TextField("Faxnummer"); + mail = new TextField("E-Mail-Adresse"); + street = new TextField("Straße"); + houseNumber = new TextField("Hausnummer"); + addressAddition = new TextField("Adresszusatz"); + zip = new TextField("Postleitzahl"); + city = new TextField("Stadt"); + + // Setze den Button als primär + submitButton = new Button("Kunden anlegen", event -> submit()); + submitButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + + // Erstelle ein Div als Container (oder direkt ein Layout) + VerticalLayout formLayout = new VerticalLayout(); + formLayout.add(companyName, /*firstName, lastName, telephone, fax, mail, street, houseNumber, addressAddition, zip, city,*/ submitButton); + + // Zentriere die Inhalte vertikal und horizontal + formLayout.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); + formLayout.setSpacing(true); + formLayout.setSizeUndefined(); // Inhalt eng setzen + + setSizeFull(); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, + LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + + add(new ViewToolbar("Neuen Kunden anlegen")); + add(formLayout); + } + + private void submit() { + Customer customer = new Customer(); + customer.companyName = companyName.getValue(); + + try { + binder.writeBean(customer); + + addCustomerService.addCustomer(customer); + + } catch (ValidationException e) { + System.err.println("Validierungsfehler: " + e.getMessage()); + } + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java b/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java deleted file mode 100644 index beb8a5d..0000000 --- a/src/main/java/de/assecutor/votianlt/pages/customers/domain/Customer.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.assecutor.votianlt.pages.customers.domain; - -import lombok.Data; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.time.Instant; -import java.time.LocalDate; - -@Document(collection = "customer") -@Data -public class Customer { - private Long id; - - private String description; - - private Instant creationDate; - - private LocalDate dueDate; -} diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java b/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java index cb8b8da..1f31fcb 100644 --- a/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java +++ b/src/main/java/de/assecutor/votianlt/pages/customers/domain/CustomerRepository.java @@ -1,5 +1,6 @@ package de.assecutor.votianlt.pages.customers.domain; +import de.assecutor.votianlt.model.Customer; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.mongodb.repository.MongoRepository; diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java b/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java index 1d95802..63d7875 100644 --- a/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java +++ b/src/main/java/de/assecutor/votianlt/pages/customers/service/CustomerService.java @@ -1,6 +1,6 @@ package de.assecutor.votianlt.pages.customers.service; -import de.assecutor.votianlt.pages.customers.domain.Customer; +import de.assecutor.votianlt.model.Customer; import de.assecutor.votianlt.pages.customers.domain.CustomerRepository; import org.jspecify.annotations.Nullable; import org.springframework.data.domain.Pageable; @@ -30,9 +30,6 @@ public class CustomerService { throw new RuntimeException("This is for testing the error handler"); } var todo = new Customer(); - todo.setDescription(description); - todo.setCreationDate(clock.instant()); - todo.setDueDate(dueDate); todoRepository.save(todo); } diff --git a/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java b/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java index e38baf1..cf72eb1 100644 --- a/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java +++ b/src/main/java/de/assecutor/votianlt/pages/customers/ui/view/CustomersView.java @@ -1,25 +1,20 @@ package de.assecutor.votianlt.pages.customers.ui.view; +import com.vaadin.flow.component.UI; import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; -import com.vaadin.flow.component.datepicker.DatePicker; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.html.Main; -import com.vaadin.flow.component.notification.Notification; -import com.vaadin.flow.component.notification.NotificationVariant; import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.Menu; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.model.Customer; import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; -import de.assecutor.votianlt.pages.customers.domain.Customer; import de.assecutor.votianlt.pages.customers.service.CustomerService; import java.time.Clock; -import java.time.format.DateTimeFormatter; -import java.time.format.FormatStyle; -import java.util.Optional; import static com.vaadin.flow.spring.data.VaadinSpringDataHelpers.toSpringPageRequest; @@ -31,7 +26,6 @@ public class CustomersView extends Main { private final CustomerService todoService; final TextField description; - final DatePicker dueDate; final Button createBtn; final Grid todoGrid; @@ -39,45 +33,27 @@ public class CustomersView extends Main { this.todoService = todoService; description = new TextField(); - description.setPlaceholder("What do you want to do?"); - description.setAriaLabel("Task description"); + description.setPlaceholder("Suche"); description.setMaxLength(255); description.setMinWidth("20em"); - dueDate = new DatePicker(); - dueDate.setPlaceholder("Due date"); - dueDate.setAriaLabel("Due date"); - - createBtn = new Button("Create", event -> createTodo()); + createBtn = new Button("Kunde anlegen", event -> addCustomer()); createBtn.addThemeVariants(ButtonVariant.LUMO_PRIMARY); - var dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withZone(clock.getZone()) - .withLocale(getLocale()); - var dateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(getLocale()); - todoGrid = new Grid<>(); todoGrid.setItems(query -> todoService.list(toSpringPageRequest(query)).stream()); - todoGrid.addColumn(Customer::getDescription).setHeader("Description"); - todoGrid.addColumn(todo -> Optional.ofNullable(todo.getDueDate()).map(dateFormatter::format).orElse("Never")) - .setHeader("Due Date"); - todoGrid.addColumn(todo -> dateTimeFormatter.format(todo.getCreationDate())).setHeader("Creation Date"); + todoGrid.addColumn(Customer::getCompanyName).setHeader("Firmenname"); todoGrid.setSizeFull(); setSizeFull(); addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); - add(new ViewToolbar("Task List", ViewToolbar.group(description, dueDate, createBtn))); + add(new ViewToolbar("Kunden", ViewToolbar.group(description, createBtn))); add(todoGrid); } - private void createTodo() { - todoService.createTodo(description.getValue(), dueDate.getValue()); - todoGrid.getDataProvider().refreshAll(); - description.clear(); - dueDate.clear(); - Notification.show("Task added", 3000, Notification.Position.BOTTOM_END) - .addThemeVariants(NotificationVariant.LUMO_SUCCESS); + private void addCustomer() { + UI.getCurrent().navigate("add_customer"); } - } diff --git a/src/main/java/de/assecutor/votianlt/pages/login/domain/LoginRepository.java b/src/main/java/de/assecutor/votianlt/pages/login/domain/LoginRepository.java new file mode 100644 index 0000000..c66c79c --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/login/domain/LoginRepository.java @@ -0,0 +1,16 @@ +package de.assecutor.votianlt.pages.login.domain; + +import de.assecutor.votianlt.model.User; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Slice; +import org.springframework.data.mongodb.repository.MongoRepository; + +import java.util.Optional; + +public interface LoginRepository extends MongoRepository { + + // If you don't need a total row count, Slice is better than Page. + Slice findAllBy(Pageable pageable); + + Optional findByEmailAndPassword(String email, String password); +} diff --git a/src/main/java/de/assecutor/votianlt/pages/login/service/LoginService.java b/src/main/java/de/assecutor/votianlt/pages/login/service/LoginService.java new file mode 100644 index 0000000..1a7168a --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/login/service/LoginService.java @@ -0,0 +1,32 @@ +package de.assecutor.votianlt.pages.login.service; + +import com.vaadin.flow.component.notification.Notification; +import de.assecutor.votianlt.model.User; +import de.assecutor.votianlt.pages.login.domain.LoginRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Clock; +import java.util.Optional; + +@Service +@Transactional(propagation = Propagation.REQUIRES_NEW) +public class LoginService { + + private final LoginRepository loginRepository; + + LoginService(LoginRepository loginRepository, Clock clock) { + this.loginRepository = loginRepository; + } + + public Optional findUser(String mail, String password) { + var user = loginRepository.findByEmailAndPassword(mail, password); + + if (user.isEmpty()) { + Notification.show("Login failed", 3000, Notification.Position.BOTTOM_END); + } + + return user; + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/login/ui/view/LoginView.java b/src/main/java/de/assecutor/votianlt/pages/login/ui/view/LoginView.java new file mode 100644 index 0000000..327021b --- /dev/null +++ b/src/main/java/de/assecutor/votianlt/pages/login/ui/view/LoginView.java @@ -0,0 +1,66 @@ +package de.assecutor.votianlt.pages.login.ui.view; + +import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.html.Main; +import com.vaadin.flow.component.notification.Notification; +import com.vaadin.flow.component.notification.NotificationVariant; +import com.vaadin.flow.component.orderedlayout.FlexComponent; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import com.vaadin.flow.theme.lumo.LumoUtility; +import de.assecutor.votianlt.pages.login.service.LoginService; +import de.assecutor.votianlt.pages.register.service.RegisterService; +import de.assecutor.votianlt.util.Util; + +import java.io.Console; +import java.time.Clock; + +@Route("login") +@PageTitle("Bei VotianLT anmelden") +//@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Bei VotianLT registrieren") +public class LoginView extends Main { + private final LoginService loginService; + + TextField usernameField = new TextField("E-Mail-Adresse"); + TextField password1Field = new TextField("Passwort"); + Button submitButton = new Button("Registrieren"); + + public LoginView(LoginService loginService, Clock clock) { + this.loginService = loginService; + + // Setze den Button als primär + submitButton = new Button("Anmelden", event -> login()); + submitButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + + // Erstelle ein Div als Container (oder direkt ein Layout) + VerticalLayout formLayout = new VerticalLayout(); + formLayout.add(usernameField, password1Field, submitButton); + + // Zentriere die Inhalte vertikal und horizontal + formLayout.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); + formLayout.setSpacing(true); + formLayout.setSizeUndefined(); // Inhalt eng setzen + + setSizeFull(); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, + LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + + add(formLayout); + } + + private void login() { + var user = loginService.findUser(usernameField.getValue(), password1Field.getValue()); + + if (user.isPresent()) { + UI.getCurrent().navigate("customer"); + } + } + + private void submit() { + Util.changeDrawerState(true); + } +} diff --git a/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java b/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java index 24c7e92..ffb80a8 100644 --- a/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java +++ b/src/main/java/de/assecutor/votianlt/pages/register/domain/RegisterRepository.java @@ -1,12 +1,12 @@ package de.assecutor.votianlt.pages.register.domain; -import de.assecutor.votianlt.pages.customers.domain.Customer; +import de.assecutor.votianlt.model.User; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.mongodb.repository.MongoRepository; -public interface RegisterRepository extends MongoRepository { +public interface RegisterRepository extends MongoRepository { // If you don't need a total row count, Slice is better than Page. - Slice findAllBy(Pageable pageable); + Slice findAllBy(Pageable pageable); } diff --git a/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java b/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java index 816d35f..7e7e493 100644 --- a/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java +++ b/src/main/java/de/assecutor/votianlt/pages/register/service/RegisterService.java @@ -1,13 +1,12 @@ package de.assecutor.votianlt.pages.register.service; +import de.assecutor.votianlt.model.User; import de.assecutor.votianlt.pages.register.domain.RegisterRepository; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.time.Clock; -import java.util.List; @Service @Transactional(propagation = Propagation.REQUIRES_NEW) @@ -15,23 +14,10 @@ public class RegisterService { private final RegisterRepository registerRepository; - private final Clock clock; - - RegisterService(RegisterRepository registerRepository, Clock clock) { + RegisterService(RegisterRepository registerRepository) { this.registerRepository = registerRepository; - this.clock = clock; } - public void registerUser(String mail, String password) { - /*if ("fail".equals(description)) { - throw new RuntimeException("This is for testing the error handler"); - } - var todo = new Todo(); - todo.setDescription(description); - todo.setCreationDate(clock.instant()); - todo.setDueDate(dueDate); - todoRepository.saveAndFlush(todo);*/ - } - - //public List list(Pageable pageable) { return todoRepository.findAllBy(pageable).toList(); -} + public void registerUser(User user) { + registerRepository.save(user); + }} diff --git a/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java b/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java index 45f27df..2c778ff 100644 --- a/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java +++ b/src/main/java/de/assecutor/votianlt/pages/register/ui/view/RegisterView.java @@ -1,33 +1,28 @@ package de.assecutor.votianlt.pages.register.ui.view; -import com.vaadin.flow.component.UI; -import com.vaadin.flow.component.applayout.AppLayout; import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; import com.vaadin.flow.component.html.Main; -import com.vaadin.flow.component.notification.Notification; -import com.vaadin.flow.component.notification.NotificationVariant; import com.vaadin.flow.component.orderedlayout.FlexComponent; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.textfield.TextField; -import com.vaadin.flow.router.Menu; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.theme.lumo.LumoUtility; -import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar; +import de.assecutor.votianlt.model.User; import de.assecutor.votianlt.pages.register.service.RegisterService; import de.assecutor.votianlt.util.Util; import java.time.Clock; @Route("register") -@PageTitle("Bei VotianLT registrieren") +@PageTitle("Bei VotianLT anmelden") //@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Bei VotianLT registrieren") public class RegisterView extends Main { private final RegisterService registerService; - TextField usernameField = new TextField("E-Mail-Adresse"); + TextField mail = new TextField("E-Mail-Adresse"); TextField password1Field = new TextField("Passwort"); TextField password2Field = new TextField("Passwort wiederholen"); Button submitButton = new Button("Registrieren"); @@ -36,12 +31,12 @@ public class RegisterView extends Main { this.registerService = registerService; // Setze den Button als primär - submitButton = new Button("Create", event -> submit()); + submitButton = new Button("Registrieren", event -> registerUser()); submitButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); // Erstelle ein Div als Container (oder direkt ein Layout) VerticalLayout formLayout = new VerticalLayout(); - formLayout.add(usernameField, password1Field, password2Field, submitButton); + formLayout.add(mail, password1Field, password2Field, submitButton); // Zentriere die Inhalte vertikal und horizontal formLayout.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); @@ -49,18 +44,19 @@ public class RegisterView extends Main { formLayout.setSizeUndefined(); // Inhalt eng setzen setSizeFull(); - addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, - LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); + addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX, LumoUtility.FlexDirection.COLUMN, LumoUtility.Padding.MEDIUM, LumoUtility.Gap.SMALL); add(formLayout); } - private void submit() { - Util.changeDrawerState(true); - } + private void registerUser() { + var mail = this.mail.getValue(); + var password = password1Field.getValue(); - private void createTodo() { - registerService.registerUser(usernameField.getValue(), password1Field.getValue()); - Notification.show("Benutzer registriert", 3000, Notification.Position.BOTTOM_END).addThemeVariants(NotificationVariant.LUMO_SUCCESS); + User user = new User(); + user.setEmail(mail); + user.setPassword(password); + + registerService.registerUser(user); } } diff --git a/src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java b/src/main/java/de/assecutor/votianlt/pages/start/ui/view/StartView.java similarity index 83% rename from src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java rename to src/main/java/de/assecutor/votianlt/pages/start/ui/view/StartView.java index a8fe267..5128679 100644 --- a/src/main/java/de/assecutor/votianlt/pages/start/ui/view/OrdersView.java +++ b/src/main/java/de/assecutor/votianlt/pages/start/ui/view/StartView.java @@ -10,14 +10,14 @@ import com.vaadin.flow.router.Route; import com.vaadin.flow.theme.lumo.LumoUtility; @Route("") -@PageTitle("Start") -@Menu(order = 0, icon = "vaadin:clipboard-check", title = "Start") -public class OrdersView extends Main { +@PageTitle("Dummy") +@Menu(order = 0, icon = "vaadin:clipboard-check", title = "DUMMY") +public class StartView extends Main { final Button registerBtn; final Button loginBtn; - public OrdersView() { + public StartView() { registerBtn = new Button("Registrieren", event -> register()); registerBtn.addThemeVariants(ButtonVariant.LUMO_PRIMARY); add(registerBtn); @@ -36,7 +36,5 @@ public class OrdersView extends Main { UI.getCurrent().navigate("register"); } - private void login() { - } - + private void login() { UI.getCurrent().navigate("login"); } }