Merge branch 'develop' into feature/SUPPORT-8412-8413_new_request_format
# Conflicts: # backend/src/main/java/ervu_lkrp_fl/ervu_lkrp_fl/controller/ProfileController.java # config/patches/default.cli # frontend/src/ts/modules/app/app.module.ts # frontend/src/ts/modules/app/component/app-header.component.ts # frontend/src/ts/modules/app/service/app-jivo-chat.service.ts # resources/src/main/resources/business-model/LK RP FL/restriction.page
This commit is contained in:
commit
95cc5d21d8
206 changed files with 1219 additions and 6402 deletions
18
Dockerfile
Normal file
18
Dockerfile
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
FROM tomee:8.0.15-jre17-webprofile
|
||||
|
||||
RUN \
|
||||
rm -rf /usr/local/tomee/webapps/ROOT && \
|
||||
echo "fias.enable=false" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "webbpm.jbpm.hibernate_statistics.enabled=false" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "webbpm.mode=production" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "authentication.method=form" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "webbpm.cache.hazelcast.hosts=127.0.0.1" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "webbpm.cache.hazelcast.outbound_port_definitions=5801-5820" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "gar.enable=false" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "reset_password.mail.template.path=mail/reset_password.html" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "security.password.regex=^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$" >> /usr/local/tomee/conf/catalina.properties && \
|
||||
echo "bpmn.enable=false" >> /usr/local/tomee/conf/catalina.properties
|
||||
COPY config/context.xml /usr/local/tomee/conf/
|
||||
#COPY config/tomcat-users.xml /usr/local/tomee/conf/
|
||||
COPY frontend/dist/ /usr/local/tomee/webapps/ROOT
|
||||
COPY backend/target/*.war /usr/local/tomee/webapps/fl.war
|
||||
|
|
@ -3,11 +3,11 @@
|
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>ervu_lkrp_fl</groupId>
|
||||
<artifactId>ervu_lkrp_fl</artifactId>
|
||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||
<artifactId>fl</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>backend</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<dependencies>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>resources</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
|
@ -107,30 +107,6 @@
|
|||
<groupId>ru.cg.webbpm.modules</groupId>
|
||||
<artifactId>inject</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-workflow-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-workflow-jbpm-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-workflow-jbpm</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-beans</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-variable-condition-adapter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.bpmn</groupId>
|
||||
<artifactId>bpmn-deploy</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules</groupId>
|
||||
<artifactId>webkit-rpc</artifactId>
|
||||
|
|
@ -184,22 +160,6 @@
|
|||
<groupId>ru.cg.webbpm.modules.core</groupId>
|
||||
<artifactId>metrics</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.webkit</groupId>
|
||||
<artifactId>active-users-tracker</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.security</groupId>
|
||||
<artifactId>security-beans</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.security</groupId>
|
||||
<artifactId>security-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.security</groupId>
|
||||
<artifactId>security-esia</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.reporting</groupId>
|
||||
<artifactId>reporting-api</artifactId>
|
||||
|
|
@ -236,14 +196,6 @@
|
|||
<groupId>ru.cg.webbpm.modules</groupId>
|
||||
<artifactId>webkit-base</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.security</groupId>
|
||||
<artifactId>security-db-synchronization-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.security</groupId>
|
||||
<artifactId>security-db-synchronization-ldap-impl</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
|
|
@ -260,14 +212,6 @@
|
|||
<groupId>org.apache.tika</groupId>
|
||||
<artifactId>tika-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security.kerberos</groupId>
|
||||
<artifactId>spring-security-kerberos-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security.kerberos</groupId>
|
||||
<artifactId>spring-security-kerberos-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk15on</artifactId>
|
||||
|
|
@ -302,6 +246,7 @@
|
|||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>${parent.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
|
|
@ -335,16 +280,6 @@
|
|||
<profiles>
|
||||
<profile>
|
||||
<id>studio</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<warName>${project.artifactId}</warName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.modules.resources</groupId>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import org.springframework.context.annotation.Bean;
|
|||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
import org.springframework.context.annotation.FilterType;
|
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
|
|
@ -31,11 +32,12 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|||
"i18n",
|
||||
"errorhandling",
|
||||
"database",
|
||||
"security",
|
||||
"component.addresses",
|
||||
"gen",
|
||||
"ru.cg",
|
||||
"ru.micord"
|
||||
}, excludeFilters = {
|
||||
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "security.WebSecurityConfig")
|
||||
})
|
||||
@EnableAspectJAutoProxy(proxyTargetClass = true)
|
||||
@EnableWebMvc
|
||||
|
|
|
|||
25
backend/src/main/java/ru/micord/security/SecurityConfig.java
Normal file
25
backend/src/main/java/ru/micord/security/SecurityConfig.java
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package ru.micord.security;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.Customizer;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
|
||||
@Configuration
|
||||
@EnableWebSecurity
|
||||
//@EnableAuthorizationServer
|
||||
public class SecurityConfig {
|
||||
|
||||
@Bean
|
||||
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||
|
||||
http.csrf().disable()
|
||||
.authorizeHttpRequests()
|
||||
.antMatchers("/**")
|
||||
.permitAll();
|
||||
|
||||
return http.build();
|
||||
}
|
||||
}
|
||||
|
|
@ -19,4 +19,4 @@ RUN chmod -R +x patches && \
|
|||
ENV SERVER_START=true
|
||||
COPY --chown=jboss *.ear $JBOSS_HOME/standalone/deployments/
|
||||
|
||||
HEALTHCHECK --timeout=3s --start-period=3600s CMD curl --fail 127.0.0.1:8080/backend/version || exit 1
|
||||
HEALTHCHECK --timeout=3s --start-period=3600s CMD curl --fail 127.0.0.1:8080/fl/version || exit 1
|
||||
|
|
|
|||
36
config/context.xml
Normal file
36
config/context.xml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You 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
|
||||
|
||||
http://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.
|
||||
-->
|
||||
<!-- The contents of this file will be loaded for each web application -->
|
||||
<Context>
|
||||
|
||||
<!-- Default set of monitored resources. If one of these changes, the -->
|
||||
<!-- web application will be reloaded. -->
|
||||
<WatchedResource>WEB-INF/web.xml</WatchedResource>
|
||||
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
|
||||
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
|
||||
|
||||
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
|
||||
<!--
|
||||
<Manager pathname="" />
|
||||
-->
|
||||
|
||||
<Resource name="java:/webbpm/AppDS" auth="Container"
|
||||
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
|
||||
url="jdbc:postgresql://10.10.31.119:5432/ervu-lkrp-fl"
|
||||
username="ervu-lkrp-fl" password="ervu-lkrp-fl" maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>
|
||||
</Context>
|
||||
|
|
@ -16,41 +16,6 @@ xa-data-source add \
|
|||
--query-timeout=300 \
|
||||
--xa-datasource-properties=ServerName=${env.DB_APP_HOST:db},PortNumber=${env.DB_APP_PORT:5432},DatabaseName=${env.DB_APP_NAME:app}
|
||||
|
||||
xa-data-source add \
|
||||
--name=JBPMDS \
|
||||
--enabled=true \
|
||||
--driver-name=postgresql \
|
||||
--jndi-name=java:jboss/datasources/jbpmDS \
|
||||
--user-name=${env.DB_JBPM_USERNAME:jbpm} \
|
||||
--password=${env.DB_JBPM_PASSWORD:jbpmpassword} \
|
||||
--use-ccm=true \
|
||||
--valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker \
|
||||
--validate-on-match=false \
|
||||
--background-validation=true \
|
||||
--background-validation-millis=5000 \
|
||||
--exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter \
|
||||
--statistics-enabled=true \
|
||||
--max-pool-size=50 \
|
||||
--query-timeout=300 \
|
||||
--xa-datasource-properties=ServerName=${env.DB_JBPM_HOST:db},PortNumber=${env.DB_JBPM_PORT:5432},DatabaseName=${env.DB_JBPM_NAME:jbpm}
|
||||
|
||||
xa-data-source add \
|
||||
--name=SECURITYDS \
|
||||
--enabled=true \
|
||||
--driver-name=postgresql \
|
||||
--jndi-name=java:/webbpm/security-ds \
|
||||
--user-name=${env.DB_SEC_USERNAME:security_user} \
|
||||
--password=${env.DB_SEC_PASSWORD:secpassword} \
|
||||
--max-pool-size=70 \
|
||||
--valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker \
|
||||
--validate-on-match=false \
|
||||
--background-validation=true \
|
||||
--background-validation-millis=5000 \
|
||||
--exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter \
|
||||
--statistics-enabled=true \
|
||||
--query-timeout=300 \
|
||||
--xa-datasource-properties=ServerName=${env.DB_SEC_HOST:db},PortNumber=${env.DB_SEC_PORT:5432},DatabaseName=${env.DB_SEC_NAME:app}
|
||||
|
||||
/system-property=ldap.mapping.login.param:add(value=${env.WEBBPM_LDAP_LOGIN_ATTR:uid})
|
||||
/system-property=ldap.mapping.org.code.param:add(value=${env.WEBBPM_LDAP_ORGANIZATION_ATTR:ou})
|
||||
/system-property=jboss.as.management.blocking.timeout:add(value=900)
|
||||
|
|
@ -62,6 +27,7 @@ xa-data-source add \
|
|||
/system-property=gar.enable:add(value=false)
|
||||
/system-property=security.password.regex:add(value="^((?=(.*\\d){1,})(?=.*[a-zа-яё])(?=.*[A-ZА-ЯЁ]).{8,})$")
|
||||
/system-property=fias.enable:add(value=false)
|
||||
/system-property=bpmn.enable:add(value=false)
|
||||
/system-property=kafka.ervu.send.url:add(value="http://10.10.31.11:32609")
|
||||
/system-property=kafka.ervu.security.protocol:add(value="SASL_PLAINTEXT")
|
||||
/system-property=kafka.ervu.doc.login.module:add(value="org.apache.kafka.common.security.scram.ScramLoginModule")
|
||||
|
|
|
|||
|
|
@ -2,27 +2,27 @@
|
|||
<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>
|
||||
<parent>
|
||||
<groupId>ervu_lkrp_fl</groupId>
|
||||
<artifactId>ervu_lkrp_fl</artifactId>
|
||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||
<artifactId>fl</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>distribution</artifactId>
|
||||
<packaging>ear</packaging>
|
||||
|
||||
<properties>
|
||||
<backendContext>/backend</backendContext>
|
||||
<backendContext>/fl</backendContext>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>backend</artifactId>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>frontend</artifactId>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
|
|
@ -37,16 +37,16 @@
|
|||
<configuration>
|
||||
<modules>
|
||||
<webModule>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>frontend</artifactId>
|
||||
<contextRoot>/</contextRoot>
|
||||
<bundleFileName>frontend.war</bundleFileName>
|
||||
</webModule>
|
||||
<webModule>
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>backend</artifactId>
|
||||
<contextRoot>${backendContext}</contextRoot>
|
||||
<bundleFileName>backend.war</bundleFileName>
|
||||
<bundleFileName>fl.war</bundleFileName>
|
||||
</webModule>
|
||||
</modules>
|
||||
</configuration>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<profile>
|
||||
<id>enable-version-in-url</id>
|
||||
<properties>
|
||||
<backendContext>/backend-${project.version}</backendContext>
|
||||
<backendContext>/fl-${project.version}</backendContext>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
|
|
|||
8
frontend/package-lock.json
generated
8
frontend/package-lock.json
generated
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "webbpm-frontend",
|
||||
"name": "ervu_lkrp_fl",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
|
|
@ -1624,9 +1624,9 @@
|
|||
}
|
||||
},
|
||||
"@webbpm/base-package": {
|
||||
"version": "3.176.3",
|
||||
"resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.176.3.tgz",
|
||||
"integrity": "sha512-Nl5D7IAVALsahQg21fyjL5JvngBIEyTWSG8EGVyReKPvGusXueEdjphP8f+9dP/5l3dwN6cD58Ukqr3NqAclUQ==",
|
||||
"version": "3.178.2",
|
||||
"resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.178.2.tgz",
|
||||
"integrity": "sha512-ShqAmiaGCvrg7ffrhntshwcZJVW8cK10JsMy/OT36p7iK6B/IR0YCJZZ+GIhakLo0CZsEokhcpKBdORvfOI55g==",
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "webbpm-frontend",
|
||||
"name": "ervu_lkrp_fl",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"lite": "node ./node_modules/lite-server/bin/lite-server",
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
"@angular/platform-browser-dynamic": "7.2.15",
|
||||
"@angular/router": "7.2.15",
|
||||
"@ng-bootstrap/ng-bootstrap": "4.1.1",
|
||||
"@webbpm/base-package": "3.177.0",
|
||||
"@webbpm/base-package": "3.178.2",
|
||||
"ag-grid-angular": "29.0.0-micord.4",
|
||||
"ag-grid-community": "29.0.0-micord.4",
|
||||
"angular-calendar": "0.28.28",
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
<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>
|
||||
<parent>
|
||||
<groupId>ervu_lkrp_fl</groupId>
|
||||
<artifactId>ervu_lkrp_fl</artifactId>
|
||||
<groupId>ru.micord.ervu.lkrp</groupId>
|
||||
<artifactId>fl</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<groupId>ervu_lkrp_fl.ervu_lkrp_fl</groupId>
|
||||
<groupId>ru.micord.ervu.lkrp.fl</groupId>
|
||||
<artifactId>frontend</artifactId>
|
||||
<packaging>war</packaging>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
});
|
||||
</script>
|
||||
</head>
|
||||
<body preview-container id="webbpm-angular-application-container ervu_lkrp_fl" class="webbpm">
|
||||
<body preview-container id="webbpm-angular-application-container" class="webbpm ervu_lkrp_fl">
|
||||
<div class="loader"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
"filter_cleanup_check_period_minutes": 30,
|
||||
"auth_method": "form",
|
||||
"enable.version.in.url": "%enable.version.in.url%",
|
||||
"backend.context": "fl",
|
||||
"guard.confirm_exit": false,
|
||||
"message_service_error_timeout": "",
|
||||
"message_service_warning_timeout": "",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -50,7 +50,7 @@ body.webbpm.ervu_lkrp_fl {
|
|||
--bg-shadow: 0 19px 19px 8px rgba(230, 230, 230, 0.19), 0 0px 4px 0px #f3f3f3;
|
||||
|
||||
--h-header: 64px;
|
||||
--h-footer: 120px;
|
||||
--h-footer: 48px;
|
||||
--w-screen: 75px;
|
||||
|
||||
--size-text-title: 36px;
|
||||
|
|
@ -69,11 +69,9 @@ body.webbpm.ervu_lkrp_fl {
|
|||
.webbpm.ervu_lkrp_fl a {
|
||||
color: var(--color-link);
|
||||
text-decoration: none;
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: var(--color-link-hover);
|
||||
}
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl a:is(:hover, :focus, :active) {
|
||||
color: var(--color-link-hover);
|
||||
}
|
||||
|
||||
.webbpm.ervu_lkrp_fl .header {
|
||||
|
|
@ -81,97 +79,90 @@ body.webbpm.ervu_lkrp_fl {
|
|||
min-height: var(--h-header);
|
||||
border: 0;
|
||||
background-color: var(--color-text-primary);
|
||||
|
||||
.header-logo {
|
||||
margin-left: var(--w-screen);
|
||||
a {
|
||||
color: var(--white);
|
||||
font-family: 'Inter';
|
||||
}
|
||||
.logo a {
|
||||
width: 62px;
|
||||
height: 40px;
|
||||
background: url(../img/svg/mil-logo.svg) no-repeat 0 50%;
|
||||
}
|
||||
.main-page {
|
||||
font-family: 'InterSB';
|
||||
margin-left: calc(62px + 16px);
|
||||
}
|
||||
.header-menu-left {
|
||||
font-family: 'InterL';
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.header-menu {
|
||||
margin-right: var(--w-screen);
|
||||
|
||||
.logout.show {
|
||||
max-width: max-content;
|
||||
}
|
||||
.user-info {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
color: var(--white);
|
||||
height: 24px;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
|
||||
&.dropdown-toggle::before {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-right: 8px;
|
||||
background-image: url(../img/svg/user-wt.svg);
|
||||
}
|
||||
&.dropdown-toggle::after {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border: 0;
|
||||
background-image: url(../img/svg/arrow-down-wt.svg);
|
||||
}
|
||||
}
|
||||
.dropdown-menu.show {
|
||||
top: var(--h-header) !important;
|
||||
padding: 8px 0;
|
||||
border-radius: 4px;
|
||||
background-color: var(--white);
|
||||
box-shadow: 0 6px 16px 0 rgba(230, 230, 230, 0.11), 0 1px 4px 0 #f3f3f3;
|
||||
|
||||
.user-department {
|
||||
color: var(--color-text-primary);
|
||||
font-family: 'InterB';
|
||||
padding: 8px 16px;
|
||||
}
|
||||
& > button, & > a {
|
||||
position: relative;
|
||||
display: flex;
|
||||
color: var(--color-text-primary);
|
||||
padding: 8px 16px 8px calc(16px + 32px);
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: var(--color-link-hover);
|
||||
}
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 16px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
&.exit::before {
|
||||
background-image: url(../img/svg/exit.svg);
|
||||
}
|
||||
&.data::before {
|
||||
background-image: url(../img/svg/data.svg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo {
|
||||
margin-left: var(--w-screen);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo a {
|
||||
color: var(--white);
|
||||
font-family: 'Inter';
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .logo a {
|
||||
width: 62px;
|
||||
height: 40px;
|
||||
background: url(../img/svg/mil-logo.svg) no-repeat 0 50%;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .main-page {
|
||||
font-family: 'InterSB';
|
||||
margin-left: calc(62px + 16px);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .header-menu-left {
|
||||
font-family: 'InterL';
|
||||
margin-left: 24px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu {
|
||||
margin-right: var(--w-screen);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .logout.show {
|
||||
max-width: max-content;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .user-info {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
color: var(--white);
|
||||
height: 24px;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .user-info.dropdown-toggle::before {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-right: 8px;
|
||||
background-image: url(../img/svg/user-wt.svg);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .user-info.dropdown-toggle::after {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border: 0;
|
||||
background-image: url(../img/svg/arrow-down-wt.svg);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show {
|
||||
top: var(--h-header) !important;
|
||||
padding: 8px 0;
|
||||
border-radius: 4px;
|
||||
background-color: var(--white);
|
||||
box-shadow: 0 6px 16px 0 rgba(230, 230, 230, 0.11), 0 1px 4px 0 #f3f3f3;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show .user-department {
|
||||
color: var(--color-text-primary);
|
||||
font-family: 'InterB';
|
||||
padding: 8px 16px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show > :is(button, a) {
|
||||
position: relative;
|
||||
display: flex;
|
||||
color: var(--color-text-primary);
|
||||
padding: 8px 16px 8px calc(16px + 32px);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show > :is(button, a):is(:hover, :focus, :active) {
|
||||
color: var(--color-link-hover);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show > :is(button, a)::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 16px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show > :is(button, a).exit::before {
|
||||
background-image: url(../img/svg/exit.svg);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-menu .dropdown-menu.show > :is(button, a).data::before {
|
||||
background-image: url(../img/svg/data.svg);
|
||||
}
|
||||
|
||||
.webbpm.ervu_lkrp_fl footer {
|
||||
|
|
@ -183,11 +174,10 @@ body.webbpm.ervu_lkrp_fl {
|
|||
.webbpm.ervu_lkrp_fl .container {
|
||||
padding-top: var(--h-header);
|
||||
bottom: var(--h-footer);
|
||||
|
||||
.container-inside {
|
||||
font-family: 'Inter';
|
||||
padding: var(--indent-huge) var(--w-screen);
|
||||
}
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .container-inside {
|
||||
font-family: 'Inter';
|
||||
padding: var(--indent-huge) var(--w-screen);
|
||||
}
|
||||
|
||||
/*@media ((max-width: 780px) or ((orientation: landscape) and (max-device-width : 1024px))) {*/
|
||||
|
|
@ -200,7 +190,7 @@ body.webbpm.ervu_lkrp_fl {
|
|||
--indent-huge: 32px;
|
||||
--indent-big: 24px;
|
||||
--indent-medium: 24px;
|
||||
--indent-small: 16px;
|
||||
--indent-small: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -213,22 +203,20 @@ body.webbpm.ervu_lkrp_fl {
|
|||
--indent-huge: 24px;
|
||||
--indent-big: 24px;
|
||||
--indent-medium: 16px;
|
||||
--indent-small: 16px;
|
||||
--indent-small: 16px;
|
||||
}
|
||||
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo {
|
||||
.main-page {
|
||||
display: none;
|
||||
}
|
||||
.header-menu-left {
|
||||
margin-left: 40px;
|
||||
a {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 85px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .main-page {
|
||||
display: none;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .header-menu-left {
|
||||
margin-left: 40px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl .header .header-logo .header-menu-left a {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 85px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -243,76 +231,71 @@ body.webbpm.ervu_lkrp_fl {
|
|||
border-radius: 8px;
|
||||
background-color: var(--white);
|
||||
box-shadow: var(--bg-shadow);
|
||||
|
||||
h1, h2 {
|
||||
color: var(--color-form);
|
||||
font-family: 'InterB';
|
||||
font-size: var(--size-text-subtitle);
|
||||
text-align: left;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.logo {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 76px;
|
||||
padding: 0 0 0 128px;
|
||||
margin-bottom: 32px;
|
||||
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
left: 0;
|
||||
width: 112px;
|
||||
height: 72px;
|
||||
background-image: url(../img/svg/form-logo.svg);
|
||||
}
|
||||
}
|
||||
.row {
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
|
||||
& + .row {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
input {
|
||||
height: 56px;
|
||||
padding-top: 20px;
|
||||
padding-left: 16px;
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background-color: var(--bg-light);
|
||||
|
||||
&[type="password"] {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
|
||||
& ~ .input-group-append > .input-group-text {
|
||||
border: 0;
|
||||
background-color: var(--bg-light);
|
||||
}
|
||||
}
|
||||
& + label {
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 16px;
|
||||
pointer-events: none;
|
||||
transition: all 200ms;
|
||||
}
|
||||
&:focus + label,
|
||||
&:not(:placeholder-shown) + label {
|
||||
top: 4px;
|
||||
font-size: var(--indent-extra-mini);
|
||||
z-index: 20;
|
||||
}
|
||||
}
|
||||
.msg-text {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.btn-box {
|
||||
margin-top: 32px;
|
||||
}
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) :is(h1, h2) {
|
||||
color: var(--color-form);
|
||||
font-family: 'InterB';
|
||||
font-size: var(--size-text-subtitle);
|
||||
text-align: left;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .logo {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 76px;
|
||||
padding: 0 0 0 128px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .logo::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
left: 0;
|
||||
width: 112px;
|
||||
height: 72px;
|
||||
background-image: url(../img/svg/form-logo.svg);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .row {
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .row + .row {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input {
|
||||
height: 56px;
|
||||
padding-top: 20px;
|
||||
padding-left: 16px;
|
||||
border: 0;
|
||||
border-radius: 8px;
|
||||
background-color: var(--bg-light);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input[type="password"] {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input[type="password"] ~ .input-group-append > .input-group-text {
|
||||
border: 0;
|
||||
background-color: var(--bg-light);
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input + label {
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 16px;
|
||||
pointer-events: none;
|
||||
transition: all 200ms;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input:focus + label,
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) input:not(:placeholder-shown) + label {
|
||||
top: 4px;
|
||||
font-size: var(--indent-extra-mini);
|
||||
z-index: 20;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .msg-text {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.webbpm.ervu_lkrp_fl :is(.form-signin, .form-signup, .confirm) .btn-box {
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.webbpm.ervu_lkrp_fl .form-signin .row.registration > * + *,
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
<div *ngIf="(currentSession | async)?.authorities.includes('BPMN.ADMIN.PROCESS_INSTANCE.LIST') ||
|
||||
(currentSession | async)?.authorities.includes('USER_MANAGEMENT.USER.LIST') ||
|
||||
(currentSession | async)?.authorities.includes('USER_MANAGEMENT.GROUP.LIST') ||
|
||||
(currentSession | async)?.authorities.includes('USER_MANAGEMENT.ROLE.LIST') ||
|
||||
(currentSession | async)?.authorities.includes('USER_MANAGEMENT.ORG_UNIT.LIST') ||
|
||||
(currentSession | async)?.authorities.includes('USER_MANAGEMENT.AUTHORITY.LIST')" ngbDropdown class="nav-item" [placement]="placement">
|
||||
<button class="nav-link bi bi-gear-fill" id="adminDropdownMenu" ngbDropdownToggle title="Администрирование"></button>
|
||||
<div ngbDropdownMenu aria-labelledby="adminDropdownMenu">
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('BPMN.ADMIN.PROCESS_INSTANCE.LIST')"
|
||||
routerLink="/process/instance" ngbDropdownItem>
|
||||
Экземпляры процессов
|
||||
</button>
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('USER_MANAGEMENT.USER.LIST')"
|
||||
routerLink="/user-management/users" ngbDropdownItem>
|
||||
Пользователи
|
||||
</button>
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('USER_MANAGEMENT.GROUP.LIST')"
|
||||
routerLink="/user-management/groups" ngbDropdownItem>
|
||||
Группы
|
||||
</button>
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('USER_MANAGEMENT.ROLE.LIST')"
|
||||
routerLink="/user-management/roles" ngbDropdownItem>
|
||||
Роли
|
||||
</button>
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('USER_MANAGEMENT.ORG_UNIT.LIST')"
|
||||
routerLink="/user-management/org-units" ngbDropdownItem>
|
||||
Организации
|
||||
</button>
|
||||
<button *ngIf="(currentSession | async)?.authorities.includes('USER_MANAGEMENT.AUTHORITY.LIST')"
|
||||
routerLink="/user-management/authorities" ngbDropdownItem>
|
||||
Безопасность действий
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,16 +1,9 @@
|
|||
<nav class="header" *ngIf="currentSession | async as session" id="webbpm-header">
|
||||
<nav class="header" id="webbpm-header">
|
||||
<div class="header-logo">
|
||||
<div class="logo"><a routerLink="/"></a></div>
|
||||
<div class="main-page">Официальный сайт Минобороны России <a href="https://mil.ru/">mil.ru</a></div>
|
||||
<div class="main-page">Официальный сайт Минобороны России <a href="https://mil.ru/">mil.ru</a></div>
|
||||
</div>
|
||||
<div class="header-menu">
|
||||
<!--
|
||||
<process *ngIf="session.authorities.includes('BPMN.USER.START_PROCESS')"></process>
|
||||
<div *ngIf="session.authorities.includes('BPMN.USER.TASK_LIST')">
|
||||
<button class="nav-link bi bi-file-text-fill" (click)="openTaskList()" title="Задачи"></button>
|
||||
</div>
|
||||
<admin-menu [placement]="'bottom'"></admin-menu>
|
||||
-->
|
||||
<div ngbDropdown class="logout" log-out></div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
<div class="confirm">
|
||||
<div class="form-logo">
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div>
|
||||
<h2>Подтверждение почты</h2>
|
||||
|
||||
<div *ngIf="verificationStatus.toString() === 'VERIFYING'">
|
||||
Подтверждение...
|
||||
</div>
|
||||
<div *ngIf="verificationStatus.toString() === 'VERIFIED'">
|
||||
<div class="alert alert-success">
|
||||
Адрес электронной почты успешно подтвержден
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="verificationStatus.toString() === 'FAILED'">
|
||||
<div class="alert alert-danger">{{ errorMessage }}</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="(currentSession | async) == null">
|
||||
<a href="#/login"><span class="fa fa-lock"></span>Войти</a><br/>
|
||||
<a href="#/registration">Зарегистрироваться</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<button class="user-info" ngbDropdownToggle *ngIf="currentSession | async as session">{{session.fullUserName}}</button>
|
||||
<div ngbDropdownMenu *ngIf="currentSession | async as session">
|
||||
<!--
|
||||
<div class="user-info">
|
||||
<div class="user-login">{{session.username}}</div>
|
||||
</div>
|
||||
<div class="user-department">{{getOrgUnitName()}}</div>
|
||||
-->
|
||||
<a routerLink="/mydata" class="data">Мои данные</a>
|
||||
<button ngbDropdownItem class="exit" *ngIf="isLogoutButtonVisible()" (click)="logout()">Выйти</button>
|
||||
</div>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<div class="form-signin">
|
||||
<form #formComponent="ngForm">
|
||||
<div class="alert alert-success" [hidden]="!confirmationSent">На ваш почтовый адрес было отправлено письмо. Подтвердите почту, чтобы войти в систему
|
||||
</div>
|
||||
<div class="alert alert-danger" [hidden]="!errorMessage">{{errorMessage}}</div>
|
||||
|
||||
<div class="logo">
|
||||
<h2>Воинский учет в организациях</h2>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="input-group">
|
||||
<input type="text" name="username" class="form-control" placeholder=" " required autofocus [(ngModel)]="username" maxlength="100">
|
||||
<label>Логин</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="input-group">
|
||||
<input
|
||||
[type]="passwordType ? 'text' : 'password'"
|
||||
name="password"
|
||||
class="form-control field-password-view"
|
||||
placeholder=" " required
|
||||
[(ngModel)]="password"
|
||||
maxlength="100"
|
||||
>
|
||||
<label>Пароль</label>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">
|
||||
<i
|
||||
(click)="togglePasswordType()"
|
||||
class="fa"
|
||||
[ngClass]="{
|
||||
'fa-eye': passwordType,
|
||||
'fa-eye-slash': !passwordType
|
||||
}"
|
||||
></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="msg-text"><a href="#/reset-password">Восстановить пароль</a></div>
|
||||
</div>
|
||||
<div class="btn-box">
|
||||
<!--<esia-login-button></esia-login-button>-->
|
||||
<button type="submit" class="btn btn-primary" (click)="formComponent.form.valid && login()">Войти</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
<div class="form-signup">
|
||||
<div class="form-logo">
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="form-new-password">
|
||||
<form #formComponent="ngForm">
|
||||
<div [hidden]="!errorMessage" class="alert alert-danger">{{ errorMessage }}</div>
|
||||
<p class="has-account">Вспомнили пароль?
|
||||
<a href="#/login"><span class="fa fa-lock"></span>Войти</a></p>
|
||||
|
||||
<p class="has-account">Задайте новый пароль</p>
|
||||
|
||||
<div class="row">
|
||||
<label>Пароль</label>
|
||||
<div class="input-group">
|
||||
<input
|
||||
#passwordInput="ngModel"
|
||||
[(ngModel)]="password"
|
||||
[type]="passwordType ? 'text' : 'password'"
|
||||
class="form-control"
|
||||
maxlength="32"
|
||||
minlength="6"
|
||||
name="password"
|
||||
pattern="^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$"
|
||||
required
|
||||
(change)="validPasswords()"
|
||||
>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">
|
||||
<i
|
||||
(click)="togglePasswordType()"
|
||||
class="fa"
|
||||
[ngClass]="{
|
||||
'fa-eye': passwordType,
|
||||
'fa-eye-slash': !passwordType
|
||||
}"
|
||||
></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="passwordInput.invalid && (passwordInput.dirty || passwordInput.touched)">
|
||||
<div *ngIf="passwordInput.errors.required" class="msg-alert">Поле обязательно
|
||||
</div>
|
||||
<div *ngIf="passwordInput.errors.minlength" class="msg-alert">Пароль должен
|
||||
содержать как минимум 6 символов
|
||||
</div>
|
||||
<div *ngIf="passwordInput.errors.pattern" class="msg-alert">Пароль должен
|
||||
содержать заглавные и прописные буквы и как минимум 1 цифру
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Подтверждение пароля</label>
|
||||
<div class="input-group">
|
||||
<input
|
||||
#confirmPasswordInput="ngModel"
|
||||
[(ngModel)]="confirmPassword"
|
||||
[type]="confirmPasswordType ? 'text' : 'password'"
|
||||
class="form-control"
|
||||
maxlength="32"
|
||||
minlength="6"
|
||||
name="confirmPassword"
|
||||
pattern="^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$"
|
||||
required
|
||||
(change)="validPasswords()"
|
||||
>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">
|
||||
<i
|
||||
(click)="toggleConfirmPasswordType()"
|
||||
class="fa"
|
||||
[ngClass]="{
|
||||
'fa-eye': confirmPasswordType,
|
||||
'fa-eye-slash': !confirmPasswordType
|
||||
}"
|
||||
></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="confirmPasswordInput.invalid && (confirmPasswordInput.dirty || confirmPasswordInput.touched)">
|
||||
<div *ngIf="confirmPasswordInput.errors.required" class="msg-alert">Поле обязательно
|
||||
</div>
|
||||
<div *ngIf="confirmPasswordInput.errors.minlength" class="msg-alert">Пароль должен
|
||||
содержать как минимум 6 символов
|
||||
</div>
|
||||
<div *ngIf="confirmPasswordInput.errors.pattern" class="msg-alert">Пароль должен
|
||||
содержать заглавные и прописные буквы и как минимум 1 цифру
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="reset-password-btn-box">
|
||||
<button
|
||||
(click)="formComponent.form.valid && validPasswords() && changePassword()"
|
||||
[disabled]="!formComponent.form.valid && !validPasswords()"
|
||||
class="btn btn-primary"
|
||||
type="submit"
|
||||
>
|
||||
Изменить пароль
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<div ngbDropdown class="nav-item">
|
||||
<button class="nav-link bi bi-clipboard-plus-fill" id="startProcessDropdownMenu" ngbDropdownToggle title="Создать"></button>
|
||||
<div ngbDropdownMenu aria-labelledby="startProcessDropdownMenu">
|
||||
<div class="dropdown-menu-inner">
|
||||
<div *ngFor="let process of processList">
|
||||
<button (click)="startProcess(process.processDefId)" ngbDropdownItem>
|
||||
{{ process.name }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
</div><!-- TODO: move to directive or something else -->
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
<div class="form-signup">
|
||||
<div class="form-logo">
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="form-register">
|
||||
<form #formComponent="ngForm">
|
||||
<div [hidden]="!errorMessage" class="alert alert-danger">{{ errorMessage }}</div>
|
||||
<h2>Регистрация</h2>
|
||||
<p class="has-account">Уже зарегистрированы?
|
||||
<a href="#/login"><span class="fa fa-lock"></span>Войти</a></p>
|
||||
|
||||
<div class="row">
|
||||
<label>Имя</label>
|
||||
<input
|
||||
#name="ngModel"
|
||||
[(ngModel)]="username"
|
||||
class="form-control"
|
||||
maxlength="100"
|
||||
name="username"
|
||||
required
|
||||
type="text"
|
||||
>
|
||||
<div *ngIf="name.invalid && (name.dirty || name.touched)">
|
||||
<div *ngIf="name.errors.required" class="msg-alert">Поле обязательно</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Адрес эл. почты</label>
|
||||
<input
|
||||
#emailInput="ngModel"
|
||||
[(ngModel)]="email"
|
||||
class="form-control"
|
||||
email
|
||||
maxlength="100"
|
||||
name="email"
|
||||
required
|
||||
type="email"
|
||||
>
|
||||
<div *ngIf="emailInput.invalid && (emailInput.dirty || emailInput.touched)">
|
||||
<div *ngIf="emailInput.errors.required" class="msg-alert">Поле обязательно</div>
|
||||
<div *ngIf="emailInput.errors.email" class="msg-alert">Неверный формат адреса
|
||||
эл. почты
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Номер телефона</label>
|
||||
<international-phone-number
|
||||
#phoneInput="ngModel"
|
||||
[(ngModel)]="phoneNumber"
|
||||
[defaultCountry]="'ru'"
|
||||
[pattern]="'^\\+(?!7 ?\\d{11})[0-9 ]+$'"
|
||||
maxlength="20"
|
||||
minlength="8"
|
||||
name="phoneNumber"
|
||||
placeholder="+79991112233"
|
||||
(focusout)="phoneInputFocusOut()"
|
||||
required
|
||||
></international-phone-number>
|
||||
<div *ngIf="phoneInput.invalid && (phoneInput.dirty || phoneIsTouched)">
|
||||
<div *ngIf="phone.selectedCountry">
|
||||
<div *ngIf="phoneHasOnlyDialCode()" class="msg-alert">Поле обязательно</div>
|
||||
<div *ngIf="!phoneHasOnlyDialCode()" class="msg-alert">Введите корректный номер</div>
|
||||
</div>
|
||||
<div *ngIf="!phone.selectedCountry">
|
||||
<div *ngIf="phoneInput.errors.required" class="msg-alert">Поле обязательно</div>
|
||||
<div *ngIf="!phoneInput.errors.required" class="msg-alert">Введите код страны</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Пароль</label>
|
||||
<div class="input-group">
|
||||
<input
|
||||
#passwordInput="ngModel"
|
||||
[(ngModel)]="password"
|
||||
[type]="fieldType ? 'text' : 'password'"
|
||||
class="form-control"
|
||||
maxlength="32"
|
||||
minlength="8"
|
||||
name="password"
|
||||
[pattern]="passwordPattern"
|
||||
required
|
||||
>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">
|
||||
<i
|
||||
(click)="toggleFieldType()"
|
||||
class="fa"
|
||||
[ngClass]="{
|
||||
'fa-eye': fieldType,
|
||||
'fa-eye-slash': !fieldType
|
||||
}"
|
||||
></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="passwordInput.invalid && (passwordInput.dirty || passwordInput.touched)">
|
||||
<div *ngIf="passwordInput.errors.required" class="msg-alert">Поле обязательно
|
||||
</div>
|
||||
<div *ngIf="passwordInput.errors.minlength" class="msg-alert">Пароль должен
|
||||
содержать как минимум 8 символов
|
||||
</div>
|
||||
<div *ngIf="passwordInput.errors.pattern" class="msg-alert" [innerText]="passwordPatternErrorMessage">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="register-btn-box">
|
||||
<button
|
||||
(click)="formComponent.form.valid && register()"
|
||||
[disabled]="!formComponent.form.valid"
|
||||
class="btn btn-primary"
|
||||
type="submit"
|
||||
>
|
||||
Зарегистрироваться
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="consent" [innerHTML]="consent" class="consent"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<div class="form-signup">
|
||||
<div class="form-logo">
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="form-reset-password">
|
||||
<form #formComponent="ngForm">
|
||||
<div [hidden]="!errorMessage" class="alert alert-danger">{{ errorMessage }}</div>
|
||||
<p class="has-account">Вспомнили пароль?
|
||||
<a href="#/login"><span class="fa fa-lock"></span>Войти</a></p>
|
||||
|
||||
<p class="has-account">Укажите адрес эл. почты, который был указан при регистрации,
|
||||
на него пришлем временный пароль. Пароль сможете поменять в личном кабинете.
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<input
|
||||
#emailInput="ngModel"
|
||||
[(ngModel)]="email"
|
||||
class="form-control"
|
||||
email
|
||||
maxlength="100"
|
||||
name="email"
|
||||
required
|
||||
type="email"
|
||||
>
|
||||
<label>Адрес эл. почты</label>
|
||||
<div *ngIf="emailInput.invalid && (emailInput.dirty || emailInput.touched)" class="msg-text">
|
||||
<div *ngIf="emailInput.errors.required" class="msg-alert">Поле обязательно</div>
|
||||
<div *ngIf="emailInput.errors.email" class="msg-alert">Неверный формат адреса эл. почты
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-box">
|
||||
<button
|
||||
(click)="formComponent.form.valid && resetPassword()"
|
||||
[disabled]="!formComponent.form.valid"
|
||||
class="btn btn-primary"
|
||||
type="submit"
|
||||
>
|
||||
Восстановить
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<div id="page">
|
||||
<router-outlet></router-outlet>
|
||||
</div>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<div class="inner">
|
||||
<div class="task-list">
|
||||
<div class="task-list-tree-panel">
|
||||
<div class="task-list-filter">
|
||||
<ul>
|
||||
<li>Фильтры</li>
|
||||
<li>
|
||||
<label>
|
||||
<input type="radio" name="task-filter" value="All" [(ngModel)]="showMode" (ngModelChange)="filterVisibleTasks()">
|
||||
<span>Все [{{tasks.length}}]</span>
|
||||
</label></li>
|
||||
<li class="ontime">
|
||||
<label>
|
||||
<input type="radio" name="task-filter" value="OnTime" [(ngModel)]="showMode" (ngModelChange)="filterVisibleTasks()">
|
||||
<span><div></div>Без превышения срока [{{onTimeTasks.length}}]</span>
|
||||
</label></li>
|
||||
<li class="overdue">
|
||||
<label>
|
||||
<input type="radio" name="task-filter" value="Overdue" [(ngModel)]="showMode" (ngModelChange)="filterVisibleTasks()">
|
||||
<span><div></div>С превышением срока [{{overdueTasks.length}}]</span>
|
||||
</label></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="task-list-workplace">
|
||||
<div class="alert alert-danger" [hidden]="!errorMessage">{{errorMessage}}</div>
|
||||
<div class="table task-tbl">
|
||||
<div class="thead">
|
||||
<div class="tr">
|
||||
<div class="th">Процесс</div>
|
||||
<div class="th">Версия</div>
|
||||
<div class="th">Задача</div>
|
||||
<div class="th">Дата создания</div>
|
||||
<div class="th">Срок</div>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngFor="let task of visibleTasks"
|
||||
class="tr" [ngClass]="{'task-overdue': isOverdue(task), 'task-ontime': isOnTime(task)}"
|
||||
(click)="startTask(task)">
|
||||
<div class="td">{{ task.processName }}</div>
|
||||
<div class="td">{{ task.processVersion }}</div>
|
||||
<div class="td task">{{ task.name }}</div>
|
||||
<div class="td">{{ task.createdOn | date:'dd.MM.yyyy HH:mm:ss' }}</div>
|
||||
<div class="td">{{ task.expirationTime | date:'dd.MM.yyyy HH:mm:ss' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<div class="task-not-found-page">
|
||||
<div class="task-not-found-container">
|
||||
<div>:(</div>
|
||||
<div><h2>Ошибка</h2>
|
||||
Данная задача не существует.<br/>
|
||||
Перейти к <a (click)="goToTaskList()" tabindex>списку задач</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,81 +1,30 @@
|
|||
import {NgModule} from "@angular/core";
|
||||
import {RouterModule, Routes} from "@angular/router";
|
||||
import {AccessDeniedComponent} from "./component/access-denied.component";
|
||||
import {LoginComponent} from "./component/login.component";
|
||||
import {AuthenticationGuard, ConfirmExitGuard, SignedInGuard, ProcessInstanceRouteResolver} from "@webbpm/base-package";
|
||||
import {RegisterComponent} from "./component/register.component";
|
||||
import {ConfirmUserEmailComponent} from "./component/confirm-user-email.component";
|
||||
import {ResetPasswordComponent} from "./component/reset-password.component";
|
||||
import {NewPasswordComponent} from "./component/new-password.component";
|
||||
import {TaskListComponent} from "./component/task-list.component";
|
||||
import {ConfirmExitGuard} from "@webbpm/base-package";
|
||||
|
||||
const appRoutes: Routes = [
|
||||
{
|
||||
path: 'login',
|
||||
component: LoginComponent,
|
||||
canActivate: [SignedInGuard]
|
||||
},
|
||||
{
|
||||
path: 'access-denied',
|
||||
component: AccessDeniedComponent,
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'registration',
|
||||
component: RegisterComponent,
|
||||
canActivate: [SignedInGuard]
|
||||
},
|
||||
{
|
||||
path: 'confirm',
|
||||
component: ConfirmUserEmailComponent
|
||||
},
|
||||
{
|
||||
path: 'reset-password',
|
||||
component: ResetPasswordComponent
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
|
||||
{
|
||||
path: 'mydata',
|
||||
loadChildren: 'generated-sources/page-mydata.module#PagemydataModule',
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard],
|
||||
canActivate: [ConfirmExitGuard],
|
||||
},
|
||||
{
|
||||
path: 'restriction',
|
||||
loadChildren: 'generated-sources/page-restriction.module#PagerestrictionModule',
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard],
|
||||
canActivate: [ConfirmExitGuard],
|
||||
},
|
||||
{
|
||||
path: 'subpoena',
|
||||
loadChildren: 'generated-sources/page-subpoena.module#PagesubpoenaModule',
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard],
|
||||
canActivate: [ConfirmExitGuard],
|
||||
},
|
||||
{
|
||||
path: 'new-password',
|
||||
component: NewPasswordComponent
|
||||
},
|
||||
{
|
||||
path: 'process',
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard],
|
||||
children: [
|
||||
{
|
||||
path: 'instance',
|
||||
loadChildren: 'generated-sources/page-process-instance-list.module#PageprocessinstancelistModule',
|
||||
resolve: {
|
||||
processInstanceId: ProcessInstanceRouteResolver
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'instance/:processInstanceId',
|
||||
loadChildren: 'generated-sources/page-process-instance.module#PageprocessinstanceModule',
|
||||
resolve: {
|
||||
processInstanceId: ProcessInstanceRouteResolver
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'tasks',
|
||||
component: TaskListComponent,
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
|
|
|||
|
|
@ -11,25 +11,14 @@ import {
|
|||
ProgressIndicationService,
|
||||
SecurityModule
|
||||
} from "@webbpm/base-package";
|
||||
import {AdminMenuComponent} from "./component/admin-menu.component";
|
||||
import {AppHeaderComponent} from "./component/app-header.component";
|
||||
import {AppFooterComponent} from "./component/app-footer.component";
|
||||
import {LogOutComponent} from "./component/logout.component";
|
||||
import {LoginComponent} from "./component/login.component";
|
||||
import {AccessDeniedComponent} from "./component/access-denied.component";
|
||||
import {ApplicationVersionComponent} from "./component/application-version.component";
|
||||
import {RouterModule} from "@angular/router";
|
||||
import {RegisterComponent} from "./component/register.component";
|
||||
import {ConfirmUserEmailComponent} from "./component/confirm-user-email.component";
|
||||
import {InternationalPhoneNumberModule} from "ngx-international-phone-number";
|
||||
import {ResetPasswordComponent} from "./component/reset-password.component";
|
||||
import {NewPasswordComponent} from "./component/new-password.component";
|
||||
import {AppProgressIndicationComponent} from "./component/app-progress-indication.component";
|
||||
import {AppProgressIndicationService} from "./service/app-progress-indication.service";
|
||||
import {TaskListComponent} from "./component/task-list.component";
|
||||
import {ProcessListComponent} from "./component/process-list.component";
|
||||
import {TaskComponent} from "./component/task.component";
|
||||
import {TaskNotFoundComponent} from "./component/task-not-found.component";
|
||||
import {TextWithDialogLinks} from "../../ervu/component/textwithdialoglinks/TextWithDialogLinks";
|
||||
import {LoadForm} from "../../ervu/component/container/LoadForm";
|
||||
import {InMemoryStaticGrid} from "../../ervu/component/grid/InMemoryStaticGrid";
|
||||
|
|
@ -38,20 +27,9 @@ registerLocaleData(localeRu);
|
|||
export const DIRECTIVES = [
|
||||
forwardRef(() => AppHeaderComponent),
|
||||
forwardRef(() => AppFooterComponent),
|
||||
forwardRef(() => AdminMenuComponent),
|
||||
forwardRef(() => ApplicationVersionComponent),
|
||||
forwardRef(() => LogOutComponent),
|
||||
forwardRef(() => LoginComponent),
|
||||
forwardRef(() => AccessDeniedComponent),
|
||||
forwardRef(() => RegisterComponent),
|
||||
forwardRef(() => ConfirmUserEmailComponent),
|
||||
forwardRef(() => ResetPasswordComponent),
|
||||
forwardRef(() => NewPasswordComponent),
|
||||
forwardRef(() => AppProgressIndicationComponent),
|
||||
forwardRef(() => TaskListComponent),
|
||||
forwardRef(() => ProcessListComponent),
|
||||
forwardRef(() => TaskComponent),
|
||||
forwardRef(() => TaskNotFoundComponent),
|
||||
forwardRef(() => TextWithDialogLinks),
|
||||
forwardRef(() => LoadForm),
|
||||
forwardRef(() => InMemoryStaticGrid)
|
||||
|
|
@ -80,7 +58,7 @@ export const DIRECTIVES = [
|
|||
{ provide: ProgressIndicationService, useClass: AppProgressIndicationService }
|
||||
],
|
||||
bootstrap: [],
|
||||
entryComponents: [AppProgressIndicationComponent, TaskNotFoundComponent]
|
||||
entryComponents: [AppProgressIndicationComponent]
|
||||
})
|
||||
export class AppModule {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
import {ChangeDetectionStrategy, Component, Input} from "@angular/core";
|
||||
import {UserService, Session} from "@webbpm/base-package";
|
||||
import {NgbDropdownConfig, Placement} from "@ng-bootstrap/ng-bootstrap";
|
||||
import {Observable} from "rxjs";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: 'admin-menu',
|
||||
templateUrl: '../../../../../src/resources/template/app/component/admin_menu.html',
|
||||
providers: [NgbDropdownConfig],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class AdminMenuComponent {
|
||||
|
||||
@Input()
|
||||
public placement: Placement = 'bottom';
|
||||
public currentSession: Observable<Session>;
|
||||
|
||||
constructor(protected userService: UserService, public config: NgbDropdownConfig) {
|
||||
this.config.placement = this.placement;
|
||||
this.currentSession = this.userService.getCurrentSession();
|
||||
}
|
||||
}
|
||||
|
|
@ -30,10 +30,6 @@ export class AppHeaderComponent implements OnDestroy{
|
|||
);
|
||||
}
|
||||
|
||||
public openTaskList(): void {
|
||||
this.router.navigateByUrl("/process/tasks");
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this.subscription.unsubscribe();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from "@angular/core";
|
||||
import {Session, UserService} from "@webbpm/base-package";
|
||||
import {Observable} from "rxjs";
|
||||
|
||||
enum VerificationStatus {
|
||||
VERIFYING = "VERIFYING",
|
||||
VERIFIED = "VERIFIED",
|
||||
FAILED = "FAILED"
|
||||
}
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "confirm",
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
templateUrl: "../../../../../src/resources/template/app/component/confirm-user-email.html"
|
||||
})
|
||||
export class ConfirmUserEmailComponent {
|
||||
public verificationStatus = VerificationStatus.VERIFYING;
|
||||
public currentSession: Observable<Session>;
|
||||
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
constructor(private router: Router, private userService: UserService,
|
||||
private route: ActivatedRoute, private cd: ChangeDetectorRef) {
|
||||
this.currentSession = this.userService.getCurrentSession();
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
const link: string = this.route.snapshot.queryParamMap.get("link");
|
||||
// remove link from url to prevent http referer leakage
|
||||
this.router.navigate([], { relativeTo: this.route, replaceUrl: true });
|
||||
this.userService.confirm(
|
||||
link,
|
||||
(reason) => {
|
||||
this.verificationStatus = VerificationStatus.FAILED;
|
||||
if (reason.status === 404) {
|
||||
this.errorMessage = 'Ссылка недействительна. Требуется повторная регистрация.';
|
||||
}
|
||||
else {
|
||||
this.errorMessage = 'Произошла ошибка, обратитесь в службу технической поддержки!';
|
||||
}
|
||||
this.cd.markForCheck();
|
||||
})
|
||||
.then(() => {
|
||||
this.verificationStatus = VerificationStatus.VERIFIED;
|
||||
this.cd.markForCheck();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
import {Component, Input} from "@angular/core";
|
||||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {UserService, Credentials} from "@webbpm/base-package";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "login",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/login.html"
|
||||
})
|
||||
export class LoginComponent {
|
||||
|
||||
@Input()
|
||||
public username: string;
|
||||
|
||||
@Input()
|
||||
public password: string;
|
||||
public passwordType: boolean;
|
||||
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
@Input()
|
||||
public confirmationSent: boolean;
|
||||
|
||||
constructor(private router: Router, private userService: UserService,
|
||||
private route: ActivatedRoute) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.confirmationSent = this.route.snapshot.queryParamMap.get('confirmationSent') === 'true';
|
||||
this.router.navigate([], { relativeTo: this.route, replaceUrl: true });
|
||||
}
|
||||
|
||||
public login(): void {
|
||||
let credentials: Credentials = new Credentials();
|
||||
credentials.username = this.username;
|
||||
credentials.password = this.password;
|
||||
|
||||
this.userService.login(credentials, "Password")
|
||||
.then(() => this.router.navigateByUrl("/"),
|
||||
(reason: any) => {
|
||||
switch (reason.status) {
|
||||
case 401: {
|
||||
this.errorMessage = "Неправильный логин или пароль";
|
||||
break;
|
||||
}
|
||||
case 404: {
|
||||
this.errorMessage = "Приложение стартует. Пожалуйста, подождите...";
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
this.errorMessage =
|
||||
"Произошла неизвестная ошибка, обратитесь в службу технической поддержки!";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public goToRegister(): void {
|
||||
this.router.navigateByUrl("/register");
|
||||
}
|
||||
|
||||
togglePasswordType(): void {
|
||||
this.passwordType = !this.passwordType;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
import {Component} from "@angular/core";
|
||||
import {UserService, Session, AuthenticationMethodService} from "@webbpm/base-package";
|
||||
import {Observable} from "rxjs";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "[log-out]",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/log_out.html"
|
||||
})
|
||||
export class LogOutComponent {
|
||||
|
||||
public currentSession: Observable<Session>;
|
||||
|
||||
constructor(private userService: UserService, private authenticationMethodService: AuthenticationMethodService) {
|
||||
this.currentSession = userService.getCurrentSession();
|
||||
}
|
||||
|
||||
public logout(): void {
|
||||
this.userService.logout();
|
||||
}
|
||||
|
||||
public getCurrentUserName(): string {
|
||||
return this.userService.getCurrentUserName();
|
||||
}
|
||||
|
||||
public getFullUserName(): string {
|
||||
return this.userService.getFullUserName();
|
||||
}
|
||||
|
||||
public isLogoutButtonVisible(): boolean {
|
||||
return this.authenticationMethodService.isFormAuth();
|
||||
}
|
||||
|
||||
public getOrgUnitName(): string {
|
||||
return this.userService.getOrgUnitName();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
import {ActivatedRoute, Router} from "@angular/router";
|
||||
import {Component, Input} from "@angular/core";
|
||||
import {Session, UserPasswordResetRequestDto, UserService} from "@webbpm/base-package";
|
||||
import {Observable} from "rxjs";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "newPassword",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/new_password.html"
|
||||
})
|
||||
export class NewPasswordComponent {
|
||||
public currentSession: Observable<Session>;
|
||||
|
||||
private token: string;
|
||||
|
||||
@Input()
|
||||
public password: string;
|
||||
public passwordType: boolean;
|
||||
|
||||
@Input()
|
||||
public confirmPassword: string;
|
||||
public confirmPasswordType: boolean;
|
||||
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
constructor(private router: Router, private userService: UserService,
|
||||
private route: ActivatedRoute) {
|
||||
this.currentSession = this.userService.getCurrentSession();
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.token = this.route.snapshot.queryParamMap.get("token");
|
||||
|
||||
this.router.navigate([], {relativeTo: this.route, replaceUrl: true});
|
||||
|
||||
if (this.token == undefined || this.token === '') {
|
||||
this.errorMessage = 'Ссылка недействительна. Требуется повторить восстановление пароля.';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public changePassword(): void {
|
||||
let dto: UserPasswordResetRequestDto = new UserPasswordResetRequestDto();
|
||||
dto.password = this.password;
|
||||
dto.passwordConfirm = this.confirmPassword;
|
||||
this.userService.changePassword(dto, this.token)
|
||||
.then(() => this.router.navigateByUrl("/"),
|
||||
() => {
|
||||
this.errorMessage =
|
||||
'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!';
|
||||
});
|
||||
}
|
||||
|
||||
togglePasswordType(): void {
|
||||
this.passwordType = !this.passwordType;
|
||||
}
|
||||
|
||||
toggleConfirmPasswordType(): void {
|
||||
this.confirmPasswordType = !this.confirmPasswordType;
|
||||
}
|
||||
|
||||
validPasswords(): boolean {
|
||||
if (this.password === undefined || this.confirmPassword === undefined) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let eq = this.password === this.confirmPassword;
|
||||
if (!eq) {
|
||||
this.errorMessage = 'Введенные пароли не совпадают. Убедитесь, что данные, ' +
|
||||
'введенные в поле "Подтверждение пароля", совпадают с теми, ' +
|
||||
'которые указаны в поле "Пароль".';
|
||||
}
|
||||
else {
|
||||
this.errorMessage = '';
|
||||
}
|
||||
return eq;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from "@angular/core";
|
||||
import {Process, TaskService, ProcessDefinitionResource, ProcessService} from "@webbpm/base-package";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: 'process',
|
||||
templateUrl: '../../../../../src/resources/template/app/component/process_list.html',
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class ProcessListComponent {
|
||||
|
||||
@Input()
|
||||
public processList: Process[];
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
constructor(private processDefinitionResource: ProcessDefinitionResource,
|
||||
private taskService: TaskService,
|
||||
private cd: ChangeDetectorRef,
|
||||
private processService: ProcessService) {
|
||||
this.processList = [];
|
||||
this.loadProcessList();
|
||||
}
|
||||
|
||||
loadProcessList() {
|
||||
this.processDefinitionResource.list().then(
|
||||
(processList) => {
|
||||
this.processList = processList;
|
||||
this.cd.markForCheck();
|
||||
},
|
||||
() => {
|
||||
this.errorMessage = "Error load process list";
|
||||
this.cd.markForCheck();
|
||||
})
|
||||
}
|
||||
|
||||
startProcess(processDefinitionId: string) {
|
||||
this.processService.start(processDefinitionId, null).then(
|
||||
(processInstanceId: number) => {
|
||||
this.taskService.startAndOpenNextTask(processInstanceId);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
import {Component, Input, ViewChild} from "@angular/core";
|
||||
import {AppConfigService, UserDto, UserService} from "@webbpm/base-package";
|
||||
import {Router} from "@angular/router";
|
||||
import {PhoneNumberComponent} from "ngx-international-phone-number";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "register",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/register.html"
|
||||
})
|
||||
export class RegisterComponent {
|
||||
|
||||
public passwordPattern: string;
|
||||
public passwordPatternErrorMessage: string;
|
||||
public errorMessage: string;
|
||||
|
||||
@Input()
|
||||
public username: string;
|
||||
|
||||
@Input()
|
||||
public email: string;
|
||||
@ViewChild(PhoneNumberComponent)
|
||||
public phone: PhoneNumberComponent;
|
||||
public phoneNumber: string;
|
||||
|
||||
public phoneIsTouched: boolean = false;
|
||||
@Input()
|
||||
public password: string;
|
||||
|
||||
public fieldType: boolean;
|
||||
|
||||
@Input()
|
||||
public consent: string;
|
||||
|
||||
constructor(private router: Router, private userService: UserService,private appConfigService: AppConfigService) {
|
||||
this.passwordPattern = appConfigService.getParamValue("password_pattern");
|
||||
this.passwordPatternErrorMessage = appConfigService.getParamValue("password_pattern_error");
|
||||
}
|
||||
|
||||
public register(): void {
|
||||
let user: UserDto = new UserDto();
|
||||
user.username = this.username;
|
||||
user.email = this.email;
|
||||
user.name = this.username;
|
||||
user.phone = this.phone.value;
|
||||
user.password = this.password;
|
||||
|
||||
this.userService.register(user)
|
||||
.then(() => this.router.navigateByUrl("/login?confirmationSent=true"),
|
||||
(reason: any) => {
|
||||
if (reason.status === 409) {
|
||||
this.errorMessage = 'Пользователь с данным почтовым адресом уже существует';
|
||||
}
|
||||
else {
|
||||
this.errorMessage = 'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
toggleFieldType(): void {
|
||||
this.fieldType = !this.fieldType;
|
||||
}
|
||||
|
||||
phoneHasOnlyDialCode(): boolean {
|
||||
return this.phone.phoneNumber.trim() === this.phone.getSelectedCountryDialCode().trim()
|
||||
}
|
||||
|
||||
phoneInputFocusOut(): void {
|
||||
this.phoneIsTouched = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
import {Component, Input} from "@angular/core";
|
||||
import {UserService} from "@webbpm/base-package";
|
||||
import {Router} from "@angular/router";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "resetPassword",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/reset_password.html"
|
||||
})
|
||||
export class ResetPasswordComponent {
|
||||
|
||||
@Input()
|
||||
public email: string;
|
||||
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
constructor(private router: Router, private userService: UserService) {
|
||||
}
|
||||
|
||||
resetPassword(): void {
|
||||
|
||||
this.userService.resetPassword(this.email)
|
||||
.then(() => this.router.navigateByUrl("/"),
|
||||
(reason: any) => {
|
||||
this.errorMessage =
|
||||
'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!';
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
import {Component, Input} from "@angular/core";
|
||||
import {Task, TaskService, TaskStatus, TaskReference, TaskResource, ProcessVariable, UserService, RolesService, ProcessService} from "@webbpm/base-package";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "task-list",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/task_list.html"
|
||||
})
|
||||
export class TaskListComponent {
|
||||
@Input()
|
||||
public tasks: Task[];
|
||||
|
||||
@Input()
|
||||
public onTimeTasks: Task[];
|
||||
|
||||
@Input()
|
||||
public overdueTasks: Task[];
|
||||
|
||||
@Input()
|
||||
public visibleTasks: Task[];
|
||||
|
||||
@Input()
|
||||
public showMode: string;
|
||||
|
||||
@Input()
|
||||
public errorMessage: string;
|
||||
|
||||
@Input()
|
||||
public roles: string[];
|
||||
|
||||
constructor(private taskService: TaskService,
|
||||
private $taskResource: TaskResource,
|
||||
private userService: UserService,
|
||||
private rolesService: RolesService,
|
||||
private processService: ProcessService) {
|
||||
this.tasks = [];
|
||||
this.onTimeTasks = [];
|
||||
this.overdueTasks = [];
|
||||
this.visibleTasks = [];
|
||||
this.roles = [];
|
||||
this.showMode = 'All';
|
||||
|
||||
this.rolesService.getRoles().then((roles: string[]) => {
|
||||
this.roles = roles;
|
||||
});
|
||||
|
||||
this.loadTasks();
|
||||
}
|
||||
|
||||
private loadTasks(): void {
|
||||
this.$taskResource.list()
|
||||
.then(
|
||||
(tasks: Task[]) => this.initTasks(tasks),
|
||||
() => this.errorMessage = "Error load tasks"
|
||||
);
|
||||
}
|
||||
|
||||
public startTask(task: Task): Promise<any> {
|
||||
let taskRef: TaskReference = new TaskReference();
|
||||
taskRef.processInstanceId = task.processInstanceId;
|
||||
taskRef.taskId = task.id;
|
||||
|
||||
if (task.status == TaskStatus.InProgress) {
|
||||
return this.taskService.openTask(taskRef);
|
||||
}
|
||||
else if (task.status == TaskStatus.Reserved || task.status == TaskStatus.Ready) {
|
||||
return this.taskService.startAndOpenTask(taskRef);
|
||||
}
|
||||
}
|
||||
|
||||
private initTasks(tasks: Task[]): void {
|
||||
this.tasks = tasks;
|
||||
this.filterOnTimeTasks();
|
||||
this.filterOverdueTasks();
|
||||
this.filterVisibleTasks();
|
||||
}
|
||||
|
||||
public isVisible(task: Task): boolean {
|
||||
return this.showMode == 'All' ||
|
||||
this.showMode == 'OnTime' && !this.isOverdue(task) ||
|
||||
this.showMode == 'Overdue' && this.isOverdue(task);
|
||||
}
|
||||
|
||||
public isOverdue(task: Task): boolean {
|
||||
if (!task.expirationTime) {
|
||||
return false;
|
||||
}
|
||||
return new Date(task.expirationTime).getTime() <= new Date().getTime();
|
||||
}
|
||||
|
||||
public isOnTime(task: Task): boolean {
|
||||
return !this.isOverdue(task);
|
||||
}
|
||||
|
||||
public startProcess(processDefinitionId: string, processVars?: Array<ProcessVariable | any>) {
|
||||
this.processService.start(processDefinitionId, processVars).then(
|
||||
(processInstanceId: number) => {
|
||||
this.taskService.startAndOpenNextTask(processInstanceId);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public filterOnTimeTasks() {
|
||||
this.onTimeTasks = this.tasks
|
||||
.filter((task: Task) => this.isOnTime(task));
|
||||
}
|
||||
|
||||
public filterOverdueTasks() {
|
||||
this.overdueTasks = this.tasks
|
||||
.filter((task: Task) => this.isOverdue(task));
|
||||
}
|
||||
|
||||
public filterVisibleTasks() {
|
||||
this.visibleTasks = this.tasks
|
||||
.filter((task: Task) => this.isVisible(task));
|
||||
}
|
||||
|
||||
public hasRole(role: string) {
|
||||
return this.roles.includes(role);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
import {ChangeDetectionStrategy, Component} from "@angular/core";
|
||||
import {Router} from "@angular/router";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: 'task-not-found',
|
||||
templateUrl: '../../../../../src/resources/template/app/component/task_not_found.html',
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class TaskNotFoundComponent {
|
||||
|
||||
constructor(private router: Router) {
|
||||
}
|
||||
|
||||
goToTaskList() {
|
||||
return this.router.navigateByUrl("/process/tasks");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
import {Component} from "@angular/core";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
selector: "[task]",
|
||||
templateUrl: "../../../../../src/resources/template/app/component/task.html"
|
||||
})
|
||||
export class TaskComponent {
|
||||
}
|
||||
|
|
@ -8,7 +8,6 @@ import {
|
|||
Router
|
||||
} from "@angular/router";
|
||||
import {ProgressIndicationService} from "@webbpm/base-package";
|
||||
import {AppJivoChatWidgetService} from "../../app/service/app-jivo-chat.service";
|
||||
|
||||
@Component({
|
||||
moduleId: module.id,
|
||||
|
|
@ -20,8 +19,7 @@ export class WebbpmComponent {
|
|||
public footerVisible: boolean = true;
|
||||
|
||||
constructor(private router: Router,
|
||||
private progressIndicationService: ProgressIndicationService,
|
||||
private appJivoChatWidgetService: AppJivoChatWidgetService) {
|
||||
private progressIndicationService: ProgressIndicationService) {
|
||||
router.events.subscribe((event: Event) => {
|
||||
if (event instanceof NavigationStart) {
|
||||
progressIndicationService.showProgressBar();
|
||||
|
|
|
|||
|
|
@ -1,88 +0,0 @@
|
|||
import {RouterModule, Routes} from "@angular/router";
|
||||
import {NgModule} from "@angular/core";
|
||||
import {
|
||||
AuthenticationGuard,
|
||||
ConfirmExitGuard
|
||||
} from "@webbpm/base-package";
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: 'user-management',
|
||||
canActivate: [AuthenticationGuard],
|
||||
children: [
|
||||
{
|
||||
path: 'users',
|
||||
loadChildren: 'generated-sources/page-user-management-users.module#PageusermanagementusersModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'users/new',
|
||||
loadChildren: 'generated-sources/page-user-management-user-create.module#PageusermanagementusercreateModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'users/:id',
|
||||
loadChildren: 'generated-sources/page-user-management-user-edit.module#PageusermanagementusereditModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'org-units',
|
||||
loadChildren: 'generated-sources/page-user-management-org-units.module#PageusermanagementorgunitsModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'org-units/new',
|
||||
loadChildren: 'generated-sources/page-user-management-org-unit.module#PageusermanagementorgunitModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'org-units/:id',
|
||||
loadChildren: 'generated-sources/page-user-management-org-unit.module#PageusermanagementorgunitModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'roles',
|
||||
loadChildren: 'generated-sources/page-user-management-roles.module#PageusermanagementrolesModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'roles/new',
|
||||
loadChildren: 'generated-sources/page-user-management-role.module#PageusermanagementroleModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'roles/:id',
|
||||
loadChildren: 'generated-sources/page-user-management-role.module#PageusermanagementroleModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'groups',
|
||||
loadChildren: 'generated-sources/page-user-management-groups.module#PageusermanagementgroupsModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'groups/new',
|
||||
loadChildren: 'generated-sources/page-user-management-group-create.module#PageusermanagementgroupcreateModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'groups/:id',
|
||||
loadChildren: 'generated-sources/page-user-management-group-edit.module#PageusermanagementgroupeditModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
},
|
||||
{
|
||||
path: 'authorities',
|
||||
loadChildren: 'generated-sources/page-user-management-authorities.module#PageusermanagementauthoritiesModule',
|
||||
canActivate: [ConfirmExitGuard]
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class UserManagementRoutingModule {
|
||||
|
||||
}
|
||||
|
|
@ -1,38 +1,16 @@
|
|||
import {NgModule} from "@angular/core";
|
||||
import {RouterModule, Routes} from "@angular/router";
|
||||
import {HomeComponent} from "./component/home.component";
|
||||
import {
|
||||
AuthenticationGuard,
|
||||
HistoryLocationGuard,
|
||||
TaskPageRouteResolver,
|
||||
ConfirmExitGuard
|
||||
} from "@webbpm/base-package";
|
||||
import {DYNAMIC_ROUTING} from "../../page.routing";
|
||||
import {TaskComponent} from "./../app/component/task.component";
|
||||
import {TaskNotFoundComponent} from "./../app/component/task-not-found.component";
|
||||
|
||||
const webbpmRoutes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
loadChildren: 'generated-sources/page-lkfl.module#PagelkflModule',
|
||||
canActivate: [AuthenticationGuard, ConfirmExitGuard],
|
||||
canActivate: [ConfirmExitGuard],
|
||||
pathMatch: 'full',
|
||||
},
|
||||
{
|
||||
path: 'process/:processInstanceId/task/:taskId',
|
||||
component: TaskComponent,
|
||||
children: DYNAMIC_ROUTING,
|
||||
canActivate: [HistoryLocationGuard],
|
||||
resolve: {
|
||||
taskPage: TaskPageRouteResolver
|
||||
},
|
||||
runGuardsAndResolvers: "always"
|
||||
},
|
||||
{
|
||||
path: 'process/task-not-found',
|
||||
component: TaskNotFoundComponent,
|
||||
canActivate: [AuthenticationGuard]
|
||||
},
|
||||
{
|
||||
path: '**',
|
||||
redirectTo: '',
|
||||
|
|
|
|||
|
|
@ -13,13 +13,8 @@ import {
|
|||
BpmnModule,
|
||||
ComponentsModule,
|
||||
CoreModule,
|
||||
SecurityModule,
|
||||
} from "@webbpm/base-package";
|
||||
import {TaskParamsProvider} from "@webbpm/base-package";
|
||||
import {ProcessInstanceParamsProvider} from "@webbpm/base-package";
|
||||
import {AppRoutingModule} from "../app/app-routing.module";
|
||||
import {AppJivoChatWidgetService} from "../app/service/app-jivo-chat.service";
|
||||
import {UserManagementRoutingModule} from "./user-management-routing.module";
|
||||
import {GlobalErrorHandler} from "./handler/global-error.handler.prod";
|
||||
import {DEFAULT_HTTP_INTERCEPTOR_PROVIDERS} from "./interceptor/default-interceptors.prod";
|
||||
|
||||
|
|
@ -31,11 +26,9 @@ let IMPORTS = [
|
|||
ToastNoAnimationModule.forRoot(),
|
||||
AgGridModule,
|
||||
AppRoutingModule,
|
||||
UserManagementRoutingModule,
|
||||
BpmnModule,
|
||||
CoreModule,
|
||||
ComponentsModule,
|
||||
SecurityModule,
|
||||
AppModule,
|
||||
WebbpmRoutingModule
|
||||
];
|
||||
|
|
@ -48,9 +41,6 @@ let IMPORTS = [
|
|||
],
|
||||
exports: [],
|
||||
providers: [
|
||||
TaskParamsProvider,
|
||||
ProcessInstanceParamsProvider,
|
||||
AppJivoChatWidgetService,
|
||||
{provide: ErrorHandler, useClass: GlobalErrorHandler},
|
||||
DEFAULT_HTTP_INTERCEPTOR_PROVIDERS
|
||||
],
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>resources</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
<organization>
|
||||
<name>Micord</name>
|
||||
</organization>
|
||||
|
|
@ -28,13 +28,13 @@
|
|||
<jooq.version>3.19.3</jooq.version>
|
||||
<jupiter.version>5.10.2</jupiter.version>
|
||||
<enforcer.manageVersions>true</enforcer.manageVersions>
|
||||
<webbpm-platform.version>3.177.0</webbpm-platform.version>
|
||||
<webbpm-platform.version>3.178.2</webbpm-platform.version>
|
||||
<h2.version>1.4.200</h2.version>
|
||||
<build.timestamp>0812074142</build.timestamp>
|
||||
<build.timestamp>0829133121</build.timestamp>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<junit.platform.version>1.10.0</junit.platform.version>
|
||||
<enforcer.manageExclusions>true</enforcer.manageExclusions>
|
||||
<revision>3.177.0</revision>
|
||||
<revision>3.178.2</revision>
|
||||
<metadata.ts.filename>typescript.metadata.json</metadata.ts.filename>
|
||||
<package.repository.url>https://repo.micord.ru</package.repository.url>
|
||||
<maven.build.timestamp.format>MMddHHmmss</maven.build.timestamp.format>
|
||||
|
|
@ -47,19 +47,19 @@
|
|||
<dependency>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>converters</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>backend</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>frontend</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
<ul>
|
||||
|
||||
<li>Образец внешней ссылки: <code>https://www.wildberries.ru/catalog/${sku}/detail.aspx</code></li>
|
||||
<li>Образец внутренней ссылки: <code>products/ru.cg.webbpm.packages.base:resources:jar:3.177.0</code></li>
|
||||
<li>Образец внутренней ссылки: <code>products/ru.cg.webbpm.packages.base:resources:jar:3.178.2</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -4,17 +4,17 @@
|
|||
<description>Base webbpm package</description>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>resources</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<version>3.178.2</version>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
|
||||
<backendModule>
|
||||
<groupId>ru.cg.webbpm.packages.base</groupId>
|
||||
<artifactId>backend</artifactId>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
</backendModule>
|
||||
<frontendModule>
|
||||
<packageName>@webbpm/base-package</packageName>
|
||||
<version>3.177.0</version>
|
||||
<version>3.178.2</version>
|
||||
</frontendModule>
|
||||
</packageInfo>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_отмены.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_очистки_фильтра.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_удаления.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_загрузки.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_вызова_ошибки.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<documentation>component/buttons/Кнопка_выполнения_бизнес-процесса.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_выполнения_SQL.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_для_фильтрации.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_навигации.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_сохранения.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_выбора.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_подписи.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/Кнопка_запуска_бизнес-процесса.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/reporting/Кнопка_печати_из_графа_сущности.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/buttons/reporting/Кнопка_печати_отчета_из_формы.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Сворачиваемая_панель.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Диалог.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Контейнер_с_кнопками.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Группа_полей.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Набор_фильтров.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Форма.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Горизонтальный_контейнер.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Контейнер_вкладок.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Вкладка.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Вертикальный_контейнер.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/containers/Окно.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/editable-grids/EditableGrid.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/autocomplete</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/check-box</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/combo-box</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/date-time-picker</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/money-field</localization>
|
||||
<internal>true</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/number-field</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
||||
<internal>true</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/one-to-many</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/read-only</localization>
|
||||
<internal>true</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
<category>editable-grids</category>
|
||||
<internal>true</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>Статичный_выпадающий_список_колонки_таблицы.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/text-area</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/text-field</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
<localization>META-INF/components/localization/editable-grids/time-picker</localization>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/ФИАС.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Поле_ввода_с_подбором_значения.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Флаг.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Выпадающий_список.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Дата.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/EditableOneToMany.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Файл.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/Файл.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/ManyToMany.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
<documentation>component/fields/ManyToManyField.html</documentation>
|
||||
<internal>false</internal>
|
||||
<versions>
|
||||
<studioVersion>3.177.0</studioVersion>
|
||||
<studioVersion>3.178.2</studioVersion>
|
||||
<packageVersions>
|
||||
<entry>
|
||||
<key>ru.cg.webbpm.packages.base.resources</key>
|
||||
<value>3.177.0</value>
|
||||
<value>3.178.2</value>
|
||||
</entry>
|
||||
</packageVersions>
|
||||
</versions>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue