diff --git a/frontend/routes.ts b/frontend/routes.ts index 552daee..540a278 100644 --- a/frontend/routes.ts +++ b/frontend/routes.ts @@ -1,9 +1,14 @@ +import { Flow } from "@vaadin/flow-frontend"; import { Route } from '@vaadin/router'; import Role from './generated/com/cubetiqs/fusion/data/Role'; import { appStore } from './stores/app-store'; import './views/home/home-view'; import './views/main-layout'; +const { serverSideRoutes } = new Flow({ + imports: () => import('../target/frontend/generated-flow-imports'), +}); + export type ViewRoute = Route & { title?: string; icon?: string; @@ -65,7 +70,11 @@ export const routes: ViewRoute[] = [ { path: '', component: 'main-layout', - children: [...views], + children: [ + ...views, + // for server-side, the next magic line sends all unmatched routes: + ...serverSideRoutes, // IMPORTANT: this must be the last entry in the array + ], }, { path: 'login', diff --git a/frontend/views/login/login-view.ts b/frontend/views/login/login-view.ts index 3df1f16..15be3e3 100644 --- a/frontend/views/login/login-view.ts +++ b/frontend/views/login/login-view.ts @@ -30,7 +30,7 @@ export class LoginView extends View { action="login" no-forgot-password .i18n=${Object.assign( - { header: { title: 'Fusion Management', description: 'Login using user/user or admin/admin' } }, + { header: { title: 'Fusion', description: 'Login using user/user or admin/admin' } }, loginI18nDefault )} > diff --git a/package.json b/package.json index 4788e5a..9e778fa 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,8 @@ }, "vaadin": { "dependencies": { + "@adobe/lit-mobx": "2.0.0-rc.4", + "@fontsource/roboto": "4.5.0", "@polymer/iron-icon": "3.0.1", "@polymer/iron-list": "3.1.0", "@polymer/polymer": "3.2.0", @@ -139,7 +141,9 @@ "@vaadin/vaadin-upload": "21.0.0-alpha13", "@vaadin/vaadin-virtual-list": "21.0.0-alpha13", "construct-style-sheets-polyfill": "2.4.16", - "lit": "2.0.0-rc.1" + "line-awesome": "1.3.0", + "lit": "2.0.0-rc.1", + "mobx": "^6.1.5" }, "devDependencies": { "@types/validator": "13.1.0", diff --git a/pom.xml b/pom.xml index 6d62633..044a223 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,6 @@ a-vaadin-helper 1.7.1 - org.vaadin.artur.exampledata exampledata @@ -132,14 +131,6 @@ spring-boot-devtools true - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.session - spring-session-data-redis - diff --git a/src/main/java/com/cubetiqs/fusion/security/SecurityConfiguration.java b/src/main/java/com/cubetiqs/fusion/security/SecurityConfiguration.java index a7b619c..47ad325 100644 --- a/src/main/java/com/cubetiqs/fusion/security/SecurityConfiguration.java +++ b/src/main/java/com/cubetiqs/fusion/security/SecurityConfiguration.java @@ -33,6 +33,9 @@ public class SecurityConfiguration extends VaadinWebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { super.configure(web); - web.ignoring().antMatchers("/images/logo.png"); + web.ignoring() + .antMatchers( + "/images/logo.png" + ); } } diff --git a/src/main/kotlin/com/cubetiqs/fusion/Application.kt b/src/main/kotlin/com/cubetiqs/fusion/Application.kt index 45d8732..4d1bcb3 100644 --- a/src/main/kotlin/com/cubetiqs/fusion/Application.kt +++ b/src/main/kotlin/com/cubetiqs/fusion/Application.kt @@ -1,15 +1,22 @@ package com.cubetiqs.fusion -import org.springframework.boot.autoconfigure.SpringBootApplication -import com.vaadin.flow.server.PWA -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer +import com.vaadin.flow.component.dependency.NpmPackage import com.vaadin.flow.component.page.AppShellConfigurator +import com.vaadin.flow.server.PWA import com.vaadin.flow.theme.Theme import org.springframework.boot.SpringApplication +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer @SpringBootApplication @Theme(value = "fusionmanagement") @PWA(name = "Fusion Management", shortName = "Fusion Management", offlineResources = ["images/logo.png"]) +@NpmPackage.Container( + NpmPackage(value = "@fontsource/roboto", version = "4.5.0"), + NpmPackage(value = "@adobe/lit-mobx", version = "2.0.0-rc.4"), + NpmPackage(value = "mobx", version = "^6.1.5"), + NpmPackage(value = "line-awesome", version = "1.3.0"), +) class Application : SpringBootServletInitializer(), AppShellConfigurator fun main(args: Array) { diff --git a/src/main/kotlin/com/cubetiqs/fusion/config/DefaultConfig.kt b/src/main/kotlin/com/cubetiqs/fusion/config/DefaultConfig.kt new file mode 100644 index 0000000..562cf70 --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/fusion/config/DefaultConfig.kt @@ -0,0 +1,6 @@ +package com.cubetiqs.fusion.config + +import org.springframework.context.annotation.Configuration + +@Configuration +class DefaultConfig \ No newline at end of file diff --git a/src/main/kotlin/com/cubetiqs/fusion/config/SessionConfig.kt b/src/main/kotlin/com/cubetiqs/fusion/config/SessionConfig.kt deleted file mode 100644 index cd86e1a..0000000 --- a/src/main/kotlin/com/cubetiqs/fusion/config/SessionConfig.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.cubetiqs.fusion.config - -import org.springframework.context.annotation.Configuration -import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession - -@Configuration -@EnableRedisHttpSession -class SessionConfig \ No newline at end of file diff --git a/src/main/kotlin/com/cubetiqs/fusion/frontend/MainView.kt b/src/main/kotlin/com/cubetiqs/fusion/frontend/MainView.kt new file mode 100644 index 0000000..96f0c13 --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/fusion/frontend/MainView.kt @@ -0,0 +1,5 @@ +package com.cubetiqs.fusion.frontend + +import com.vaadin.flow.component.UI + +class MainView : UI() \ No newline at end of file diff --git a/src/main/kotlin/com/cubetiqs/fusion/frontend/views/test/TestView.kt b/src/main/kotlin/com/cubetiqs/fusion/frontend/views/test/TestView.kt new file mode 100644 index 0000000..dc22355 --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/fusion/frontend/views/test/TestView.kt @@ -0,0 +1,11 @@ +package com.cubetiqs.fusion.frontend.views.test + +import com.vaadin.flow.component.html.Div +import com.vaadin.flow.router.Route + +@Route("/views/test") +class TestView : Div() { + init { + add("Hello World") + } +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 1f441df..50c332d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -3,12 +3,10 @@ server: logging: level: - org.atmosphere: warn + org: + atmosphere: warn spring: - session: - store-type: redis - mustache: check-template-location: false