diff --git a/src/main/java/com/web/web_assignment/ProjectBean.java b/src/main/java/com/web/web_assignment/ProjectBean.java index 08e338c..23f2510 100644 --- a/src/main/java/com/web/web_assignment/ProjectBean.java +++ b/src/main/java/com/web/web_assignment/ProjectBean.java @@ -19,11 +19,13 @@ import java.util.stream.Collectors; public class ProjectBean implements Serializable { private final DatabaseService databaseService = new DatabaseService(); private List projects; // List to store all projects + private int projectIdx; private Project project; // Current project being worked on private UserInfo userInfo; // User info for the current user private String username; private String password; public String projectKeywords = ""; // String to hold project keywords + public String newKeyword = ""; public String projectCollaborators = ""; // String to hold project collaborators public List allProjectsKeywords; // List of all unique keywords from all projects @@ -39,7 +41,7 @@ public class ProjectBean implements Serializable { loadProjects(); // Load projects from the database System.out.println("Projects loaded: " + projects.size()); loadAllKeywords(); // Load all unique keywords from all projects - if (projects.isEmpty()){ + if (projects.isEmpty()) { Project emptyProject = new Project("", "", "", new ArrayList<>(), "", new ArrayList<>(), "", ""); } setProject(projects.get(0)); // Set the first project as the current project @@ -76,6 +78,13 @@ public class ProjectBean implements Serializable { .collect(Collectors.toList()); } + public void addKeyword() { + if (!newKeyword.isEmpty() && !allProjectsKeywords.contains(newKeyword)) { + selectedKeywords.add(newKeyword); + allProjectsKeywords.add(newKeyword); + } + } + public List getProjects() { return projects; } @@ -89,6 +98,7 @@ public class ProjectBean implements Serializable { } public void setProject(Project project) { + this.projectIdx = projects.indexOf(project); this.project = project; this.projectKeywords = getKeywordsAsString(); // Update keywords string this.projectCollaborators = getCollaboratorsAsString(); @@ -113,8 +123,12 @@ public class ProjectBean implements Serializable { project.setKeywords(new ArrayList<>(selectedKeywords)); try { - databaseService.saveProjects(username, projects); + ArrayList newProject = new ArrayList<>(); + newProject.add(project); + projects.set(projectIdx,project); + databaseService.saveProjects(username, newProject); context.addMessage("saveButton", new FacesMessage(FacesMessage.SEVERITY_INFO, "Submission Succeeded", null)); + loadAllKeywords(); } catch (SQLException e) { e.printStackTrace(); } @@ -217,4 +231,12 @@ public class ProjectBean implements Serializable { public void setSelectedKeywords(List selectedKeywords) { this.selectedKeywords = selectedKeywords; } + + public String getNewKeyword() { + return newKeyword; + } + + public void setNewKeyword(String newKeyword) { + this.newKeyword = newKeyword; + } } diff --git a/src/main/webapp/edit.xhtml b/src/main/webapp/edit.xhtml index c98e63d..4d9181d 100644 --- a/src/main/webapp/edit.xhtml +++ b/src/main/webapp/edit.xhtml @@ -11,7 +11,7 @@
- +

Select Project to Edit

@@ -55,15 +55,27 @@
-
- - - - - -
+ +
+ + + + + + + + + + + + + +
+
@@ -77,7 +89,8 @@
-