Slowly adding themes
All checks were successful
gitea/JBunker/pipeline/head This commit looks good

This commit is contained in:
Michael Wain 2024-11-26 03:54:19 +03:00
parent e00783b1d6
commit bb84ae88de
8 changed files with 110 additions and 2 deletions

View File

@ -32,6 +32,7 @@ public class PanelController {
private final DisasterService disasterService;
private final ActionScriptsServiceImpl scriptsService;
private final ActionRequestServiceImpl actionRequestService;
private final GameThemeServiceImpl gameThemeService;
private List<Card> dissToCards() {
List<Disaster> bios = disasterService.getAllDisasters();
@ -153,6 +154,19 @@ public class PanelController {
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) {
List<List<Card>> l = IntStream.range(0, cards.size())
.filter(i -> i % 2 == 0 && i + 1 < cards.size())
@ -196,6 +210,9 @@ public class PanelController {
case "script_request":
model.addAttribute("cards", is_mobile ? requestsToCards() : toPairs(requestsToCards()) );
break;
case "themes":
model.addAttribute("cards", is_mobile ? themesToCards() : toPairs(themesToCards()));
break;
}
return "panel";
}

View 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;
}
}

View File

@ -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();
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -69,4 +69,5 @@ scrieditde=Below you can write a script for Bunker's action card. On the left si
edditaddbtn=Edit/Add
edditreq=Send request
scrireqq=Script requests
acceptbtnreq=Accept
acceptbtnreq=Accept
themes=Themes

View File

@ -69,4 +69,5 @@ scrieditde=Ниже в вашем распоряжении редактор ск
edditaddbtn=Изменить/Добавить
edditreq=Отправить запрос
scrireqq=Запросы на скрипты
acceptbtnreq=Принять
acceptbtnreq=Принять
themes=Темы

View File

@ -47,6 +47,9 @@
<li class="nav-item">
<a class="nav-link" href="/panel?section=script_request" th:text="#{scrireqq}"></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/panel?section=themes" th:text="#{themes}"></a>
</li>
</ul>
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
<li class="nav-item dropdown">