Initial commit

This commit is contained in:
2025-04-13 20:31:08 +02:00
commit a104e33376
264 changed files with 11050 additions and 0 deletions

Binary file not shown.

BIN
PsalmboekParser/hsv.db Normal file

Binary file not shown.

40
PsalmboekParser/info.txt Normal file
View File

@@ -0,0 +1,40 @@
gen 24
lev 13
num 7, 26
deut 28
1 kon 8
ezra alles
ps 119
jer 51
ez 16
dan 11 - class m is ook een vers
hab 3 - class d is ook een vers
mat 26, 27
mar 14
luk 1, 9, 22
joh 6
hand 7
film 1
DELETE FROM VERS WHERE BOEK_ID = 0 AND HOOFDSTUK = 24
DELETE FROM VERS WHERE BOEK_ID = 2 AND HOOFDSTUK = 13
DELETE FROM VERS WHERE BOEK_ID = 3 AND HOOFDSTUK = 7
DELETE FROM VERS WHERE BOEK_ID = 3 AND HOOFDSTUK = 26
DELETE FROM VERS WHERE BOEK_ID = 4 AND HOOFDSTUK = 28
DELETE FROM VERS WHERE BOEK_ID = 10 AND HOOFDSTUK = 8
DELETE FROM VERS WHERE BOEK_ID = 14
DELETE FROM VERS WHERE BOEK_ID = 18 AND HOOFDSTUK = 119
DELETE FROM VERS WHERE BOEK_ID = 23 AND HOOFDSTUK = 51
DELETE FROM VERS WHERE BOEK_ID = 25 AND HOOFDSTUK = 16
DELETE FROM VERS WHERE BOEK_ID = 26 AND HOOFDSTUK = 11
DELETE FROM VERS WHERE BOEK_ID = 34 AND HOOFDSTUK = 3
DELETE FROM VERS WHERE BOEK_ID = 39 AND HOOFDSTUK = 26
DELETE FROM VERS WHERE BOEK_ID = 39 AND HOOFDSTUK = 27
DELETE FROM VERS WHERE BOEK_ID = 40 AND HOOFDSTUK = 14
DELETE FROM VERS WHERE BOEK_ID = 41 AND HOOFDSTUK = 1
DELETE FROM VERS WHERE BOEK_ID = 41 AND HOOFDSTUK = 9
DELETE FROM VERS WHERE BOEK_ID = 41 AND HOOFDSTUK = 22
DELETE FROM VERS WHERE BOEK_ID = 42 AND HOOFDSTUK = 6
DELETE FROM VERS WHERE BOEK_ID = 43 AND HOOFDSTUK = 7
DELETE FROM VERS WHERE BOEK_ID = 56 AND HOOFDSTUK = 1

BIN
PsalmboekParser/parser.jar Normal file

Binary file not shown.

32
PsalmboekParser/pom.xml Normal file
View File

@@ -0,0 +1,32 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.tenvoorde</groupId>
<artifactId>BiblijaParser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<!-- jsoup HTML parser library @ http://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,28 @@
package org.tenvoorde.psalmboekparser.domain;
public class Psalmvers {
private String biblijaName;
private int chapters;
private String name;
public Psalmvers(String biblijaName, int chapters, String name) {
super();
this.biblijaName = biblijaName;
this.chapters = chapters;
this.name = name;
}
public String getBiblijaName() {
return biblijaName;
}
public int getChapters() {
return chapters;
}
public String getName() {
return name;
}
}

33
Psalmenweb-nieuw/.gitignore vendored Normal file
View File

@@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

View File

@@ -0,0 +1,117 @@
/*
* Copyright 2007-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if(mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}

Binary file not shown.

View File

@@ -0,0 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

124
Psalmenweb-nieuw/pom.xml Normal file
View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.tenvoorde</groupId>
<artifactId>psalmenweb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>psalmenweb</name>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.3.RELEASE</version>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.8.1</version>
<configuration>
<container>
<containerId>tomcat9x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>maven</cargo.remote.username>
<cargo.remote.password>tomcat</cargo.remote.password>
<cargo.remote.uri>http://tenvoorde.org:8080/manager/text</cargo.remote.uri>
</properties>
</configuration>
<deployables>
<deployable>
<groupId>org.tenvoorde</groupId>
<artifactId>psalmenweb</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,13 @@
package org.tenvoorde.psalmenweb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class PsalmenwebApplication {
public static void main(String[] args) {
SpringApplication.run(PsalmenwebApplication.class, args);
}
}

View File

@@ -0,0 +1,13 @@
package org.tenvoorde.psalmenweb;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(PsalmenwebApplication.class);
}
}

View File

@@ -0,0 +1,146 @@
package org.tenvoorde.psalmenweb.controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.tenvoorde.psalmenweb.dao.BijbelBoekDao;
import org.tenvoorde.psalmenweb.dao.BijbelversDao;
import org.tenvoorde.psalmenweb.dao.VertalingDao;
import org.tenvoorde.psalmenweb.domain.BijbelBoek;
import org.tenvoorde.psalmenweb.domain.Bijbelvers;
import javax.servlet.ServletRequest;
import java.util.List;
@Controller
public class BijbelController {
// private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private BijbelversDao bijbelversDao;
@Autowired
private VertalingDao vertalingDao;
@Autowired
private BijbelBoekDao bijbelBoekDao;
@RequestMapping(value = "/bijbel", method = RequestMethod.GET)
public String bijbel(
@RequestParam(value="t", required = true) Integer vertaling,
@RequestParam(value="b", required = true) Integer boek,
@RequestParam(value="h", required = true) Integer hoofdstuk,
Model model, ServletRequest req) {
// if (vertaling == null) {
// vertaling = 1;
// }
// if (boek == null) {
// boek = 0;
// }
// if (hoofdstuk == null) {
// hoofdstuk = 1;
// }
// model.addAttribute("vertaling", bijbelDAO.getVertaling(vertaling));
model.addAttribute("vertaling", vertalingDao.findById(vertaling).get());
model.addAttribute("boek", bijbelBoekDao.findById(boek).get());
model.addAttribute("hoofdstuk", hoofdstuk);
model.addAttribute("linkvorige", linkVorigHoofdstuk(vertaling, boek, hoofdstuk));
model.addAttribute("linkvolgende", linkVolgendHoofdstuk(vertaling, boek, hoofdstuk));
model.addAttribute("linkvertaling", genereerLinkNaarHoofdstuk((vertaling == 1 ? 2 : 1), boek, hoofdstuk));
List<Bijbelvers> verzen = bijbelversDao.getHoofdstuk(vertaling, boek, hoofdstuk);
model.addAttribute("verzen", verzen);
return "bijbel";
}
@RequestMapping(value = "/bijbelindex", method = RequestMethod.GET)
public String bijbelIndex(
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
model.addAttribute("letters", new String[] {
"1", "2", "3", "A", "D", "E", "F", "G", "H", "J",
"K", "L", "M", "N", "O", "P", "R", "S", "T", "Z"
});
model.addAttribute("vertaling", vertalingDao.findById(vertaling).get());
return "bijbelindex";
}
@RequestMapping(value = "/bijbelindexboeken", method = RequestMethod.GET)
public String bijbelIndexBoeken(
@RequestParam(value="start", required = true) String startsWith,
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
List<BijbelBoek> boeken = bijbelBoekDao.findAllByAfkortingStartsWith(startsWith);
if (boeken.size() == 1) {
// return "redirect:http://psalmenonline.nl/bijbelindexchapter?boek=" + boeken.get(0).getId() + "&t=" + vertaling;
return "redirect:bijbelindexchapter?boek=" + boeken.get(0).getId() + "&t=" + vertaling;
}
model.addAttribute("boeken", boeken);
model.addAttribute("vertaling", vertalingDao.findById(vertaling).get());
return "bijbelindexboeken";
}
@RequestMapping(value = "/bijbelindexchapter", method = RequestMethod.GET)
public String bijbelIndexHoofdstuk(
@RequestParam(value="boek", required = true) Integer boek,
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
BijbelBoek bijbelboek = bijbelBoekDao.findById(boek).get();
if (bijbelboek.getHoofdstukken() == 1) {
// return "redirect:http://psalmenonline.nl/bijbel?t=" + vertaling + "&b=" + boek + "&h=1";
return "redirect:bijbel?t=" + vertaling + "&b=" + boek + "&h=1";
}
model.addAttribute("boek", bijbelboek);
model.addAttribute("vertaling", vertalingDao.findById(vertaling).get());
return "bijbelindexchapter";
}
private String linkVorigHoofdstuk(Integer vertaling, Integer boek, int hoofdstuk) {
if (hoofdstuk > 1) {
hoofdstuk--;
} else {
if (boek == 0) {
return "#";
} else {
boek--;
hoofdstuk = bijbelBoekDao.findById(boek).get().getHoofdstukken();
}
}
return genereerLinkNaarHoofdstuk(vertaling, boek, hoofdstuk);
}
private String linkVolgendHoofdstuk(Integer vertaling, Integer boek, int hoofdstuk) {
if (hoofdstuk < bijbelBoekDao.findById(boek).get().getHoofdstukken()) {
hoofdstuk++;
} else {
if (boek == 65) {
return "#";
} else {
boek++;
hoofdstuk = 1;
}
}
return genereerLinkNaarHoofdstuk(vertaling, boek, hoofdstuk);
}
private String genereerLinkNaarHoofdstuk(Integer vertaling, Integer boek, int hoofdstuk) {
return "bijbel?t=" + vertaling + "&b=" + boek + "&h=" + hoofdstuk;
}
}

View File

@@ -0,0 +1,46 @@
package org.tenvoorde.psalmenweb.controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.tenvoorde.psalmenweb.dao.CatechismusDao;
import org.tenvoorde.psalmenweb.domain.CatechismusVraag;
import java.util.List;
import java.util.Locale;
@Controller
public class CatechismusController {
//private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private CatechismusDao catechismusDao;
@RequestMapping(value = "/hc", method = RequestMethod.GET)
public String catechismus(@RequestParam(value="z", required = false) Integer hc, Locale locale, Model model) {
//new CatechismusParser().parser(catechismusDao, logger);
//if (true) return "";
if (hc == null) {
hc = 1;
}
model.addAttribute("hc", hc);
List<CatechismusVraag> zondag = catechismusDao.findAllByZondag(hc);
model.addAttribute("zondag", zondag);
return "hc";
}
@RequestMapping(value = "/hcindex", method = RequestMethod.GET)
public String hcIndex() {
return "hcindex";
}
}

View File

@@ -0,0 +1,19 @@
package org.tenvoorde.psalmenweb.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "index";
}
@RequestMapping(value = "/info", method = RequestMethod.GET)
public String info() {
return "info";
}
}

View File

@@ -0,0 +1,60 @@
package org.tenvoorde.psalmenweb.controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.tenvoorde.psalmenweb.dao.PsalmDao;
import org.tenvoorde.psalmenweb.domain.Psalmregel;
import java.util.List;
import java.util.Locale;
@Controller
public class PsalmenController {
// private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private PsalmDao psalmDao;
@RequestMapping(value = "/psalm", method = RequestMethod.GET)
public String psalm(@RequestParam(value="p", required = false) Integer psalm, @RequestParam(value="v", required = false) Integer vers, Locale locale, Model model) {
// try {
// //new PsalmboekParser().parser(dao, logger);
// } catch (Exception e) {
// }
if (psalm == null) {
psalm = 1;
}
model.addAttribute("psalm", psalm);
model.addAttribute("vers", vers);
List<Psalmregel> psalmRegels = psalmDao.findAllByPsalm(psalm);
model.addAttribute("psalmRegels", psalmRegels);
return "psalm";
}
@RequestMapping(value = "/psalmindex", method = RequestMethod.GET)
public String psalmIndex() {
return "psalmindex";
}
@RequestMapping(value = "/psalmcheck", method = RequestMethod.GET)
public @ResponseBody Boolean checkPsalmVerseExists(
@RequestParam(value="p", required = true) Integer psalm,
@RequestParam(value="v", required = true) Integer vers) {
if (vers > psalmDao.getNumberOfVerses(psalm)) {
return Boolean.FALSE;
} else {
return Boolean.TRUE;
}
}
}

View File

@@ -0,0 +1,16 @@
package org.tenvoorde.psalmenweb.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.tenvoorde.psalmenweb.domain.BijbelBoek;
import java.util.List;
public interface BijbelBoekDao extends JpaRepository<BijbelBoek, Integer> {
// @Query("select b from BijbelBoek b where b.afkorting like ':start%'")
// public List<BijbelBoek> getBoekenStartsWith(@Param("start") String start);
List<BijbelBoek> findAllByAfkortingStartsWith(String start);
}

View File

@@ -0,0 +1,14 @@
package org.tenvoorde.psalmenweb.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.Repository;
import org.tenvoorde.psalmenweb.domain.Bijbelvers;
import java.util.List;
public interface BijbelversDao extends JpaRepository<Bijbelvers, Integer> {
@Query("select v from Bijbelvers v where v.vertaling = :vertaling and v.boek = :boek and v.hoofdstuk = :hoofdstuk order by v.vers")
List<Bijbelvers> getHoofdstuk(Integer vertaling, Integer boek, Integer hoofdstuk);
}

View File

@@ -0,0 +1,13 @@
package org.tenvoorde.psalmenweb.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.Repository;
import org.tenvoorde.psalmenweb.domain.CatechismusVraag;
import java.util.List;
public interface CatechismusDao extends Repository<CatechismusVraag, Integer> {
List<CatechismusVraag> findAllByZondag(Integer hc);
}

View File

@@ -0,0 +1,14 @@
package org.tenvoorde.psalmenweb.dao;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.tenvoorde.psalmenweb.domain.Psalmregel;
import java.util.List;
public interface PsalmDao extends CrudRepository<Psalmregel, Integer> {
List<Psalmregel> findAllByPsalm(Integer psalm);
@Query("select count(distinct p.vers) from Psalmregel p where p.psalm = :psalm")
Integer getNumberOfVerses(Integer psalm);
}

View File

@@ -0,0 +1,8 @@
package org.tenvoorde.psalmenweb.dao;
import org.springframework.data.repository.CrudRepository;
import org.tenvoorde.psalmenweb.domain.Bijbelvers;
import org.tenvoorde.psalmenweb.domain.Vertaling;
public interface VertalingDao extends CrudRepository<Vertaling, Integer> {
}

View File

@@ -0,0 +1,37 @@
package org.tenvoorde.psalmenweb.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
@Getter @Setter @ToString
@Entity
@Table(name = "BOEK", schema="psalmenweb")
public class BijbelBoek {
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
private String boek;
private String afkorting;
private int hoofdstukken;
public BijbelBoek(int id, String boek, String afkorting, int hoofdstukken) {
super();
this.id = id;
this.boek = boek;
this.afkorting = afkorting;
this.hoofdstukken = hoofdstukken;
}
public BijbelBoek() {
// TODO Auto-generated constructor stub
}
}

View File

@@ -0,0 +1,39 @@
package org.tenvoorde.psalmenweb.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
@Getter @Setter @ToString
@Entity
@Table(name = "VERS", schema = "psalmenweb")
public class Bijbelvers implements Serializable {
private static final long serialVersionUID = 4765101556890177766L;
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "VERTALING_ID")
private Integer vertaling;
@Column(name = "BOEK_ID")
private Integer boek;
@Column(name = "HOOFDSTUK")
private Integer hoofdstuk;
@Column(name = "VERS")
private Integer vers;
@Column(name = "TEKST", columnDefinition = "TEXT")
private String tekst;
}

View File

@@ -0,0 +1,34 @@
package org.tenvoorde.psalmenweb.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
@Getter @Setter @ToString
@Entity
@Table(name = "CATECHISMUS", schema = "psalmenweb")
public class CatechismusVraag implements Serializable {
private static final long serialVersionUID = 4234966319088621876L;
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "ZONDAG")
private Integer zondag;
@Column(name = "VRAAG")
private Integer vraag;
@Column(name = "TEKST_VRAAG", columnDefinition = "TEXT")
private String tekstVraag;
@Column(name = "TEKST_ANTWOORD", columnDefinition = "TEXT")
private String tekstAntwoord;
}

View File

@@ -0,0 +1,34 @@
package org.tenvoorde.psalmenweb.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
@Getter @Setter @ToString
@Entity
@Table(name = "PSALMREGEL", schema="psalmenweb")
public class Psalmregel implements Serializable {
private static final long serialVersionUID = 4765101556890177766L;
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "PSALM")
private Integer psalm;
@Column(name = "VERS")
private Integer vers;
@Column(name = "REGEL")
private Integer regel;
@Column(name = "TEKST", columnDefinition = "TEXT")
private String tekst;
}

View File

@@ -0,0 +1,50 @@
package org.tenvoorde.psalmenweb.domain;
import javax.persistence.*;
@Entity
@Table(name = "VERTALING", schema = "psalmenweb")
public class Vertaling {
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "VERTALING")
private String vertaling;
@Column(name = "AFKORTING")
private String afkorting;
public Vertaling() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getVertaling() {
return vertaling;
}
public void setVertaling(String vertaling) {
this.vertaling = vertaling;
}
public String getAfkorting() {
return afkorting;
}
public void setAfkorting(String afkorting) {
this.afkorting = afkorting;
}
}

View File

@@ -0,0 +1,11 @@
spring.jpa.hibernate.ddl-auto=validate
spring.datasource.url=jdbc:mysql://37.97.221.166:3306/psalmenweb?serverTimezone=UTC
spring.datasource.username=psalmenonline
spring.datasource.password=zMhMipovKFgc1m8n
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

View File

@@ -0,0 +1,125 @@
<%@ page session="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>${boek.boek} <c:if test="${boek.hoofdstukken > 1}">${hoofdstuk} </c:if>(${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet"
href="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<link rel="stylesheet"
href="resources/css/themes/Psalmenweb.css" />
<link rel="stylesheet"
href="resources/css/psalmenweb.css" />
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script>
<script src="resources/js/prefs.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="fixed" id="psalmhoofd">
<div class="psalmheader">${boek.boek} <c:if test="${boek.hoofdstukken > 1}">${hoofdstuk} </c:if>(${vertaling.afkorting})</div>
<a data-inline="true" data-icon="custom" data-iconpos="notext" id="bw" data-ajax="false" class="ui-btn-right" style="margin-right:350px;"></a>
<a href="hcindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="hc" data-ajax="false" class="ui-btn-right" style="margin-right:250px;"></a>
<c:choose>
<c:when test="${vertaling.id == 1}">
<a href="${linkvertaling}" data-inline="true" data-icon="custom" data-iconpos="notext" id="sv" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
</c:when>
<c:otherwise>
<a href="${linkvertaling}" data-inline="true" data-icon="custom" data-iconpos="notext" id="hsv" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
</c:otherwise>
</c:choose>
<a href="psalmindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="note" data-ajax="false" class="ui-btn-right" style="margin-right:50px;"></a>
</div>
<div data-role="content">
<br /> <br />
<c:forEach items="${verzen}" var="vers"
varStatus="varstatus">
<p class="psalmline"><span class="bijbelvers">${vers.vers}</span> ${vers.tekst}</p>
</c:forEach>
<br />
</div>
<div data-role="footer" class="bigbuttons">
<div data-role="navbar" data-position="fixed" class="bigbuttons" data-grid="d">
<ul>
<li><a href="${linkvorige}" id="left" data-icon="custom" data-ajax="false">&nbsp;</a></li>
<li><a href="#" id="minus" data-icon="custom">&nbsp;</a></li>
<li><a href="bijbelindex?t=${vertaling.id}" id="index" data-icon="custom" data-ajax="false" data-transition="pop">&nbsp;</a></li>
<li><a href="#" id="plus" data-icon="custom">&nbsp;</a></li>
<li><a href="${linkvolgende}" id="right" data-icon="custom" data-ajax="false">&nbsp;</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var PREF_TEXTSIZE;
var PREF_COLOR;
$(function() {
loadPreferences();
setPreferences();
bindListeners();
});
function changeTextSize(delta) {
var size = parseInt($(".psalmverseheader").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmverseheader").css("font-size", cssSize);
size = parseInt($(".psalmline").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmline").css("font-size", cssSize);
PREF_TEXTSIZE = size + delta;
savePreferences();
}
$(document).on('pageinit', function() {
$(document).on("click", "#minus", function(e) {
changeTextSize(-2);
});
$(document).on("click", "#plus", function(e) {
changeTextSize(2);
});
if ($("#left").attr("href") == "#") {
$("#left span.ui-icon").css("background-image", "none");
}
if ($("#right").attr("href") == "#") {
$("#right span.ui-icon").css("background-image", "none");
}
});
// function goToVerse(immediately) {
// if ("${vers}" != "") {
// var target = $("#v${vers}").get(0).offsetTop;
//
// if (target !== undefined) {
// if (immediately) {
// $.mobile.silentScroll(target);
// } else {
// setTimeout(function(){$.mobile.silentScroll(target);}, 100); // scroll after 1 sec
// }
// }
// }
// }
// $(document).on('pageshow', function(){
//goToVerse(false);
// });
</script>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<c:forEach items="${letters}" var="letter" varStatus="index">
<c:if test="${(index.index % 4 == 0) && (index.index > 0)}">
</div>
</c:if>
<c:if test="${index.index % 4 == 0}">
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
</c:if>
<a href="bijbelindexboeken?start=${letter}&t=${vertaling.id}" data-role="button" data-theme="a" data-ajax="false">${letter}</a>
&nbsp;
</c:forEach>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<c:forEach items="${boeken}" var="boek" varStatus="index">
<c:if test="${(index.index % 4 == 0) && (index.index > 0)}">
</div>
</c:if>
<c:if test="${index.index % 4 == 0}">
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
</c:if>
<a href="bijbelindexchapter?boek=${boek.id}&t=${vertaling.id}" data-role="button" data-theme="a" data-ajax="false">${boek.afkorting}</a>
&nbsp;
</c:forEach>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,176 @@
<%@ page session="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<a id="boekhoofdstuk" style="width: 100%;" href="#" data-role="button" data-transition="fade" class="indexlabel" data-theme="a">${boek.boek} <span id="choice"></span></a>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k7" href="#" data-role="button" data-theme="a">7</a>
&nbsp;
<a id="k8" href="#" data-role="button" data-theme="a">8</a>
&nbsp;
<a id="k9" href="#" data-role="button" data-theme="a">9</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k4" href="#" data-role="button" data-theme="a">4</a>
&nbsp;
<a id="k5" href="#" data-role="button" data-theme="a">5</a>
&nbsp;
<a id="k6" href="#" data-role="button" data-theme="a">6</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k1" href="#" data-role="button" data-theme="a">1</a>
&nbsp;
<a id="k2" href="#" data-role="button" data-theme="a">2</a>
&nbsp;
<a id="k3" href="#" data-role="button" data-theme="a">3</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="kd" href="#" data-role="button" data-theme="a">&#x25C0;</a>
&nbsp;
<a id="k0" href="#" data-role="button" data-theme="a">0</a>
&nbsp;
<a id="ke" href="#" data-role="button" data-theme="a">&#x2714;</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$(".indexknoppengroep a").click(function() {
if ($("div.ui-loader.ui-overlay-shadow").length == 1) {
return;
}
var knop = this.id.substring(1);
switch(knop) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
addNumber(knop);
break;
case "d":
removeChar();
break;
case "e":
if (! $("#boekhoofdstuk").hasClass("invalid")) {
var choice = $("#choice").html();
if (choice == "") {
choice = "1";
$("#choice").html(choice);
}
window.location.href = "bijbel?t=${vertaling.id}&b=${boek.id}&h=" + choice;
}
}
});
});
function addNumber(knop) {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte == 3) {
choice = "";
}
if (lengte == 0 && knop == "0") {
return;
}
choice += knop;
$("#choice").html(choice);
checkCorrectChapter();
}
function removeChar() {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte > 0) {
choice = choice.substring(0, choice.length - 1);
$("#choice").html(choice);
}
checkCorrectChapter();
}
function checkCorrectChapter() {
var hoofdstuk = parseInt($("#choice").html());
if (hoofdstuk > ${boek.hoofdstukken}) {
$("#boekhoofdstuk").addClass("invalid");
} else {
$("#boekhoofdstuk").removeClass("invalid");
}
}
function toastVerseDoesNotExist() {
$("a#choice span span").addClass("invalid");
$("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>Dit vers bestaat niet.</h1></div>")
.css({
display: "block",
// opacity: 0.90,
position: "fixed",
padding: "7px",
"text-align": "center",
width: "350px",
left: ($(window).width() - 364) / 2,
top: $(window).height() / 2})
.appendTo($.mobile.pageContainer).delay(2000)
.fadeOut(400, function(){
$(this).remove();
var choice = $("a#choice span span").html();
choice = choice.substring(0, choice.indexOf("vers") + 5);
$("a#choice span span").html(choice);
$("a#choice span span").removeClass("invalid");
});
}
function checkPsalmVerseExists(psalm, vers) {
var result;
$.ajax({
url: 'psalmcheck',
async: false,
data: {p: psalm, v: vers}, //'p=' & psalm & '&v=' & vers,
success: function(data) {
result = data;
}
});
return result;
}
</script>
</body>
</html>

View File

@@ -0,0 +1,124 @@
<%@ page session="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Zondag ${hc}</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet"
href="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<link rel="stylesheet"
href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet"
href="resources/css/psalmenweb.css" />
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script>
<script src="resources/js/prefs.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="fixed">
<div class="psalmheader">Zondag ${hc}</div>
<a data-inline="true" data-icon="custom" data-iconpos="notext" id="bw" data-ajax="false" class="ui-btn-right" style="margin-right:350px;"></a>
<a href="psalmindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="note" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
<a href="bijbelindex?t=1" data-inline="true" data-icon="custom" data-iconpos="notext" id="book" data-ajax="false" class="ui-btn-right" style="margin-right:50px;"></a>
</div>
<div data-role="content">
<br /> <br />
<c:forEach items="${zondag}" var="vraag" varStatus="varstatus">
<div class="psalmverseheader">Vraag ${vraag.vraag}</div>
<p class="hclinequestion">${vraag.tekstVraag}</p>
<p class="hclineanswer">${vraag.tekstAntwoord}</p>
<br />
</c:forEach>
<br />
</div>
<div data-role="footer" class="bigbuttons">
<div data-role="navbar" class="bigbuttons" data-position="fixed">
<ul>
<li><a href="hc?z=${hc - 1}" id="left" data-icon="custom" data-ajax="false">&nbsp;</a></li>
<li><a href="#" id="minus" data-icon="custom">&nbsp;</a></li>
<li><a href="hcindex" id="index" data-icon="custom" data-ajax="false" data-transition="pop">&nbsp;</a></li>
<li><a href="#" id="plus" data-icon="custom">&nbsp;</a></li>
<li><a href="hc?z=${hc + 1}" id="right" data-icon="custom" data-ajax="false">&nbsp;</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var PREF_TEXTSIZE;
var PREF_COLOR;
$(function() {
loadPreferences();
setPreferences();
bindListeners();
});
function changeTextSize(delta) {
var size = parseInt($(".psalmverseheader").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmverseheader").css("font-size", cssSize);
size = parseInt($(".hclinequestion").css("font-size"));
cssSize = (size + delta) + "px";
$(".hclinequestion").css("font-size", cssSize);
size = parseInt($(".hclineanswer").css("font-size"));
cssSize = (size + delta) + "px";
$(".hclineanswer").css("font-size", cssSize);
PREF_TEXTSIZE = size + delta;
savePreferences();
}
$(document).on('pageinit', function() {
$(document).on("click", "#minus", function(e) {
changeTextSize(-2);
});
$(document).on("click", "#plus", function(e) {
changeTextSize(2);
});
if ('${hc}' == '1') {
$("#left").attr("href", "#");
$("#left span.ui-icon").css("background-image", "none");
}
if ('${hc}' == '52') {
$("#right").attr("href", "#");
$("#right span.ui-icon").css("background-image", "none");
}
});
function goToVerse(immediately) {
if ("${vers}" != "") {
var target = $("#v${vers}").get(0).offsetTop;
if (target !== undefined) {
if (immediately) {
$.mobile.silentScroll(target);
} else {
setTimeout(function(){$.mobile.silentScroll(target);}, 100); // scroll after 1 sec
}
}
}
}
$(document).on('pageshow', function(){
goToVerse(false);
});
</script>
</body>
</html>

View File

@@ -0,0 +1,146 @@
<%@ page session="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Index Catechismus</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<a id="hc" style="width: 100%;" href="#" data-role="button" data-transition="fade" class="indexlabel" data-theme="a">Zondag <span id="choice"></span></a>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k7" href="#" data-role="button" data-theme="a">7</a>
&nbsp;
<a id="k8" href="#" data-role="button" data-theme="a">8</a>
&nbsp;
<a id="k9" href="#" data-role="button" data-theme="a">9</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k4" href="#" data-role="button" data-theme="a">4</a>
&nbsp;
<a id="k5" href="#" data-role="button" data-theme="a">5</a>
&nbsp;
<a id="k6" href="#" data-role="button" data-theme="a">6</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k1" href="#" data-role="button" data-theme="a">1</a>
&nbsp;
<a id="k2" href="#" data-role="button" data-theme="a">2</a>
&nbsp;
<a id="k3" href="#" data-role="button" data-theme="a">3</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="kd" href="#" data-role="button" data-theme="a">&#8630;</a>
&nbsp;
<a id="k0" href="#" data-role="button" data-theme="a">0</a>
&nbsp;
<a id="ke" href="#" data-role="button" data-theme="a">&#x2714;</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$(".indexknoppengroep a").click(function() {
if ($("div.ui-loader.ui-overlay-shadow").length == 1) {
return;
}
var knop = this.id.substring(1);
switch(knop) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
addNumber(knop);
break;
case "d":
if ($("#choice").html().length == 0) {
window.history.back();
} else {
removeChar();
}
break;
case "e":
if (! $("#hc").hasClass("invalid")) {
var choice = $("#choice").html();
window.location.href = "hc?z=" + choice;
}
}
if ($("#choice").html().length == 0) {
$("a#kd span span").html("&#8630;");
} else {
$("a#kd span span").html("&#x25C0;");
}
});
});
function addNumber(knop) {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte == 2) {
choice = "";
}
if (lengte == 0 && knop == "0") {
return;
}
choice += knop;
$("#choice").html(choice);
checkCorrectChoice();
}
function removeChar() {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte > 0) {
choice = choice.substring(0, choice.length - 1);
$("#choice").html(choice);
}
checkCorrectChoice();
}
function checkCorrectChoice() {
var hc = parseInt($("#choice").html());
if (hc > 52) {
$("#hc").addClass("invalid");
} else {
$("#hc").removeClass("invalid");
}
}
</script>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Psalmen</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 30%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a href="bijbelindex?t=1" style="width: 100%;" data-role="button" data-theme="a" data-ajax="false">Bijbel (HSV)</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a href="bijbelindex?t=2" style="width: 100%;"data-role="button" data-theme="a" data-ajax="false">Bijbel (SV)</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a href="psalmindex" style="width: 100%;" data-role="button" data-theme="a" data-ajax="false">Psalmen</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a href="hcindex" style="width: 100%;" data-role="button" data-theme="a" data-ajax="false">Heidelbergse Catechismus</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a style="width: 100%; visibility: hidden;" data-role="button" data-theme="a" data-ajax="false">Psalmen</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a href="info" style="width: 100%;" data-role="button" data-theme="a" data-ajax="false">Informatie</a>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,43 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Psalmen</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 30%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<p style="font-size: 40px; line-height: 1.5; text-align: left;">
Het doel van deze website is om de Bijbel en de psalmen toegankelijk te maken voor slecht- en minderzienden.
De website is geoptimaliseerd voor tablets. Een internetverbinding is noodzakelijk!
</p>
<p style="font-size: 40px; line-height: 1.5; text-align: left;">
Ik help u graag bij problemen of vragen. Telefoon: 06-14243000 of email: <a href="mailto:info@psalmenonline.nl">info@psalmenonline.nl</a>.
</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,132 @@
<%@ page session="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Psalm ${psalm}</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet"
href="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<link rel="stylesheet"
href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet"
href="resources/css/psalmenweb.css" />
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script>
<script src="resources/js/prefs.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="fixed">
<div class="psalmheader">Psalm ${psalm}</div>
<a data-inline="true" data-icon="custom" data-iconpos="notext" id="bw" data-ajax="false" class="ui-btn-right" style="margin-right:350px;"></a>
<a href="hcindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="hc" data-ajax="false" class="ui-btn-right" style="margin-right:150px;">a</a>
<a href="bijbelindex?t=1" data-inline="true" data-icon="custom" data-iconpos="notext" id="book" data-ajax="false" class="ui-btn-right" style="margin-right:50px;"></a>
</div>
<div data-role="content">
<br /> <br />
<c:forEach items="${psalmRegels}" var="psalmregel"
varStatus="varstatus">
<c:if
test="${(varstatus.index == 0) || (psalmregel.vers != psalmRegels[varstatus.index - 1].vers)}">
<a id="v${psalmregel.vers}"></a>
<br />
<br />
<br />
<c:choose>
<c:when test="${psalmregel.vers == 0}">
<div class="psalmverseheader">Voorzang</div>
</c:when>
<c:otherwise>
<div class="psalmverseheader">Vers ${psalmregel.vers}</div>
</c:otherwise>
</c:choose>
</c:if>
<p class="psalmline">${psalmregel.tekst}</p>
</c:forEach>
<br />
</div>
<div data-role="footer" class="bigbuttons">
<div data-role="navbar" class="bigbuttons" data-position="fixed">
<ul>
<li><a href="psalm?p=${psalm - 1}" id="left" data-icon="custom" data-ajax="false">&nbsp;</a></li>
<li><a href="#" id="minus" data-icon="custom">&nbsp;</a></li>
<li><a href="psalmindex" id="index" data-icon="custom" data-ajax="false" data-transition="pop">&nbsp;</a></li>
<li><a href="#" id="plus" data-icon="custom">&nbsp;</a></li>
<li><a href="psalm?p=${psalm + 1}" id="right" data-icon="custom" data-ajax="false">&nbsp;</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var PREF_TEXTSIZE;
var PREF_COLOR;
$(function() {
loadPreferences();
setPreferences();
bindListeners();
});
function changeTextSize(delta) {
var size = parseInt($(".psalmverseheader").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmverseheader").css("font-size", cssSize);
size = parseInt($(".psalmline").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmline").css("font-size", cssSize);
}
$(function () {
$(document).on("click", "#minus", function(e) {
changeTextSize(-2);
//goToVerse(true);
});
$(document).on("click", "#plus", function(e) {
changeTextSize(2);
//goToVerse(true);
});
if ('${psalm}' == '1') {
$("#left").attr("href", "#");
$("#left span.ui-icon").css("background-image", "none");
}
if ('${psalm}' == '150') {
$("#right").attr("href", "#");
$("#right span.ui-icon").css("background-image", "none");
}
});
function goToVerse(immediately) {
if ("${vers}" != "") {
var target = $("#v${vers}").get(0).offsetTop;
if (target !== undefined) {
if (immediately) {
$.mobile.silentScroll(target);
} else {
setTimeout(function(){$.mobile.silentScroll(target);}, 100); // scroll after 1 sec
}
}
}
}
$(document).on('pageshow', function(){
goToVerse(false);
});
</script>
</body>
</html>

View File

@@ -0,0 +1,232 @@
<%@ page session="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Index Psalmen</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="https://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<a id="choice" style="width: 100%;" href="#" data-role="button" data-transition="fade" class="indexlabel" data-theme="a">Psalm</a>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k7" href="#" data-role="button" data-theme="a">7</a>
&nbsp;
<a id="k8" href="#" data-role="button" data-theme="a">8</a>
&nbsp;
<a id="k9" href="#" data-role="button" data-theme="a">9</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k4" href="#" data-role="button" data-theme="a">4</a>
&nbsp;
<a id="k5" href="#" data-role="button" data-theme="a">5</a>
&nbsp;
<a id="k6" href="#" data-role="button" data-theme="a">6</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k1" href="#" data-role="button" data-theme="a">1</a>
&nbsp;
<a id="k2" href="#" data-role="button" data-theme="a">2</a>
&nbsp;
<a id="k3" href="#" data-role="button" data-theme="a">3</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="kd" href="#" data-role="button" data-theme="a">&#8630;</a>
&nbsp;
<a id="k0" href="#" data-role="button" data-theme="a">0</a>
&nbsp;
<a id="ke" href="#" data-role="button" data-theme="a">&#x2714;</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$(".indexknoppengroep a").click(function() {
if ($("div.ui-loader.ui-overlay-shadow").length == 1) {
return;
}
var knop = this.id.substring(1);
switch(knop) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
addNumber(knop);
break;
case "d":
if ($("a#choice span span").html().length < 7) {
window.history.back();
} else {
removeChar();
}
break;
case "e":
if ($("a#choice span span").hasClass("invalid")) {
break;
}
var choice = $("a#choice span span").html();
if (choice.indexOf("vers") > 0) {
var psalm = choice.substring(6, choice.indexOf("vers") - 1);
var vers = choice.substring(choice.indexOf("vers") + 5);
if (vers == "") {
vers = 1;
choice += "1";
$("a#choice span span").html(choice);
}
if (! checkPsalmVerseExists(psalm, vers)) {
toastVerseDoesNotExist();
} else {
window.location.href = "psalm?p=" + psalm + "&v=" + vers;
//window.location.href = "/psalm?p=" + psalm + "&v=" + vers;
}
} else {
if (! (choice.length < 7)) {
choice += " vers ";
$("a#choice span span").html(choice);
}
}
}
var choice = $("a#choice span span").html();
if (choice.length < 7) {
$("a#kd span span").html("&#8630;");
} else {
$("a#kd span span").html("&#x25C0;");
}
});
});
function addNumber(knop) {
var choice = $("a#choice span span").html();
var lengte = choice.length;
if (choice.indexOf("vers") > 0) {
var vers = choice.substring(choice.indexOf("vers") + 5);
var verslengte = vers.length;
if (verslengte < 2) {
if (!(verslengte == 0 && knop == "0")) {
choice += knop;
}
} else {
if (!(knop == "0")) {
choice = choice.substring(0, choice.indexOf("vers") + 5) + knop;
}
}
$("a#choice span span").html(choice);
} else {
if (lengte == 5) {
choice += " ";
lengte++;
}
if (lengte < 9) {
if (!(lengte == 6 && knop == "0")) {
choice += knop;
}
} else {
if (!(knop == "0")) {
choice = "Psalm " + knop;
}
}
$("a#choice span span").html(choice);
checkCorrectPsalm();
}
}
function removeChar() {
var choice = $("a#choice span span").html();
var lengte = choice.length;
if (lengte > 5) {
choice = choice.substring(0, choice.length - 1);
if (choice.substring(choice.length - 4) == "vers") {
choice = choice.substring(0, choice.length - 5);
}
$("a#choice span span").html(choice);
checkCorrectPsalm();
}
}
function checkCorrectPsalm() {
var psalm = parseInt($("a#choice span span").html().substring(6));
if (psalm < 1 || psalm > 150) {
$("a#choice span span").addClass("invalid");
} else {
$("a#choice span span").removeClass("invalid");
}
}
function toastVerseDoesNotExist() {
$("a#choice span span").addClass("invalid");
$("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>Dit vers bestaat niet.</h1></div>")
.css({
display: "block",
// opacity: 0.90,
position: "fixed",
padding: "7px",
"text-align": "center",
width: "350px",
left: ($(window).width() - 364) / 2,
top: $(window).height() / 2})
.appendTo($.mobile.pageContainer).delay(2000)
.fadeOut(400, function(){
$(this).remove();
var choice = $("a#choice span span").html();
choice = choice.substring(0, choice.indexOf("vers") + 5);
$("a#choice span span").html(choice);
$("a#choice span span").removeClass("invalid");
});
}
function checkPsalmVerseExists(psalm, vers) {
var result;
$.ajax({
url: 'psalmcheck',
async: false,
data: {p: psalm, v: vers}, //'p=' & psalm & '&v=' & vers,
success: function(data) {
result = data;
}
});
return result;
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile: Theme Download</title>
<link rel="stylesheet" href="themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile.structure-1.3.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="inline">
<h1>It Worked!</h1>
</div>
<div data-role="content" data-theme="a">
<p>Your theme was successfully downloaded. You can use this page as a reference for how to link it up!</p>
<pre>
<strong>&lt;link rel=&quot;stylesheet&quot; href=&quot;themes/Psalmenweb.min.css&quot; /&gt;</strong>
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://code.jquery.com/mobile/1.3.2/jquery.mobile.structure-1.3.2.min.css&quot; /&gt;
&lt;script src=&quot;http://code.jquery.com/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js&quot;&gt;&lt;/script&gt;
</pre>
<p>This is content color swatch "A" and a preview of a <a href="#" class="ui-link">link</a>.</p>
<label for="slider1">Input slider:</label>
<input type="range" name="slider1" id="slider1" value="50" min="0" max="100" data-theme="a" />
<fieldset data-role="controlgroup" data-type="horizontal" data-role="fieldcontain">
<legend>Cache settings:</legend>
<input type="radio" name="radio-choice-a1" id="radio-choice-a1" value="on" checked="checked" />
<label for="radio-choice-a1">On</label>
<input type="radio" name="radio-choice-a1" id="radio-choice-b1" value="off" />
<label for="radio-choice-b1">Off</label>
</fieldset>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,173 @@
@CHARSET "ISO-8859-1";
.ui-bar-a {
background-image: none;
}
.psalmheader {
font-size: 60px;
}
.psalmverseheader {
font-size: 60px;
font-weight: bold;
}
.psalmtext {
/* line-height: 3; */
}
.psalmline {
font-size: 60px;
}
.hclinequestion {
font-size: 60px;
line-height: 150%;
font-style: italic;
}
.hclineanswer {
font-size: 60px;
line-height: 150%;
}
.indexknoppengroep {
margin-bottom: 0.1em !important;
text-align: center !important;
}
.indexlabel {
margin-top: 0px !important;
margin-bottom: 0.1em !important;
width: 50%;
margin-left: auto;
margin-right: auto;
}
.invalid {
color: red;
}
.ui-icon {
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
#minus .ui-icon {
background: rgba(0,0,0,0);
background-image: url(images/14-minus@2x.png);
background-repeat: no-repeat;
}
#plus .ui-icon {
background: rgba(0,0,0,0);
background-image: url(images/13-plus@2x.png);
background-repeat: no-repeat;
}
#left .ui-icon {
background: rgba(0,0,0,0);
background-image: url(images/05-arrow-west@2x.png);
background-repeat: no-repeat;
}
#right .ui-icon {
background: rgba(0,0,0,0);
background-image: url(images/01-arrow-east@2x.png);
background-repeat: no-repeat;
}
#index .ui-icon {
background: rgba(0,0,0,0);
background-image: url(images/60-dialpad@2x.png);
background-repeat: no-repeat;
}
#book .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/96-book@2x.png);
background-repeat: no-repeat;
}
#note .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/194-note-2@2x.png);
background-repeat: no-repeat;
}
#sv .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/sv.png);
background-repeat: no-repeat;
}
#hsv .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/hsv.png);
background-repeat: no-repeat;
}
#hc .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/hc.png);
background-repeat: no-repeat;
}
#bw .ui-icon {
background: rgba(238,238,238,1);
background-image: url(images/bw.png);
background-repeat: no-repeat;
}
.bigbuttons .ui-btn .ui-btn-inner {
padding-top: 40px !important;
}
.bigbuttons .ui-btn .ui-icon {
width: 60px !important;
height: 60px !important;
margin-left: -15px !important;
box-shadow: none !important;
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
-webkit-border-radius: none !important;
border-radius: none !important;
}
.bigbuttons .ui-btn-inner .ui-icon {
width: 60px !important;
height: 60px !important;
margin-left: -15px !important;
box-shadow: none !important;
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
-webkit-border-radius: none !important;
border-radius: none !important;
}
#psalmhoofd button{height:50px;width:200px;}
.bijbelvers {
font-weight: bold;
font-variant: small-caps;
}
.ui-header .ui-btn, .ui-header .ui-icon, .ui-header .ui-btn-inner {
width: 56px;
height: 56px;
border-radius: 0;
border: none;
}
.ui-header .ui-icon {
margin: 0px;
border-radius: 0;
}
.ui-header {
height: 71px;
border-radius: 0;
}
.ui-btn-inner {
border-top: none;
overflow: visible;
text-overflow: clip;
white-space: normal;
}

View File

@@ -0,0 +1,795 @@
/*!
* jQuery Mobile 1.3.2
* Git HEAD hash: 528cf0e96940644ea644096bfeb913ed920ffaef <> Date: Fri Jul 19 2013 22:17:57 UTC
* http://jquerymobile.com
*
* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
*/
/* Swatches */
/* A
-----------------------------------------------------------------------------------------------------------*/
.ui-bar-a {
border: 1px solid #b3b3b3 /*{a-bar-border}*/;
background: #eeeeee /*{a-bar-background-color}*/;
color: #3e3e3e /*{a-bar-color}*/;
font-weight: bold;
text-shadow: 0 /*{a-bar-shadow-x}*/ 1px /*{a-bar-shadow-y}*/ 0 /*{a-bar-shadow-radius}*/ #ffffff /*{a-bar-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{a-bar-background-start}*/), to( #dddddd /*{a-bar-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f0f0f0 /*{a-bar-background-start}*/, #dddddd /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f0f0f0 /*{a-bar-background-start}*/, #dddddd /*{a-bar-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f0f0f0 /*{a-bar-background-start}*/, #dddddd /*{a-bar-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f0f0f0 /*{a-bar-background-start}*/, #dddddd /*{a-bar-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f0f0f0 /*{a-bar-background-start}*/, #dddddd /*{a-bar-background-end}*/);
}
.ui-bar-a .ui-link-inherit {
color: #3e3e3e /*{a-bar-color}*/;
}
.ui-bar-a a.ui-link {
color: #7cc4e7 /*{a-bar-link-color}*/;
font-weight: bold;
}
.ui-bar-a a.ui-link:visited {
color: #2489ce /*{a-bar-link-visited}*/;
}
.ui-bar-a a.ui-link:hover {
color: #2489ce /*{a-bar-link-hover}*/;
}
.ui-bar-a a.ui-link:active {
color: #2489ce /*{a-bar-link-active}*/;
}
.ui-bar-a,
.ui-bar-a input,
.ui-bar-a select,
.ui-bar-a textarea,
.ui-bar-a button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-a,
.ui-overlay-a {
border: 1px solid #545454 /*{a-body-border}*/;
color: #ffffff /*{a-body-color}*/;
text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ #444444 /*{a-body-shadow-color}*/;
background: #F00000 /*{a-body-background-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #000000 /*{a-body-background-start}*/), to( #000000 /*{a-body-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #000000 /*{a-body-background-start}*/, #000000 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #000000 /*{a-body-background-start}*/, #000000 /*{a-body-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #000000 /*{a-body-background-start}*/, #000000 /*{a-body-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #000000 /*{a-body-background-start}*/, #000000 /*{a-body-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #000000 /*{a-body-background-start}*/, #000000 /*{a-body-background-end}*/);
}
.ui-overlay-a {
background-image: none;
border-width: 0;
}
.ui-body-a,
.ui-body-a input,
.ui-body-a select,
.ui-body-a textarea,
.ui-body-a button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-a .ui-link-inherit {
color: #ffffff /*{a-body-color}*/;
}
.ui-body-a .ui-link {
color: #2489ce /*{a-body-link-color}*/;
font-weight: bold;
}
.ui-body-a .ui-link:visited {
color: #2489ce /*{a-body-link-visited}*/;
}
.ui-body-a .ui-link:hover {
color: #2489ce /*{a-body-link-hover}*/;
}
.ui-body-a .ui-link:active {
color: #2489ce /*{a-body-link-active}*/;
}
.ui-btn-up-a {
border: 1px solid #1f1f1f /*{a-bup-border}*/;
background: #1f1f1f /*{a-bup-background-color}*/;
font-weight: bold;
color: #ffffff /*{a-bup-color}*/;
text-shadow: 0 /*{a-bup-shadow-x}*/ 1px /*{a-bup-shadow-y}*/ 0 /*{a-bup-shadow-radius}*/ #444444 /*{a-bup-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #222222 /*{a-bup-background-start}*/), to( #1b1b1b /*{a-bup-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #222222 /*{a-bup-background-start}*/, #1b1b1b /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #222222 /*{a-bup-background-start}*/, #1b1b1b /*{a-bup-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #222222 /*{a-bup-background-start}*/, #1b1b1b /*{a-bup-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #222222 /*{a-bup-background-start}*/, #1b1b1b /*{a-bup-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #222222 /*{a-bup-background-start}*/, #1b1b1b /*{a-bup-background-end}*/);
}
.ui-btn-up-a:visited,
.ui-btn-up-a a.ui-link-inherit {
color: #ffffff /*{a-bup-color}*/;
}
.ui-btn-hover-a {
border: 1px solid #232323 /*{a-bhover-border}*/;
background: #232323 /*{a-bhover-background-color}*/;
font-weight: bold;
color: #ffffff /*{a-bhover-color}*/;
text-shadow: 0 /*{a-bhover-shadow-x}*/ 1px /*{a-bhover-shadow-y}*/ 0 /*{a-bhover-shadow-radius}*/ #444444 /*{a-bhover-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #262626 /*{a-bhover-background-start}*/), to( #1f1f1f /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #262626 /*{a-bhover-background-start}*/, #1f1f1f /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #262626 /*{a-bhover-background-start}*/, #1f1f1f /*{a-bhover-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #262626 /*{a-bhover-background-start}*/, #1f1f1f /*{a-bhover-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #262626 /*{a-bhover-background-start}*/, #1f1f1f /*{a-bhover-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #262626 /*{a-bhover-background-start}*/, #1f1f1f /*{a-bhover-background-end}*/);
}
.ui-btn-hover-a:visited,
.ui-btn-hover-a:hover,
.ui-btn-hover-a a.ui-link-inherit {
color: #ffffff /*{a-bhover-color}*/;
}
.ui-btn-down-a {
border: 1px solid #232323 /*{a-bdown-border}*/;
background: #232323 /*{a-bdown-background-color}*/;
font-weight: bold;
color: #ffffff /*{a-bdown-color}*/;
text-shadow: 0 /*{a-bdown-shadow-x}*/ 1px /*{a-bdown-shadow-y}*/ 0 /*{a-bdown-shadow-radius}*/ #444444 /*{a-bdown-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #1f1f1f /*{a-bdown-background-start}*/), to( #262626 /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #1f1f1f /*{a-bdown-background-start}*/, #262626 /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #1f1f1f /*{a-bdown-background-start}*/, #262626 /*{a-bdown-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #1f1f1f /*{a-bdown-background-start}*/, #262626 /*{a-bdown-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #1f1f1f /*{a-bdown-background-start}*/, #262626 /*{a-bdown-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #1f1f1f /*{a-bdown-background-start}*/, #262626 /*{a-bdown-background-end}*/);
}
.ui-btn-down-a:visited,
.ui-btn-down-a:hover,
.ui-btn-down-a a.ui-link-inherit {
color: #ffffff /*{a-bdown-color}*/;
}
.ui-btn-up-a,
.ui-btn-hover-a,
.ui-btn-down-a {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
text-decoration: none;
}
/* B
-----------------------------------------------------------------------------------------------------------*/
.ui-bar-b {
border: 1px solid #b3b3b3 /*{b-bar-border}*/;
background: #eeeeee /*{b-bar-background-color}*/;
color: #3e3e3e /*{b-bar-color}*/;
font-weight: bold;
text-shadow: 0 /*{b-bar-shadow-x}*/ 1px /*{b-bar-shadow-y}*/ 0 /*{b-bar-shadow-radius}*/ #ffffff /*{b-bar-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{b-bar-background-start}*/), to( #dddddd /*{b-bar-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f0f0f0 /*{b-bar-background-start}*/, #dddddd /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f0f0f0 /*{b-bar-background-start}*/, #dddddd /*{b-bar-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f0f0f0 /*{b-bar-background-start}*/, #dddddd /*{b-bar-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f0f0f0 /*{b-bar-background-start}*/, #dddddd /*{b-bar-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f0f0f0 /*{b-bar-background-start}*/, #dddddd /*{b-bar-background-end}*/);
}
.ui-bar-b .ui-link-inherit {
color: #3e3e3e /*{b-bar-color}*/;
}
.ui-bar-b a.ui-link {
color: #7cc4e7 /*{b-bar-link-color}*/;
font-weight: bold;
}
.ui-bar-b a.ui-link:visited {
color: #2489ce /*{b-bar-link-visited}*/;
}
.ui-bar-b a.ui-link:hover {
color: #2489ce /*{b-bar-link-hover}*/;
}
.ui-bar-b a.ui-link:active {
color: #2489ce /*{b-bar-link-active}*/;
}
.ui-bar-b,
.ui-bar-b input,
.ui-bar-b select,
.ui-bar-b textarea,
.ui-bar-b button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-b,
.ui-overlay-b {
border: 1px solid #aaaaaa /*{b-body-border}*/;
color: #333333 /*{b-body-color}*/;
text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ #ffffff /*{b-body-shadow-color}*/;
background: #f9f9f9 /*{b-body-background-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{b-body-background-start}*/), to( #eeeeee /*{b-body-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f9f9f9 /*{b-body-background-start}*/, #eeeeee /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f9f9f9 /*{b-body-background-start}*/, #eeeeee /*{b-body-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f9f9f9 /*{b-body-background-start}*/, #eeeeee /*{b-body-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f9f9f9 /*{b-body-background-start}*/, #eeeeee /*{b-body-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f9f9f9 /*{b-body-background-start}*/, #eeeeee /*{b-body-background-end}*/);
}
.ui-overlay-b {
background-image: none;
border-width: 0;
}
.ui-body-b,
.ui-body-b input,
.ui-body-b select,
.ui-body-b textarea,
.ui-body-b button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-b .ui-link-inherit {
color: #333333 /*{b-body-color}*/;
}
.ui-body-b .ui-link {
color: #2489ce /*{b-body-link-color}*/;
font-weight: bold;
}
.ui-body-b .ui-link:visited {
color: #2489ce /*{b-body-link-visited}*/;
}
.ui-body-b .ui-link:hover {
color: #2489ce /*{b-body-link-hover}*/;
}
.ui-body-b .ui-link:active {
color: #2489ce /*{b-body-link-active}*/;
}
.ui-btn-up-b {
border: 1px solid #cccccc /*{b-bup-border}*/;
background: #eeeeee /*{b-bup-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{b-bup-color}*/;
text-shadow: 0 /*{b-bup-shadow-x}*/ 1px /*{b-bup-shadow-y}*/ 0 /*{b-bup-shadow-radius}*/ #ffffff /*{b-bup-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #ffffff /*{b-bup-background-start}*/), to( #f1f1f1 /*{b-bup-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #ffffff /*{b-bup-background-start}*/, #f1f1f1 /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #ffffff /*{b-bup-background-start}*/, #f1f1f1 /*{b-bup-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #ffffff /*{b-bup-background-start}*/, #f1f1f1 /*{b-bup-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #ffffff /*{b-bup-background-start}*/, #f1f1f1 /*{b-bup-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #ffffff /*{b-bup-background-start}*/, #f1f1f1 /*{b-bup-background-end}*/);
}
.ui-btn-up-b:visited,
.ui-btn-up-b a.ui-link-inherit {
color: #2f3e46 /*{b-bup-color}*/;
}
.ui-btn-hover-b {
border: 1px solid #bbbbbb /*{b-bhover-border}*/;
background: #dfdfdf /*{b-bhover-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{b-bhover-color}*/;
text-shadow: 0 /*{b-bhover-shadow-x}*/ 1px /*{b-bhover-shadow-y}*/ 0 /*{b-bhover-shadow-radius}*/ #ffffff /*{b-bhover-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f6f6f6 /*{b-bhover-background-start}*/), to( #e0e0e0 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f6f6f6 /*{b-bhover-background-start}*/, #e0e0e0 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f6f6f6 /*{b-bhover-background-start}*/, #e0e0e0 /*{b-bhover-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f6f6f6 /*{b-bhover-background-start}*/, #e0e0e0 /*{b-bhover-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f6f6f6 /*{b-bhover-background-start}*/, #e0e0e0 /*{b-bhover-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f6f6f6 /*{b-bhover-background-start}*/, #e0e0e0 /*{b-bhover-background-end}*/);
}
.ui-btn-hover-b:visited,
.ui-btn-hover-b:hover,
.ui-btn-hover-b a.ui-link-inherit {
color: #2f3e46 /*{b-bhover-color}*/;
}
.ui-btn-down-b {
border: 1px solid #bbbbbb /*{b-bdown-border}*/;
background: #d6d6d6 /*{b-bdown-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{b-bdown-color}*/;
text-shadow: 0 /*{b-bdown-shadow-x}*/ 1px /*{b-bdown-shadow-y}*/ 0 /*{b-bdown-shadow-radius}*/ #ffffff /*{b-bdown-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #d0d0d0 /*{b-bdown-background-start}*/), to( #dfdfdf /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #d0d0d0 /*{b-bdown-background-start}*/, #dfdfdf /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #d0d0d0 /*{b-bdown-background-start}*/, #dfdfdf /*{b-bdown-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #d0d0d0 /*{b-bdown-background-start}*/, #dfdfdf /*{b-bdown-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #d0d0d0 /*{b-bdown-background-start}*/, #dfdfdf /*{b-bdown-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #d0d0d0 /*{b-bdown-background-start}*/, #dfdfdf /*{b-bdown-background-end}*/);
}
.ui-btn-down-b:visited,
.ui-btn-down-b:hover,
.ui-btn-down-b a.ui-link-inherit {
color: #2f3e46 /*{b-bdown-color}*/;
}
.ui-btn-up-b,
.ui-btn-hover-b,
.ui-btn-down-b {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
text-decoration: none;
}
/* C
-----------------------------------------------------------------------------------------------------------*/
.ui-bar-c {
border: 1px solid #b3b3b3 /*{c-bar-border}*/;
background: #eeeeee /*{c-bar-background-color}*/;
color: #3e3e3e /*{c-bar-color}*/;
font-weight: bold;
text-shadow: 0 /*{c-bar-shadow-x}*/ 1px /*{c-bar-shadow-y}*/ 0 /*{c-bar-shadow-radius}*/ #ffffff /*{c-bar-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{c-bar-background-start}*/), to( #dddddd /*{c-bar-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #dddddd /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #dddddd /*{c-bar-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #dddddd /*{c-bar-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #dddddd /*{c-bar-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #dddddd /*{c-bar-background-end}*/);
}
.ui-bar-c .ui-link-inherit {
color: #3e3e3e /*{c-bar-color}*/;
}
.ui-bar-c a.ui-link {
color: #7cc4e7 /*{c-bar-link-color}*/;
font-weight: bold;
}
.ui-bar-c a.ui-link:visited {
color: #2489ce /*{c-bar-link-visited}*/;
}
.ui-bar-c a.ui-link:hover {
color: #2489ce /*{c-bar-link-hover}*/;
}
.ui-bar-c a.ui-link:active {
color: #2489ce /*{c-bar-link-active}*/;
}
.ui-bar-c,
.ui-bar-c input,
.ui-bar-c select,
.ui-bar-c textarea,
.ui-bar-c button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-c,
.ui-overlay-c {
border: 1px solid #aaaaaa /*{c-body-border}*/;
color: #333333 /*{c-body-color}*/;
text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #ffffff /*{c-body-shadow-color}*/;
background: #f9f9f9 /*{c-body-background-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{c-body-background-start}*/), to( #eeeeee /*{c-body-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eeeeee /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eeeeee /*{c-body-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eeeeee /*{c-body-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eeeeee /*{c-body-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eeeeee /*{c-body-background-end}*/);
}
.ui-overlay-c {
background-image: none;
border-width: 0;
}
.ui-body-c,
.ui-body-c input,
.ui-body-c select,
.ui-body-c textarea,
.ui-body-c button {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-body-c .ui-link-inherit {
color: #333333 /*{c-body-color}*/;
}
.ui-body-c .ui-link {
color: #2489ce /*{c-body-link-color}*/;
font-weight: bold;
}
.ui-body-c .ui-link:visited {
color: #2489ce /*{c-body-link-visited}*/;
}
.ui-body-c .ui-link:hover {
color: #2489ce /*{c-body-link-hover}*/;
}
.ui-body-c .ui-link:active {
color: #2489ce /*{c-body-link-active}*/;
}
.ui-btn-up-c {
border: 1px solid #cccccc /*{c-bup-border}*/;
background: #eeeeee /*{c-bup-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{c-bup-color}*/;
text-shadow: 0 /*{c-bup-shadow-x}*/ 1px /*{c-bup-shadow-y}*/ 0 /*{c-bup-shadow-radius}*/ #ffffff /*{c-bup-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #ffffff /*{c-bup-background-start}*/), to( #f1f1f1 /*{c-bup-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #ffffff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #ffffff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #ffffff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #ffffff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #ffffff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/);
}
.ui-btn-up-c:visited,
.ui-btn-up-c a.ui-link-inherit {
color: #2f3e46 /*{c-bup-color}*/;
}
.ui-btn-hover-c {
border: 1px solid #bbbbbb /*{c-bhover-border}*/;
background: #dfdfdf /*{c-bhover-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{c-bhover-color}*/;
text-shadow: 0 /*{c-bhover-shadow-x}*/ 1px /*{c-bhover-shadow-y}*/ 0 /*{c-bhover-shadow-radius}*/ #ffffff /*{c-bhover-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f6f6f6 /*{c-bhover-background-start}*/), to( #e0e0e0 /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/);
}
.ui-btn-hover-c:visited,
.ui-btn-hover-c:hover,
.ui-btn-hover-c a.ui-link-inherit {
color: #2f3e46 /*{c-bhover-color}*/;
}
.ui-btn-down-c {
border: 1px solid #bbbbbb /*{c-bdown-border}*/;
background: #d6d6d6 /*{c-bdown-background-color}*/;
font-weight: bold;
color: #2f3e46 /*{c-bdown-color}*/;
text-shadow: 0 /*{c-bdown-shadow-x}*/ 1px /*{c-bdown-shadow-y}*/ 0 /*{c-bdown-shadow-radius}*/ #ffffff /*{c-bdown-shadow-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #d0d0d0 /*{c-bdown-background-start}*/), to( #dfdfdf /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/);
}
.ui-btn-down-c:visited,
.ui-btn-down-c:hover,
.ui-btn-down-c a.ui-link-inherit {
color: #2f3e46 /*{c-bdown-color}*/;
}
.ui-btn-up-c,
.ui-btn-hover-c,
.ui-btn-down-c {
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
text-decoration: none;
}
/* Structure */
/* links within "buttons"
-----------------------------------------------------------------------------------------------------------*/
a.ui-link-inherit {
text-decoration: none !important;
}
/* Active class used as the "on" state across all themes
-----------------------------------------------------------------------------------------------------------*/
.ui-btn-active {
border: 1px solid #2373a5 /*{global-active-border}*/;
background: #387bbe /*{global-active-background-color}*/;
font-weight: bold;
color: #ffffff /*{global-active-color}*/;
cursor: pointer;
text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/;
text-decoration: none;
background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */
background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */
background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */
background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/);
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
}
.ui-btn-active:visited,
.ui-btn-active:hover,
.ui-btn-active a.ui-link-inherit {
color: #ffffff /*{global-active-color}*/;
}
/* button inner top highlight
-----------------------------------------------------------------------------------------------------------*/
.ui-btn-inner {
border-top: 1px solid #fff;
border-color: rgba(255,255,255,.3);
}
/* corner rounding classes
-----------------------------------------------------------------------------------------------------------*/
.ui-corner-all {
-webkit-border-radius: .6em /*{global-radii-blocks}*/;
border-radius: .6em /*{global-radii-blocks}*/;
}
/* Form field separator
-----------------------------------------------------------------------------------------------------------*/
.ui-br {
border-color: rgb(130,130,130);
border-color: rgba(130,130,130,.3);
border-style: solid;
}
/* Interaction cues
-----------------------------------------------------------------------------------------------------------*/
.ui-disabled {
filter: Alpha(Opacity=30);
opacity: .3;
zoom: 1;
}
.ui-disabled,
.ui-disabled a {
cursor: default !important;
pointer-events: none;
}
/* Icons
-----------------------------------------------------------------------------------------------------------*/
.ui-icon,
.ui-icon-searchfield:after {
background: #666666 /*{global-icon-color}*/;
background: rgba(0,0,0,.4) /*{global-icon-disc}*/;
background-image: url(images/icons-18-white.png) /*{global-icon-set}*/;
background-repeat: no-repeat;
-webkit-border-radius: 9px;
border-radius: 9px;
}
/* Alt icon color
-----------------------------------------------------------------------------------------------------------*/
.ui-icon-alt .ui-icon,
.ui-icon-alt .ui-icon-searchfield:after {
background-color: #fff;
background-color: rgba(255,255,255,.3);
background-image: url(images/icons-18-black.png);
background-repeat: no-repeat;
}
/* No disc
-----------------------------------------------------------------------------------------------------------*/
.ui-icon-nodisc .ui-icon,
.ui-icon-nodisc .ui-icon-searchfield:after,
.ui-icon-nodisc .ui-icon-alt .ui-icon,
.ui-icon-nodisc .ui-icon-alt .ui-icon-searchfield:after {
background-color: transparent;
}
/* Icon sprite
-----------------------------------------------------------------------------------------------------------*/
/* plus minus */
.ui-icon-plus {
background-position: -1px -1px;
}
.ui-icon-minus {
background-position: -37px -1px;
}
/* delete/close */
.ui-icon-delete {
background-position: -73px -1px;
}
/* arrows */
.ui-icon-arrow-r {
background-position: -108px -1px;
}
.ui-icon-arrow-l {
background-position: -144px -1px;
}
.ui-icon-arrow-u {
background-position: -180px -1px;
}
.ui-icon-arrow-d {
background-position: -216px -1px;
}
/* misc */
.ui-icon-check {
background-position: -252px -1px;
}
.ui-icon-gear {
background-position: -288px -1px;
}
.ui-icon-refresh {
background-position: -323px -1px;
}
.ui-icon-forward {
background-position: -360px -1px;
}
.ui-icon-back {
background-position: -396px -1px;
}
.ui-icon-grid {
background-position: -432px -1px;
}
.ui-icon-star {
background-position: -467px -1px;
}
.ui-icon-alert {
background-position: -503px -1px;
}
.ui-icon-info {
background-position: -539px -1px;
}
.ui-icon-home {
background-position: -575px -1px;
}
/* search */
.ui-icon-search,
.ui-icon-searchfield:after {
background-position: -611px -1px;
}
/* checkbox radio */
.ui-icon-checkbox-on {
background-position: -647px -1px;
}
.ui-icon-checkbox-off {
background-position: -683px -1px;
}
.ui-icon-radio-on {
background-position: -718px -1px;
}
.ui-icon-radio-off {
background-position: -754px -1px;
}
/* menu edit */
.ui-icon-bars {
background-position: -788px -1px;
}
.ui-icon-edit {
background-position: -824px -1px;
}
/* HD/"retina" sprite
-----------------------------------------------------------------------------------------------------------*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.3),
only screen and (min--moz-device-pixel-ratio: 1.3),
only screen and (min-resolution: 200dpi) {
.ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r,
.ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check,
.ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back,
.ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-bars, .ui-icon-edit,
.ui-icon-search, .ui-icon-searchfield:after,
.ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on {
background-image: url(images/icons-36-white.png);
-moz-background-size: 864px 18px;
-o-background-size: 864px 18px;
-webkit-background-size: 864px 18px;
background-size: 864px 18px;
}
.ui-icon-alt .ui-icon {
background-image: url(images/icons-36-black.png);
}
.ui-icon-plus {
background-position: 0 50%;
}
.ui-icon-minus {
background-position: -36px 50%;
}
.ui-icon-delete {
background-position: -72px 50%;
}
.ui-icon-arrow-r {
background-position: -108px 50%;
}
.ui-icon-arrow-l {
background-position: -144px 50%;
}
.ui-icon-arrow-u {
background-position: -179px 50%;
}
.ui-icon-arrow-d {
background-position: -215px 50%;
}
.ui-icon-check {
background-position: -252px 50%;
}
.ui-icon-gear {
background-position: -287px 50%;
}
.ui-icon-refresh {
background-position: -323px 50%;
}
.ui-icon-forward {
background-position: -360px 50%;
}
.ui-icon-back {
background-position: -395px 50%;
}
.ui-icon-grid {
background-position: -431px 50%;
}
.ui-icon-star {
background-position: -467px 50%;
}
.ui-icon-alert {
background-position: -503px 50%;
}
.ui-icon-info {
background-position: -538px 50%;
}
.ui-icon-home {
background-position: -575px 50%;
}
.ui-icon-search,
.ui-icon-searchfield:after {
background-position: -611px 50%;
}
.ui-icon-checkbox-on {
background-position: -647px 50%;
}
.ui-icon-checkbox-off {
background-position: -683px 50%;
}
.ui-icon-radio-on {
background-position: -718px 50%;
}
.ui-icon-radio-off {
background-position: -754px 50%;
}
.ui-icon-bars {
background-position: -788px 50%;
}.ui-icon-edit {
background-position: -824px 50%;
}
}
/* checks,radios */
.ui-checkbox .ui-icon,
.ui-selectmenu-list .ui-icon {
-webkit-border-radius: 3px;
border-radius: 3px;
}
.ui-icon-checkbox-off,
.ui-icon-radio-off {
background-color: transparent;
}
.ui-checkbox-on .ui-icon,
.ui-radio-on .ui-icon {
background-color: #387bbe /*{global-active-background-color}*/; /* NOTE: this hex should match the active state color. It's repeated here for cascade */
}
/* loading icon */
.ui-icon-loading {
background: url(images/ajax-loader.gif);
background-size: 46px 46px;
}
/* Button corner class
-----------------------------------------------------------------------------------------------------------*/
.ui-btn-corner-all {
-webkit-border-radius: 1em /*{global-radii-buttons}*/;
border-radius: 1em /*{global-radii-buttons}*/;
}
/* radius clip workaround for cleaning up corner trapping */
.ui-corner-all,
.ui-btn-corner-all {
-webkit-background-clip: padding;
background-clip: padding-box;
}
/* Overlay / modal
-----------------------------------------------------------------------------------------------------------*/
.ui-overlay {
background: #666;
filter: Alpha(Opacity=50);
opacity: .5;
position: absolute;
width: 100%;
height: 100%;
}
.ui-overlay-shadow {
-moz-box-shadow: 0 0 12px rgba(0,0,0,.6);
-webkit-box-shadow: 0 0 12px rgba(0,0,0,.6);
box-shadow: 0 0 12px rgba(0,0,0,.6);
}
.ui-shadow {
-moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
-webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/
}
.ui-bar-a .ui-shadow,
.ui-bar-b .ui-shadow ,
.ui-bar-c .ui-shadow {
-moz-box-shadow: 0 1px 0 rgba(255,255,255,.3);
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,.3);
box-shadow: 0 1px 0 rgba(255,255,255,.3);
}
.ui-shadow-inset {
-moz-box-shadow: inset 0 1px 4px rgba(0,0,0,.2);
-webkit-box-shadow: inset 0 1px 4px rgba(0,0,0,.2);
box-shadow: inset 0 1px 4px rgba(0,0,0,.2);
}
.ui-icon-shadow {
-moz-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/;
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/;
box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/;
}
/* Focus state - set here for specificity (note: these classes are added by JavaScript)
-----------------------------------------------------------------------------------------------------------*/
.ui-btn:focus, .ui-link-inherit:focus {
outline: 0;
}
.ui-btn.ui-focus {
z-index: 1;
}
.ui-focus,
.ui-btn:focus {
-moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
-webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
}
.ui-input-text.ui-focus,
.ui-input-search.ui-focus {
-moz-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/;
-webkit-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/;
box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/;
}
/* unset box shadow in browsers that don't do it right
-----------------------------------------------------------------------------------------------------------*/
.ui-mobile-nosupport-boxshadow * {
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
}
/* ...and bring back focus */
.ui-mobile-nosupport-boxshadow .ui-focus,
.ui-mobile-nosupport-boxshadow .ui-btn:focus,
.ui-mobile-nosupport-boxshadow .ui-link-inherit:focus {
outline-width: 1px;
outline-style: auto;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,119 @@
/**
* Manages preferences.
*
* Preference list:
* T = text size, integer
* C = color, integer, 1 = white on black, 2 = black on white
*/
function loadPreferences() {
var prefs = docCookies.getItem("psalmenonlineprefs");
if (prefs == null) {
PREF_TEXTSIZE = parseInt($(".psalmverseheader").css("font-size"));
PREF_COLOR = 1;
return;
}
PREF_TEXTSIZE = prefs.split(';')[0];
PREF_COLOR = prefs.split(';')[1];
}
function setPreferences() {
$(".psalmverseheader").css("font-size", PREF_TEXTSIZE);
$(".psalmline").css("font-size", PREF_TEXTSIZE);
if (PREF_COLOR == 2) {
$("div[data-role=page]").removeClass("ui-body-a");
$("div[data-role=page]").addClass("ui-body-b");
}
}
function switchColors() {
if (PREF_COLOR == 1) {
PREF_COLOR = 2;
$("div[data-role=page]").removeClass("ui-body-a");
$("div[data-role=page]").addClass("ui-body-b");
} else {
PREF_COLOR = 1;
$("div[data-role=page]").removeClass("ui-body-b");
$("div[data-role=page]").addClass("ui-body-a");
}
savePreferences();
}
function savePreferences() {
var prefs = PREF_TEXTSIZE + ";" + PREF_COLOR;
docCookies.setItem("psalmenonlineprefs", prefs, Infinity);
}
function bindListeners() {
$(document).on("click", "a#bw", switchColors);
}
/*\
|*|
|*| :: cookies.js ::
|*|
|*| A complete cookies reader/writer framework with full unicode support.
|*|
|*| Revision #1 - September 4, 2014
|*|
|*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
|*| https://developer.mozilla.org/User:fusionchess
|*|
|*| This framework is released under the GNU Public License, version 3 or later.
|*| http://www.gnu.org/licenses/gpl-3.0-standalone.html
|*|
|*| Syntaxes:
|*|
|*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])
|*| * docCookies.getItem(name)
|*| * docCookies.removeItem(name[, path[, domain]])
|*| * docCookies.hasItem(name)
|*| * docCookies.keys()
|*|
\*/
var docCookies = {
getItem: function (sKey) {
if (!sKey) { return null; }
return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
},
setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false; }
var sExpires = "";
if (vEnd) {
switch (vEnd.constructor) {
case Number:
sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd;
break;
case String:
sExpires = "; expires=" + vEnd;
break;
case Date:
sExpires = "; expires=" + vEnd.toUTCString();
break;
}
}
document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
return true;
},
removeItem: function (sKey, sPath, sDomain) {
if (!this.hasItem(sKey)) { return false; }
document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "");
return true;
},
hasItem: function (sKey) {
if (!sKey) { return false; }
return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
},
keys: function () {
var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }
return aKeys;
}
};

View File

@@ -0,0 +1,13 @@
package org.tenvoorde.psalmenweb;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class PsalmenwebApplicationTests {
@Test
void contextLoads() {
}
}

8
Psalmenweb/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\Development\src\psalmenweb\Psalmenweb\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

1
Psalmenweb/.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
psalmenweb

17
Psalmenweb/.idea/Psalmenweb.iml generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="hibernate" name="Hibernate">
<configuration>
<datasource-map>
<unit-entry name="hibernate.cfg.xml" />
<unit-entry name="psalmenSessionFactory" />
</datasource-map>
<naming-strategy-map />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/target/classes/hibernate.cfg.xml" />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/target/psalmenweb-1.0.0-BUILD-SNAPSHOT/WEB-INF/classes/hibernate.cfg.xml" />
</configuration>
</facet>
</component>
</module>

20
Psalmenweb/.idea/compiler.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="psalmenweb" />
<module name="Psalmenweb" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="Psalmenweb" options="-Xlint:all" />
<module name="psalmenweb" options="-Xlint:all" />
</option>
</component>
</project>

11
Psalmenweb/.idea/dataSources.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="Bijbel" uuid="702cad85-fe8f-4a21-ace5-62a8c5eefc9d">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://37.97.221.166:3306</jdbc-url>
</data-source>
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
#n:information_schema
!<md> [null, 0, null, null, -2147483648, -2147483648]

8
Psalmenweb/.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java/org/tenvoorde/psalmenweb/dao/BijbelDAO.java" charset="windows-1252" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

20
Psalmenweb/.idea/jarRepositories.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

17
Psalmenweb/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_9" default="false" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

6
Psalmenweb/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

250
Psalmenweb/pom.xml Normal file
View File

@@ -0,0 +1,250 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.tenvoorde</groupId>
<artifactId>psalmenweb</artifactId>
<name>Psalmenweb</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>5.2.7.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework
</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.21.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<!-- jsoup HTML parser library @ http://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
<!--
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<url>http://tenvoorde.org:8080/manager/text</url>
<server>tenvoorde</server>
<id>tenvoorde</id>
<username>maven</username>
<password>tomcat</password>
</configuration>
</plugin>
-->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.19</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>maven</cargo.remote.username>
<cargo.remote.password>tomcat</cargo.remote.password>
<cargo.remote.uri>http://37.97.221.166:8080/manager/text</cargo.remote.uri>
</properties>
</configuration>
<deployables>
<deployable>
<groupId>org.tenvoorde</groupId>
<artifactId>psalmenweb</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>

12
Psalmenweb/psalmenweb.iml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="hibernate" name="Hibernate">
<configuration>
<datasource-map />
<naming-strategy-map />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" />
</configuration>
</facet>
</component>
</module>

View File

@@ -0,0 +1,98 @@
package org.tenvoorde.psalmenweb;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.tenvoorde.psalmenweb.dao.CatechismusDAO;
import org.tenvoorde.psalmenweb.domain.CatechismusVraag;
public class CatechismusParser {
// @Autowired
// private PsalmenDAO dao;
// public static void main(String[] args) {
// dao = new PsalmenDAO();
// try {
// new PsalmboekParser().parser();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public void parser(CatechismusDAO dao, Logger logger) /*throws Exception*/ {
Document doc;
for (int vraag = 1; vraag <= 129; vraag++) {
doc = retrieveVraag(vraag);
int zondag = Integer.parseInt(doc.select("div span a").first().html().split(" ")[1]);
//System.out.println(zondag);
String tekstVraag = doc.select("div.post-content p i").first().html();
String tekstAntwoord = doc.select("div.post-content p").get(1).html();
System.out.println("Vraag " + vraag);
System.out.println(tekstVraag);
System.out.println(tekstAntwoord);
CatechismusVraag cv = new CatechismusVraag();
cv.setZondag(zondag);
cv.setVraag(vraag);
cv.setTekstVraag(tekstVraag);
cv.setTekstAntwoord(tekstAntwoord);
dao.insert(cv);
// int versnr = 0;
// for (Element p : firstColumn) {
// if (isVerse(p)) {
// String[] verzen = p.html().split("<br />");
// int regel = 0;
// for (String vers : verzen) {
// if (vers.startsWith("<strong>")) {
// versnr++;
// System.out.println("Vers " + versnr);
// System.out.println();
// continue;
// }
// if (vers.endsWith("</span>")) {
// vers = vers.substring(1, vers.length() - 41);
// }
//
// vers = vers.trim();
// regel++;
// Psalmregel pr = new Psalmregel();
// pr.setPsalm(psalm);
// pr.setVers(versnr);
// pr.setRegel(regel);
// pr.setTekst(vers);
// logger.info(pr.toString());
// dao.insert(pr);
// }
// }
// }
//if ("" == "") break;
}
}
private boolean isVerse(Element e) {
return (e.select("strong").size() > 0);
}
private Document retrieveVraag(int vraag) {
Document result = null;
try {
result = Jsoup.connect("http://decatechismus.nl/vraag/" + vraag).get();
} catch (Exception e) {
}
return result;
}
}

View File

@@ -0,0 +1,81 @@
package org.tenvoorde.psalmenweb;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.tenvoorde.psalmenweb.dao.PsalmenDAO;
import org.tenvoorde.psalmenweb.domain.Psalmregel;
public class PsalmboekParser {
// @Autowired
// private PsalmenDAO dao;
// public static void main(String[] args) {
// dao = new PsalmenDAO();
// try {
// new PsalmboekParser().parser();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public void parser(PsalmenDAO dao, Logger logger) throws Exception {
Document doc;
for (int psalm = 1; psalm <= 150; psalm++) {
doc = retrieveChapter(psalm);
Elements firstColumn = doc.select("table tbody tr td table tbody tr td table tbody tr td p");
int versnr = 0;
for (Element p : firstColumn) {
if (isVerse(p)) {
String[] verzen = p.html().split("<br />");
int regel = 0;
for (String vers : verzen) {
if (vers.startsWith("<strong>")) {
versnr++;
System.out.println("Vers " + versnr);
System.out.println();
continue;
}
if (vers.endsWith("</span>")) {
vers = vers.substring(1, vers.length() - 41);
}
vers = vers.trim();
regel++;
Psalmregel pr = new Psalmregel();
pr.setPsalm(psalm);
pr.setVers(versnr);
pr.setRegel(regel);
pr.setTekst(vers);
logger.info(pr.toString());
dao.insert(pr);
}
}
}
//if ("" == "") break;
}
}
private boolean isVerse(Element e) {
return (e.select("strong").size() > 0);
}
private Document retrieveChapter(int psalm) throws IOException {
Document result;
result = Jsoup.connect(
"http://www.psalmboek.nl/psalmen.php?psID=" + psalm).get();
return result;
}
}

View File

@@ -0,0 +1,136 @@
package org.tenvoorde.psalmenweb.controllers;
import java.util.List;
import javax.servlet.ServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.tenvoorde.psalmenweb.dao.BijbelDAO;
import org.tenvoorde.psalmenweb.domain.BijbelBoek;
import org.tenvoorde.psalmenweb.domain.Bijbelvers;
@Controller
public class BijbelController {
// private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private BijbelDAO bijbelDAO;
@RequestMapping(value = "/bijbel", method = RequestMethod.GET)
public String bijbel(
@RequestParam(value="t", required = true) Integer vertaling,
@RequestParam(value="b", required = true) Integer boek,
@RequestParam(value="h", required = true) Integer hoofdstuk,
Model model, ServletRequest req) {
if (vertaling == null) {
vertaling = 1;
}
if (boek == null) {
boek = 0;
}
if (hoofdstuk == null) {
hoofdstuk = 1;
}
model.addAttribute("vertaling", bijbelDAO.getVertaling(vertaling));
model.addAttribute("boek", bijbelDAO.getBoek(boek));
model.addAttribute("hoofdstuk", hoofdstuk);
model.addAttribute("linkvorige", linkVorigHoofdstuk(vertaling, boek, hoofdstuk));
model.addAttribute("linkvolgende", linkVolgendHoofdstuk(vertaling, boek, hoofdstuk));
model.addAttribute("linkvertaling", genereerLinkNaarHoofdstuk((vertaling == 1 ? 2 : 1), boek, hoofdstuk));
List<Bijbelvers> verzen = bijbelDAO.getHoofdstuk(vertaling, boek, hoofdstuk);
model.addAttribute("verzen", verzen);
return "bijbel";
}
@RequestMapping(value = "/bijbelindex", method = RequestMethod.GET)
public String bijbelIndex(
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
model.addAttribute("letters", new String[] {
"1", "2", "3", "A", "D", "E", "F", "G", "H", "J",
"K", "L", "M", "N", "O", "P", "R", "S", "T", "Z"
});
model.addAttribute("vertaling", bijbelDAO.getVertaling(vertaling));
return "bijbelindex";
}
@RequestMapping(value = "/bijbelindexboeken", method = RequestMethod.GET)
public String bijbelIndexBoeken(
@RequestParam(value="start", required = true) String startsWith,
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
List<BijbelBoek> boeken = bijbelDAO.getBoekenStartsWith(startsWith);
if (boeken.size() == 1) {
return "redirect:http://psalmenonline.nl/bijbelindexchapter?boek=" + boeken.get(0).getId() + "&t=" + vertaling;
}
model.addAttribute("boeken", boeken);
model.addAttribute("vertaling", bijbelDAO.getVertaling(vertaling));
return "bijbelindexboeken";
}
@RequestMapping(value = "/bijbelindexchapter", method = RequestMethod.GET)
public String bijbelIndexHoofdstuk(
@RequestParam(value="boek", required = true) Integer boek,
@RequestParam(value="t", required = true) Integer vertaling,
Model model, ServletRequest req) {
BijbelBoek bijbelboek = bijbelDAO.getBoek(boek);
if (bijbelboek.getHoofdstukken() == 1) {
return "redirect:http://psalmenonline.nl/bijbel?t=" + vertaling + "&b=" + boek + "&h=1";
}
model.addAttribute("boek", bijbelboek);
model.addAttribute("vertaling", bijbelDAO.getVertaling(vertaling));
return "bijbelindexchapter";
}
private String linkVorigHoofdstuk(int vertaling, int boek, int hoofdstuk) {
if (hoofdstuk > 1) {
hoofdstuk--;
} else {
if (boek == 0) {
return "#";
} else {
boek--;
hoofdstuk = bijbelDAO.getAantalHoofdstukkenInBoek(boek);
}
}
return genereerLinkNaarHoofdstuk(vertaling, boek, hoofdstuk);
}
private String linkVolgendHoofdstuk(int vertaling, int boek, int hoofdstuk) {
if (hoofdstuk < bijbelDAO.getAantalHoofdstukkenInBoek(boek)) {
hoofdstuk++;
} else {
if (boek == 65) {
return "#";
} else {
boek++;
hoofdstuk = 1;
}
}
return genereerLinkNaarHoofdstuk(vertaling, boek, hoofdstuk);
}
private String genereerLinkNaarHoofdstuk(int vertaling, int boek, int hoofdstuk) {
return "bijbel?t=" + vertaling + "&b=" + boek + "&h=" + hoofdstuk;
}
}

View File

@@ -0,0 +1,46 @@
package org.tenvoorde.psalmenweb.controllers;
import java.util.List;
import java.util.Locale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.tenvoorde.psalmenweb.dao.CatechismusDAO;
import org.tenvoorde.psalmenweb.domain.CatechismusVraag;
@Controller
public class CatechismusController {
//private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private CatechismusDAO catechismusDao;
@RequestMapping(value = "/hc", method = RequestMethod.GET)
public String catechismus(@RequestParam(value="z", required = false) Integer hc, Locale locale, Model model) {
//new CatechismusParser().parser(catechismusDao, logger);
//if (true) return "";
if (hc == null) {
hc = 1;
}
model.addAttribute("hc", hc);
List<CatechismusVraag> zondag = catechismusDao.getZondag(hc);
model.addAttribute("zondag", zondag);
return "hc";
}
@RequestMapping(value = "/hcindex", method = RequestMethod.GET)
public String hcIndex() {
return "hcindex";
}
}

View File

@@ -0,0 +1,19 @@
package org.tenvoorde.psalmenweb.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "index";
}
@RequestMapping(value = "/info", method = RequestMethod.GET)
public String info() {
return "info";
}
}

View File

@@ -0,0 +1,61 @@
package org.tenvoorde.psalmenweb.controllers;
import java.util.List;
import java.util.Locale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.tenvoorde.psalmenweb.dao.PsalmenDAO;
import org.tenvoorde.psalmenweb.domain.Psalmregel;
@Controller
public class PsalmenController {
// private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Autowired
private PsalmenDAO psalmenDao;
@RequestMapping(value = "/psalm", method = RequestMethod.GET)
public String psalm(@RequestParam(value="p", required = false) Integer psalm, @RequestParam(value="v", required = false) Integer vers, Locale locale, Model model) {
// try {
// //new PsalmboekParser().parser(dao, logger);
// } catch (Exception e) {
// }
if (psalm == null) {
psalm = 1;
}
model.addAttribute("psalm", psalm);
model.addAttribute("vers", vers);
List<Psalmregel> psalmRegels = psalmenDao.getPsalm(psalm);
model.addAttribute("psalmRegels", psalmRegels);
return "psalm";
}
@RequestMapping(value = "/psalmindex", method = RequestMethod.GET)
public String psalmIndex() {
return "psalmindex";
}
@RequestMapping(value = "/psalmcheck", method = RequestMethod.GET)
public @ResponseBody Boolean checkPsalmVerseExists(
@RequestParam(value="p", required = true) Integer psalm,
@RequestParam(value="v", required = true) Integer vers) {
int verzen = psalmenDao.getPsalmVerseCount(psalm);
if (vers > verzen) {
return Boolean.FALSE;
} else {
return Boolean.TRUE;
}
}
}

View File

@@ -0,0 +1,147 @@
package org.tenvoorde.psalmenweb.dao;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.tenvoorde.psalmenweb.domain.BijbelBoek;
import org.tenvoorde.psalmenweb.domain.Bijbelvers;
import org.tenvoorde.psalmenweb.domain.Vertaling;
@Repository
public class BijbelDAO {
@Autowired
private SessionFactory sessionFactory;
private Session openSession() {
return sessionFactory.getCurrentSession();
}
@Transactional
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Bijbelvers> getHoofdstuk(int vertaling, int boek, int hoofdstuk) {
String hql = "SELECT * FROM VERS v"
+ " WHERE v.VERTALING_ID = " + vertaling
+ " AND v.BOEK_ID = " + boek
+ " AND v.HOOFDSTUK = " + hoofdstuk;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
List<Bijbelvers> verzen = new ArrayList<Bijbelvers>();
for (Object[] result : (List<Object[]>)results) {
Bijbelvers bv = new Bijbelvers();
bv.setVertaling((Integer) result[1]);
bv.setBoek((Integer) result[2]);
bv.setHoofdstuk((Integer) result[3]);
bv.setVers((Integer) result[4]);
String tekst = (String) result[5];
if (tekst.indexOf("\u8211") > 0) {
System.out.println(boek + " " + hoofdstuk);
}
tekst = tekst.replace("\u8211", "-");
bv.setTekst(tekst);
verzen.add(bv);
}
return verzen;
}
@Transactional
@SuppressWarnings({ "unchecked", "rawtypes" })
public List<BijbelBoek> getBoekenStartsWith(String start) {
String hql = "SELECT * FROM BOEK b"
+ " WHERE b.AFKORTING LIKE '" + start + "%'";
Query query = openSession().createSQLQuery(hql);
List results = query.list();
List<BijbelBoek> boeken = new ArrayList<BijbelBoek>();
for (Object[] result : (List<Object[]>)results) {
BijbelBoek b = new BijbelBoek();
b.setId((Integer) result[0]);
b.setBoek((String) result[1]);
b.setAfkorting((String) result[2]);
b.setHoofdstukken((Integer) result[3]);
boeken.add(b);
}
return boeken;
}
@Transactional
@SuppressWarnings({ "rawtypes" })
public Vertaling getVertaling(int vertaling) {
String hql = "SELECT * FROM VERTALING v"
+ " WHERE v.ID = " + vertaling;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
Object[] r = (Object[]) results.get(0);
Vertaling v = new Vertaling();
v.setId((Integer) r[0]);
v.setVertaling((String) r[1]);
v.setAfkorting((String) r[2]);
return v;
}
@Transactional
@SuppressWarnings({ "rawtypes" })
public BijbelBoek getBoek(int boek) {
String hql = "SELECT * FROM BOEK b"
+ " WHERE b.ID = " + boek;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
Object[] r = (Object[]) results.get(0);
BijbelBoek b = new BijbelBoek();
b.setId((Integer) r[0]);
b.setBoek((String) r[1]);
b.setAfkorting((String) r[2]);
b.setHoofdstukken((Integer) r[3]);
return b;
}
@Transactional
@SuppressWarnings({ "rawtypes" })
public String getBoek(String boek) {
String hql = "SELECT BOEK FROM BOEK b"
+ " WHERE b.AFKORTING = '" + boek + "'";
Query query = openSession().createSQLQuery(hql);
List results = query.list();
String result = (String) (results.get(0));
return result;
}
@SuppressWarnings("rawtypes")
@Transactional
public Integer getAantalHoofdstukkenInBoek(int boek) {
String hql = "SELECT HOOFDSTUKKEN FROM BOEK b"
+ " WHERE b.ID = " + boek;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
Integer result = (Integer) (results.get(0));
return result;
}
}

View File

@@ -0,0 +1,48 @@
package org.tenvoorde.psalmenweb.dao;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.tenvoorde.psalmenweb.domain.CatechismusVraag;
@Repository
public class CatechismusDAO {
@Autowired
private SessionFactory sessionFactory;
private Session openSession() {
return sessionFactory.getCurrentSession();
}
@Transactional
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<CatechismusVraag> getZondag(int hc) {
String hql = "SELECT * FROM CATECHISMUS hc WHERE hc.ZONDAG = " + hc;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
List<CatechismusVraag> zondag = new ArrayList<CatechismusVraag>();
for (Object[] result : (List<Object[]>)results) {
CatechismusVraag cv = new CatechismusVraag();
cv.setZondag((Integer) result[1]);
cv.setVraag((Integer) result[2]);
cv.setTekstVraag((String) result[3]);
cv.setTekstAntwoord((String) result[4]);
zondag.add(cv);
}
return zondag;
}
@Transactional
public void insert(CatechismusVraag cv) {
openSession().save(cv);
}
}

View File

@@ -0,0 +1,69 @@
package org.tenvoorde.psalmenweb.dao;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.tenvoorde.psalmenweb.domain.Psalmregel;
@Repository
public class PsalmenDAO {
private static int[] psalmVerseCount;
@Autowired
private SessionFactory sessionFactory;
private Session openSession() {
return sessionFactory.getCurrentSession();
}
@Transactional
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Psalmregel> getPsalm(int psalm) {
String hql = "SELECT * FROM PSALMREGEL p WHERE p.PSALM = " + psalm;
Query query = openSession().createSQLQuery(hql);
List results = query.list();
List<Psalmregel> psalmRegels = new ArrayList<Psalmregel>();
for (Object[] result : (List<Object[]>)results) {
Psalmregel p = new Psalmregel();
p.setPsalm((Integer) result[1]);
p.setVers((Integer) result[2]);
p.setRegel((Integer) result[3]);
p.setTekst((String) result[4]);
psalmRegels.add(p);
}
return psalmRegels;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Transactional
public int getPsalmVerseCount(int psalm) {
if (PsalmenDAO.psalmVerseCount == null) {
String hql = "SELECT COUNT(DISTINCT VERS) FROM PSALMREGEL p GROUP BY PSALM";
Query query = openSession().createSQLQuery(hql);
List results = query.list();
psalmVerseCount = new int[150];
int psalmIndex = 0;
for (BigInteger result : (List<BigInteger>) results) {
psalmVerseCount[psalmIndex++] = result.intValue();
}
}
return PsalmenDAO.psalmVerseCount[psalm - 1];
}
@Transactional
public void insert(Psalmregel p) {
openSession().save(p);
}
}

View File

@@ -0,0 +1,52 @@
package org.tenvoorde.psalmenweb.domain;
public class BijbelBoek {
private int id;
private String boek;
private String afkorting;
private int hoofdstukken;
public BijbelBoek(int id, String boek, String afkorting, int hoofdstukken) {
super();
this.id = id;
this.boek = boek;
this.afkorting = afkorting;
this.hoofdstukken = hoofdstukken;
}
public BijbelBoek() {
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBoek() {
return boek;
}
public void setBoek(String boek) {
this.boek = boek;
}
public String getAfkorting() {
return afkorting;
}
public void setAfkorting(String afkorting) {
this.afkorting = afkorting;
}
public int getHoofdstukken() {
return hoofdstukken;
}
public void setHoofdstukken(int hoofdstukken) {
this.hoofdstukken = hoofdstukken;
}
}

View File

@@ -0,0 +1,105 @@
package org.tenvoorde.psalmenweb.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "VERS")
public class Bijbelvers implements Serializable {
private static final long serialVersionUID = 4765101556890177766L;
@Id
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Column(name = "VERTALING_ID")
private Integer vertaling;
@Column(name = "BOEK_ID")
private Integer boek;
@Column(name = "HOOFDSTUK")
private Integer hoofdstuk;
@Column(name = "VERS")
private Integer vers;
@Column(name = "TEKST")
private String tekst;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getVertaling() {
return vertaling;
}
public void setVertaling(Integer vertaling) {
this.vertaling = vertaling;
}
public Integer getBoek() {
return boek;
}
public void setBoek(Integer boek) {
this.boek = boek;
}
public Integer getHoofdstuk() {
return hoofdstuk;
}
public void setHoofdstuk(Integer hoofdstuk) {
this.hoofdstuk = hoofdstuk;
}
public Integer getVers() {
return vers;
}
public void setVers(Integer vers) {
this.vers = vers;
}
public String getTekst() {
return tekst;
}
public void setTekst(String tekst) {
this.tekst = tekst;
}
// public String toString() {
// return
// + " Vers " + this.vers
// + " Regel " + this.regel
// + " = " + this.tekst;
// }
}

View File

@@ -0,0 +1,84 @@
package org.tenvoorde.psalmenweb.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "CATECHISMUS")
public class CatechismusVraag implements Serializable {
private static final long serialVersionUID = 4234966319088621876L;
@Id
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Column(name = "ZONDAG")
private Integer zondag;
@Column(name = "VRAAG")
private Integer vraag;
@Column(name = "TEKST_VRAAG")
private String tekstVraag;
@Column(name = "TEKST_ANTWOORD")
private String tekstAntwoord;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getZondag() {
return zondag;
}
public void setZondag(Integer zondag) {
this.zondag = zondag;
}
public Integer getVraag() {
return vraag;
}
public void setVraag(Integer vraag) {
this.vraag = vraag;
}
public String getTekstVraag() {
return tekstVraag;
}
public void setTekstVraag(String tekstVraag) {
this.tekstVraag = tekstVraag;
}
public String getTekstAntwoord() {
return tekstAntwoord;
}
public void setTekstAntwoord(String tekstAntwoord) {
this.tekstAntwoord = tekstAntwoord;
}
@Override
public String toString() {
return "CatechismusVraag [id=" + id + ", zondag=" + zondag + ", vraag="
+ vraag + ", tekstVraag=" + tekstVraag + ", tekstAntwoord="
+ tekstAntwoord + "]";
}
}

View File

@@ -0,0 +1,81 @@
package org.tenvoorde.psalmenweb.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "PSALMREGEL")
public class Psalmregel implements Serializable {
private static final long serialVersionUID = 4765101556890177766L;
@Id
@GeneratedValue
@Column(name = "ID")
private Integer id;
@Column(name = "PSALM")
private Integer psalm;
@Column(name = "VERS")
private Integer vers;
@Column(name = "REGEL")
private Integer regel;
@Column(name = "TEKST")
private String tekst;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getPsalm() {
return psalm;
}
public void setPsalm(Integer psalm) {
this.psalm = psalm;
}
public Integer getVers() {
return vers;
}
public void setVers(Integer vers) {
this.vers = vers;
}
public Integer getRegel() {
return regel;
}
public void setRegel(Integer regel) {
this.regel = regel;
}
public String getTekst() {
return tekst;
}
public void setTekst(String tekst) {
this.tekst = tekst;
}
public String toString() {
return "Psalm " + this.psalm
+ " Vers " + this.vers
+ " Regel " + this.regel
+ " = " + this.tekst;
}
}

View File

@@ -0,0 +1,50 @@
package org.tenvoorde.psalmenweb.domain;
import javax.persistence.*;
@Entity
@Table(name = "VERTALING", schema = "bijbel")
public class Vertaling {
@Id
@GeneratedValue
@Column(name = "ID")
private int id;
@Column(name = "VERTALING")
private String vertaling;
@Column(name = "AFKORTING")
private String afkorting;
public Vertaling() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getVertaling() {
return vertaling;
}
public void setVertaling(String vertaling) {
this.vertaling = vertaling;
}
public String getAfkorting() {
return afkorting;
}
public void setAfkorting(String afkorting) {
this.afkorting = afkorting;
}
}

Binary file not shown.

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://37.97.221.166:3306/psalmenweb?characterEncoding=utf8&useUnicode=true</property>
<property name="hibernate.connection.username">psalmenweb</property>
<property name="hibernate.connection.password">OhWSsRxCOM4pXiiQ</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="org.tenvoorde.psalmenweb">
<level value="info" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

View File

@@ -0,0 +1,11 @@
################### JDBC Configuration ##########################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://tenvoorde.org:3306/psalmenweb
jdbc.username=psalmenonline
jdbc.password=zMhMipovKFgc1m8n
################### Hibernate Configuration ##########################
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
hibernate.generate_statistics=true

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources
in the /WEB-INF/views directory -->
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan base-package="org.tenvoorde.psalmenweb" />
<!-- JDBC Data Source. It is assumed you have MySQL running on localhost
port 3306 with username root and blank password. Change below if it's not
the case -->
<beans:bean id="psalmenDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
<beans:property name="url"
value="jdbc:mysql://tenvoorde.org:3306/psalmenweb" />
<beans:property name="username" value="psalmenonline" />
<beans:property name="password" value="zMhMipovKFgc1m8n" />
<beans:property name="validationQuery" value="SELECT 1" />
</beans:bean>
<!-- Hibernate Session Factory -->
<beans:bean id="psalmenSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="psalmenDataSource" />
<beans:property name="annotatedClasses">
<beans:list>
<beans:value>org.tenvoorde.psalmenweb.domain.Psalmregel</beans:value>
<beans:value>org.tenvoorde.psalmenweb.domain.CatechismusVraag</beans:value>
</beans:list>
</beans:property>
<beans:property name="packagesToScan">
<beans:array>
<beans:value>org.tenvoorde.psalmenweb.dao</beans:value>
</beans:array>
</beans:property>
<beans:property name="hibernateProperties">
<beans:value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
</beans:value>
</beans:property>
</beans:bean>
<!-- Hibernate Transaction Manager -->
<beans:bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<beans:property name="sessionFactory" ref="psalmenSessionFactory" />
</beans:bean>
<!-- Activates annotation based transaction management -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans:beans>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
</beans>

View File

@@ -0,0 +1,125 @@
<%@ page session="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>${boek.boek} <c:if test="${boek.hoofdstukken > 1}">${hoofdstuk} </c:if>(${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<link rel="stylesheet"
href="resources/css/themes/Psalmenweb.css" />
<link rel="stylesheet"
href="resources/css/psalmenweb.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script>
<script src="resources/js/prefs.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="fixed" id="psalmhoofd">
<div class="psalmheader">${boek.boek} <c:if test="${boek.hoofdstukken > 1}">${hoofdstuk} </c:if>(${vertaling.afkorting})</div>
<a data-inline="true" data-icon="custom" data-iconpos="notext" id="bw" data-ajax="false" class="ui-btn-right" style="margin-right:350px;"></a>
<a href="hcindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="hc" data-ajax="false" class="ui-btn-right" style="margin-right:250px;"></a>
<c:choose>
<c:when test="${vertaling.id == 1}">
<a href="${linkvertaling}" data-inline="true" data-icon="custom" data-iconpos="notext" id="sv" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
</c:when>
<c:otherwise>
<a href="${linkvertaling}" data-inline="true" data-icon="custom" data-iconpos="notext" id="hsv" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
</c:otherwise>
</c:choose>
<a href="psalmindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="note" data-ajax="false" class="ui-btn-right" style="margin-right:50px;"></a>
</div>
<div data-role="content">
<br /> <br />
<c:forEach items="${verzen}" var="vers"
varStatus="varstatus">
<p class="psalmline"><span class="bijbelvers">${vers.vers}</span> ${vers.tekst}</p>
</c:forEach>
<br />
</div>
<div data-role="footer" class="bigbuttons">
<div data-role="navbar" data-position="fixed" class="bigbuttons" data-grid="d">
<ul>
<li><a href="${linkvorige}" id="left" data-icon="custom" data-ajax="false">&nbsp;</a></li>
<li><a href="#" id="minus" data-icon="custom">&nbsp;</a></li>
<li><a href="bijbelindex?t=${vertaling.id}" id="index" data-icon="custom" data-ajax="false" data-transition="pop">&nbsp;</a></li>
<li><a href="#" id="plus" data-icon="custom">&nbsp;</a></li>
<li><a href="${linkvolgende}" id="right" data-icon="custom" data-ajax="false">&nbsp;</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var PREF_TEXTSIZE;
var PREF_COLOR;
$(function() {
loadPreferences();
setPreferences();
bindListeners();
});
function changeTextSize(delta) {
var size = parseInt($(".psalmverseheader").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmverseheader").css("font-size", cssSize);
size = parseInt($(".psalmline").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmline").css("font-size", cssSize);
PREF_TEXTSIZE = size + delta;
savePreferences();
}
$(document).on('pageinit', function() {
$(document).on("click", "#minus", function(e) {
changeTextSize(-2);
});
$(document).on("click", "#plus", function(e) {
changeTextSize(2);
});
if ($("#left").attr("href") == "#") {
$("#left span.ui-icon").css("background-image", "none");
}
if ($("#right").attr("href") == "#") {
$("#right span.ui-icon").css("background-image", "none");
}
});
// function goToVerse(immediately) {
// if ("${vers}" != "") {
// var target = $("#v${vers}").get(0).offsetTop;
//
// if (target !== undefined) {
// if (immediately) {
// $.mobile.silentScroll(target);
// } else {
// setTimeout(function(){$.mobile.silentScroll(target);}, 100); // scroll after 1 sec
// }
// }
// }
// }
// $(document).on('pageshow', function(){
//goToVerse(false);
// });
</script>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<c:forEach items="${letters}" var="letter" varStatus="index">
<c:if test="${(index.index % 4 == 0) && (index.index > 0)}">
</div>
</c:if>
<c:if test="${index.index % 4 == 0}">
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
</c:if>
<a href="bijbelindexboeken?start=${letter}&t=${vertaling.id}" data-role="button" data-theme="a" data-ajax="false">${letter}</a>
&nbsp;
</c:forEach>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<c:forEach items="${boeken}" var="boek" varStatus="index">
<c:if test="${(index.index % 4 == 0) && (index.index > 0)}">
</div>
</c:if>
<c:if test="${index.index % 4 == 0}">
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
</c:if>
<a href="bijbelindexchapter?boek=${boek.id}&t=${vertaling.id}" data-role="button" data-theme="a" data-ajax="false">${boek.afkorting}</a>
&nbsp;
</c:forEach>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,176 @@
<%@ page session="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Index (${vertaling.afkorting})</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<a id="boekhoofdstuk" style="width: 100%;" href="#" data-role="button" data-transition="fade" class="indexlabel" data-theme="a">${boek.boek} <span id="choice"></span></a>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k7" href="#" data-role="button" data-theme="a">7</a>
&nbsp;
<a id="k8" href="#" data-role="button" data-theme="a">8</a>
&nbsp;
<a id="k9" href="#" data-role="button" data-theme="a">9</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k4" href="#" data-role="button" data-theme="a">4</a>
&nbsp;
<a id="k5" href="#" data-role="button" data-theme="a">5</a>
&nbsp;
<a id="k6" href="#" data-role="button" data-theme="a">6</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k1" href="#" data-role="button" data-theme="a">1</a>
&nbsp;
<a id="k2" href="#" data-role="button" data-theme="a">2</a>
&nbsp;
<a id="k3" href="#" data-role="button" data-theme="a">3</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="kd" href="#" data-role="button" data-theme="a">&#x25C0;</a>
&nbsp;
<a id="k0" href="#" data-role="button" data-theme="a">0</a>
&nbsp;
<a id="ke" href="#" data-role="button" data-theme="a">&#x2714;</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$(".indexknoppengroep a").click(function() {
if ($("div.ui-loader.ui-overlay-shadow").length == 1) {
return;
}
var knop = this.id.substring(1);
switch(knop) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
addNumber(knop);
break;
case "d":
removeChar();
break;
case "e":
if (! $("#boekhoofdstuk").hasClass("invalid")) {
var choice = $("#choice").html();
if (choice == "") {
choice = "1";
$("#choice").html(choice);
}
window.location.href = "bijbel?t=${vertaling.id}&b=${boek.id}&h=" + choice;
}
}
});
});
function addNumber(knop) {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte == 3) {
choice = "";
}
if (lengte == 0 && knop == "0") {
return;
}
choice += knop;
$("#choice").html(choice);
checkCorrectChapter();
}
function removeChar() {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte > 0) {
choice = choice.substring(0, choice.length - 1);
$("#choice").html(choice);
}
checkCorrectChapter();
}
function checkCorrectChapter() {
var hoofdstuk = parseInt($("#choice").html());
if (hoofdstuk > ${boek.hoofdstukken}) {
$("#boekhoofdstuk").addClass("invalid");
} else {
$("#boekhoofdstuk").removeClass("invalid");
}
}
function toastVerseDoesNotExist() {
$("a#choice span span").addClass("invalid");
$("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>Dit vers bestaat niet.</h1></div>")
.css({
display: "block",
// opacity: 0.90,
position: "fixed",
padding: "7px",
"text-align": "center",
width: "350px",
left: ($(window).width() - 364) / 2,
top: $(window).height() / 2})
.appendTo($.mobile.pageContainer).delay(2000)
.fadeOut(400, function(){
$(this).remove();
var choice = $("a#choice span span").html();
choice = choice.substring(0, choice.indexOf("vers") + 5);
$("a#choice span span").html(choice);
$("a#choice span span").removeClass("invalid");
});
}
function checkPsalmVerseExists(psalm, vers) {
var result;
$.ajax({
url: 'psalmcheck',
async: false,
data: {p: psalm, v: vers}, //'p=' & psalm & '&v=' & vers,
success: function(data) {
result = data;
}
});
return result;
}
</script>
</body>
</html>

View File

@@ -0,0 +1,124 @@
<%@ page session="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Zondag ${hc}</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<link rel="stylesheet"
href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet"
href="resources/css/psalmenweb.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script>
<script src="resources/js/prefs.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header" data-position="fixed">
<div class="psalmheader">Zondag ${hc}</div>
<a data-inline="true" data-icon="custom" data-iconpos="notext" id="bw" data-ajax="false" class="ui-btn-right" style="margin-right:350px;"></a>
<a href="psalmindex" data-inline="true" data-icon="custom" data-iconpos="notext" id="note" data-ajax="false" class="ui-btn-right" style="margin-right:150px;"></a>
<a href="bijbelindex?t=1" data-inline="true" data-icon="custom" data-iconpos="notext" id="book" data-ajax="false" class="ui-btn-right" style="margin-right:50px;"></a>
</div>
<div data-role="content">
<br /> <br />
<c:forEach items="${zondag}" var="vraag" varStatus="varstatus">
<div class="psalmverseheader">Vraag ${vraag.vraag}</div>
<p class="hclinequestion">${vraag.tekstVraag}</p>
<p class="hclineanswer">${vraag.tekstAntwoord}</p>
<br />
</c:forEach>
<br />
</div>
<div data-role="footer" class="bigbuttons">
<div data-role="navbar" class="bigbuttons" data-position="fixed">
<ul>
<li><a href="hc?z=${hc - 1}" id="left" data-icon="custom" data-ajax="false">&nbsp;</a></li>
<li><a href="#" id="minus" data-icon="custom">&nbsp;</a></li>
<li><a href="hcindex" id="index" data-icon="custom" data-ajax="false" data-transition="pop">&nbsp;</a></li>
<li><a href="#" id="plus" data-icon="custom">&nbsp;</a></li>
<li><a href="hc?z=${hc + 1}" id="right" data-icon="custom" data-ajax="false">&nbsp;</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var PREF_TEXTSIZE;
var PREF_COLOR;
$(function() {
loadPreferences();
setPreferences();
bindListeners();
});
function changeTextSize(delta) {
var size = parseInt($(".psalmverseheader").css("font-size"));
cssSize = (size + delta) + "px";
$(".psalmverseheader").css("font-size", cssSize);
size = parseInt($(".hclinequestion").css("font-size"));
cssSize = (size + delta) + "px";
$(".hclinequestion").css("font-size", cssSize);
size = parseInt($(".hclineanswer").css("font-size"));
cssSize = (size + delta) + "px";
$(".hclineanswer").css("font-size", cssSize);
PREF_TEXTSIZE = size + delta;
savePreferences();
}
$(document).on('pageinit', function() {
$(document).on("click", "#minus", function(e) {
changeTextSize(-2);
});
$(document).on("click", "#plus", function(e) {
changeTextSize(2);
});
if ('${hc}' == '1') {
$("#left").attr("href", "#");
$("#left span.ui-icon").css("background-image", "none");
}
if ('${hc}' == '52') {
$("#right").attr("href", "#");
$("#right span.ui-icon").css("background-image", "none");
}
});
function goToVerse(immediately) {
if ("${vers}" != "") {
var target = $("#v${vers}").get(0).offsetTop;
if (target !== undefined) {
if (immediately) {
$.mobile.silentScroll(target);
} else {
setTimeout(function(){$.mobile.silentScroll(target);}, 100); // scroll after 1 sec
}
}
}
}
$(document).on('pageshow', function(){
goToVerse(false);
});
</script>
</body>
</html>

View File

@@ -0,0 +1,146 @@
<%@ page session="false"%>
<!DOCTYPE html>
<html>
<head>
<title>Index Catechismus</title>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" />
<link rel="stylesheet" href="resources/css/themes/Psalmenweb.min.css" />
<link rel="stylesheet" href="resources/css/psalmenweb.css" />
<style type="text/css">
a {
width: 20%;
}
.ui-btn {
height: 100px;
font-size: 60px;
line-height: 40px;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script
src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js"></script></head>
<body>
<div data-role="page" id="myPage" data-theme="a">
<div data-role="content" data-theme="a">
<a id="hc" style="width: 100%;" href="#" data-role="button" data-transition="fade" class="indexlabel" data-theme="a">Zondag <span id="choice"></span></a>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k7" href="#" data-role="button" data-theme="a">7</a>
&nbsp;
<a id="k8" href="#" data-role="button" data-theme="a">8</a>
&nbsp;
<a id="k9" href="#" data-role="button" data-theme="a">9</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k4" href="#" data-role="button" data-theme="a">4</a>
&nbsp;
<a id="k5" href="#" data-role="button" data-theme="a">5</a>
&nbsp;
<a id="k6" href="#" data-role="button" data-theme="a">6</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="k1" href="#" data-role="button" data-theme="a">1</a>
&nbsp;
<a id="k2" href="#" data-role="button" data-theme="a">2</a>
&nbsp;
<a id="k3" href="#" data-role="button" data-theme="a">3</a>
</div>
<div data-role="controlgroup" data-type="horizontal" class="localnav indexknoppengroep">
<a id="kd" href="#" data-role="button" data-theme="a">&#8630;</a>
&nbsp;
<a id="k0" href="#" data-role="button" data-theme="a">0</a>
&nbsp;
<a id="ke" href="#" data-role="button" data-theme="a">&#x2714;</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$(".indexknoppengroep a").click(function() {
if ($("div.ui-loader.ui-overlay-shadow").length == 1) {
return;
}
var knop = this.id.substring(1);
switch(knop) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
addNumber(knop);
break;
case "d":
if ($("#choice").html().length == 0) {
window.history.back();
} else {
removeChar();
}
break;
case "e":
if (! $("#hc").hasClass("invalid")) {
var choice = $("#choice").html();
window.location.href = "hc?z=" + choice;
}
}
if ($("#choice").html().length == 0) {
$("a#kd span span").html("&#8630;");
} else {
$("a#kd span span").html("&#x25C0;");
}
});
});
function addNumber(knop) {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte == 2) {
choice = "";
}
if (lengte == 0 && knop == "0") {
return;
}
choice += knop;
$("#choice").html(choice);
checkCorrectChoice();
}
function removeChar() {
var choice = $("#choice").html();
var lengte = choice.length;
if (lengte > 0) {
choice = choice.substring(0, choice.length - 1);
$("#choice").html(choice);
}
checkCorrectChoice();
}
function checkCorrectChoice() {
var hc = parseInt($("#choice").html());
if (hc > 52) {
$("#hc").addClass("invalid");
} else {
$("#hc").removeClass("invalid");
}
}
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More