diff --git a/build.gradle b/build.gradle index d25aba2..752b167 100644 --- a/build.gradle +++ b/build.gradle @@ -1,77 +1,72 @@ plugins { - id 'org.springframework.boot' version '3.5.0' - id 'java' - id 'war' + id 'org.springframework.boot' version '4.0.0' + id 'java' + id 'war' } apply plugin: 'io.spring.dependency-management' group = 'de.jottyfan' -version = '1.5.9' +version = '1.6.0' description = """timetrack""" -sourceCompatibility = 21 -targetCompatibility = 21 +java { + sourceCompatibility = 21 + targetCompatibility = 21 +} repositories { - mavenLocal() - mavenCentral() + mavenLocal() + mavenCentral() maven { url "https://www.jottyfan.de/libs" } maven { url "https://repo.maven.apache.org/maven2" } -// maven { url "https://gitlab.com/jottyfan/libs/-/raw/main" } } dependencies { - implementation 'de.jottyfan:timetrackjooq:20240109' + implementation 'de.jottyfan:timetrackjooq:20240109' - implementation 'org.apache.logging.log4j:log4j-api:2.25.2' - implementation 'org.apache.logging.log4j:log4j-core:2.25.2' - implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.25.2' - - implementation 'org.webjars:bootstrap:5.3.8' - implementation 'org.webjars:font-awesome:7.0.1' - implementation 'org.webjars:jquery:3.7.1' - implementation 'org.webjars:popper.js:2.11.7' - implementation 'org.webjars:datatables:2.3.2' + implementation 'org.webjars:bootstrap:5.3.8' + implementation 'org.webjars:font-awesome:7.1.0' + implementation 'org.webjars:jquery:3.7.1' + implementation 'org.webjars:popper.js:2.11.7' + implementation 'org.webjars:datatables:2.3.5' implementation 'org.webjars:jquery-ui:1.14.1' - implementation 'org.webjars:fullcalendar:6.1.10' + implementation 'org.webjars.npm:fullcalendar:6.1.19' implementation 'com.google.code.gson:gson'; - - implementation 'org.springframework.boot:spring-boot-starter-jooq' - implementation 'org.springframework.boot:spring-boot-starter-security' + + implementation 'org.springframework.boot:spring-boot-starter-jooq' + implementation 'org.springframework.boot:spring-boot-starter-security' implementation "org.springframework.boot:spring-boot-starter-oauth2-client" implementation 'org.springframework.security:spring-security-oauth2-authorization-server' - implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-test' - implementation 'org.springframework.boot:spring-boot-devtools' - implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-test' + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' - implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:latest.release' + implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:latest.release' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - runtimeOnly 'org.postgresql:postgresql' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.springframework.security:spring-security-test' + runtimeOnly 'org.postgresql:postgresql' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.security:spring-security-test' } war { - doFirst { - manifest { - attributes("Implementation-Title": project.name, - "Implementation-Version": version, - "Implementation-Timestamp": new Date()) - } + doFirst { + manifest { + attributes("Implementation-Title": project.name, + "Implementation-Version": version, + "Implementation-Timestamp": new Date()) } - archiveBaseName = project.name - archiveVersion = version - archiveFileName = 'timetrack.war' + } + archiveBaseName = project.name + archiveVersion = version + archiveFileName = 'timetrack.war' } test { - useJUnitPlatform() + useJUnitPlatform() } // add version to manifest diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3ae1e2f..ac57dd1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/de/jottyfan/timetrack/config/SecurityConfiguration.java b/src/main/java/de/jottyfan/timetrack/config/SecurityConfiguration.java index d4d05e7..e18cbb1 100644 --- a/src/main/java/de/jottyfan/timetrack/config/SecurityConfiguration.java +++ b/src/main/java/de/jottyfan/timetrack/config/SecurityConfiguration.java @@ -11,7 +11,6 @@ import org.springframework.security.oauth2.client.registration.InMemoryClientReg import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.session.NullAuthenticatedSessionStrategy; import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy; -import org.springframework.security.web.util.matcher.AntPathRequestMatcher; /** * @@ -35,7 +34,7 @@ public class SecurityConfiguration { // @formatter:off .oauth2Login(o -> o.defaultSuccessUrl("/")) .logout(o -> o.logoutSuccessHandler(new OidcClientInitiatedLogoutSuccessHandler(crr))) - .authorizeHttpRequests(o -> o.requestMatchers(AntPathRequestMatcher.antMatcher("/public/**"), AntPathRequestMatcher.antMatcher("/theme/**")).permitAll().anyRequest().authenticated()) + .authorizeHttpRequests(o -> o.requestMatchers("/public/**", "/theme/**").permitAll().anyRequest().authenticated()) .oauth2ResourceServer(o -> o.jwt(Customizer.withDefaults())) .sessionManagement(o -> o.init(sec)); // @formatter:on diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index f745140..cae4444 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -45,7 +45,7 @@ body { @media(min-width:1600px) { .tabdivblurred { margin: auto; - width: 1111px; + width: 1212px; } } @@ -340,6 +340,7 @@ body { padding: 4px; padding-right: 0px; margin-right: 4px; + white-space: nowrap; } .tab-pane-table { diff --git a/src/main/resources/templates/layout/main.html b/src/main/resources/templates/layout/main.html index ea97434..cbc8d00 100644 --- a/src/main/resources/templates/layout/main.html +++ b/src/main/resources/templates/layout/main.html @@ -6,8 +6,8 @@ Timetrack - - + + @@ -16,7 +16,7 @@ - +