Merge pull request 'fix: Fix bugs and improve file naming' (#28) from 3002833/Backend:main into main
Reviewed-on: Maradona/Backend#28pull/1/head
commit
836ecee3bd
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,143 @@
|
|||
package com.maradona.backend;
|
||||
|
||||
import com.maradona.backend.entities.Employee;
|
||||
import com.maradona.backend.entities.EmployeeSecondarySkill;
|
||||
import com.maradona.backend.entities.FormOfAddress;
|
||||
import com.maradona.backend.entities.PrimarySkill;
|
||||
import com.maradona.backend.entities.SecondarySkill;
|
||||
import com.maradona.backend.repositories.EmployeeRepository;
|
||||
import com.maradona.backend.repositories.FormOfAddressRepository;
|
||||
import com.maradona.backend.repositories.PrimarySkillRepository;
|
||||
import com.maradona.backend.repositories.SecondarySkillRepository;
|
||||
import com.maradona.backend.repositories.EmployeeSecondarySkillRepository;
|
||||
import com.maradona.backend.repositories.ProjectRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class DefaultValueLoader implements CommandLineRunner {
|
||||
|
||||
@Autowired
|
||||
private PrimarySkillRepository primarySkillRepository;
|
||||
|
||||
@Autowired
|
||||
private SecondarySkillRepository secondarySkillRepository;
|
||||
|
||||
@Autowired
|
||||
private EmployeeRepository employeeRepository;
|
||||
|
||||
@Autowired
|
||||
private FormOfAddressRepository formOfAddressRepository;
|
||||
|
||||
@Autowired
|
||||
private EmployeeSecondarySkillRepository employeeSecondarySkillRepository;
|
||||
|
||||
@Autowired
|
||||
private ProjectRepository projectRepository;
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
// Clear all data
|
||||
employeeRepository.deleteAll();
|
||||
secondarySkillRepository.deleteAll();
|
||||
primarySkillRepository.deleteAll();
|
||||
formOfAddressRepository.deleteAll();
|
||||
projectRepository.deleteAll();
|
||||
employeeSecondarySkillRepository.deleteAll();
|
||||
|
||||
// Create form of addresses
|
||||
FormOfAddress formOfAddress1 = new FormOfAddress();
|
||||
formOfAddress1.setDescription("Herr");
|
||||
|
||||
FormOfAddress formOfAddress2 = new FormOfAddress();
|
||||
formOfAddress2.setDescription("Frau");
|
||||
|
||||
FormOfAddress formOfAddress3 = new FormOfAddress();
|
||||
formOfAddress3.setDescription("Einkaufstüte");
|
||||
|
||||
formOfAddress1 = formOfAddressRepository.save(formOfAddress1);
|
||||
formOfAddress2 = formOfAddressRepository.save(formOfAddress2);
|
||||
|
||||
// Create primary skills
|
||||
PrimarySkill primarySkill1 = new PrimarySkill();
|
||||
primarySkill1.setDescription("Software Development");
|
||||
|
||||
PrimarySkill primarySkill2 = new PrimarySkill();
|
||||
primarySkill2.setDescription("Project Management");
|
||||
|
||||
primarySkillRepository.save(primarySkill1);
|
||||
primarySkillRepository.save(primarySkill2);
|
||||
|
||||
// Create secondary skills
|
||||
SecondarySkill secondarySkill1 = new SecondarySkill();
|
||||
secondarySkill1.setDescription("Java");
|
||||
secondarySkill1.setPrimarySkill(primarySkill1);
|
||||
|
||||
SecondarySkill secondarySkill2 = new SecondarySkill();
|
||||
secondarySkill2.setDescription("Agile Methodology");
|
||||
secondarySkill2.setPrimarySkill(primarySkill2);
|
||||
|
||||
SecondarySkill secondarySkill3 = new SecondarySkill();
|
||||
secondarySkill3.setDescription("Risk Management");
|
||||
secondarySkill3.setPrimarySkill(primarySkill2);
|
||||
|
||||
secondarySkillRepository.save(secondarySkill1);
|
||||
secondarySkillRepository.save(secondarySkill2);
|
||||
secondarySkillRepository.save(secondarySkill3);
|
||||
|
||||
// Create employees
|
||||
Employee employee1 = new Employee();
|
||||
employee1.setEmployeeNr(1);
|
||||
employee1.setFirstName("John");
|
||||
employee1.setLastName("Doe");
|
||||
employee1.setMail("john.doe@example.com");
|
||||
employee1.setDStart(LocalTime.of(9, 0));
|
||||
employee1.setDEnd(LocalTime.of(17, 0));
|
||||
employee1.setFormOfAddress(formOfAddress1);
|
||||
|
||||
Employee employee2 = new Employee();
|
||||
employee2.setEmployeeNr(2);
|
||||
employee2.setFirstName("Jane");
|
||||
employee2.setLastName("Smith");
|
||||
employee2.setMail("jane.smith@example.com");
|
||||
employee2.setDStart(LocalTime.of(9, 0));
|
||||
employee2.setDEnd(LocalTime.of(17, 0));
|
||||
employee2.setFormOfAddress(formOfAddress2);
|
||||
|
||||
employeeRepository.save(employee1);
|
||||
employeeRepository.save(employee2);
|
||||
|
||||
// Assign secondary skills to employees
|
||||
EmployeeSecondarySkill employeeSecondarySkill1 = new EmployeeSecondarySkill();
|
||||
employeeSecondarySkill1.setEmployee(employee1);
|
||||
employeeSecondarySkill1.setSecondarySkill(secondarySkill1);
|
||||
employeeSecondarySkill1.setLevel(4);
|
||||
|
||||
EmployeeSecondarySkill employeeSecondarySkill2 = new EmployeeSecondarySkill();
|
||||
employeeSecondarySkill2.setEmployee(employee1);
|
||||
employeeSecondarySkill2.setSecondarySkill(secondarySkill2);
|
||||
employeeSecondarySkill2.setLevel(3);
|
||||
|
||||
EmployeeSecondarySkill employeeSecondarySkill3 = new EmployeeSecondarySkill();
|
||||
employeeSecondarySkill3.setEmployee(employee2);
|
||||
employeeSecondarySkill3.setSecondarySkill(secondarySkill3);
|
||||
employeeSecondarySkill3.setLevel(5);
|
||||
|
||||
List<EmployeeSecondarySkill> employee1Skills = new ArrayList<>();
|
||||
employee1Skills.add(employeeSecondarySkill1);
|
||||
employee1Skills.add(employeeSecondarySkill2);
|
||||
employee1.setSecondarySkills(employee1Skills);
|
||||
|
||||
List<EmployeeSecondarySkill> employee2Skills = new ArrayList<>();
|
||||
employee2Skills.add(employeeSecondarySkill3);
|
||||
employee2.setSecondarySkills(employee2Skills);
|
||||
|
||||
employeeRepository.save(employee1);
|
||||
employeeRepository.save(employee2);
|
||||
}
|
||||
}
|
|
@ -26,7 +26,7 @@ public class ProjectController {
|
|||
@GetMapping("/create")
|
||||
public String create(Model model) {
|
||||
model.addAttribute("project", new Project());
|
||||
return "project-create";
|
||||
return "projects-create";
|
||||
}
|
||||
|
||||
@PostMapping("/save")
|
||||
|
|
|
@ -38,6 +38,7 @@ public class SkillsController {
|
|||
// Hardcoded placeholder user ID for now
|
||||
Long user = Long.valueOf(1);
|
||||
|
||||
// Returns the skills overview page
|
||||
@GetMapping({ "/", "" })
|
||||
public String profile(Model model) {
|
||||
var employeeData = employeeService.getEmployeeById(user);
|
||||
|
@ -47,20 +48,23 @@ public class SkillsController {
|
|||
return "skills";
|
||||
}
|
||||
|
||||
// Returns the create-skill page
|
||||
@GetMapping("/create")
|
||||
public String createSkill(Model model) {
|
||||
model.addAttribute("secondarySkill", new SecondarySkill());
|
||||
return "create-skill";
|
||||
return "skills-create";
|
||||
}
|
||||
|
||||
// Add a new skill to the user profile
|
||||
@GetMapping("/add")
|
||||
public String addSkill(Model model) {
|
||||
model.addAttribute("primarySkills", primarySkillService.getAllPrimarySkills());
|
||||
model.addAttribute("secondarySkills", List.of()); // Empty list initially
|
||||
model.addAttribute("skillForm", new SkillForm()); // Add a form object to the model
|
||||
return "add-skill";
|
||||
return "skills-add";
|
||||
}
|
||||
|
||||
// Add a new skill to the user profile
|
||||
@PostMapping("/add")
|
||||
public String addSkill(@ModelAttribute SkillForm skillForm) {
|
||||
var employee = employeeService.getEmployeeById(user).orElseThrow(() -> new RuntimeException("Employee not found"));
|
||||
|
@ -78,6 +82,7 @@ public class SkillsController {
|
|||
return "redirect:/skills";
|
||||
}
|
||||
|
||||
// Returns a list of secondary skills for a given primary skill
|
||||
@GetMapping("/secondary-skills")
|
||||
@ResponseBody
|
||||
public Iterable<SecondarySkill> getSecondarySkills(@RequestParam Long primarySkillId) {
|
||||
|
@ -89,6 +94,7 @@ public class SkillsController {
|
|||
return list;
|
||||
}
|
||||
|
||||
// Saves a new skill to the database
|
||||
@PostMapping("/save")
|
||||
public String save(@ModelAttribute SecondarySkill secondarySkill) {
|
||||
var primarySkillDescription = secondarySkill.getPrimarySkill().getDescription();
|
||||
|
@ -104,6 +110,7 @@ public class SkillsController {
|
|||
return "redirect:/skills";
|
||||
}
|
||||
|
||||
// Deletes a primary skill and all associated secondary skills
|
||||
@PostMapping("/delete")
|
||||
public String delete(@RequestParam Long id) {
|
||||
// Find and delete all secondary skills associated with the primary skill
|
||||
|
@ -120,4 +127,19 @@ public class SkillsController {
|
|||
}
|
||||
return "redirect:/skills";
|
||||
}
|
||||
|
||||
// Removes secondary skill from user profile
|
||||
@PostMapping("/remove")
|
||||
public String remove(@RequestParam Long id) {
|
||||
var employee = employeeService.getEmployeeById(user).orElseThrow(() -> new RuntimeException("Employee not found"));
|
||||
var secondarySkills = employee.getSecondarySkills();
|
||||
for (EmployeeSecondarySkill employeeSecondarySkill : secondarySkills) {
|
||||
if (employeeSecondarySkill.getSecondarySkill().getSsid().equals(id)) {
|
||||
employee.getSecondarySkills().remove(employeeSecondarySkill);
|
||||
employeeService.saveEmployee(employee);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return "redirect:/skills";
|
||||
}
|
||||
}
|
|
@ -60,21 +60,23 @@
|
|||
>☆</span
|
||||
>
|
||||
</span>
|
||||
<form
|
||||
th:action="@{/skills/remove}"
|
||||
method="post"
|
||||
class="d-inline"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="id"
|
||||
th:value="${pair.first.ssid}"
|
||||
/>
|
||||
<button type="submit" class="btn-delete">
|
||||
Delete
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<form
|
||||
th:action="@{/skills/delete}"
|
||||
method="post"
|
||||
class="d-inline"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="id"
|
||||
th:value="${skillDto.primarySkill.psid}"
|
||||
/>
|
||||
<button type="submit" class="btn-delete">Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue