init commit logstats bsd source
This commit is contained in:
parent
00a52478df
commit
99c93dbc0c
105 changed files with 8422 additions and 1 deletions
16
logstats-war/.classpath
Normal file
16
logstats-war/.classpath
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/main/webapp"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
42
logstats-war/.project
Normal file
42
logstats-war/.project
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>logstats-war</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
12
logstats-war/.settings/.jsdtscope
Normal file
12
logstats-war/.settings/.jsdtscope
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src/main/webapp"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||
<attributes>
|
||||
<attribute name="hide" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||
<classpathentry kind="output" path=""/>
|
||||
</classpath>
|
||||
8
logstats-war/.settings/org.eclipse.core.resources.prefs
Normal file
8
logstats-war/.settings/org.eclipse.core.resources.prefs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/main/webapp=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
13
logstats-war/.settings/org.eclipse.jdt.core.prefs
Normal file
13
logstats-war/.settings/org.eclipse.jdt.core.prefs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#Mon Jan 02 23:18:50 CET 2012
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
5
logstats-war/.settings/org.eclipse.m2e.core.prefs
Normal file
5
logstats-war/.settings/org.eclipse.m2e.core.prefs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#Mon Jan 02 23:18:47 CET 2012
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
|
|
@ -0,0 +1 @@
|
|||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
||||
|
|
@ -0,0 +1 @@
|
|||
Window
|
||||
9
logstats-war/.settings/org.maven.ide.eclipse.prefs
Normal file
9
logstats-war/.settings/org.maven.ide.eclipse.prefs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#Wed Jun 09 21:37:03 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
||||
158
logstats-war/pom.xml
Normal file
158
logstats-war/pom.xml
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<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>
|
||||
<artifactId>logstats</artifactId>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>logstats-war</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>logstats-war</name>
|
||||
<description>logstats-war</description>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
</testResource>
|
||||
<testResource>
|
||||
<directory>src/main/webapp</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</testResource>
|
||||
</testResources>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet.jsp</groupId>
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<version>2.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>taglibs</groupId>
|
||||
<artifactId>standard</artifactId>
|
||||
<version>1.1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.ejb</groupId>
|
||||
<artifactId>ejb-api</artifactId>
|
||||
<version>3.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>persistence-api</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.faces</groupId>
|
||||
<artifactId>jsf-api</artifactId>
|
||||
<version>1.2_12</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.faces</groupId>
|
||||
<artifactId>jsf-impl</artifactId>
|
||||
<version>1.2_12</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Vasc depency -->
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-frontend-web-jsf</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.vasc</groupId>
|
||||
<artifactId>vasc-ejb3</artifactId>
|
||||
<version>${vasc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-ri</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>el-api</artifactId>
|
||||
<version>1.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.facelets</groupId>
|
||||
<artifactId>jsf-facelets</artifactId>
|
||||
<version>1.1.15.B1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- RichFaces libraries -->
|
||||
<dependency>
|
||||
<groupId>org.richfaces.framework</groupId>
|
||||
<artifactId>richfaces-api</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.richfaces.framework</groupId>
|
||||
<artifactId>richfaces-impl</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.richfaces.ui</groupId>
|
||||
<artifactId>richfaces-ui</artifactId>
|
||||
<version>3.3.3-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.bliki.wiki</groupId>
|
||||
<artifactId>bliki-core</artifactId>
|
||||
<version>3.0.13</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.forwardfire.logstats</groupId>
|
||||
<artifactId>logstats-ejb</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>ejb</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-annotations</artifactId>
|
||||
<version>3.4.0.GA</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.PatternSyntaxException;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
import javax.faces.model.SelectItem;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogData;
|
||||
import net.forwardfire.logstats.ejb.services.LoginManagerRemote;
|
||||
import net.forwardfire.logstats.ejb.services.ServerManagerRemote;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jul 06, 2010
|
||||
*/
|
||||
public class RealTimeController implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private boolean pollEnabled = true;
|
||||
private boolean reversedTail = false;
|
||||
private String filterHostname = null;
|
||||
private Integer filterLevel = null;
|
||||
private String filterRegex = null;
|
||||
private Pattern filterRegexPattern = null;
|
||||
private int messageRows = 40;
|
||||
private int messageCols = 260;
|
||||
|
||||
@EJB()
|
||||
LoginManagerRemote loginManager;
|
||||
|
||||
@EJB()
|
||||
ServerManagerRemote serverManager;
|
||||
|
||||
private StringBuilder getStartBuffer(List<LogData> data) {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
int size = data.size();
|
||||
for (int i=0;i<size;i++) {
|
||||
LogData d = data.get(i);
|
||||
if (filterLevel!=null && filterLevel.equals(d.getLogLevel())==false) {
|
||||
continue;
|
||||
}
|
||||
if (filterHostname!=null && filterHostname.equals(d.getLogLevel())==false) {
|
||||
continue;
|
||||
}
|
||||
if (filterRegexPattern!=null && filterRegexPattern.matcher(d.getMessage()).matches()==false) {
|
||||
continue;
|
||||
}
|
||||
buf.append(d.getLogDate());
|
||||
buf.append(' ');
|
||||
buf.append(d.getHostname());
|
||||
buf.append(' ');
|
||||
buf.append(d.getLogLevel());
|
||||
buf.append(' ');
|
||||
buf.append(d.getSource());
|
||||
buf.append(' ');
|
||||
buf.append(d.getMessage());
|
||||
buf.append('\n');
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
public String getMessageLogData() {
|
||||
List<LogData> data = serverManager.getRealTimeLogData();
|
||||
if (reversedTail) {
|
||||
Collections.reverse(data);
|
||||
}
|
||||
StringBuilder buf = getStartBuffer(data);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public void setMessageLogData(String voidData) {
|
||||
// method so jsf is oke.
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pollEnabled
|
||||
*/
|
||||
public boolean isPollEnabled() {
|
||||
return pollEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pollEnabled the pollEnabled to set
|
||||
*/
|
||||
public void setPollEnabled(boolean pollEnabled) {
|
||||
this.pollEnabled = pollEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the reversedTail
|
||||
*/
|
||||
public boolean isReversedTail() {
|
||||
return reversedTail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param reversedTail the reversedTail to set
|
||||
*/
|
||||
public void setReversedTail(boolean reversedTail) {
|
||||
this.reversedTail = reversedTail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterHostname
|
||||
*/
|
||||
public String getFilterHostname() {
|
||||
return filterHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterHostname the filterHostname to set
|
||||
*/
|
||||
public void setFilterHostname(String filterHostname) {
|
||||
this.filterHostname = filterHostname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterLevel
|
||||
*/
|
||||
public Integer getFilterLevel() {
|
||||
return filterLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterLevel the filterLevel to set
|
||||
*/
|
||||
public void setFilterLevel(Integer filterLevel) {
|
||||
this.filterLevel = filterLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the filterRegex
|
||||
*/
|
||||
public String getFilterRegex() {
|
||||
return filterRegex;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param filterRegex the filterRegex to set
|
||||
*/
|
||||
public void setFilterRegex(String filterRegex) {
|
||||
this.filterRegex = filterRegex;
|
||||
if (filterRegex!=null && filterRegex.isEmpty()==false) {
|
||||
try {
|
||||
filterRegexPattern = Pattern.compile(filterRegex);
|
||||
} catch (PatternSyntaxException pse) {
|
||||
filterRegexPattern = null; // remove old regex
|
||||
pse.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
filterRegexPattern = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the messageRows
|
||||
*/
|
||||
public int getMessageRows() {
|
||||
return messageRows;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param messageRows the messageRows to set
|
||||
*/
|
||||
public void setMessageRows(int messageRows) {
|
||||
this.messageRows = messageRows;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the messageCols
|
||||
*/
|
||||
public int getMessageCols() {
|
||||
return messageCols;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param messageCols the messageCols to set
|
||||
*/
|
||||
public void setMessageCols(int messageCols) {
|
||||
this.messageCols = messageCols;
|
||||
}
|
||||
|
||||
public List<SelectItem> getMessageRowsSelectItems() {
|
||||
List<SelectItem> result = new ArrayList<SelectItem>(5);
|
||||
result.add(new SelectItem(10, "10"));
|
||||
result.add(new SelectItem(20, "20"));
|
||||
result.add(new SelectItem(40, "40"));
|
||||
result.add(new SelectItem(60, "60"));
|
||||
result.add(new SelectItem(80, "80"));
|
||||
result.add(new SelectItem(102, "100")); // to remove scroll bar 102, buf is 100
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<SelectItem> getMessageColsSelectItems() {
|
||||
List<SelectItem> result = new ArrayList<SelectItem>(5);
|
||||
result.add(new SelectItem(80, "80"));
|
||||
result.add(new SelectItem(120, "120"));
|
||||
result.add(new SelectItem(150, "150"));
|
||||
result.add(new SelectItem(200, "200"));
|
||||
result.add(new SelectItem(240, "240"));
|
||||
result.add(new SelectItem(260, "260"));
|
||||
result.add(new SelectItem(280, "280"));
|
||||
result.add(new SelectItem(300, "300"));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
|
||||
import net.forwardfire.logstats.ejb.models.LogRightRole;
|
||||
import net.forwardfire.logstats.ejb.models.LogUser;
|
||||
import net.forwardfire.logstats.ejb.services.LoginManagerRemote;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 1, 2009
|
||||
*/
|
||||
public class UserController implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private LogUser logUser = null;
|
||||
private List<LogRightRole> logRightRoles = null;
|
||||
|
||||
@EJB()
|
||||
LoginManagerRemote loginManager;
|
||||
|
||||
public void loginFilter() {
|
||||
try {
|
||||
logUser = loginManager.getUser();
|
||||
logRightRoles = loginManager.getClientRoles();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void logoutFilter() {
|
||||
logUser = null;
|
||||
logRightRoles = null;
|
||||
}
|
||||
|
||||
public boolean isUserLoggedin() {
|
||||
if (logUser==null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public LogUser getUser() {
|
||||
return logUser;
|
||||
}
|
||||
|
||||
public List<LogRightRole> getRightRoles() {
|
||||
return logRightRoles;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.beans;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.forwardfire.vasc.core.VascController;
|
||||
import net.forwardfire.vasc.frontends.web.jsf.AbstractJSFVascFacesController;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 1, 2009
|
||||
*/
|
||||
public class VascFacesController extends AbstractJSFVascFacesController {
|
||||
|
||||
public String getVascSericeManagerJNDI() {
|
||||
return "logstats-jboss/ejb/vascSericeManager/remote";
|
||||
}
|
||||
public String getResourceBundleWEB() {
|
||||
return "net/forwardfire/logstats/resources/i18n/LogstatsBundleWAR";
|
||||
}
|
||||
public boolean getDisableI18N() {
|
||||
return false;
|
||||
}
|
||||
public VascUserInfo getVascUserInfo() {
|
||||
VascUserInfo vui = new VascUserInfo(new Long(34l),"s", new String[] {"rol1"});
|
||||
return vui;
|
||||
}
|
||||
public List<String> getVascAdminEntries() {
|
||||
List<String> result = new ArrayList<String>(50);
|
||||
VascController v = getVascController();
|
||||
for (String e:v.getVascEntryController().getVascEntryIds()) {
|
||||
if (e.endsWith("Link")==false) {
|
||||
result.add(e);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
* Copyright 2009-2012 forwardfire.net All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.forwardfire.logstats.web.filters;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import net.forwardfire.logstats.web.beans.UserController;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Filter in and out logs of users.
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Nov 12, 2009
|
||||
*/
|
||||
public class UserFilter implements Filter {
|
||||
|
||||
private static final long serialVersionUID = 10l;
|
||||
private Logger logger = null;
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#destroy()
|
||||
*/
|
||||
public void destroy() {
|
||||
logger = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
|
||||
*/
|
||||
public void init(FilterConfig config) throws ServletException {
|
||||
logger = Logger.getLogger(UserFilter.class.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
|
||||
*/
|
||||
public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain chain) throws IOException, ServletException {
|
||||
|
||||
HttpServletRequest request = (HttpServletRequest)servletRequest;
|
||||
HttpServletResponse response = (HttpServletResponse)servletResponse;
|
||||
|
||||
// Let all anymous user to next filter
|
||||
if (request.getUserPrincipal()==null) {
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
UserController userController = (UserController)request.getSession().getAttribute("userController");
|
||||
if (userController==null) {
|
||||
logger.info("Can't create userController for first request auth: "+request.getUserPrincipal());
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
if (userController.isUserLoggedin()==false) {
|
||||
userController.loginFilter();
|
||||
|
||||
// size session time to 20min
|
||||
request.getSession().setMaxInactiveInterval(20*60*1000);
|
||||
}
|
||||
|
||||
// Check for logout
|
||||
String path = request.getRequestURI();
|
||||
if (path.endsWith("login/logout.jsf")) {
|
||||
userController.logoutFilter();
|
||||
request.getSession().invalidate();
|
||||
}
|
||||
|
||||
// do rest of chain.
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
#Colors
|
||||
headerBackgroundColor=\#EAEAEA
|
||||
headerGradientColor=\#E0E0E0
|
||||
headerTextColor=#282828
|
||||
headerWeightFont=bold
|
||||
|
||||
generalBackgroundColor=#FFFFFF
|
||||
generalTextColor=#282828
|
||||
generalSizeFont=11px
|
||||
generalFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
controlTextColor=#282828
|
||||
controlBackgroundColor=#ffffff
|
||||
additionalBackgroundColor=#ffffff
|
||||
|
||||
shadowBackgroundColor=#000000
|
||||
shadowOpacity=1
|
||||
|
||||
panelBorderColor=#BED6F8
|
||||
subBorderColor=#ffffff
|
||||
|
||||
tabBackgroundColor=#C6DEFF
|
||||
tabDisabledTextColor=#ffffff
|
||||
|
||||
trimColor=#D6E6FB
|
||||
|
||||
tipBackgroundColor=\#FAE6B0
|
||||
tipBorderColor=\#E5973E
|
||||
|
||||
selectControlColor=#E79A00
|
||||
|
||||
|
||||
generalLinkColor=#004DEB
|
||||
hoverLinkColor=#004DEB
|
||||
visitedLinkColor=#004DEB
|
||||
|
||||
# Fonts
|
||||
headerSizeFont=11px
|
||||
headerFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
tabSizeFont=11
|
||||
tabFamilyFont=Arial, Helvetica, sans-serif
|
||||
|
||||
buttonSizeFont=11
|
||||
buttonFamilyFont=Arial, Verdana, sans-serif
|
||||
|
||||
|
||||
tableBackgroundColor=#FFFFFF
|
||||
tableFooterBackgroundColor=#FFFFFF
|
||||
tableSubfooterBackgroundColor=#FFFFFF
|
||||
|
||||
|
||||
#Calendar colors
|
||||
calendarWeekBackgroundColor=#F5F5F5
|
||||
|
||||
calendarHolidaysBackgroundColor=#FFEBDA
|
||||
calendarHolidaysTextColor=#FF7800
|
||||
|
||||
calendarCurrentBackgroundColor=#FF7800
|
||||
calendarCurrentTextColor=#FFEBDA
|
||||
|
||||
calendarSpecBackgroundColor=#E4F5E2
|
||||
calendarSpecTextColor=#000000
|
||||
|
||||
|
||||
warningColor=#282828
|
||||
warningBackgroundColor=##EE0000
|
||||
|
||||
editorBackgroundColor=#F1F1F1
|
||||
editBackgroundColor=#FEFFDA
|
||||
|
||||
#Gradients
|
||||
gradientType=plain
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
# Temp jsf
|
||||
generic.vasc.jsf.listOption.header = Searchoptions
|
||||
generic.vasc.jsf.listOption.search = Searh\:
|
||||
generic.vasc.jsf.listOption.sumbit = Search
|
||||
generic.vasc.jsf.pager.previous = Previous
|
||||
generic.vasc.jsf.pager.next = Next
|
||||
generic.vasc.jsf.table.rows = Row Numbers\:
|
||||
generic.vasc.jsf.table.pagerDirect = Go to\:
|
||||
generic.vasc.jsf.table.downloadDirect = Download\:
|
||||
generic.vasc.jsf.table.resultText = Results {0}-{1} from {2} rows
|
||||
generic.vasc.jsf.table.download.img = Save table data.
|
||||
generic.vasc.jsf.table.printer.img = Shows the table in printer friendly format.
|
||||
generic.vasc.jsf.table.export.select = ...
|
||||
generic.vasc.jsf.table.export.select.alt = Select Export
|
||||
generic.vasc.jsf.table.page.select = ...
|
||||
generic.vasc.jsf.table.page.select.alt = Select Page
|
||||
generic.vasc.jsf.table.page.name = Page:
|
||||
generic.vasc.jsf.table.page.description = Goto page:
|
||||
generic.vasc.jsf.tableHeader.fields = Fields
|
||||
generic.vasc.jsf.tableHeader.links = Links
|
||||
generic.vasc.jsf.tableHeader.actions = Actions
|
||||
generic.vasc.jsf.multiAction.selectAll = Select all:
|
||||
generic.vasc.jsf.multiAction.name = ...
|
||||
generic.vasc.jsf.multiAction.description = Select Action
|
||||
generic.vasc.jsf.action.save = Save
|
||||
generic.vasc.jsf.action.cancel = Cancel
|
||||
generic.vasc.jsf.action.back = Back
|
||||
generic.vasc.jsf.parentSelected = Selected:
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
generic.active.labelText = active
|
||||
generic.active.toolTipText = active
|
||||
generic.createdDate.labelText = createdDate
|
||||
generic.createdDate.toolTipText = createdDate
|
||||
generic.description.labelText = description
|
||||
generic.description.toolTipText = description
|
||||
generic.id.labelText = id
|
||||
generic.id.toolTipText = id
|
||||
generic.modifiedDate.labelText = modifiedDate
|
||||
generic.modifiedDate.toolTipText = modifiedDate
|
||||
generic.name.labelText = name
|
||||
generic.name.toolTipText = name
|
||||
|
||||
# hibernate validators
|
||||
validator.assertFalse=assertion failed
|
||||
validator.assertTrue=assertion failed
|
||||
validator.future=Date must lie in the future
|
||||
validator.length=Field must contain between {min} and {max} characters.
|
||||
validator.max=Value must be equal to or lower than {value}
|
||||
validator.min=Value must be equal to or higher than {value}
|
||||
validator.notNull=A value must be entered
|
||||
validator.past=Date must lie in the future
|
||||
validator.pattern=Value must conform to "{regex}"
|
||||
validator.range=Value must lie between {min} and {max}
|
||||
validator.size=There must be between {min} and {max} characters
|
||||
validator.email=The value must be a valid e-mail address
|
||||
|
||||
# vasc validators
|
||||
vasc.validator.VascDateFutureValidator=The date must lie in the future.
|
||||
vasc.validator.VascDatePastValidator=The date must lie in the past.
|
||||
vasc.validator.VascIntSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascLongSizeValidator=Value must lie between {0} and {1}
|
||||
vasc.validator.VascObjectNotNullValidator=A value must be entered
|
||||
vasc.validator.VascObjectNullValidator=No value may be entered
|
||||
vasc.validator.VascStringEmailValidator=The value must be a valid e-mail address
|
||||
vasc.validator.VascStringLengthValidator=There must be at least {0} and at most {1} items
|
||||
vasc.validator.VascStringRegexValidator=Value must conform to "{0}"
|
||||
vasc.validator.VascStringZipCodeValidator=Value must be a valid post code.
|
||||
|
||||
# Vasc actions labels
|
||||
vasc.action.addRowAction.description = add a new record
|
||||
vasc.action.addRowAction.name = Add
|
||||
vasc.action.csvExportAction.description = CSV
|
||||
vasc.action.csvExportAction.name = CSV
|
||||
vasc.action.xmlExportAction.description = XML
|
||||
vasc.action.xmlExportAction.name = XML
|
||||
vasc.action.deleteRowAction.description = delete
|
||||
vasc.action.deleteRowAction.name = delete
|
||||
vasc.action.downloadAction.description = Select this record.
|
||||
vasc.action.downloadAction.name = Select
|
||||
vasc.action.editRowAction.description = edit
|
||||
vasc.action.editRowAction.name = Edit
|
||||
|
||||
# Temp jsf
|
||||
generic.vasc.jsf.listOption.header = Searchoptions
|
||||
generic.vasc.jsf.listOption.search = Searh\:
|
||||
generic.vasc.jsf.listOption.sumbit = Search
|
||||
generic.vasc.jsf.pager.previous = Previous
|
||||
generic.vasc.jsf.pager.next = Next
|
||||
generic.vasc.jsf.table.rows = Row Numbers\:
|
||||
generic.vasc.jsf.table.pagerDirect = Go to\:
|
||||
generic.vasc.jsf.table.downloadDirect = Download\:
|
||||
generic.vasc.jsf.table.resultText = Results {0}-{1} from {2} rows
|
||||
generic.vasc.jsf.table.download.img = Save table data.
|
||||
generic.vasc.jsf.table.printer.img = Shows the table in printer friendly format.
|
||||
generic.vasc.jsf.table.export.select = ...
|
||||
generic.vasc.jsf.table.export.select.alt = Select Export
|
||||
generic.vasc.jsf.table.page.select = ...
|
||||
generic.vasc.jsf.table.page.select.alt = Select Page
|
||||
generic.vasc.jsf.table.page.name = Page:
|
||||
generic.vasc.jsf.table.page.description = Goto page:
|
||||
generic.vasc.jsf.tableHeader.fields = Fields
|
||||
generic.vasc.jsf.tableHeader.links = Links
|
||||
generic.vasc.jsf.tableHeader.actions = Actions
|
||||
generic.vasc.jsf.multiAction.selectAll = Select all:
|
||||
generic.vasc.jsf.multiAction.name = ...
|
||||
generic.vasc.jsf.multiAction.description = Select Action
|
||||
generic.vasc.jsf.action.save = Save
|
||||
generic.vasc.jsf.action.cancel = Cancel
|
||||
generic.vasc.jsf.action.back = Back
|
||||
generic.vasc.jsf.parentSelected = Selected:
|
||||
47
logstats-war/src/main/webapp/WEB-INF/faces.xml
Normal file
47
logstats-war/src/main/webapp/WEB-INF/faces.xml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
|
||||
<faces-config>
|
||||
|
||||
<application>
|
||||
<locale-config>
|
||||
<default-locale>en</default-locale>
|
||||
</locale-config>
|
||||
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
|
||||
</application>
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls the Users</description>
|
||||
<managed-bean-name>realTimeController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.RealTimeController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls the Users</description>
|
||||
<managed-bean-name>userController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.UserController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
<!--
|
||||
<managed-bean>
|
||||
<description>Controls the Wiki</description>
|
||||
<managed-bean-name>wikiPageController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.one.laig.web.beans.WikiPageController</managed-bean-class>
|
||||
<managed-bean-scope>request</managed-bean-scope>
|
||||
<managed-property>
|
||||
<property-name>requestWikiPage</property-name>
|
||||
<value>#{requestScopeWikiName}</value>
|
||||
</managed-property>
|
||||
</managed-bean>
|
||||
-->
|
||||
|
||||
|
||||
<managed-bean>
|
||||
<description>Controls Vasc Faces</description>
|
||||
<managed-bean-name>vascFacesController</managed-bean-name>
|
||||
<managed-bean-class>net.forwardfire.logstats.web.beans.VascFacesController</managed-bean-class>
|
||||
<managed-bean-scope>session</managed-bean-scope>
|
||||
</managed-bean>
|
||||
|
||||
</faces-config>
|
||||
9
logstats-war/src/main/webapp/WEB-INF/jboss-web.xml
Normal file
9
logstats-war/src/main/webapp/WEB-INF/jboss-web.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
|
||||
<jboss-web>
|
||||
<class-loading>
|
||||
<loader-repository>net.forwardfire.logstats:archive=logstats-war</loader-repository>
|
||||
</class-loading>
|
||||
<!--
|
||||
<security-domain>java:/jaas/LogStatsSecurity</security-domain>
|
||||
-->
|
||||
</jboss-web>
|
||||
203
logstats-war/src/main/webapp/WEB-INF/web.xml
Normal file
203
logstats-war/src/main/webapp/WEB-INF/web.xml
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app version="2.5"
|
||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
|
||||
|
||||
<display-name>Logstats Web Application</display-name>
|
||||
<welcome-file-list>
|
||||
<welcome-file>/jsp/index_jsp.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
<session-config>
|
||||
<session-timeout>4</session-timeout>
|
||||
<!-- An 4min session, we increase it after login to 20min. -->
|
||||
</session-config>
|
||||
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>XHTML</web-resource-name>
|
||||
<url-pattern>*.xhtml</url-pattern>
|
||||
</web-resource-collection>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>Include files</web-resource-name>
|
||||
<description>No direct access to include files.</description>
|
||||
<url-pattern>/jsp/includes/*</url-pattern>
|
||||
<http-method>POST</http-method>
|
||||
<http-method>GET</http-method>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<description>No direct browser access to include files.</description>
|
||||
<role-name>inaccessible</role-name>
|
||||
</auth-constraint>
|
||||
<user-data-constraint>
|
||||
<transport-guarantee>NONE</transport-guarantee>
|
||||
</user-data-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<!--
|
||||
<security-constraint>
|
||||
<display-name>User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>User pages</web-resource-name>
|
||||
<url-pattern>/jsp/user/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>user</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<display-name>Admin User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>Admin pages</web-resource-name>
|
||||
<url-pattern>/jsp/admin/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>admin-company</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<security-constraint>
|
||||
<display-name>Sytem User Required</display-name>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>System pages</web-resource-name>
|
||||
<url-pattern>/jsp/system/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>admin-system</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
-->
|
||||
|
||||
<login-config>
|
||||
<auth-method>FORM</auth-method>
|
||||
<realm-name>LogstatsSecurity</realm-name>
|
||||
<form-login-config>
|
||||
<form-login-page>/jsp/login/login.jsf</form-login-page>
|
||||
<form-error-page>/jsp/login/login-error.jsf</form-error-page>
|
||||
</form-login-config>
|
||||
</login-config>
|
||||
|
||||
<security-role>
|
||||
<role-name>user</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>admin-company</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>admin-system</role-name>
|
||||
</security-role>
|
||||
<security-role>
|
||||
<role-name>inaccessible</role-name>
|
||||
</security-role>
|
||||
|
||||
<!-- =============== USER CONFIG =================================== -->
|
||||
<filter>
|
||||
<display-name>User Filter</display-name>
|
||||
<filter-name>userFilter</filter-name>
|
||||
<filter-class>net.forwardfire.logstats.web.filters.UserFilter</filter-class>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>userFilter</filter-name>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
|
||||
<!-- =============== JSF CONFIG =================================== -->
|
||||
<context-param>
|
||||
<description>
|
||||
Comma separated list of URIs of (additional) faces
|
||||
config files.(e.g./WEB-INF/my-config.xml) See JSF1.0 PRD 2,10.3.2
|
||||
</description>
|
||||
<param-name>javax.faces.CONFIG_FILES</param-name>
|
||||
<param-value>/WEB-INF/faces.xml</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
|
||||
<param-value>server</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
|
||||
<param-value>.xhtml</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>facelets.REFRESH_PERIOD</param-name>
|
||||
<param-value>2</param-value>
|
||||
</context-param>
|
||||
<context-param>
|
||||
<param-name>facelets.DEVELOPMENT</param-name>
|
||||
<param-value>true</param-value>
|
||||
</context-param>
|
||||
<!--
|
||||
<context-param>
|
||||
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
|
||||
<param-value>true</param-value>
|
||||
</context-param>
|
||||
-->
|
||||
|
||||
<listener>
|
||||
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<description>The JSF Servlet</description>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<url-pattern>*.jsf</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Plugin our own richfaces skin -->
|
||||
<context-param>
|
||||
<param-name>org.richfaces.SKIN</param-name>
|
||||
<param-value>logstats</param-value>
|
||||
</context-param>
|
||||
|
||||
<!-- Making the RichFaces skin spread to standard HTML controls -->
|
||||
<context-param>
|
||||
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
|
||||
<param-value>enable</param-value>
|
||||
</context-param>
|
||||
|
||||
<!-- Defining and mapping the RichFaces filter -->
|
||||
<filter>
|
||||
<display-name>RichFaces Filter</display-name>
|
||||
<filter-name>richfaces</filter-name>
|
||||
<filter-class>org.ajax4jsf.Filter</filter-class>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>richfaces</filter-name>
|
||||
<servlet-name>facesServlet</servlet-name>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
<dispatcher>FORWARD</dispatcher>
|
||||
<dispatcher>INCLUDE</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- =============== VASC CONFIG =================================== -->
|
||||
<filter>
|
||||
<display-name>VASC Filter</display-name>
|
||||
<filter-name>vascFilter</filter-name>
|
||||
<filter-class>net.forwardfire.vasc.frontends.web.jsf.VascRequestFacesFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>templateFile</param-name>
|
||||
<param-value>/jsp/includes/vasc-template.jsf</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>resourceBundle</param-name>
|
||||
<param-value>/net/forwardfire/logstats/resources/i18n/LogstatsBundleEJB</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>vascFilter</filter-name>
|
||||
<url-pattern>/vasc/*</url-pattern>
|
||||
<dispatcher>REQUEST</dispatcher>
|
||||
</filter-mapping>
|
||||
|
||||
</web-app>
|
||||
8
logstats-war/src/main/webapp/css/ie6_fixes.css
Normal file
8
logstats-war/src/main/webapp/css/ie6_fixes.css
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
/* CSS fixes for IE6 */
|
||||
|
||||
/*
|
||||
#page_menu_left {
|
||||
overflow: visible;
|
||||
}
|
||||
*/
|
||||
8
logstats-war/src/main/webapp/css/ie7_fixes.css
Normal file
8
logstats-war/src/main/webapp/css/ie7_fixes.css
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
/* CSS fixes for IE7 */
|
||||
|
||||
/*
|
||||
#page_menu_left {
|
||||
overflow: visible;
|
||||
}
|
||||
*/
|
||||
4
logstats-war/src/main/webapp/css/ie8_fixes.css
Normal file
4
logstats-war/src/main/webapp/css/ie8_fixes.css
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
/* CSS fixes for IE8 */
|
||||
|
||||
/* Yet to come */
|
||||
538
logstats-war/src/main/webapp/css/site.css
Normal file
538
logstats-war/src/main/webapp/css/site.css
Normal file
|
|
@ -0,0 +1,538 @@
|
|||
|
||||
/* HTML STYLES */
|
||||
|
||||
* {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 15px;
|
||||
color: #000000;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size:1.2em;
|
||||
font-weight:bold;
|
||||
padding-bottom:10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
display:block;
|
||||
font-size:1.0em;
|
||||
font-weight:bold;
|
||||
padding:10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
a {
|
||||
color:#004DEB;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
p {
|
||||
margin:10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-left:10px;
|
||||
}
|
||||
|
||||
/* DIVS */
|
||||
|
||||
#page_wrap{
|
||||
margin:10px;
|
||||
margin-top:0px;
|
||||
float:none;
|
||||
}
|
||||
|
||||
#page_header{
|
||||
height:80px;
|
||||
font-size:18px;
|
||||
border-bottom:1px solid #DDCCCC;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#page_header a img{
|
||||
border:none;
|
||||
padding-right:10px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
#page_content {
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
#page_footer {
|
||||
margin-top:35px;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
border-color:#e5e5e5;
|
||||
border-style:solid;
|
||||
border-width:1px 1px 1px 1px;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
}
|
||||
|
||||
/* MENU */
|
||||
|
||||
#page_menu_left,#page_menu_right {
|
||||
border-color:#DDCCCC;
|
||||
border-style:solid;
|
||||
border-width:0 0 1px 0;
|
||||
vertical-align:bottom;
|
||||
display:inline;
|
||||
}
|
||||
|
||||
#page_menu_right {
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
right:0;
|
||||
}
|
||||
|
||||
#page_menu_left a,#page_menu_right a {
|
||||
border:1px solid #e0e0e0;
|
||||
background-color:#DDCCCC;
|
||||
border-bottom-width:0px;
|
||||
text-align:center;
|
||||
-moz-border-radius-topleft:3xp;
|
||||
-moz-border-radius-topright:3xp;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
color:#000;
|
||||
margin:0px 5px 0px 0px;
|
||||
padding:3px 15px 2px 15px;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
#page_menu_left a:hover,#page_menu_right a:hover {
|
||||
text-decoration:none;
|
||||
background-color:#fff;
|
||||
border-color:#e0e0e0;
|
||||
}
|
||||
|
||||
#page_menu_left a.active,#page_menu_left a.active {
|
||||
background-color:#fff;
|
||||
font-weight:700;
|
||||
}
|
||||
|
||||
#page_user_info {
|
||||
padding:5px;
|
||||
position:absolute;
|
||||
right:0;
|
||||
top:0;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
|
||||
.actionbox{
|
||||
background-color:#DDCCCC;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
border:none;
|
||||
-moz-border-radius-topleft:0;
|
||||
-webkit-border-top-left-radius:0;
|
||||
-khtml-border-radius-topleft:0;
|
||||
clear:both;
|
||||
padding:3px 0 3px 3px;
|
||||
display:block;
|
||||
}
|
||||
.actionbox label{display:inline;}
|
||||
ul.actionboxtab{margin:0;padding:0;}
|
||||
ul.actionboxtab li{list-style-type:none;float:left;margin:0;padding:0;}
|
||||
ul.actionboxtab li a {
|
||||
border:solid 1px #ddd;
|
||||
border-bottom-width:0;
|
||||
-moz-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
font-weight:700;
|
||||
display:block;
|
||||
margin-right:5px;color:#000;
|
||||
padding:3px 15px;
|
||||
}
|
||||
ul.actionboxtab li a.active{background-color:#DDCCCC;border:solid 1px #DDCCCC;text-decoration:none;}
|
||||
ul.actionboxtab li a:hover{background-color:#DDCCCC;border:solid 1px #DDCCCC;text-decoration:none;}
|
||||
td.tableactions{border-bottom-color:#bbb;text-align:left;}
|
||||
|
||||
|
||||
ul.paging{
|
||||
clear:both;
|
||||
margin-bottom:5px;
|
||||
margin-top:5px;
|
||||
display:block;
|
||||
float:left;
|
||||
padding-top:3px;
|
||||
padding-bottom:3px;
|
||||
width:100%;
|
||||
list-style:none;
|
||||
}
|
||||
ul.paging li,ul.paging span{float:left;margin:0 2px 0 2px;}
|
||||
.paging_thispage{font-weight:700;padding:0 6px;}
|
||||
ul.paging .paging_atstart{margin-right:10px;}ul.paging .paging_atend{margin-left:10px;}
|
||||
ul.paging .paging_atstart a,ul.paging .nolink.paging_atstart{
|
||||
padding-left:15px;
|
||||
}
|
||||
ul.paging .paging_atend a,ul.paging .nolink.paging_atend{
|
||||
padding-right:15px;
|
||||
}
|
||||
ul.paging .paging_next{
|
||||
margin-left:20px;
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
|
||||
ul.paging .paging_prev{
|
||||
margin-right:20px;
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
ul.paging a,ul.paging .paging_link{
|
||||
border:1px solid #DDD;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
padding:2px 6px;
|
||||
}
|
||||
ul.paging .paging_break{
|
||||
font-weight:700;padding:2px 6px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* TABLES */
|
||||
/*
|
||||
#m_content table {
|
||||
text-align: left;
|
||||
}
|
||||
*/
|
||||
|
||||
table.table5, table.rating_table {
|
||||
border-collapse:collapse;
|
||||
font-size:11px;
|
||||
width:100%;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
table.table5 th, table.rating_table th {
|
||||
padding-top:5px;
|
||||
padding-bottom:5px;
|
||||
font-weight:700;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
table.table5 td, table.rating_table td {
|
||||
vertical-align:top;
|
||||
padding-top:5px;
|
||||
padding-bottom:5px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
.dataTableHeaderRow {
|
||||
border:1px solid #e0e0e0;
|
||||
background-color:#e4e4e4;
|
||||
border-bottom-width:0;
|
||||
}
|
||||
|
||||
.dataTableHeaderRow th, td {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
table input,table select {
|
||||
font-size: 11px;
|
||||
margin-left:6px;
|
||||
margin-right:6px;
|
||||
}
|
||||
|
||||
table.table5 tr:nth-child(even) {
|
||||
background-color:#f0f0f0;
|
||||
}
|
||||
|
||||
.table_options_top {
|
||||
-moz-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
background-color:#DDCCCC;
|
||||
font-size:12px;
|
||||
font-weight:700;
|
||||
padding:6px 15px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.table_options_bottom {
|
||||
-moz-border-radius-bottomleft:3px;
|
||||
-moz-border-radius-bottomright:3px;
|
||||
background-color:#DDCCCC;
|
||||
font-size:12px;
|
||||
font-weight:700;
|
||||
padding:6px 15px;
|
||||
display: block;
|
||||
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
|
||||
.table_sub_header {
|
||||
-moz-border-radius-topleft:5px;
|
||||
-moz-border-radius-topright:5px;
|
||||
background-color:#EEEEEE;
|
||||
border:1px solid #BBBBBB;
|
||||
display:block;
|
||||
font-size:14px;
|
||||
font-weight:700;
|
||||
margin:0 2px;
|
||||
padding:3px 6px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
|
||||
.rich-table-subheader {
|
||||
background-color:#DDCCCC;
|
||||
border-top: 1px solid #C0C0C0;
|
||||
border-left: 1px solid #C0C0C0;
|
||||
}
|
||||
|
||||
.rich-table {
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.rich-table-row {
|
||||
border-left: 1px solid #C0C0C0;
|
||||
}
|
||||
|
||||
.rich-table-headercell,.rich-table-footercell {
|
||||
background-color: #FFF;
|
||||
border: none;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
font-weight: none;
|
||||
}
|
||||
|
||||
.rich-table-thead {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.rich-table-header {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.homepage_stats {
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
.homepage_stats_big {
|
||||
color:#004DEB;
|
||||
margin-top:5px;
|
||||
margin-bottom:5px;
|
||||
font-size: 20px;
|
||||
display:block;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* MESSAGES */
|
||||
|
||||
.message_info,
|
||||
.message_1 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #a0ff7d;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #a0ff7d;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_warning,
|
||||
.message_2 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #ffae4c;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #ffae4c;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_error,
|
||||
.message_3 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #ff5b43;
|
||||
-moz-border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-khtml-border-radius:3px;
|
||||
background-color: #ff5b43;
|
||||
padding: 15px 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.message_4 {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border:solid 1px #fc9200;
|
||||
background-color: #fc9200;
|
||||
-moz-border-radius-topleft:3px;
|
||||
-webkit-border-top-left-radius:3px;
|
||||
-khtml-border-radius-topleft:3px;
|
||||
-moz-border-radius-topright:3px;
|
||||
-webkit-border-top-right-radius:3px;
|
||||
-khtml-border-radius-topright:3px;
|
||||
padding: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.message_1 input, .message_1 button, .message_2 input, .message_2 button, .message_3 input, .message_3 button {
|
||||
margin:0px;
|
||||
}
|
||||
|
||||
.message_4 h2 {
|
||||
margin: 0px;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.message_4 input {
|
||||
margin: 0px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
padding: 2px 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* LOGINBOX */
|
||||
|
||||
|
||||
/* Text styles */
|
||||
|
||||
.text_justify {
|
||||
text-align:justify;
|
||||
}
|
||||
|
||||
.text_left {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
.text_right {
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
.text_center {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.text_middle {
|
||||
vertical-align:middle!important;
|
||||
}
|
||||
|
||||
.text_top {
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
/* OTHER STYLES */
|
||||
|
||||
.no_wrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.no_border {
|
||||
border:none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** WIKI styles
|
||||
*/
|
||||
|
||||
#toc,
|
||||
.toc,
|
||||
.mw-warning {
|
||||
border: 1px solid #aaa;
|
||||
background-color: #f9f9f9;
|
||||
padding: 5px;
|
||||
font-size: 95%;
|
||||
}
|
||||
#toc h2,
|
||||
.toc h2 {
|
||||
display: inline;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
#toc #toctitle,
|
||||
.toc #toctitle,
|
||||
#toc .toctitle,
|
||||
.toc .toctitle {
|
||||
text-align: center;
|
||||
}
|
||||
#toc ul,
|
||||
.toc ul {
|
||||
list-style-type: none;
|
||||
list-style-image: none;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
text-align: left;
|
||||
}
|
||||
#toc ul ul,
|
||||
.toc ul ul {
|
||||
margin: 0 0 0 2em;
|
||||
}
|
||||
#toc .toctoggle,
|
||||
.toc .toctoggle {
|
||||
font-size: 94%;
|
||||
}
|
||||
|
||||
.thumbcaption {
|
||||
border: none;
|
||||
text-align: left;
|
||||
line-height: 1.4em;
|
||||
padding: 3px !important;
|
||||
font-size: 94%;
|
||||
}
|
||||
|
||||
.location-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
border-width: .5em 0 .8em 1.4em;
|
||||
}
|
||||
.location-left {
|
||||
float: left;
|
||||
clear: left;
|
||||
margin-right: .5em;
|
||||
border-width: .5em 1.4em .8em 0;
|
||||
}
|
||||
|
||||
BIN
logstats-war/src/main/webapp/img/icon_download.png
Normal file
BIN
logstats-war/src/main/webapp/img/icon_download.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 175 B |
BIN
logstats-war/src/main/webapp/img/icon_print.png
Normal file
BIN
logstats-war/src/main/webapp/img/icon_print.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 172 B |
BIN
logstats-war/src/main/webapp/img/logstats-logo.png
Normal file
BIN
logstats-war/src/main/webapp/img/logstats-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
22
logstats-war/src/main/webapp/jsp/admin/index.xhtml
Normal file
22
logstats-war/src/main/webapp/jsp/admin/index.xhtml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:composition template="/jsp/includes/layout.xhtml">
|
||||
<ui:define name="title">Vasc Admin</ui:define>
|
||||
<ui:define name="content">
|
||||
<rich:panel style="width:90%;margin-top:2em;">
|
||||
<f:facet name="header">
|
||||
<h:outputText value="Vasc Admin" />
|
||||
</f:facet>
|
||||
<rich:dataList var="info" value="#{vascFacesController.vascAdminEntries}">
|
||||
<h:column>
|
||||
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/vasc/#{info}/list.jsf"><h:outputText value="#{info}"/></h:outputLink>
|
||||
</h:column>
|
||||
</rich:dataList>
|
||||
</rich:panel>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
||||
10
logstats-war/src/main/webapp/jsp/help.xhtml
Normal file
10
logstats-war/src/main/webapp/jsp/help.xhtml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Help</ui:define>
|
||||
<ui:define name="content"><h:outputText value="Help"/></ui:define>
|
||||
</ui:composition>
|
||||
15
logstats-war/src/main/webapp/jsp/includes/index-pulic.xhtml
Normal file
15
logstats-war/src/main/webapp/jsp/includes/index-pulic.xhtml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<ui:composition
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<rich:panel header="User Greeter" style="width: 315px">
|
||||
<h2><h:outputText value="Hello User" /></h2>
|
||||
<h:outputLink value="user/index.jsf">
|
||||
<h:outputText value="Login" />
|
||||
</h:outputLink>
|
||||
<h:outputText value="Already Loggedin."/>
|
||||
</rich:panel>
|
||||
</ui:composition>
|
||||
16
logstats-war/src/main/webapp/jsp/includes/index-user.xhtml
Normal file
16
logstats-war/src/main/webapp/jsp/includes/index-user.xhtml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<ui:composition
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<rich:panel header="User Greeter" style="width: 315px">
|
||||
<h2><h:outputText value="Hello User" /></h2>
|
||||
<h:outputText value="Name: " />
|
||||
<h:outputText value="#{userController.flowUser.username}" />
|
||||
<rich:dataList value="#{userController.rightRoles}" var="role">
|
||||
<h:outputText value="#{role.roleKey}" />
|
||||
</rich:dataList>
|
||||
</rich:panel>
|
||||
</ui:composition>
|
||||
71
logstats-war/src/main/webapp/jsp/includes/layout.xhtml
Normal file
71
logstats-war/src/main/webapp/jsp/includes/layout.xhtml
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
|
||||
<meta name="robots" content="noodp"/>
|
||||
<meta http-equiv="Pragma" content="no-cache"/>
|
||||
<meta name="description" content="logstats"/>
|
||||
<meta name="keywords" content="logstats,log,log4j,jboss,index,statistics,forwardfire,x4o,vasc,java"/>
|
||||
<title><ui:insert name="title">Default title</ui:insert></title>
|
||||
<link href="#{facesContext.externalContext.requestContextPath}/css/site.css" rel="stylesheet" type="text/css"/>
|
||||
<!--[if IE 6]><link href="#{facesContext.externalContext.requestContextPath}/css/ie6_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
<!--[if IE 7]><link href="#{facesContext.externalContext.requestContextPath}/css/ie7_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
<!--[if IE 8]><link href="#{facesContext.externalContext.requestContextPath}/css/ie8_fixes.css" rel="stylesheet" type="text/css" /><![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<f:view>
|
||||
<div id="page_wrap">
|
||||
<div id="page_header">
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/index.jsf"><img src="#{facesContext.externalContext.requestContextPath}/img/logstats-logo.png" alt="LogStats Logo" /></a>
|
||||
<div id="page_menu_left">
|
||||
</div>
|
||||
<div id="page_menu_right">
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/index.jsf" class="active">Home</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/reports.jsf">Reports</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/realtime.jsf">Log</a>
|
||||
<a href="#{facesContext.externalContext.requestContextPath}/jsp/help.jsf">Help</a>
|
||||
<h:outputLink rendered="#{userController.userLoggedin}" value="#{facesContext.externalContext.requestContextPath}/jsp/admin/index.jsf">
|
||||
<h:outputText value="Admin"/>
|
||||
</h:outputLink>
|
||||
</div>
|
||||
<div id="page_user_info">
|
||||
<h:outputLink rendered="#{userController.userLoggedin == false}" value="#{facesContext.externalContext.requestContextPath}/jsp/admin/index.jsf">
|
||||
<h:outputText value="Login"/>
|
||||
</h:outputLink>
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == true}">
|
||||
<h:outputText value="#{userController.user.username}"/>
|
||||
<h:outputText value=" - "/>
|
||||
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/jsp/login/logout.jsf">
|
||||
<h:outputText value="Logout"/>
|
||||
</h:outputLink>
|
||||
</h:panelGroup>
|
||||
</div>
|
||||
</div>
|
||||
<div id="page_content">
|
||||
<h1><ui:insert name="title" /></h1>
|
||||
<ui:insert name="content"/>
|
||||
</div>
|
||||
<div class="spacer"> </div>
|
||||
<div id="page_footer">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td colspan="4" class="text_center">LogStats for logging your stats.</td>
|
||||
</tr>
|
||||
<tr class="copyright">
|
||||
<td colspan="2" class="text_left">Copyright © none</td>
|
||||
<td colspan="2" class="text_right">
|
||||
Versie 0.8Beta -rXxx
|
||||
<i>(2010-06-26 01:07)</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</f:view>
|
||||
</body>
|
||||
</html>
|
||||
318
logstats-war/src/main/webapp/jsp/includes/vasc-template.xhtml
Normal file
318
logstats-war/src/main/webapp/jsp/includes/vasc-template.xhtml
Normal file
|
|
@ -0,0 +1,318 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:v="http://vasc.forwardfire.net/vasc.tld"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:composition template="/jsp/includes/layout.xhtml">
|
||||
<ui:define name="title">
|
||||
<h:outputText value="#{requestScopeVascEntityNameI18n}" />
|
||||
</ui:define>
|
||||
<ui:define name="content">
|
||||
<script language="javascript" type="text/javascript">
|
||||
<![CDATA[
|
||||
function selectAllCheckboxes(x) {
|
||||
for (var i=0,l=x.form.length; i<l; i++) {
|
||||
if (x.form[i].type == 'checkbox' && (!x.form[i].disabled) && x!=x.form[i] ) {
|
||||
x.form[i].checked=!x.form[i].checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
<v:vascEntry vascController="#{vascFacesController.vascController}"
|
||||
vascFrontendData="#{vascFacesController.newVascFrontendData}"
|
||||
entryName="#{requestScopeVascEntityName}"
|
||||
entrySupportVar="entrySupport"
|
||||
tableRecordVar="tableRecord"
|
||||
injectEditFieldsId="injectEditFieldsId"
|
||||
injectTableOptionsId="injectTableOptionsId"
|
||||
injectTableColumnsId="injectTableColumnsId"
|
||||
disableLinkColumns="true"
|
||||
>
|
||||
<f:facet name="deleteView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.deleteDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.selectedDisplayName}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<h:commandButton actionListener="#{entrySupport.deleteAction}" value="#{entrySupport.i18nMap['vasc.action.deleteRowAction.name']}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="exportView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.exportDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="editView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.editDescription]}" escape="false" rendered="#{!entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.createDescription]}" escape="false" rendered="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<ul class="actionboxtab">
|
||||
<li><a class="active"><h:outputText value="#{entrySupport.i18nMap['vasc.action.editRowAction.name']}"/></a></li>
|
||||
<ui:repeat var="link" value="#{entrySupport.vascLinkEntriesEditTab}" rendered="#{!entrySupport.vascEntry.vascFrontendData.vascEntryState.editCreate}">
|
||||
<li><h:commandLink actionListener="#{entrySupport.linkEditAction}" value="#{entrySupport.i18nMap[link.name]}" type="#{link.id}"/></li>
|
||||
</ui:repeat>
|
||||
</ul>
|
||||
<h:panelGrid columns="1" styleClass="actionbox" width="100%">
|
||||
<h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
</h:panelGrid>
|
||||
</h:form>
|
||||
<br/>
|
||||
<h:form>
|
||||
<h:panelGrid columns="3" id="injectEditFieldsId" styleClass="actionbox"/>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.saveAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.save']}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.cancelAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.action.cancel']}" />
|
||||
</p>
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
|
||||
<f:facet name="listView" >
|
||||
<h:panelGroup>
|
||||
<!-- <h1><h:outputText value="#{entrySupport.i18nMap[entrySupport.vascEntry.name]}"/></h1> -->
|
||||
<p>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap[entrySupport.vascEntry.listDescription]}" escape="false">
|
||||
<f:param value="#{entrySupport.vascEntry.name}" />
|
||||
</h:outputFormat>
|
||||
</p>
|
||||
<h:form>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.addAction}"
|
||||
rendered="#{entrySupport.vascEntry.vascAdminCreate}"
|
||||
value="#{entrySupport.i18nMap['vasc.action.addRowAction.name']}"
|
||||
title="#{entrySupport.i18nMap['vasc.action.addRowAction.description']}"
|
||||
/>
|
||||
<h:commandButton actionListener="#{entrySupport.backAction}"
|
||||
rendered="#{entrySupport.renderBackAction}"
|
||||
value="#{entrySupport.i18nMap['generic.vasc.jsf.action.back']}"
|
||||
/>
|
||||
|
||||
</p>
|
||||
</h:form>
|
||||
<h:form>
|
||||
<rich:dataTable id="injectTableColumnsId" var="tableRecord" value="#{entrySupport.tableDataModel}" rowClasses="odd,even">
|
||||
<f:facet name="header">
|
||||
<rich:columnGroup>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left">
|
||||
<ul class="actionboxtab">
|
||||
<li>
|
||||
<h:panelGroup rendered="#{!entrySupport.renderBackAction}">
|
||||
<a class="active"><h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.header']}"/></a>
|
||||
</h:panelGroup>
|
||||
<h:commandLink actionListener="#{entrySupport.backEditAction}" value="#{entrySupport.i18nMap['vasc.action.editRowAction.name']}" rendered="#{entrySupport.renderBackEditAction}"/>
|
||||
</li>
|
||||
<ui:repeat var="link" value="#{entrySupport.vascLinkEntriesEditTabParentState}">
|
||||
<li><h:commandLink actionListener="#{entrySupport.linkListAction}" value="#{entrySupport.i18nMap[link.name]}" type="#{link.id}" styleClass="#{link.vascEntryId==entrySupport.vascEntry.id?'active':''}"/></li>
|
||||
</ui:repeat>
|
||||
</ul>
|
||||
<h:panelGrid columns="1" styleClass="actionbox" width="100%">
|
||||
<h:panelGrid columns="2" id="injectTableOptionsId"/>
|
||||
<h:panelGroup>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.search']}"/>
|
||||
<h:inputText value="#{entrySupport.searchString}"/>
|
||||
<h:commandButton actionListener="#{entrySupport.searchAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.listOption.sumbit']}"/>
|
||||
</h:panelGroup>
|
||||
</h:panelGrid>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<ul class="paging">
|
||||
<li class="paging_atstart">
|
||||
<h:commandLink rendered="#{entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}"
|
||||
actionListener="#{entrySupport.pagePreviousAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}" />
|
||||
</li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesDataModel}" rendered="#{!entrySupport.hasExtendedPageMode}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageMode}">
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedBegin}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageModeCenter}">
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedCenter}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedEnd}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li class="paging_atend">
|
||||
<h:commandLink rendered="#{entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}"
|
||||
actionListener="#{entrySupport.pageNextAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}" />
|
||||
</li>
|
||||
</ul>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<h:panelGroup styleClass="table_options_top">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.rows']}" />
|
||||
<h:inputText required="false" value="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.vascBackendState.pageSize}" size="4"/>
|
||||
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.pagerDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedDirectPage}" valueChangeListener="#{entrySupport.processDirectPageChange}">
|
||||
<f:selectItems value="#{entrySupport.directPageItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_download.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.download.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.downloadDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedExporterAction}" valueChangeListener="#{entrySupport.processDirectDownloadChange}">
|
||||
<f:selectItems value="#{entrySupport.globalExportItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_print.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.printer.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap['generic.vasc.jsf.table.resultText']}">
|
||||
<f:param value="#{entrySupport.pageStartCount}" />
|
||||
<f:param value="#{entrySupport.pageStopCount}" />
|
||||
<f:param value="#{entrySupport.pageTotalRecordCount}" />
|
||||
</h:outputFormat>
|
||||
</h:panelGroup>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true" rendered="#{entrySupport.hasMultiRowActions}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.multiAction.selectAll']}"/>
|
||||
<h:selectBooleanCheckbox id="selectAllBox" required="false" onchange="javascript:selectAllCheckboxes(this);return false;" value="#{entrySupport.selectAllValue}"/>
|
||||
<h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:selectOneMenu id="multiAction" required="false" value="#{entrySupport.selectedMultiRowAction}" onchange="javascript:this.form.submit(); return false;" valueChangeListener="#{entrySupport.processMultiRowActionChange}">
|
||||
<f:selectItems value="#{entrySupport.multiRowActionItems}" />
|
||||
</h:selectOneMenu>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalFieldColumnCount}" breakBefore="true">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.fields']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalLinkColumnCount}" rendered="#{entrySupport.totalLinkColumnCount != 0}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.links']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalActionColumnCount}" rendered="#{entrySupport.totalActionColumnCount != 0}">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.tableHeader.actions']}" styleClass="table_sub_header"/>
|
||||
</rich:column>
|
||||
</rich:columnGroup>
|
||||
</f:facet>
|
||||
<f:facet name="footer">
|
||||
<rich:columnGroup>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left">
|
||||
<h:panelGroup styleClass="table_options_bottom">
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.rows']}" />
|
||||
<h:inputText required="false" value="#{entrySupport.vascEntry.vascFrontendData.vascEntryState.vascBackendState.pageSize}" size="4"/>
|
||||
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.pagerDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedDirectPage}" valueChangeListener="#{entrySupport.processDirectPageChange}">
|
||||
<f:selectItems value="#{entrySupport.directPageItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_download.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.download.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputText value="#{entrySupport.i18nMap['generic.vasc.jsf.table.downloadDirect']}" />
|
||||
<h:selectOneMenu onchange="javascript:this.form.submit(); return false;" value="#{entrySupport.selectedExporterAction}" valueChangeListener="#{entrySupport.processDirectDownloadChange}">
|
||||
<f:selectItems value="#{entrySupport.globalExportItems}" />
|
||||
</h:selectOneMenu>
|
||||
|
||||
<img src="#{facesContext.externalContext.requestContextPath}/img/icon_print.png" alt="#{entrySupport.i18nMap['generic.vasc.jsf.table.printer.img']}" width="15" height="15" /><h:outputText value="&nbsp;&nbsp;" escape="false"/>
|
||||
<h:outputFormat value="#{entrySupport.i18nMap['generic.vasc.jsf.table.resultText']}">
|
||||
<f:param value="#{entrySupport.pageStartCount}" />
|
||||
<f:param value="#{entrySupport.pageStopCount}" />
|
||||
<f:param value="#{entrySupport.pageTotalRecordCount}" />
|
||||
</h:outputFormat>
|
||||
</h:panelGroup>
|
||||
</rich:column>
|
||||
<rich:column colspan="#{entrySupport.totalColumnCount}" styleClass="text_left" breakBefore="true">
|
||||
<ul class="paging">
|
||||
<li class="paging_atstart">
|
||||
<h:commandLink rendered="#{entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}"
|
||||
actionListener="#{entrySupport.pagePreviousAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPagePreviousAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.previous']}" />
|
||||
</li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesDataModel}" rendered="#{!entrySupport.hasExtendedPageMode}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageMode}">
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedBegin}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
<h:panelGroup rendered="#{entrySupport.hasExtendedPageModeCenter}">
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedCenter}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li><span class="text">...</span></li>
|
||||
<ui:repeat var="page" value="#{entrySupport.tablePagesExtendedEnd}">
|
||||
<li>
|
||||
<h:commandLink actionListener="#{entrySupport.pageAction}" value="#{page.pageNumber}" type="#{page.pageNumber}" rendered="#{!page.selected}"/>
|
||||
<h:outputText styleClass="paging_thispage" value="#{page.pageNumber}" rendered="#{page.selected}"/>
|
||||
</li>
|
||||
</ui:repeat>
|
||||
</h:panelGroup>
|
||||
<li class="paging_atend">
|
||||
<h:commandLink rendered="#{entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}"
|
||||
actionListener="#{entrySupport.pageNextAction}"/>
|
||||
<h:outputText rendered="#{!entrySupport.hasPageNextAction}" value="#{entrySupport.i18nMap['generic.vasc.jsf.pager.next']}" />
|
||||
</li>
|
||||
</ul>
|
||||
</rich:column>
|
||||
</rich:columnGroup>
|
||||
</f:facet>
|
||||
</rich:dataTable>
|
||||
</h:form>
|
||||
<h:form>
|
||||
<p>
|
||||
<h:commandButton actionListener="#{entrySupport.addAction}"
|
||||
rendered="#{entrySupport.vascEntry.vascAdminCreate}"
|
||||
value="#{entrySupport.i18nMap['vasc.action.addRowAction.name']}"
|
||||
title="#{entrySupport.i18nMap['vasc.action.addRowAction.description']}"/>
|
||||
</p>
|
||||
</h:form>
|
||||
</h:panelGroup>
|
||||
</f:facet>
|
||||
</v:vascEntry>
|
||||
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html">
|
||||
<ui:define name="title">
|
||||
<h:outputText value="#{wikiPageController.wikiTitle}" />
|
||||
</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="#{wikiPageController.wikiContent}" escape="false"/>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
20
logstats-war/src/main/webapp/jsp/index.xhtml
Normal file
20
logstats-war/src/main/webapp/jsp/index.xhtml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Index</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Test etsdfjs "/>
|
||||
<!--
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == false}">
|
||||
<ui:include src="/jsp/includes/index-public.xhtml"/>
|
||||
</h:panelGroup>
|
||||
<h:panelGroup rendered="#{userController.userLoggedin == true}">
|
||||
<ui:include src="/jsp/includes/index-user.xhtml"/>
|
||||
</h:panelGroup
|
||||
-->
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
2
logstats-war/src/main/webapp/jsp/index_jsp.jsp
Normal file
2
logstats-war/src/main/webapp/jsp/index_jsp.jsp
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<c:redirect url="jsp/index.jsf"/>
|
||||
11
logstats-war/src/main/webapp/jsp/login/login-error.xhtml
Normal file
11
logstats-war/src/main/webapp/jsp/login/login-error.xhtml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<ui:define name="title">Error</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Could not login" />
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
11
logstats-war/src/main/webapp/jsp/login/login-forgot.xhtml
Normal file
11
logstats-war/src/main/webapp/jsp/login/login-forgot.xhtml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<ui:define name="title">Forgot</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Could forgot my login, send it to me" />
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
23
logstats-war/src/main/webapp/jsp/login/login.xhtml
Normal file
23
logstats-war/src/main/webapp/jsp/login/login.xhtml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core">
|
||||
<ui:composition template="/jsp/includes/layout.xhtml">
|
||||
<ui:define name="title">Login</ui:define>
|
||||
<ui:define name="content">
|
||||
<form method="post" action="j_security_check">
|
||||
<h:panelGrid columns="2">
|
||||
<h:column><h:outputText value="Username:" /></h:column>
|
||||
<h:column><input type="text" name="j_username"/></h:column>
|
||||
|
||||
<h:column><h:outputText value="Password:" /></h:column>
|
||||
<h:column><input type="password" name="j_password"/></h:column>
|
||||
</h:panelGrid>
|
||||
<input type="submit" value="Login"/>
|
||||
</form>
|
||||
<h:outputLink value="#{facesContext.externalContext.requestContextPath}/jsp/login/login-forgot.jsf">
|
||||
<h:outputText value="Forgot my login." />
|
||||
</h:outputLink>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
||||
11
logstats-war/src/main/webapp/jsp/login/logout.xhtml
Normal file
11
logstats-war/src/main/webapp/jsp/login/logout.xhtml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
>
|
||||
<ui:define name="title">Logout</ui:define>
|
||||
<ui:define name="content">
|
||||
<h:outputText value="Succesfully logged out." />
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
56
logstats-war/src/main/webapp/jsp/realtime.xhtml
Normal file
56
logstats-war/src/main/webapp/jsp/realtime.xhtml
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:a4j="http://richfaces.org/a4j"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Realtime Logs</ui:define>
|
||||
<ui:define name="content">
|
||||
<a4j:region>
|
||||
<h:form>
|
||||
<a4j:poll id="poll" interval="4000" enabled="#{realTimeController.pollEnabled}" reRender="poll,messageLog"/>
|
||||
</h:form>
|
||||
</a4j:region>
|
||||
<h:form>
|
||||
<h:panelGrid columns="1" id="grid" width="100%">
|
||||
<h:outputText value="Realtime processed data event log"/>
|
||||
<rich:separator lineType="none" height="10px"/>
|
||||
<rich:separator lineType="solid" height="1px"/>
|
||||
|
||||
<h:panelGroup>
|
||||
<h:outputText value="Polling active:"/>
|
||||
<h:selectBooleanCheckbox value="#{realTimeController.pollEnabled}" required="false" onchange="javascript:this.form.submit(); return false;"/>
|
||||
|
||||
<h:outputText value="Reversed tail:"/>
|
||||
<h:selectBooleanCheckbox value="#{realTimeController.reversedTail}" required="false" onchange="javascript:this.form.submit(); return false;"/>
|
||||
|
||||
<h:outputText value="LogHosts:"/>
|
||||
|
||||
<h:outputText value="LogLevel:"/>
|
||||
|
||||
<h:outputText value="Message regex:"/>
|
||||
<h:inputText value="#{realTimeController.filterRegex}" required="false"/>
|
||||
|
||||
<h:outputText value="Area rows:"/>
|
||||
<h:selectOneMenu value="#{realTimeController.messageRows}" onchange="javascript:this.form.submit(); return false;">
|
||||
<f:selectItems value="#{realTimeController.messageRowsSelectItems}"/>
|
||||
</h:selectOneMenu>
|
||||
<h:outputText value="cols:"/>
|
||||
<h:selectOneMenu value="#{realTimeController.messageCols}" onchange="javascript:this.form.submit(); return false;">
|
||||
<f:selectItems value="#{realTimeController.messageColsSelectItems}"/>
|
||||
</h:selectOneMenu>
|
||||
|
||||
</h:panelGroup>
|
||||
<h:inputTextarea
|
||||
id="messageLog"
|
||||
style="font-size:10px;"
|
||||
rows="#{realTimeController.messageRows}" cols="#{realTimeController.messageCols}"
|
||||
enabled="false"
|
||||
value="#{realTimeController.messageLogData}"
|
||||
/>
|
||||
</h:panelGrid>
|
||||
</h:form>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
10
logstats-war/src/main/webapp/jsp/reports.xhtml
Normal file
10
logstats-war/src/main/webapp/jsp/reports.xhtml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<ui:composition template="/jsp/includes/layout.xhtml"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:rich="http://richfaces.org/rich"
|
||||
>
|
||||
<ui:define name="title">Reports</ui:define>
|
||||
<ui:define name="content"><h:outputText value="The report page"/></ui:define>
|
||||
</ui:composition>
|
||||
Loading…
Add table
Add a link
Reference in a new issue