From 88a4f61917fdd3df838c75cd94ecf91e3f72f66b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20R=C3=A4del?= Date: Tue, 18 Oct 2016 17:04:02 +0200 Subject: [PATCH] BAEL-86: Added localization and themes. --- .../dispatcher/servlet/WebConfiguration.java | 41 ------- .../src/main/webapp/WEB-INF/views/home.html | 14 --- .../main/webapp/WEB-INF/views/task-add.html | 14 --- .../main/webapp/WEB-INF/views/task-list.html | 19 --- .../pom.xml | 29 +++-- .../dispatcher/servlet/RootConfiguration.java | 4 +- .../dispatcher/servlet/WebConfiguration.java | 114 ++++++++++++++++++ .../dispatcher/servlet/WebInitializer.java | 12 +- .../dispatcher/servlet/models/Task.java | 2 +- .../web/GlobalDefaultExceptionHandler.java | 2 +- .../servlet/web/HomeController.java | 6 +- .../servlet/web/TaskController.java | 11 +- .../src/main/resources/log4j2.xml | 0 .../src/main/resources/messages.properties | 10 ++ .../src/main/resources/messages_de.properties | 10 ++ .../main/resources/theme-post_it.properties | 1 + .../main/resources/theme-robotask.properties | 1 + .../src/main/webapp/WEB-INF/views/error.html | 1 + .../src/main/webapp/WEB-INF/views/home.html | 15 +++ .../main/webapp/WEB-INF/views/task-add.html | 15 +++ .../main/webapp/WEB-INF/views/task-list.html | 20 +++ .../main/webapp/public/css/themes/post_it.css | 8 ++ .../webapp/public/css/themes/robotask.css | 8 ++ 23 files changed, 244 insertions(+), 113 deletions(-) delete mode 100644 enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebConfiguration.java delete mode 100644 enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html delete mode 100644 enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html delete mode 100644 enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html rename {enterprise-patterns/spring-dispatcher-servlet => spring-dispatcher-servlet}/pom.xml (77%) rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/RootConfiguration.java (78%) create mode 100644 spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/WebInitializer.java (62%) rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/models/Task.java (91%) rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java (93%) rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/web/HomeController.java (76%) rename {enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns => spring-dispatcher-servlet/src/main/java/com/baeldung/spring}/dispatcher/servlet/web/TaskController.java (82%) rename {enterprise-patterns/spring-dispatcher-servlet => spring-dispatcher-servlet}/src/main/resources/log4j2.xml (100%) create mode 100644 spring-dispatcher-servlet/src/main/resources/messages.properties create mode 100644 spring-dispatcher-servlet/src/main/resources/messages_de.properties create mode 100644 spring-dispatcher-servlet/src/main/resources/theme-post_it.properties create mode 100644 spring-dispatcher-servlet/src/main/resources/theme-robotask.properties rename {enterprise-patterns/spring-dispatcher-servlet => spring-dispatcher-servlet}/src/main/webapp/WEB-INF/views/error.html (73%) create mode 100644 spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html create mode 100644 spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html create mode 100644 spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html create mode 100644 spring-dispatcher-servlet/src/main/webapp/public/css/themes/post_it.css create mode 100644 spring-dispatcher-servlet/src/main/webapp/public/css/themes/robotask.css diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebConfiguration.java b/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebConfiguration.java deleted file mode 100644 index 90f4f48f50e7..000000000000 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebConfiguration.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.thymeleaf.spring4.SpringTemplateEngine; -import org.thymeleaf.spring4.view.ThymeleafViewResolver; -import org.thymeleaf.templatemode.TemplateMode; -import org.thymeleaf.templateresolver.ServletContextTemplateResolver; - -import javax.servlet.ServletContext; - -@Configuration -@ComponentScan("com.baeldung.enterprise.patterns.dispatcher.servlet.web") -@EnableWebMvc -public class WebConfiguration extends WebMvcConfigurerAdapter { - @Bean - public ServletContextTemplateResolver templateResolver(ServletContext servletContext) { - ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext); - templateResolver.setPrefix("/WEB-INF/views/"); - templateResolver.setSuffix(".html"); - templateResolver.setTemplateMode(TemplateMode.HTML); - return templateResolver; - } - - @Bean - public SpringTemplateEngine templateEngine(ServletContextTemplateResolver templateResolver) { - SpringTemplateEngine templateEngine = new SpringTemplateEngine(); - templateEngine.setTemplateResolver(templateResolver); - return templateEngine; - } - - @Bean - public ThymeleafViewResolver viewResolver(SpringTemplateEngine templateEngine) { - ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); - viewResolver.setTemplateEngine(templateEngine); - return viewResolver; - } -} diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html b/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html deleted file mode 100644 index 1a333ed6418b..000000000000 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - Welcome to TaskTools! - - -

TaskTools

- - - diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html b/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html deleted file mode 100644 index 70f010e58d93..000000000000 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - -

-
- - - -
- - diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html b/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html deleted file mode 100644 index 2fe628456f40..000000000000 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - -

- -

- Home - Add new -

- - diff --git a/enterprise-patterns/spring-dispatcher-servlet/pom.xml b/spring-dispatcher-servlet/pom.xml similarity index 77% rename from enterprise-patterns/spring-dispatcher-servlet/pom.xml rename to spring-dispatcher-servlet/pom.xml index e7220eec594a..646db663db9f 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/pom.xml +++ b/spring-dispatcher-servlet/pom.xml @@ -5,12 +5,11 @@ 4.0.0 spring-dispatcher-servlet - 1.0.0-SNAPSHOT war - com.baeldung.enterprise.patterns - enterprise-patterns-parent + com.baeldung + parent-modules 1.0.0-SNAPSHOT .. @@ -25,22 +24,27 @@ org.springframework spring-webmvc - 4.3.2.RELEASE + 4.3.3.RELEASE org.thymeleaf thymeleaf-spring4 - 3.0.1.RELEASE + 3.0.2.RELEASE - org.apache.logging.log4j - log4j-slf4j-impl - 2.6.2 + org.slf4j + slf4j-api + 1.7.21 org.apache.logging.log4j log4j-core - 2.6.2 + 2.7 + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.7 @@ -49,6 +53,11 @@ org.apache.maven.plugins maven-compiler-plugin + 3.5.1 + + 1.8 + 1.8 + org.apache.maven.plugins @@ -61,7 +70,7 @@ org.eclipse.jetty jetty-maven-plugin - 9.4.0.M1 + 9.3.12.v20160915 / diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/RootConfiguration.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/RootConfiguration.java similarity index 78% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/RootConfiguration.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/RootConfiguration.java index 9b22e411c546..48281c5e5d4c 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/RootConfiguration.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/RootConfiguration.java @@ -1,6 +1,6 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet; +package com.baeldung.spring.dispatcher.servlet; -import com.baeldung.enterprise.patterns.dispatcher.servlet.models.Task; +import com.baeldung.spring.dispatcher.servlet.models.Task; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java new file mode 100644 index 000000000000..5bfde3fb6bb0 --- /dev/null +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java @@ -0,0 +1,114 @@ +package com.baeldung.spring.dispatcher.servlet; + +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ResourceBundleMessageSource; +import org.springframework.ui.context.support.ResourceBundleThemeSource; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.ThemeResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.i18n.CookieLocaleResolver; +import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; +import org.springframework.web.servlet.theme.CookieThemeResolver; +import org.springframework.web.servlet.theme.ThemeChangeInterceptor; +import org.thymeleaf.spring4.SpringTemplateEngine; +import org.thymeleaf.spring4.view.ThymeleafViewResolver; +import org.thymeleaf.templatemode.TemplateMode; +import org.thymeleaf.templateresolver.ServletContextTemplateResolver; + +import javax.servlet.ServletContext; +import java.util.Locale; + +@Configuration +@ComponentScan("com.baeldung.enterprise.patterns.dispatcher.servlet.web") +@EnableWebMvc +public class WebConfiguration extends WebMvcConfigurerAdapter { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry + .addResourceHandler("/public/**") + .addResourceLocations("/public/"); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(localeChangeInterceptor()); + registry.addInterceptor(themeChangeInterceptor()); + } + + @Bean + public ServletContextTemplateResolver templateResolver(ServletContext servletContext) { + ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext); + templateResolver.setPrefix("/WEB-INF/views/"); + templateResolver.setSuffix(".html"); + templateResolver.setTemplateMode(TemplateMode.HTML); + return templateResolver; + } + + @Bean + public SpringTemplateEngine templateEngine(ServletContextTemplateResolver templateResolver) { + SpringTemplateEngine templateEngine = new SpringTemplateEngine(); + templateEngine.setTemplateResolver(templateResolver); + return templateEngine; + } + + @Bean + public ThymeleafViewResolver viewResolver(SpringTemplateEngine templateEngine) { + ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); + viewResolver.setTemplateEngine(templateEngine); + return viewResolver; + } + + @Bean + public MessageSource messageSource() { + ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); + messageSource.setBasename("messages"); + return messageSource; + } + + @Bean + public LocaleResolver localeResolver() { + CookieLocaleResolver localeResolver = new CookieLocaleResolver(); + localeResolver.setDefaultLocale(Locale.ENGLISH); + localeResolver.setCookieName("locale"); + localeResolver.setCookieMaxAge(-1); + return localeResolver; + } + + @Bean + public LocaleChangeInterceptor localeChangeInterceptor() { + LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); + localeChangeInterceptor.setParamName("lang"); + localeChangeInterceptor.setIgnoreInvalidLocale(true); + return localeChangeInterceptor; + } + + @Bean + public ResourceBundleThemeSource themeSource() { + ResourceBundleThemeSource themeSource = new ResourceBundleThemeSource(); + themeSource.setBasenamePrefix("theme-"); + themeSource.setFallbackToSystemLocale(false); + return themeSource; + } + + @Bean + public ThemeResolver themeResolver() { + CookieThemeResolver themeResolver = new CookieThemeResolver(); + themeResolver.setDefaultThemeName("robotask"); + themeResolver.setCookieName("theme"); + themeResolver.setCookieMaxAge(-1); + return themeResolver; + } + + @Bean + public ThemeChangeInterceptor themeChangeInterceptor() { + ThemeChangeInterceptor themeChangeInterceptor = new ThemeChangeInterceptor(); + themeChangeInterceptor.setParamName("theme"); + return themeChangeInterceptor; + } +} diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebInitializer.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java similarity index 62% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebInitializer.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java index a544b2cbacf6..34e7ce6fc970 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/WebInitializer.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java @@ -1,7 +1,10 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet; +package com.baeldung.spring.dispatcher.servlet; +import com.baeldung.spring.dispatcher.servlet.web.filters.RequestLoggingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; +import javax.servlet.Filter; + public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class[] getRootConfigClasses() { @@ -15,6 +18,11 @@ protected Class[] getServletConfigClasses() { @Override protected String[] getServletMappings() { - return new String[]{"/example/*"}; + return new String[]{"/*"}; + } + + @Override + protected Filter[] getServletFilters() { + return new Filter[]{new RequestLoggingFilter()}; } } diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/models/Task.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/models/Task.java similarity index 91% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/models/Task.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/models/Task.java index dfe4aed4e172..d67294811255 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/models/Task.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/models/Task.java @@ -1,4 +1,4 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet.models; +package com.baeldung.spring.dispatcher.servlet.models; import org.springframework.format.annotation.DateTimeFormat; diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java similarity index 93% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java index 0c44d0a5e712..f25fe11b53f6 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/GlobalDefaultExceptionHandler.java @@ -1,4 +1,4 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet.web; +package com.baeldung.spring.dispatcher.servlet.web; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.web.bind.annotation.ControllerAdvice; diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/HomeController.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/HomeController.java similarity index 76% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/HomeController.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/HomeController.java index 6e4e437a441b..0a7d81958e0e 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/HomeController.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/HomeController.java @@ -1,16 +1,18 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet.web; +package com.baeldung.spring.dispatcher.servlet.web; -import com.baeldung.enterprise.patterns.dispatcher.servlet.models.Task; +import com.baeldung.spring.dispatcher.servlet.models.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Controller +@RequestMapping("/") public class HomeController { @Autowired private Map> taskMap; diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/TaskController.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/TaskController.java similarity index 82% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/TaskController.java rename to spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/TaskController.java index 6930464f815c..2450e9244d93 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/java/com/baeldung/enterprise/patterns/dispatcher/servlet/web/TaskController.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/web/TaskController.java @@ -1,15 +1,12 @@ -package com.baeldung.enterprise.patterns.dispatcher.servlet.web; +package com.baeldung.spring.dispatcher.servlet.web; -import com.baeldung.enterprise.patterns.dispatcher.servlet.models.Task; +import com.baeldung.spring.dispatcher.servlet.models.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Controller @@ -24,7 +21,7 @@ public String listForm( @PathVariable("username") String username ) { List tasks = taskMap.get(username).stream() - .sorted((t1, t2) -> t1.getDue().compareTo(t2.getDue())) + .sorted(Comparator.comparing(Task::getDue)) .collect(Collectors.toList()); model.addAttribute("username", username); model.addAttribute("tasks", tasks); diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/resources/log4j2.xml b/spring-dispatcher-servlet/src/main/resources/log4j2.xml similarity index 100% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/resources/log4j2.xml rename to spring-dispatcher-servlet/src/main/resources/log4j2.xml diff --git a/spring-dispatcher-servlet/src/main/resources/messages.properties b/spring-dispatcher-servlet/src/main/resources/messages.properties new file mode 100644 index 000000000000..63f0c63a4d6f --- /dev/null +++ b/spring-dispatcher-servlet/src/main/resources/messages.properties @@ -0,0 +1,10 @@ +home.title=Welcome to TaskTools! +task.add.description=description +task.add.due=due +task.add.header=Adding a task to {0}''s list: +task.add.submit=Submit +task.add.title={0}: task add +task.list.add-new=Add new +task.list.header={0}''s tasks: +task.list.home=Home +task.list.title={0}: task list diff --git a/spring-dispatcher-servlet/src/main/resources/messages_de.properties b/spring-dispatcher-servlet/src/main/resources/messages_de.properties new file mode 100644 index 000000000000..8bda8fa6989c --- /dev/null +++ b/spring-dispatcher-servlet/src/main/resources/messages_de.properties @@ -0,0 +1,10 @@ +home.title=Willkommen bei TaskTools! +task.add.description=Beschreibung +task.add.due=f\u00e4llig +task.add.header=F\u00fcge eine Aufgabe zu {0}''s Liste hinzu: +task.add.submit=Senden +task.add.title={0}: Task hinzuf\u00fcgen +task.list.add-new=Neuer Task +task.list.header={0}''s Tasks: +task.list.home=Startseite +task.list.title={0}: Task Liste diff --git a/spring-dispatcher-servlet/src/main/resources/theme-post_it.properties b/spring-dispatcher-servlet/src/main/resources/theme-post_it.properties new file mode 100644 index 000000000000..d2998e2bdfad --- /dev/null +++ b/spring-dispatcher-servlet/src/main/resources/theme-post_it.properties @@ -0,0 +1 @@ +stylesheet=/public/css/themes/post_it.css diff --git a/spring-dispatcher-servlet/src/main/resources/theme-robotask.properties b/spring-dispatcher-servlet/src/main/resources/theme-robotask.properties new file mode 100644 index 000000000000..68fe270b64f3 --- /dev/null +++ b/spring-dispatcher-servlet/src/main/resources/theme-robotask.properties @@ -0,0 +1 @@ +stylesheet=/public/css/themes/robotask.css diff --git a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html similarity index 73% rename from enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html rename to spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html index c1b362e51a93..cc1ea127899d 100644 --- a/enterprise-patterns/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html +++ b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/error.html @@ -2,6 +2,7 @@ Error +

Error:

diff --git a/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html new file mode 100644 index 000000000000..e26079de969f --- /dev/null +++ b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/home.html @@ -0,0 +1,15 @@ + + + + + + + +

TaskTools

+
    +
  • + +
  • +
+ + diff --git a/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html new file mode 100644 index 000000000000..68b9b233c578 --- /dev/null +++ b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-add.html @@ -0,0 +1,15 @@ + + + + + + + +

+
+ + + +
+ + diff --git a/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html new file mode 100644 index 000000000000..cc5e0a396daa --- /dev/null +++ b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/views/task-list.html @@ -0,0 +1,20 @@ + + + + + + + +

+
    +
  • +

    +

    +
  • +
+

+ + +

+ + diff --git a/spring-dispatcher-servlet/src/main/webapp/public/css/themes/post_it.css b/spring-dispatcher-servlet/src/main/webapp/public/css/themes/post_it.css new file mode 100644 index 000000000000..578781ec83e1 --- /dev/null +++ b/spring-dispatcher-servlet/src/main/webapp/public/css/themes/post_it.css @@ -0,0 +1,8 @@ +@import url('https://fonts.googleapis.com/css?family=Indie+Flower'); + +* { + font-family: 'Indie Flower', sans-serif; + font-size: 18px; + color: #ffeb3b; + background-color: #212121; +} diff --git a/spring-dispatcher-servlet/src/main/webapp/public/css/themes/robotask.css b/spring-dispatcher-servlet/src/main/webapp/public/css/themes/robotask.css new file mode 100644 index 000000000000..8c0121b5365c --- /dev/null +++ b/spring-dispatcher-servlet/src/main/webapp/public/css/themes/robotask.css @@ -0,0 +1,8 @@ +@import url('https://fonts.googleapis.com/css?family=Roboto'); + +* { + font-family: Roboto, sans-serif; + font-size: 1em; + color: #212121; + background-color: #fafafa; +}