Fix all build error and modify structure

This commit is contained in:
root
2025-07-27 22:34:40 +07:00
parent 0754ebd64c
commit 0658d79cd2
1002 changed files with 50669 additions and 41 deletions

2
.env
View File

@@ -1,5 +1,5 @@
CATALINA_HOME=/opt/tomcat9 CATALINA_HOME=/opt/tomcat9
SC_PUBLISHED_HOST=smartconnect.internal.yel.or.id SC_PUBLISHED_HOST=smart.internal.yel.or.id
SC_FILESTORE_LOCATION=/data/SMARTConnect SC_FILESTORE_LOCATION=/data/SMARTConnect
SC_SERVER_ADMIN=hendra@yel.or.id SC_SERVER_ADMIN=hendra@yel.or.id
DNS_CLOUDFLARE_API_TOKEN=3WedMWHhoDPxge5yMPJgQPFhRXCTp6zpasTIlaIu DNS_CLOUDFLARE_API_TOKEN=3WedMWHhoDPxge5yMPJgQPFhRXCTp6zpasTIlaIu

View File

@@ -12,12 +12,16 @@ ARG SC_FILESTORE_LOCATION
ARG SC_SERVER_ADMIN ARG SC_SERVER_ADMIN
ARG POSTGRES_PASSWORD
ARG DNS_CLOUDFLARE_API_TOKEN ARG DNS_CLOUDFLARE_API_TOKEN
ENV TIME_ZONE="Asia/Jakarta" ENV TIME_ZONE="Asia/Jakarta"
ENV CATALINA_HOME=$CATALINA_HOME ENV CATALINA_HOME=$CATALINA_HOME
ENV SC_PUBLISHED_HOST=$SC_PUBLISHED_HOST
ENV PATH=$CATALINA_HOME/bin:$PATH ENV PATH=$CATALINA_HOME/bin:$PATH
RUN mkdir /app && mkdir -p $SC_FILESTORE_LOCATION RUN mkdir /app && mkdir -p $SC_FILESTORE_LOCATION
@@ -30,7 +34,7 @@ ENV SMARTCONNECT_DATA=$SC_FILESTORE_LOCATION
RUN apt update RUN apt update
RUN apt install postgresql-client certbot python3-certbot-dns-cloudflare -y && apt clean && rm -rf /var/lib/apt/lists/* RUN apt install certbot python3-certbot-dns-cloudflare build-essential autoconf libtool libapr1-dev libssl-dev -y && apt clean && rm -rf /var/lib/apt/lists/*
RUN set -eux; \ RUN set -eux; \
export TOMCAT_VERSION=$(curl --silent https://dlcdn.apache.org/tomcat/tomcat-9/ | grep v9 | tail -n 1 | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1); \ export TOMCAT_VERSION=$(curl --silent https://dlcdn.apache.org/tomcat/tomcat-9/ | grep v9 | tail -n 1 | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | tail -n 1); \
@@ -50,28 +54,29 @@ tar --extract --file "$TOMCAT_FILE" --directory "$CATALINA_HOME" --strip-compone
rm "$TOMCAT_FILE"; \ rm "$TOMCAT_FILE"; \
echo "[$(date)] [$DOCKER_NAME] [$TOMCAT_URL]" >> /.components; echo "[$(date)] [$DOCKER_NAME] [$TOMCAT_URL]" >> /.components;
RUN rm $TOMCAT_SHA512_FILE
RUN wget https://dlcdn.apache.org/tomcat/tomcat-connectors/native/2.0.9/source/tomcat-native-2.0.9-src.tar.gz
RUN tar -xzf tomcat-native-2.0.9-src.tar.gz
RUN (cd tomcat-native-2.0.9-src/native && ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=/usr/lib/ssl --prefix=$CATALINA_HOME && make && make install)
RUN rm tomcat-native-2.0.9-src.tar.gz && rm -rf omcat-native-2.0.9-src
RUN mkdir -p ~/.secrets/certbot && printf "dns_cloudflare_api_token=$DNS_CLOUDFLARE_API_TOKEN" >> ~/.secrets/certbot/cloudflare.ini && chmod 600 ~/.secrets/certbot/cloudflare.ini RUN mkdir -p ~/.secrets/certbot && printf "dns_cloudflare_api_token=$DNS_CLOUDFLARE_API_TOKEN" >> ~/.secrets/certbot/cloudflare.ini && chmod 600 ~/.secrets/certbot/cloudflare.ini
RUN printf "pgsql-postgis:5432:*:postgres:${POSTGRES_PASSWORD}" >> ~/.pgpass && chmod 600 ~/.pgpass RUN certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini --non-interactive --agree-tos --no-eff-email -m hendra@yel.or.id -d $SC_PUBLISHED_HOST
RUN psql -h pgsql-postgis -p 5432 -U postgres -f db/db_preparation.sql RUN rm -rf $CATALINA_HOME/webapps && mkdir $CATALINA_HOME/conf/cert && mv -f conf $CATALINA_HOME/ && mv -f webapps $CATALINA_HOME/ && mv lib $CATALINA_HOME/
RUN psql -h pgsql-postgis -p 5432 -d yel_scdb -U postgres -f db/scdb_import.sql RUN cp -Lf /etc/letsencrypt/live/$SC_PUBLISHED_HOST/*.pem $CATALINA_HOME/conf/cert/
RUN certbot certonly \
-a dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
--non-interactive --agree-tos --no-eff-email -m $SC_SERVER_ADMIN \
-d $SC_PUBLISHED_HOST
RUN rm -rf $CATALINA_HOME/webapps && mkdir $CATALINA_HOME/conf/cert && cp -f conf/server.xml $CATALINA_HOME/conf/ && cp webapps $CATALINA_HOME/ && cp lib/* $CATALINA_HOME/lib/
RUN cp -Lf /etc/letsencrypt/live/$SC_PUBLISHED_HOST/{cert,chain,privkey}.pem $CATALINA_HOME/conf/cert/
RUN printf "#!/bin/sh\n\n\ RUN printf "#!/bin/sh\n\n\
cp -Lf /etc/letsencrypt/live/$SC_PUBLISHED_HOST/{cert,chain,privkey}.pem /opt/tomcat9/conf/cert/\n" >> /etc/letsencrypt/renewal-hooks/deploy/sc7_certbot_deploy.sh \ cp -Lf /etc/letsencrypt/live/$SC_PUBLISHED_HOST/*.pem /opt/tomcat9/conf/cert/\n\n\
$CATALINA_HOME/bin/shutdown.sh\n\
sleep 5\n\
$CATALINA_HOME/bin/startup.sh" >> /etc/letsencrypt/renewal-hooks/deploy/sc7_certbot_deploy.sh \
&& chmod 750 /etc/letsencrypt/renewal-hooks/deploy/sc7_certbot_deploy.sh && chmod 750 /etc/letsencrypt/renewal-hooks/deploy/sc7_certbot_deploy.sh
CMD ["sh"] CMD ["sh"]

View File

@@ -0,0 +1,13 @@
handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
1catalina.org.apache.juli.AsyncFileHandler.level = SEVERE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.level = SEVERE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Server port="-1" shutdown="SHUTDOWN"> <Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/> <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
@@ -7,13 +7,19 @@
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources> <GlobalNamingResources>
<Resource name="UserDatabase"
auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
<Resource auth="Container" <Resource auth="Container"
driverClassName="org.postgresql.Driver" driverClassName="org.postgresql.Driver"
type="javax.sql.DataSource" type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
name="org.wcs.smart.connect.datasource.postgresql" name="org.wcs.smart.connect.datasource.postgresql"
username="scadmin" username="postgres"
password="Sm@rtConnIX3" password="Sm@rtConnIX3"
url="jdbc:postgresql://pgsql-postgis:5432/yel_scdb" url="jdbc:postgresql://pgsql-postgis:5432/yel_scdb"
alternateUsernameAllowed="true" alternateUsernameAllowed="true"
@@ -47,7 +53,7 @@
<Environment name="smartconnect.changelog_cleanup_days" value="5" type="java.lang.Integer" override="false"/> <Environment name="smartconnect.changelog_cleanup_days" value="5" type="java.lang.Integer" override="false"/>
<Environment name="smartconnect.ca_export_days_available" value="5" type="java.lang.Integer" override="false"/> <Environment name="smartconnect.ca_export_days_available" value="5" type="java.lang.Integer" override="false"/>
<Environment name="smartconnect.sync_download_hours_available" value="5" type="java.lang.Integer" override="false"/> <Environment name="smartconnect.sync_download_hours_available" value="5" type="java.lang.Integer" override="false"/>
<Environment name="smartconnect.cleanup_task_interval_hours value="5" type="java.lang.Integer" override="false"/> <Environment name="smartconnect.cleanup_task_interval_hours" value="5" type="java.lang.Integer" override="false"/>
<Resource name="mail/Session" <Resource name="mail/Session"
auth="Container" auth="Container"
@@ -63,15 +69,17 @@
</GlobalNamingResources> </GlobalNamingResources>
<Service name="Catalina"> <Service name="Catalina">
<Engine name="Catalina" defaultHost="smartconnect.internal.yel.or.id"> <Engine name="Catalina" defaultHost="smart.internal.yel.or.id">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.50\.3\.201;8443"/>
<Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm> </Realm>
<Host name="smartconnect.internal.yel.or.id" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Host name="smart.internal.yel.or.id" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sc_access" suffix=".log" pattern="%h %l %u %t &quot;%r&quot; %s %b"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="sc_access" suffix=".log" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
</Host> </Host>
</Engine> </Engine>
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="300" processorCache="300" SSLEnabled="true"> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="300" processorCache="300" SSLEnabled="true">
<SSLHostConfig> <SSLHostConfig>
<Certificate certificateFile="conf/cert/cert.pem" certificateKeyFile="conf/cert/privkey.pem" certificateChainFile="conf/cert/chain.pem"/> <Certificate certificateFile="conf/cert/cert.pem" certificateKeyFile="conf/cert/privkey.pem" certificateChainFile="conf/cert/chain.pem"/>
</SSLHostConfig> </SSLHostConfig>

View File

@@ -1,17 +0,0 @@
-- SMART7 database preparation
-- 1) install postgis extension
-- Not Needed: already installed because we use postgis/postgis:11-2.5 docker image
-- CREATE EXTENSION postgis;
-- 2) install uuid-ossp extension
CREATE EXTENSION "uuid-ossp";
-- 3) Create Specific User for SMARTConnect 7 with password
CREATE USER scadmin PASSWORD 'Sm@rtConnIX3';
-- 4) Create DB for SMARTConnect 7 and make newly created user above as the owner
CREATE DATABASE yel_scdb WITH OWNER scadmin;
-- 5) Grant all privileges on database yel_scdb to scadmin
GRANT ALL PRIVILEGES ON DATABASE yel_scdb TO scadmin;

Binary file not shown.

View File

@@ -0,0 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven Archiver 3.4.0
Build-Jdk-Spec: 11

View File

@@ -0,0 +1,51 @@
<Context>
<ResourceLink name="jdbc/smart"
global="org.wcs.smart.connect.datasource.postgresql"
type="javax.sql.DataSource" />
<ResourceLink name="smartconnect.filestorelocation"
global="smartconnect.filestorelocation"
type="java.lang.String" />
<ResourceLink name="smartconnect.dataqueue_cleanup_days"
global="smartconnect.dataqueue_cleanup_days"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.spatial_ref_sys_table"
global="smartconnect.spatial_ref_sys_table"
type="java.lang.String" />
<ResourceLink name="smartconnect.number_background_threads"
global="smartconnect.number_background_threads"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.work_item_history_days_available"
global="smartconnect.work_item_history_days_available"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.changelog_cleanup_days"
global="smartconnect.changelog_cleanup_days"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.ca_export_days_available"
global="smartconnect.ca_export_days_available"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.sync_download_hours_available"
global="smartconnect.sync_download_hours_available"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.cleanup_task_interval_hours"
global="smartconnect.cleanup_task_interval_hours"
type="java.lang.Integer" />
<ResourceLink name="smartconnect.gfw_cleanup_days"
global="smartconnect.gfw_cleanup_days"
type="java.lang.Integer" />
<ResourceLink name="mail/Session"
global="mail/Session"
type="javax.mail.Session"/>
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/smart" userTable="connect.users" userNameCol="username"
userCredCol="password" userRoleTable="connect.user_roles"
roleNameCol="role_id" localDataSource="true">
<CredentialHandler
className="org.wcs.smart.connect.apache.BcryptCredentialHandler" />
</Realm>
</Realm>
</Context>

View File

@@ -0,0 +1,3 @@
groupId=org.wcs.smart.connect.server
artifactId=org.wcs.smart.connect.server
version=7.5.3

View File

@@ -0,0 +1,884 @@
<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/maven-v4_0_0.xsd">
<!-- mvn eclipse:eclipse -Dwtpversion=2.0 -->
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.wcs.smart.connect</groupId>
<artifactId>org.wcs.smart.connect</artifactId>
<version>7.5.3</version>
</parent>
<groupId>org.wcs.smart.connect.server</groupId>
<artifactId>org.wcs.smart.connect.server</artifactId>
<name>SMART Connect Server</name>
<packaging>war</packaging>
<properties>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
</properties>
<build>
<finalName>server</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<!-- Eclipse project -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<!-- Always download and attach dependencies source code -->
<downloadSources>false</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<!-- Avoid type mvn eclipse:eclipse -Dwtpversion=2.0 -->
<wtpversion>2.0</wtpversion>
<wtpdefaultserver>Apache Tomcat v8.0</wtpdefaultserver>
</configuration>
</plugin>
<!-- Set JDK Compiler Level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<!--<warSourceExcludes>**/context.xml</warSourceExcludes><webResources><resource><directory>conf/deploy</directory><targetPath>META-INF</targetPath><includes><include>**/context.xml</include></includes></resource></webResources>
-->
</configuration>
</plugin>
<plugin>
<groupId>io.openapitools.swagger</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-core-api</id>
<goals><goal>generate</goal></goals>
<configuration>
<resourcePackages>
<resourcePackage>org.wcs.smart.connect.api</resourcePackage>
</resourcePackages>
<outputDirectory>${basedir}/swagger/</outputDirectory>
<outputFilename>smartconnect-api-${project.version}</outputFilename>
<outputFormats>YAML</outputFormats>
<prettyPrint>true</prettyPrint>
</configuration>
</execution>
<execution>
<id>generate-noa-api</id>
<goals><goal>generate</goal></goals>
<configuration>
<resourcePackages>
<resourcePackage>org.wcs.smart.connect.api.noa</resourcePackage>
</resourcePackages>
<outputDirectory>${basedir}/swagger/</outputDirectory>
<outputFilename>smartconnect-noa-${project.version}</outputFilename>
<outputFormats>YAML</outputFormats>
<prettyPrint>true</prettyPrint>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>${resteasy.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<!--jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--javamail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
<scope>provided</scope>
</dependency>
<!-- postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<!--<version>9.4-1201-jdbc41</version>-->
<version>42.1.4</version>
<scope>provided</scope>
</dependency>
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- tomcat provided dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.0.23</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.svenkubiak</groupId>
<artifactId>jBCrypt</artifactId>
<version>0.4.1</version>
<scope>provided</scope>
</dependency>
<!-- utilities -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20170516</version>
</dependency>
<!-- SMART -->
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.core</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.observation</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.qa</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.qa.er</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.qa.incident</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.qa.patrol</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.hibernate</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.observation.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.dataentry</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.patrol</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.patrol.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.plan</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.er</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.er.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.entity</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.entity.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.incident</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.cybertracker</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.cybertracker</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.report.birt.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.observation.query.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.patrol.query.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.entity.query.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.er.query.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.reporttable</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.birt.map</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.cybertracker.patrol</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.cybertracker.survey</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.cybertracker.incident</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.smartcollect</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue.cybertracker</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue.er</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue.independentincident</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue.patrol</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.connect.dataqueue.i2</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.i2</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.i2.patrol</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.asset</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.asset.query</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.asset.query.report</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.event</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.r</artifactId>
<version>${smart.version}</version>
</dependency>
<dependency>
<groupId>org.wcs.smart.core</groupId>
<artifactId>org.wcs.smart.core.paws</artifactId>
<version>${smart.version}</version>
</dependency>
<!-- JTS -->
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>${jts.version}</version>
</dependency>
<!-- geotools and udig -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing</artifactId>
<version>${geotools.version}</version>
<exclusions>
<exclusion>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-main</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-opengis</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<!-- required for Graticule mapgraphic -->
<groupId>org.geotools</groupId>
<artifactId>gt-grid</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geotiff</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-render</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-brewer</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-svg</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-wms</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-core</artifactId>
<version>${geotools.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.emf</groupId>
<artifactId>common</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.emf</groupId>
<artifactId>ecore</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-sld</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-image</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog.rasterings</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog.shp</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog.geotiff</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog.wms</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.catalog.worldimage</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.project</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.project.ui</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.mapgraphic</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.style</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.style.sld</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.style.wms</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.legend</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.core</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.ui</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.render.feature.basic</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.render.feature.shapefile</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.render.gridcoverage.basic</artifactId>
<version>${udig.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.udig</groupId>
<artifactId>org.locationtech.udig.render.wms.basic</artifactId>
<version>${udig.version}</version>
</dependency>
<!-- BIRT -->
<!--eclipse for udig -->
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.jface</artifactId>
<version>${org.eclipse.jface.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.common</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.equinox.common</artifactId>
<version>3.14.100</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.config.wpml</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.wpml</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.ooxml</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.odf</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.odt</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.docx</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.pdf</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.emitter.html</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.core</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.data</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.data.aggregation</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.data.oda.pojo</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.data.adapter</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.data.oda.jdbc</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.dataextraction</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.dataextraction.csv</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.fonts</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.engine.script.javascript</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.model</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.model.adapter.oda</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.reportitem.ui</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.reportitem</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.engine</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.engine.extension</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.device.extension</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.device.pdf</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.chart.device.svg</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.report.item.crosstab.core</artifactId>
<version>${birt.version}</version>
</dependency>
<dependency>
<groupId>net.sf.jtidy</groupId>
<artifactId>jtidy</artifactId>
<version>r938</version>
</dependency>
<dependency>
<groupId>org.eclipse.datatools.plugins</groupId>
<artifactId>org.eclipse.datatools.connectivity</artifactId>
<version>1.14.102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.datatools.plugins</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda</artifactId>
<version>3.6.101-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.datatools.plugins</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda.consumer</artifactId>
<version>3.4.101-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.datatools.plugins</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda.design</artifactId>
<version>3.5.101-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.datatools.plugins</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda.profile</artifactId>
<version>3.4.101-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.datatools.modelbase.dbdefinition</artifactId>
<version>1.1.0.201603142002</version>
</dependency>
<dependency>
<groupId>swt</groupId>
<artifactId>swt-win32</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>${itext.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.ui.workbench</artifactId>
<version>${org.eclipse.ui.workbench.version}</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

View File

@@ -0,0 +1,390 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html style="height: 100%;">
<head>
<%@include file="includes.jsp" %>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/pikaday.css" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/leaflet/leaflet.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/leaflet/leaflet.awesome-markers.css" />
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/leaflet.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/leaflet.awesome-markers.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/html2canvas.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/leaflet_export.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/alert.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/table.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/infoerror.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/dialog.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/pickaday.js"></script>
<script src="https://maps.google.com/maps/api/js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/leaflet-realtime.js"></script>
<script type="text/javascript" >
var mobile="${mobile}";
var tab = ${tab};
var styleUuids = [
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}",
</c:forEach>
];
var styleColors = {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getColor()}",
</c:forEach>
};
var styleOpacity = {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getOpacity()}",
</c:forEach>
};
var styleMarkerColor = {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getMarkerColor()}",
</c:forEach>
};
var styleMarkerIcon = {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getMarkerIcon()}",
</c:forEach>
};
var styleCustomIcon = {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getCustomIcon()}",
</c:forEach>
};
var styleSpin= {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getSpin()}",
</c:forEach>
};
var markerLabels= {
<c:forEach var="type" items="${alertTypes}" varStatus="count">
"${type.getUuid()}" : "${type.getLabel()}",
</c:forEach>
};
var qdatefilter = {
<c:forEach var="entry" items="${qdatefilters}">
'${entry.key}': [
<c:forEach var="op" items="${entry.value}">
'${op}',
</c:forEach>
],
</c:forEach>
};
var startingZoom = ${startingZoom};
var startingLong = ${startingLong};
var startingLat = ${startingLat};
var canupdate = ${canupdate};
var candelete = ${candelete};
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
var mapLayers = [
<c:forEach var="layer" items="${mapLayers}">
[
"<c:out value="${layer.getLayerType()}"/>",
"<c:out value="${layer.getToken()}"/>",
"<c:out value="${layer.getWmsLayerList()}"/>",
"<c:out value="${layer.getLayerName()}"/>",
"<c:out value="${layer.isActive()}"/>"],
</c:forEach>
];
var basemapLayers = [
<c:forEach var="layer" items="${basemapLayers}">
{
"name": "<c:out value="${layer[0]}"/>",
"url": "<c:out value="${layer[1]}"/>",
"uuid": "<c:out value="${layer[2]}"/>",
"visible": <c:out value="${layer[3]}"/>
},
</c:forEach>
];
</script>
<title><fmt:message key="alert.maptitle" /></title>
</head>
<body style="${style_bodycss}">
<%@include file="header.jsp" %>
<%@include file="menu.jsp" %>
<div id="main">
<div>
<div id="message" class="msgsection"></div>
</div>
<!-- div id="map-container" -->
<div id="map"><!-- /div -->
<div id="control-menu" class="control-menu">
<div class="control-item">
<div class="control-header">
<div class="control-title" style="display: none;"><fmt:message key="alert.queries.title" /></div>
<div class="control-item-icon fa fa-search fa-2x" title="<fmt:message key="alert.queries.title" />"></div>
</div><!-- end control-header -->
<div class="control-item-content" style="display: none;">
<fieldset>
<legend><fmt:message key="alert.dates" /></legend>
<input id="sortBy" type="hidden" name="sortBy" value="date"/>
<input id="sortAscending" type="hidden" name="sortAscending" value="false"/>
<p>
<select id="queryDate" style="margin-bottom:3px"></select>
</p>
<p class="map_date_picker">
<input type="text" id="queryDatePickerFrom" class="date-input">
<font class="date-text">&nbsp;&nbsp;&nbsp;<fmt:message key="alert.dateto"/>&nbsp;&nbsp;&nbsp;</font><input type="text" id="queryDatePickerTo" class="date-input">
</p>
</fieldset>
<fieldset>
<legend><fmt:message key="alert.queries.filter" /></legend>
<input id="queryFilterText" type="text" style="margin-bottom:3px"></input>
</fieldset>
<fieldset style="flex: 1 1 auto; overflow: auto;">
<legend><fmt:message key="alert.queries.select" /></legend>
<div id="query-list" class="folder-container">
</div>
</fieldset>
</div><!-- end control-item-content -->
</div><!-- end control-item -->
<div class="control-item">
<div class="control-header">
<div class="control-title"><fmt:message key="alert.filters.title" /></div>
<div class="control-item-icon fa fa-filter fa-2x" title="<fmt:message key="alert.filters.title" />"></div>
</div><!-- control-header -->
<div id="filter-control-content" class="control-item-content">
<form id="filter-form" name="filter-form" action="" onsubmit="return false;">
<fieldset>
<legend><fmt:message key="alert.dates" /></legend>
<input id="sortBy" type="hidden" name="sortBy" value="date"/>
<input id="sortAscending" type="hidden" name="sortAscending" value="false"/>
<p>
<select id='filterDate' class='updateChange' name="time_filter" style="margin-bottom:3px">
<option value=1><fmt:message key="alert.within1" /></option>
<option value=2><fmt:message key="alert.within2" /></option>
<option value=4><fmt:message key="alert.within4" /></option>
<option value=8><fmt:message key="alert.within8" /></option>
<option value=12><fmt:message key="alert.within12" /></option>
<option value=24><fmt:message key="alert.within24" /></option>
<option value=48><fmt:message key="alert.within48" /></option>
<option value=168><fmt:message key="alert.withinweek" /></option>
<option value=744><fmt:message key="alert.withinmonth" /></option>
<option value=-99><fmt:message key="alert.alldates" /></option>
<option value=-1><fmt:message key="alert.customdates" /></option>
</select>
</p>
<p class="map_date_picker">
<input type="text" id="datePickerFrom" class="date-input">
<font class="date-text">&nbsp;&nbsp;&nbsp;<fmt:message key="alert.dateto"/>&nbsp;&nbsp;&nbsp;</font><input type="text" id="datePickerTo" class="date-input">
</p>
</fieldset>
<fieldset>
<legend><fmt:message key="alert.filters.types" /></legend>
<c:forEach var="type" items="${alertTypes}" varStatus="count">
<div style="min-height: 25px;">
<input style="position: relative; vertical-align: middle; bottom: 1px; height:25px; margin:0px 0px 0px 4px; padding:0px;" class="filterType updateChange" name="${type.getUuid()}" value="${type.getUuid()}" type="checkbox">
<div style="float:left; position:relative; height:24px; width:20px;" class="awesome-marker-icon-${type.getMarkerColor()}-legend awesome-marker leaflet-zoom-animated" >
<i style="color:${type.getColor()}" class="fa fa-${type.getMarkerIcon()}">${type.getCustomIcon()}</i><br>
</div>
${type.getLabel()}
</input>
<br>
</div>
</c:forEach>
</fieldset>
<fieldset>
<legend><fmt:message key="alert.filters.status" /></legend>
<c:forEach var="s" items="${status}" varStatus="count">
<label><input class='filterStatus updateChange' value="${s[0]}" type="checkbox" checked/>${s[1]}</label><br>
</c:forEach>
</fieldset>
<fieldset>
<legend><fmt:message key="alert.filters.importance" /></legend>
<input class='filterImportance updateChange' type="checkbox" value=1 checked/><label><fmt:message key="alert.eventimportance1" /></label><br>
<label><input class='filterImportance updateChange' type="checkbox" value=2 checked/><fmt:message key="alert.eventimportance2" /></label><br>
<label><input class='filterImportance updateChange' type="checkbox" value=3 checked/><fmt:message key="alert.eventimportance3" /></label><br>
<label><input class='filterImportance updateChange' type="checkbox" value=4 checked/><fmt:message key="alert.eventimportance4" /></label><br>
<label><input class='filterImportance updateChange' type="checkbox" value=5 checked/><fmt:message key="alert.eventimportance5" /></label><br>
</fieldset>
<fieldset>
<legend><fmt:message key="alert.filters.ca" /></legend>
<c:forEach var="ca" items="${cas}" varStatus="count">
<input class='filterCa updateChange' name="${ca.getUuid()}" value="${ca.getUuid()}" type="checkbox">${ca.getLabel()}</input><br>
</c:forEach>
</fieldset>
<fieldset style="margin-bottom:4px;">
<legend><fmt:message key="alert.filters.text" /></legend>
<input id='filterText' class='updateChange' name="textFilter" type="text" style="margin-bottom:3px"></input>
</fieldset>
</form>
</div><!-- end control-item-content -->
</div><!-- end control-item -->
</div --><!-- control-menu -->
</div> <!-- map-container -->
<div style="flex: none; display:flex; flex-flow:row nowrap">
<div id="buttons" style="justify-content: flex-start;display:flex; flex-flow: row nowrap; padding:5px;">
<div><a style="text-decoration:none" href='javascript:refreshAlerts()'><div class="button mapbutton"><fmt:message key="alert.refresh" /></div></a></div>
<div><a style="text-decoration:none" href='javascript:buttonCreateAlert()'><div class="button mapbutton"><fmt:message key="alert.createalert" /></div></a> </div>
<div><a style="text-decoration:none" href='javascript:buttonManageAlerts()'><div class="button mapbutton"><fmt:message key="alert.managealerts" /></div></a></div>
<div><a style="text-decoration:none" href='javascript:buttonExportImage()'><div class="button mapbutton"><fmt:message key="alert.exportimage" /></div></a></div>
</div>
<div style="justify-content: flex-end;display:flex;flex-flow: column nowrap; flex-grow:100">
<div>
<div id="map-info-box" class="link_small">
<fmt:message key="alert.lastupdated"/>
</div>
<div id="numberofalerts" class="link_small" style="float:right">0</div>
<div class="link_small" style="float:right"><fmt:message key="alert.alertsshown" /></div>
</div>
</div>
</div>
</div>
<%@include file="footer.jsp" %>
<div id="createAlertDialog" style="display: none;" class="dialog">
<section id="tab2" class="">
<p>
<form id="newalertform" style="padding-left:10px">
<div id="error" class="errorsection" style="display: ${alerterror == null ? "none" : "block"}">${alerterror}</div>
<label class="top-spacer block"><fmt:message key="alert.calabel" /></label>
<select name="alert_ca" class="block formtext alert-select">
<c:forEach var="ca" items="${cas}" varStatus="count">
<option value="${ca.getUuid()}">${ca.getLabel()} </option>
</c:forEach>
</select>
<label class="top-spacer block"><fmt:message key="alert.typelabel" /></label>
<select name="alert_type" class="block formtext alert-select">
<c:forEach var="type" items="${alertTypes}" varStatus="count">
<option value="${type.getUuid()}"> ${type.getLabel()} </option>
</c:forEach>
</select>
<label class="top-spacer block"><fmt:message key="alert.eventimportancelabel" /></label>
<select name="level" class="block formtext alert-select">
<option value=1><fmt:message key="alert.eventimportance1" /></option>
<option value=2><fmt:message key="alert.eventimportance2" /></option>
<option value=3><fmt:message key="alert.eventimportance3" /></option>
<option value=4><fmt:message key="alert.eventimportance4" /></option>
<option value=5><fmt:message key="alert.eventimportance5" /></option>
</select>
<label class="top-spacer block"><fmt:message key="alert.longitudelabel" /></label>
<input id="long" type="text" name="long" class="formtext" style="width: 20em">
<label class="top-spacer block"><fmt:message key="alert.latitudelabel" /></label>
<input id="lat" type="text" name="lat" class="formtext" style="width: 20em">
<label class="top-spacer block"><fmt:message key="alert.descriptionlabel" /></label>
<textarea name="alert_description" rows="5" cols="45"></textarea>
<div class="block top-spacer" style="text-align:right">
<input class="button top-spacer" type="submit" value=" <fmt:message key="alert.submit" /> "/>
<input class="button" type="button" onClick="javascript:buttonCancelCreateAlert()" value="<fmt:message key="alert.cancel" />"/>
</div>
</form>
</p>
</section>
</div>
<div id="updateAlertDialog" style="display: none;" class="level2dialog">
<div class="dialog-title"><fmt:message key="alert.updatealert" /></div>
<div id="dialogerror" class="errorsection"></div>
<form id="updatealertform" name="updatealertform">
<div id="error" class="errorsection" style="display: ${alerterror == null ? "none" : "block"}">${alerterror}</div>
<label class="top-spacer block"><fmt:message key="alert.calabel" /></label>
<input type="hidden" name="uuid" value="" />
<input type="hidden" name="user_id" value="" />
<select name="update_alert_ca" class="block formtext alert-select" disabled>
<c:forEach var="ca" items="${cas}" varStatus="count">
<option value="${ca.getUuid()}">${ca.getLabel()} </option>
</c:forEach>
</select>
<label class="top-spacer block"><fmt:message key="alert.typelabel" /></label>
<select name="update_alert_type" class="block formtext alert-select">
<c:forEach var="type" items="${alertTypes}" varStatus="count">
<option value="${type.getUuid()}"> ${type.getLabel()} </option>
</c:forEach>
</select>
<label class="top-spacer block"><fmt:message key="alert.eventimportancelabel" /></label>
<select name="update_level" class="block formtext alert-select">
<option value=1><fmt:message key="alert.alertlevel1"/></option>
<option value=2><fmt:message key="alert.alertlevel2"/></option>
<option value=3><fmt:message key="alert.alertlevel3"/></option>
<option value=4><fmt:message key="alert.alertlevel4"/></option>
<option value=5><fmt:message key="alert.alertlevel5"/></option>
</select>
<label class="top-spacer block"><fmt:message key="alert.statuslabel" /></label>
<select name="update_status" class="block formtext alert-select">
<c:forEach var="s" items="${status}" varStatus="count">
<option value="${s[0]}">${s[1]}</option>
</c:forEach>
</select>
<label class="top-spacer block "><fmt:message key="alert.longitudelabel" />
</label><input id="long" type="text" name="update_long" class="formtext" style="width: 20em">
<label class="top-spacer block "><fmt:message key="alert.latitudelabel" /></label>
<input id="lat" type="text" name="update_lat" class="formtext" style="width: 20em">
<label class="top-spacer block"><fmt:message key="alert.track" /></label>
<input size=50 id="track" type="text" name="update_track" class="formtext" style="width: 20em">
<label class="top-spacer block"><fmt:message key="alert.descriptionlabel" /></label>
<textarea name="update_alert_description" rows="5" cols="45"></textarea>
<div class="block top-spacer" style="text-align:right">
<input class="button top-spacer" type="submit" value=" <fmt:message key="alert.updatealert" /> "/>
<input class="button" type="button" id="cancel" value="<fmt:message key="alert.cancel" />" />
</div>
</form>
</div>
<div id="manageAlertsDialog" style="display: none;width:80%" class="dialog">
<section id="tab3" class="">
<div id="alertTableMessage" class="msgsection"></div>
<div>
<table id="alerttable" style="width:100%">
<tr class="table-row smart-table-header"><th><a onclick="sort('typeUuid')" href="#"><fmt:message key="alert.type" /></a></th><th><a onclick="sort('ca.label')" href="#"><fmt:message key="query.conservationarea" /></a></th><th><a onclick="sort('date')" href="#"><fmt:message key="alert.date" /></a></th><th><a onclick="sort('description')" href="#"><fmt:message key="alert.description" /></a></th><th><a onclick="sort('level')" href="#"><fmt:message key="alert.eventimportance" /></a></th><th><a onclick="sort('status')" href="#"><fmt:message key="alert.status" /></a></th><th><a onclick="sort('x')" href="#"><fmt:message key="alert.location" /></a></th><th><fmt:message key="actions" /></th></tr>
</table>
</div>
</section>
</div>
</body>
</html>

View File

@@ -0,0 +1,204 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%@include file="includes.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/table.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/infoerror.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/ca.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/dialog.js"></script>
<title><fmt:message key="ca.pagetitle"/></title>
</head>
<body style="${style_bodycss}">
<%@include file="header.jsp" %>
<%@include file="menu.jsp" %>
<div id="main">
<div class="tabheader pageheader">
<a id="calist" class="tab "><fmt:message key="ca.pageheader"/></a>
<a id="dmmanager" class="tab "><fmt:message key="ca.dmpageheader"/></a>
</div>
<div><div id="message" class="msgsection"></div></div>
<div id="calist_body" class="tabbody" style="flex: 1 1 auto; overflow: auto;">
<p class="infomessage"><fmt:message key="ca.pageinfo"/></p>
<div class="top-spacer" >
<div class="catable table-cell smart-table">
<div class="table-row smart-table-header">
<div class="table-cell smart-table-cell"><fmt:message key="ca.labelheader"/></div>
<div class="table-cell smart-table-cell"><fmt:message key="ca.statusheader"/></div>
<div class="table-cell smart-table-cell"></div>
<div class="table-cell smart-table-cell"></div>
<div class="table-cell smart-table-cell"></div>
</div>
<c:forEach var="ca" items="${cas}" varStatus="count">
<div data-cauuid ="${ca.getUuid()}" class="carow table-row ${count.index % 2 == 1 ? 'smart-table-rowon' : 'smart-table-rowoff'}">
<div class="table-cell smart-table-cell">${ca.getLabel()}</div>
<div class="table-cell smart-table-cell">${ca.getStatus()}</div>
<div class="table-cell smart-table-cell"><a href="" class="info-icon" id="infoca" data-cauuid = "${ca.getUuid()}" title="<fmt:message key="ca.details"/>"></a></div>
<div class="table-cell smart-table-cell ">
<c:if test="${ca.getStatus() == 'DATA'}">
<a href="" data-cauuid="${ca.getUuid()}" title="<fmt:message key="ca.downloadtooltip"/>" class="downloadca download-icon"></a>
</c:if>
</div>
<div class="table-cell smart-table-cell "><a href="" data-status = "${ca.getStatus()}" data-cauuid = "${ca.getUuid()}" data-version = "${ca.getVersion()}" data-label="${ca.getLabel()}" title="<fmt:message key="ca.deletetooltip"/>" class="deleteca delete-icon"></a></div>
</div>
</c:forEach>
</div>
</div>
<c:if test="${canadd}">
<div><button id="btnNewCa" class="block button top-spacer"><fmt:message key="ca.createnew"/></button></div>
</c:if>
</div>
<div id="dmmanager_body" class="tabbody" style="flex: 1 1 auto; overflow: auto;">
<div class="top-spacer" style="" >
<label class="block top-spacer"><fmt:message key="ca.dmfilefield"/></label>
<input id="dmfile" type="file" name="file" class="formtext block" />
<label class="block top-spacer"><fmt:message key="ca.dmcafield"/></label>
<!-- <div class = warn-icon style="float:left"></div>
<label class="small" ><fmt:message key="ca.dmcawarn"/></label>-->
<div id="dm_calist" style="border:1px solid #BBC6F5; height: 150px; overflow-y:scroll">
<c:forEach var="ca" items="${cas}" varStatus="count">
<label class="block"><input type="checkbox" value="${ca.getUuid()}"/>${ca.getLabel()}</label>
</c:forEach>
</div>
<div><a href="" id="selectAllDmCa"><fmt:message key="ca.dmcaall"/></a>&nbsp;&nbsp;&nbsp;<a href="" id="selectNoneDmCa"><fmt:message key="ca.dmcanone"/></a></div>
<div><button id="btnMergeDm" class="block button top-spacer"><fmt:message key="ca.dmmergebtn"/></button></div>
</div>
</div>
</div>
<%@include file="footer.jsp" %>
<div id="deleteDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="ca.deletecatitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<form id="deleteform" onsubmit="return deleteca();" >
<input type="hidden" name="cauuid"/>
<input type="hidden" name="label"/>
<input type="hidden" name="version"/>
<div id="confirmtype">
<p><fmt:message key="ca.deleteconfirm"/></p>
<input type="radio" name="caoption" value="desktop" checked/><fmt:message key="ca.deletedesktop"/><br>
<input type="radio" name="caoption" value="all"/><fmt:message key="ca.deleteall"/><br><br>
</div>
<p><fmt:message key="ca.userpassword"/></p>
<label class="block"><fmt:message key="ca.userlabel"/></label>
<input type="text" name="username" class="formtext block" />
<div class="block top-spacer"><fmt:message key="ca.passwordlabel"/></div>
<input type="password" name="password" class="formtext block" />
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="ca.deletebutton"/>" />
<input class="button" type="button" value="<fmt:message key="ca.cancelbutton"/>" onclick="closeDialog('deleteDialog')" />
</div>
</form>
</div>
<div id="caInfoDialog" style="display: none; width:360px" class="dialog">
<div class="dialog-title"><fmt:message key="ca.cadetailstitle"/></div>
<div class="smart-table">
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.label"/>:</div>
<div id="infolabel" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.description"/>:</div>
<div id="infodescription" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.designation"/>:</div>
<div id="infodesignation" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.uuidheader"/>:</div>
<div id="infouuid" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.statusheader"/>:</div>
<div id="infostatus" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.versionheader"/>:</div>
<div id="infoversion" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.revision"/>:</div>
<div id="inforevision" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.organization"/>:</div>
<div id="infoorganization" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.pointofcontact"/>:</div>
<div id="infopointofcontact" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.location"/>:</div>
<div id="infolocation" class="table-cell smart-table-cell"></div>
</div>
<div class="table-row">
<div class="table-cell smart-table-cell"><fmt:message key="ca.owner"/>:</div>
<div id="infoowner" class="table-cell smart-table-cell"></div>
</div>
<div class="block top-spacer" style="text-align:right">
<input class="button" type="button" value="<fmt:message key="ca.cancelbutton"/>" onclick="closeDialog('caInfoDialog'); return false;" />
</div>
</div>
</div>
<div id="downloadDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="ca.downloadtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<p id="downloadinfomsg"><fmt:message key="ca.downloadinfo"/></p>
<div id="statusurl" style="font-size:0.8em"></div>
<div class="block top-spacer" style="text-align:right">
<input class="button" type="button" value="<fmt:message key="ca.cancelbutton"/>" onclick="return cancelCaDownload();" />
</div>
</div>
<div id="newDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="ca.createtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<form id="createform" onsubmit="return createca();" >
<div id="confirmtype">
<p class="top-spacer"><fmt:message key="ca.createinfo"/></p>
<p class="top-spacer"><fmt:message key="ca.createmessage1"/></p>
<p class="top-spacer"><fmt:message key="ca.createmessage2"/></p>
</div>
<label class="block top-spacer"><fmt:message key="ca.createlabel"/></label>
<input type="text" name="calabel" class="formtext block" />
<label class="block top-spacer"><fmt:message key="ca.createuuid"/></label>
<input type="text" name="newcauuid" class="formtext block" />
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="ca.createbutton"/>" />
<input class="button" type="button" value="<fmt:message key="ca.cancelbutton"/>" onclick="closeDialog('newDialog')" />
</div>
</form>
</div>
</body>
</html>

View File

@@ -0,0 +1,260 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%@include file="includes.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/dialog.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/table.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/infoerror.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/userssharedfunctions.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/causers.js"></script>
<title><fmt:message key="users.pagetitle"/></title>
</head>
<body style="${style_bodycss}">
<%@include file="header.jsp" %>
<%@include file="menu.jsp" %>
<div id="main">
<div class="tabheader pageheader">
<a id="users" class="tab "><fmt:message key="users.usertitle"/></a>
<a id="desktopusers" class="tab "><fmt:message key="users.desktoptitle"/></a>
</div>
<div>
<div id="message" class="msgsection"></div>
</div>
<!-- user tab section -->
<div id="users_body" class="tabbody" style="flex: 1 1 auto; overflow: auto;">
<p class="infomessage"><fmt:message key="users.usermessage"/></p>
<div>
<button class="block button top-spacer" id="btnNewUser"><fmt:message key="users.createnewbutton"/></button>
</div>
<div class="top-spacer">
<div id="usertable" class="user-tables-float table-cell smart-table">
<div class="table-row smart-table-header">
<div class="table-cell smart-table-cell"><fmt:message key="users.userlabel"/></div>
<div class="table-cell smart-table-cell"><fmt:message key="users.emaillabel"/></div>
</div>
</div>
<div id="inactiveusertable" class=" user-tables-float user-tables-clear table-cell smart-table">
<div class="table-row smart-table-header">
<div class="table-cell smart-table-cell"><fmt:message key="users.disableduserlabel"/></div>
<div class="table-cell smart-table-cell"><fmt:message key="users.emaillabel"/></div>
</div>
</div>
<div id="userdetails" style="width:100%; min-width:250px;" class="table-cell border-section">
<div class="pageheader"><fmt:message key="users.userdetails"/></div>
<div id="userinfo">
<div id="userinfodefaults"></div>
<div id="userinfobuttons"class="tabheader" style="background-color:#EFEFEF; margin-top:25px;">
<fmt:message key="users.actionstab"/>
</div>
<div id="actiontab_body" class="tabbody">
<div class="add_select_section">
<select id="actionKey" class="select-limit"><option><fmt:message key="users.loading"/></option></select>
<select id="actionResourceKey" class="select-limit"><option><fmt:message key="users.loading"/></option></select>
<button id="addAction" class="block button " style = "padding: 0px; display: inline;"><fmt:message key="users.addactionbutton"/></button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Desktop Users tab section -->
<div id="desktopusers_body" class="tabbody" style="flex: 1 1 auto; overflow: auto;">
<p class="infomessage"><fmt:message key="users.desktopmessage"/></p>
<div>
<div id="desktopmessage" class="msgsection"></div>
<div id="desktoperror" class="errorsection"></div>
<button class="block button top-spacer" id="btnNewDesktopUser" style="display:inline"><fmt:message key="users.newdesktopuserbutton"/></button>
<button class="block button top-spacer " id="btnRefreshDesktop" style="display:inline"><fmt:message key="users.refreshbutton"/></button>
</div>
<div class="top-spacer">
<div id="deskptopuserstable" class="table-cell smart-table" style="width:50%">
<div class="table-row smart-table-header">
<div class="table-cell smart-table-cell"><fmt:message key="users.desktopuserlabel"/></div>
<div class="table-cell smart-table-cell"><fmt:message key="users.desktopuserCAlabel"/></div>
<div class="table-cell smart-table-cell"></div>
<div class="table-cell smart-table-cell"></div>
</div>
</div>
<div id="desktopuserdetails" style="width:100%;" class="table-cell border-section">
<div class="pageheader"><fmt:message key="users.destkopuserdetails"/></div>
<div id="desktopdetailinner">
<div id="desktopinfodefaults">
</div>
<div class="desktoppermissions">
</div>
<div class="desktoppassword">
</div>
</div>
</div>
</div>
</div>
</div>
<%@include file="footer.jsp" %>
<div id="editUserDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="users.updatedialogtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<div id="msg"></div>
<form id="edituserform" >
<input type="hidden" name="edit_username_orig" />
<label class="block top-spacer"><fmt:message key="users.updateusernamelabel"/></label>
<input type="text" name="edit_username" class="formtext block" />
<label class="block top-spacer"><fmt:message key="users.updateuseremaillabel"/></label>
<input type="text" name="edit_email" class="formtext block" />
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="users.updateuserbutton"/>" />
<input class="button" type="button" id="canceledituser" value="<fmt:message key="users.cancel"/>" />
</div>
</form>
</div>
<div id="newUserDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="users.newdialogtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<div><fmt:message key="users.newmessage"/></div>
<form id="newuserform" >
<label class="block top-spacer"><fmt:message key="users.newusernamelabel"/></label>
<input type="text" name="username" class="formtext block" />
<label class="block top-spacer"><fmt:message key="users.newuseremaillabel"/></label>
<input type="text" name="email" class="formtext block" />
<label class="block top-spacer"><fmt:message key="users.newpass1"/></label>
<input type="password" name="password1" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.newpass2"/></label>
<input type="password" name="password2" class="formtext table-row"/>
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="users.newuserbutton"/>" />
<input class="button" type="button" id="cancelnewuser" value="<fmt:message key="users.cancel"/>" />
</div>
</form>
</div>
<div id="newDesktopUserDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="users.newdialogtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<div><fmt:message key="users.newdesktopmessage"/></div>
<form id="newdesktopuserform" >
<label class="block top-spacer"><fmt:message key="users.newusernamelabel"/></label>
<input type="text" name="dusername" class="formtext block" />
<label class="block top-spacer"><fmt:message key="users.calabel"/></label>
<select name="dca" multiple></select>
<label class="block top-spacer"><fmt:message key="users.newpass1"/></label>
<input type="password" name="dpassword1" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.newpass2"/></label>
<input type="password" name="dpassword2" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.idlabel"/></label>
<input type="text" name="id" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.givenName"/></label>
<input type="text" name="givenName" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.familyName"/></label>
<input type="text" name="familyName" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.userLevel"/></label>
<select name="userLevel">
<option value="ADMIN"><fmt:message key="users.ADMIN"/></option>
<option value="DATA_ENTRY"><fmt:message key="users.DATA_ENTRY"/></option>
<option value="ANALYST"><fmt:message key="users.ANALYST"/></option>
<option value="MANAGER"><fmt:message key="users.MANAGER"/></option>
</select>
<label class="block top-spacer"><fmt:message key="users.gender"/></label>
<select name="gender">
<option value="M"><fmt:message key="users.genderm"/></option>
<option value="F"><fmt:message key="users.genderf"/></option>
</select>
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="users.newuserbutton"/>" />
<input class="button" type="button" id="canceldesktopnewuser" value="<fmt:message key="users.cancel"/>" />
</div>
</form>
</div>
<div id="editDesktopUserDialog" style="display: none;" class="dialog">
<div class="dialog-title"><fmt:message key="users.newdialogtitle"/></div>
<div id="dialogerror" class="errorsection"></div>
<div><fmt:message key="users.neweditmessage"/></div>
<form id="editdesktopuserform" >
<label class="block top-spacer"><fmt:message key="users.newusernamelabel"/></label>
<input type="text" name="edit_dusername" class="formtext block" />
<input type="hidden" name="existing_username"/>
<label class="block top-spacer"><fmt:message key="users.calabel"/></label>
<input type="text" disabled name="edit_ca_label">
<input type="hidden" name="edit_dca">
<select id="edit_multi_dca" name="edit_multi_dca" multiple disabled style="display:none">
</select>
<label class="block top-spacer"><fmt:message key="users.newpass1"/></label>
<input type="password" name="edit_dpassword1" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.newpass2"/></label>
<input type="password" name="edit_dpassword2" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.idlabel"/></label>
<input type="text" name="edit_id" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.givenName"/></label>
<input type="text" name="edit_givenName" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.familyName"/></label>
<input type="text" name="edit_familyName" class="formtext table-row"/>
<label class="block top-spacer"><fmt:message key="users.userLevel"/></label>
<select name="edit_userLevel">
<option value="ADMIN"><fmt:message key="users.ADMIN"/></option>
<option value="DATA_ENTRY"><fmt:message key="users.DATA_ENTRY"/></option>
<option value="ANALYST"><fmt:message key="users.ANALYST"/></option>
<option value="MANAGER"><fmt:message key="users.MANAGER"/></option>
</select>
<label class="block top-spacer"><fmt:message key="users.gender"/></label>
<select name="edit_gender">
<option value="M"><fmt:message key="users.genderm"/></option>
<option value="F"><fmt:message key="users.genderf"/></option>
</select>
<div class="block top-spacer" style="text-align:right">
<input class="button" type="submit" value="<fmt:message key="users.edituserbutton"/>" />
<input class="button" type="button" id="canceldesktopedituser" value="<fmt:message key="users.cancel"/>" />
</div>
</form>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More