Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/app/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public static void main(String[] args) {
@Override
public void start(Stage stage) throws Exception {
Database.initializeDatabase();

System.out.println("DB path: " + new java.io.File("givehope.db").getAbsolutePath());
OrganizationDao orgDao = new OrganizationDao();
Organization[] orgs = InnsamlingskontrollenClient.fetchOrganizations();
for (Organization org : orgs) {
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/application/user/UserDonate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package application.user;

import domain.donation.Donation;
import domain.organization.Organization;
import domain.user.User;
import persistence.DonationDao;

import java.math.BigDecimal;

public class UserDonate {
private final DonationDao donationDao;

public UserDonate() {
this.donationDao = new DonationDao();
}

public void execute(User user, Organization org, BigDecimal amount) {
Donation donation = new Donation(amount, user, org);
donationDao.insert(donation);
}
}
2 changes: 1 addition & 1 deletion src/main/java/domain/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public String getPhoneNumber() {
return phoneNumber;
}

public String getEMail() {
public String getEmail() {
return eMail;
}

Expand Down
14 changes: 6 additions & 8 deletions src/main/java/persistence/DonationDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ public class DonationDao {
* @throws RuntimeException if a database error occurs during the insert
*/
public void insert(Donation donation) {
System.out.println("Inserting donation:");
System.out.println(" user_id = " + donation.getUser().getID());
System.out.println(" org_id = " + donation.getOrganization().getOrgNumber());

String sql = "INSERT INTO donation(amount, donation_date" +
", user_id, organization_id) VALUES(?, ?, ?, ?)";

Expand Down Expand Up @@ -202,6 +206,7 @@ SELECT SUM(CAST(amount as REAL))
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
BigDecimal amount = rs.getBigDecimal(1);
if (amount == null) return "0";
return amount.toString();
}
return "0";
Expand Down Expand Up @@ -272,11 +277,4 @@ private String mapRowFavorite(ResultSet rs) throws SQLException {
return rs.getString("name")
+ " (" + rs.getInt("donation_count") + " donasjoner)";
}







}
}
2 changes: 1 addition & 1 deletion src/main/java/persistence/UserDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public void insert(User user) {

stmt.setString(1, user.getUsername());
stmt.setString(2, user.getPhoneNumber());
stmt.setString(3, user.getEMail());
stmt.setString(3, user.getEmail());
//endre denne til passwordhash når det er fikset.
stmt.setString(4, user.getPassword());

Expand Down
52 changes: 52 additions & 0 deletions src/main/java/ui/DonationSession.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package ui;

import domain.organization.Organization;

public class DonationSession {
private Organization organization;
private int amount;
private String name;
private String email;
private String phone;

public Organization getOrganization() {
return organization;
}

public int getAmount() {
return amount;
}

public String getName() {
return name;
}

public String getEmail() {
return email;
}

public String getPhone() {
return phone;
}

public void setOrganization(Organization organization) {
this.organization = organization;
}

public void setAmount(int amount) {
this.amount = amount;
}

public void setName(String name) {
this.name = name;
}

public void setEmail(String email) {
this.email = email;
}

public void setPhone(String phone) {
this.phone = phone;
}
}

5 changes: 5 additions & 0 deletions src/main/java/ui/DonationSessionAware.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ui;

public interface DonationSessionAware {
void setDonationSession(DonationSession session);
}
9 changes: 7 additions & 2 deletions src/main/java/ui/Page.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@
public enum Page {
HOME("Home.fxml"),
PROFILE("MyProfile.fxml"),
SIGNIN("SignIn.fxml"),
SIGN_IN("SignIn.fxml"),
REGISTER("Register.fxml"),
ORGANIZATIONS("OrganizationsView.fxml"),
MYPROFILE("MyProfile.fxml");
MY_PROFILE("MyProfile.fxml"),
DONATION_NOT_LOGGED_IN("DonationNotLoggedIn.fxml"),
DONATION_AMOUNT("DonationAmount.fxml"),
DONATION_PAYMENT("DonationPayment.fxml"),
DONATION_CONFIRMATION("DonationConfirmation.fxml");



private final String fileName;
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/ui/controller/HomeController.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,6 @@ public void setOnNavigate(Consumer<Page> onNavigate) {
this.onNavigate = onNavigate;
}

public Button signInButton;

@FXML
private void handleSignIn() throws IOException {
onNavigate.accept(Page.SIGNIN);
}

@FXML
private void handleBrowseOrganizations() {
onNavigate.accept(Page.ORGANIZATIONS);
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/ui/controller/MainController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

import application.user.UserRegister;
import application.user.UserSignIn;
import domain.organization.Organization;
import integration.security.Sha256PasswordHasher;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.layout.BorderPane;
import persistence.UserDao;
import ui.DonationSession;
import ui.Page;
import ui.DonationSessionAware;
import ui.controller.donation.DonationFlowController;

import java.io.IOException;

Expand All @@ -20,7 +24,17 @@ public class MainController {
@FXML
private NavbarController navbarController;

private DonationSession donationSession;
private DonationFlowController donationFlowController;

public void initialize() {
donationFlowController = new DonationFlowController(mainPane, navbarController);
donationFlowController.setOnNavigate(page -> {
try { loadPage(page); }
catch (IOException e) { throw new RuntimeException(e); }
});


try {
navbarController.setOnNavigate(page -> {
try {
Expand Down Expand Up @@ -49,15 +63,30 @@ public void loadPage(Page page) throws IOException {
}
});
}
if (controller instanceof OrganizationController c) {
c.setOnDonate(org -> {
try { loadDonationPage(org); }
catch (IOException e) { throw new RuntimeException(e); }
});

}
if (controller instanceof SignInController c) {
c.setUserSignIn(new UserSignIn(new Sha256PasswordHasher(), new UserDao()));
}
if (controller instanceof RegisterController c) {
c.setUserRegister(new UserRegister(new Sha256PasswordHasher(), new UserDao()));
}
if (controller instanceof DonationSessionAware c) {
c.setDonationSession(donationSession);
}

mainPane.setCenter(root);
navbarController.setActivePage(page);
navbarController.updateAuthButton();
navbarController.showNavbar();
}

public void loadDonationPage(Organization org) throws IOException {
donationFlowController.start(org);
}
}
4 changes: 2 additions & 2 deletions src/main/java/ui/controller/MyProfileController.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ public void setOnNavigate(Consumer<Page> onNavigate) {

@FXML
public void initialize() {
User user = SessionManager.getCurrentUser();
User user = SessionManager.getSignedInUser();
if (user == null) return;

nameLabel.setText("Name: " + user.getUsername());
emailLabel.setText("E-mail: " + user.getEMail());
emailLabel.setText("E-mail: " + user.getEmail());
phoneLabel.setText("Phonenumber: " + user.getPhoneNumber());

UserStatistics stats = new UserStatistics();
Expand Down
26 changes: 21 additions & 5 deletions src/main/java/ui/controller/NavbarController.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@

import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import ui.Page;
import util.SessionManager;

public class NavbarController {

private Consumer<Page> onNavigate;
@FXML
private HBox navBar;
@FXML
private Button homeBtn;
@FXML
private Button orgBtn;
Expand All @@ -29,7 +32,7 @@ public void setActivePage(Page page) {
Button buttonForPage = switch (page) {
case HOME -> homeBtn;
case ORGANIZATIONS -> orgBtn;
case SIGNIN, PROFILE -> signInBtn;
case SIGN_IN, PROFILE -> signInBtn;
default -> null;
};

Expand All @@ -46,17 +49,14 @@ public void goToSignIn() {
if (SessionManager.isSignedIn()) {
onNavigate.accept(Page.PROFILE);
} else {
onNavigate.accept(Page.SIGNIN);
onNavigate.accept(Page.SIGN_IN);
}
}

public void goToOrganizations() {
onNavigate.accept(Page.ORGANIZATIONS);
}

public void goToMyProfile() {
onNavigate.accept(Page.PROFILE);
}

public void updateAuthButton() {
if (SessionManager.isSignedIn()) {
Expand All @@ -65,4 +65,20 @@ public void updateAuthButton() {
signInBtn.setText("Sign In");
}
}

public void clearActivePage() {
homeBtn.getStyleClass().remove("nav-button-active");
orgBtn.getStyleClass().remove("nav-button-active");
signInBtn.getStyleClass().remove("nav-button-active");
}

public void hideNavbar() {
navBar.setVisible(false);
navBar.setManaged(false);
}

public void showNavbar() {
navBar.setVisible(true);
navBar.setManaged(true);
}
}
Loading