initial load of EDIS 1.0
This commit is contained in:
parent
b6d1ce699b
commit
4825b8831e
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-parent</artifactId>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<relativePath>../tracking-parent</relativePath>
|
||||
</parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-application</artifactId>
|
||||
<packaging>ear</packaging>
|
||||
<name>EDIS Tracking Application Bundle</name>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<description>Emergency Department Integration Software - Tracking Application Bundle</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-main</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-bigboard</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-help</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-ear-plugin</artifactId>
|
||||
<configuration>
|
||||
<!-- <unpackTypes>war</unpackTypes> -->
|
||||
<modules>
|
||||
<webModule>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-main</artifactId>
|
||||
<contextRoot>${edis.tracking.trackingContextRoot}</contextRoot>
|
||||
</webModule>
|
||||
<webModule>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-bigboard</artifactId>
|
||||
<contextRoot>${edis.tracking.boardContextRoot}</contextRoot>
|
||||
</webModule>
|
||||
<webModule>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-help</artifactId>
|
||||
<contextRoot>${edis.tracking.helpContextRoot}</contextRoot>
|
||||
</webModule>
|
||||
</modules>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE application PUBLIC
|
||||
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
|
||||
"http://java.sun.com/dtd/application_1_3.dtd">
|
||||
<application>
|
||||
<display-name>edis-tracking-application</display-name>
|
||||
<description>Emergency Department Integration Software - Tracking Application Bundle</description>
|
||||
<module>
|
||||
<web>
|
||||
<web-uri>main.war</web-uri>
|
||||
<context-root>/main</context-root>
|
||||
</web>
|
||||
</module>
|
||||
<module>
|
||||
<web>
|
||||
<web-uri>bigboard.war</web-uri>
|
||||
<context-root>/bigboard</context-root>
|
||||
</web>
|
||||
</module>
|
||||
<module>
|
||||
<web>
|
||||
<web-uri>help.war</web-uri>
|
||||
<context-root>/help</context-root>
|
||||
</web>
|
||||
</module>
|
||||
</application>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<psf version="2.0">
|
||||
<provider id="com.perforce.team.core.PerforceTeamProvider">
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-parent;PATH=//reeng/main/ed/tracking-parent"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-ui-core;PATH=//reeng/main/ed/tracking-ui-core"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-ui-client;PATH=//reeng/main/ed/tracking-ui-client"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-ui-bigboard;PATH=//reeng/main/ed/tracking-ui-bigboard"/>
|
||||
</provider>
|
||||
</psf>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<psf version="2.0">
|
||||
<provider id="com.perforce.team.core.PerforceTeamProvider">
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-weblogic-ssl;PATH=//reeng/main/ed/tracking-weblogic-ssl"/>
|
||||
</provider>
|
||||
</psf>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<psf version="2.0">
|
||||
<provider id="com.perforce.team.core.PerforceTeamProvider">
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-parent;PATH=//reeng/main/ed/tracking-parent"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-server-core;PATH=//reeng/main/ed/tracking-server-core"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-server-proxy;PATH=//reeng/main/ed/tracking-server-proxy"/>
|
||||
<project reference="PORT=vhaislprf2.vha.med.va.gov:1666;NAME=tracking-server-bigboard;PATH=//reeng/main/ed/tracking-server-bigboard"/>
|
||||
</provider>
|
||||
</psf>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<mapAttribute key="org.eclipse.debug.core.environmentVariables">
|
||||
<mapEntry key="MAVEN_HOME" value="/Application/Development/maven-2.0.8"/>
|
||||
</mapAttribute>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${mvn}"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="clean package"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<mapAttribute key="org.eclipse.debug.core.environmentVariables">
|
||||
<mapEntry key="MAVEN_HOME" value="/Application/Development/maven-2.0.8"/>
|
||||
</mapAttribute>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${mvn}"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="clean"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,283 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-parent</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>EDIS Tracking Application</name>
|
||||
<description>Emergency Department Integration Software - Tracking Application</description>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<modules>
|
||||
<module>../tracking-ui-core</module>
|
||||
<module>../tracking-ui-main</module>
|
||||
<module>../tracking-ui-bigboard</module>
|
||||
<module>../tracking-server-core</module>
|
||||
<module>../tracking-server-main</module>
|
||||
<module>../tracking-server-bigboard</module>
|
||||
<module>../tracking-help</module>
|
||||
<module>../tracking-weblogic-ssl</module>
|
||||
<module>../tracking-ear</module>
|
||||
</modules>
|
||||
<organization>
|
||||
<name>Department of Veterans Affairs</name>
|
||||
<url>http://www.va.gov/</url>
|
||||
</organization>
|
||||
<prerequisites>
|
||||
<maven>2.0.8</maven>
|
||||
</prerequisites>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>Public Domain</name>
|
||||
<url>http://creativecommons.org/licenses/publicdomain/</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<scm>
|
||||
<connection>scm:perforce://reeng/main/ed/tracking-parent</connection>
|
||||
<developerConnection>scm:perforce://reeng/main/ed/tracking-parent</developerConnection>
|
||||
</scm>
|
||||
<!--issueManagement>
|
||||
<system></system>
|
||||
<url></url>
|
||||
</issueManagement-->
|
||||
<!-- <ciManagement>
|
||||
<system>luntbuild</system>
|
||||
<url>http://vhaislcfgm2.vha.med.va.gov:8080/luntbuild</url>
|
||||
</ciManagement> -->
|
||||
<developers>
|
||||
<developer>
|
||||
<id>vhaislmeldruk</id>
|
||||
<name>Kevin Meldrum</name>
|
||||
<email>kevin.meldrum@va.gov</email>
|
||||
<organization>Department of Veterans Affairs</organization>
|
||||
<timezone>-7</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<id>vhaislgearys</id>
|
||||
<name>Sandi Geary</name>
|
||||
<email>sandra.geary@va.gov</email>
|
||||
<organization>SAIC</organization>
|
||||
<timezone>-7</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Melanie Buechler</name>
|
||||
<email>melanie.buechler@va.gov</email>
|
||||
<organization>Department of Veterans Affairs</organization>
|
||||
<timezone>-6</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<id>vhaislblazs</id>
|
||||
<name>Solomon Blaz</name>
|
||||
<email>solomon.blaz@va.gov</email>
|
||||
<organization>SAIC</organization>
|
||||
<timezone>-7</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<id>vhaisldhars</id>
|
||||
<name>Sanjay Dhar</name>
|
||||
<email>sanjay.dhar@va.gov</email>
|
||||
<organization>SAIC</organization>
|
||||
<timezone>-7</timezone>
|
||||
</developer>
|
||||
</developers>
|
||||
<contributors>
|
||||
<contributor>
|
||||
<name>Gary Tyndall</name>
|
||||
<email>gary.tyndall@va.gov</email>
|
||||
<organization>Department of Veterans Affairs</organization>
|
||||
<timezone>-5</timezone>
|
||||
</contributor>
|
||||
<contributor>
|
||||
<name>Robert Stults</name>
|
||||
<email>robert.stults2@va.gov</email>
|
||||
<organization>Shoulders Corp</organization>
|
||||
<organizationUrl>http://www.shoulderscorp.com/</organizationUrl>
|
||||
<timezone>-5</timezone>
|
||||
</contributor>
|
||||
<contributor>
|
||||
<name>Cheryl Walton</name>
|
||||
<email>cheryl.walton2@va.gov</email>
|
||||
<organization>SAIC</organization>
|
||||
<timezone>-7</timezone>
|
||||
</contributor>
|
||||
</contributors>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>central</id>
|
||||
<url>http://repo1.maven.org/maven2</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>bob-repository</id>
|
||||
<name>Bob's Maven Repository</name>
|
||||
<url>http://vhaislcfgm2.vha.med.va.gov/maven-repository</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>Codehaus Snapshots</id>
|
||||
<url>http://snapshots.repository.codehaus.org/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>flex-mojos-repository</id>
|
||||
<url>http://repository.sonatype.org/content/groups/flexgroup/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>Codehaus Snapshots</id>
|
||||
<url>http://snapshots.repository.codehaus.org/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>flex-mojos-repository</id>
|
||||
<url>http://repository.sonatype.org/content/groups/flexgroup/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>bob-repository</id>
|
||||
<name>Bob's Maven Repository</name>
|
||||
<url>scp://vhaislcfgm2.vha.med.va.gov:/var/www/html/maven-repository</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.4</source>
|
||||
<target>1.4</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>true</downloadSources>
|
||||
<downloadJavadocs>true</downloadJavadocs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-idea-plugin</artifactId>
|
||||
<configuration>
|
||||
<downloadSources>true</downloadSources>
|
||||
<downloadJavadocs>true</downloadJavadocs>
|
||||
<dependenciesAsLibraries>true</dependenciesAsLibraries>
|
||||
<useFullNames>false</useFullNames>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>info.flex-mojos</groupId>
|
||||
<artifactId>flex-compiler-mojo</artifactId>
|
||||
<version>${flex.mojos.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<accessible>${flex.compiler.accessible}</accessible>
|
||||
<headlessServer>${flex.compiler.headless-server}</headlessServer>
|
||||
<locales>
|
||||
<locale>en_US</locale>
|
||||
</locales>
|
||||
<debug>${flex.compiler.debug}</debug>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.adobe.flex</groupId>
|
||||
<artifactId>compiler</artifactId>
|
||||
<version>${flex.version}</version>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
<reporting>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<reportSets>
|
||||
<reportSet>
|
||||
<reports>
|
||||
<report>index</report>
|
||||
<report>summary</report>
|
||||
<report>dependency-convergence</report>
|
||||
<report>project-team</report>
|
||||
<report>cim</report>
|
||||
<report>scm</report>
|
||||
<report>license</report>
|
||||
</reports>
|
||||
</reportSet>
|
||||
</reportSets>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-changes-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-checkstyle-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>cobertura-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
<properties>
|
||||
<!-- versions of dependencies -->
|
||||
<spring.version>2.0.8</spring.version>
|
||||
<vha.stddata.version>15.0</vha.stddata.version>
|
||||
<spring.security.version>2.0.3</spring.security.version>
|
||||
<slf4j.version>1.5.2</slf4j.version>
|
||||
<easymock.version>2.4</easymock.version>
|
||||
|
||||
<flex.version>3.1.0.2710</flex.version>
|
||||
<flexunit.version>0.85</flexunit.version>
|
||||
|
||||
<!-- flex compiler settings -->
|
||||
<flex.mojos.version>2.0.3</flex.mojos.version>
|
||||
<flex.compiler.accessible>true</flex.compiler.accessible>
|
||||
<flex.compiler.headless-server>true</flex.compiler.headless-server>
|
||||
<flex.compiler.debug>true</flex.compiler.debug>
|
||||
<skipTests>${java.awt.headless}</skipTests>
|
||||
|
||||
<!-- EDIS project settings -->
|
||||
<edis.tracking.trackingContextRoot>/main</edis.tracking.trackingContextRoot>
|
||||
<edis.tracking.boardContextRoot>/bigboard</edis.tracking.boardContextRoot>
|
||||
<edis.tracking.helpContextRoot>/help</edis.tracking.helpContextRoot>
|
||||
</properties>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>dev</id>
|
||||
<properties>
|
||||
<flex.compiler.debug>true</flex.compiler.debug>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
|
@ -0,0 +1,211 @@
|
|||
<?xml version="1.0"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-parent</artifactId>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<relativePath>../tracking-parent</relativePath>
|
||||
</parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-bigboard</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>EDIS Tracking Server Big Board</name>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<description>Emergency Department Integration Software - Tracking Server Big Board</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-ui-bigboard</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>swf</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>taglibs</groupId>
|
||||
<artifactId>standard</artifactId>
|
||||
<version>1.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>${edis.tracking.boardContextRoot}</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>src/main/webapp/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>weblogic.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${edis.tracking.build.swf.directory}</directory>
|
||||
<targetPath>/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.swf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<replaceregexp byline="true">
|
||||
<regexp pattern="app.buildtime=BUILD_TIME_PLACEHOLDER"/>
|
||||
<substitution expression="app.buildtime=${timestamp}"/>
|
||||
<fileset dir="target" includes="**/*.properties"/>
|
||||
</replaceregexp>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant-nodeps</artifactId>
|
||||
<version>1.6.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>include-latest-client-version</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<includeTypes>swf</includeTypes>
|
||||
<outputDirectory>${edis.tracking.build.swf.directory}</outputDirectory>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
<excludeTransitive>true</excludeTransitive>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>include-backwards-compatible-client-versions</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>edis-tracking-ui-bigboard</artifactId>
|
||||
<version>1.0-T28</version>
|
||||
<type>swf</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${edis.tracking.build.swf.directory}</outputDirectory>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>dev</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>src/main/webapp-dev/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>web.xml</include>
|
||||
</includes>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/webapp/WEB-INF</directory>
|
||||
<excludes>
|
||||
<exclude>web.xml</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/webapp-dev</directory>
|
||||
<includes>
|
||||
<include>BigBoard.jsp</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/webapp</directory>
|
||||
<excludes>
|
||||
<exclude>BigBoard.jsp</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/webapp/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>weblogic.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${edis.tracking.build.swf.directory}</directory>
|
||||
<targetPath>/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.swf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
<properties>
|
||||
<edis.tracking.build.swf.directory>${project.build.directory}/swf</edis.tracking.build.swf.directory>
|
||||
</properties>
|
||||
</project>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
<bean id="bigBoardDao" class="gov.va.med.edp.dao.rpc.VistaLinkBigBoardDao"/>
|
||||
<bean id="serverPackageVersionDao" class="gov.va.med.edp.dao.rpc.VistaLinkServerPackageVersionDao"/>
|
||||
<bean id="siteCodeDao" class="gov.va.med.edp.dao.jdbc.JdbcSiteCodeLookUpDao">
|
||||
<property name="dataSource" ref="dataSource"/>
|
||||
</bean>
|
||||
|
||||
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
|
||||
<property name="jndiName"><value>jdbc/gov.va.med.term.access.Database</value></property>
|
||||
<property name="resourceRef"><value>false</value></property>
|
||||
</bean>
|
||||
</beans>
|
|
@ -0,0 +1,7 @@
|
|||
app.name=Emergency Department Integration Software - Tracking Board
|
||||
app.version=${project.version}
|
||||
app.buildtime=BUILD_TIME_PLACEHOLDER
|
||||
copyright.year=2008
|
||||
copyright.organization.url=http://www.va.gov
|
||||
copyright.organization=Department of Veterans Affairs
|
||||
help.contextRoot=${edis.tracking.helpContextRoot}
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE web-app PUBLIC
|
||||
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
|
||||
"http://java.sun.com/dtd/web-app_2_3.dtd" >
|
||||
<web-app>
|
||||
<display-name>Emergency Department Tracking Board Server Proxy Application</display-name>
|
||||
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
||||
<param-value>strings</param-value>
|
||||
</context-param>
|
||||
<!-- Fallback locale if no bundles found for browser's preferred locale -->
|
||||
<!-- Force a single locale using param-name 'javax.servlet.jsp.jstl.fmt.locale' -->
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
|
||||
<param-value>en</param-value>
|
||||
</context-param>
|
||||
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
classpath*:/applicationContext-dao.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
<filter>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<filter-class>gov.va.med.edp.web.servlet.filter.ResponseHeaderFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>Cache-Control</param-name>
|
||||
<param-value>cache,must-revalidate</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>Pragma</param-name>
|
||||
<param-value>public</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>*.swf</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>/bigboard.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>/bigboard.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.xml</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.csv</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<session-config>
|
||||
<session-timeout>5</session-timeout>
|
||||
</session-config>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>/bigboard.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<error-page>
|
||||
<error-code>500</error-code>
|
||||
<location>/error500.jsp</location>
|
||||
</error-page>
|
||||
|
||||
</web-app>
|
|
@ -0,0 +1,149 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<meta http-equiv="Expires" content="-1" />
|
||||
<title><fmt:message key="app.name"/></title>
|
||||
<script src="AC_OETags.js" language="javascript"></script>
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
overflow:hidden;
|
||||
}
|
||||
</style>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// -----------------------------------------------------------------------------
|
||||
// Globals
|
||||
// Major version of Flash required
|
||||
var requiredMajorVersion = 9;
|
||||
// Minor version of Flash required
|
||||
var requiredMinorVersion = 0;
|
||||
// Minor version of Flash required
|
||||
var requiredRevision = 28;
|
||||
// -----------------------------------------------------------------------------
|
||||
// -->
|
||||
</script>
|
||||
|
||||
<!-- BEGIN call Flex function on browser close -->
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
function shutdownHook()
|
||||
{
|
||||
var fxControl = document.BigBoard || window.BigBoard;
|
||||
var warning = fxControl.getUnsavedDataWarning();
|
||||
if (warning != '')
|
||||
return warning;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
window.onbeforeunload = shutdownHook;
|
||||
-->
|
||||
</script>
|
||||
<!-- END call Flex function on browser close -->
|
||||
|
||||
</head>
|
||||
|
||||
<body scroll="no">
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
|
||||
var hasProductInstall = DetectFlashVer(6, 0, 65);
|
||||
|
||||
// Version check based upon the values defined in globals
|
||||
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
||||
|
||||
|
||||
// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
|
||||
if ( hasProductInstall && !hasRequestedVersion ) {
|
||||
// MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
|
||||
// This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
|
||||
// DO NOT MODIFY THE FOLLOWING FOUR LINES
|
||||
// Location visited after installation is complete if installation is required
|
||||
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
|
||||
var MMredirectURL = window.location;
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
var MMdoctitle = document.title;
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "playerProductInstall",
|
||||
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else if (hasRequestedVersion) {
|
||||
// if we've detected an acceptable version
|
||||
// embed the Flash Content SWF when all tests are passed
|
||||
|
||||
// Cache Server Page namespace should be set here (don't forget the ampersand)
|
||||
//var edpVars = "cspNmsp=CPM&cspDemo=500^10vehu^vehu10&";
|
||||
//var edpVars = "cspServ=vhaislcfgm2.vha.med.va.gov/csp/CPM&cspToken=20012^662&";
|
||||
//var edpVars = "vljServ=10.5.17.153:7001&";
|
||||
//var edpVars = "vljServ=10.5.17.225:7001&";
|
||||
//var edpVars = "vljServ=localhost:7001&";
|
||||
//SEE LINE BELOW TO LAUNCH BIG BOARD FROM FLEX BUILDER AND PASSING IN A SITE ID
|
||||
//var edpVars = "vljServ=vhaislbll2.vha.med.va.gov:7141&siteId=442&";
|
||||
var edpVars = "contextRoot=<c:out value="${pageContext.request.contextPath}"/>&board=<c:out value="${param.board}"/>&siteId=<c:out value="${param.siteId}"/>&area=<c:out value="${param.area}"/>&helpContextRoot=<fmt:message key="help.contextRoot"/>";
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "<c:out value="${clientFinalName}"/>",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"flashvars", edpVars,
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else { // flash is too old or we can't detect the plugin
|
||||
var alternateContent = 'Alternate HTML content should be placed here. '
|
||||
+ 'This content requires the Adobe Flash Player. '
|
||||
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
|
||||
document.write(alternateContent); // insert non-flash content
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<noscript>
|
||||
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
||||
id="<c:out value="${clientArtifactId}"/>" width="100%" height="100%"
|
||||
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
|
||||
<param name="movie" value="<c:out value="${clientFinalName}"/>.swf" />
|
||||
<param name="quality" value="high" />
|
||||
<param name="allowFullScreen" value="true" />
|
||||
<param name="bgcolor" value="#869ca7" />
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<embed src="<c:out value="${clientFinalName}"/>.swf" quality="high" allowFullScreen="true" bgcolor="#869ca7"
|
||||
width="100%" height="100%" name="<c:out value="${clientArtifactId}"/>" align="middle"
|
||||
play="true"
|
||||
loop="false"
|
||||
quality="high"
|
||||
allowScriptAccess="sameDomain"
|
||||
type="application/x-shockwave-flash"
|
||||
pluginspage="http://www.adobe.com/go/getflashplayer">
|
||||
</embed>
|
||||
</object>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,276 @@
|
|||
// Flash Player Version Detection - Rev 1.6
|
||||
// Detect Client Browser type
|
||||
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
|
||||
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
|
||||
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
|
||||
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
|
||||
|
||||
function ControlVersion()
|
||||
{
|
||||
var version;
|
||||
var axo;
|
||||
var e;
|
||||
|
||||
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
|
||||
|
||||
try {
|
||||
// version will be set for 7.X or greater players
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 6.X players only
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
|
||||
// installed player is some revision of 6.0
|
||||
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
|
||||
// so we have to be careful.
|
||||
|
||||
// default to the first public version
|
||||
version = "WIN 6,0,21,0";
|
||||
|
||||
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
|
||||
axo.AllowScriptAccess = "always";
|
||||
|
||||
// safe to call for 6.0r47 or greater
|
||||
version = axo.GetVariable("$version");
|
||||
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 4.X or 5.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 3.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = "WIN 3,0,18,0";
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 2.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
version = "WIN 2,0,0,11";
|
||||
} catch (e) {
|
||||
version = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
// JavaScript helper required to detect Flash Player PlugIn version information
|
||||
function GetSwfVer(){
|
||||
// NS/Opera version >= 3 check for Flash plugin in plugin array
|
||||
var flashVer = -1;
|
||||
|
||||
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
||||
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
|
||||
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
|
||||
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
|
||||
var descArray = flashDescription.split(" ");
|
||||
var tempArrayMajor = descArray[2].split(".");
|
||||
var versionMajor = tempArrayMajor[0];
|
||||
var versionMinor = tempArrayMajor[1];
|
||||
var versionRevision = descArray[3];
|
||||
if (versionRevision == "") {
|
||||
versionRevision = descArray[4];
|
||||
}
|
||||
if (versionRevision[0] == "d") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
} else if (versionRevision[0] == "r") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
if (versionRevision.indexOf("d") > 0) {
|
||||
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
|
||||
}
|
||||
}
|
||||
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
|
||||
}
|
||||
}
|
||||
// MSN/WebTV 2.6 supports Flash 4
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
|
||||
// WebTV 2.5 supports Flash 3
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
|
||||
// older WebTV supports Flash 2
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
|
||||
else if ( isIE && isWin && !isOpera ) {
|
||||
flashVer = ControlVersion();
|
||||
}
|
||||
return flashVer;
|
||||
}
|
||||
|
||||
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
|
||||
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
|
||||
{
|
||||
versionStr = GetSwfVer();
|
||||
if (versionStr == -1 ) {
|
||||
return false;
|
||||
} else if (versionStr != 0) {
|
||||
if(isIE && isWin && !isOpera) {
|
||||
// Given "WIN 2,0,0,11"
|
||||
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
|
||||
tempString = tempArray[1]; // "2,0,0,11"
|
||||
versionArray = tempString.split(","); // ['2', '0', '0', '11']
|
||||
} else {
|
||||
versionArray = versionStr.split(".");
|
||||
}
|
||||
var versionMajor = versionArray[0];
|
||||
var versionMinor = versionArray[1];
|
||||
var versionRevision = versionArray[2];
|
||||
|
||||
// is the major.revision >= requested major.revision AND the minor version >= requested minor
|
||||
if (versionMajor > parseFloat(reqMajorVer)) {
|
||||
return true;
|
||||
} else if (versionMajor == parseFloat(reqMajorVer)) {
|
||||
if (versionMinor > parseFloat(reqMinorVer))
|
||||
return true;
|
||||
else if (versionMinor == parseFloat(reqMinorVer)) {
|
||||
if (versionRevision >= parseFloat(reqRevision))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function AC_AddExtension(src, ext)
|
||||
{
|
||||
if (src.indexOf('?') != -1)
|
||||
return src.replace(/\?/, ext+'?');
|
||||
else
|
||||
return src + ext;
|
||||
}
|
||||
|
||||
function AC_Generateobj(objAttrs, params, embedAttrs)
|
||||
{
|
||||
var str = '';
|
||||
if (isIE && isWin && !isOpera)
|
||||
{
|
||||
str += '<object ';
|
||||
for (var i in objAttrs)
|
||||
str += i + '="' + objAttrs[i] + '" ';
|
||||
str += '>';
|
||||
for (var i in params)
|
||||
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
|
||||
str += '</object>';
|
||||
} else {
|
||||
str += '<embed ';
|
||||
for (var i in embedAttrs)
|
||||
str += i + '="' + embedAttrs[i] + '" ';
|
||||
str += '> </embed>';
|
||||
}
|
||||
|
||||
document.write(str);
|
||||
}
|
||||
|
||||
function AC_FL_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
|
||||
, "application/x-shockwave-flash"
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
|
||||
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
|
||||
var ret = new Object();
|
||||
ret.embedAttrs = new Object();
|
||||
ret.params = new Object();
|
||||
ret.objAttrs = new Object();
|
||||
for (var i=0; i < args.length; i=i+2){
|
||||
var currArg = args[i].toLowerCase();
|
||||
|
||||
switch (currArg){
|
||||
case "classid":
|
||||
break;
|
||||
case "pluginspage":
|
||||
ret.embedAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "src":
|
||||
case "movie":
|
||||
args[i+1] = AC_AddExtension(args[i+1], ext);
|
||||
ret.embedAttrs["src"] = args[i+1];
|
||||
ret.params[srcParamName] = args[i+1];
|
||||
break;
|
||||
case "onafterupdate":
|
||||
case "onbeforeupdate":
|
||||
case "onblur":
|
||||
case "oncellchange":
|
||||
case "onclick":
|
||||
case "ondblClick":
|
||||
case "ondrag":
|
||||
case "ondragend":
|
||||
case "ondragenter":
|
||||
case "ondragleave":
|
||||
case "ondragover":
|
||||
case "ondrop":
|
||||
case "onfinish":
|
||||
case "onfocus":
|
||||
case "onhelp":
|
||||
case "onmousedown":
|
||||
case "onmouseup":
|
||||
case "onmouseover":
|
||||
case "onmousemove":
|
||||
case "onmouseout":
|
||||
case "onkeypress":
|
||||
case "onkeydown":
|
||||
case "onkeyup":
|
||||
case "onload":
|
||||
case "onlosecapture":
|
||||
case "onpropertychange":
|
||||
case "onreadystatechange":
|
||||
case "onrowsdelete":
|
||||
case "onrowenter":
|
||||
case "onrowexit":
|
||||
case "onrowsinserted":
|
||||
case "onstart":
|
||||
case "onscroll":
|
||||
case "onbeforeeditfocus":
|
||||
case "onactivate":
|
||||
case "onbeforedeactivate":
|
||||
case "ondeactivate":
|
||||
case "type":
|
||||
case "codebase":
|
||||
ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "id":
|
||||
case "width":
|
||||
case "height":
|
||||
case "align":
|
||||
case "vspace":
|
||||
case "hspace":
|
||||
case "class":
|
||||
case "title":
|
||||
case "accesskey":
|
||||
case "name":
|
||||
case "tabindex":
|
||||
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
default:
|
||||
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
|
||||
}
|
||||
}
|
||||
ret.objAttrs["classid"] = classid;
|
||||
if (mimeType) ret.embedAttrs["type"] = mimeType;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
|
||||
<bean id="exceptionHandler" class="gov.va.med.edp.web.handler.ExceptionResolver">
|
||||
<property name="defaultErrorView" value="exception"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
|
||||
<property name="basename" value="strings"/>
|
||||
</bean>
|
||||
|
||||
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
|
||||
|
||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"/>
|
||||
|
||||
<bean name="/bigboard.html" class="gov.va.med.edp.web.controller.BigBoardClientVersionSynchronizationController">
|
||||
<property name="clientArtifactId" value="edis-tracking-ui-bigboard"/>
|
||||
<property name="viewName" value="bigBoard"/>
|
||||
<property name="errorViewName" value="errorView"/>
|
||||
<property name="siteCodeDao" ref="siteCodeDao"/>
|
||||
<property name="serverPackageVersionDao" ref="serverPackageVersionDao"/>
|
||||
<property name="trackingDao" ref="bigBoardDao"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/testpage.html" class="gov.va.med.edp.web.controller.TestController">
|
||||
<property name="viewName" value="testPage"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/board.xml" class="gov.va.med.edp.web.controller.BigDisplayBoardController">
|
||||
<property name="trackingDao" ref="bigBoardDao"/>
|
||||
<property name="serverPackageVersionDao" ref="serverPackageVersionDao"/>
|
||||
<property name="siteCodeDao" ref="siteCodeDao"/>
|
||||
<property name="errorViewName" value="errorView"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,50 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title><fmt:message key="app.name"/> - Version Incompatibility</title>
|
||||
<script language="JavaScript">
|
||||
var targetURL = '<c:url value="/"/>';
|
||||
var countdownfrom = 30;
|
||||
var currentsecond;
|
||||
|
||||
function init() {
|
||||
currentsecond = document.getElementById('countdown').innerHTML = countdownfrom + 1;
|
||||
countredirect();
|
||||
}
|
||||
|
||||
function countredirect() {
|
||||
if (currentsecond != 1) {
|
||||
currentsecond -= 1;
|
||||
document.getElementById('countdown').innerHTML = currentsecond;
|
||||
}
|
||||
else {
|
||||
window.location = targetURL;
|
||||
return
|
||||
}
|
||||
setTimeout("countredirect()", 1000);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<%session.invalidate();%>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
|
||||
<h3>Version Incompatibility</h3>
|
||||
|
||||
<p>This is EDIS web application version '<fmt:message key="app.version"/>'.<br/>
|
||||
The EDIS server package version running in your VistA account is '<c:out value="${serverPackageVersion}"/>'.<br/>
|
||||
A compatible client ('<c:out value="${clientFinalName}"/>') was not found bundled in this web application.
|
||||
</p>
|
||||
|
||||
<p>Please ensure the version in your VistA account is compatible with version '<fmt:message key="app.version"/>' of the
|
||||
EDIS web application.</p>
|
||||
|
||||
<p>Will attempt to re-establish connection in <span id="countdown">XX</span> seconds.</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
|
||||
<bean id="xmlView" class="gov.va.med.edp.web.view.XmlView"/>
|
||||
|
||||
<bean id="exception" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/exception.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="bigBoard" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/bigdisplayboard.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="errorView" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/boardErrorReport.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="testPage" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/testpage.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="incompatibilityView" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/WEB-INF/jsp/incompatibility.jsp"/>
|
||||
</bean>
|
||||
</beans>
|
|
@ -0,0 +1,126 @@
|
|||
<!DOCTYPE web-app PUBLIC
|
||||
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
|
||||
"http://java.sun.com/dtd/web-app_2_3.dtd" >
|
||||
<web-app>
|
||||
<display-name>Emergency Department Tracking Board Server Proxy Application</display-name>
|
||||
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
||||
<param-value>strings</param-value>
|
||||
</context-param>
|
||||
<!-- Fallback locale if no bundles found for browser's preferred locale -->
|
||||
<!-- Force a single locale using param-name 'javax.servlet.jsp.jstl.fmt.locale' -->
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
|
||||
<param-value>en</param-value>
|
||||
</context-param>
|
||||
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
classpath*:/applicationContext-dao.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
<filter>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<filter-class>gov.va.med.edp.web.servlet.filter.ResponseHeaderFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>Cache-Control</param-name>
|
||||
<param-value>no-store,must-revalidate</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>Expires</param-name>
|
||||
<param-value>Thu, 01 Jan 1970 01:00:00 GMT</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>*.swf</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>/bigboard.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>/bigboard.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>/testpage.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>noCacheFilter</servlet-name>
|
||||
<url-pattern>/testpage.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.xml</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.csv</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<session-config>
|
||||
<session-timeout>5</session-timeout>
|
||||
</session-config>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>/index.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<error-page>
|
||||
<error-code>500</error-code>
|
||||
<location>/error500.jsp</location>
|
||||
</error-page>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>ED Tracking Board Flex Client</web-resource-name>
|
||||
<url-pattern>*.swf</url-pattern>
|
||||
<url-pattern>*.html</url-pattern>
|
||||
<url-pattern>*.xml</url-pattern>
|
||||
<url-pattern>*.jsp</url-pattern>
|
||||
<url-pattern>*.csv</url-pattern>
|
||||
<http-method>GET</http-method>
|
||||
<http-method>POST</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>SSL_AUTHENTICATED_USERS</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<login-config>
|
||||
<auth-method>CLIENT-CERT</auth-method>
|
||||
</login-config>
|
||||
|
||||
<security-role>
|
||||
<role-name>SSL_AUTHENTICATED_USERS</role-name>
|
||||
</security-role>
|
||||
</web-app>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
|
||||
<weblogic-web-app>
|
||||
<session-descriptor>
|
||||
<session-param>
|
||||
<param-name>CookieName</param-name>
|
||||
<param-value>edisboardJSESSIONID</param-value>
|
||||
</session-param>
|
||||
<session-param>
|
||||
<param-name>PersistentStoreType</param-name>
|
||||
<param-value>replicated_if_clustered</param-value>
|
||||
</session-param>
|
||||
</session-descriptor>
|
||||
<container-descriptor>
|
||||
<session-monitoring-enabled>true</session-monitoring-enabled>
|
||||
</container-descriptor>
|
||||
<context-root>${edis.tracking.boardContextRoot}</context-root>
|
||||
<security-role-assignment>
|
||||
<role-name>SSL_AUTHENTICATED_USERS</role-name>
|
||||
<principal-name>SSL_AUTHENTICATED_USERS</principal-name>
|
||||
</security-role-assignment>
|
||||
</weblogic-web-app>
|
|
@ -0,0 +1,25 @@
|
|||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>
|
||||
<fmt:message key="app.name"/>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
|
||||
<h3>
|
||||
<fmt:message key="app.version"/>
|
||||
</h3>
|
||||
|
||||
<h4>Built: <fmt:message key="app.buildtime"/></h4>
|
||||
|
||||
<div>
|
||||
Copyright <fmt:message key="copyright.year"/> - <a href="<fmt:message key="copyright.organization.url"/>"><fmt:message key="copyright.organization"/></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,146 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><fmt:message key="app.name"/></title>
|
||||
<script src="AC_OETags.js" language="javascript"></script>
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
overflow:hidden;
|
||||
}
|
||||
</style>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// -----------------------------------------------------------------------------
|
||||
// Globals
|
||||
// Major version of Flash required
|
||||
var requiredMajorVersion = 9;
|
||||
// Minor version of Flash required
|
||||
var requiredMinorVersion = 0;
|
||||
// Minor version of Flash required
|
||||
var requiredRevision = 28;
|
||||
// -----------------------------------------------------------------------------
|
||||
// -->
|
||||
</script>
|
||||
|
||||
<!-- BEGIN call Flex function on browser close -->
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
function shutdownHook()
|
||||
{
|
||||
var fxControl = document.BigBoard || window.BigBoard;
|
||||
var warning = fxControl.getUnsavedDataWarning();
|
||||
if (warning != '')
|
||||
return warning;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
window.onbeforeunload = shutdownHook;
|
||||
-->
|
||||
</script>
|
||||
<!-- END call Flex function on browser close -->
|
||||
|
||||
</head>
|
||||
|
||||
<body scroll="no">
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
|
||||
var hasProductInstall = DetectFlashVer(6, 0, 65);
|
||||
|
||||
// Version check based upon the values defined in globals
|
||||
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
||||
|
||||
|
||||
// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
|
||||
if ( hasProductInstall && !hasRequestedVersion ) {
|
||||
// MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
|
||||
// This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
|
||||
// DO NOT MODIFY THE FOLLOWING FOUR LINES
|
||||
// Location visited after installation is complete if installation is required
|
||||
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
|
||||
var MMredirectURL = window.location;
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
var MMdoctitle = document.title;
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "playerProductInstall",
|
||||
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else if (hasRequestedVersion) {
|
||||
// if we've detected an acceptable version
|
||||
// embed the Flash Content SWF when all tests are passed
|
||||
|
||||
// Cache Server Page namespace should be set here (don't forget the ampersand)
|
||||
//var edpVars = "cspNmsp=CPM&cspDemo=500^10vehu^vehu10&";
|
||||
//var edpVars = "cspServ=vhaislcfgm2.vha.med.va.gov/csp/CPM&cspToken=20012^662&";
|
||||
//var edpVars = "vljServ=10.5.17.153:7001&";
|
||||
//var edpVars = "vljServ=10.5.17.225:7001&";
|
||||
//var edpVars = "vljServ=localhost:7001&";
|
||||
//SEE LINE BELOW TO LAUNCH BIG BOARD FROM FLEX BUILDER AND PASSING IN A SITE ID
|
||||
//var edpVars = "vljServ=vhaislbll2.vha.med.va.gov:7141&siteId=442&";
|
||||
var edpVars = "contextRoot=<c:out value="${pageContext.request.contextPath}"/>&board=<c:out value="${param.board}"/>&area=<c:out value="${param.area}"/>&helpContextRoot=<fmt:message key="help.contextRoot"/>";
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "<c:out value="${clientFinalName}"/>",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"flashvars", edpVars,
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else { // flash is too old or we can't detect the plugin
|
||||
var alternateContent = 'Alternate HTML content should be placed here. '
|
||||
+ 'This content requires the Adobe Flash Player. '
|
||||
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
|
||||
document.write(alternateContent); // insert non-flash content
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<noscript>
|
||||
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
||||
id="<c:out value="${clientArtifactId}"/>" width="100%" height="100%"
|
||||
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
|
||||
<param name="movie" value="<c:out value="${clientFinalName}"/>.swf" />
|
||||
<param name="quality" value="high" />
|
||||
<param name="allowFullScreen" value="true" />
|
||||
<param name="bgcolor" value="#869ca7" />
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<embed src="<c:out value="${clientFinalName}"/>.swf" quality="high" allowFullScreen="true" bgcolor="#869ca7"
|
||||
width="100%" height="100%" name="<c:out value="${clientArtifactId}"/>" align="middle"
|
||||
play="true"
|
||||
loop="false"
|
||||
quality="high"
|
||||
allowScriptAccess="sameDomain"
|
||||
type="application/x-shockwave-flash"
|
||||
pluginspage="http://www.adobe.com/go/getflashplayer">
|
||||
</embed>
|
||||
</object>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title><fmt:message key="app.name"/></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2><fmt:message key="app.name"/></h2>
|
||||
|
||||
<p>This is EDIS web application version '<fmt:message key="app.version"/>'.</p>
|
||||
|
||||
<p>An error occurred while processing your request. The message is:<br/>
|
||||
<font color="red"><b> <c:out value="${errorMessage}"/></b></font></p>
|
||||
|
||||
<p><a href="<%= request.getContextPath() %>">Click here to try again...</a></p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,70 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> Debug</title></head>
|
||||
<body>
|
||||
|
||||
<h1><fmt:message key="app.name"/> Debug</h1>
|
||||
|
||||
<h4>initLogArea</h4>
|
||||
|
||||
<form name="initLogArea" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="initLogArea"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="init_area">area</label></td>
|
||||
<td><input id="init_area" name="area" type="text" value="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>initTrackingArea</h4>
|
||||
|
||||
<form name="initTrackingArea" action="board.xml" method="post">
|
||||
<input name="command" type="hidden" value="initLogArea"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="init_area">area</label></td>
|
||||
<td><input id="init_area" name="area" type="text" value="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>refreshLogSelector</h4>
|
||||
|
||||
<form name="refreshLogSelector" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="refreshLogSelector"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="refresh_area">area</label></td>
|
||||
<td><input id="refresh_area" name="area" type="text" value="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="token">token</label></td>
|
||||
<td><input id="token" name="token" type="text" value="-1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>switchLogEntry</h4>
|
||||
|
||||
<form name="switchLogEntry" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="switchLogEntry"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="logID">logID</label></td>
|
||||
<td><input id="logID" name="logID" type="text" value="64"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="getChoices">getChoices</label></td>
|
||||
<td><input id="getChoices" name="getChoices" type="text" value="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,12 @@
|
|||
<%@ page pageEncoding="UTF-8" contentType="application/xml;charset=UTF-8" language="java" session="false" isErrorPage="true" %><?xml version="1.0" encoding="UTF-8"?>
|
||||
<results>
|
||||
<error>
|
||||
<code><%= request.getAttribute("javax.servlet.error.status_code") %></code>
|
||||
<message><%= request.getAttribute("javax.servlet.error.exception") %></message>
|
||||
<resource><%= request.getAttribute("javax.servlet.error.request_uri") %></resource>
|
||||
<detail xml:space="preserve"><% Throwable e =
|
||||
(Throwable) request.getAttribute("javax.servlet.error.exception");
|
||||
e.printStackTrace(new java.io.PrintWriter(out));
|
||||
%></detail>
|
||||
</error>
|
||||
</results>
|
|
@ -0,0 +1,12 @@
|
|||
<%@ page pageEncoding="UTF-8" contentType="application/xml;charset=UTF-8" language="java" session="false" isErrorPage="true" %><?xml version="1.0" encoding="UTF-8"?>
|
||||
<results>
|
||||
<error>
|
||||
<code>500</code>
|
||||
<message><%= ((Exception) request.getAttribute("exception")).getMessage() %></message>
|
||||
<resource><%= request.getAttribute("resource") %></resource>
|
||||
<detail xml:space="preserve"><% Exception e =
|
||||
(Exception) request.getAttribute("exception");
|
||||
e.printStackTrace(new java.io.PrintWriter(out));
|
||||
%></detail>
|
||||
</error>
|
||||
</results>
|
|
@ -0,0 +1,2 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
|
||||
<c:redirect url="/bigboard.html"/>
|
|
@ -0,0 +1,16 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> Logged Out</title></head>
|
||||
<body>
|
||||
<%session.invalidate();%>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
<p>You have been logged out.</p>
|
||||
<p><a href="<%= request.getContextPath() %>">Log in again.</a></p>
|
||||
<p><a href="http://vhaislcfgm2.vha.med.va.gov/shadowfax/joomla/index.php?option=com_fireboard&Itemid=121&task=listcat&catid=14">EDIS Tracking Feedback Forum</a></p>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
|
||||
<% session.invalidate(); %>
|
||||
<c:redirect url="/"/>
|
|
@ -0,0 +1,25 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title><fmt:message key="app.name"/></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2><fmt:message key="app.name"/></h2>
|
||||
|
||||
<p>This is EDIS web application version '<fmt:message key="app.version"/>'.</p>
|
||||
|
||||
|
||||
<p>HTTP Header Value for 'EdisClientMachineName' =<b><font color="blue">
|
||||
<c:out value="${EdisClientMachineName}"/></font></b></p>
|
||||
|
||||
|
||||
<p>All HTTP Headers Were:<b><font color="blue">
|
||||
<c:out value="${HttpHeaders}"/></font></b></p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,168 @@
|
|||
<?xml version="1.0"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-parent</artifactId>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<relativePath>../tracking-parent</relativePath>
|
||||
</parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-core</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>EDIS Tracking Server Core</name>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<description>Emergency Department Integration Software - Tracking Application Server Core</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jca</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>logkit</groupId>
|
||||
<artifactId>logkit</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>avalon-framework</groupId>
|
||||
<artifactId>avalon-framework</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>logkit</groupId>
|
||||
<artifactId>logkit</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>avalon-framework</groupId>
|
||||
<artifactId>avalon-framework</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>logkit</groupId>
|
||||
<artifactId>logkit</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>avalon-framework</groupId>
|
||||
<artifactId>avalon-framework</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.authentication</groupId>
|
||||
<artifactId>kaajee</artifactId>
|
||||
<version>1.0.1.002</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.8</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>weblogic</groupId>
|
||||
<artifactId>weblogic</artifactId>
|
||||
<version>8.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.vistalink</groupId>
|
||||
<artifactId>vljFoundationsLib</artifactId>
|
||||
<version>1.5.0.026</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.vistalink</groupId>
|
||||
<artifactId>vljConnector</artifactId>
|
||||
<version>1.5.0.026</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>easymock</groupId>
|
||||
<artifactId>easymock</artifactId>
|
||||
<version>1.2_Java1.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-mock</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>logkit</groupId>
|
||||
<artifactId>logkit</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>avalon-framework</groupId>
|
||||
<artifactId>avalon-framework</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,3 @@
|
|||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package gov.va.med.edp.dao;
|
||||
|
||||
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
|
||||
/**
|
||||
* TODO: document ServerPackageVersionDao
|
||||
*/
|
||||
public interface ServerPackageVersionDao {
|
||||
String getServerPackageVersion(String stationNumber);
|
||||
BigBoardDebugInfoVO getVistaLinkConnectionInfo(String stationNumber) throws DataAccessException;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package gov.va.med.edp.dao;
|
||||
|
||||
import gov.va.med.edp.vo.SessionVO;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
public interface SessionDao {
|
||||
SessionVO getSessionInfo(String stationNumber, String duz) throws DataAccessException;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package gov.va.med.edp.dao;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
public interface SiteCodeLookUpDao {
|
||||
String getSiteCode(String machineName) throws DataAccessException;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package gov.va.med.edp.dao;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface TrackingDao {
|
||||
String executeCommand(String stationNumber, String duz, Map params) throws DataAccessException;
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
package gov.va.med.edp.dao.jdbc;
|
||||
|
||||
import gov.va.med.edp.dao.SiteCodeLookUpDao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
public class JdbcSiteCodeLookUpDao implements SiteCodeLookUpDao, InitializingBean {
|
||||
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
private static Logger logger = Logger.getLogger(JdbcSiteCodeLookUpDao.class);
|
||||
|
||||
|
||||
public String getSiteCode(String machineName) throws DataAccessException {
|
||||
String sql = "select siteCode from EDP.SiteMapper where sitePrefix=?";
|
||||
String siteCode = "";
|
||||
List siteCodeList = null;
|
||||
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug("Executing SQL: " + sql + " with parameter: " + machineName);
|
||||
}
|
||||
siteCodeList = jdbcTemplate.queryForList(sql, new Object[]{machineName} , String.class);
|
||||
if (!(siteCodeList!= null && siteCodeList.size() == 1)){
|
||||
String sitePrefix = parseSitePrefix(machineName);
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug("Matching site code was not found for the full machineName. Now executing SQL query:" + sql + " with parameter: " + sitePrefix);
|
||||
}
|
||||
siteCodeList = jdbcTemplate.queryForList(sql, new Object[]{sitePrefix} , String.class);
|
||||
}
|
||||
|
||||
if (siteCodeList!= null && siteCodeList.size() == 1){
|
||||
siteCode = siteCodeList.get(0).toString();
|
||||
if (logger.isDebugEnabled()) logger.debug("SQL Query executed successfully. The Site Code is: " + siteCode);
|
||||
return siteCode;
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled()) logger.debug("No Results were found for the SQL Query. Returning null for siteCode");
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setDataSource(DataSource dataSource) {
|
||||
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
||||
}
|
||||
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(jdbcTemplate, "jdbcTemplate must not be null");
|
||||
}
|
||||
|
||||
private String parseSitePrefix(String machineName){
|
||||
String sitePrefix = "";
|
||||
if (machineName.startsWith("VHA")){
|
||||
sitePrefix = machineName.substring(3, 6);
|
||||
|
||||
} else {
|
||||
sitePrefix = machineName.substring(0, 3);
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug("Parsed sitePrefix from the machineName: " + machineName + " is: " + sitePrefix);
|
||||
}
|
||||
return sitePrefix;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package gov.va.med.edp.dao.rpc;
|
||||
|
||||
import gov.va.med.edp.dao.TrackingDao;
|
||||
import gov.va.med.edp.rpc.VistaLinkDaoSupport;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class VistaLinkBigBoardDao extends VistaLinkDaoSupport implements TrackingDao {
|
||||
static final String EDPS_BOARD_CONTEXT = "EDPS BOARD CONTEXT";
|
||||
static final String EDP_CONTROLLER_BOARD_RPC = "EDPCBRD RPC";
|
||||
static final String EDPTRACKING_APPLICATION_USER = "EDPTRACKING,PROXY";
|
||||
|
||||
/**
|
||||
* Builds the list of parameters to pass to the RPC.
|
||||
* First argument to the RPC is a string of the format "${duz}^${stationNumber}". If duz is null, will send "0^${stationNumber}"
|
||||
* Second argument to the RPC is a multiple containing key value pairs passed in as a map.
|
||||
*
|
||||
* @param stationNumber The station number that this command is being executed on behalf of. Note how this is different
|
||||
* from the station number of the vista account this dao is communicating with.
|
||||
* @param duz user who command is being executed on behalf of. Can be null for some operations. Note how this is different
|
||||
* from the "application user duz" that RPCs are executed with.
|
||||
* @param params A map containing key value pairs that are passed to RPC as a multiple.
|
||||
* @return list with two items in it, a string and a multiple, to be passed as RPC arguments.
|
||||
*/
|
||||
protected List buildRpcParameterList(String stationNumber, String duz, Map params) {
|
||||
ArrayList paramList = new ArrayList();
|
||||
paramList.add((duz == null ? "0" : duz) + '^' + stationNumber);
|
||||
paramList.add(params);
|
||||
return paramList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Commands executed by this data access object are always executed by the "application user" against the stationNumber
|
||||
* set by the property on this bean.
|
||||
*
|
||||
* @param stationNumber The station number that this command is being executed on behalf of. Note how this is different
|
||||
* from the station number of the vista account this dao is communicating with. Cannot be null.
|
||||
* @param duz A duz to execute the command on behalf of. Can be null for some operations. Note how this is different
|
||||
* from the "application user duz" that RPCs are executed with.
|
||||
* @param params A map containing key value pairs that are passed to the RPC as a multiple.
|
||||
* @return result of executing command RPC as a string.
|
||||
* @throws org.springframework.dao.DataAccessException
|
||||
*
|
||||
*/
|
||||
public String executeCommand(String stationNumber, String duz, Map params) throws DataAccessException {
|
||||
return getRpcTemplate().rpcAsApplication(stationNumber, EDPTRACKING_APPLICATION_USER, EDPS_BOARD_CONTEXT, EDP_CONTROLLER_BOARD_RPC, buildRpcParameterList(stationNumber, duz, params));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package gov.va.med.edp.dao.rpc;
|
||||
|
||||
import gov.va.med.edp.rpc.VistaLinkDaoSupport;
|
||||
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
|
||||
import gov.va.med.edp.dao.ServerPackageVersionDao;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.io.StringReader;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.DataRetrievalFailureException;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
/**
|
||||
* TODO: document VistaLinkServerPackageVersionDao
|
||||
*/
|
||||
public class VistaLinkServerPackageVersionDao extends VistaLinkBigBoardDao implements ServerPackageVersionDao {
|
||||
private static final String UNABLE_TO_GET_VERSION_INFO = "unable to get version info";
|
||||
|
||||
public String getServerPackageVersion(String stationNumber) {
|
||||
Map params = new HashMap();
|
||||
params.put("command", "initTracking");
|
||||
String result = executeCommand(stationNumber, null, params);
|
||||
return getVersion(result);
|
||||
}
|
||||
|
||||
public BigBoardDebugInfoVO getVistaLinkConnectionInfo(String stationNumber) throws DataAccessException {
|
||||
return getRpcTemplate().getVistaLinkConnectionInfo(stationNumber, EDPTRACKING_APPLICATION_USER);
|
||||
}
|
||||
|
||||
private String getVersion(String result) {
|
||||
Document doc = buildDocument(result);
|
||||
return getVersion(doc);
|
||||
}
|
||||
|
||||
private Element getUserElement(Document doc) {
|
||||
return (Element) doc.getDocumentElement().getElementsByTagName("user").item(0);
|
||||
}
|
||||
|
||||
private String getVersion(Document doc) {
|
||||
Element user = getUserElement(doc);
|
||||
if (user == null) return null;
|
||||
return user.getAttribute("version");
|
||||
}
|
||||
|
||||
private Document buildDocument(String result) {
|
||||
try {
|
||||
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
|
||||
return builder.parse(new InputSource(new StringReader("<results>" + result + "</results>")));
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_VERSION_INFO, e);
|
||||
} catch (IOException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_VERSION_INFO, e);
|
||||
} catch (SAXException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_VERSION_INFO, e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package gov.va.med.edp.dao.rpc;
|
||||
|
||||
import gov.va.med.edp.dao.SessionDao;
|
||||
import gov.va.med.edp.vo.SessionVO;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.DataRetrievalFailureException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class VistaLinkSessionDao extends VistaLinkTrackingDao implements SessionDao {
|
||||
private static final String UNABLE_TO_GET_USER_INFO = "unable to get user info";
|
||||
|
||||
public SessionVO getSessionInfo(String stationNumber, String duz) throws DataAccessException {
|
||||
Map params = new HashMap();
|
||||
params.put("command", "initUser");
|
||||
String result = executeCommand(stationNumber, duz, params);
|
||||
return createSessionInfo(result);
|
||||
}
|
||||
|
||||
private SessionVO createSessionInfo(String result) {
|
||||
Document doc = buildDocument(result);
|
||||
|
||||
SessionVO session = new SessionVO();
|
||||
session.setServerPackageVersion(getServerPackageVersion(doc));
|
||||
session.setTimeOutMillis(Integer.parseInt(getTimeout(doc)));
|
||||
session.setCountDownMillis(Integer.parseInt(getCountdown(doc)));
|
||||
return session;
|
||||
}
|
||||
|
||||
private String getServerPackageVersion(Document doc) {
|
||||
return getUserElement(doc).getAttribute("version");
|
||||
}
|
||||
|
||||
private String getTimeout(Document doc) {
|
||||
return getUserElement(doc).getAttribute("timeOut");
|
||||
}
|
||||
|
||||
private Element getUserElement(Document doc) {
|
||||
return ((Element) doc.getDocumentElement().getElementsByTagName("user").item(0));
|
||||
}
|
||||
|
||||
private String getCountdown(Document doc) {
|
||||
return getUserElement(doc).getAttribute("countDown");
|
||||
}
|
||||
|
||||
private Document buildDocument(String result) {
|
||||
try {
|
||||
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
|
||||
return builder.parse(new InputSource(new StringReader("<results>" + result + "</results>")));
|
||||
} catch (ParserConfigurationException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_USER_INFO, e);
|
||||
} catch (IOException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_USER_INFO, e);
|
||||
} catch (SAXException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_GET_USER_INFO, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package gov.va.med.edp.dao.rpc;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import gov.va.med.edp.dao.TrackingDao;
|
||||
import gov.va.med.edp.rpc.VistaLinkDaoSupport;
|
||||
|
||||
public class VistaLinkTrackingDao extends VistaLinkDaoSupport implements TrackingDao {
|
||||
static final String EDPF_TRACKING_SYSTEM_CONTEXT = "EDPF TRACKING SYSTEM";
|
||||
static final String EDP_CONTROLLER_RPC = "EDPCTRL RPC";
|
||||
|
||||
public String executeCommand(String stationNumber, String duz, Map params) throws DataAccessException {
|
||||
return getRpcTemplate().rpcAsUser(stationNumber, duz, EDPF_TRACKING_SYSTEM_CONTEXT, EDP_CONTROLLER_RPC, buildRpcParameterList(params));
|
||||
}
|
||||
|
||||
private List buildRpcParameterList(Map params) {
|
||||
ArrayList paramList = new ArrayList();
|
||||
paramList.add(params);
|
||||
return paramList;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import org.springframework.dao.DataAccessResourceFailureException;
|
||||
|
||||
import javax.resource.cci.ConnectionFactory;
|
||||
|
||||
/**
|
||||
* Implementations of this interface retrieve JCA connection factories for a particular VistA station number.
|
||||
*
|
||||
* @see InstitutionMappingConnectionFactoryLocator
|
||||
*/
|
||||
public interface ConnectionFactoryLocator {
|
||||
/**
|
||||
* Retrieves a connection factory for the specified station number, or throws an exception. Never should return null.
|
||||
*
|
||||
* @param stationNumber
|
||||
* @return the connection factory for the specified station number, or throw a data access resource exception if there is none.
|
||||
* @throws DataAccessResourceFailureException
|
||||
*
|
||||
*/
|
||||
ConnectionFactory getConnectionFactory(String stationNumber) throws DataAccessResourceFailureException;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import gov.va.med.vistalink.adapter.cci.VistaLinkConnectionFactory;
|
||||
import gov.va.med.vistalink.institution.InstitutionMapNotInitializedException;
|
||||
import gov.va.med.vistalink.institution.InstitutionMappingDelegate;
|
||||
import gov.va.med.vistalink.institution.InstitutionMappingNotFoundException;
|
||||
import org.springframework.dao.DataAccessResourceFailureException;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.InitialContext;
|
||||
import javax.naming.NamingException;
|
||||
import javax.resource.cci.ConnectionFactory;
|
||||
import java.text.MessageFormat;
|
||||
|
||||
public class InstitutionMappingConnectionFactoryLocator implements ConnectionFactoryLocator {
|
||||
private static final String NO_CONNECTION_FACTORY = "Unable to obtain connection factory for station ''{0}''";
|
||||
private static final String NO_CONNECTION_FACTORY_JNDI = "Unable to obtain connection factory for station ''{0}'' at JNDI name ''{1}''";
|
||||
|
||||
public ConnectionFactory getConnectionFactory(String stationNumber) throws DataAccessResourceFailureException {
|
||||
try {
|
||||
String jndiConnectorName = InstitutionMappingDelegate.getJndiConnectorNameForInstitution(
|
||||
stationNumber);
|
||||
try {
|
||||
Context ic = new InitialContext();
|
||||
VistaLinkConnectionFactory vistaLinkConnectionFactory = (VistaLinkConnectionFactory) ic.lookup(jndiConnectorName);
|
||||
if (vistaLinkConnectionFactory == null)
|
||||
throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY_JNDI, new Object[]{stationNumber, jndiConnectorName}));
|
||||
return vistaLinkConnectionFactory;
|
||||
} catch (NamingException e) {
|
||||
throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY_JNDI, new Object[]{stationNumber, jndiConnectorName}), e);
|
||||
}
|
||||
} catch (InstitutionMappingNotFoundException e) {
|
||||
throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY, new Object[]{stationNumber}), e);
|
||||
} catch (InstitutionMapNotInitializedException e) {
|
||||
throw new DataAccessResourceFailureException(MessageFormat.format(NO_CONNECTION_FACTORY, new Object[]{stationNumber}), e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import org.springframework.dao.support.DaoSupport;
|
||||
|
||||
public class VistaLinkDaoSupport extends DaoSupport {
|
||||
|
||||
private VistaLinkRpcTemplate rpcTemplate;
|
||||
|
||||
protected void checkDaoConfig() throws IllegalArgumentException {
|
||||
if (this.rpcTemplate == null) {
|
||||
setConnectionFactoryLocator(new InstitutionMappingConnectionFactoryLocator());
|
||||
}
|
||||
}
|
||||
|
||||
protected VistaLinkRpcTemplate createRpcTemplate(ConnectionFactoryLocator connectionFactoryLocator) {
|
||||
return new VistaLinkRpcTemplate(connectionFactoryLocator);
|
||||
}
|
||||
|
||||
public ConnectionFactoryLocator getConnectionFactoryLocator() {
|
||||
return rpcTemplate.getConnectionFactoryLocator();
|
||||
}
|
||||
|
||||
public void setConnectionFactoryLocator(ConnectionFactoryLocator connectionFactoryLocator) {
|
||||
setRpcTemplate(createRpcTemplate(connectionFactoryLocator));
|
||||
}
|
||||
|
||||
public VistaLinkRpcTemplate getRpcTemplate() {
|
||||
return rpcTemplate;
|
||||
}
|
||||
|
||||
public void setRpcTemplate(VistaLinkRpcTemplate rpcTemplate) {
|
||||
this.rpcTemplate = rpcTemplate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
|
||||
import org.springframework.dao.DataRetrievalFailureException;
|
||||
|
||||
public class VistaLinkRpcDataRetrievalFailureException extends DataRetrievalFailureException {
|
||||
|
||||
private VistaLinkFaultException fault;
|
||||
|
||||
public VistaLinkRpcDataRetrievalFailureException(VistaLinkFaultException fault) {
|
||||
super(fault.getMessage(), fault);
|
||||
this.fault = fault;
|
||||
}
|
||||
|
||||
public String getErrorCode() {
|
||||
return fault.getErrorCode();
|
||||
}
|
||||
|
||||
public String getErrorMessage() {
|
||||
return fault.getErrorMessage();
|
||||
}
|
||||
|
||||
public String getErrorType() {
|
||||
return fault.getErrorType();
|
||||
}
|
||||
|
||||
public String getFaultActor() {
|
||||
return fault.getFaultActor();
|
||||
}
|
||||
|
||||
public String getFaultCode() {
|
||||
return fault.getFaultCode();
|
||||
}
|
||||
|
||||
public String getFaultString() {
|
||||
return fault.getFaultString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import org.springframework.dao.InvalidDataAccessApiUsageException;
|
||||
import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
|
||||
|
||||
/**
|
||||
* TODO: document VistaLinkRpcInvalidApiUsageException
|
||||
*/
|
||||
public class VistaLinkRpcInvalidApiUsageException extends InvalidDataAccessApiUsageException {
|
||||
|
||||
private VistaLinkFaultException fault;
|
||||
|
||||
public VistaLinkRpcInvalidApiUsageException(VistaLinkFaultException fault) {
|
||||
super(fault.getMessage());
|
||||
this.fault = fault;
|
||||
}
|
||||
|
||||
public String getErrorCode() {
|
||||
return fault.getErrorCode();
|
||||
}
|
||||
|
||||
public String getErrorMessage() {
|
||||
return fault.getErrorMessage();
|
||||
}
|
||||
|
||||
public String getErrorType() {
|
||||
return fault.getErrorType();
|
||||
}
|
||||
|
||||
public String getFaultActor() {
|
||||
return fault.getFaultActor();
|
||||
}
|
||||
|
||||
public String getFaultCode() {
|
||||
return fault.getFaultCode();
|
||||
}
|
||||
|
||||
public String getFaultString() {
|
||||
return fault.getFaultString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
|
||||
import org.springframework.dao.PermissionDeniedDataAccessException;
|
||||
|
||||
public class VistaLinkRpcPermissionDeniedException extends PermissionDeniedDataAccessException {
|
||||
|
||||
private VistaLinkFaultException fault;
|
||||
|
||||
public VistaLinkRpcPermissionDeniedException(VistaLinkFaultException fault) {
|
||||
super(fault.getMessage(), fault);
|
||||
this.fault = fault;
|
||||
}
|
||||
|
||||
public String getErrorCode() {
|
||||
return fault.getErrorCode();
|
||||
}
|
||||
|
||||
public String getErrorMessage() {
|
||||
return fault.getErrorMessage();
|
||||
}
|
||||
|
||||
public String getErrorType() {
|
||||
return fault.getErrorType();
|
||||
}
|
||||
|
||||
public String getFaultActor() {
|
||||
return fault.getFaultActor();
|
||||
}
|
||||
|
||||
public String getFaultCode() {
|
||||
return fault.getFaultCode();
|
||||
}
|
||||
|
||||
public String getFaultString() {
|
||||
return fault.getFaultString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
package gov.va.med.edp.rpc;
|
||||
|
||||
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
|
||||
import gov.va.med.exception.FoundationsException;
|
||||
import gov.va.med.vistalink.adapter.cci.VistaLinkAppProxyConnectionSpec;
|
||||
import gov.va.med.vistalink.adapter.cci.VistaLinkConnection;
|
||||
import gov.va.med.vistalink.adapter.cci.VistaLinkConnectionSpec;
|
||||
import gov.va.med.vistalink.adapter.cci.VistaLinkDuzConnectionSpec;
|
||||
import gov.va.med.vistalink.adapter.record.LoginsDisabledFaultException;
|
||||
import gov.va.med.vistalink.adapter.record.VistaLinkFaultException;
|
||||
import gov.va.med.vistalink.adapter.spi.VistaLinkServerInfo;
|
||||
import gov.va.med.vistalink.rpc.*;
|
||||
import gov.va.med.vistalink.security.m.SecurityFaultException;
|
||||
import gov.va.med.vistalink.security.m.SecurityDivisionDeterminationFaultException;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.dao.*;
|
||||
import org.springframework.jca.cci.core.CciTemplate;
|
||||
import org.springframework.jca.cci.core.ConnectionCallback;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.resource.ResourceException;
|
||||
import javax.resource.cci.Connection;
|
||||
import javax.resource.cci.ConnectionFactory;
|
||||
import java.sql.SQLException;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This is the central class in the rpc package. It simplifies the use of VistaLink RPCs and helps to avoid common errors.
|
||||
* It executes core RPC workflow, leaving application code to provide RPC names and parameters and extract results. This
|
||||
* class executes RPCs with VistaLink, initiating iteration over RPC results and catching VistaLink exceptions and
|
||||
* translating them to the generic data access exception hierarchy defined in the org.springframework.dao package.
|
||||
*/
|
||||
public class VistaLinkRpcTemplate {
|
||||
|
||||
private static final int USER_TYPE_DUZ = 1;
|
||||
private static final int USER_TYPE_APPLICATION_PROXY = 2;
|
||||
|
||||
static final int DEFAULT_TIMEOUT = 10000;
|
||||
|
||||
private static Logger log = Logger.getLogger(VistaLinkRpcTemplate.class);
|
||||
|
||||
private int timeOut = DEFAULT_TIMEOUT;
|
||||
private String rpcContext;
|
||||
private ConnectionFactoryLocator connectionFactoryLocator;
|
||||
|
||||
private static final String UNABLE_TO_EXECUTE_RPC = "Unable to execute RPC";
|
||||
|
||||
public VistaLinkRpcTemplate(ConnectionFactoryLocator connectionFactoryLocator) {
|
||||
this.connectionFactoryLocator = connectionFactoryLocator;
|
||||
}
|
||||
|
||||
public String rpcAsUser(final String division, final String duz, final String rpcContext, final String rpcName) throws DataAccessException {
|
||||
return rpcAsUser(division, duz, rpcContext, rpcName, null);
|
||||
}
|
||||
|
||||
public String rpcAsUser(final String division, final String duz, final String rpcContext, final String rpcName, final List params) throws DataAccessException {
|
||||
return rpc(division, duz, rpcContext, rpcName, params, USER_TYPE_DUZ);
|
||||
}
|
||||
|
||||
public String rpcAsApplication(final String division, final String applicationProxyName, final String rpcContext, final String rpcName) throws DataAccessException {
|
||||
return rpcAsApplication(division, applicationProxyName, rpcContext, rpcName, null);
|
||||
}
|
||||
|
||||
public String rpcAsApplication(final String division, final String applicationProxyName, final String rpcContext, final String rpcName, final List params) throws DataAccessException {
|
||||
return rpc(division, applicationProxyName, rpcContext, rpcName, params, USER_TYPE_APPLICATION_PROXY);
|
||||
}
|
||||
|
||||
public BigBoardDebugInfoVO getVistaLinkConnectionInfo(final String division, final String user) throws DataAccessException {
|
||||
return getConnectionInfo(division, user, USER_TYPE_APPLICATION_PROXY);
|
||||
}
|
||||
|
||||
public String rpc(final String division, final String user, final String rpcContext, final String rpcName, final List params, final int userType) throws DataAccessException {
|
||||
if (log.isDebugEnabled())
|
||||
log.debug(MessageFormat.format("''{0}'' called in context ''{1}'' by ''{2}'' at facility ''{3}'' with params: {4}", new Object[]{rpcName, rpcContext, user, division, params}));
|
||||
|
||||
ConnectionFactory connectionFactory = connectionFactoryLocator.getConnectionFactory(division);
|
||||
try {
|
||||
CciTemplate t = new CciTemplate(connectionFactory, createConnectionSpec(division, user, userType));
|
||||
RpcResponse response = (RpcResponse) t.execute(new ConnectionCallback() {
|
||||
public Object doInConnection(Connection connection, ConnectionFactory connectionFactory) throws ResourceException, SQLException, DataAccessException {
|
||||
try {
|
||||
Assert.isInstanceOf(VistaLinkConnection.class, connection);
|
||||
VistaLinkConnection conn = (VistaLinkConnection) connection;
|
||||
conn.setTimeOut(getTimeOut());
|
||||
|
||||
RpcRequest request = RpcRequestFactory.getRpcRequest(rpcContext, rpcName);
|
||||
request.setUseProprietaryMessageFormat(true);
|
||||
request.setXmlResponse(false);
|
||||
|
||||
if (params != null) {
|
||||
request.setParams(params);
|
||||
}
|
||||
|
||||
return conn.executeRPC(request);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new InvalidDataAccessApiUsageException(UNABLE_TO_EXECUTE_RPC, e);
|
||||
} catch (NoRpcContextFaultException e) {
|
||||
throw new VistaLinkRpcInvalidApiUsageException(e);
|
||||
} catch (RpcNotOkForProxyUseException e) {
|
||||
throw new VistaLinkRpcInvalidApiUsageException(e);
|
||||
} catch (RpcNotInContextFaultException e) {
|
||||
throw new VistaLinkRpcPermissionDeniedException(e);
|
||||
} catch (LoginsDisabledFaultException e) {
|
||||
throw new DataAccessResourceFailureException(UNABLE_TO_EXECUTE_RPC, e);
|
||||
} catch (SecurityDivisionDeterminationFaultException e) {
|
||||
throw new VistaLinkRpcInvalidApiUsageException(e);
|
||||
} catch (SecurityFaultException e) {
|
||||
throw new VistaLinkRpcPermissionDeniedException(e);
|
||||
} catch (VistaLinkFaultException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_EXECUTE_RPC, e);
|
||||
} catch (FoundationsException e) {
|
||||
throw new DataRetrievalFailureException(UNABLE_TO_EXECUTE_RPC, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
String result = response.getResults();
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug(MessageFormat.format("''{0}'' returned: {1}", new Object[]{rpcName, result}));
|
||||
}
|
||||
return result;
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new InvalidDataAccessApiUsageException(UNABLE_TO_EXECUTE_RPC, e);
|
||||
}
|
||||
}
|
||||
|
||||
private BigBoardDebugInfoVO getConnectionInfo(final String division, final String user, final int userType) throws DataAccessException {
|
||||
VistaLinkConnection conn = null;
|
||||
ConnectionFactory connectionFactory = connectionFactoryLocator.getConnectionFactory(division);
|
||||
try {
|
||||
conn = (VistaLinkConnection)connectionFactory.getConnection(createConnectionSpec(division, user, userType));
|
||||
} catch (ResourceException e) {
|
||||
throw new DataAccessResourceFailureException("error getting connection info", e);
|
||||
}
|
||||
VistaLinkServerInfo vistaLinkServerInfo = conn.getConnectionInfo();
|
||||
BigBoardDebugInfoVO bbd = new BigBoardDebugInfoVO(vistaLinkServerInfo.getAddress().toString(), new Integer(vistaLinkServerInfo.getPort()).toString());
|
||||
return bbd;
|
||||
}
|
||||
|
||||
private VistaLinkConnectionSpec createConnectionSpec(String division, String user, int userType) {
|
||||
switch (userType) {
|
||||
case USER_TYPE_APPLICATION_PROXY:
|
||||
return new VistaLinkAppProxyConnectionSpec(division, user);
|
||||
case USER_TYPE_DUZ:
|
||||
default:
|
||||
return new VistaLinkDuzConnectionSpec(division, user);
|
||||
}
|
||||
}
|
||||
|
||||
public int getTimeOut() {
|
||||
return timeOut;
|
||||
}
|
||||
|
||||
public void setTimeOut(int timeOut) {
|
||||
this.timeOut = timeOut;
|
||||
}
|
||||
|
||||
public String getRpcContext() {
|
||||
return rpcContext;
|
||||
}
|
||||
|
||||
public void setRpcContext(String rpcContext) {
|
||||
this.rpcContext = rpcContext;
|
||||
}
|
||||
|
||||
public ConnectionFactoryLocator getConnectionFactoryLocator() {
|
||||
return connectionFactoryLocator;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package gov.va.med.edp.vo;
|
||||
|
||||
public class BigBoardDebugInfoVO {
|
||||
|
||||
private String vistalinkIPAddress;
|
||||
private String vistalinkPort;
|
||||
private String siteId;
|
||||
private String machineName;
|
||||
|
||||
public BigBoardDebugInfoVO(String vistalinkIPAddress, String vistalinkPort) {
|
||||
super();
|
||||
this.vistalinkIPAddress = vistalinkIPAddress;
|
||||
this.vistalinkPort = vistalinkPort;
|
||||
}
|
||||
|
||||
public BigBoardDebugInfoVO() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getVistalinkIPAddress() {
|
||||
return vistalinkIPAddress;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setVistalinkIPAddress(String vistalinkIPAddress) {
|
||||
this.vistalinkIPAddress = vistalinkIPAddress;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getVistalinkPort() {
|
||||
return vistalinkPort;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setVistalinkPort(String vistalinkPort) {
|
||||
this.vistalinkPort = vistalinkPort;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getSiteId() {
|
||||
return siteId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setSiteId(String siteId) {
|
||||
this.siteId = siteId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getMachineName() {
|
||||
return machineName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setMachineName(String machineName) {
|
||||
this.machineName = machineName;
|
||||
}
|
||||
|
||||
|
||||
public String toString() {
|
||||
return "<vistalinkConnectionInfo><vistalinkIPAddress>" + vistalinkIPAddress + "</vistalinkIPAddress>" +
|
||||
"<vistalinkPort>" + vistalinkPort + "</vistalinkPort>" +
|
||||
"<siteId>" + siteId + "</siteId>" +
|
||||
"<machineName>" + machineName + "</machineName>" +
|
||||
"</vistalinkConnectionInfo>";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package gov.va.med.edp.vo;
|
||||
|
||||
public class SessionVO {
|
||||
|
||||
static final int DEFAULT_TIMEOUT_MS = 300000; // 5 minutes
|
||||
static final int DEFAULT_COUNTDOWN_MS = 10000; // 10 seconds
|
||||
|
||||
private String serverPackageVersion;
|
||||
private int timeOutMillis = DEFAULT_TIMEOUT_MS;
|
||||
private int countDownMillis = DEFAULT_COUNTDOWN_MS;
|
||||
|
||||
public String getServerPackageVersion() {
|
||||
return serverPackageVersion;
|
||||
}
|
||||
|
||||
public void setServerPackageVersion(String serverPackageVersion) {
|
||||
this.serverPackageVersion = serverPackageVersion;
|
||||
}
|
||||
|
||||
public int getTimeOutMillis() {
|
||||
return timeOutMillis;
|
||||
}
|
||||
|
||||
public void setTimeOutMillis(int timeOutMillis) {
|
||||
this.timeOutMillis = timeOutMillis;
|
||||
}
|
||||
|
||||
public int getCountDownMillis() {
|
||||
return countDownMillis;
|
||||
}
|
||||
|
||||
public void setCountDownMillis(int countDownMillis) {
|
||||
this.countDownMillis = countDownMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the time, in seconds, between client requests before the servlet container will invalidate this session.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getMaxInactiveInterval() {
|
||||
return (getTimeOutMillis() + getCountDownMillis()) / 1000 + 60;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "SessionVO{" +
|
||||
"serverPackageVersion='" + serverPackageVersion + '\'' +
|
||||
", timeOutMillis=" + timeOutMillis +
|
||||
", countDownMillis=" + countDownMillis +
|
||||
'}';
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
* TODO: document BigBoardClientVersionSynchronizationController
|
||||
*/
|
||||
public class BigBoardClientVersionSynchronizationController extends ClientVersionSynchronizationController {
|
||||
|
||||
|
||||
private String errorMsg;
|
||||
|
||||
private static Logger logger = Logger.getLogger(BigBoardClientVersionSynchronizationController.class);
|
||||
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
setRequireSession(false);
|
||||
super.afterPropertiesSet();
|
||||
Assert.notNull(serverPackageVersionDao, "serverPackageVersionDao must not be null");
|
||||
Assert.notNull(getSiteCodeDao(), "siteCodeDao is required");
|
||||
Assert.notNull(getTrackingDao(), "trackingDao is required");
|
||||
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
//First attempt is to get the machineName from HTTP Header:EdisClientMachineName as decided
|
||||
// this HTTP header is appended by the load balancer and the value of this header (the machine name)
|
||||
//is parsed by the load balancer.
|
||||
String machineName = parseCNFromHttpHeaders(request.getHeader(MACHINE_NAME_HEADER));
|
||||
|
||||
if (StringUtils.hasText(machineName)){
|
||||
debug("Machine name obtained from HTTP Header:" + MACHINE_NAME_HEADER + " was: " + machineName);
|
||||
} else {
|
||||
debug("No Machine name was found in HTTP Header:" + MACHINE_NAME_HEADER );
|
||||
machineName = getMachineNameFromUserPrincipalOrSessionOrRequest(request);
|
||||
}
|
||||
//set the machine name in an existing session for refreshes/restored sessions
|
||||
HttpSession session = request.getSession(false);
|
||||
if (session != null){
|
||||
session.setAttribute(MACHINE_NAME_PARAM, machineName);
|
||||
} else {
|
||||
return createErrorModelAndView("Invalid Session was detected. Please try re-launching the EDIS Big Board");
|
||||
}
|
||||
|
||||
String siteCode = getSiteCodeDao().getSiteCode(machineName);
|
||||
debug("Site Code Obtained for Machine: " + machineName + " was: " + siteCode);
|
||||
|
||||
if (!StringUtils.hasText(siteCode)){
|
||||
errorMsg = "A matching site code for the machine: " + machineName + " was not found in the EDP.SiteMapper table.\n" +
|
||||
"Please contact the EDIS national help desk with this message for remedy.";
|
||||
return createErrorModelAndView(errorMsg);
|
||||
}
|
||||
|
||||
String serverPackageVersion = (String) request.getSession().getAttribute(SessionConstants.SERVER_PACKAGE_VERSION_KEY);
|
||||
if (serverPackageVersion == null) {
|
||||
serverPackageVersion = serverPackageVersionDao.getServerPackageVersion(siteCode);
|
||||
request.getSession().setAttribute(SessionConstants.SERVER_PACKAGE_VERSION_KEY, serverPackageVersion);
|
||||
}
|
||||
debug("serverPackageVersion is: " + serverPackageVersion);
|
||||
|
||||
if (isBoardNameAvailableForMachine(siteCode, machineName, request)) return super.handleRequestInternal(request, response);
|
||||
|
||||
return createErrorModelAndView(errorMsg);
|
||||
}
|
||||
|
||||
private boolean isBoardNameAvailableForMachine(String siteCode, String machineName, HttpServletRequest request) {
|
||||
String result = getTrackingDao().executeCommand(siteCode, "0", buildParameterMap(request,machineName));
|
||||
if (result.startsWith("<error>")){
|
||||
int start = result.indexOf("<error>");
|
||||
int end = result.indexOf("</error>");
|
||||
errorMsg = result.substring(start + 7, end);
|
||||
debug("isBoardNameAvailableForMachine: false");
|
||||
return false;
|
||||
}
|
||||
debug("isBoardNameAvailableForMachine: true");
|
||||
return true;
|
||||
}
|
||||
|
||||
private void debug(String s) {
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug(s);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
|
||||
import gov.va.med.edp.web.view.XmlView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.support.WebContentGenerator;
|
||||
|
||||
public class BigDisplayBoardController extends SiteCodeController implements InitializingBean {
|
||||
|
||||
private static final String MACHINE_NAME_PARAM = SiteCodeController.MACHINE_NAME_PARAM;
|
||||
public static final String MACHINE_NAME_HEADER = SiteCodeController.MACHINE_NAME_HEADER;
|
||||
|
||||
protected static final String XML_VIEW = "xmlView";
|
||||
|
||||
private static Logger log = Logger.getLogger(BigDisplayBoardController.class);
|
||||
|
||||
public BigDisplayBoardController() {
|
||||
setRequireSession(false);
|
||||
setSupportedMethods(new String[]{WebContentGenerator.METHOD_POST, WebContentGenerator.METHOD_GET});
|
||||
}
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(getSiteCodeDao(), "siteCodeDao is required");
|
||||
Assert.notNull(getTrackingDao(), "trackingDao is required");
|
||||
Assert.notNull(getServerPackageVersionDao(), "ServerPackageVersionDao is required");
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String result = "";
|
||||
//First attempt is to get the machineName from HTTP Header:EdisClientMachineName as decided
|
||||
// this HTTP header is appended by the load balancer and the value of this header (the machine name)
|
||||
//is parsed by the load balancer.
|
||||
String machineName = parseCNFromHttpHeaders(request.getHeader(MACHINE_NAME_HEADER));
|
||||
|
||||
if (StringUtils.hasText(machineName)){
|
||||
clearRequestAndSession(request);
|
||||
} else {
|
||||
machineName = getMachineNameFromUserPrincipalOrSessionOrRequest(request);
|
||||
}
|
||||
debug("Machine name obtained from certificate/HTTP Header/request/session:" + machineName);
|
||||
String siteCode = getSiteCodeDao().getSiteCode(machineName);
|
||||
|
||||
if (!StringUtils.hasText(siteCode)){
|
||||
String errorMsg = "No site code was found for the machine name: " + machineName;
|
||||
return createErrorModelAndView(errorMsg);
|
||||
}
|
||||
|
||||
result = getTrackingDao().executeCommand(siteCode, "0", buildParameterMap(request,machineName));
|
||||
if (isInitCommand(request))
|
||||
result = appendSiteAndVistaLinkConnectionInfo(result, request, siteCode, machineName);
|
||||
return createModelAndView(result, siteCode, machineName);
|
||||
}
|
||||
|
||||
|
||||
private void clearRequestAndSession(HttpServletRequest request) {
|
||||
request.getSession().setAttribute(MACHINE_NAME_PARAM, null);
|
||||
request.setAttribute(MACHINE_NAME_PARAM, null);
|
||||
}
|
||||
|
||||
private boolean isInitCommand(HttpServletRequest request) {
|
||||
if (request.getParameter("command").equals("initDisplayBoard")) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
protected ModelAndView createModelAndView(String result, String siteCode, String machineName) {
|
||||
return new ModelAndView(XML_VIEW, XmlView.XML_FRAGMENT, result);
|
||||
}
|
||||
|
||||
private String appendSiteAndVistaLinkConnectionInfo(String result,HttpServletRequest request, String siteCode, String machineName) {
|
||||
BigBoardDebugInfoVO vistalinkInfo = serverPackageVersionDao.getVistaLinkConnectionInfo(siteCode);
|
||||
vistalinkInfo.setSiteId(siteCode);
|
||||
vistalinkInfo.setMachineName(machineName);
|
||||
result = result.concat(vistalinkInfo.toString());
|
||||
return result;
|
||||
}
|
||||
|
||||
private void debug(String s) {
|
||||
if (log.isDebugEnabled()){
|
||||
log.debug(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,122 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import gov.va.med.edp.web.servlet.listener.TimeOutIntegrationSessionAttributeListener;
|
||||
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
* TODO: document PackageClientVersionSynchronizationController
|
||||
*/
|
||||
public class ClientVersionSynchronizationController extends SiteCodeController implements InitializingBean {
|
||||
|
||||
public static final String DEFAULT_INCOMPATIBILITY_VIEW = "incompatibilityView";
|
||||
|
||||
private String clientArtifactId;
|
||||
private String viewName;
|
||||
private String incompatibilityViewName = DEFAULT_INCOMPATIBILITY_VIEW;
|
||||
private Random random = new Random();
|
||||
|
||||
public ClientVersionSynchronizationController() {
|
||||
setRequireSession(true);
|
||||
}
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(clientArtifactId, "clientArtifactId must not be null");
|
||||
Assert.notNull(viewName, "viewName must not be null");
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String serverPackageVersion = (String) request.getSession().getAttribute(SessionConstants.SERVER_PACKAGE_VERSION_KEY);
|
||||
if (serverPackageVersion == null) {
|
||||
DataAccessException error = (DataAccessException) request.getSession().getAttribute(SessionConstants.SERVER_ERROR_KEY);
|
||||
if (error != null) {
|
||||
throw error;
|
||||
} else {
|
||||
throw new IllegalStateException("Didn't find server package version number or an error explaining its absence in session. Is the " +
|
||||
TimeOutIntegrationSessionAttributeListener.class.getName() + " session listener configured correctly?");
|
||||
}
|
||||
}
|
||||
|
||||
String swfID = generateAndRememberSwfId(request);
|
||||
|
||||
return createModelAndView(serverPackageVersion, swfID);
|
||||
}
|
||||
|
||||
// generate a swf id and add to list for this session
|
||||
private String generateAndRememberSwfId(HttpServletRequest request) {
|
||||
String swfID = generateUid();
|
||||
String ids = (String) request.getSession().getAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY);
|
||||
|
||||
Set idSet = StringUtils.commaDelimitedListToSet(ids);
|
||||
while (idSet.contains(swfID)) {
|
||||
swfID = generateUid();
|
||||
}
|
||||
idSet.add(swfID);
|
||||
ids = StringUtils.collectionToCommaDelimitedString(idSet);
|
||||
|
||||
request.getSession().setAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY, ids);
|
||||
return swfID;
|
||||
}
|
||||
|
||||
protected ModelAndView createModelAndView(String serverPackageVersion, String swfID) {
|
||||
ModelAndView mav = new ModelAndView(isCompatible(serverPackageVersion) ? getViewName() : getIncompatibilityViewName());
|
||||
mav.addObject("swfID", swfID);
|
||||
mav.addObject("serverPackageVersion", serverPackageVersion);
|
||||
mav.addObject("clientVersion", serverPackageVersion); // TODO: remove this from flashVars after Flex 3 migration (use resource bundle inside SWF)
|
||||
mav.addObject("clientArtifactId", getClientArtifactId());
|
||||
mav.addObject("clientFinalName", getClientFinalName(serverPackageVersion));
|
||||
return mav;
|
||||
}
|
||||
|
||||
private String generateUid() {
|
||||
return Integer.toString(Math.abs(random.nextInt()));
|
||||
}
|
||||
|
||||
private boolean isCompatible(String serverPackageVersion) {
|
||||
Resource r = getWebApplicationContext().getResource(getClientFileName(serverPackageVersion));
|
||||
return r.exists();
|
||||
}
|
||||
|
||||
private String getClientFinalName(String serverPackageVersion) {
|
||||
return getClientArtifactId() + "-" + serverPackageVersion;
|
||||
}
|
||||
|
||||
private String getClientFileName(String serverPackageVersion) {
|
||||
return getClientFinalName(serverPackageVersion) + ".swf";
|
||||
}
|
||||
|
||||
public String getClientArtifactId() {
|
||||
return clientArtifactId;
|
||||
}
|
||||
|
||||
public void setClientArtifactId(String clientArtifactId) {
|
||||
this.clientArtifactId = clientArtifactId;
|
||||
}
|
||||
|
||||
public String getViewName() {
|
||||
return viewName;
|
||||
}
|
||||
|
||||
public void setViewName(String viewName) {
|
||||
this.viewName = viewName;
|
||||
}
|
||||
|
||||
public String getIncompatibilityViewName() {
|
||||
return incompatibilityViewName;
|
||||
}
|
||||
|
||||
public void setIncompatibilityViewName(String incompatibilityViewName) {
|
||||
this.incompatibilityViewName = incompatibilityViewName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import gov.va.med.edp.web.view.CsvView;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.support.WebContentGenerator;
|
||||
|
||||
public class ExportReportController extends TrackingController {
|
||||
private static final String CSV_VIEW = "csvView";
|
||||
|
||||
public ExportReportController() {
|
||||
super();
|
||||
setSupportedMethods(new String[]{WebContentGenerator.METHOD_POST, WebContentGenerator.METHOD_GET});
|
||||
}
|
||||
|
||||
protected ModelAndView createModelAndView(String result) {
|
||||
return new ModelAndView(CSV_VIEW, CsvView.CSV_MODEL, result);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import org.springframework.web.servlet.mvc.AbstractController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Controller for handling logout.
|
||||
* <p/>
|
||||
* Only logic for logout other than invalidating the session is remove the swfID from the list of recognized ones
|
||||
* for this session. If the count drops to 0, or the swfID is not supplied, then invalidate the session.
|
||||
*/
|
||||
public class LogoutController extends AbstractController implements InitializingBean {
|
||||
|
||||
public static final String DEFAULT_VIEW_NAME = "logout";
|
||||
|
||||
private String viewName = DEFAULT_VIEW_NAME;
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(viewName, "viewName must not be null");
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String swfID = request.getParameter("swfID");
|
||||
if (!StringUtils.hasLength(swfID)) {
|
||||
request.getSession().invalidate();
|
||||
} else {
|
||||
String ids = (String) request.getSession().getAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY);
|
||||
Set idSet = StringUtils.commaDelimitedListToSet(ids);
|
||||
if (idSet.isEmpty()) {
|
||||
request.getSession().invalidate();
|
||||
} else {
|
||||
idSet.remove(swfID);
|
||||
if (idSet.isEmpty()) {
|
||||
request.getSession().setAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY, null);
|
||||
request.getSession().invalidate();
|
||||
} else {
|
||||
ids = StringUtils.collectionToCommaDelimitedString(idSet);
|
||||
request.getSession().setAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY, ids);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new ModelAndView(getViewName());
|
||||
}
|
||||
|
||||
public String getViewName() {
|
||||
return viewName;
|
||||
}
|
||||
|
||||
public void setViewName(String viewName) {
|
||||
this.viewName = viewName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
public class NoUserInfoInSessionException extends Exception {
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
/**
|
||||
* Constants used as keys for session attributes.
|
||||
*/
|
||||
public class SessionConstants {
|
||||
|
||||
public static final String SERVER_PACKAGE_VERSION_KEY = "edis.server.package.version";
|
||||
public static final String SERVER_ERROR_KEY = "edis.server.error";
|
||||
public static final String RECOGNIZED_SWF_IDS_KEY = "edis.swf.ids";
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import gov.va.med.edp.dao.ServerPackageVersionDao;
|
||||
import gov.va.med.edp.dao.SiteCodeLookUpDao;
|
||||
import gov.va.med.edp.dao.TrackingDao;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.AbstractController;
|
||||
|
||||
public abstract class SiteCodeController extends AbstractController {
|
||||
|
||||
public static final String MACHINE_NAME_PARAM = "machineName";
|
||||
public static final String SITE_CODE_PARAM = "siteCode";
|
||||
public static final String MACHINE_NAME_HEADER = "EdisClientMachineName";
|
||||
|
||||
private SiteCodeLookUpDao siteCodeDao;
|
||||
private TrackingDao trackingDao;
|
||||
|
||||
private String errorViewName;
|
||||
protected ServerPackageVersionDao serverPackageVersionDao;
|
||||
|
||||
private static Logger log = Logger.getLogger(SiteCodeController.class);
|
||||
|
||||
|
||||
protected ModelAndView createErrorModelAndView(String errorMessage) {
|
||||
ModelAndView mav = new ModelAndView(getErrorViewName());
|
||||
mav.addObject("errorMessage", errorMessage);
|
||||
return mav;
|
||||
}
|
||||
|
||||
public SiteCodeLookUpDao getSiteCodeDao() {
|
||||
return siteCodeDao;
|
||||
}
|
||||
|
||||
|
||||
public void setSiteCodeDao(SiteCodeLookUpDao siteCodeDao) {
|
||||
this.siteCodeDao = siteCodeDao;
|
||||
}
|
||||
|
||||
|
||||
public String getErrorViewName() {
|
||||
return errorViewName;
|
||||
}
|
||||
|
||||
|
||||
public void setErrorViewName(String errorViewName) {
|
||||
this.errorViewName = errorViewName;
|
||||
}
|
||||
|
||||
protected Map buildParameterMap(HttpServletRequest request, String machineName) {
|
||||
Map params = new HashMap();
|
||||
Enumeration e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String paramName = (String) e.nextElement();
|
||||
params.put(paramName, request.getParameter(paramName));
|
||||
}
|
||||
//add the machine name that needs to be passed into M here
|
||||
params.put("machine", machineName.toUpperCase());
|
||||
debug("Parameters:" + params.toString());
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
protected String parseCNFromHttpHeaders(String machineName){
|
||||
if (StringUtils.hasText(machineName) && machineName.startsWith("CN=")){
|
||||
return machineName.substring(3);
|
||||
}
|
||||
debug("Parsed Machine Name from Http Header is:" + machineName);
|
||||
return machineName;
|
||||
}
|
||||
|
||||
public TrackingDao getTrackingDao() {
|
||||
return trackingDao;
|
||||
}
|
||||
|
||||
|
||||
public void setTrackingDao(TrackingDao trackingDao) {
|
||||
this.trackingDao = trackingDao;
|
||||
}
|
||||
|
||||
private void debug(String s) {
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug(s);
|
||||
}
|
||||
}
|
||||
|
||||
protected String getMachineNameFromUserPrincipalOrSessionOrRequest(HttpServletRequest request) throws UnrecognizedClientException {
|
||||
String machineName = "";
|
||||
|
||||
//first try user principal. This is for situations where we don't have a load balancer in the mix
|
||||
// this is where the client is talking directly to a weblogic server using 2-way ssl..
|
||||
if (request.getUserPrincipal() != null){
|
||||
machineName = request.getUserPrincipal().getName();
|
||||
debug("Machine name retrieved from user principal is:" + machineName);
|
||||
}
|
||||
|
||||
//then try request
|
||||
if (!StringUtils.hasText(machineName)){
|
||||
machineName = request.getParameter(MACHINE_NAME_PARAM);
|
||||
debug("Machine name retrieved from HTTP Request is:" + machineName);
|
||||
}
|
||||
//then try the session..
|
||||
if (!StringUtils.hasText(machineName)){
|
||||
machineName =(String)request.getSession().getAttribute(MACHINE_NAME_PARAM);
|
||||
debug("Machine name retrieved from HTTP Session is:" + machineName);
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(machineName)){
|
||||
return machineName;
|
||||
} else {
|
||||
throw new UnrecognizedClientException(UnrecognizedClientException.NO_MACHINE_NAME_PARAM_MESSAGE, MACHINE_NAME_PARAM);
|
||||
}
|
||||
}
|
||||
|
||||
public void setServerPackageVersionDao(ServerPackageVersionDao serverPackageVersionDao) {
|
||||
this.serverPackageVersionDao = serverPackageVersionDao;
|
||||
}
|
||||
|
||||
public ServerPackageVersionDao getServerPackageVersionDao() {
|
||||
return this.serverPackageVersionDao;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.AbstractController;
|
||||
|
||||
/**
|
||||
* TODO: document PackageClientVersionSynchronizationController
|
||||
*/
|
||||
public class TestController extends AbstractController implements InitializingBean {
|
||||
|
||||
public static final String EDIS_MACHINE_NAME_HEADER = "EdisClientMachineName";
|
||||
|
||||
private String viewName;
|
||||
private static Logger logger = Logger.getLogger(TestController.class);
|
||||
|
||||
public TestController() {
|
||||
setRequireSession(true);
|
||||
}
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(viewName, "viewName must not be null");
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
if (logger.isDebugEnabled()){
|
||||
logger.debug("Inside handleRequestInternal() method. The view name is:" + getViewName());
|
||||
logger.debug("The value for the HTTP Header '" + EDIS_MACHINE_NAME_HEADER + "' is: " + getClientMachineName(request));
|
||||
}
|
||||
|
||||
ModelAndView mav = new ModelAndView(getViewName());
|
||||
mav.addObject(EDIS_MACHINE_NAME_HEADER, getClientMachineName(request));
|
||||
mav.addObject("HttpHeaders", getAllHttpHeaders(request));
|
||||
return mav;
|
||||
}
|
||||
|
||||
|
||||
private Object getAllHttpHeaders(HttpServletRequest request) {
|
||||
String headers = "";
|
||||
Enumeration headersEnum = request.getHeaderNames();
|
||||
while (headersEnum.hasMoreElements()) {
|
||||
String headerName = (String) headersEnum.nextElement();
|
||||
headers = headers + headerName + "=" + request.getHeader(headerName) + "<br/>";
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
private String getClientMachineName(HttpServletRequest request) {
|
||||
return parseMachineName(request.getHeader(EDIS_MACHINE_NAME_HEADER));
|
||||
}
|
||||
|
||||
|
||||
private String parseMachineName(String machineName){
|
||||
if (StringUtils.hasText(machineName) && machineName.startsWith("CN=")){
|
||||
String name = machineName.substring(3);
|
||||
return name;
|
||||
}
|
||||
return machineName;
|
||||
}
|
||||
|
||||
public String getViewName() {
|
||||
return viewName;
|
||||
}
|
||||
|
||||
public void setViewName(String viewName) {
|
||||
this.viewName = viewName;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
import gov.va.med.authentication.kernel.LoginUserInfoVO;
|
||||
import gov.va.med.edp.dao.ServerPackageVersionDao;
|
||||
import gov.va.med.edp.dao.TrackingDao;
|
||||
import gov.va.med.edp.vo.BigBoardDebugInfoVO;
|
||||
import gov.va.med.edp.web.view.XmlView;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.AbstractController;
|
||||
import org.springframework.web.servlet.support.WebContentGenerator;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Set;
|
||||
|
||||
public class TrackingController extends AbstractController implements InitializingBean {
|
||||
|
||||
private TrackingDao trackingDao;
|
||||
private ServerPackageVersionDao serverPackageVersionDao;
|
||||
protected static final String XML_VIEW = "xmlView";
|
||||
|
||||
public TrackingController() {
|
||||
setRequireSession(true);
|
||||
setSupportedMethods(new String[]{WebContentGenerator.METHOD_POST});
|
||||
}
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.notNull(trackingDao, "trackingDao is required");
|
||||
}
|
||||
|
||||
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
validateSwfID(request);
|
||||
LoginUserInfoVO userInfo = getUserInfo(request);
|
||||
String result = trackingDao.executeCommand(userInfo.getLoginStationNumber(), userInfo.getUserDuz(), buildParameterMap(request));
|
||||
if (isInitDisplayBoardCommand(request))
|
||||
result = appendSiteAndVistaLinkConnectionInfo(result, request);
|
||||
return createModelAndView(result);
|
||||
}
|
||||
|
||||
private void validateSwfID(HttpServletRequest request) throws UnrecognizedClientException {
|
||||
String swfID = request.getParameter("swfID");
|
||||
if (!StringUtils.hasLength(swfID)) return;
|
||||
|
||||
String ids = (String) request.getSession().getAttribute(SessionConstants.RECOGNIZED_SWF_IDS_KEY);
|
||||
Set idSet = StringUtils.commaDelimitedListToSet(ids);
|
||||
if (idSet.isEmpty()) throw new UnrecognizedClientException(UnrecognizedClientException.UNRECOGNIZED_CLIENT_MESSAGE, swfID);
|
||||
if (!idSet.contains(swfID)) throw new UnrecognizedClientException(UnrecognizedClientException.UNRECOGNIZED_CLIENT_MESSAGE, swfID);
|
||||
}
|
||||
|
||||
public void setTrackingDao(TrackingDao trackingDao) {
|
||||
this.trackingDao = trackingDao;
|
||||
}
|
||||
|
||||
public void setServerPackageVersionDao(ServerPackageVersionDao serverPackageVersionDao) {
|
||||
this.serverPackageVersionDao = serverPackageVersionDao;
|
||||
}
|
||||
|
||||
protected LoginUserInfoVO getUserInfo(HttpServletRequest request) throws NoUserInfoInSessionException {
|
||||
LoginUserInfoVO userInfo = (LoginUserInfoVO) request.getSession().getAttribute(LoginUserInfoVO.SESSION_KEY);
|
||||
if (userInfo == null) throw new NoUserInfoInSessionException();
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
protected ModelAndView createModelAndView(String result) {
|
||||
return new ModelAndView(XML_VIEW, XmlView.XML_FRAGMENT, result);
|
||||
}
|
||||
|
||||
private boolean isInitDisplayBoardCommand(HttpServletRequest request) {
|
||||
if (request.getParameter("command").equals("initDisplayBoard")) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private String appendSiteAndVistaLinkConnectionInfo(String result,HttpServletRequest request) throws Exception{
|
||||
String stnNumber = getUserInfo(request).getLoginStationNumber();
|
||||
BigBoardDebugInfoVO vistalinkInfo = serverPackageVersionDao.getVistaLinkConnectionInfo(stnNumber);
|
||||
vistalinkInfo.setSiteId(stnNumber);
|
||||
result = result.concat(vistalinkInfo.toString());
|
||||
return result;
|
||||
}
|
||||
|
||||
protected Map buildParameterMap(HttpServletRequest request) {
|
||||
Map params = new HashMap();
|
||||
Enumeration e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String paramName = (String) e.nextElement();
|
||||
params.put(paramName, request.getParameter(paramName));
|
||||
}
|
||||
return params;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package gov.va.med.edp.web.controller;
|
||||
|
||||
/**
|
||||
* TODO: document UnrecognizedClientException
|
||||
*/
|
||||
public class UnrecognizedClientException extends Exception {
|
||||
|
||||
public static final String UNRECOGNIZED_CLIENT_MESSAGE = "request from an unrecognized client with swfID=";
|
||||
public static final String NO_MACHINE_NAME_PARAM_MESSAGE = "Could not find machine name in the HTTPHeader " + SiteCodeController.MACHINE_NAME_HEADER + " nor found the machine name in user principal or request parameter with name";
|
||||
|
||||
public UnrecognizedClientException(String message, String swfID) {
|
||||
super(message + "'" + swfID + "'");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package gov.va.med.edp.web.handler;
|
||||
|
||||
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
public class ExceptionResolver extends SimpleMappingExceptionResolver{
|
||||
protected ModelAndView getModelAndView(String viewName, Exception ex, HttpServletRequest request) {
|
||||
ModelAndView mav = super.getModelAndView(viewName, ex, request);
|
||||
mav.addObject("resource", request.getRequestURI());
|
||||
return mav;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package gov.va.med.edp.web.servlet.filter;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* Servlet filter that sets HTTP Response Headers based on initialization parameters.
|
||||
* <p/>
|
||||
* Example usage in web.xml of servlet application:
|
||||
* <code>
|
||||
* <filter>
|
||||
* <filter-name>responseHeaderFilter</filter-name>
|
||||
* <filter-class>gov.va.med.edp.web.servlet.filter.ResponseHeaderFilter</filter-class>
|
||||
* <init-param>
|
||||
* <param-name>Cache-Control</param-name>
|
||||
* <param-value>max-age=3600</param-value>
|
||||
* </init-param>
|
||||
* </filter>
|
||||
* ...
|
||||
* <filter-mapping>
|
||||
* <filter-name>responseHeaderFilter</filter-name>
|
||||
* <url-pattern>/logo.png</url-pattern>
|
||||
* </filter-mapping>
|
||||
* </code>
|
||||
*/
|
||||
public class ResponseHeaderFilter implements Filter {
|
||||
|
||||
FilterConfig filterConfig;
|
||||
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
this.filterConfig = filterConfig;
|
||||
}
|
||||
|
||||
public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {
|
||||
HttpServletResponse response = (HttpServletResponse) res;
|
||||
// set the provided HTTP response parameters
|
||||
for (Enumeration e = filterConfig.getInitParameterNames(); e.hasMoreElements();) {
|
||||
String headerName = (String) e.nextElement();
|
||||
response.addHeader(headerName, filterConfig.getInitParameter(headerName));
|
||||
}
|
||||
|
||||
filterChain.doFilter(req, response);
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
this.filterConfig = null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
package gov.va.med.edp.web.servlet.listener;
|
||||
|
||||
import gov.va.med.authentication.kernel.LoginUserInfoVO;
|
||||
import gov.va.med.edp.dao.SessionDao;
|
||||
import gov.va.med.edp.vo.SessionVO;
|
||||
import gov.va.med.edp.web.controller.SessionConstants;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
import org.springframework.web.context.support.WebApplicationContextUtils;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
|
||||
import javax.servlet.http.HttpSessionAttributeListener;
|
||||
import javax.servlet.http.HttpSessionBindingEvent;
|
||||
|
||||
public class TimeOutIntegrationSessionAttributeListener implements HttpSessionAttributeListener {
|
||||
private static final String SESSION_DAO_BEAN_NAME = "sessionDao";
|
||||
|
||||
private static final Log log = LogFactory.getLog(TimeOutIntegrationSessionAttributeListener.class);
|
||||
|
||||
public void attributeAdded(HttpSessionBindingEvent event) {
|
||||
if (!event.getName().equals(LoginUserInfoVO.SESSION_KEY)) return;
|
||||
|
||||
setTimeOut(event);
|
||||
}
|
||||
|
||||
public void attributeRemoved(HttpSessionBindingEvent event) {
|
||||
if (!event.getName().equals(LoginUserInfoVO.SESSION_KEY)) return;
|
||||
}
|
||||
|
||||
public void attributeReplaced(HttpSessionBindingEvent event) {
|
||||
if (!event.getName().equals(LoginUserInfoVO.SESSION_KEY)) return;
|
||||
|
||||
setTimeOut(event);
|
||||
}
|
||||
|
||||
private void setTimeOut(HttpSessionBindingEvent event) {
|
||||
LoginUserInfoVO userInfo = (LoginUserInfoVO) event.getValue();
|
||||
|
||||
try {
|
||||
WebApplicationContext ac = getApplicationContext(event);
|
||||
SessionDao dao = (SessionDao) ac.getBean(SESSION_DAO_BEAN_NAME, SessionDao.class);
|
||||
|
||||
SessionVO sessionInfo = dao.getSessionInfo(userInfo.getLoginStationNumber(), userInfo.getUserDuz());
|
||||
|
||||
String serverPackageVersion = sessionInfo.getServerPackageVersion();
|
||||
if (log.isDebugEnabled()) log.debug("set server package version to '" + serverPackageVersion + "'");
|
||||
event.getSession().setAttribute(SessionConstants.SERVER_PACKAGE_VERSION_KEY, serverPackageVersion);
|
||||
|
||||
int timeOut = sessionInfo.getMaxInactiveInterval();
|
||||
event.getSession().setMaxInactiveInterval(timeOut);
|
||||
if (log.isDebugEnabled()) log.debug("set timeout for user " + userInfo.getUserDuz() + " to " + timeOut + " seconds.");
|
||||
} catch (DataAccessException e) {
|
||||
log.error("unable to fetch session info", e);
|
||||
event.getSession().setAttribute(SessionConstants.SERVER_ERROR_KEY, e);
|
||||
}
|
||||
}
|
||||
|
||||
private WebApplicationContext getApplicationContext(HttpSessionBindingEvent event) throws IllegalStateException {
|
||||
return WebApplicationContextUtils.getRequiredWebApplicationContext(event.getSession().getServletContext());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package gov.va.med.edp.web.view;
|
||||
|
||||
import org.springframework.web.servlet.view.AbstractView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Map;
|
||||
|
||||
public class CsvView extends AbstractView {
|
||||
|
||||
public static final String CSV_MODEL = "csvModel";
|
||||
private static final String CONTENT_TYPE = "application/vnd.ms-excel";
|
||||
|
||||
public CsvView() {
|
||||
setContentType(CONTENT_TYPE);
|
||||
}
|
||||
|
||||
protected void renderMergedOutputModel(Map map, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
HttpCacheControl.addNoCacheHeaders(response);
|
||||
response.getWriter().print(map.get(CSV_MODEL));
|
||||
response.getWriter().close();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package gov.va.med.edp.web.view;
|
||||
|
||||
import org.springframework.web.servlet.support.WebContentGenerator;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* TODO: document HttpCacheControl
|
||||
*/
|
||||
public class HttpCacheControl {
|
||||
static final java.lang.String HEADER_CACHE_CONTROL = "Cache-Control";
|
||||
static final java.lang.String HEADER_EXPIRES = "Expires";
|
||||
|
||||
public static void addNoCacheHeaders(HttpServletResponse response) {
|
||||
response.setHeader(HEADER_CACHE_CONTROL, "no-store, must-revalidate");
|
||||
response.setHeader(HEADER_EXPIRES, "Thu, 01 Jan 1970 01:00:00 GMT");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package gov.va.med.edp.web.view;
|
||||
|
||||
import org.springframework.web.servlet.view.AbstractView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Map;
|
||||
|
||||
public class XmlView extends AbstractView {
|
||||
public static final String XML_FRAGMENT = "xmlFragment";
|
||||
|
||||
public XmlView() {
|
||||
setContentType("text/xml;charset=utf-8");
|
||||
}
|
||||
|
||||
protected void renderMergedOutputModel(Map map, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
HttpCacheControl.addNoCacheHeaders(response);
|
||||
|
||||
response.getWriter().println("<?xml version='1.0' encoding='UTF-8'?>");
|
||||
response.getWriter().println("<results>");
|
||||
response.getWriter().println(map.get(XML_FRAGMENT));
|
||||
response.getWriter().println("</results>");
|
||||
response.getWriter().close();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,233 @@
|
|||
<?xml version="1.0"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-parent</artifactId>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<relativePath>../tracking-parent</relativePath>
|
||||
</parent>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-main</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>EDIS Tracking Server Application</name>
|
||||
<version>1.0-T29-SNAPSHOT</version>
|
||||
<description>Emergency Department Integration Software - Tracking Server Application</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-ui-main</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>swf</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-ui-bigboard</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>swf</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.edp</groupId>
|
||||
<artifactId>edis-tracking-server-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.authentication</groupId>
|
||||
<artifactId>kaajee</artifactId>
|
||||
<version>1.0.1.002</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.term</groupId>
|
||||
<artifactId>vha-stddata-client</artifactId>
|
||||
<version>${vha.stddata.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>gov.va.med.term</groupId>
|
||||
<artifactId>vha-stddata-basic</artifactId>
|
||||
<version>${vha.stddata.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.intersystems</groupId>
|
||||
<artifactId>cache-db</artifactId>
|
||||
<version>5.2</version>
|
||||
<classifier>jdk14</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>weblogic</groupId>
|
||||
<artifactId>weblogic</artifactId>
|
||||
<version>8.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>taglibs</groupId>
|
||||
<artifactId>standard</artifactId>
|
||||
<version>1.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>${edis.tracking.trackingContextRoot}</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>src/main/webapp/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>kaajeeConfig.xml</include>
|
||||
<include>weblogic.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${edis.tracking.build.swf.directory}</directory>
|
||||
<targetPath>/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.swf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<replaceregexp byline="true">
|
||||
<regexp pattern="app.buildtime=BUILD_TIME_PLACEHOLDER"/>
|
||||
<substitution expression="app.buildtime=${timestamp}"/>
|
||||
<fileset dir="target" includes="**/*.properties"/>
|
||||
</replaceregexp>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant-nodeps</artifactId>
|
||||
<version>1.6.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>include-latest-client-version</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<includeTypes>swf</includeTypes>
|
||||
<outputDirectory>${edis.tracking.build.swf.directory}</outputDirectory>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
<excludeTransitive>true</excludeTransitive>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>include-backwards-compatible-client-versions</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>edis-tracking-ui-main</artifactId>
|
||||
<version>1.0-T28</version>
|
||||
<type>swf</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${edis.tracking.build.swf.directory}</outputDirectory>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>dev</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>src/main/webapp-dev/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>kaajeeConfig.xml</include>
|
||||
</includes>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/webapp/WEB-INF</directory>
|
||||
<includes>
|
||||
<include>weblogic.xml</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>kaajeeConfig.xml</exclude>
|
||||
</excludes>
|
||||
<filtering>true</filtering>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${edis.tracking.build.swf.directory}</directory>
|
||||
<targetPath>/</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.swf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
<properties>
|
||||
<edis.tracking.build.swf.directory>${project.build.directory}/swf</edis.tracking.build.swf.directory>
|
||||
</properties>
|
||||
</project>
|
|
@ -0,0 +1,9 @@
|
|||
# Generated by genAppProperties.xsl at 2007-09-06 02:48:11
|
||||
#
|
||||
# Application=med.term.access
|
||||
# Environment=readonly
|
||||
# Database=hsqldb
|
||||
#
|
||||
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.TableManager$Factory=gov.va.med.term.access.readonly.factory.db.TableManagerFactory
|
||||
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.*$Factory=gov.va.med.term.access.readonly.factory.cache.*Factory
|
||||
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.readonly.Readonly*$Factory=gov.va.med.term.access.readonly.factory.db.*Factory
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
<bean id="trackingDao" class="gov.va.med.edp.dao.rpc.VistaLinkTrackingDao"/>
|
||||
<bean id="bigBoardDao" class="gov.va.med.edp.dao.rpc.VistaLinkBigBoardDao"/>
|
||||
<bean id="sessionDao" class="gov.va.med.edp.dao.rpc.VistaLinkSessionDao"/>
|
||||
<bean id="serverPackageVersionDao" class="gov.va.med.edp.dao.rpc.VistaLinkServerPackageVersionDao"/>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,9 @@
|
|||
app.name=Emergency Department Integration Software - Tracking Application
|
||||
app.version=${project.version}
|
||||
app.buildtime=BUILD_TIME_PLACEHOLDER
|
||||
copyright.year=2008
|
||||
copyright.organization.url=http://www.va.gov
|
||||
copyright.organization=Department of Veterans Affairs
|
||||
help.contextRoot=${edis.tracking.helpContextRoot}
|
||||
logged.out=You have been logged out.
|
||||
login.again=Log in again.
|
|
@ -0,0 +1,235 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kaajee-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="kaajeeConfig.xsd">
|
||||
|
||||
<!-- host application name, used for login page display and logging -->
|
||||
<host-application-name>EDIS Tracking Board</host-application-name>
|
||||
|
||||
<!-- put each station number for KAAJEE login here -->
|
||||
<login-station-numbers>
|
||||
<station-number>402</station-number>
|
||||
<station-number>405</station-number>
|
||||
<station-number>423</station-number>
|
||||
<station-number>433</station-number>
|
||||
<station-number>436</station-number>
|
||||
<station-number>437</station-number>
|
||||
<station-number>438</station-number>
|
||||
<station-number>442</station-number>
|
||||
<station-number>447</station-number>
|
||||
<station-number>454</station-number>
|
||||
<station-number>459</station-number>
|
||||
<station-number>460</station-number>
<station-number>463</station-number>
|
||||
<station-number>500</station-number>
|
||||
<station-number>501</station-number>
|
||||
<station-number>502</station-number>
|
||||
<station-number>503</station-number>
|
||||
<station-number>504</station-number>
|
||||
<station-number>506</station-number>
|
||||
<station-number>508</station-number>
|
||||
<station-number>509</station-number>
|
||||
<station-number>509A0</station-number>
|
||||
<station-number>512</station-number>
|
||||
<station-number>512A5</station-number>
|
||||
<station-number>515</station-number>
|
||||
<station-number>516</station-number>
|
||||
<station-number>517</station-number>
|
||||
<station-number>518</station-number>
|
||||
<station-number>519</station-number>
|
||||
<station-number>520</station-number>
|
||||
<station-number>520A0</station-number>
|
||||
<station-number>521</station-number>
|
||||
<station-number>523</station-number>
|
||||
<station-number>523A4</station-number>
|
||||
<station-number>523A5</station-number>
|
||||
<station-number>524</station-number>
|
||||
<station-number>526</station-number>
|
||||
<station-number>528</station-number>
|
||||
<station-number>528A4</station-number>
|
||||
<station-number>528A5</station-number>
|
||||
<station-number>528A6</station-number>
|
||||
<station-number>528A7</station-number>
|
||||
<station-number>528A8</station-number>
|
||||
<station-number>529</station-number>
|
||||
<station-number>531</station-number>
|
||||
<station-number>534</station-number>
|
||||
<station-number>537</station-number>
|
||||
<station-number>538</station-number>
|
||||
<station-number>539</station-number>
|
||||
<station-number>540</station-number>
|
||||
<station-number>541</station-number>
|
||||
<station-number>542</station-number>
|
||||
<station-number>544</station-number>
|
||||
<station-number>546</station-number>
|
||||
<station-number>548</station-number>
|
||||
<station-number>549</station-number>
|
||||
<station-number>549A4</station-number>
|
||||
<station-number>550</station-number>
|
||||
<station-number>552</station-number>
|
||||
<station-number>553</station-number>
|
||||
<station-number>554</station-number>
|
||||
<station-number>556</station-number>
|
||||
<station-number>557</station-number>
|
||||
<station-number>558</station-number>
|
||||
<station-number>561</station-number>
|
||||
<station-number>561A4</station-number>
|
||||
<station-number>562</station-number>
|
||||
<station-number>564</station-number>
|
||||
<station-number>565</station-number>
|
||||
<station-number>568</station-number>
|
||||
<station-number>568A4</station-number>
|
||||
<station-number>570</station-number>
|
||||
<station-number>573</station-number>
|
||||
<station-number>573A4</station-number>
|
||||
<station-number>575</station-number>
|
||||
<station-number>578</station-number>
|
||||
<station-number>580</station-number>
|
||||
<station-number>581</station-number>
|
||||
<station-number>583</station-number>
|
||||
<station-number>585</station-number>
|
||||
<station-number>586</station-number>
|
||||
<station-number>589</station-number>
|
||||
<station-number>589A4</station-number>
|
||||
<station-number>589A5</station-number>
|
||||
<station-number>589A6</station-number>
|
||||
<station-number>589A7</station-number>
|
||||
<station-number>590</station-number>
|
||||
<station-number>593</station-number>
|
||||
<station-number>595</station-number>
|
||||
<station-number>596</station-number>
|
||||
<station-number>596A4</station-number>
|
||||
<station-number>598</station-number>
|
||||
<station-number>600</station-number>
|
||||
<station-number>603</station-number>
|
||||
<station-number>605</station-number>
|
||||
<station-number>607</station-number>
|
||||
<station-number>608</station-number>
|
||||
<station-number>610</station-number>
|
||||
<station-number>610A4</station-number>
|
||||
<station-number>612</station-number>
|
||||
<station-number>612A4</station-number>
|
||||
<station-number>613</station-number>
|
||||
<station-number>614</station-number>
|
||||
<station-number>618</station-number>
|
||||
<station-number>619</station-number>
|
||||
<station-number>619A4</station-number>
|
||||
<station-number>620</station-number>
|
||||
<station-number>620A4</station-number>
|
||||
<station-number>621</station-number>
|
||||
<station-number>623</station-number>
|
||||
<station-number>626</station-number>
|
||||
<station-number>626A4</station-number>
|
||||
<station-number>629</station-number>
|
||||
<station-number>630</station-number>
|
||||
<station-number>630A4</station-number>
|
||||
<station-number>630A5</station-number>
|
||||
<station-number>631</station-number>
|
||||
<station-number>632</station-number>
|
||||
<station-number>635</station-number>
|
||||
<station-number>636</station-number>
|
||||
<station-number>636A4</station-number>
|
||||
<station-number>636A6</station-number>
|
||||
<station-number>636A7</station-number>
|
||||
<station-number>636A8</station-number>
|
||||
<station-number>637</station-number>
|
||||
<station-number>640</station-number>
|
||||
<station-number>640A4</station-number>
|
||||
<station-number>642</station-number>
|
||||
<station-number>644</station-number>
|
||||
<station-number>646</station-number>
|
||||
<station-number>646A4</station-number>
|
||||
<station-number>646A5</station-number>
|
||||
<station-number>648</station-number>
|
||||
<station-number>648A4</station-number>
|
||||
<station-number>649</station-number>
|
||||
<station-number>650</station-number>
|
||||
<station-number>652</station-number>
|
||||
<station-number>653</station-number>
|
||||
<station-number>654</station-number>
|
||||
<station-number>655</station-number>
|
||||
<station-number>656</station-number>
|
||||
<station-number>657</station-number>
|
||||
<station-number>657A0</station-number>
|
||||
<station-number>657A4</station-number>
|
||||
<station-number>657A5</station-number>
|
||||
<station-number>658</station-number>
|
||||
<station-number>659</station-number>
|
||||
<station-number>660</station-number>
|
||||
<station-number>662</station-number>
|
||||
<station-number>663</station-number>
|
||||
<station-number>663A4</station-number>
|
||||
<station-number>664</station-number>
|
||||
<station-number>666</station-number>
|
||||
<station-number>667</station-number>
|
||||
<station-number>668</station-number>
|
||||
<station-number>671</station-number>
|
||||
<station-number>671A4</station-number>
|
||||
<station-number>672</station-number>
|
||||
<station-number>673</station-number>
|
||||
<station-number>674</station-number>
|
||||
<station-number>674A4</station-number>
|
||||
<station-number>674A5</station-number>
|
||||
<station-number>675</station-number>
|
||||
<station-number>676</station-number>
|
||||
<station-number>678</station-number>
|
||||
<station-number>679</station-number>
|
||||
<station-number>687</station-number>
|
||||
<station-number>688</station-number>
|
||||
<station-number>689</station-number>
|
||||
<station-number>689A4</station-number>
|
||||
<station-number>691</station-number>
|
||||
<station-number>691A4</station-number>
|
||||
<station-number>692</station-number>
|
||||
<station-number>693</station-number>
|
||||
<station-number>695</station-number>
|
||||
<station-number>757</station-number>
|
||||
|
||||
<station-number>982</station-number>
|
||||
</login-station-numbers>
|
||||
|
||||
|
||||
<!-- defined application context root Name -->
|
||||
<context-root-name>${edis.tracking.trackingContextRoot}</context-root-name>
|
||||
|
||||
|
||||
<!-- put the system announcement here. Use ~ for a line break, or ~ ~ for a
|
||||
paragraph break. -->
|
||||
<system-announcement>
|
||||
U.S. Government Computer System
|
||||
~ ~
|
||||
U. S. government systems are intended to be used by authorized government network users for viewing and
|
||||
retrieving information only, except as otherwise explicitly authorized for official business and limited
|
||||
personal use in accordance with policy. Information from these systems resides on and transmits through computer
|
||||
systems and networks funded by the government. All access or use constitutes understanding and acceptance that
|
||||
there is no reasonable expectation of privacy in the use of Government networks or systems.
|
||||
~ ~
|
||||
The data and documents on this system include Federal records that contain sensitive information protected by
|
||||
various Federal statutes, including the Privacy Act, 5 U.S.C. Section 552a, and veterans' records
|
||||
confidentiality statutes such as 38 U.S.C. Sections 5701 and 7332. Access to the data and records is on a
|
||||
need-to-know basis only.
|
||||
~ ~
|
||||
All access or use of this system constitutes user understanding and acceptance of these terms and constitutes
|
||||
unconditional consent to review and action including (but not limited to) monitoring, recording, copying,
|
||||
auditing, inspecting, investigating, restricting access, blocking, tracking, disclosing to authorized personnel,
|
||||
or any other authorized actions by all authorized government and law enforcement personnel.
|
||||
~ ~
|
||||
Unauthorized user attempts or acts to (1) access, upload, change, or delete information on this system, (2)
|
||||
modify this system, (3) deny access to this system, (4) accrue resources for unauthorized use or (5) otherwise
|
||||
misuse this system are strictly prohibited. Such attempts or acts are subject to action that may result in
|
||||
criminal, civil, or administrative penalties.
|
||||
</system-announcement>
|
||||
|
||||
<!-- set to true to return a user's "New Person" division multiple as part
|
||||
of login -->
|
||||
<user-new-person-divisions retrieve="true"/>
|
||||
|
||||
<!-- set to true to return all children divisions of the login division's
|
||||
computing facility, as part of login -->
|
||||
<computing-facility-divisions retrieve="true"/>
|
||||
|
||||
<cactus-insecure-mode enabled="false"/>
|
||||
|
||||
<!-- BEAWeblogic Server SSL listen port , used for login page to implement SSL -->
|
||||
<!-- <ssl-listen-port-number>7002</ssl-listen-port-number> -->
|
||||
|
||||
|
||||
</kaajee-config>
|
||||
|
|
@ -0,0 +1,276 @@
|
|||
// Flash Player Version Detection - Rev 1.6
|
||||
// Detect Client Browser type
|
||||
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
|
||||
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
|
||||
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
|
||||
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
|
||||
|
||||
function ControlVersion()
|
||||
{
|
||||
var version;
|
||||
var axo;
|
||||
var e;
|
||||
|
||||
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
|
||||
|
||||
try {
|
||||
// version will be set for 7.X or greater players
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 6.X players only
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
|
||||
// installed player is some revision of 6.0
|
||||
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
|
||||
// so we have to be careful.
|
||||
|
||||
// default to the first public version
|
||||
version = "WIN 6,0,21,0";
|
||||
|
||||
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
|
||||
axo.AllowScriptAccess = "always";
|
||||
|
||||
// safe to call for 6.0r47 or greater
|
||||
version = axo.GetVariable("$version");
|
||||
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 4.X or 5.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 3.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = "WIN 3,0,18,0";
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 2.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
version = "WIN 2,0,0,11";
|
||||
} catch (e) {
|
||||
version = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
// JavaScript helper required to detect Flash Player PlugIn version information
|
||||
function GetSwfVer(){
|
||||
// NS/Opera version >= 3 check for Flash plugin in plugin array
|
||||
var flashVer = -1;
|
||||
|
||||
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
||||
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
|
||||
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
|
||||
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
|
||||
var descArray = flashDescription.split(" ");
|
||||
var tempArrayMajor = descArray[2].split(".");
|
||||
var versionMajor = tempArrayMajor[0];
|
||||
var versionMinor = tempArrayMajor[1];
|
||||
var versionRevision = descArray[3];
|
||||
if (versionRevision == "") {
|
||||
versionRevision = descArray[4];
|
||||
}
|
||||
if (versionRevision[0] == "d") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
} else if (versionRevision[0] == "r") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
if (versionRevision.indexOf("d") > 0) {
|
||||
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
|
||||
}
|
||||
}
|
||||
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
|
||||
}
|
||||
}
|
||||
// MSN/WebTV 2.6 supports Flash 4
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
|
||||
// WebTV 2.5 supports Flash 3
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
|
||||
// older WebTV supports Flash 2
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
|
||||
else if ( isIE && isWin && !isOpera ) {
|
||||
flashVer = ControlVersion();
|
||||
}
|
||||
return flashVer;
|
||||
}
|
||||
|
||||
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
|
||||
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
|
||||
{
|
||||
versionStr = GetSwfVer();
|
||||
if (versionStr == -1 ) {
|
||||
return false;
|
||||
} else if (versionStr != 0) {
|
||||
if(isIE && isWin && !isOpera) {
|
||||
// Given "WIN 2,0,0,11"
|
||||
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
|
||||
tempString = tempArray[1]; // "2,0,0,11"
|
||||
versionArray = tempString.split(","); // ['2', '0', '0', '11']
|
||||
} else {
|
||||
versionArray = versionStr.split(".");
|
||||
}
|
||||
var versionMajor = versionArray[0];
|
||||
var versionMinor = versionArray[1];
|
||||
var versionRevision = versionArray[2];
|
||||
|
||||
// is the major.revision >= requested major.revision AND the minor version >= requested minor
|
||||
if (versionMajor > parseFloat(reqMajorVer)) {
|
||||
return true;
|
||||
} else if (versionMajor == parseFloat(reqMajorVer)) {
|
||||
if (versionMinor > parseFloat(reqMinorVer))
|
||||
return true;
|
||||
else if (versionMinor == parseFloat(reqMinorVer)) {
|
||||
if (versionRevision >= parseFloat(reqRevision))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function AC_AddExtension(src, ext)
|
||||
{
|
||||
if (src.indexOf('?') != -1)
|
||||
return src.replace(/\?/, ext+'?');
|
||||
else
|
||||
return src + ext;
|
||||
}
|
||||
|
||||
function AC_Generateobj(objAttrs, params, embedAttrs)
|
||||
{
|
||||
var str = '';
|
||||
if (isIE && isWin && !isOpera)
|
||||
{
|
||||
str += '<object ';
|
||||
for (var i in objAttrs)
|
||||
str += i + '="' + objAttrs[i] + '" ';
|
||||
str += '>';
|
||||
for (var i in params)
|
||||
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
|
||||
str += '</object>';
|
||||
} else {
|
||||
str += '<embed ';
|
||||
for (var i in embedAttrs)
|
||||
str += i + '="' + embedAttrs[i] + '" ';
|
||||
str += '> </embed>';
|
||||
}
|
||||
|
||||
document.write(str);
|
||||
}
|
||||
|
||||
function AC_FL_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
|
||||
, "application/x-shockwave-flash"
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
|
||||
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
|
||||
var ret = new Object();
|
||||
ret.embedAttrs = new Object();
|
||||
ret.params = new Object();
|
||||
ret.objAttrs = new Object();
|
||||
for (var i=0; i < args.length; i=i+2){
|
||||
var currArg = args[i].toLowerCase();
|
||||
|
||||
switch (currArg){
|
||||
case "classid":
|
||||
break;
|
||||
case "pluginspage":
|
||||
ret.embedAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "src":
|
||||
case "movie":
|
||||
args[i+1] = AC_AddExtension(args[i+1], ext);
|
||||
ret.embedAttrs["src"] = args[i+1];
|
||||
ret.params[srcParamName] = args[i+1];
|
||||
break;
|
||||
case "onafterupdate":
|
||||
case "onbeforeupdate":
|
||||
case "onblur":
|
||||
case "oncellchange":
|
||||
case "onclick":
|
||||
case "ondblClick":
|
||||
case "ondrag":
|
||||
case "ondragend":
|
||||
case "ondragenter":
|
||||
case "ondragleave":
|
||||
case "ondragover":
|
||||
case "ondrop":
|
||||
case "onfinish":
|
||||
case "onfocus":
|
||||
case "onhelp":
|
||||
case "onmousedown":
|
||||
case "onmouseup":
|
||||
case "onmouseover":
|
||||
case "onmousemove":
|
||||
case "onmouseout":
|
||||
case "onkeypress":
|
||||
case "onkeydown":
|
||||
case "onkeyup":
|
||||
case "onload":
|
||||
case "onlosecapture":
|
||||
case "onpropertychange":
|
||||
case "onreadystatechange":
|
||||
case "onrowsdelete":
|
||||
case "onrowenter":
|
||||
case "onrowexit":
|
||||
case "onrowsinserted":
|
||||
case "onstart":
|
||||
case "onscroll":
|
||||
case "onbeforeeditfocus":
|
||||
case "onactivate":
|
||||
case "onbeforedeactivate":
|
||||
case "ondeactivate":
|
||||
case "type":
|
||||
case "codebase":
|
||||
ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "id":
|
||||
case "width":
|
||||
case "height":
|
||||
case "align":
|
||||
case "vspace":
|
||||
case "hspace":
|
||||
case "class":
|
||||
case "title":
|
||||
case "accesskey":
|
||||
case "name":
|
||||
case "tabindex":
|
||||
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
default:
|
||||
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
|
||||
}
|
||||
}
|
||||
ret.objAttrs["classid"] = classid;
|
||||
if (mimeType) ret.embedAttrs["type"] = mimeType;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
|
||||
<bean id="exceptionHandler" class="gov.va.med.edp.web.handler.ExceptionResolver">
|
||||
<property name="defaultErrorView" value="exception"/>
|
||||
<property name="exceptionMappings">
|
||||
<props>
|
||||
<prop key="gov.va.med.edp.rpc.VistaLinkRpcPermissionDeniedException">vistaLinkPermissionDeniedView
|
||||
</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
|
||||
<property name="basename" value="strings"/>
|
||||
</bean>
|
||||
|
||||
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
|
||||
|
||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"/>
|
||||
|
||||
<bean name="/tracking.html" class="gov.va.med.edp.web.controller.ClientVersionSynchronizationController">
|
||||
<property name="clientArtifactId" value="edis-tracking-ui-main"/>
|
||||
<property name="viewName" value="tracking"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/board.html" class="gov.va.med.edp.web.controller.ClientVersionSynchronizationController">
|
||||
<property name="clientArtifactId" value="edis-tracking-ui-bigboard"/>
|
||||
<property name="viewName" value="board"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/logout.html" class="gov.va.med.edp.web.controller.LogoutController"/>
|
||||
|
||||
<bean name="/tracking.xml" class="gov.va.med.edp.web.controller.TrackingController">
|
||||
<property name="trackingDao" ref="trackingDao"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/board.xml" class="gov.va.med.edp.web.controller.TrackingController">
|
||||
<property name="trackingDao" ref="bigBoardDao"/>
|
||||
<property name="serverPackageVersionDao" ref="serverPackageVersionDao"/>
|
||||
</bean>
|
||||
|
||||
<bean name="/export.csv" class="gov.va.med.edp.web.controller.ExportReportController">
|
||||
<property name="trackingDao" ref="trackingDao"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -0,0 +1,22 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> - Version Incompatibility</title></head>
|
||||
<body>
|
||||
<%session.invalidate();%>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
<h3>Version Incompatibility</h3>
|
||||
<p>This is EDIS web application version '<fmt:message key="app.version"/>'.<br/>
|
||||
The EDIS server package version running in your VistA account is '<c:out value="${serverPackageVersion}"/>'.<br/>
|
||||
A compatible client ('<c:out value="${clientFinalName}"/>') was not found bundled in this web application.
|
||||
</p>
|
||||
<p>Please ensure the version in your VistA account is compatible with version '<fmt:message key="app.version"/>' of the EDIS web application.</p>
|
||||
<p><fmt:message key="logged.out"/></p>
|
||||
<p><a href="<%= request.getContextPath() %>"><fmt:message key="login.again"/></a></p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,15 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> Logged Out</title></head>
|
||||
<body>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
<p><fmt:message key="logged.out"/></p>
|
||||
<p><a href="<%= request.getContextPath() %>"><fmt:message key="login.again"/></a></p>
|
||||
<p><a href="http://vhaislcfgm2.vha.med.va.gov/shadowfax/joomla/index.php?option=com_fireboard&Itemid=121&task=listcat&catid=14">EDIS Tracking Feedback Forum</a></p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> - Permission Denied</title></head>
|
||||
<body>
|
||||
<%session.invalidate();%>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
<h3>Permission Denied</h3>
|
||||
<p><c:out value="${exception.errorMessage}"/></p>
|
||||
<p>Please communicate with IRM to ensure you have the appropriate permissions in this VistA account in order to use EDIS.</p>
|
||||
<p><fmt:message key="logged.out"/></p>
|
||||
<p><a href="<%= request.getContextPath() %>"><fmt:message key="login.again"/></a></p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,234 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kaajee-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="kaajeeConfig.xsd">
|
||||
|
||||
<!-- host application name, used for login page display and logging -->
|
||||
<host-application-name>EDIS Tracking Board</host-application-name>
|
||||
|
||||
<!-- put each station number for KAAJEE login here -->
|
||||
<login-station-numbers>
|
||||
<station-number>402</station-number>
|
||||
<station-number>405</station-number>
|
||||
<station-number>423</station-number>
|
||||
<station-number>433</station-number>
|
||||
<station-number>436</station-number>
|
||||
<station-number>437</station-number>
|
||||
<station-number>438</station-number>
|
||||
<station-number>442</station-number>
|
||||
<station-number>447</station-number>
|
||||
<station-number>454</station-number>
|
||||
<station-number>459</station-number>
|
||||
<station-number>460</station-number>
<station-number>463</station-number>
|
||||
<station-number>501</station-number>
|
||||
<station-number>502</station-number>
|
||||
<station-number>503</station-number>
|
||||
<station-number>504</station-number>
|
||||
<station-number>506</station-number>
|
||||
<station-number>508</station-number>
|
||||
<station-number>509</station-number>
|
||||
<station-number>509A0</station-number>
|
||||
<station-number>512</station-number>
|
||||
<station-number>512A5</station-number>
|
||||
<station-number>515</station-number>
|
||||
<station-number>516</station-number>
|
||||
<station-number>517</station-number>
|
||||
<station-number>518</station-number>
|
||||
<station-number>519</station-number>
|
||||
<station-number>520</station-number>
|
||||
<station-number>520A0</station-number>
|
||||
<station-number>521</station-number>
|
||||
<station-number>523</station-number>
|
||||
<station-number>523A4</station-number>
|
||||
<station-number>523A5</station-number>
|
||||
<station-number>524</station-number>
|
||||
<station-number>526</station-number>
|
||||
<station-number>528</station-number>
|
||||
<station-number>528A4</station-number>
|
||||
<station-number>528A5</station-number>
|
||||
<station-number>528A6</station-number>
|
||||
<station-number>528A7</station-number>
|
||||
<station-number>528A8</station-number>
|
||||
<station-number>529</station-number>
|
||||
<station-number>531</station-number>
|
||||
<station-number>534</station-number>
|
||||
<station-number>537</station-number>
|
||||
<station-number>538</station-number>
|
||||
<station-number>539</station-number>
|
||||
<station-number>540</station-number>
|
||||
<station-number>541</station-number>
|
||||
<station-number>542</station-number>
|
||||
<station-number>544</station-number>
|
||||
<station-number>546</station-number>
|
||||
<station-number>548</station-number>
|
||||
<station-number>549</station-number>
|
||||
<station-number>549A4</station-number>
|
||||
<station-number>550</station-number>
|
||||
<station-number>552</station-number>
|
||||
<station-number>553</station-number>
|
||||
<station-number>554</station-number>
|
||||
<station-number>556</station-number>
|
||||
<station-number>557</station-number>
|
||||
<station-number>558</station-number>
|
||||
<station-number>561</station-number>
|
||||
<station-number>561A4</station-number>
|
||||
<station-number>562</station-number>
|
||||
<station-number>564</station-number>
|
||||
<station-number>565</station-number>
|
||||
<station-number>568</station-number>
|
||||
<station-number>568A4</station-number>
|
||||
<station-number>570</station-number>
|
||||
<station-number>573</station-number>
|
||||
<station-number>573A4</station-number>
|
||||
<station-number>575</station-number>
|
||||
<station-number>578</station-number>
|
||||
<station-number>580</station-number>
|
||||
<station-number>581</station-number>
|
||||
<station-number>583</station-number>
|
||||
<station-number>585</station-number>
|
||||
<station-number>586</station-number>
|
||||
<station-number>589</station-number>
|
||||
<station-number>589A4</station-number>
|
||||
<station-number>589A5</station-number>
|
||||
<station-number>589A6</station-number>
|
||||
<station-number>589A7</station-number>
|
||||
<station-number>590</station-number>
|
||||
<station-number>593</station-number>
|
||||
<station-number>595</station-number>
|
||||
<station-number>596</station-number>
|
||||
<station-number>596A4</station-number>
|
||||
<station-number>598</station-number>
|
||||
<station-number>600</station-number>
|
||||
<station-number>603</station-number>
|
||||
<station-number>605</station-number>
|
||||
<station-number>607</station-number>
|
||||
<station-number>608</station-number>
|
||||
<station-number>610</station-number>
|
||||
<station-number>610A4</station-number>
|
||||
<station-number>612</station-number>
|
||||
<station-number>612A4</station-number>
|
||||
<station-number>613</station-number>
|
||||
<station-number>614</station-number>
|
||||
<station-number>618</station-number>
|
||||
<station-number>619</station-number>
|
||||
<station-number>619A4</station-number>
|
||||
<station-number>620</station-number>
|
||||
<station-number>620A4</station-number>
|
||||
<station-number>621</station-number>
|
||||
<station-number>623</station-number>
|
||||
<station-number>626</station-number>
|
||||
<station-number>626A4</station-number>
|
||||
<station-number>629</station-number>
|
||||
<station-number>630</station-number>
|
||||
<station-number>630A4</station-number>
|
||||
<station-number>630A5</station-number>
|
||||
<station-number>631</station-number>
|
||||
<station-number>632</station-number>
|
||||
<station-number>635</station-number>
|
||||
<station-number>636</station-number>
|
||||
<station-number>636A4</station-number>
|
||||
<station-number>636A6</station-number>
|
||||
<station-number>636A7</station-number>
|
||||
<station-number>636A8</station-number>
|
||||
<station-number>637</station-number>
|
||||
<station-number>640</station-number>
|
||||
<station-number>640A4</station-number>
|
||||
<station-number>642</station-number>
|
||||
<station-number>644</station-number>
|
||||
<station-number>646</station-number>
|
||||
<station-number>646A4</station-number>
|
||||
<station-number>646A5</station-number>
|
||||
<station-number>648</station-number>
|
||||
<station-number>648A4</station-number>
|
||||
<station-number>649</station-number>
|
||||
<station-number>650</station-number>
|
||||
<station-number>652</station-number>
|
||||
<station-number>653</station-number>
|
||||
<station-number>654</station-number>
|
||||
<station-number>655</station-number>
|
||||
<station-number>656</station-number>
|
||||
<station-number>657</station-number>
|
||||
<station-number>657A0</station-number>
|
||||
<station-number>657A4</station-number>
|
||||
<station-number>657A5</station-number>
|
||||
<station-number>658</station-number>
|
||||
<station-number>659</station-number>
|
||||
<station-number>660</station-number>
|
||||
<station-number>662</station-number>
|
||||
<station-number>663</station-number>
|
||||
<station-number>663A4</station-number>
|
||||
<station-number>664</station-number>
|
||||
<station-number>666</station-number>
|
||||
<station-number>667</station-number>
|
||||
<station-number>668</station-number>
|
||||
<station-number>671</station-number>
|
||||
<station-number>671A4</station-number>
|
||||
<station-number>672</station-number>
|
||||
<station-number>673</station-number>
|
||||
<station-number>674</station-number>
|
||||
<station-number>674A4</station-number>
|
||||
<station-number>674A5</station-number>
|
||||
<station-number>675</station-number>
|
||||
<station-number>676</station-number>
|
||||
<station-number>678</station-number>
|
||||
<station-number>679</station-number>
|
||||
<station-number>687</station-number>
|
||||
<station-number>688</station-number>
|
||||
<station-number>689</station-number>
|
||||
<station-number>689A4</station-number>
|
||||
<station-number>691</station-number>
|
||||
<station-number>691A4</station-number>
|
||||
<station-number>692</station-number>
|
||||
<station-number>693</station-number>
|
||||
<station-number>695</station-number>
|
||||
<station-number>757</station-number>
|
||||
|
||||
<station-number>982</station-number>
|
||||
</login-station-numbers>
|
||||
|
||||
|
||||
<!-- defined application context root Name -->
|
||||
<context-root-name>${edis.tracking.trackingContextRoot}</context-root-name>
|
||||
|
||||
|
||||
<!-- put the system announcement here. Use ~ for a line break, or ~ ~ for a
|
||||
paragraph break. -->
|
||||
<system-announcement>
|
||||
U.S. Government Computer System
|
||||
~ ~
|
||||
U. S. government systems are intended to be used by authorized government network users for viewing and
|
||||
retrieving information only, except as otherwise explicitly authorized for official business and limited
|
||||
personal use in accordance with policy. Information from these systems resides on and transmits through computer
|
||||
systems and networks funded by the government. All access or use constitutes understanding and acceptance that
|
||||
there is no reasonable expectation of privacy in the use of Government networks or systems.
|
||||
~ ~
|
||||
The data and documents on this system include Federal records that contain sensitive information protected by
|
||||
various Federal statutes, including the Privacy Act, 5 U.S.C. Section 552a, and veterans' records
|
||||
confidentiality statutes such as 38 U.S.C. Sections 5701 and 7332. Access to the data and records is on a
|
||||
need-to-know basis only.
|
||||
~ ~
|
||||
All access or use of this system constitutes user understanding and acceptance of these terms and constitutes
|
||||
unconditional consent to review and action including (but not limited to) monitoring, recording, copying,
|
||||
auditing, inspecting, investigating, restricting access, blocking, tracking, disclosing to authorized personnel,
|
||||
or any other authorized actions by all authorized government and law enforcement personnel.
|
||||
~ ~
|
||||
Unauthorized user attempts or acts to (1) access, upload, change, or delete information on this system, (2)
|
||||
modify this system, (3) deny access to this system, (4) accrue resources for unauthorized use or (5) otherwise
|
||||
misuse this system are strictly prohibited. Such attempts or acts are subject to action that may result in
|
||||
criminal, civil, or administrative penalties.
|
||||
</system-announcement>
|
||||
|
||||
<!-- set to true to return a user's "New Person" division multiple as part
|
||||
of login -->
|
||||
<user-new-person-divisions retrieve="true"/>
|
||||
|
||||
<!-- set to true to return all children divisions of the login division's
|
||||
computing facility, as part of login -->
|
||||
<computing-facility-divisions retrieve="true"/>
|
||||
|
||||
<cactus-insecure-mode enabled="false"/>
|
||||
|
||||
<!-- BEAWeblogic Server SSL listen port , used for login page to implement SSL -->
|
||||
<!-- <ssl-listen-port-number>7002</ssl-listen-port-number> -->
|
||||
|
||||
|
||||
</kaajee-config>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Kyle Clarke (Department of Veterans Affairs) -->
|
||||
<!--W3C Schema generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<xs:element name="computing-facility-divisions">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="retrieve" type="xs:boolean" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="host-application-name" type="xs:string"/>
|
||||
<xs:element name="kaajee-config">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element ref="host-application-name" minOccurs="0"/>
|
||||
<xs:element ref="login-station-numbers"/>
|
||||
<xs:element ref="context-root-name" minOccurs="0"/>
|
||||
<xs:element ref="system-announcement" minOccurs="0"/>
|
||||
<xs:element ref="user-new-person-divisions" minOccurs="0"/>
|
||||
<xs:element ref="computing-facility-divisions" minOccurs="0"/>
|
||||
<xs:element ref="cactus-insecure-mode" minOccurs="0"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="login-station-numbers">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="station-number" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="station-number" type="xs:string"/>
|
||||
<xs:element name="system-announcement" type="xs:string"/>
|
||||
<xs:element name="user-new-person-divisions">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="retrieve" type="xs:boolean" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="cactus-insecure-mode"/>
|
||||
<xs:element name="context-root-name"/>
|
||||
</xs:schema>
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
|
||||
|
||||
<bean id="xmlView" class="gov.va.med.edp.web.view.XmlView"/>
|
||||
|
||||
<bean id="csvView" class="gov.va.med.edp.web.view.CsvView"/>
|
||||
|
||||
<bean id="exception" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/exception.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="tracking" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/tracking.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="board" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/board.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="incompatibilityView" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/WEB-INF/jsp/incompatibility.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="vistaLinkPermissionDeniedView" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/WEB-INF/jsp/vistaLinkPermissionDenied.jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="logout" class="org.springframework.web.servlet.view.JstlView">
|
||||
<property name="url" value="/WEB-INF/jsp/logout.jsp"/>
|
||||
</bean>
|
||||
</beans>
|
|
@ -0,0 +1,216 @@
|
|||
<!DOCTYPE web-app PUBLIC
|
||||
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
|
||||
"http://java.sun.com/dtd/web-app_2_3.dtd" >
|
||||
<web-app>
|
||||
<display-name>Emergency Department Tracking Board Server Proxy Application</display-name>
|
||||
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
||||
<param-value>strings</param-value>
|
||||
</context-param>
|
||||
<!-- Fallback locale if no bundles found for browser's preferred locale -->
|
||||
<!-- Force a single locale using param-name 'javax.servlet.jsp.jstl.fmt.locale' -->
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
|
||||
<param-value>en</param-value>
|
||||
</context-param>
|
||||
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
classpath*:/applicationContext-dao.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
<filter>
|
||||
<filter-name>characterEncodingFilter</filter-name>
|
||||
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>encoding</param-name>
|
||||
<param-value>UTF-8</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<filter>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<filter-class>gov.va.med.edp.web.servlet.filter.ResponseHeaderFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>Cache-Control</param-name>
|
||||
<param-value>no-store, must-revalidate</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>Expires</param-name>
|
||||
<param-value>Thu, 01 Jan 1970 01:00:00 GMT</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>gov.va.med.authentication.kernel.KaajeeSessionAttributeListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>gov.va.med.authentication.kernel.KaajeeHttpSessionListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<listener>
|
||||
<listener-class>gov.va.med.edp.web.servlet.listener.TimeOutIntegrationSessionAttributeListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>KaajeeInit</servlet-name>
|
||||
<servlet-class>gov.va.med.authentication.kernel.InitKaajeeServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>kaajee-config-file-location</param-name>
|
||||
<param-value>/WEB-INF/kaajeeConfig.xml</param-value>
|
||||
</init-param>
|
||||
<load-on-startup>3</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>LoginController</servlet-name>
|
||||
<servlet-class>gov.va.med.authentication.kernel.LoginController</servlet-class>
|
||||
<run-as>
|
||||
<!-- In this example, weblogic is the boot user name (i.e., weblogic console user name) -->
|
||||
<role-name>weblogic</role-name>
|
||||
</run-as>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>characterEncodingFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>*.swf</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>/tracking.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>/board.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>noCacheFilter</filter-name>
|
||||
<url-pattern>/logout.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>LoginController</servlet-name>
|
||||
<url-pattern>/LoginController</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.xml</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>*.csv</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>tracking.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>board.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>dispatcher</servlet-name>
|
||||
<url-pattern>logout.html</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<session-config>
|
||||
<session-timeout>5</session-timeout>
|
||||
</session-config>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>/index.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<error-page>
|
||||
<error-code>500</error-code>
|
||||
<location>/error500.jsp</location>
|
||||
</error-page>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>ED Tracking Board XML Services</web-resource-name>
|
||||
<url-pattern>*.xml</url-pattern>
|
||||
<http-method>GET</http-method>
|
||||
<http-method>POST</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>ED Tracking Board Flex Client</web-resource-name>
|
||||
<url-pattern>*.swf</url-pattern>
|
||||
<url-pattern>tracking.html</url-pattern>
|
||||
<url-pattern>board.html</url-pattern>
|
||||
<http-method>GET</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>ED Tracking Board Debug Screen</web-resource-name>
|
||||
<url-pattern>debug.jsp</url-pattern>
|
||||
<http-method>GET</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<login-config>
|
||||
<auth-method>FORM</auth-method>
|
||||
<form-login-config>
|
||||
<form-login-page>login/login.jsp</form-login-page>
|
||||
<form-error-page>login/loginerror.jsp</form-error-page>
|
||||
</form-login-config>
|
||||
</login-config>
|
||||
|
||||
<security-role>
|
||||
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
|
||||
</security-role>
|
||||
</web-app>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
|
||||
<weblogic-web-app>
|
||||
<session-descriptor>
|
||||
<session-param>
|
||||
<param-name>CookieName</param-name>
|
||||
<param-value>edJSESSIONID</param-value>
|
||||
</session-param>
|
||||
<session-param>
|
||||
<param-name>PersistentStoreType</param-name>
|
||||
<param-value>replicated_if_clustered</param-value>
|
||||
</session-param>
|
||||
</session-descriptor>
|
||||
<container-descriptor>
|
||||
<session-monitoring-enabled>true</session-monitoring-enabled>
|
||||
</container-descriptor>
|
||||
<context-root>${edis.tracking.trackingContextRoot}</context-root>
|
||||
</weblogic-web-app>
|
|
@ -0,0 +1,25 @@
|
|||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>
|
||||
<fmt:message key="app.name"/>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
<fmt:message key="app.name"/>
|
||||
</h2>
|
||||
|
||||
<h3>
|
||||
<fmt:message key="app.version"/>
|
||||
</h3>
|
||||
|
||||
<h4>Built: <fmt:message key="app.buildtime"/></h4>
|
||||
|
||||
<div>
|
||||
Copyright <fmt:message key="copyright.year"/> - <a href="<fmt:message key="copyright.organization.url"/>"><fmt:message key="copyright.organization"/></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,162 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title><fmt:message key="app.name"/></title>
|
||||
<script src="AC_OETags.js" language="javascript"></script>
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
overflow:hidden;
|
||||
}
|
||||
</style>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// -----------------------------------------------------------------------------
|
||||
// Globals
|
||||
// Major version of Flash required
|
||||
var requiredMajorVersion = 9;
|
||||
// Minor version of Flash required
|
||||
var requiredMinorVersion = 0;
|
||||
// Minor version of Flash required
|
||||
var requiredRevision = 28;
|
||||
// -----------------------------------------------------------------------------
|
||||
// -->
|
||||
</script>
|
||||
|
||||
<!-- BEGIN call Flex function on browser close -->
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
function shutdownHook()
|
||||
{
|
||||
var fxControl = document.BigBoard || window.BigBoard;
|
||||
var warning = fxControl.getUnsavedDataWarning();
|
||||
if (warning != '')
|
||||
return warning;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
function invalidateSwf() {
|
||||
var AJAX;
|
||||
if (window.XMLHttpRequest) {
|
||||
AJAX=new XMLHttpRequest();
|
||||
} else {
|
||||
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
if (AJAX) {
|
||||
AJAX.open("GET", '<c:url value="logout.html"/>?swfID=<c:out value="${swfID}"/>', false);
|
||||
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
AJAX.send(null);
|
||||
}
|
||||
}
|
||||
|
||||
window.onbeforeunload = shutdownHook;
|
||||
window.onunload = invalidateSwf;
|
||||
|
||||
-->
|
||||
</script>
|
||||
<!-- END call Flex function on browser close -->
|
||||
|
||||
</head>
|
||||
|
||||
<body scroll="no">
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
|
||||
var hasProductInstall = DetectFlashVer(6, 0, 65);
|
||||
|
||||
// Version check based upon the values defined in globals
|
||||
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
||||
|
||||
|
||||
// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
|
||||
if ( hasProductInstall && !hasRequestedVersion ) {
|
||||
// MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
|
||||
// This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
|
||||
// DO NOT MODIFY THE FOLLOWING FOUR LINES
|
||||
// Location visited after installation is complete if installation is required
|
||||
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
|
||||
var MMredirectURL = window.location;
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
var MMdoctitle = document.title;
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "playerProductInstall",
|
||||
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else if (hasRequestedVersion) {
|
||||
// if we've detected an acceptable version
|
||||
// embed the Flash Content SWF when all tests are passed
|
||||
|
||||
// Cache Server Page namespace should be set here (don't forget the ampersand)
|
||||
//var edpVars = "cspNmsp=CPM&cspDemo=500^10vehu^vehu10&";
|
||||
//var edpVars = "cspServ=vhaislcfgm2.vha.med.va.gov/csp/CPM&cspToken=20012^662&";
|
||||
//var edpVars = "vljServ=10.5.17.153:7001&";
|
||||
//var edpVars = "vljServ=10.5.17.225:7001&";
|
||||
//var edpVars = "vljServ=localhost:7001&";
|
||||
//SEE LINE BELOW TO LAUNCH BIG BOARD FROM FLEX BUILDER AND PASSING IN A SITE ID
|
||||
//var edpVars = "vljServ=vhaislbll2.vha.med.va.gov:7141&siteId=442&";
|
||||
var edpVars = "swfID=<c:out value="${swfID}"/>&timeout=true&contextRoot=<c:out value="${pageContext.request.contextPath}"/>&board=<c:out value="${param.board}"/>&area=<c:out value="${param.area}"/>&helpContextRoot=<fmt:message key="help.contextRoot"/>";
|
||||
|
||||
AC_FL_RunContent(
|
||||
"src", "<c:out value="${clientFinalName}"/>",
|
||||
"width", "100%",
|
||||
"height", "100%",
|
||||
"align", "middle",
|
||||
"id", "<c:out value="${clientArtifactId}"/>",
|
||||
"quality", "high",
|
||||
"bgcolor", "#869ca7",
|
||||
"allowFullScreen", "true",
|
||||
"name", "<c:out value="${clientArtifactId}"/>",
|
||||
"flashvars", edpVars,
|
||||
"allowScriptAccess","sameDomain",
|
||||
"type", "application/x-shockwave-flash",
|
||||
"pluginspage", "http://www.adobe.com/go/getflashplayer"
|
||||
);
|
||||
} else { // flash is too old or we can't detect the plugin
|
||||
var alternateContent = 'Alternate HTML content should be placed here. '
|
||||
+ 'This content requires the Adobe Flash Player. '
|
||||
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
|
||||
document.write(alternateContent); // insert non-flash content
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<noscript>
|
||||
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
||||
id="<c:out value="${clientArtifactId}"/>" width="100%" height="100%"
|
||||
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
|
||||
<param name="movie" value="<c:out value="${clientFinalName}"/>.swf" />
|
||||
<param name="quality" value="high" />
|
||||
<param name="allowFullScreen" value="true" />
|
||||
<param name="bgcolor" value="#869ca7" />
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<embed src="<c:out value="${clientFinalName}"/>.swf" quality="high" allowFullScreen="true" bgcolor="#869ca7"
|
||||
width="100%" height="100%" name="<c:out value="${clientArtifactId}"/>" align="middle"
|
||||
play="true"
|
||||
loop="false"
|
||||
quality="high"
|
||||
allowScriptAccess="sameDomain"
|
||||
type="application/x-shockwave-flash"
|
||||
pluginspage="http://www.adobe.com/go/getflashplayer">
|
||||
</embed>
|
||||
</object>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,83 @@
|
|||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||
<html>
|
||||
<head><title><fmt:message key="app.name"/> Debug</title></head>
|
||||
<body>
|
||||
|
||||
<h1><fmt:message key="app.name"/> Debug</h1>
|
||||
|
||||
<a href="<c:url value="logout.html"/>">Logout</a>
|
||||
|
||||
<h4>initLogArea</h4>
|
||||
|
||||
<form name="initLogArea" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="initLogArea"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="init_area">area</label></td>
|
||||
<td><input id="init_area" name="area" type="text" value="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>refreshLogSelector</h4>
|
||||
|
||||
<form name="refreshLogSelector" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="refreshLogSelector"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="refresh_area">area</label></td>
|
||||
<td><input id="refresh_area" name="area" type="text" value="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="token">token</label></td>
|
||||
<td><input id="token" name="token" type="text" value="-1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>switchLogEntry</h4>
|
||||
|
||||
<form name="switchLogEntry" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="switchLogEntry"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="logID">logID</label></td>
|
||||
<td><input id="logID" name="logID" type="text" value="64"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="getChoices">getChoices</label></td>
|
||||
<td><input id="getChoices" name="getChoices" type="text" value="1"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<h4>matchPatients</h4>
|
||||
|
||||
<form name="matchPatients" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="matchPatients"/>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="partial">partial</label></td>
|
||||
<td><input id="partial" name="partial" type="text" value="TEN"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
|
||||
<h4>initUser</h4>
|
||||
|
||||
<form name="initUser" action="tracking.xml" method="post">
|
||||
<input name="command" type="hidden" value="initUser"/>
|
||||
<input type="submit" value="Execute"/>
|
||||
</form>
|
||||
|
||||
<a href="<c:url value="logout.html"/>">Logout</a>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,12 @@
|
|||
<%@ page pageEncoding="UTF-8" contentType="application/xml;charset=UTF-8" language="java" session="false" isErrorPage="true" %><?xml version="1.0" encoding="UTF-8"?>
|
||||
<results>
|
||||
<error>
|
||||
<code><%= request.getAttribute("javax.servlet.error.status_code") %></code>
|
||||
<message><%= request.getAttribute("javax.servlet.error.exception") %></message>
|
||||
<resource><%= request.getAttribute("javax.servlet.error.request_uri") %></resource>
|
||||
<detail xml:space="preserve"><% Throwable e =
|
||||
(Throwable) request.getAttribute("javax.servlet.error.exception");
|
||||
e.printStackTrace(new java.io.PrintWriter(out));
|
||||
%></detail>
|
||||
</error>
|
||||
</results>
|
|
@ -0,0 +1,12 @@
|
|||
<%@ page pageEncoding="UTF-8" contentType="application/xml;charset=UTF-8" language="java" session="false" isErrorPage="true" %><?xml version="1.0" encoding="UTF-8"?>
|
||||
<results>
|
||||
<error>
|
||||
<code>500</code>
|
||||
<message><%= ((Exception) request.getAttribute("exception")).getMessage() %></message>
|
||||
<resource><%= request.getAttribute("resource") %></resource>
|
||||
<detail xml:space="preserve"><% Exception e =
|
||||
(Exception) request.getAttribute("exception");
|
||||
e.printStackTrace(new java.io.PrintWriter(out));
|
||||
%></detail>
|
||||
</error>
|
||||
</results>
|
|
@ -0,0 +1,2 @@
|
|||
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
|
||||
<c:redirect url="tracking.html"/>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<%@ page language="java" %>
|
||||
<HTML><HEAD>
|
||||
<!--<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<TITLE>Login Session Time out Error</TITLE></HEAD>
|
||||
<BODY>
|
||||
|
||||
<h3>Your session expired during login, please try again by restarting </h3>
|
||||
<h3> the login process by using your original bookmark, shortcut or URL destination </h3>
|
||||
</BODY></HTML>
|
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
|
@ -0,0 +1,173 @@
|
|||
/**
|
||||
* This JavaScript file contains functions that are needed for login.
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
*/
|
||||
|
||||
function preserveRadioGroup (evt) {
|
||||
this.checked = this.storedChecked;
|
||||
var rgb = this.form[this.name];
|
||||
if (!rgb.length && rgb.storedChecked)
|
||||
rgb.checked = true;
|
||||
else
|
||||
for (var b = 0; b < rgb.length; b++)
|
||||
rgb[b].checked = rgb[b].storedChecked ? true : false;
|
||||
}
|
||||
|
||||
function disableRadioGroup (radioGroup) {
|
||||
if (!radioGroup.disabled) {
|
||||
radioGroup.disabled = true;
|
||||
if (document.all || document.getElementById) {
|
||||
if (!radioGroup.length)
|
||||
radioGroup.disabled = true;
|
||||
else
|
||||
for (var b = 0; b < radioGroup.length; b++)
|
||||
radioGroup[b].disabled = true;
|
||||
}
|
||||
else {
|
||||
if (!radioGroup.length) {
|
||||
radioGroup.storedChecked = radioGroup.checked;
|
||||
radioGroup.oldOnClick = radioGroup.onclick;
|
||||
radioGroup.onclick = preserveRadioGroup;
|
||||
}
|
||||
else
|
||||
for (var b = 0; b < radioGroup.length; b++) {
|
||||
radioGroup[b].storedChecked = radioGroup[b].checked;
|
||||
radioGroup[b].oldOnClick = radioGroup[b].onclick;
|
||||
radioGroup[b].onclick = preserveRadioGroup;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function enableRadioGroup (radioGroup) {
|
||||
if (radioGroup.disabled) {
|
||||
radioGroup.disabled = false;
|
||||
if (document.all || document.getElementById) {
|
||||
if (!radioGroup.length)
|
||||
radioGroup.disabled = false;
|
||||
else
|
||||
for (var b = 0; b < radioGroup.length; b++)
|
||||
radioGroup[b].disabled = false;
|
||||
}
|
||||
else {
|
||||
if (!radioGroup.length) {
|
||||
radioGroup.onclick = radioGroup.oldOnClick;
|
||||
}
|
||||
else
|
||||
for (var b = 0; b < radioGroup.length; b++) {
|
||||
radioGroup[b].onclick = radioGroup[b].oldOnClick;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isblank(s) {
|
||||
slen = s.length;
|
||||
for (var i = 0; i < slen; i++) {
|
||||
var c = s.charAt(i);
|
||||
if ((c != ' ') && (c != '\n') && (c != '')) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function disableObj(obj) {
|
||||
obj.disabled = true;
|
||||
}
|
||||
|
||||
function enableObj(obj) {
|
||||
obj.disabled = false;
|
||||
}
|
||||
|
||||
function checkHF(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2,myHiddenObj3) {
|
||||
disableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2)
|
||||
if (myHiddenObj3.value == "number") {
|
||||
reSortSelectOptions(myForm,mySelect,"value");
|
||||
}
|
||||
else if (myHiddenObj3.value == "name") {
|
||||
reSortSelectOptions(myForm,mySelect,"text");
|
||||
}
|
||||
}
|
||||
|
||||
function disableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2) {
|
||||
if (myHiddenObj1.value == "true") disableObj(mySelect);
|
||||
if ((myHiddenObj1.value == "true") || (myHiddenObj2.value == "true")) {
|
||||
disableRadioGroup(myRadioButtonGroup);
|
||||
}
|
||||
}
|
||||
|
||||
function enableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2) {
|
||||
myHiddenObj1.value = "false";
|
||||
myHiddenObj2.value = "false";
|
||||
enableObj(mySelect);
|
||||
enableRadioGroup(myRadioButtonGroup);
|
||||
}
|
||||
|
||||
function hasOptions(obj) {
|
||||
if (obj!=null && obj.options!=null) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
function sortSelect(obj,sortBy) {
|
||||
var o = new Array();
|
||||
if (!hasOptions(obj)) { return false; }
|
||||
for (var i=0; i<obj.options.length; i++) {
|
||||
o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
|
||||
}
|
||||
if (o.length==0) { return true; }
|
||||
if (sortBy == "text") {
|
||||
o = o.sort(
|
||||
function(a,b) {
|
||||
if ((a.text+"") < (b.text+"")) { return -1; }
|
||||
if ((a.text+"") > (b.text+"")) { return 1; }
|
||||
return 0;
|
||||
}
|
||||
);
|
||||
}
|
||||
else if (sortBy == "value") {
|
||||
o = o.sort(
|
||||
function(a,b) {
|
||||
if ((a.value+"") < (b.value+"")) { return -1; }
|
||||
if ((a.value+"") > (b.value+"")) { return 1; }
|
||||
return 0;
|
||||
}
|
||||
);
|
||||
}
|
||||
else {
|
||||
alert("\nError encountered while sorting institutions!!!");
|
||||
}
|
||||
|
||||
for (var i=0; i<o.length; i++) {
|
||||
obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function reSortSelectOptions(formRef,selectRef,sortBy) {
|
||||
if (!formRef) {
|
||||
alert("\nForm reference unknown!!!");
|
||||
}
|
||||
else if (selectRef.length <1) {
|
||||
alert("\n" + selectRef.name + " drop down component is empty!!!");
|
||||
}
|
||||
else {
|
||||
var result = sortSelect(selectRef,sortBy);
|
||||
if (!result) {
|
||||
alert("\nSorting Select Object failed!!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function doInitialSortOnDivisions(myForm,mySelect,mySortPref,mycookie) {
|
||||
var allcookies = mycookie;
|
||||
var cookieArry = allcookies.split(";");
|
||||
for (var i=0; i < cookieArry.length; i++) {
|
||||
cookieArry[i]=cookieArry[i].split("=");
|
||||
if ((cookieArry[i][0].indexOf("gov.va.med.authentication.kernel.defaultSortDivisionBy") != -1) &&
|
||||
(cookieArry[i][1] == "name")) {
|
||||
//Now call function to sort divisions by name.
|
||||
reSortSelectOptions(myForm,mySelect,mySortPref)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,250 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<%@ page language="java" session = "false" %>
|
||||
|
||||
<%@ page import="gov.va.med.authentication.kernel.ConfigurationVO,
|
||||
gov.va.med.authentication.kernel.LoginController,
|
||||
weblogic.servlet.security.ServletAuthentication;"%>
|
||||
|
||||
<%
|
||||
// Turn off cache so that a user cannot navigate back to the login page after post-login
|
||||
response.setHeader("Cache-Control","no-store, no-cache, must-revalidate"); //HTTP 1.1
|
||||
response.setHeader("Pragma","no-cache"); //HTTP 1.0
|
||||
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
|
||||
%>
|
||||
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!--
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<STYLE type="text/css">
|
||||
.scrollPane { height:18em; overflow: auto; }
|
||||
</STYLE>
|
||||
<TITLE>Login Page</TITLE>
|
||||
<script type="text/javascript" src="<%= request.getContextPath()%>/login/javascript/login.js"></script>
|
||||
|
||||
|
||||
</HEAD>
|
||||
<BODY onload="javascript:checkHF(document.LoginForm,document.LoginForm.institution,document.LoginForm.sortInstBy,document.LoginForm.disableInstitutionObjHF,document.LoginForm.disableSortByObjHF,document.LoginForm.sortByObjHF);document.LoginForm.access.focus();">
|
||||
<a href="#skip" title="Skip to login fields"></a>
|
||||
|
||||
<%
|
||||
/*
|
||||
It could be argued that using code within JSP is not a good thing, but for such a small app it's
|
||||
completely acceptable. If we were working with an HTML designer, the separation would be good. But then
|
||||
JSTL would be needed and with that we'd introduce some version of that as a dependency, which is preferably
|
||||
avoided given because we're embedded, we force these dependencies on the containing application as well.
|
||||
*/
|
||||
ConfigurationVO kaajeeEnv = ConfigurationVO.getInstance();
|
||||
|
||||
/*
|
||||
Here if the protocol is 'http', I redirected the user to the same page using 'https' protocol.
|
||||
*/
|
||||
if(request.getParameter("relogin")!=null){
|
||||
HttpSession hSess = request.getSession(false);
|
||||
if(hSess == null) {
|
||||
StringBuffer sbsession = new StringBuffer(request.getContextPath());
|
||||
sbsession.append("/login/SessionTimeout.jsp");
|
||||
response.sendRedirect(sbsession.toString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
HttpSession hSess = request.getSession(true);
|
||||
|
||||
String desiredSchema = "https"; //or http
|
||||
String usingSchema = request.getScheme();
|
||||
if(kaajeeEnv.getHTTPSPortLis() != null ) {
|
||||
if(!desiredSchema.equals(usingSchema)) {
|
||||
|
||||
StringBuffer sburl = request.getRequestURL();
|
||||
java.net.URL url = new java.net.URL(sburl.toString());
|
||||
hSess = request.getSession(true);
|
||||
Integer portValue = new Integer(url.getPort());
|
||||
hSess.setAttribute("portnumber",portValue);
|
||||
|
||||
String urlString = desiredSchema+"://"+ url.getHost() +":"+kaajeeEnv.getHTTPSPortLis()+url.getPath();
|
||||
response.sendRedirect(response.encodeRedirectURL(urlString));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
<FORM name="LoginForm" method="post" action="<%= request.getContextPath() %>/LoginController" onSubmit="javascript:enableInstitutionObj(document.LoginForm,document.LoginForm.institution,document.LoginForm.sortInstBy,document.LoginForm.disableInstitutionObjHF,document.LoginForm.disableSortByObjHF)">
|
||||
<table align="center" summary="This table is for formatting purposes only">
|
||||
<tr>
|
||||
<td>
|
||||
<table width="75%" border="0" align="center" cellpadding="4" cellspacing="4" bgcolor="#eeeeee">
|
||||
<caption align="left"><strong>System Announcements:</strong></caption>
|
||||
<tr><td><div class="scrollPane"><%= kaajeeEnv.getIntroductoryText() %></div></td></tr></table>
|
||||
|
||||
<table border="0" align="center" cellpadding="3" cellspacing="3" summary="This table is for formatting purposes only">
|
||||
<tr align="center">
|
||||
<td colspan="2" nowrap><h3>Login: <%= kaajeeEnv.getHostApplicationName() %></h3></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="<%= request.getContextPath() %>/login/images/HealtheVetVistaSmallBlue.jpg" alt="Health e Vet Vista logo" width="120" height="60"></td>
|
||||
<td><table border="0" align="center" cellpadding="3" cellspacing="3" summary="This table is for formatting purposes only">
|
||||
<tr>
|
||||
<th align="right" nowrap><a name="skip"></a>Access Code:</th>
|
||||
<td><input type="password" name="access" value="" size=16 maxlength=20></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="right" nowrap>Verify Code:</th>
|
||||
<td><input type="password" name="verify" value="" size=16 maxlength=20></td>
|
||||
</tr>
|
||||
</table></td></tr>
|
||||
<tr>
|
||||
<%
|
||||
//1. Initialize values
|
||||
String kaajeeDefaultInstitutionValue = "";
|
||||
String kaajeeDisableInstitutionComponentsValue = "";
|
||||
String kaajeeSortStationByValue = "";
|
||||
String kaajeeDisableSortStationByValue = "";
|
||||
boolean kaajeeDefaultInstitutionParamFound = false;
|
||||
boolean kaajeeDisableInstitutionParamFound = false;
|
||||
boolean kaajeeSortStationByParamFound = false;
|
||||
boolean kaajeeDisableSortStationByParamFound = false;
|
||||
//2. Get targetURL and parse out parameters
|
||||
String targetURL = ServletAuthentication.getTargetURLForFormAuthentication(request.getSession());
|
||||
if (targetURL == null) {
|
||||
StringBuffer sbNavErrorPg = new StringBuffer(request.getContextPath());
|
||||
sbNavErrorPg.append("/login/navigationerror.jsp");
|
||||
response.sendRedirect(sbNavErrorPg.toString());
|
||||
return;
|
||||
}
|
||||
int paramPos = targetURL.indexOf('?');
|
||||
String paramList = (paramPos > -1) ? targetURL.substring(paramPos + 1, targetURL.length()) : "";
|
||||
String[] paramArray = paramList.split("\u0026"); //split on '&' char
|
||||
for (int i=0; i < paramArray.length; i++) {
|
||||
String[] tempArray=paramArray[i].split("\u003D"); //split on '=' char
|
||||
if (tempArray[0].indexOf("kaajeeDefaultInstitution") != -1) {
|
||||
kaajeeDefaultInstitutionValue = tempArray[1];
|
||||
kaajeeDefaultInstitutionParamFound = true;
|
||||
} else {
|
||||
if (tempArray[0].indexOf("kaajeeDisableInstitutionComponents") != -1) {
|
||||
kaajeeDisableInstitutionComponentsValue = tempArray[1];
|
||||
kaajeeDisableInstitutionParamFound = true;
|
||||
} else {
|
||||
if (tempArray[0].indexOf("kaajeeSortStationBy") != -1) {
|
||||
kaajeeSortStationByValue = tempArray[1];
|
||||
kaajeeSortStationByParamFound = true;
|
||||
} else {
|
||||
if (tempArray[0].indexOf("kaajeeDisableSortStationBy") != -1) {
|
||||
kaajeeDisableSortStationByValue = tempArray[1];
|
||||
kaajeeDisableSortStationByParamFound = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((kaajeeDefaultInstitutionParamFound) && (kaajeeDisableInstitutionParamFound) && (kaajeeSortStationByParamFound) && (kaajeeDisableSortStationByParamFound)) break;
|
||||
}
|
||||
//
|
||||
//3. Get default login institution and sorting preference if any from cookies
|
||||
boolean sortCookieFound = false;
|
||||
boolean instCookieFound = false;
|
||||
String defaultSortInstBy="";
|
||||
String defaultInst="";
|
||||
String cookieDefaultSortInstitutionByString = LoginController.COOKIE_DEFAULT_SORT_INSTITUTION_BY_STRING;
|
||||
String cookieDefaultDivisionString = LoginController.COOKIE_DEFAULT_DIVISION_STRING;
|
||||
Cookie[] cookies = request.getCookies();
|
||||
if (cookies != null) {
|
||||
for (int i=0;i<cookies.length;i++) {
|
||||
if (cookies[i].getName().equals(cookieDefaultSortInstitutionByString)) {
|
||||
defaultSortInstBy=cookies[i].getValue();
|
||||
// store in session for LoginController, post-submit
|
||||
hSess.setAttribute(LoginController.SESSION_KEY_COOKIE_DEFAULT_SORT_INSTITUTION_BY, defaultSortInstBy);
|
||||
sortCookieFound = true;
|
||||
} else {
|
||||
if (cookies[i].getName().equals(cookieDefaultDivisionString)) {
|
||||
defaultInst=cookies[i].getValue();
|
||||
// store in session for LoginController, post-submit
|
||||
hSess.setAttribute(LoginController.SESSION_KEY_COOKIE_DEFAULT_DIVISION, defaultInst);
|
||||
instCookieFound = true;
|
||||
}
|
||||
}
|
||||
if ((sortCookieFound) && (instCookieFound)) break;
|
||||
}
|
||||
}
|
||||
String radioButton1CheckValue = ((kaajeeSortStationByValue.trim().length() > 0) ?
|
||||
(kaajeeSortStationByValue.equals("number") ? "checked" : "") :
|
||||
((defaultSortInstBy.equals("")) ||
|
||||
(defaultSortInstBy.equals("number")) ? "checked" : ""));
|
||||
String radioButton2CheckValue = ((kaajeeSortStationByValue.trim().length() > 0) ?
|
||||
(kaajeeSortStationByValue.equals("name") ? "checked" : "") :
|
||||
((defaultSortInstBy.equals("name")) ? "checked" : ""));
|
||||
%>
|
||||
<td>
|
||||
<input type=radio <%= radioButton1CheckValue %> name=sortInstBy value="number" onclick="reSortSelectOptions(this.form,this.form.institution,'value')">Sort by Station Number *</td>
|
||||
<td> <input type=radio <%= radioButton2CheckValue %> name=sortInstBy value="name" onclick="reSortSelectOptions(this.form,this.form.institution,'text')">Sort by Station Name *
|
||||
</td>
|
||||
</tr>
|
||||
<tr> <td > <input type=hidden name="disableInstitutionObjHF" value=<%= kaajeeDisableInstitutionComponentsValue %> ></td></tr>
|
||||
<tr> <td > <input type=hidden name="disableSortByObjHF" value=<%= kaajeeDisableSortStationByValue %> ></td></tr>
|
||||
<tr> <td > <input type=hidden name="sortByObjHF" value=<%= kaajeeSortStationByValue %> ></td></tr>
|
||||
<tr align="center">
|
||||
<th colspan="2" nowrap>Institution:
|
||||
<select name="institution" size="1">
|
||||
<%
|
||||
//4. Initialize and Create Option List
|
||||
String imOptionList = "";
|
||||
if (defaultSortInstBy.equals("name")) {
|
||||
imOptionList = kaajeeEnv.getJspDropDownListLoginOptionsByName();
|
||||
} else {
|
||||
imOptionList = kaajeeEnv.getJspDropDownListLoginOptions();
|
||||
}
|
||||
// TODO: if string is "", show error message?
|
||||
|
||||
//5. Set the selected institution in the list based on the cookie value
|
||||
if ((defaultInst != null) || ((kaajeeDefaultInstitutionValue != null) && (kaajeeDefaultInstitutionValue.trim().length() > 0))) {
|
||||
// int indexDefaultInst = imOptionList.indexOf("value="+defaultInst+">");
|
||||
StringBuffer sbInst = new StringBuffer();
|
||||
sbInst.append(((kaajeeDefaultInstitutionValue != null) && (kaajeeDefaultInstitutionValue.trim().length() > 0)) ? kaajeeDefaultInstitutionValue : defaultInst);
|
||||
int indexDefaultInst = imOptionList.indexOf("value="+ sbInst.toString() +">");
|
||||
if (indexDefaultInst > -1) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append(imOptionList.substring(0, indexDefaultInst -1));
|
||||
sb.append(" selected ");
|
||||
sb.append(imOptionList.substring(indexDefaultInst, imOptionList.length()-1));
|
||||
imOptionList = sb.toString();
|
||||
}
|
||||
}
|
||||
%>
|
||||
<%= imOptionList %>
|
||||
</select>
|
||||
* </th>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" nowrap> </td>
|
||||
<!-- <td><input type="checkbox" name="changeverify" value="yes" /><strong>Change Verify Code (Not yet implemented)</strong></td> -->
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- Relocate Login button here!!! -->
|
||||
<td align="right" nowrap> </td>
|
||||
<td><input name="submit" type="submit" value="Login"></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td colspan="2" nowrap> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td colspan="2" nowrap>* Persistent Cookie Used (<a href="<%= request.getContextPath() %>/login/loginCookieInfo.htm"
|
||||
onClick='window.open("<%= request.getContextPath() %>/login/loginCookieInfo.htm","new_win","status=no,scrollbars=yes,toolbar=no,location=no,width=400,height=450,resizable"); return false;'>more
|
||||
information</a>).</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><div align="center"></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
</FORM>
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<!--
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<title>Login Persistent Cookie Information</title>
|
||||
</head>
|
||||
<body>
|
||||
<h3>Login Persistent Cookie Information</h3>
|
||||
<p>The login module uses a persistent cookie to store the institution you select at login.
|
||||
<p>This information is used at the next login, to pre-select the same institution for the next login.</p>
|
||||
<p>Given that the list of institutions may be quite long for some applications, the goal of using the
|
||||
persistent cookie is to save you time by pre-selecting the most likely institution choice, which for most
|
||||
users would be the previously selected login. This is similar to the Windows login, which saves your last
|
||||
domain used for login, and pre-selects that domain at the next login.
|
||||
<p>In addition to the above persistent cookie, the login module uses another persistent cookie to store
|
||||
the user's preference for sorting institutions in the Institution Drop Down box of the login page.
|
||||
<p>The cookies contains the following information:
|
||||
<ul>
|
||||
<li>name: gov.va.med.authentication.kernel.defaultDivision
|
||||
<li>value: station number used for the previous login
|
||||
<li>expiry time: 180 days
|
||||
<li>name: gov.va.med.authentication.kernel.defaultSortInstitutionBy
|
||||
<li>value: sort order of name or number used for the previous refresh
|
||||
<li>expiry time: 180 days
|
||||
</ul>
|
||||
|
||||
<h4>Thin Client/Terminal Server users:</h4>
|
||||
<p>Please note that persistent cookies may not be of much use on Terminal Servers.
|
||||
<p>The reason is that many Terminal Servers may have been configured to use roaming profiles that may
|
||||
not retain as part of the user profile cookies and temporary internet files upon the user logout
|
||||
and disconnect.</p>
|
||||
<p>In such cases, the recommendation is to create on each Terminal Server shortcuts and save them
|
||||
on the desktop and/or quick launch bar. These shortcuts should have the desired target URLs plus any
|
||||
desired KAAJEE supported parameters. For further details regarding how to use these KAAJEE supported
|
||||
parameters in order to pre-select the desired institution and institution sorting preference,
|
||||
please refer to the KAAJEE documentation.
|
||||
|
||||
<p align="center"><a href="loginCookieInfo.htm" ONCLICK='window.close()'><b>Close Window</b></a></p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<%@ page language="java" %>
|
||||
<HTML><HEAD>
|
||||
<!--
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<TITLE>Forms Authentication Error</TITLE></HEAD>
|
||||
<BODY>
|
||||
<h3>Forms authentication login failed.</h3>
|
||||
<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
|
||||
</BODY></HTML>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<%@ page language="java" %>
|
||||
<HTML><HEAD>
|
||||
<!--
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<TITLE>Login Error</TITLE></HEAD>
|
||||
<BODY>
|
||||
<%
|
||||
|
||||
String stringurl = "";
|
||||
String errorMessage = (String) session.getAttribute("gov.va.med.authentication.kernel.errormessage");
|
||||
if (errorMessage == null) errorMessage = "";
|
||||
|
||||
%>
|
||||
<!-- TODO: invalidate any login user demographics session object here? -->
|
||||
<h3>There was a login error detected by the login system:</h3>
|
||||
<table width="80%" align="center">
|
||||
<tr><td align="left"><p><b><%= errorMessage %></b></p>
|
||||
</td></tr></table>
|
||||
<% session.removeAttribute("gov.va.med.authentication.kernel.errormessage");
|
||||
session = request.getSession(false);
|
||||
stringurl = request.getContextPath()+"/login/login.jsp"+"?relogin=true";
|
||||
|
||||
|
||||
|
||||
%>
|
||||
<p><a href="<%= stringurl %>">Try login again.</a></p>
|
||||
</BODY></HTML>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<%@ page language="java" %>
|
||||
<HTML><HEAD>
|
||||
<!--<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
|
||||
*
|
||||
* @author Infrastructure & Security Service
|
||||
* @version 1.0.1.002
|
||||
* -->
|
||||
<TITLE>Navigation Error</TITLE></HEAD>
|
||||
<BODY>
|
||||
|
||||
<h3>You navigated inappropriately to this page. </h3>
|
||||
<h3> The login process should only be invoked via the consuming application by using your original bookmark, shortcut or URL destination </h3>
|
||||
</BODY></HTML>
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue