This commit is contained in:
Jottyfan
2023-09-09 23:15:47 +02:00
parent bd081ff48a
commit e991c26c13
27 changed files with 909 additions and 0 deletions

View File

@ -0,0 +1,23 @@
package de.jottyfan.bico;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
*
* @author jotty
*
*/
@SpringBootApplication
public class Main extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Main.class);
}
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}

View File

@ -0,0 +1,40 @@
package de.jottyfan.bico.config;
import javax.sql.DataSource;
import org.jooq.SQLDialect;
import org.jooq.impl.DataSourceConnectionProvider;
import org.jooq.impl.DefaultConfiguration;
import org.jooq.impl.DefaultDSLContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;
/**
*
* @author jotty
*
*/
@Configuration
public class DatabaseConfiguration {
@Autowired
private DataSource dataSource;
@Bean
public DataSourceConnectionProvider connectionProvider() {
return new DataSourceConnectionProvider(new TransactionAwareDataSourceProxy(dataSource));
}
@Bean
public DefaultDSLContext dsl() {
return new DefaultDSLContext(configuration());
}
public DefaultConfiguration configuration() {
DefaultConfiguration jooqConfiguration = new DefaultConfiguration();
jooqConfiguration.set(connectionProvider());
jooqConfiguration.set(SQLDialect.POSTGRES);
return jooqConfiguration;
}
}

View File

@ -0,0 +1,10 @@
package de.jottyfan.bico.modules;
/**
*
* @author jotty
*
*/
public abstract class CommonController {
}

View File

@ -0,0 +1,19 @@
package de.jottyfan.bico.modules.index;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import de.jottyfan.bico.modules.CommonController;
/**
*
* @author jotty
*
*/
@Controller
public class IndexController extends CommonController {
@GetMapping("/")
public String getIndex() {
return "redirect:/sheet";
}
}

View File

@ -0,0 +1,25 @@
package de.jottyfan.bico.modules.index.model;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.info.BuildProperties;
import org.springframework.stereotype.Component;
/**
*
* @author jotty
*
*/
@Component
public class ManifestBean {
@Autowired(required = false)
private BuildProperties buildProperties;
/**
* @return the version of this project
*/
public String getVersion() {
return buildProperties != null ? buildProperties.getVersion()
: this.getClass().getPackage().getImplementationVersion();
}
}

View File

@ -0,0 +1,26 @@
package de.jottyfan.bico.modules.sheet;
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 de.jottyfan.bico.modules.CommonController;
/**
*
* @author jotty
*
*/
@Controller
public class SheetController extends CommonController {
@Autowired
private SheetService service;
@GetMapping("/sheet")
public String getSheet(Model model) {
model.addAttribute("list", service.getList());
return "/sheet";
}
}

View File

@ -0,0 +1,54 @@
package de.jottyfan.bico.modules.sheet;
import static de.jottyfan.bico.db.Tables.V_CALENDAR;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jooq.DSLContext;
import org.jooq.SelectSeekStep1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import de.jottyfan.bico.db.tables.records.VCalendarRecord;
import de.jottyfan.bico.modules.sheet.model.SheetBean;
/**
*
* @author jotty
*
*/
@Repository
public class SheetRepository {
private static final Logger LOGGER = LogManager.getLogger(SheetRepository.class);
@Autowired
private DSLContext jooq;
public List<SheetBean> getList() {
SelectSeekStep1<VCalendarRecord, LocalDate> sql = jooq.selectFrom(V_CALENDAR).orderBy(V_CALENDAR.SLOT_DAY);
LOGGER.trace(sql.toString());
List<SheetBean> list = new ArrayList<>();
for (VCalendarRecord r : sql.fetch()) {
SheetBean bean = new SheetBean();
bean.setAbbreviation(r.getAbbreviation());
bean.setBibleverse(r.getBibleverse());
bean.setBookPages(r.getBookPages());
bean.setFullname(r.getFullname());
bean.setLessonNotes(r.getLessonNotes());
bean.setSlotDay(r.getSlotDay());
bean.setSlotNotes(r.getSlotNotes());
bean.setSourceName(r.getSourceName());
bean.setSubjectNotes(r.getSubjectNotes());
bean.setSubtheme(r.getSubtheme());
bean.setTheme(r.getTheme());
bean.setWorksheets(r.getWorksheets());
list.add(bean);
}
return list;
}
}

View File

@ -0,0 +1,25 @@
package de.jottyfan.bico.modules.sheet;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import de.jottyfan.bico.modules.sheet.model.SheetBean;
/**
*
* @author jotty
*
*/
@Service
public class SheetService {
@Autowired
private SheetRepository repository;
public List<SheetBean> getList() {
return repository.getList();
}
}

View File

@ -0,0 +1,194 @@
package de.jottyfan.bico.modules.sheet.model;
import java.io.Serializable;
import java.time.LocalDate;
/**
*
* @author jotty
*
*/
public class SheetBean implements Serializable {
private static final long serialVersionUID = 1L;
private LocalDate slotDay;
private String fullname;
private String abbreviation;
private String sourceName;
private String theme;
private String subtheme;
private String bookPages;
private String worksheets;
private String bibleverse;
private String subjectNotes;
private String lessonNotes;
private String slotNotes;
/**
* @return the slotDay
*/
public LocalDate getSlotDay() {
return slotDay;
}
/**
* @param slotDay the slotDay to set
*/
public void setSlotDay(LocalDate slotDay) {
this.slotDay = slotDay;
}
/**
* @return the fullname
*/
public String getFullname() {
return fullname;
}
/**
* @param fullname the fullname to set
*/
public void setFullname(String fullname) {
this.fullname = fullname;
}
/**
* @return the abbreviation
*/
public String getAbbreviation() {
return abbreviation;
}
/**
* @param abbreviation the abbreviation to set
*/
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
/**
* @return the sourceName
*/
public String getSourceName() {
return sourceName;
}
/**
* @param sourceName the sourceName to set
*/
public void setSourceName(String sourceName) {
this.sourceName = sourceName;
}
/**
* @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 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 subjectNotes
*/
public String getSubjectNotes() {
return subjectNotes;
}
/**
* @param subjectNotes the subjectNotes to set
*/
public void setSubjectNotes(String subjectNotes) {
this.subjectNotes = subjectNotes;
}
/**
* @return the lessonNotes
*/
public String getLessonNotes() {
return lessonNotes;
}
/**
* @param lessonNotes the lessonNotes to set
*/
public void setLessonNotes(String lessonNotes) {
this.lessonNotes = lessonNotes;
}
/**
* @return the slotNotes
*/
public String getSlotNotes() {
return slotNotes;
}
/**
* @param slotNotes the slotNotes to set
*/
public void setSlotNotes(String slotNotes) {
this.slotNotes = slotNotes;
}
}