Skip to content

Commit

Permalink
feat: add Topics on admin panel
Browse files Browse the repository at this point in the history
  • Loading branch information
Vicente1215 committed Mar 5, 2023
1 parent e8a5602 commit 0dd0642
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

Expand All @@ -24,19 +26,41 @@ public class AdminPanelController {

@GetMapping("/admin-panel")
public String adminPanel(Model model) {
List<String> usernameList = userRepository.findAllUsernames();
model.addAttribute("users", usernameList);
List<User> userList = userRepository.findAll();
User admin = userRepository.findByUsername("admin").orElseThrow();
userList.remove(admin);
model.addAttribute("users", userList);

List<Topic> topicList = topicRepository.findAll();
model.addAttribute("topics", topicList);
return "admin-panel";
}

@GetMapping("/admin-panel/delete/{id}")
public String deleteFromCart(Model model, @PathVariable long id) {
public String deleteFromTopic(Model model, @PathVariable long id) {
Topic topic = topicRepository.findById(id).orElseThrow();
topicRepository.delete(topic);
return "redirect:/admin-panel";
}


@RequestMapping("/addTopic")
public String greeting(Model model, @RequestParam String topicName) {
Topic topic = new Topic(topicName, "");
topicRepository.save(topic);
return "redirect:/admin-panel";
}

@GetMapping("/admin-panel/lock/{id}")
public String changeLockUser(Model model, @PathVariable long id) {
User user = userRepository.findById(id).orElseThrow();
if (user.isLocked()) {
userRepository.unbanUser(user.getUsername());
} else {
userRepository.banUser(user.getUsername());
}

return "redirect:/admin-panel";
}

}
7 changes: 6 additions & 1 deletion back/src/main/resources/static/styles/admin-panel.css
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,14 @@ ul {
width: 100%;
}

.listItemLocked{
width: 100%;
background-color: rgb(126, 64, 64);
}

@media only screen and (min-width: 768px) {
/* For desktop: */
.listItem, form{
.listItem, .listItemLocked, form{
width: 75%;
}

Expand Down
40 changes: 27 additions & 13 deletions back/src/main/resources/templates/admin-panel.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<link rel="stylesheet" type="text/css" href="styles/bootstrap/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="styles/styles.css">
<link rel="stylesheet" type="text/css" href="styles/admin-panel.css">
<!-- <script src="scripts/bootstrap/bootstrap.bundle.min.js"></script>-->
<!-- <script src="scripts/bootstrap/bootstrap.bundle.min.js"></script>-->
<title>Alist | Admin Panel</title>
</head>

Expand All @@ -23,7 +23,8 @@
<h1 class="pb-2 border-bottom">Admin Panel</h1>
<div class="row d-flex row-cols-1 row-cols-lg-3 m-auto">
<div class="feature col flex-grow-1">
<a href="#collapseUsers" data-bs-toggle="collapse" data-target="#collapseUsers" role="button" aria-expanded="false" aria-controls="collapseUsers">
<a href="#collapseUsers" data-bs-toggle="collapse" data-target="#collapseUsers" role="button"
aria-expanded="false" aria-controls="collapseUsers">
<div class="feature-icon d-inline-flex align-items-center justify-content-center fs-2 mb-3">
<i class="fa-regular fa-solid fa-user fa-xl"></i>
</div>
Expand All @@ -36,13 +37,23 @@ <h3 class="fs-2">Manage Users</h3>
<div class="collapse mt-4 d-flex flex-column justify-content-center align-items-center" id="collapseUsers">
<ul class="w-100 mt-auto">
{{#users}}
<button type="button" class="listItem btn btn-primary mt-2"><li>{{.}}</li></button>
{{^locked}}
<a href="/admin-panel/lock/{{id}}" class="listItem btn btn-primary mt-2">
<li>{{username}}</li>
</a>
{{/locked}}
{{#locked}}
<a href="/admin-panel/lock/{{id}}" class="listItemLocked btn btn-primary mt-2">
<li>{{username}}</li>
</a>
{{/locked}}
{{/users}}
</ul>
</div>
</div>
<div class="feature col flex-grow-1">
<a href="#collapseTopics" data-bs-toggle="collapse" data-target="#collapseTopics" role="button" aria-expanded="false" aria-controls="collapseTopics">
<a href="#collapseTopics" data-bs-toggle="collapse" data-target="#collapseTopics" role="button"
aria-expanded="false" aria-controls="collapseTopics">
<div class="feature-icon d-inline-flex align-items-center justify-content-center fs-2 mb-3">
<i class="fa-regular fa-solid fa-at fa-xl"></i>
</div>
Expand All @@ -51,19 +62,22 @@ <h3 class="fs-2">Manage Topics</h3>
<p>
Type in a new topic to create it, or click on an already existing one to delete it.
</p>
<div class="collapse mt-4 w-100 d-flex flex-column justify-content-center align-items-center" id="collapseTopics">
<div class="collapse mt-4 w-100 d-flex flex-column justify-content-center align-items-center"
id="collapseTopics">

<form action="">
<div class="form-floating mb-2">
<input type="text" class="form-control h-100" id="newTopic" placeholder="Type new topic..." name="newTopic">
<label for="newTopic" class="text-muted">Type new topic...</label>
</div>
<button class="w-100 btn btn-lg btn-light" type="submit">Add topic</button>
</form>
<form action="/addTopic">
<div class="form-floating mb-2">
<input type="text" class="form-control h-100" id="newTopic" placeholder="Type new topic..." name="topicName">
<label for="newTopic" class="text-muted">Type new topic...</label>
</div>
<button class="w-100 btn btn-lg btn-light" type="submit">Add topic</button>
</form>

<ul class="w-100 mt-4">
{{#topics}}
<a href="/admin-panel/delete/{{id}}" class="listItem btn btn-primary mt-2"><li>{{name}}</li></a>
<a href="/admin-panel/delete/{{id}}" class="listItem btn btn-primary mt-2">
<li>{{name}}</li>
</a>
{{/topics}}
</ul>
</div>
Expand Down

0 comments on commit 0dd0642

Please sign in to comment.