This commit is contained in:
parent
e00783b1d6
commit
bb84ae88de
@ -32,6 +32,7 @@ public class PanelController {
|
|||||||
private final DisasterService disasterService;
|
private final DisasterService disasterService;
|
||||||
private final ActionScriptsServiceImpl scriptsService;
|
private final ActionScriptsServiceImpl scriptsService;
|
||||||
private final ActionRequestServiceImpl actionRequestService;
|
private final ActionRequestServiceImpl actionRequestService;
|
||||||
|
private final GameThemeServiceImpl gameThemeService;
|
||||||
|
|
||||||
private List<Card> dissToCards() {
|
private List<Card> dissToCards() {
|
||||||
List<Disaster> bios = disasterService.getAllDisasters();
|
List<Disaster> bios = disasterService.getAllDisasters();
|
||||||
@ -153,6 +154,19 @@ public class PanelController {
|
|||||||
return cards;
|
return cards;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Card> themesToCards() {
|
||||||
|
List<GameTheme> themeList = gameThemeService.getAllGameThemes();
|
||||||
|
List<Card> cards = new ArrayList<>();
|
||||||
|
for( GameTheme theme : themeList ) {
|
||||||
|
Card card = new Card();
|
||||||
|
card.setId(theme.getId());
|
||||||
|
card.setTitle(textDataValService.getTextDataValById(theme.getTextNameId()).getText());
|
||||||
|
card.setBody(new ArrayList<>());
|
||||||
|
cards.add(card);
|
||||||
|
}
|
||||||
|
return cards;
|
||||||
|
}
|
||||||
|
|
||||||
private List<List<Card>> toPairs(List<Card> cards) {
|
private List<List<Card>> toPairs(List<Card> cards) {
|
||||||
List<List<Card>> l = IntStream.range(0, cards.size())
|
List<List<Card>> l = IntStream.range(0, cards.size())
|
||||||
.filter(i -> i % 2 == 0 && i + 1 < cards.size())
|
.filter(i -> i % 2 == 0 && i + 1 < cards.size())
|
||||||
@ -196,6 +210,9 @@ public class PanelController {
|
|||||||
case "script_request":
|
case "script_request":
|
||||||
model.addAttribute("cards", is_mobile ? requestsToCards() : toPairs(requestsToCards()) );
|
model.addAttribute("cards", is_mobile ? requestsToCards() : toPairs(requestsToCards()) );
|
||||||
break;
|
break;
|
||||||
|
case "themes":
|
||||||
|
model.addAttribute("cards", is_mobile ? themesToCards() : toPairs(themesToCards()));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return "panel";
|
return "panel";
|
||||||
}
|
}
|
||||||
|
24
src/main/java/com/alterdekim/javabot/entities/GameTheme.java
Normal file
24
src/main/java/com/alterdekim/javabot/entities/GameTheme.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.alterdekim.javabot.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@ToString
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "game_themes")
|
||||||
|
public class GameTheme {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column(nullable = false)
|
||||||
|
private Long textNameId;
|
||||||
|
|
||||||
|
public GameTheme(Long textNameId) {
|
||||||
|
this.textNameId = textNameId;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.alterdekim.javabot.repository;
|
||||||
|
|
||||||
|
import com.alterdekim.javabot.entities.GameTheme;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public interface GameThemeRepository extends JpaRepository<GameTheme, Long> {
|
||||||
|
Optional<GameTheme> findById(Long id);
|
||||||
|
|
||||||
|
List<GameTheme> findAll();
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.alterdekim.javabot.service;
|
||||||
|
|
||||||
|
import com.alterdekim.javabot.entities.GameTheme;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface GameThemeService {
|
||||||
|
List<GameTheme> getAllGameThemes();
|
||||||
|
GameTheme getThemeById(long themeId);
|
||||||
|
|
||||||
|
void removeById(long themeId);
|
||||||
|
|
||||||
|
void saveGameTheme(GameTheme gameTheme);
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.alterdekim.javabot.service;
|
||||||
|
|
||||||
|
import com.alterdekim.javabot.entities.GameTheme;
|
||||||
|
import com.alterdekim.javabot.repository.GameThemeRepository;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class GameThemeServiceImpl implements GameThemeService {
|
||||||
|
private final GameThemeRepository repository;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GameTheme> getAllGameThemes() {
|
||||||
|
return repository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GameTheme getThemeById(long themeId) {
|
||||||
|
return repository.findById(themeId).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeById(long themeId) {
|
||||||
|
repository.deleteById(themeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveGameTheme(GameTheme gameTheme) {
|
||||||
|
repository.save(gameTheme);
|
||||||
|
}
|
||||||
|
}
|
@ -70,3 +70,4 @@ edditaddbtn=Edit/Add
|
|||||||
edditreq=Send request
|
edditreq=Send request
|
||||||
scrireqq=Script requests
|
scrireqq=Script requests
|
||||||
acceptbtnreq=Accept
|
acceptbtnreq=Accept
|
||||||
|
themes=Themes
|
@ -70,3 +70,4 @@ edditaddbtn=Изменить/Добавить
|
|||||||
edditreq=Отправить запрос
|
edditreq=Отправить запрос
|
||||||
scrireqq=Запросы на скрипты
|
scrireqq=Запросы на скрипты
|
||||||
acceptbtnreq=Принять
|
acceptbtnreq=Принять
|
||||||
|
themes=Темы
|
@ -47,6 +47,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/panel?section=script_request" th:text="#{scrireqq}"></a>
|
<a class="nav-link" href="/panel?section=script_request" th:text="#{scrireqq}"></a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/panel?section=themes" th:text="#{themes}"></a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
|
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user