Browse Source

Esta version no funciona

pull/1/head
parent
commit
dc8083aed8
16 changed files with 15851 additions and 47 deletions
  1. +1
    -0
      frontend/themes/soportet.iv1.2/main-layout.css
  2. +1
    -1
      frontend/themes/soportet.iv1.2/styles.css
  3. +15417
    -0
      package-lock.json
  4. +275
    -0
      package.json
  5. +4
    -1
      src/main/java/com/example/application/Application.java
  6. +33
    -24
      src/main/java/com/example/application/api/SecurityConfig.java
  7. +24
    -0
      src/main/java/com/example/application/api/SecurityService.java
  8. +13
    -7
      src/main/java/com/example/application/views/MainLayout.java
  9. +3
    -7
      src/main/java/com/example/application/views/crearnuevoticket/CrearnuevoTicketView.java
  10. +2
    -0
      src/main/java/com/example/application/views/login/CustomLoginView.java
  11. +20
    -7
      src/main/java/com/example/application/views/login/LoginView.java
  12. BIN
      src/main/resources/META-INF/resources/images/900x160.png
  13. BIN
      src/main/resources/META-INF/resources/images/NVO_JUMAPA.png
  14. +39
    -0
      tsconfig.json
  15. +10
    -0
      types.d.ts
  16. +9
    -0
      vite.config.ts

+ 1
- 0
frontend/themes/soportet.iv1.2/main-layout.css View File

@ -18,3 +18,4 @@ vaadin-side-nav-item vaadin-icon {
[slot="drawer"]:is(header, footer):is(:empty) {
display: none;
}

+ 1
- 1
frontend/themes/soportet.iv1.2/styles.css View File

@ -1 +1 @@
@import url('./main-layout.css');
@import url('./main-layout.css');

+ 15417
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 275
- 0
package.json View File

@ -0,0 +1,275 @@
{
"name": "no-name",
"license": "UNLICENSED",
"type": "module",
"dependencies": {
"@polymer/polymer": "3.5.1",
"@vaadin/a11y-base": "24.3.11",
"@vaadin/accordion": "24.3.11",
"@vaadin/app-layout": "24.3.11",
"@vaadin/avatar": "24.3.11",
"@vaadin/avatar-group": "24.3.11",
"@vaadin/board": "24.3.11",
"@vaadin/bundles": "24.3.11",
"@vaadin/button": "24.3.11",
"@vaadin/charts": "24.3.11",
"@vaadin/checkbox": "24.3.11",
"@vaadin/checkbox-group": "24.3.11",
"@vaadin/combo-box": "24.3.11",
"@vaadin/common-frontend": "0.0.19",
"@vaadin/component-base": "24.3.11",
"@vaadin/confirm-dialog": "24.3.11",
"@vaadin/context-menu": "24.3.11",
"@vaadin/cookie-consent": "24.3.11",
"@vaadin/crud": "24.3.11",
"@vaadin/custom-field": "24.3.11",
"@vaadin/date-picker": "24.3.11",
"@vaadin/date-time-picker": "24.3.11",
"@vaadin/details": "24.3.11",
"@vaadin/dialog": "24.3.11",
"@vaadin/email-field": "24.3.11",
"@vaadin/field-base": "24.3.11",
"@vaadin/field-highlighter": "24.3.11",
"@vaadin/form-layout": "24.3.11",
"@vaadin/grid": "24.3.11",
"@vaadin/grid-pro": "24.3.11",
"@vaadin/horizontal-layout": "24.3.11",
"@vaadin/icon": "24.3.11",
"@vaadin/icons": "24.3.11",
"@vaadin/input-container": "24.3.11",
"@vaadin/integer-field": "24.3.11",
"@vaadin/item": "24.3.11",
"@vaadin/list-box": "24.3.11",
"@vaadin/lit-renderer": "24.3.11",
"@vaadin/login": "24.3.11",
"@vaadin/map": "24.3.11",
"@vaadin/menu-bar": "24.3.11",
"@vaadin/message-input": "24.3.11",
"@vaadin/message-list": "24.3.11",
"@vaadin/multi-select-combo-box": "24.3.11",
"@vaadin/notification": "24.3.11",
"@vaadin/number-field": "24.3.11",
"@vaadin/overlay": "24.3.11",
"@vaadin/password-field": "24.3.11",
"@vaadin/polymer-legacy-adapter": "24.3.11",
"@vaadin/progress-bar": "24.3.11",
"@vaadin/radio-group": "24.3.11",
"@vaadin/rich-text-editor": "24.3.11",
"@vaadin/router": "1.7.5",
"@vaadin/scroller": "24.3.11",
"@vaadin/select": "24.3.11",
"@vaadin/side-nav": "24.3.11",
"@vaadin/split-layout": "24.3.11",
"@vaadin/tabs": "24.3.11",
"@vaadin/tabsheet": "24.3.11",
"@vaadin/text-area": "24.3.11",
"@vaadin/text-field": "24.3.11",
"@vaadin/time-picker": "24.3.11",
"@vaadin/tooltip": "24.3.11",
"@vaadin/upload": "24.3.11",
"@vaadin/vaadin-development-mode-detector": "2.0.6",
"@vaadin/vaadin-lumo-styles": "24.3.11",
"@vaadin/vaadin-material-styles": "24.3.11",
"@vaadin/vaadin-themable-mixin": "24.3.11",
"@vaadin/vaadin-usage-statistics": "2.1.2",
"@vaadin/vertical-layout": "24.3.11",
"@vaadin/virtual-list": "24.3.11",
"construct-style-sheets-polyfill": "3.1.0",
"date-fns": "2.29.3",
"lit": "3.1.2",
"proj4": "2.9.2"
},
"devDependencies": {
"@rollup/plugin-replace": "5.0.5",
"@rollup/pluginutils": "5.1.0",
"@vitejs/plugin-react": "4.2.1",
"@vitejs/plugin-react-swc": "3.5.0",
"async": "3.2.4",
"glob": "10.3.3",
"rollup-plugin-brotli": "3.1.0",
"rollup-plugin-visualizer": "5.12.0",
"strip-css-comments": "5.0.0",
"transform-ast": "2.4.4",
"typescript": "5.3.3",
"vite": "5.1.7",
"vite-plugin-checker": "0.6.4",
"workbox-build": "7.0.0",
"workbox-core": "7.0.0",
"workbox-precaching": "7.0.0"
},
"vaadin": {
"dependencies": {
"@polymer/polymer": "3.5.1",
"@vaadin/a11y-base": "24.3.11",
"@vaadin/accordion": "24.3.11",
"@vaadin/app-layout": "24.3.11",
"@vaadin/avatar": "24.3.11",
"@vaadin/avatar-group": "24.3.11",
"@vaadin/board": "24.3.11",
"@vaadin/bundles": "24.3.11",
"@vaadin/button": "24.3.11",
"@vaadin/charts": "24.3.11",
"@vaadin/checkbox": "24.3.11",
"@vaadin/checkbox-group": "24.3.11",
"@vaadin/combo-box": "24.3.11",
"@vaadin/common-frontend": "0.0.19",
"@vaadin/component-base": "24.3.11",
"@vaadin/confirm-dialog": "24.3.11",
"@vaadin/context-menu": "24.3.11",
"@vaadin/cookie-consent": "24.3.11",
"@vaadin/crud": "24.3.11",
"@vaadin/custom-field": "24.3.11",
"@vaadin/date-picker": "24.3.11",
"@vaadin/date-time-picker": "24.3.11",
"@vaadin/details": "24.3.11",
"@vaadin/dialog": "24.3.11",
"@vaadin/email-field": "24.3.11",
"@vaadin/field-base": "24.3.11",
"@vaadin/field-highlighter": "24.3.11",
"@vaadin/form-layout": "24.3.11",
"@vaadin/grid": "24.3.11",
"@vaadin/grid-pro": "24.3.11",
"@vaadin/horizontal-layout": "24.3.11",
"@vaadin/icon": "24.3.11",
"@vaadin/icons": "24.3.11",
"@vaadin/input-container": "24.3.11",
"@vaadin/integer-field": "24.3.11",
"@vaadin/item": "24.3.11",
"@vaadin/list-box": "24.3.11",
"@vaadin/lit-renderer": "24.3.11",
"@vaadin/login": "24.3.11",
"@vaadin/map": "24.3.11",
"@vaadin/menu-bar": "24.3.11",
"@vaadin/message-input": "24.3.11",
"@vaadin/message-list": "24.3.11",
"@vaadin/multi-select-combo-box": "24.3.11",
"@vaadin/notification": "24.3.11",
"@vaadin/number-field": "24.3.11",
"@vaadin/overlay": "24.3.11",
"@vaadin/password-field": "24.3.11",
"@vaadin/polymer-legacy-adapter": "24.3.11",
"@vaadin/progress-bar": "24.3.11",
"@vaadin/radio-group": "24.3.11",
"@vaadin/rich-text-editor": "24.3.11",
"@vaadin/router": "1.7.5",
"@vaadin/scroller": "24.3.11",
"@vaadin/select": "24.3.11",
"@vaadin/side-nav": "24.3.11",
"@vaadin/split-layout": "24.3.11",
"@vaadin/tabs": "24.3.11",
"@vaadin/tabsheet": "24.3.11",
"@vaadin/text-area": "24.3.11",
"@vaadin/text-field": "24.3.11",
"@vaadin/time-picker": "24.3.11",
"@vaadin/tooltip": "24.3.11",
"@vaadin/upload": "24.3.11",
"@vaadin/vaadin-development-mode-detector": "2.0.6",
"@vaadin/vaadin-lumo-styles": "24.3.11",
"@vaadin/vaadin-material-styles": "24.3.11",
"@vaadin/vaadin-themable-mixin": "24.3.11",
"@vaadin/vaadin-usage-statistics": "2.1.2",
"@vaadin/vertical-layout": "24.3.11",
"@vaadin/virtual-list": "24.3.11",
"construct-style-sheets-polyfill": "3.1.0",
"date-fns": "2.29.3",
"lit": "3.1.2",
"proj4": "2.9.2"
},
"devDependencies": {
"@rollup/plugin-replace": "5.0.5",
"@rollup/pluginutils": "5.1.0",
"@vitejs/plugin-react": "4.2.1",
"@vitejs/plugin-react-swc": "3.5.0",
"async": "3.2.4",
"glob": "10.3.3",
"rollup-plugin-brotli": "3.1.0",
"rollup-plugin-visualizer": "5.12.0",
"strip-css-comments": "5.0.0",
"transform-ast": "2.4.4",
"typescript": "5.3.3",
"vite": "5.1.7",
"vite-plugin-checker": "0.6.4",
"workbox-build": "7.0.0",
"workbox-core": "7.0.0",
"workbox-precaching": "7.0.0"
},
"hash": "b84a2f2131ecff61b090471f243985aa8d26af21e55eca0ff11eb20a9c7161cc"
},
"overrides": {
"@vaadin/bundles": "$@vaadin/bundles",
"@vaadin/a11y-base": "$@vaadin/a11y-base",
"@vaadin/accordion": "$@vaadin/accordion",
"@vaadin/app-layout": "$@vaadin/app-layout",
"@vaadin/avatar": "$@vaadin/avatar",
"@vaadin/avatar-group": "$@vaadin/avatar-group",
"@vaadin/button": "$@vaadin/button",
"@vaadin/checkbox": "$@vaadin/checkbox",
"@vaadin/checkbox-group": "$@vaadin/checkbox-group",
"@vaadin/combo-box": "$@vaadin/combo-box",
"@vaadin/component-base": "$@vaadin/component-base",
"@vaadin/confirm-dialog": "$@vaadin/confirm-dialog",
"@vaadin/context-menu": "$@vaadin/context-menu",
"@vaadin/custom-field": "$@vaadin/custom-field",
"@vaadin/date-picker": "$@vaadin/date-picker",
"@vaadin/date-time-picker": "$@vaadin/date-time-picker",
"@vaadin/details": "$@vaadin/details",
"@vaadin/dialog": "$@vaadin/dialog",
"@vaadin/email-field": "$@vaadin/email-field",
"@vaadin/field-base": "$@vaadin/field-base",
"@vaadin/field-highlighter": "$@vaadin/field-highlighter",
"@vaadin/form-layout": "$@vaadin/form-layout",
"@vaadin/grid": "$@vaadin/grid",
"@vaadin/horizontal-layout": "$@vaadin/horizontal-layout",
"@vaadin/icon": "$@vaadin/icon",
"@vaadin/icons": "$@vaadin/icons",
"@vaadin/input-container": "$@vaadin/input-container",
"@vaadin/integer-field": "$@vaadin/integer-field",
"@vaadin/item": "$@vaadin/item",
"@vaadin/list-box": "$@vaadin/list-box",
"@vaadin/lit-renderer": "$@vaadin/lit-renderer",
"@vaadin/login": "$@vaadin/login",
"@vaadin/menu-bar": "$@vaadin/menu-bar",
"@vaadin/message-input": "$@vaadin/message-input",
"@vaadin/message-list": "$@vaadin/message-list",
"@vaadin/multi-select-combo-box": "$@vaadin/multi-select-combo-box",
"@vaadin/notification": "$@vaadin/notification",
"@vaadin/number-field": "$@vaadin/number-field",
"@vaadin/overlay": "$@vaadin/overlay",
"@vaadin/password-field": "$@vaadin/password-field",
"@vaadin/polymer-legacy-adapter": "$@vaadin/polymer-legacy-adapter",
"@vaadin/progress-bar": "$@vaadin/progress-bar",
"@vaadin/radio-group": "$@vaadin/radio-group",
"@vaadin/scroller": "$@vaadin/scroller",
"@vaadin/select": "$@vaadin/select",
"@vaadin/side-nav": "$@vaadin/side-nav",
"@vaadin/split-layout": "$@vaadin/split-layout",
"@vaadin/tabs": "$@vaadin/tabs",
"@vaadin/tabsheet": "$@vaadin/tabsheet",
"@vaadin/text-area": "$@vaadin/text-area",
"@vaadin/text-field": "$@vaadin/text-field",
"@vaadin/time-picker": "$@vaadin/time-picker",
"@vaadin/tooltip": "$@vaadin/tooltip",
"@vaadin/upload": "$@vaadin/upload",
"@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector",
"@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles",
"@vaadin/vaadin-material-styles": "$@vaadin/vaadin-material-styles",
"@vaadin/router": "$@vaadin/router",
"@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics",
"@vaadin/vertical-layout": "$@vaadin/vertical-layout",
"@vaadin/virtual-list": "$@vaadin/virtual-list",
"@vaadin/board": "$@vaadin/board",
"@vaadin/charts": "$@vaadin/charts",
"@vaadin/cookie-consent": "$@vaadin/cookie-consent",
"@vaadin/crud": "$@vaadin/crud",
"@vaadin/grid-pro": "$@vaadin/grid-pro",
"@vaadin/map": "$@vaadin/map",
"@vaadin/rich-text-editor": "$@vaadin/rich-text-editor",
"@vaadin/common-frontend": "$@vaadin/common-frontend",
"construct-style-sheets-polyfill": "$construct-style-sheets-polyfill",
"lit": "$lit",
"@polymer/polymer": "$@polymer/polymer",
"proj4": "$proj4",
"@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin",
"date-fns": "$date-fns"
}
}

+ 4
- 1
src/main/java/com/example/application/Application.java View File

@ -1,9 +1,11 @@
package com.example.application;
import com.vaadin.flow.component.dependency.JsModule;
import com.vaadin.flow.component.page.AppShellConfigurator;
import com.vaadin.flow.theme.Theme;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
/**
* The entry point of the Spring Boot application.
@ -12,8 +14,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* and some desktop browsers.
*
*/
@SpringBootApplication
@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
@Theme(value = "soportet.iv1.2")
@JsModule("@vaadin/vaadin-lumo-styles/presets/compact.js")
public class Application implements AppShellConfigurator {
public static void main(String[] args) {


+ 33
- 24
src/main/java/com/example/application/api/SecurityConfig.java View File

@ -1,27 +1,43 @@
package com.example.application.api;
import com.example.application.views.login.LoginView;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.server.VaadinServletRequest;
import com.vaadin.flow.spring.security.VaadinWebSecurity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@Configuration
@EnableWebSecurity
@Configuration
public class SecurityConfig extends VaadinWebSecurity {
private static final String LOGOUT_SUCCESS_URL = "/";
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(auth -> auth
.requestMatchers(
AntPathRequestMatcher.antMatcher(HttpMethod.GET, "/icons/*.png"),
AntPathRequestMatcher.antMatcher(HttpMethod.GET, "/images/*.png")
).permitAll()
.requestMatchers(
AntPathRequestMatcher.antMatcher(HttpMethod.GET, "/login*")
).permitAll()
)
.formLogin(formLogin -> formLogin
.successHandler((request, response, authentication) -> {
response.sendRedirect("home");
}));
super.configure(http);
/*HttpSessionRequestCache requestCache = new HttpSessionRequestCache();
requestCache.setRequestMatcher(new AntPathRequestMatcher("/login"));
http.requestCache((cache) -> cache
.requestCache(requestCache));*/
setLoginView(http, LoginView.class);
}
@ -32,25 +48,18 @@ public class SecurityConfig extends VaadinWebSecurity {
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
auth.authenticationProvider(provider);
}
public void logout() {
UI.getCurrent().getPage().setLocation(LOGOUT_SUCCESS_URL);
SecurityContextLogoutHandler logoutHandler = new SecurityContextLogoutHandler();
logoutHandler.logout(
VaadinServletRequest.getCurrent().getHttpServletRequest(), null, null
);
}
/*@Bean
UserDetailsManager userDetailsManager() {
return new InMemoryUserDetailsManager(
User.withUsername("marco")
.password("{noop}marco")
.roles("USER")
.build()
)
}*/
}
/*
@Bean
AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSource) {
LdapPasswordComparisonAuthenticationManagerFactory factory = new LdapPasswordComparisonAuthenticationManagerFactory(contextSource, new BCryptPasswordEncoder());
factory.setUserDnPatterns("DC=JUMAPACELAYA,DC=GOB,DC=MX");
factory.setPasswordAttribute("pwd"); //pwd
return factory.createAuthenticationManager();
}
*/

+ 24
- 0
src/main/java/com/example/application/api/SecurityService.java View File

@ -0,0 +1,24 @@
package com.example.application.api;
import com.vaadin.flow.spring.security.AuthenticationContext;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Component;
@Component
public class SecurityService {
private final AuthenticationContext authenticationContext;
public SecurityService(AuthenticationContext authenticationContext) {
this.authenticationContext = authenticationContext;
}
public UserDetails getAuthenticatedUser() {
return authenticationContext.getAuthenticatedUser(UserDetails.class).get();
}
public void logout() {
authenticationContext.logout();
}
}

+ 13
- 7
src/main/java/com/example/application/views/MainLayout.java View File

@ -1,13 +1,16 @@
package com.example.application.views;
import com.example.application.api.SecurityConfig;
import com.example.application.api.SecurityService;
import com.example.application.views.crearnuevoticket.CrearnuevoTicketView;
import com.example.application.views.tickets.MisTicketsView;
import com.vaadin.flow.component.applayout.AppLayout;
import com.vaadin.flow.component.applayout.DrawerToggle;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.button.ButtonVariant;
import com.vaadin.flow.component.html.*;
import com.vaadin.flow.component.html.Footer;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.html.Image;
import com.vaadin.flow.component.html.Span;
import com.vaadin.flow.component.orderedlayout.FlexComponent;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.Scroller;
@ -24,10 +27,10 @@ import org.vaadin.lineawesome.LineAwesomeIcon;
public class MainLayout extends AppLayout {
private H2 viewTitle;
private final SecurityConfig securityConfig;
private final SecurityService securityService;
public MainLayout(SecurityConfig securityConfig) {
this.securityConfig = securityConfig;
public MainLayout(SecurityService securityService) {
this.securityService = securityService;
setPrimarySection(Section.DRAWER);
addDrawerContent();
addHeaderContent();
@ -40,8 +43,11 @@ public class MainLayout extends AppLayout {
viewTitle = new H2();
viewTitle.addClassNames(LumoUtility.FontSize.LARGE, LumoUtility.Margin.NONE);
String u = securityService.getAuthenticatedUser().getUsername();
Span usrNameLabel = new Span("Hola " + u);
Button logoutButton = new Button("Cerrar sesion", event -> {
securityConfig.logout();
securityService.logout();
});
logoutButton.getStyle().set("margin-right", "50px");
logoutButton.addThemeVariants(ButtonVariant.LUMO_ERROR);
@ -51,7 +57,7 @@ public class MainLayout extends AppLayout {
headerContent.setWidthFull();
headerContent.add(viewTitle);
headerContent.setFlexGrow(1, viewTitle);
headerContent.add(logoutButton);
headerContent.add(usrNameLabel,logoutButton);
addToNavbar(true, toggle, headerContent);


+ 3
- 7
src/main/java/com/example/application/views/crearnuevoticket/CrearnuevoTicketView.java View File

@ -17,20 +17,16 @@ import com.vaadin.flow.component.textfield.TextArea;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Route(value="home", layout = MainLayout.class)
@Route(value="", layout = MainLayout.class)
@PermitAll
public class CrearnuevoTicketView extends VerticalLayout {
public CrearnuevoTicketView() {
TextField projectId = new TextField("Project ID");
projectId.setReadOnly(true);
//Combo de los tipos de tickets
ComboBox<String> tipoTickets = new ComboBox<>("Tipo de ticket");
@ -95,7 +91,7 @@ public class CrearnuevoTicketView extends VerticalLayout {
buttonLayout.setAlignItems(Alignment.END);
buttonLayout.setMargin(true);
add(new H2("Crear nuevo ticket"),projectId, firstFields, fieldsLayout,buttonLayout/*,jsonOutput,responseField*/);
add(new H2("Crear nuevo ticket"), firstFields, fieldsLayout,buttonLayout/*,jsonOutput,responseField*/);
}


+ 2
- 0
src/main/java/com/example/application/views/login/CustomLoginView.java View File

@ -0,0 +1,2 @@
package com.example.application.views.login;public class CustomLoginView {
}

+ 20
- 7
src/main/java/com/example/application/views/login/LoginView.java View File

@ -1,29 +1,42 @@
package com.example.application.views.login;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.login.LoginForm;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.server.auth.AnonymousAllowed;
@Route("login")
@PageTitle("Login")
@AnonymousAllowed
@CssImport("./styles.css")
public class LoginView extends VerticalLayout {
public LoginView() {
addClassName("login-view");
setSizeFull();
setAlignItems(Alignment.CENTER);
setJustifyContentMode(JustifyContentMode.CENTER);
//Formulario de login
var login = new LoginForm();
login.setAction("login");
var vLogin = new LoginForm();
vLogin.setAction("login");
add(
new H1("Soporte tecnico T.I"),
login
);
add(new H1("Sistema de Soporte Tecnico JUMAPA"), new H2("Bienvenido/a"), vLogin);
}
/*@Override
public void beforeEnter(BeforeEnterEvent beforeEnterEvent) {
if (beforeEnterEvent.getLocation()
.getQueryParameters()
.getParameters()
.containsKey("error")) {
vLogin.setError(true);
}
}*/
}

BIN
src/main/resources/META-INF/resources/images/900x160.png View File

Before After
Width: 901  |  Height: 161  |  Size: 22 KiB

BIN
src/main/resources/META-INF/resources/images/NVO_JUMAPA.png View File

Before After
Width: 1269  |  Height: 625  |  Size: 88 KiB

+ 39
- 0
tsconfig.json View File

@ -0,0 +1,39 @@
// This TypeScript configuration file is generated by vaadin-maven-plugin.
// This is needed for TypeScript compiler to compile your TypeScript code in the project.
// It is recommended to commit this file to the VCS.
// You might want to change the configurations to fit your preferences
// For more information about the configurations, please refer to http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
{
"_version": "9",
"compilerOptions": {
"sourceMap": true,
"jsx": "react-jsx",
"inlineSources": true,
"module": "esNext",
"target": "es2020",
"moduleResolution": "bundler",
"strict": true,
"skipLibCheck": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noImplicitAny": true,
"noImplicitThis": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
"experimentalDecorators": true,
"useDefineForClassFields": false,
"baseUrl": "frontend",
"paths": {
"@vaadin/flow-frontend": ["generated/jar-resources"],
"@vaadin/flow-frontend/*": ["generated/jar-resources/*"],
"Frontend/*": ["*"]
}
},
"include": [
"frontend/**/*",
"types.d.ts"
],
"exclude": [
"frontend/generated/jar-resources/**"
]
}

+ 10
- 0
types.d.ts View File

@ -0,0 +1,10 @@
// This TypeScript modules definition file is generated by vaadin-maven-plugin.
// You can not directly import your different static files into TypeScript,
// This is needed for TypeScript compiler to declare and export as a TypeScript module.
// It is recommended to commit this file to the VCS.
// You might want to change the configurations to fit your preferences
declare module '*.css' {
import { CSSResultGroup } from 'lit';
const content: CSSResultGroup;
export default content;
}

+ 9
- 0
vite.config.ts View File

@ -0,0 +1,9 @@
import { UserConfigFn } from 'vite';
import { overrideVaadinConfig } from './vite.generated';
const customConfig: UserConfigFn = (env) => ({
// Here you can add custom Vite parameters
// https://vitejs.dev/config/
});
export default overrideVaadinConfig(customConfig);

Loading…
Cancel
Save