basic theme selection
This commit is contained in:
@ -0,0 +1,20 @@
|
||||
package de.jottyfan.bico.modules.subject;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import de.jottyfan.bico.modules.CommonController;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class SubjectController extends CommonController {
|
||||
|
||||
@GetMapping("/subject/new")
|
||||
public String loadNewSubjectForm() {
|
||||
return "/subject/new";
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package de.jottyfan.bico.modules.theme;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import de.jottyfan.bico.db.tables.records.TLessonRecord;
|
||||
import de.jottyfan.bico.modules.CommonController;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class ThemeController extends CommonController {
|
||||
|
||||
@Autowired
|
||||
private ThemeService service;
|
||||
|
||||
@GetMapping("/theme")
|
||||
public String getThemeManipulationBySlotId(@RequestParam("slotId") Integer slotId, Model model) {
|
||||
model.addAttribute("slotId", slotId);
|
||||
model.addAttribute("list", service.getThemeManipulation(slotId));
|
||||
model.addAttribute("themes", service.getAllThemes());
|
||||
model.addAttribute("lesson", service.getLesson(slotId));
|
||||
return "/theme";
|
||||
}
|
||||
|
||||
@PostMapping("/theme/add")
|
||||
public String addThemeToSlot(@RequestParam("slotId") Integer slotId, Model model, HttpServletRequest request) {
|
||||
String subjectId = request.getParameter("pkSubject");
|
||||
Integer pkSubject = Integer.valueOf(subjectId);
|
||||
service.addThemeToSlot(slotId, pkSubject);
|
||||
return "redirect:/theme?slotId=" + slotId;
|
||||
}
|
||||
|
||||
@GetMapping("/theme/delete")
|
||||
public String addThemeToSlot(@RequestParam("lessonSubjectId") Integer pkLessonSubject, @RequestParam("slotId") Integer slotId) {
|
||||
service.removeThemeFromSlot(pkLessonSubject);
|
||||
return "redirect:/theme?slotId=" + slotId;
|
||||
}
|
||||
|
||||
@PostMapping("/theme/update")
|
||||
public String updateLesson(@RequestParam("slotId") Integer slotId, @ModelAttribute("lesson") TLessonRecord bean) {
|
||||
service.updateLesson(bean);
|
||||
return "redirect:/theme?slotId=" + bean.getFkSlot();
|
||||
}
|
||||
}
|
@ -0,0 +1,141 @@
|
||||
package de.jottyfan.bico.modules.theme;
|
||||
|
||||
import static de.jottyfan.bico.db.Tables.T_LESSON;
|
||||
import static de.jottyfan.bico.db.Tables.T_LESSON_SUBJECT;
|
||||
import static de.jottyfan.bico.db.Tables.T_SOURCE;
|
||||
import static de.jottyfan.bico.db.Tables.T_SUBJECT;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.jboss.logging.Logger;
|
||||
import org.jooq.DSLContext;
|
||||
import org.jooq.DeleteConditionStep;
|
||||
import org.jooq.InsertOnDuplicateStep;
|
||||
import org.jooq.Record10;
|
||||
import org.jooq.Record4;
|
||||
import org.jooq.SelectConditionStep;
|
||||
import org.jooq.SelectSeekStep1;
|
||||
import org.jooq.UpdateConditionStep;
|
||||
import org.jooq.impl.DSL;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import de.jottyfan.bico.db.tables.records.TLessonRecord;
|
||||
import de.jottyfan.bico.db.tables.records.TLessonSubjectRecord;
|
||||
import de.jottyfan.bico.modules.theme.model.KeyValueBean;
|
||||
import de.jottyfan.bico.modules.theme.model.ThemeBean;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
@Repository
|
||||
public class ThemeRepository {
|
||||
private static final Logger LOGGER = Logger.getLogger(ThemeRepository.class);
|
||||
|
||||
@Autowired
|
||||
private DSLContext jooq;
|
||||
|
||||
public List<ThemeBean> getThemeManipulation(Integer slotId) {
|
||||
SelectConditionStep<Record10<String, String, String, String, String, String, String, Integer, String, Integer>> sql = jooq
|
||||
// @formatter:off
|
||||
.select(T_SUBJECT.THEME, T_SUBJECT.SUBTHEME, T_SUBJECT.BOOK_PAGES, T_SUBJECT.WORKSHEETS, T_SUBJECT.BIBLEVERSE, T_SUBJECT.NOTES,
|
||||
T_SOURCE.NAME,
|
||||
T_LESSON.PK_LESSON, T_LESSON.NOTES,
|
||||
T_LESSON_SUBJECT.PK_LESSON_SUBJECT)
|
||||
.from(T_LESSON)
|
||||
.leftJoin(T_LESSON_SUBJECT).on(T_LESSON_SUBJECT.FK_LESSON.eq(T_LESSON.PK_LESSON))
|
||||
.leftJoin(T_SUBJECT).on(T_SUBJECT.PK_SUBJECT.eq(T_LESSON_SUBJECT.FK_SUBJECT))
|
||||
.leftJoin(T_SOURCE).on(T_SOURCE.PK_SOURCE.eq(T_SUBJECT.FK_SOURCE))
|
||||
.where(T_LESSON.FK_SLOT.eq(slotId));
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
Iterator<Record10<String, String, String, String, String, String, String, Integer, String, Integer>> i = sql.fetch()
|
||||
.iterator();
|
||||
List<ThemeBean> list = new ArrayList<>();
|
||||
while (i.hasNext()) {
|
||||
Record10<String, String, String, String, String, String, String, Integer, String, Integer> r = i.next();
|
||||
ThemeBean bean = ThemeBean.of(r.get(T_LESSON.PK_LESSON));
|
||||
bean.setSlotId(slotId);
|
||||
bean.setPkLessonSubject(r.get(T_LESSON_SUBJECT.PK_LESSON_SUBJECT));
|
||||
bean.setTheme(r.get(T_SUBJECT.THEME));
|
||||
bean.setSubtheme(r.get(T_SUBJECT.SUBTHEME));
|
||||
bean.setBookPages(r.get(T_SUBJECT.BOOK_PAGES));
|
||||
bean.setWorksheets(r.get(T_SUBJECT.WORKSHEETS));
|
||||
bean.setBibleverse(r.get(T_SUBJECT.BIBLEVERSE));
|
||||
bean.setNotes(r.get(T_SUBJECT.NOTES));
|
||||
bean.setSourceName(r.get(T_SOURCE.NAME));
|
||||
bean.setLessonNotes(r.get(T_LESSON.NOTES));
|
||||
list.add(bean);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<KeyValueBean> getAllThemes() {
|
||||
SelectSeekStep1<Record4<Integer, String, String, String>, Integer> sql = jooq
|
||||
// @formatter:off
|
||||
.select(T_SUBJECT.PK_SUBJECT, T_SUBJECT.THEME, T_SUBJECT.SUBTHEME, T_SOURCE.NAME)
|
||||
.from(T_SUBJECT)
|
||||
.leftJoin(T_SOURCE).on(T_SOURCE.PK_SOURCE.eq(T_SUBJECT.FK_SOURCE))
|
||||
.orderBy(T_SUBJECT.ORDER_NR);
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
List<KeyValueBean> list = new ArrayList<>();
|
||||
Iterator<Record4<Integer, String, String, String>> i = sql.fetch().iterator();
|
||||
while (i.hasNext()) {
|
||||
Record4<Integer, String, String, String> r = i.next();
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(r.get(T_SOURCE.NAME)).append(": ");
|
||||
buf.append(r.get(T_SUBJECT.THEME)).append(", ");
|
||||
buf.append(r.get(T_SUBJECT.SUBTHEME));
|
||||
list.add(KeyValueBean.of(r.get(T_SUBJECT.PK_SUBJECT), buf.toString()));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void addThemeToSlot(Integer slotId, Integer pkSubject) {
|
||||
InsertOnDuplicateStep<TLessonSubjectRecord> sql = jooq
|
||||
// @formatter:off
|
||||
.insertInto(T_LESSON_SUBJECT, T_LESSON_SUBJECT.FK_LESSON, T_LESSON_SUBJECT.FK_SUBJECT)
|
||||
.select(jooq
|
||||
.select(T_LESSON.PK_LESSON, DSL.val(pkSubject))
|
||||
.from(T_LESSON)
|
||||
.where(T_LESSON.FK_SLOT.eq(slotId))
|
||||
);
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
sql.execute();
|
||||
}
|
||||
|
||||
public void removeThemeFromSlot(Integer pkLessonSubject) {
|
||||
DeleteConditionStep<TLessonSubjectRecord> sql = jooq.deleteFrom(T_LESSON_SUBJECT)
|
||||
.where(T_LESSON_SUBJECT.PK_LESSON_SUBJECT.eq(pkLessonSubject));
|
||||
LOGGER.trace(sql);
|
||||
sql.execute();
|
||||
}
|
||||
|
||||
public TLessonRecord getLesson(Integer slotId) {
|
||||
SelectConditionStep<TLessonRecord> sql = jooq
|
||||
// @formatter:off
|
||||
.selectFrom(T_LESSON)
|
||||
.where(T_LESSON.FK_SLOT.eq(slotId));
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
return sql.fetchOne();
|
||||
}
|
||||
|
||||
public void updateLesson(TLessonRecord bean) {
|
||||
UpdateConditionStep<TLessonRecord> sql = jooq
|
||||
// @formatter:off
|
||||
.update(T_LESSON)
|
||||
.set(T_LESSON.NOTES, bean.getNotes())
|
||||
.where(T_LESSON.PK_LESSON.eq(bean.getPkLesson()));
|
||||
// @formatter:on
|
||||
LOGGER.trace(sql);
|
||||
sql.execute();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package de.jottyfan.bico.modules.theme;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import de.jottyfan.bico.db.tables.records.TLessonRecord;
|
||||
import de.jottyfan.bico.modules.theme.model.KeyValueBean;
|
||||
import de.jottyfan.bico.modules.theme.model.ThemeBean;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
@Service
|
||||
public class ThemeService {
|
||||
|
||||
@Autowired
|
||||
private ThemeRepository repository;
|
||||
|
||||
public List<ThemeBean> getThemeManipulation(Integer slotId) {
|
||||
return repository.getThemeManipulation(slotId);
|
||||
}
|
||||
|
||||
public List<KeyValueBean> getAllThemes() {
|
||||
return repository.getAllThemes();
|
||||
}
|
||||
|
||||
public void addThemeToSlot(Integer slotId, Integer pkSubject) {
|
||||
repository.addThemeToSlot(slotId, pkSubject);
|
||||
}
|
||||
|
||||
public void removeThemeFromSlot(Integer pkLessonSubject) {
|
||||
repository.removeThemeFromSlot(pkLessonSubject);
|
||||
}
|
||||
|
||||
public TLessonRecord getLesson(Integer slotId) {
|
||||
return repository.getLesson(slotId);
|
||||
}
|
||||
|
||||
public void updateLesson(TLessonRecord bean) {
|
||||
repository.updateLesson(bean);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package de.jottyfan.bico.modules.theme.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class KeyValueBean implements Serializable {
|
||||
private static final long serialVersionUID = 7364119756528512005L;
|
||||
|
||||
private Integer key;
|
||||
private String value;
|
||||
|
||||
public static final KeyValueBean of(Integer key, String value) {
|
||||
KeyValueBean bean = new KeyValueBean();
|
||||
bean.setKey(key);
|
||||
bean.setValue(value);
|
||||
return bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the key
|
||||
*/
|
||||
public Integer getKey() {
|
||||
return key;
|
||||
}
|
||||
/**
|
||||
* @param key the key to set
|
||||
*/
|
||||
public void setKey(Integer key) {
|
||||
this.key = key;
|
||||
}
|
||||
/**
|
||||
* @return the value
|
||||
*/
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
/**
|
||||
* @param value the value to set
|
||||
*/
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,201 @@
|
||||
package de.jottyfan.bico.modules.theme.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class ThemeBean implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer lessonId;
|
||||
private Integer slotId;
|
||||
private Integer pkLessonSubject;
|
||||
|
||||
private String theme;
|
||||
private String subtheme;
|
||||
private String bookPages;
|
||||
private String worksheets;
|
||||
private String bibleverse;
|
||||
private String notes;
|
||||
|
||||
private String sourceName;
|
||||
|
||||
private String lessonNotes;
|
||||
|
||||
public static ThemeBean of(Integer lessonId) {
|
||||
ThemeBean bean = new ThemeBean();
|
||||
bean.setLessonId(lessonId);
|
||||
return bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the theme
|
||||
*/
|
||||
public String getTheme() {
|
||||
return theme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param theme the theme to set
|
||||
*/
|
||||
public void setTheme(String theme) {
|
||||
this.theme = theme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the subtheme
|
||||
*/
|
||||
public String getSubtheme() {
|
||||
return subtheme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param subtheme the subtheme to set
|
||||
*/
|
||||
public void setSubtheme(String subtheme) {
|
||||
this.subtheme = subtheme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the sourceName
|
||||
*/
|
||||
public String getSourceName() {
|
||||
return sourceName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param sourceName the sourceName to set
|
||||
*/
|
||||
public void setSourceName(String sourceName) {
|
||||
this.sourceName = sourceName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the slotId
|
||||
*/
|
||||
public Integer getSlotId() {
|
||||
return slotId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param slotId the slotId to set
|
||||
*/
|
||||
public void setSlotId(Integer slotId) {
|
||||
this.slotId = slotId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the bookPages
|
||||
*/
|
||||
public String getBookPages() {
|
||||
return bookPages;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bookPages the bookPages to set
|
||||
*/
|
||||
public void setBookPages(String bookPages) {
|
||||
this.bookPages = bookPages;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the worksheets
|
||||
*/
|
||||
public String getWorksheets() {
|
||||
return worksheets;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param worksheets the worksheets to set
|
||||
*/
|
||||
public void setWorksheets(String worksheets) {
|
||||
this.worksheets = worksheets;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the bibleverse
|
||||
*/
|
||||
public String getBibleverse() {
|
||||
return bibleverse;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bibleverse the bibleverse to set
|
||||
*/
|
||||
public void setBibleverse(String bibleverse) {
|
||||
this.bibleverse = bibleverse;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the notes
|
||||
*/
|
||||
public String getNotes() {
|
||||
return notes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param notes the notes to set
|
||||
*/
|
||||
public void setNotes(String notes) {
|
||||
this.notes = notes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the lessonNotes
|
||||
*/
|
||||
public String getLessonNotes() {
|
||||
return lessonNotes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param lessonNotes the lessonNotes to set
|
||||
*/
|
||||
public void setLessonNotes(String lessonNotes) {
|
||||
this.lessonNotes = lessonNotes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the lessonId
|
||||
*/
|
||||
public Integer getLessonId() {
|
||||
return lessonId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param lessonId the lessonId to set
|
||||
*/
|
||||
public void setLessonId(Integer lessonId) {
|
||||
this.lessonId = lessonId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pkLessonSubject
|
||||
*/
|
||||
public Integer getPkLessonSubject() {
|
||||
return pkLessonSubject;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pkLessonSubject the pkLessonSubject to set
|
||||
*/
|
||||
public void setPkLessonSubject(Integer pkLessonSubject) {
|
||||
this.pkLessonSubject = pkLessonSubject;
|
||||
}
|
||||
}
|
@ -34,4 +34,15 @@ body {
|
||||
|
||||
.rightpadding64 {
|
||||
margin-right: 64px;
|
||||
}
|
||||
|
||||
.sidenote {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.blockframe {
|
||||
border: 1px solid gray;
|
||||
padding: 4px;
|
||||
margin: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
@ -18,15 +18,30 @@
|
||||
<td><a th:href="@{/lesson?slotId={id}(id=${s.pkSlot})}" class="btn btn-outline-secondary"> <span th:text="${s.abbreviation}" th:if="${s.abbreviation}"></span> <i
|
||||
class="bi bi-pencil" th:if="${s.abbreviation == null || s.abbreviation.isBlank()}"></i>
|
||||
</a></td>
|
||||
<td><div th:text="${s.theme}"></div>
|
||||
<div th:text="${s.subtheme}"></div></td>
|
||||
<td>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div th:text="${s.theme}"></div>
|
||||
<div th:text="${s.subtheme}"></div>
|
||||
<div th:text="${s.lessonNotes}" class="sidenote"></div>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<a th:href="@{/theme?slotId={id}(id=${s.pkSlot})}" class="btn btn-outline-secondary"><i class="bi bi-pencil"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><span th:text="${s.slotNotes}" class="rightpadding64"></span><a th:href="@{/slot/{id}(id=${s.pkSlot})}" class="btn btn-outline-secondary rightaligned"><i
|
||||
class="bi bi-pencil"></i></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="4"><a th:href="@{/slot}" class="btn btn-outline-success">einen neues Datum anlegen</a></td>
|
||||
<td colspan="4">
|
||||
<a th:href="@{/slot}" class="btn btn-outline-success">ein neues Datum anlegen</a>
|
||||
<a th:href="@{/subject/new}" class="btn btn-outline-primary">ein neues Thema anlegen</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
21
src/main/resources/templates/subject/new.html
Normal file
21
src/main/resources/templates/subject/new.html
Normal file
@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||
<body>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="borderdist">
|
||||
TODO: implement
|
||||
<pre>
|
||||
fields:
|
||||
fk_source
|
||||
theme
|
||||
subtheme
|
||||
book_pages
|
||||
worksheets
|
||||
bibleverse
|
||||
notes
|
||||
order_nr
|
||||
</pre>
|
||||
</div>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
64
src/main/resources/templates/theme.html
Normal file
64
src/main/resources/templates/theme.html
Normal file
@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||
<body>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="borderdist">
|
||||
<div class="container">
|
||||
<th:block th:each="b : ${list}" th:if="${list.size() > 0}">
|
||||
<div class="row g-2 blockframe">
|
||||
<div class="col-sm-3">Thema:</div>
|
||||
<div class="col-sm-8"><span th:text="${b.theme}"></span></div>
|
||||
<div class="col-sm-1">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-outline-danger dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" th:href="@{/theme/delete?lessonSubjectId={id}&slotId={s}(id=${b.pkLessonSubject},s=${slotId})}">ja, endgültig verwerfen</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">Unterthema:</div>
|
||||
<div class="col-sm-9"><span th:text="${b.subtheme}"></span></div>
|
||||
<div class="col-sm-3">Buchseiten:</div>
|
||||
<div class="col-sm-9"><span th:text="${b.bookPages}"></span></div>
|
||||
<div class="col-sm-3">Arbeitsblätter:</div>
|
||||
<div class="col-sm-9"><span th:text="${b.worksheets}"></span></div>
|
||||
<div class="col-sm-3">Bibelvers (Lernvers):</div>
|
||||
<div class="col-sm-9"><span th:text="${b.bibleverse}"></span></div>
|
||||
<div class="col-sm-3">Anmerkungen zum Thema:</div>
|
||||
<div class="col-sm-9"><span th:text="${b.notes}"></span></div>
|
||||
<div class="col-sm-3">Quelle:</div>
|
||||
<div class="col-sm-9"><span th:text="${b.sourceName}"></span></div>
|
||||
</div>
|
||||
</th:block>
|
||||
<form th:action="@{/theme/update?slotId={id}(id=${slotId})}" method="post" th:object="${lesson}">
|
||||
<input type="hidden" th:field="*{pkLesson}" />
|
||||
<div class="row g-2 blockframe">
|
||||
<div class="col-sm-3">Anmerkungen zur Stunde</div>
|
||||
<div class="col-sm-9">
|
||||
<textarea th:field="*{notes}" class="form-control"></textarea>
|
||||
</div>
|
||||
<div class="col-sm-3"> </div>
|
||||
<div class="col-sm-9">
|
||||
<button type="submit" class="btn btn-outline-primary">Übernehmen</button>
|
||||
<button type="reset" class="btn btn-outline-secondary">Verwerfen</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form th:action="@{/theme/add?slotId={id}(id=${slotId})}" method="post">
|
||||
<div class="row g-2">
|
||||
<div class="col-sm-3">ein Thema hinzufügen</div>
|
||||
<div class="col-sm-7">
|
||||
<select name="pkSubject" class="form-select">
|
||||
<option th:each="t : ${themes}" th:value="${t.key}" th:text="${t.value}"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-2"><button type="submit" class="btn btn-outline-primary">hinzufügen</button></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user