commit e7d19d4381122193f93f7df2886d79fdca7272fa Author: chenjinsong Date: Thu Sep 27 16:28:35 2018 +0800 initial commit diff --git a/gloam/.classpath b/gloam/.classpath new file mode 100644 index 0000000..468cd86 --- /dev/null +++ b/gloam/.classpath @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/gloam/.project b/gloam/.project new file mode 100644 index 0000000..9f3b657 --- /dev/null +++ b/gloam/.project @@ -0,0 +1,31 @@ + + + gloam + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/gloam/.settings/.jsdtscope b/gloam/.settings/.jsdtscope new file mode 100644 index 0000000..f2f9fad --- /dev/null +++ b/gloam/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gloam/.settings/org.eclipse.core.resources.prefs b/gloam/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..de37953 --- /dev/null +++ b/gloam/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//WebRoot/auditlog/auditlog-index.html=UTF-8 +encoding//WebRoot/common/page.html=UTF-8 +encoding/=UTF-8 diff --git a/gloam/.settings/org.eclipse.jdt.core.prefs b/gloam/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..fe16944 --- /dev/null +++ b/gloam/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,101 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/gloam/.settings/org.eclipse.wst.common.component b/gloam/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..ad389ec --- /dev/null +++ b/gloam/.settings/org.eclipse.wst.common.component @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gloam/.settings/org.eclipse.wst.common.project.facet.core.xml b/gloam/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..446319e --- /dev/null +++ b/gloam/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.container b/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.name b/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/gloam/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/gloam/WebRoot/META-INF/MANIFEST.MF b/gloam/WebRoot/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/gloam/WebRoot/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/gloam/WebRoot/WEB-INF/lib/com.jcraft.jsch_0.1.31.jar b/gloam/WebRoot/WEB-INF/lib/com.jcraft.jsch_0.1.31.jar new file mode 100644 index 0000000..541748f Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/com.jcraft.jsch_0.1.31.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/commons-lang.jar b/gloam/WebRoot/WEB-INF/lib/commons-lang.jar new file mode 100644 index 0000000..b910561 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/commons-lang.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/cos-26Dec2008.jar b/gloam/WebRoot/WEB-INF/lib/cos-26Dec2008.jar new file mode 100644 index 0000000..ea39c98 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/cos-26Dec2008.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/cron4j-2.2.5.jar b/gloam/WebRoot/WEB-INF/lib/cron4j-2.2.5.jar new file mode 100644 index 0000000..90fc173 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/cron4j-2.2.5.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/druid-1.0.29.jar b/gloam/WebRoot/WEB-INF/lib/druid-1.0.29.jar new file mode 100644 index 0000000..9278cc3 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/druid-1.0.29.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/fastjson-1.2.47.jar b/gloam/WebRoot/WEB-INF/lib/fastjson-1.2.47.jar new file mode 100644 index 0000000..f342bca Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/fastjson-1.2.47.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/ganymed-ssh2-build210.jar b/gloam/WebRoot/WEB-INF/lib/ganymed-ssh2-build210.jar new file mode 100644 index 0000000..e3bde26 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/ganymed-ssh2-build210.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/jcommander-1.48.jar b/gloam/WebRoot/WEB-INF/lib/jcommander-1.48.jar new file mode 100644 index 0000000..ad0a12c Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/jcommander-1.48.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/jetty-server-8.1.8.jar b/gloam/WebRoot/WEB-INF/lib/jetty-server-8.1.8.jar new file mode 100644 index 0000000..314f4ca Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/jetty-server-8.1.8.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/jfinal-3.4-bin-with-src.jar b/gloam/WebRoot/WEB-INF/lib/jfinal-3.4-bin-with-src.jar new file mode 100644 index 0000000..e0f28c5 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/jfinal-3.4-bin-with-src.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/log4j-1.2.16.jar b/gloam/WebRoot/WEB-INF/lib/log4j-1.2.16.jar new file mode 100644 index 0000000..3f9d847 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/log4j-1.2.16.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/org.dtools.javaini-v1.1.00.jar b/gloam/WebRoot/WEB-INF/lib/org.dtools.javaini-v1.1.00.jar new file mode 100644 index 0000000..632ee95 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/org.dtools.javaini-v1.1.00.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/ostermillerutils_1_07_00.jar b/gloam/WebRoot/WEB-INF/lib/ostermillerutils_1_07_00.jar new file mode 100644 index 0000000..a993150 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/ostermillerutils_1_07_00.jar differ diff --git a/gloam/WebRoot/WEB-INF/lib/sqlite-jdbc-3.7.2.jar b/gloam/WebRoot/WEB-INF/lib/sqlite-jdbc-3.7.2.jar new file mode 100644 index 0000000..2030ea0 Binary files /dev/null and b/gloam/WebRoot/WEB-INF/lib/sqlite-jdbc-3.7.2.jar differ diff --git a/gloam/WebRoot/WEB-INF/web.xml b/gloam/WebRoot/WEB-INF/web.xml new file mode 100644 index 0000000..61edaea --- /dev/null +++ b/gloam/WebRoot/WEB-INF/web.xml @@ -0,0 +1,40 @@ + + + gloam + + + i18n Filter + + com.nis.gloam.filter.I18nFilter + + + defaultLang + en_US + + + i18nFile + + i18n/globalMessages + + + + i18n Filter + /* + + + + + jfinal + com.jfinal.core.JFinalFilter + + configClass + com.nis.gloam.config.BaseConfig + + + + jfinal + /* + + + + \ No newline at end of file diff --git a/gloam/WebRoot/auditlog/auditlog-index.html b/gloam/WebRoot/auditlog/auditlog-index.html new file mode 100644 index 0000000..c9582fb --- /dev/null +++ b/gloam/WebRoot/auditlog/auditlog-index.html @@ -0,0 +1,107 @@ + + + +#include("/common/header.html") + + + + + +
+
+ + + +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + + #if(auditLog.getList()!=null&&auditLog.getList().size()!=0) + #for(x : auditLog.getList()) + + + + + + + + + #end + #else + + + + #end + +
+ #(_res.get("creater")) + + #(_res.get("explain")) + + #(_res.get("create.time")) + + #(_res.get("ip")) + + #(_res.get("uri")) + + #(_res.get("request.way")) +
+ #(x.create_by) + + #(_res.get(x.remarks)) + + #(x.create_date) + + #(x.remote_addr) + + #(x.request_uri) + + #(x.method) +
+ 没有记录 +
+ #@pageSplite(auditLog.pageNumber, auditLog.totalPage,auditLog.totalRow,auditLog.pageSize, "/auditlog/") +
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/common/header.html b/gloam/WebRoot/common/header.html new file mode 100644 index 0000000..4190f0d --- /dev/null +++ b/gloam/WebRoot/common/header.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gloam/WebRoot/common/page.html b/gloam/WebRoot/common/page.html new file mode 100644 index 0000000..0800314 --- /dev/null +++ b/gloam/WebRoot/common/page.html @@ -0,0 +1,89 @@ +#define pageSplite(currentPage, totalPage,totalRow,pageSize, link) + #if(totalPage <= 0 || currentPage > totalPage) #return #end + #setLocal(startPage = currentPage - 1) + #if(startPage < 1) + #setLocal(startPage = 1) + #end + #setLocal(endPage = currentPage + 3) + #if(endPage > totalPage) + #setLocal(endPage = totalPage) + #end +
+
+
+ #if(_locale=='zh_CN') + 共有 #(totalRow) 条记录, 当前第 #(currentPage) /#(totalPage) + 页 + #else + Total #(totalRow) Rows, Current #(currentPage) / #(totalPage) + Pages + #end +
+
+
+ +
+
+
+ + #if(_locale=='zh_CN')每页显示#end #if(_locale=='zh_CN')条 #else Rows / Page #end +
+
+
+ +#end diff --git a/gloam/WebRoot/config/016config.html b/gloam/WebRoot/config/016config.html new file mode 100644 index 0000000..d9b4d16 --- /dev/null +++ b/gloam/WebRoot/config/016config.html @@ -0,0 +1,352 @@ + + + + + +#(_res.get("system.config")) + + + + +#include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + + #else + + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + + #else + + #end +
+
+
+ +
+
+ + +
+ + #for(deviceData:deviceInfos) + + #if(session.tabTag) + #if(session.tabTag==deviceData.key) +
+
+ #else +
+
+ #end + #else + #if(for.index==0) +
+
+ #else +
+
+ #end + #end + + +
+ #for(deviceInfo:deviceData.value) + + + + + + + #if(deviceInfo.manageName.contains(':')) + + + + + + + + + + #else + + + + + + + + + + #end + +
#(deviceInfo.manageName) +
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ #end +
+ + +
+
+
+
+ #end +
+ +
+
+ + +
+ + + + diff --git a/gloam/WebRoot/config/102config.html b/gloam/WebRoot/config/102config.html new file mode 100644 index 0000000..5781b6d --- /dev/null +++ b/gloam/WebRoot/config/102config.html @@ -0,0 +1,324 @@ + + + + + +#(_res.get("system.config")) + + + + +#include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + #else + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + #else + #end +
+
+
+

+ #(_res.get("system.config")) +

+
+
+ +
+ #for(deviceData:deviceInfos) + #for(deviceInfo:deviceData.value) + + + + + + #if(deviceInfo.manageName.contains(':')) + + + + + + + + + + #else + + + + + + + + + + #end + #end + +
#(deviceInfo.manageName) +
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ #end + #if(deviceInfos) +
+ + +
+ #else +

暂无数据信息

+ #end +
+
+
+ +
+ + + + diff --git a/gloam/WebRoot/config/config.html b/gloam/WebRoot/config/config.html new file mode 100644 index 0000000..408e357 --- /dev/null +++ b/gloam/WebRoot/config/config.html @@ -0,0 +1,413 @@ + + + + + +#(_res.get("system.config")) + + + + + +#include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + + #else + + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + + #else + + #end +
+ #----# +
+ #for(x : nodeDatas) + #if(session.tabTag) + #if(session.tabTag == x.key) + #set(class="tab tab-active") + #else + #set(class="tab") + #end + #else + #if(for.index==0) + #set(class="tab tab-active") + #else + #set(class="tab") + #end + #end +
#(x.value.name)
+ #end +
+
+ + #for(deviceData:deviceInfos) + + #if(session.tabTag) + #if(session.tabTag==deviceData.key) +
+
+ #else +
+
+ #end + #else + #if(for.index==0) +
+
+ #else +
+
+ #end + #end + + #if(deviceData.value??&&deviceData.value.size()>0) +
+ #for(deviceInfo:deviceData.value) + + + + + + + + + #if(deviceInfo.manageName.contains(':')) + #-- + --# + + + + + + + + + #else + #-- + --# + + + + + + + + + #end + +
#(deviceInfo.manageName) +
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ #end +
+ + +
+
+ #end +
+
+ #end +
+ + + +
+ + + + diff --git a/gloam/WebRoot/config/softConfig.html b/gloam/WebRoot/config/softConfig.html new file mode 100644 index 0000000..8f34036 --- /dev/null +++ b/gloam/WebRoot/config/softConfig.html @@ -0,0 +1,157 @@ + + + + +#include("/common/header.html") + + + + + + +
+
+ +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + #set(flag = 0) + #for(x : result.keySet()) + #for(y : result.get(x)) + + + + #if(flag == 0) + + #set(flag = 1) + #end + + + + + + #end + #set(flag = 0) + #end + +
#(_res.get("monitor.card"))#(_res.get("softConfig.key"))#(_res.get("value"))#(_res.get("description"))
#(x)#(y.userField) + #if(y.error == 1) + #(_res.get('softConfig.error')):#(y.confFile) + #else + #if(y.isModify == 1) + + #else + #(y.confValue) + #end + #end + #(y.userTip) + #if(y.isModify == 1 && y.error != 1) +
+ #end +
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/gloam/WebRoot/css/DT_bootstrap.css b/gloam/WebRoot/css/DT_bootstrap.css new file mode 100644 index 0000000..0a0a1ec --- /dev/null +++ b/gloam/WebRoot/css/DT_bootstrap.css @@ -0,0 +1,202 @@ + +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 8px; +} + +div.dataTables_paginate { + text-align: center; +} + +table.table { + clear: both; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../image/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../image/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../image/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../image/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../image/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + border-top: none; +} + + + + +/* + * TableTools styles + */ +.table tbody tr.active td, +.table tbody tr.active th { + background-color: #08C; + color: white; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +div.DTTT .btn { + color: #333 !important; + font-size: 12px; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +/* TableTools information display */ +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin-bottom: 0 !important; +} + +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_LeftFootWrapper table { + border-top: none; +} +.pagination { + margin: 0; +} +.row-fluid .span61 { + width: 20%; +} +.row-fluid .span62 { + width: 52%; +} +.row-fluid .span63 { + width: 22%; +} +.dataTables_length{ + float: right; +} +select { + width: 76px; + background-color: #ffffff; + border: 1px solid #cccccc; + height: 25px; +} + +label,select { + font-size: 12px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/bootstrap-dialog-1.35.4.min.css b/gloam/WebRoot/css/bootstrap-dialog-1.35.4.min.css new file mode 100644 index 0000000..d679774 --- /dev/null +++ b/gloam/WebRoot/css/bootstrap-dialog-1.35.4.min.css @@ -0,0 +1,129 @@ +.bootstrap-dialog .modal-header { + border-top-left-radius: 4px; + border-top-right-radius: 4px +} + +.bootstrap-dialog .bootstrap-dialog-title { + color: #fff; + display: inline-block; + font-size: 16px +} + +.bootstrap-dialog .bootstrap-dialog-message { + font-size: 14px +} + +.bootstrap-dialog .bootstrap-dialog-button-icon { + margin-right: 3px +} + +.bootstrap-dialog .bootstrap-dialog-close-button { + font-size: 20px; + float: right; + opacity: .9; + filter: alpha(opacity = 90) +} + +.bootstrap-dialog .bootstrap-dialog-close-button:hover { + cursor: pointer; + opacity: 1; + filter: alpha(opacity = 100) +} + +.bootstrap-dialog.type-default .modal-header { + background-color: #fff +} + +.bootstrap-dialog.type-default .bootstrap-dialog-title { + color: #333 +} + +.bootstrap-dialog.type-info .modal-header { + background-color: #5bc0de +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: rgba(58,58,58,1) +} + +.bootstrap-dialog.type-success .modal-header { + background-color: #5cb85c +} + +.bootstrap-dialog.type-warning .modal-header { + background-color: #f0ad4e +} + +.bootstrap-dialog.type-danger .modal-header { + background-color: #d9534f +} + +.bootstrap-dialog.size-large .bootstrap-dialog-title { + font-size: 24px +} + +.bootstrap-dialog.size-large .bootstrap-dialog-close-button { + font-size: 30px +} + +.bootstrap-dialog.size-large .bootstrap-dialog-message { + font-size: 18px +} + +.bootstrap-dialog .icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear +} + +@ +-moz-keyframes spin { 0%{ + -moz-transform: rotate(0deg) +} + +100%{ +-moz-transform +:rotate(359deg) +} +} +@ +-webkit-keyframes spin { 0%{ + -webkit-transform: rotate(0deg) +} + +100%{ +-webkit-transform +:rotate(359deg) +} +} +@ +-o-keyframes spin { 0%{ + -o-transform: rotate(0deg) +} + +100%{ +-o-transform +:rotate(359deg) +} +} +@ +-ms-keyframes spin { 0%{ + -ms-transform: rotate(0deg) +} + +100%{ +-ms-transform +:rotate(359deg) +} +} +@ +keyframes spin { 0%{ + transform: rotate(0deg) +} +100%{ +transform +:rotate(359deg) +} +} \ No newline at end of file diff --git a/gloam/WebRoot/css/bootstrap-responsive.css b/gloam/WebRoot/css/bootstrap-responsive.css new file mode 100644 index 0000000..fcd72f7 --- /dev/null +++ b/gloam/WebRoot/css/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/gloam/WebRoot/css/bootstrap-responsive.min.css b/gloam/WebRoot/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..d1b7f4b --- /dev/null +++ b/gloam/WebRoot/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/gloam/WebRoot/css/bootstrap.css b/gloam/WebRoot/css/bootstrap.css new file mode 100644 index 0000000..2f56af3 --- /dev/null +++ b/gloam/WebRoot/css/bootstrap.css @@ -0,0 +1,6158 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/gloam/WebRoot/css/bootstrap.min.css b/gloam/WebRoot/css/bootstrap.min.css new file mode 100644 index 0000000..38d7683 --- /dev/null +++ b/gloam/WebRoot/css/bootstrap.min.css @@ -0,0 +1,5796 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { * + zoom: 1 +} + +.clearfix:before,.clearfix:after { + display: table; + line-height: 0; + content: "" +} + +.clearfix:after { + clear: both +} + +.hide-text { + font: 0/ 0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section + { + display: block +} + +audio,canvas,video { + display: inline-block; * + display: inline; * + zoom: 1 +} + +audio:not ([controls] ){ + display: none +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +a:hover,a:active { + outline: 0 +} + +sub,sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sup { + top: -0.5em +} + +sub { + bottom: -0.25em +} + +img { + width: auto; + height: 30px; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic +} + +#map_canvas img,.google-maps img { + max-width: none +} + +button,input,select,textarea { + margin: 0; + font-size: 100%; + vertical-align: middle +} + +button,input { * + overflow: visible; + line-height: normal +} + +button::-moz-focus-inner,input::-moz-focus-inner { + padding: 0; + border: 0 +} + +button,html input[type="button"],input[type="reset"],input[type="submit"] + { + cursor: pointer; + -webkit-appearance: button +} + +select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"] + { + cursor: pointer +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield +} + +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button + { + -webkit-appearance: none +} + +textarea { + overflow: auto; + vertical-align: top +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important + } + a,a:visited { + text-decoration: underline + } + a[href]:after { + content: " (" attr(href) ")" + } + abbr[title]:after { + content: " (" attr(title) ")" + } + .ir a:after,a[href ^="javascript:"]:after,a[href ^="#"]:after { + content: "" + } + pre,blockquote { + border: 1px solid #999; + page-break-inside: avoid + } + thead { + display: table-header-group + } + tr,img { + page-break-inside: avoid + } + img { + max-width: 100% !important + } + @page { + margin: .5cm + } + p,h2,h3 { + orphans: 3; + widows: 3 + } + h2,h3 { + page-break-after: avoid + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333; + background-color: #fff +} + +a { + color: #08c; + text-decoration: none +} + +a:hover,a:focus { + color: #08C; + text-decoration: underline +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px +} + +.row { + margin-left: -20px; * + zoom: 1 +} + +.row:before,.row:after { + display: table; + line-height: 0; + content: "" +} + +.row:after { + clear: both +} + +[class *="span"] { + float: left; + min-height: 1px; + margin-left: 20px +} + +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container + { + width: 940px +} + +.span12 { + width: 940px +} + +.span11 { + width: 860px +} + +.span10 { + width: 780px +} + +.span9 { + width: 700px +} + +.span8 { + width: 620px +} + +.span7 { + width: 540px +} + +.span6 { + width: 460px +} + +.span5 { + width: 380px +} + +.span4 { + width: 300px +} + +.span3 { + width: 220px +} + +.span2 { + width: 140px +} + +.span1 { + width: 60px +} + +.offset12 { + margin-left: 980px +} + +.offset11 { + margin-left: 900px +} + +.offset10 { + margin-left: 820px +} + +.offset9 { + margin-left: 740px +} + +.offset8 { + margin-left: 660px +} + +.offset7 { + margin-left: 580px +} + +.offset6 { + margin-left: 500px +} + +.offset5 { + margin-left: 420px +} + +.offset4 { + margin-left: 340px +} + +.offset3 { + margin-left: 260px +} + +.offset2 { + margin-left: 180px +} + +.offset1 { + margin-left: 100px +} + +.row-fluid { + width: 100%; * + zoom: 1 +} + +.row-fluid:before,.row-fluid:after { + display: table; + line-height: 0; + content: "" +} + +.row-fluid:after { + clear: both +} + +.row-fluid [class *="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; * + margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row-fluid [class *="span"]:first-child { + margin-left: 0 +} + +.row-fluid .controls-row [class *="span"]+[class *="span"] { + margin-left: 2.127659574468085% +} + +.row-fluid .span12 { + width: 100%; * + width: 99.94680851063829% +} + +.row-fluid .span11 { + width: 91.48936170212765%; * + width: 91.43617021276594% +} + +.row-fluid .span10 { + width: 82.97872340425532%; * + width: 82.92553191489361% +} + +.row-fluid .span9 { + width: 74.46808510638297%; * + width: 74.41489361702126% +} + +.row-fluid .span8 { + width: 65.95744680851064%; * + width: 65.90425531914893% +} + +.row-fluid .span7 { + width: 57.44680851063829%; * + width: 57.39361702127659% +} + +.row-fluid .span6 { + width: 48.93617021276595%; * + width: 48.88297872340425% +} + +.row-fluid .span5 { + width: 40.42553191489362%; * + width: 40.37234042553192% +} + +.row-fluid .span4 { + width: 31.914893617021278%; * + width: 31.861702127659576% +} + +.row-fluid .span3 { + width: 23.404255319148934%; * + width: 23.351063829787233% +} + +.row-fluid .span2 { + width: 14.893617021276595%; * + width: 14.840425531914894% +} + +.row-fluid .span1 { + width: 6.382978723404255%; * + width: 6.329787234042553% +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; * + margin-left: 104.14893617021275% +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; * + margin-left: 102.02127659574467% +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; * + margin-left: 95.6382978723404% +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; * + margin-left: 93.51063829787232% +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; * + margin-left: 87.12765957446807% +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; * + margin-left: 84.99999999999999% +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; * + margin-left: 78.61702127659572% +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; * + margin-left: 76.48936170212764% +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; * + margin-left: 70.10638297872339% +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; * + margin-left: 67.9787234042553% +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; * + margin-left: 61.59574468085106% +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; * + margin-left: 59.46808510638297% +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; * + margin-left: 53.085106382978715% +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; * + margin-left: 50.95744680851063% +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; * + margin-left: 44.57446808510638% +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; * + margin-left: 42.4468085106383% +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; * + margin-left: 36.06382978723405% +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; * + margin-left: 33.93617021276596% +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; * + margin-left: 27.5531914893617% +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; * + margin-left: 25.425531914893618% +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; * + margin-left: 19.04255319148936% +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; * + margin-left: 16.914893617021278% +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; * + margin-left: 10.53191489361702% +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; * + margin-left: 8.404255319148938% +} + +[class *="span"].hide,.row-fluid [class *="span"].hide { + display: none +} + +[class *="span"].pull-right,.row-fluid [class *="span"].pull-right { + float: right +} + +.container { + margin-right: auto; + margin-left: auto; * + zoom: 1 +} + +.container:before,.container:after { + display: table; + line-height: 0; + content: "" +} + +.container:after { + clear: both +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; * + zoom: 1 +} + +.container-fluid:before,.container-fluid:after { + display: table; + line-height: 0; + content: "" +} + +.container-fluid:after { + clear: both +} + +p { + margin: 0 0 10px +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px +} + +small { + font-size: 85% +} + +strong { + font-weight: bold +} + +em { + font-style: italic +} + +cite { + font-style: normal +} + +.muted { + color: #999 +} + +a.muted:hover,a.muted:focus { + color: #808080 +} + +.text-warning { + color: #c09853 +} + +a.text-warning:hover,a.text-warning:focus { + color: #a47e3c +} + +.text-error { + color: #b94a48 +} + +a.text-error:hover,a.text-error:focus { + color: #953b39 +} + +.text-info { + color: #3a87ad +} + +a.text-info:hover,a.text-info:focus { + color: #2d6987 +} + +.text-success { + color: #468847 +} + +a.text-success:hover,a.text-success:focus { + color: #356635 +} + +.text-left { + text-align: left +} + +.text-right { + text-align: right +} + +.text-center { + text-align: center +} + +h1,h2,h3,h4,h5,h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility +} + +h1 small,h2 small,h3 small,h4 small,h5 small,h6 small { + font-weight: normal; + line-height: 1; + color: #999 +} + +h1,h2,h3 { + line-height: 40px +} + +h1 { + font-size: 38.5px +} + +h2 { + font-size: 31.5px +} + +h3 { + font-size: 24.5px +} + +h4 { + font-size: 17.5px +} + +h5 { + font-size: 14px +} + +h6 { + font-size: 11.9px +} + +h1 small { + font-size: 24.5px +} + +h2 small { + font-size: 17.5px +} + +h3 small { + font-size: 14px +} + +h4 small { + font-size: 14px +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eee +} + +ul,ol { + padding: 0; + margin: 0 0 10px 25px +} + +ul ul,ul ol,ol ol,ol ul { + margin-bottom: 0 +} + +li { + line-height: 20px +} + +ul.unstyled,ol.unstyled { + margin-left: 0; + list-style: none +} + +ul.inline,ol.inline { + margin-left: 0; + list-style: none +} + +ul.inline>li,ol.inline>li { + display: inline-block; * + display: inline; + padding-right: 5px; + padding-left: 5px; * + zoom: 1 +} + +dl { + margin-bottom: 20px +} + +dt,dd { + line-height: 20px +} + +dt { + font-weight: bold +} + +dd { + margin-left: 10px +} + +.dl-horizontal { * + zoom: 1 +} + +.dl-horizontal:before,.dl-horizontal:after { + display: table; + line-height: 0; + content: "" +} + +.dl-horizontal:after { + clear: both +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap +} + +.dl-horizontal dd { + margin-left: 180px +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 1px solid #fff +} + +abbr[title],abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999 +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eee +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25 +} + +blockquote small { + display: block; + line-height: 20px; + color: #999 +} + +blockquote small:before { + content: '\2014 \00A0' +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eee; + border-left: 0 +} + +blockquote.pull-right p,blockquote.pull-right small { + text-align: right +} + +blockquote.pull-right small:before { + content: '' +} + +blockquote.pull-right small:after { + content: '\00A0 \2014' +} + +q:before,q:after,blockquote:before,blockquote:after { + content: "" +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px +} + +code,pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8 +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +pre.prettyprint { + margin-bottom: 20px +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0 +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll +} + +form { + margin: 0 0 20px +} + +fieldset { + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5 +} + +legend small { + font-size: 15px; + color: #999 +} + +label,input,button,select,textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px +} + +input,button,select,textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif +} + +label { + display: block; + margin-bottom: 5px +} + +select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input + { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +input,textarea,.uneditable-input { + width: 206px +} + +textarea { + height: auto +} + +textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input + { + background-color: #fff; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s +} + +textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus + { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px + rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px + rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px + rgba(82, 168, 236, 0.6) +} + +input[type="radio"],input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; * + margin-top: 0; + line-height: normal +} + +input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"] + { + width: auto +} + +select,input[type="file"] { + height: 30px; * + margin-top: 4px; + line-height: 30px +} + +select { + width: 220px; + background-color: #fff; + border: 1px solid #ccc +} + +select[multiple],select[size] { + height: auto +} + +select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus + { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.uneditable-input,.uneditable-textarea { + color: #999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #ccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025) +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap +} + +.uneditable-textarea { + width: auto; + height: auto +} + +input:-moz-placeholder,textarea:-moz-placeholder { + color: #999 +} + +input:-ms-input-placeholder,textarea:-ms-input-placeholder { + color: #999 +} + +input::-webkit-input-placeholder,textarea::-webkit-input-placeholder { + color: #999 +} + +.radio,.checkbox { + min-height: 20px; + padding-left: 20px +} + +.radio input[type="radio"],.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px +} + +.controls>.radio:first-child,.controls>.checkbox:first-child { + padding-top: 5px +} + +.radio.inline,.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle +} + +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline { + margin-left: 10px +} + +.input-mini { + width: 60px +} + +.input-small { + width: 90px +} + +.input-medium { + width: 150px +} + +.input-large { + width: 210px +} + +.input-xlarge { + width: 270px +} + +.input-xxlarge { + width: 530px +} + +input[class *="span"],select[class *="span"],textarea[class *="span"],.uneditable-input[class + *="span"],.row-fluid input[class *="span"],.row-fluid select[class *="span"],.row-fluid textarea[class + *="span"],.row-fluid .uneditable-input[class *="span"] { + float: none; + margin-left: 0 +} + +.input-append input[class *="span"],.input-append .uneditable-input[class + *="span"],.input-prepend input[class *="span"],.input-prepend .uneditable-input[class + *="span"],.row-fluid input[class *="span"],.row-fluid select[class *="span"],.row-fluid textarea[class + *="span"],.row-fluid .uneditable-input[class *="span"],.row-fluid .input-prepend [class + *="span"],.row-fluid .input-append [class *="span"] { + display: inline-block +} + +input,textarea,.uneditable-input { + margin-left: 0 +} + +.controls-row [class *="span"]+[class *="span"] { + margin-left: 20px +} + +input.span12,textarea.span12,.uneditable-input.span12 { + width: 926px +} + +input.span11,textarea.span11,.uneditable-input.span11 { + width: 846px +} + +input.span10,textarea.span10,.uneditable-input.span10 { + width: 766px +} + +input.span9,textarea.span9,.uneditable-input.span9 { + width: 686px +} + +input.span8,textarea.span8,.uneditable-input.span8 { + width: 606px +} + +input.span7,textarea.span7,.uneditable-input.span7 { + width: 526px +} + +input.span6,textarea.span6,.uneditable-input.span6 { + width: 446px +} + +input.span5,textarea.span5,.uneditable-input.span5 { + width: 366px +} + +input.span4,textarea.span4,.uneditable-input.span4 { + width: 286px +} + +input.span3,textarea.span3,.uneditable-input.span3 { + width: 206px +} + +input.span2,textarea.span2,.uneditable-input.span2 { + width: 126px +} + +input.span1,textarea.span1,.uneditable-input.span1 { + width: 46px +} + +.controls-row { * + zoom: 1 +} + +.controls-row:before,.controls-row:after { + display: table; + line-height: 0; + content: "" +} + +.controls-row:after { + clear: both +} + +.controls-row [class *="span"],.row-fluid .controls-row [class *="span"] + { + float: left +} + +.controls-row .checkbox[class *="span"],.controls-row .radio[class *="span"] + { + padding-top: 5px +} + +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly] + { + cursor: not-allowed; + background-color: #eee +} + +input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly] + { + background-color: transparent +} + +.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline + { + color: #c09853 +} + +.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea + { + color: #c09853 +} + +.control-group.warning input,.control-group.warning select,.control-group.warning textarea + { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) +} + +.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus + { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px + #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e +} + +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on + { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853 +} + +.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline + { + color: #b94a48 +} + +.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea + { + color: #b94a48 +} + +.control-group.error input,.control-group.error select,.control-group.error textarea + { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) +} + +.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus + { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px + #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392 +} + +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on + { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48 +} + +.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline + { + color: #468847 +} + +.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea + { + color: #468847 +} + +.control-group.success input,.control-group.success select,.control-group.success textarea + { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) +} + +.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus + { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px + #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b +} + +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on + { + color: #468847; + background-color: #dff0d8; + border-color: #468847 +} + +.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline + { + color: #3a87ad +} + +.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea + { + color: #3a87ad +} + +.control-group.info input,.control-group.info select,.control-group.info textarea + { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) +} + +.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus + { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px + #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3 +} + +.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on + { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad +} + +input:focus:invalid,textarea:focus:invalid,select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b +} + +input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus + { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7 +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; * + zoom: 1 +} + +.form-actions:before,.form-actions:after { + display: table; + line-height: 0; + content: "" +} + +.form-actions:after { + clear: both +} + +.help-block,.help-inline { + color: #595959 +} + +.help-block { + display: block; + margin-bottom: 10px +} + +.help-inline { + display: inline-block; * + display: inline; + padding-left: 5px; + vertical-align: middle; * + zoom: 1 +} + +.input-append,.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle +} + +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover + { + font-size: 14px +} + +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input + { + position: relative; + margin-bottom: 0; * + margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus + { + z-index: 2 +} + +.input-append .add-on,.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #fff; + background-color: #eee; + border: 1px solid #ccc +} + +.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle + { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.input-append .active,.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546 +} + +.input-prepend .add-on,.input-prepend .btn { + margin-right: -1px +} + +.input-prepend .add-on:first-child,.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px +} + +.input-append input,.input-append select,.input-append .uneditable-input + { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px +} + +.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child + { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.input-append .add-on,.input-append .btn,.input-append .btn-group { + margin-left: -1px +} + +.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle + { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input + { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn + { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child + { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px +} + +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child + { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0 +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px +} + +.form-search .input-append .search-query,.form-search .input-prepend .search-query + { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0 +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0 +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px +} + +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append + { + display: inline-block; * + display: inline; + margin-bottom: 0; + vertical-align: middle; * + zoom: 1 +} + +.form-search .hide,.form-inline .hide,.form-horizontal .hide { + display: none +} + +.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group + { + display: inline-block +} + +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend + { + margin-bottom: 0 +} + +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox + { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle +} + +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"] + { + float: left; + margin-right: 3px; + margin-left: 0 +} + +.control-group { + margin-bottom: 10px +} + +legend+.control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate +} + +.form-horizontal .control-group { + margin-bottom: 20px; * + zoom: 1 +} + +.form-horizontal .control-group:before,.form-horizontal .control-group:after + { + display: table; + line-height: 0; + content: "" +} + +.form-horizontal .control-group:after { + clear: both +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right +} + +.form-horizontal .controls { * + display: inline-block; * + padding-left: 20px; + margin-left: 180px; * + margin-left: 0 +} + +.form-horizontal .controls:first-child { * + padding-left: 180px +} + +.form-horizontal .help-block { + margin-bottom: 0 +} + +.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block + { + margin-top: 10px +} + +.form-horizontal .form-actions { + padding-left: 180px +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0 +} + +.table { + width: 100%; + margin-bottom: 20px +} + +.table th,.table td { + padding: 8px; + line-height: 20px; + vertical-align: top; + border-top: 1px solid #ddd +} + +.table th { + font-weight: bold +} + +.table thead th { + vertical-align: bottom +} + +.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td + { + border-top: 0 +} + +.table tbody+tbody { + border-top: 2px solid #ddd +} + +.table .table { + background-color: #fff +} + +.table-condensed th,.table-condensed td { + padding: 4px 5px +} + +.table-bordered { + border: 1px solid #ddd; + border-collapse: separate; * + border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.table-bordered th,.table-bordered td { + border-left: 1px solid #ddd +} + +.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td + { + border-top: 0 +} + +.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child + { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px +} + +.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child + { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px +} + +.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child + { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px +} + +.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child + { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px +} + +.table-bordered tfoot+tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0 +} + +.table-bordered tfoot+tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0 +} + +.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child + { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px +} + +.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child + { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px +} + +.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th + { + background-color: #4C4C4C +} +/*红色*/ +.alarmInfo{ + color:#ff0033 !important; +} +/*绿色*/ +.allSuccess{ + color:#4CAE4C !important; +} +/*蓝色*/ +.finish{ + color:#357EBD !important; +} +/*橙色*/ +.partSuccess{ + color:#e47833 !important; +} + +/*浅红*/ +.lowred{ + color: #FF6EB4 !important; +} +/*黄色*/ +.waryellow{ + color: #A6A600 !important; +} +/*青色*/ +.cyan{ + color:#00AEAE !important; +} + +/** +.table-striped tbody>tr:nth-child(odd)>td>span.alarmInfo{ + color:#ff0033; +} +.table-striped tbody>tr:nth-child(odd)>td>span.allSuccess{ + color:#66cc99; +} +.table-striped tbody>tr:nth-child(odd)>td>span.finish{ + color:#4178F0; +} +.table-striped tbody>tr:nth-child(odd)>td>span.partSuccess{ + color:#e47833; +} +.table-striped tbody>tr:nth-child(even)>td>span.alarmInfo{ + color:#ff0033; +} +.table-striped tbody>tr:nth-child(even)>td>span.allSuccess{ + color:#99cc66; +} +.table-striped tbody>tr:nth-child(even)>td>span.finish{ + color:#2E6BEF; +} +.table-striped tbody>tr:nth-child(even)>td>span.partSuccess{ + color:#cc6600; +}*/ + +.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th { + background-color: #f5f5f5 +} + +table td[class *="span"],table th[class *="span"],.row-fluid table td[class + *="span"],.row-fluid table th[class *="span"] { + display: table-cell; + float: none; + margin-left: 0 +} + +.table td.span1,.table th.span1 { + float: none; + width: 44px; + margin-left: 0 +} + +.table td.span2,.table th.span2 { + float: none; + width: 124px; + margin-left: 0 +} + +.table td.span3,.table th.span3 { + float: none; + width: 204px; + margin-left: 0 +} + +.table td.span4,.table th.span4 { + float: none; + width: 284px; + margin-left: 0 +} + +.table td.span5,.table th.span5 { + float: none; + width: 364px; + margin-left: 0 +} + +.table td.span6,.table th.span6 { + float: none; + width: 444px; + margin-left: 0 +} + +.table td.span7,.table th.span7 { + float: none; + width: 524px; + margin-left: 0 +} + +.table td.span8,.table th.span8 { + float: none; + width: 604px; + margin-left: 0 +} + +.table td.span9,.table th.span9 { + float: none; + width: 684px; + margin-left: 0 +} + +.table td.span10,.table th.span10 { + float: none; + width: 764px; + margin-left: 0 +} + +.table td.span11,.table th.span11 { + float: none; + width: 844px; + margin-left: 0 +} + +.table td.span12,.table th.span12 { + float: none; + width: 924px; + margin-left: 0 +} + +.table tbody tr.success>td { + background-color: #dff0d8 +} + +.table tbody tr.error>td { + background-color: #f2dede +} + +.table tbody tr.warning>td { + background-color: #fcf8e3 +} + +.table tbody tr.info>td { + background-color: #d9edf7 +} + +.table-hover tbody tr.success:hover>td { + background-color: #d0e9c6 +} + +.table-hover tbody tr.error:hover>td { + background-color: #ebcccc +} + +.table-hover tbody tr.warning:hover>td { + background-color: #faf2cc +} + +.table-hover tbody tr.info:hover>td { + background-color: #c4e3f3 +} + +[class ^="icon-"],[class *=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; * + margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat +} + +.icon-white,.nav-pills>.active>a>[class ^="icon-"],.nav-pills>.active>a>[class + *=" icon-"],.nav-list>.active>a>[class ^="icon-"],.nav-list>.active>a>[class + *=" icon-"],.navbar-inverse .nav>.active>a>[class ^="icon-"],.navbar-inverse .nav>.active>a>[class + *=" icon-"],.dropdown-menu>li>a:hover>[class ^="icon-"],.dropdown-menu>li>a:focus>[class + ^="icon-"],.dropdown-menu>li>a:hover>[class *=" icon-"],.dropdown-menu>li>a:focus>[class + *=" icon-"],.dropdown-menu>.active>a>[class ^="icon-"],.dropdown-menu>.active>a>[class + *=" icon-"],.dropdown-submenu:hover>a>[class ^="icon-"],.dropdown-submenu:focus>a>[class + ^="icon-"],.dropdown-submenu:hover>a>[class *=" icon-"],.dropdown-submenu:focus>a>[class + *=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png") +} + +.icon-glass { + background-position: 0 0 +} + +.icon-music { + background-position: -24px 0 +} + +.icon-search { + background-position: -48px 0 +} + +.icon-envelope { + background-position: -72px 0 +} + +.icon-heart { + background-position: -96px 0 +} + +.icon-star { + background-position: -120px 0 +} + +.icon-star-empty { + background-position: -144px 0 +} + +.icon-user { + background-position: -168px 0 +} + +.icon-film { + background-position: -192px 0 +} + +.icon-th-large { + background-position: -216px 0 +} + +.icon-th { + background-position: -240px 0 +} + +.icon-th-list { + background-position: -264px 0 +} + +.icon-ok { + background-position: -288px 0 +} + +.icon-remove { + background-position: -312px 0 +} + +.icon-zoom-in { + background-position: -336px 0 +} + +.icon-zoom-out { + background-position: -360px 0 +} + +.icon-off { + background-position: -384px 0 +} + +.icon-signal { + background-position: -408px 0 +} + +.icon-cog { + background-position: -432px 0 +} + +.icon-trash { + background-position: -456px 0 +} + +.icon-home { + background-position: 0 -24px +} + +.icon-file { + background-position: -24px -24px +} + +.icon-time { + background-position: -48px -24px +} + +.icon-road { + background-position: -72px -24px +} + +.icon-download-alt { + background-position: -96px -24px +} + +.icon-download { + background-position: -120px -24px +} + +.icon-upload { + background-position: -144px -24px +} + +.icon-inbox { + background-position: -168px -24px +} + +.icon-play-circle { + background-position: -192px -24px +} + +.icon-repeat { + background-position: -216px -24px +} + +.icon-refresh { + background-position: -240px -24px +} + +.icon-list-alt { + background-position: -264px -24px +} + +.icon-lock { + background-position: -287px -24px +} + +.icon-flag { + background-position: -312px -24px +} + +.icon-headphones { + background-position: -336px -24px +} + +.icon-volume-off { + background-position: -360px -24px +} + +.icon-volume-down { + background-position: -384px -24px +} + +.icon-volume-up { + background-position: -408px -24px +} + +.icon-qrcode { + background-position: -432px -24px +} + +.icon-barcode { + background-position: -456px -24px +} + +.icon-tag { + background-position: 0 -48px +} + +.icon-tags { + background-position: -25px -48px +} + +.icon-book { + background-position: -48px -48px +} + +.icon-bookmark { + background-position: -72px -48px +} + +.icon-print { + background-position: -96px -48px +} + +.icon-camera { + background-position: -120px -48px +} + +.icon-font { + background-position: -144px -48px +} + +.icon-bold { + background-position: -167px -48px +} + +.icon-italic { + background-position: -192px -48px +} + +.icon-text-height { + background-position: -216px -48px +} + +.icon-text-width { + background-position: -240px -48px +} + +.icon-align-left { + background-position: -264px -48px +} + +.icon-align-center { + background-position: -288px -48px +} + +.icon-align-right { + background-position: -312px -48px +} + +.icon-align-justify { + background-position: -336px -48px +} + +.icon-list { + background-position: -360px -48px +} + +.icon-indent-left { + background-position: -384px -48px +} + +.icon-indent-right { + background-position: -408px -48px +} + +.icon-facetime-video { + background-position: -432px -48px +} + +.icon-picture { + background-position: -456px -48px +} + +.icon-pencil { + background-position: 0 -72px +} + +.icon-map-marker { + background-position: -24px -72px +} + +.icon-adjust { + background-position: -48px -72px +} + +.icon-tint { + background-position: -72px -72px +} + +.icon-edit { + background-position: -96px -72px +} + +.icon-share { + background-position: -120px -72px +} + +.icon-check { + background-position: -144px -72px +} + +.icon-move { + background-position: -168px -72px +} + +.icon-step-backward { + background-position: -192px -72px +} + +.icon-fast-backward { + background-position: -216px -72px +} + +.icon-backward { + background-position: -240px -72px +} + +.icon-play { + background-position: -264px -72px +} + +.icon-pause { + background-position: -288px -72px +} + +.icon-stop { + background-position: -312px -72px +} + +.icon-forward { + background-position: -336px -72px +} + +.icon-fast-forward { + background-position: -360px -72px +} + +.icon-step-forward { + background-position: -384px -72px +} + +.icon-eject { + background-position: -408px -72px +} + +.icon-chevron-left { + background-position: -432px -72px +} + +.icon-chevron-right { + background-position: -456px -72px +} + +.icon-plus-sign { + background-position: 0 -96px +} + +.icon-minus-sign { + background-position: -24px -96px +} + +.icon-remove-sign { + background-position: -48px -96px +} + +.icon-ok-sign { + background-position: -72px -96px +} + +.icon-question-sign { + background-position: -96px -96px +} + +.icon-info-sign { + background-position: -120px -96px +} + +.icon-screenshot { + background-position: -144px -96px +} + +.icon-remove-circle { + background-position: -168px -96px +} + +.icon-ok-circle { + background-position: -192px -96px +} + +.icon-ban-circle { + background-position: -216px -96px +} + +.icon-arrow-left { + background-position: -240px -96px +} + +.icon-arrow-right { + background-position: -264px -96px +} + +.icon-arrow-up { + background-position: -289px -96px +} + +.icon-arrow-down { + background-position: -312px -96px +} + +.icon-share-alt { + background-position: -336px -96px +} + +.icon-resize-full { + background-position: -360px -96px +} + +.icon-resize-small { + background-position: -384px -96px +} + +.icon-plus { + background-position: -408px -96px +} + +.icon-minus { + background-position: -433px -96px +} + +.icon-asterisk { + background-position: -456px -96px +} + +.icon-exclamation-sign { + background-position: 0 -120px +} + +.icon-gift { + background-position: -24px -120px +} + +.icon-leaf { + background-position: -48px -120px +} + +.icon-fire { + background-position: -72px -120px +} + +.icon-eye-open { + background-position: -96px -120px +} + +.icon-eye-close { + background-position: -120px -120px +} + +.icon-warning-sign { + background-position: -144px -120px +} + +.icon-plane { + background-position: -168px -120px +} + +.icon-calendar { + background-position: -192px -120px +} + +.icon-random { + width: 16px; + background-position: -216px -120px +} + +.icon-comment { + background-position: -240px -120px +} + +.icon-magnet { + background-position: -264px -120px +} + +.icon-chevron-up { + background-position: -288px -120px +} + +.icon-chevron-down { + background-position: -313px -119px +} + +.icon-retweet { + background-position: -336px -120px +} + +.icon-shopping-cart { + background-position: -360px -120px +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px +} + +.icon-resize-vertical { + background-position: -432px -119px +} + +.icon-resize-horizontal { + background-position: -456px -118px +} + +.icon-hdd { + background-position: 0 -144px +} + +.icon-bullhorn { + background-position: -24px -144px +} + +.icon-bell { + background-position: -48px -144px +} + +.icon-certificate { + background-position: -72px -144px +} + +.icon-thumbs-up { + background-position: -96px -144px +} + +.icon-thumbs-down { + background-position: -120px -144px +} + +.icon-hand-right { + background-position: -144px -144px +} + +.icon-hand-left { + background-position: -168px -144px +} + +.icon-hand-up { + background-position: -192px -144px +} + +.icon-hand-down { + background-position: -216px -144px +} + +.icon-circle-arrow-right { + background-position: -240px -144px +} + +.icon-circle-arrow-left { + background-position: -264px -144px +} + +.icon-circle-arrow-up { + background-position: -288px -144px +} + +.icon-circle-arrow-down { + background-position: -312px -144px +} + +.icon-globe { + background-position: -336px -144px +} + +.icon-wrench { + background-position: -360px -144px +} + +.icon-tasks { + background-position: -384px -144px +} + +.icon-filter { + background-position: -408px -144px +} + +.icon-briefcase { + background-position: -432px -144px +} + +.icon-fullscreen { + background-position: -456px -144px +} + +.dropup,.dropdown { + position: relative +} + +.dropdown-toggle { * + margin-bottom: -3px +} + +.dropdown-toggle:active,.open .dropdown-toggle { + outline: 0 +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: "" +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); * + border-right-width: 2px; * + border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { * + width: 100%; + height: 1px; + margin: 9px 1px; * + margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #fff +} + +.dropdown-menu>li>a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333; + white-space: nowrap +} + +.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a + { + color: #fff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #08c, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), + to(#0077b3) ); + background-image: -webkit-linear-gradient(top, #08c, #0077b3); + background-image: -o-linear-gradient(top, #08c, #0077b3); + background-image: linear-gradient(to bottom, #08c, #0077b3); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff0088cc', endColorstr = '#ff0077b3', GradientType = 0 ) +} + +.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus + { + color: #fff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #08c, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), + to(#0077b3) ); + background-image: -webkit-linear-gradient(top, #08c, #0077b3); + background-image: -o-linear-gradient(top, #08c, #0077b3); + background-image: linear-gradient(to bottom, #08c, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff0088cc', endColorstr = '#ff0077b3', GradientType = 0 ) +} + +.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus + { + color: #999 +} + +.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.open { * + z-index: 1000 +} + +.open>.dropdown-menu { + display: block +} + +.pull-right>.dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret,.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000; + content: "" +} + +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px +} + +.dropdown-submenu { + position: relative +} + +.dropdown-submenu>.dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px +} + +.dropdown-submenu:hover>.dropdown-menu { + display: block +} + +.dropup .dropdown-submenu>.dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0 +} + +.dropdown-submenu>a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #ccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " " +} + +.dropdown-submenu:hover>a:after { + border-left-color: #fff +} + +.dropdown-submenu.pull-left { + float: none +} + +.dropdown-submenu.pull-left>.dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #646464; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05) +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15) +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -moz-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear +} + +.fade.in { + opacity: 1 +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height .35s ease; + -moz-transition: height .35s ease; + -o-transition: height .35s ease; + transition: height .35s ease +} + +.collapse.in { + height: auto +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .2; + filter: alpha(opacity = 20) +} + +.close:hover,.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .4; + filter: alpha(opacity = 40) +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none +} + +.btn { + display: inline-block; * + display: inline; + padding: 4px 12px; + margin-bottom: 0; * + margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; * + background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #fff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), + to(#e6e6e6) ); + background-image: -webkit-linear-gradient(top, #fff, #e6e6e6); + background-image: -o-linear-gradient(top, #fff, #e6e6e6); + background-image: linear-gradient(to bottom, #fff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #ccc; * + border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ffffffff', endColorstr = '#ffe6e6e6', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) + ; * + zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px + rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px + rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px + rgba(0, 0, 0, 0.05) +} + +.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled] + { + color: #333; + background-color: #e6e6e6; * + background-color: #d9d9d9 +} + +.btn:active,.btn.active { + background-color: #ccc \9 +} + +.btn:first-child { * + margin-left: 0 +} + +.btn:hover,.btn:focus { + color: #333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position .1s linear; + -moz-transition: background-position .1s linear; + -o-transition: background-position .1s linear; + transition: background-position .1s linear +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn.active,.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05) +} + +.btn.disabled,.btn[disabled] { + cursor: default; + background-image: none; + opacity: .65; + filter: alpha(opacity = 65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px +} + +.btn-large [class ^="icon-"],.btn-large [class *=" icon-"] { + margin-top: 4px +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px +} + +.btn-small [class ^="icon-"],.btn-small [class *=" icon-"] { + margin-top: 0 +} + +.btn-mini [class ^="icon-"],.btn-mini [class *=" icon-"] { + margin-top: -1px +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.btn-block+.btn-block { + margin-top: 5px +} + +input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block + { + width: 100% +} + +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active + { + color: rgba(255, 255, 255, 0.75) +} + +.btn-primary { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; * + background-color: #04c; + background-image: -moz-linear-gradient(top, #08c, #04c); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), + to(#04c) ); + background-image: -webkit-linear-gradient(top, #08c, #04c); + background-image: -o-linear-gradient(top, #08c, #04c); + background-image: linear-gradient(to bottom, #08c, #04c); + background-repeat: repeat-x; + border-color: #04c #04c #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff0088cc', endColorstr = '#ff0044cc', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled] + { + color: #fff; + background-color: #04c; * + background-color: #003bb3 +} + +.btn-primary:active,.btn-primary.active { + background-color: #039 \9 +} + +.btn-warning { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; * + background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), + to(#f89406) ); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#fffbb450', endColorstr = '#fff89406', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled] + { + color: #fff; + background-color: #f89406; * + background-color: #df8505 +} + +.btn-warning:active,.btn-warning.active { + background-color: #c67605 \9 +} + +.btn-danger { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; * + background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), + to(#bd362f) ); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ffee5f5b', endColorstr = '#ffbd362f', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled] + { + color: #fff; + background-color: #bd362f; * + background-color: #a9302a +} + +.btn-danger:active,.btn-danger.active { + background-color: #942a25 \9 +} + +.btn-success { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; * + background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), + to(#51a351) ); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff62c462', endColorstr = '#ff51a351', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled] + { + color: #fff; + background-color: #51a351; * + background-color: #499249 +} + +.btn-success:active,.btn-success.active { + background-color: #408140 \9 +} + +.btn-info { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; * + background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), + to(#2f96b4) ); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff5bc0de', endColorstr = '#ff2f96b4', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled] + { + color: #fff; + background-color: #2f96b4; * + background-color: #2a85a0 +} + +.btn-info:active,.btn-info.active { + background-color: #24748c \9 +} + +.btn-inverse { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; * + background-color: #222; + background-image: -moz-linear-gradient(top, #444, #222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444), + to(#222) ); + background-image: -webkit-linear-gradient(top, #444, #222); + background-image: -o-linear-gradient(top, #444, #222); + background-image: linear-gradient(to bottom, #444, #222); + background-repeat: repeat-x; + border-color: #222 #222 #000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff444444', endColorstr = '#ff222222', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled] + { + color: #fff; + background-color: #222; * + background-color: #151515 +} + +.btn-inverse:active,.btn-inverse.active { + background-color: #080808 \9 +} + +button.btn,input[type="submit"].btn { * + padding-top: 3px; * + padding-bottom: 3px +} + +button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner + { + padding: 0; + border: 0 +} + +button.btn.btn-large,input[type="submit"].btn.btn-large { * + padding-top: 7px; * + padding-bottom: 7px +} + +button.btn.btn-small,input[type="submit"].btn.btn-small { * + padding-top: 3px; * + padding-bottom: 3px +} + +button.btn.btn-mini,input[type="submit"].btn.btn-mini { * + padding-top: 1px; * + padding-bottom: 1px +} + +.btn-link,.btn-link:active,.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none +} + +.btn-link { + color: #08c; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.btn-link:hover,.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:hover,.btn-link[disabled]:focus { + color: #333; + text-decoration: none +} + +.btn-group { + position: relative; + display: inline-block; * + display: inline; * + margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; * + zoom: 1 +} + +.btn-group:first-child { * + margin-left: 0 +} + +.btn-group+.btn-group { + margin-left: 5px +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0 +} + +.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group + { + margin-left: 5px +} + +.btn-group>.btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.btn-group>.btn+.btn { + margin-left: -1px +} + +.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover { + font-size: 14px +} + +.btn-group>.btn-mini { + font-size: 10.5px +} + +.btn-group>.btn-small { + font-size: 11.9px +} + +.btn-group>.btn-large { + font-size: 17.5px +} + +.btn-group>.btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px +} + +.btn-group>.btn:last-child,.btn-group>.dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px +} + +.btn-group>.btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px +} + +.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px +} + +.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active + { + z-index: 2 +} + +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group>.btn+.dropdown-toggle { * + padding-top: 5px; + padding-right: 8px; * + padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 + 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 + rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 + rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05) +} + +.btn-group>.btn-mini+.dropdown-toggle { * + padding-top: 2px; + padding-right: 5px; * + padding-bottom: 2px; + padding-left: 5px +} + +.btn-group>.btn-small+.dropdown-toggle { * + padding-top: 5px; * + padding-bottom: 4px +} + +.btn-group>.btn-large+.dropdown-toggle { * + padding-top: 7px; + padding-right: 12px; * + padding-bottom: 7px; + padding-left: 12px +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px + rgba(0, 0, 0, 0.05) +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6 +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #04c +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406 +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351 +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4 +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222 +} + +.btn .caret { + margin-top: 8px; + margin-left: 0 +} + +.btn-large .caret { + margin-top: 6px +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px +} + +.btn-mini .caret,.btn-small .caret { + margin-top: 8px +} + +.dropup .btn-large .caret { + border-bottom-width: 5px +} + +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret + { + border-top-color: #fff; + border-bottom-color: #fff +} + +.btn-group-vertical { + display: inline-block; * + display: inline; * + zoom: 1 +} + +.btn-group-vertical>.btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.btn-group-vertical>.btn+.btn { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical>.btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0 +} + +.btn-group-vertical>.btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px +} + +.btn-group-vertical>.btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0 +} + +.btn-group-vertical>.btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.alert,.alert h4 { + color: #c09853 +} + +.alert h4 { + margin: 0 +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +.alert-success h4 { + color: #468847 +} + +.alert-danger,.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7 +} + +.alert-danger h4,.alert-error h4 { + color: #b94a48 +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1 +} + +.alert-info h4 { + color: #3a87ad +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px +} + +.alert-block>p,.alert-block>ul { + margin-bottom: 0 +} + +.alert-block p+p { + margin-top: 5px +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none +} + +.nav>li>a { + display: block +} + +.nav>li>a:hover,.nav>li>a:focus { + text-decoration: none; + background-color: #000 +} + +.nav>li>a>img { + max-width: none +} + +.nav>.pull-right { + float: right +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase +} + +.nav li+.nav-header { + margin-top: 9px +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0 +} + +.nav-list>li>a,.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) +} + +.nav-list>li>a { + padding: 3px 15px +} + +.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus + { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #08c +} + +.nav-list [class ^="icon-"],.nav-list [class *=" icon-"] { + margin-right: 2px +} + +.nav-list .divider { * + width: 100%; + height: 1px; + margin: 9px 1px; * + margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #fff +} + +.nav-tabs,.nav-pills { * + zoom: 1 +} + +.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after { + display: table; + line-height: 0; + content: "" +} + +.nav-tabs:after,.nav-pills:after { + clear: both +} + +.nav-tabs>li,.nav-pills>li { + float: left +} + +.nav-tabs>li>a,.nav-pills>li>a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px +} + +.nav-tabs { + border-bottom: 1px solid #ddd +} + +.nav-tabs>li { + margin-bottom: 0px +} + + +.nav-tabs>li>a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0 +} + +.nav-tabs>li>a:hover,.nav-tabs>li>a:focus { + border-color: #eee #eee #ddd +} + +.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus + { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent +} + +.nav-pills>li>a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px +} + +.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus + { + color: #fff; + background-color: #08c +} + +.nav-stacked>li { + float: none +} + +.nav-stacked>li>a { + margin-right: 0 +} + +.nav-tabs.nav-stacked { + border-bottom: 0 +} + +.nav-tabs.nav-stacked>li>a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.nav-tabs.nav-stacked>li:first-child>a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px +} + +.nav-tabs.nav-stacked>li:last-child>a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px +} + +.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus { + z-index: 2; + border-bottom: 1px solid #ddd; +} + +.nav-pills.nav-stacked>li>a { + margin-bottom: 3px +} + +.nav-pills.nav-stacked>li:last-child>a { + margin-bottom: 1px +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #08c; + border-bottom-color: #08c +} + +.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580 +} + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555; + border-bottom-color: #555 +} + +.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus { + cursor: pointer +} + +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus + { + color: #fff; + background-color: #999; + border-color: #999 +} + +.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret + { + border-top-color: #fff; + border-bottom-color: #fff; + opacity: 1; + filter: alpha(opacity = 100) +} + +.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus { + border-color: #999 +} + +.tabbable { * + zoom: 1 +} + +.tabbable:before,.tabbable:after { + display: table; + line-height: 0; + content: "" +} + +.tabbable:after { + clear: both +} + +.tab-content { + overflow: auto +} + +.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs { + border-bottom: 0 +} + +.tab-content>.tab-pane,.pill-content>.pill-pane { + display: none +} + +.tab-content>.active,.pill-content>.active { + display: block +} + +.tabs-below>.nav-tabs { + border-top: 1px solid #ddd +} + +.tabs-below>.nav-tabs>li { + margin-top: -1px; + margin-bottom: 0 +} + +.tabs-below>.nav-tabs>li>a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px +} + +.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus { + border-top-color: #ddd; + border-bottom-color: transparent +} + +.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus + { + border-color: transparent #ddd #ddd #ddd +} + +.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li { + float: none +} + +.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px +} + +.tabs-left>.nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd +} + +.tabs-left>.nav-tabs>li>a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px +} + +.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus { + border-color: #eee #ddd #eee #eee +} + +.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus + { + border-color: #ddd transparent #ddd #ddd; * + border-right-color: #fff +} + +.tabs-right>.nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd +} + +.tabs-right>.nav-tabs>li>a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0 +} + +.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus { + border-color: #eee #eee #eee #ddd +} + +.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus + { + border-color: #ddd #ddd #ddd transparent; * + border-left-color: #fff +} + +.nav>.disabled>a { + color: #999 +} + +.nav>.disabled>a:hover,.nav>.disabled>a:focus { + text-decoration: none; + cursor: default; + background-color: transparent +} + +.navbar { * + position: relative; * + z-index: 2; + margin-bottom: 20px; + overflow: visible +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #fff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), + to(#f2f2f2) ); + background-image: -webkit-linear-gradient(top, #fff, #f2f2f2); + background-image: -o-linear-gradient(top, #fff, #f2f2f2); + background-image: linear-gradient(to bottom, #fff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ffffffff', endColorstr = '#fff2f2f2', GradientType = 0 ); * + zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065) +} + +.navbar-inner:before,.navbar-inner:after { + display: table; + line-height: 0; + content: "" +} + +.navbar-inner:after { + clear: both +} + +.navbar .container { + width: auto +} + +.nav-collapse.collapse { + height: auto; + overflow: visible +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777; + text-shadow: 0 1px 0 #fff; + width:210px +} + +.navbar .brand:hover,.navbar .brand:focus { + text-decoration: none +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777 +} + +.navbar-link { + color: #777 +} + +.navbar-link:hover,.navbar-link:focus { + color: #333 +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #fff; + border-left: 1px solid #f2f2f2 +} + +.navbar .btn,.navbar .btn-group { + margin-top: 5px +} + +.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group + { + margin-top: 0 +} + +.navbar-form { + margin-bottom: 0; * + zoom: 1 +} + +.navbar-form:before,.navbar-form:after { + display: table; + line-height: 0; + content: "" +} + +.navbar-form:after { + clear: both +} + +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox + { + margin-top: 5px +} + +.navbar-form input,.navbar-form select,.navbar-form .btn { + display: inline-block; + margin-bottom: 0 +} + +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"] + { + margin-top: 3px +} + +.navbar-form .input-append,.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap +} + +.navbar-form .input-append input,.navbar-form .input-prepend input { + margin-top: 0 +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0 +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px +} + +.navbar-static-top { + position: static; + margin-bottom: 0 +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.navbar-fixed-top,.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0 +} + +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner { + border-width: 0 0 1px +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0 +} + +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0 +} + +.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container + { + width: 940px +} + +.navbar-fixed-top { + top: 0 +} + +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1) +} + +.navbar-fixed-bottom { + bottom: 0 +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1) +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0 +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0 +} + +.navbar .nav>li { + float: left +} + +.navbar .nav>li>a { + float: none; + padding: 10px 15px 10px; + color: #777; + text-decoration: none; + text-shadow: 0 1px 0 #fff +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px +} + +.navbar .nav>li>a:focus,.navbar .nav>li>a:hover { + color: #333; + text-decoration: none; + background-color: transparent +} + +.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus + { + color: #555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125) +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; * + background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), + to(#e5e5e5) ); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#fff2f2f2', endColorstr = '#ffe5e5e5', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) + ; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.075) +} + +.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled] + { + color: #fff; + background-color: #e5e5e5; * + background-color: #d9d9d9 +} + +.navbar .btn-navbar:active,.navbar .btn-navbar.active { + background-color: #ccc \9 +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25) +} + +.btn-navbar .icon-bar+.icon-bar { + margin-top: 3px +} + +.navbar .nav>li>.dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: '' +} + +.navbar .nav>li>.dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: '' +} + +.navbar-fixed-bottom .nav>li>.dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2) +} + +.navbar-fixed-bottom .nav>li>.dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #fff; + border-bottom: 0 +} + +.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret + { + border-top-color: #333; + border-bottom-color: #333 +} + +.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle + { + color: #555; + background-color: #e5e5e5 +} + +.navbar .nav li.dropdown>.dropdown-toggle .caret { + border-top-color: #777; + border-bottom-color: #777 +} + +.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret + { + border-top-color: #555; + border-bottom-color: #555 +} + +.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right + { + right: 0; + left: auto +} + +.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before + { + right: 12px; + left: auto +} + +.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after + { + right: 13px; + left: auto +} + +.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu + { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222, #111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222), + to(#111) ); + background-image: -webkit-linear-gradient(top, #222, #111); + background-image: -o-linear-gradient(top, #222, #111); + background-image: linear-gradient(to bottom, #222, #111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff222222', endColorstr = '#ff111111', GradientType = 0 ) +} + +.navbar-inverse .brand,.navbar-inverse .nav>li>a { + color: #999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25) +} + +.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus + { + color: #fff +} + +.navbar-inverse .brand { + color: #999 +} + +.navbar-inverse .navbar-text { + color: #999 +} + +.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover { + color: #fff; + background-color: transparent +} + +.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus + { + color: #fff; + background-color: #111 +} + +.navbar-inverse .navbar-link { + color: #999 +} + +.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus { + color: #fff +} + +.navbar-inverse .divider-vertical { + border-right-color: #222; + border-left-color: #111 +} + +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle + { + color: #fff; + background-color: #111 +} + +.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret + { + border-top-color: #fff; + border-bottom-color: #fff +} + +.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret { + border-top-color: #999; + border-bottom-color: #999 +} + +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret + { + border-top-color: #fff; + border-bottom-color: #fff +} + +.navbar-inverse .navbar-search .search-query { + color: #fff; + background-color: #515151; + border-color: #111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 + rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #ccc +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #ccc +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder + { + color: #ccc +} + +.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused + { + padding: 5px 15px; + color: #333; + text-shadow: 0 1px 0 #fff; + background-color: #fff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15) +} + +.navbar-inverse .btn-navbar { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; * + background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), + to(#040404) ); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff151515', endColorstr = '#ff040404', GradientType = 0 ); + filter: progid : DXImageTransform.Microsoft.gradient ( enabled = false ) +} + +.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled] + { + color: #fff; + background-color: #040404; * + background-color: #000 +} + +.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active { + background-color: #000 \9 +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.breadcrumb>li { + display: inline-block; * + display: inline; + text-shadow: 0 1px 0 #fff; * + zoom: 1 +} + +.breadcrumb>li>.divider { + padding: 0 5px; + color: #ccc +} + +.breadcrumb>.active { + color: #999 +} + +.pagination { + margin: 20px 0 +} + +.pagination ul { + display: inline-block; * + display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; * + zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) +} + +.pagination ul>li { + display: inline +} + +.pagination ul>li>a,.pagination ul>li>span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #646464; + color:#fff; + border: 1px solid #ddd; + border-left-width: 0 +} + +.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span + { + background-color: #646464 +} + +.pagination ul>.active>a,.pagination ul>.active>span { + color: #999; + cursor: default +} + +.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus + { + color: #999; + cursor: default; + background-color: transparent +} + +.pagination ul>li:first-child>a,.pagination ul>li:first-child>span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px +} + +.pagination ul>li:last-child>a,.pagination ul>li:last-child>span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px +} + +.pagination-centered { + text-align: center +} + +.pagination-right { + text-align: right +} + +.pagination-large ul>li>a,.pagination-large ul>li>span { + padding: 11px 19px; + font-size: 17.5px +} + +.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span + { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px +} + +.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span + { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px +} + +.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span + { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px +} + +.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span + { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px +} + +.pagination-small ul>li>a,.pagination-small ul>li>span { + padding: 2px 10px; + font-size: 11.9px +} + +.pagination-mini ul>li>a,.pagination-mini ul>li>span { + padding: 0 6px; + font-size: 10.5px +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; * + zoom: 1 +} + +.pager:before,.pager:after { + display: table; + line-height: 0; + content: "" +} + +.pager:after { + clear: both +} + +.pager li { + display: inline +} + +.pager li>a,.pager li>span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px +} + +.pager li>a:hover,.pager li>a:focus { + text-decoration: none; + background-color: #f5f5f5 +} + +.pager .next>a,.pager .next>span { + float: right +} + +.pager .previous>a,.pager .previous>span { + float: left +} + +.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span + { + color: #999; + cursor: default; + background-color: #fff +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000 +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop,.modal-backdrop.fade.in { + opacity: .8; + filter: alpha(opacity = 80) +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #fff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); * + border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out +} + +.modal.fade.in { + top: 10% +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee +} + +.modal-header .close { + margin-top: 2px +} + +.modal-header h3 { + margin: 0; + line-height: 30px +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; + background-color: rgba(58,58,58,1); +} + +.modal-form { + margin-bottom: 0 +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; * + zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #fff; + -moz-box-shadow: inset 0 1px 0 #fff; + box-shadow: inset 0 1px 0 #fff; + background-color: rgba(58,58,58,1); +} + +.modal-footer:before,.modal-footer:after { + display: table; + line-height: 0; + content: "" +} + +.modal-footer:after { + clear: both +} + +.modal-footer .btn+.btn { + margin-bottom: 0; + margin-left: 5px +} + +.modal-footer .btn-group .btn+.btn { + margin-left: -1px +} + +.modal-footer .btn-block+.btn-block { + margin-left: 0 +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity = 0); + visibility: visible +} + +.tooltip.in { + opacity: .8; + filter: alpha(opacity = 80) +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000; + border-width: 5px 5px 0 +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000; + border-width: 5px 5px 5px 0 +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000; + border-width: 5px 0 5px 5px +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000; + border-width: 0 5px 5px +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box +} + +.popover.top { + margin-top: -10px +} + +.popover.right { + margin-left: 10px +} + +.popover.bottom { + margin-top: 10px +} + +.popover.left { + margin-left: -10px +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0 +} + +.popover-title:empty { + display: none +} + +.popover-content { + padding: 9px 14px +} + +.popover .arrow,.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.popover .arrow { + border-width: 11px +} + +.popover .arrow:after { + border-width: 10px; + content: "" +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0 +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #fff; + border-bottom-width: 0 +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0 +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #fff; + border-left-width: 0 +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0 +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #fff; + border-top-width: 0 +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0 +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #fff; + border-right-width: 0 +} + +.thumbnails { + margin-left: -20px; + list-style: none; * + zoom: 1 +} + +.thumbnails:before,.thumbnails:after { + display: table; + line-height: 0; + content: "" +} + +.thumbnails:after { + clear: both +} + +.row-fluid .thumbnails { + margin-left: 0 +} + +.thumbnails>li { + float: left; + margin-bottom: 20px; + margin-left: 20px +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all .2s ease-in-out; + -moz-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out +} + +a.thumbnail:hover,a.thumbnail:focus { + border-color: #08c; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25) +} + +.thumbnail>img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto +} + +.thumbnail .caption { + padding: 9px; + color: #555 +} + +.media,.media-body { + overflow: hidden; * + overflow: visible; + zoom: 1 +} + +.media,.media .media { + margin-top: 15px +} + +.media:first-child { + margin-top: 0 +} + +.media-object { + display: block +} + +.media-heading { + margin: 0 0 5px +} + +.media>.pull-left { + margin-right: 10px +} + +.media>.pull-right { + margin-left: 10px +} + +.media-list { + margin-left: 0; + list-style: none +} + +.label,.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999 +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px +} + +.label:empty,.badge:empty { + display: none +} + +a.label:hover,a.label:focus,a.badge:hover,a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer +} + +.label-important,.badge-important { + background-color: #b94a48 +} + +.label-important[href],.badge-important[href] { + background-color: #953b39 +} + +.label-warning,.badge-warning { + background-color: #f89406 +} + +.label-warning[href],.badge-warning[href] { + background-color: #c67605 +} + +.label-success,.badge-success { + background-color: #468847 +} + +.label-success[href],.badge-success[href] { + background-color: #356635 +} + +.label-info,.badge-info { + background-color: #3a87ad +} + +.label-info[href],.badge-info[href] { + background-color: #2d6987 +} + +.label-inverse,.badge-inverse { + background-color: #333 +} + +.label-inverse[href],.badge-inverse[href] { + background-color: #1a1a1a +} + +.btn .label,.btn .badge { + position: relative; + top: -1px +} + +.btn-mini .label,.btn-mini .badge { + top: 0 +} + +@ +-webkit-keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +@ +-moz-keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +@ +-ms-keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +@ +-o-keyframes progress-bar-stripes { + from {background-position: 0 0 +} + +to { + background-position: 40px 0 +} + +} +@ +keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), + to(#f9f9f9) ); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#fff5f5f5', endColorstr = '#fff9f9f9', GradientType = 0 ); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1) +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #fff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), + to(#0480be) ); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff149bdf', endColorstr = '#ff0480be', GradientType = 0 ); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width .6s ease; + -moz-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease +} + +.progress .bar+.bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 + rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 + rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 + rgba(0, 0, 0, 0.15) +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, + 255, 0.15) ), color-stop(0.25, transparent), + color-stop(0.5, transparent), + color-stop(0.5, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, transparent), to(transparent) ); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite +} + +.progress-danger .bar,.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), + to(#c43c35) ); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ffee5f5b', endColorstr = '#ffc43c35', GradientType = 0 ) +} + +.progress-danger.progress-striped .bar,.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, + 255, 0.15) ), color-stop(0.25, transparent), + color-stop(0.5, transparent), + color-stop(0.5, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, transparent), to(transparent) ); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ) +} + +.progress-success .bar,.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), + to(#57a957) ); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff62c462', endColorstr = '#ff57a957', GradientType = 0 ) +} + +.progress-success.progress-striped .bar,.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, + 255, 0.15) ), color-stop(0.25, transparent), + color-stop(0.5, transparent), + color-stop(0.5, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, transparent), to(transparent) ); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ) +} + +.progress-info .bar,.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), + to(#339bb9) ); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#ff5bc0de', endColorstr = '#ff339bb9', GradientType = 0 ) +} + +.progress-info.progress-striped .bar,.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, + 255, 0.15) ), color-stop(0.25, transparent), + color-stop(0.5, transparent), + color-stop(0.5, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, transparent), to(transparent) ); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ) +} + +.progress-warning .bar,.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), + to(#f89406) ); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = + '#fffbb450', endColorstr = '#fff89406', GradientType = 0 ) +} + +.progress-warning.progress-striped .bar,.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, + 255, 0.15) ), color-stop(0.25, transparent), + color-stop(0.5, transparent), + color-stop(0.5, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, rgba(255, 255, 255, 0.15) ), + color-stop(0.75, transparent), to(transparent) ); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent ) +} + +.accordion { + margin-bottom: 20px +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +.accordion-heading { + border-bottom: 0 +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px +} + +.accordion-toggle { + cursor: pointer +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5 +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1 +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner>.item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -moz-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left +} + +.carousel-inner>.item>img,.carousel-inner>.item>a>img { + display: block; + line-height: 1 +} + +.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev { + display: block +} + +.carousel-inner>.active { + left: 0 +} + +.carousel-inner>.next,.carousel-inner>.prev { + position: absolute; + top: 0; + width: 100% +} + +.carousel-inner>.next { + left: 100% +} + +.carousel-inner>.prev { + left: -100% +} + +.carousel-inner>.next.left,.carousel-inner>.prev.right { + left: 0 +} + +.carousel-inner>.active.left { + left: -100% +} + +.carousel-inner>.active.right { + left: 100% +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #fff; + text-align: center; + background: #222; + border: 3px solid #fff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: .5; + filter: alpha(opacity = 50) +} + +.carousel-control.right { + right: 15px; + left: auto +} + +.carousel-control:hover,.carousel-control:focus { + color: #fff; + text-decoration: none; + opacity: .9; + filter: alpha(opacity = 90) +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px +} + +.carousel-indicators .active { + background-color: #fff +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333; + background: rgba(0, 0, 0, 0.75) +} + +.carousel-caption h4,.carousel-caption p { + line-height: 20px; + color: #fff +} + +.carousel-caption h4 { + margin: 0 0 5px +} + +.carousel-caption p { + margin-bottom: 0 +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit +} + +.hero-unit li { + line-height: 30px +} + +.pull-right { + float: right +} + +.pull-left { + float: left +} + +.hide { + display: none +} + +.show { + display: block +} + +.invisible { + visibility: hidden +} + +.affix { + position: fixed +} +.info{ + width:16px; + height:16px; + background-image:url(../img/toolbar.png); + background-repeat:no-repeat; + background-position:0 -560px; + padding-right: 20px +} +.lianxiang{ + position: static !important; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/chart.css b/gloam/WebRoot/css/chart.css new file mode 100644 index 0000000..62953fc --- /dev/null +++ b/gloam/WebRoot/css/chart.css @@ -0,0 +1,75 @@ +.bar { + display: inline; + border: none; + width:142px; + height:26px; +} +.bar-input { + background-color: #aaacad; + padding: 0 6px; +} +.icon-search:hover, .tab:not(.tab-active):hover, .my-button-up:hover, .my-button-down:hover, #search:hover { + cursor: pointer; +} +.tab { + display:inline-block; + height:30px; + line-height:30px; + border:1px solid #696969; + border-bottom: 0; + border-radius: 6px 6px 0 0; + padding:0 10px; + background-color: #4C4C4C; + min-width: 100px; + text-align:center; + margin-top: 5px; + margin-bottom: -1px; + font-size: 14px; +} +.tab.tab-active { + background-color: #333333; +} +.tab-active:hover { + cursor: default; +} +.my-radio { + display: inline-block; + width: 12%; + align: left; +} +.my-button-up { + display: inline-block; + box-shadow: black 0 0 5px 0; + height: 25px; + text-align: center; + line-height: 25px; + padding: 2px 9px; + background-color: #eeeeee; + font-size: 12px; + border-radius: 4px 4px 4px 4px; + color: black; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; +} +.my-button-down { + display: inline-block; + box-shadow: black 0 0 5px 0; + height: 25px; + text-align: center; + line-height: 25px; + padding: 2px 9px; + background-color: #bbbbbb; + font-size: 12px; + border-radius: 4px 4px 4px 4px; + color: black; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; +} +.my-checkbox { + display: inline-block; + width: 12%; + align: left; + font-size: 12px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/chosen.css b/gloam/WebRoot/css/chosen.css new file mode 100644 index 0000000..e425c85 --- /dev/null +++ b/gloam/WebRoot/css/chosen.css @@ -0,0 +1,398 @@ +/* @group Base */ +.chzn-container { + font-size: 13px; + position: relative; + display: inline-block; + zoom: 1; + *display: inline; +} +.chzn-container .chzn-drop { + background: #fff; + border: 1px solid #aaa; + border-top: 0; + position: absolute; + top: 29px; + left: 0; + -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15); + -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15); + -o-box-shadow : 0 4px 5px rgba(0,0,0,.15); + box-shadow : 0 4px 5px rgba(0,0,0,.15); + z-index: 1010; +} +/* @end */ + +/* @group Single Chosen */ +.chzn-container-single .chzn-single { + background-color: #ffffff; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 ); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4)); + background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); + background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); + background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); + background-image: -ms-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); + background-image: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); + -webkit-border-radius: 5px; + -moz-border-radius : 5px; + border-radius : 5px; + -moz-background-clip : padding; + -webkit-background-clip: padding-box; + background-clip : padding-box; + border: 1px solid #aaaaaa; + -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); + -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); + box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1); + display: block; + overflow: hidden; + white-space: nowrap; + position: relative; + height: 23px; + line-height: 24px; + padding: 0 0 0 8px; + color: #444444; + text-decoration: none; +} +.chzn-container-single .chzn-default { + color: #999; +} +.chzn-container-single .chzn-single span { + margin-right: 26px; + display: block; + overflow: hidden; + white-space: nowrap; + -o-text-overflow: ellipsis; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; +} +.chzn-container-single .chzn-single abbr { + display: block; + position: absolute; + right: 26px; + top: 6px; + width: 12px; + height: 13px; + font-size: 1px; + background: url('../img/chosen-sprite.png') right top no-repeat; +} +.chzn-container-single .chzn-single abbr:hover { + background-position: right -11px; +} +.chzn-container-single.chzn-disabled .chzn-single abbr:hover { + background-position: right top; +} +.chzn-container-single .chzn-single div { + position: absolute; + right: 0; + top: 0; + display: block; + height: 100%; + width: 18px; +} +.chzn-container-single .chzn-single div b { + background: url('../img/chosen-sprite.png') no-repeat 0 0; + display: block; + width: 100%; + height: 100%; +} +.chzn-container-single .chzn-search { + padding: 3px 4px; + position: relative; + margin: 0; + white-space: nowrap; + z-index: 1010; +} +.chzn-container-single .chzn-search input { + background: #fff url('../img/chosen-sprite.png') no-repeat 100% -22px; + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%); + margin: 1px 0; + padding: 4px 20px 4px 5px; + outline: 0; + border: 1px solid #aaa; + font-family: sans-serif; + font-size: 1em; +} +.chzn-container-single .chzn-drop { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius : 0 0 4px 4px; + border-radius : 0 0 4px 4px; + -moz-background-clip : padding; + -webkit-background-clip: padding-box; + background-clip : padding-box; +} +/* @end */ + +.chzn-container-single-nosearch .chzn-search input { + position: absolute; + left: -9000px; +} + +/* @group Multi Chosen */ +.chzn-container-multi .chzn-choices { + background-color: #fff; + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); + background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%); + border: 1px solid #aaa; + margin: 0; + padding: 0; + cursor: text; + overflow: hidden; + height: auto !important; + height: 1%; + position: relative; +} +.chzn-container-multi .chzn-choices li { + float: left; + list-style: none; +} +.chzn-container-multi .chzn-choices .search-field { + white-space: nowrap; + margin: 0; + padding: 0; +} +.chzn-container-multi .chzn-choices .search-field input { + color: #666; + background: transparent !important; + border: 0 !important; + font-family: sans-serif; + font-size: 100%; + height: 15px; + padding: 5px; + margin: 1px 0; + outline: 0; + -webkit-box-shadow: none; + -moz-box-shadow : none; + -o-box-shadow : none; + box-shadow : none; +} +.chzn-container-multi .chzn-choices .search-field .default { + color: #999; +} +.chzn-container-multi .chzn-choices .search-choice { + -webkit-border-radius: 3px; + -moz-border-radius : 3px; + border-radius : 3px; + -moz-background-clip : padding; + -webkit-background-clip: padding-box; + background-clip : padding-box; + background-color: #e4e4e4; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 ); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); + background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); + -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05); + color: #333; + border: 1px solid #aaaaaa; + line-height: 13px; + padding: 3px 20px 3px 5px; + margin: 3px 0 3px 5px; + position: relative; + cursor: default; +} +.chzn-container-multi .chzn-choices .search-choice-focus { + background: #d4d4d4; +} +.chzn-container-multi .chzn-choices .search-choice .search-choice-close { + display: block; + position: absolute; + right: 3px; + top: 4px; + width: 12px; + height: 13px; + font-size: 1px; + background: url('../img/chosen-sprite.png') right top no-repeat; +} +.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover { + background-position: right -11px; +} +.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close { + background-position: right -11px; +} +/* @end */ + +/* @group Results */ +.chzn-container .chzn-results { + margin: 0 4px 4px 0; + max-height: 240px; + padding: 0 0 0 4px; + position: relative; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; +} +.chzn-container-multi .chzn-results { + margin: -1px 0 0; + padding: 0; +} +.chzn-container .chzn-results li { + display: none; + line-height: 15px; + padding: 5px 6px; + margin: 0; + list-style: none; +} +.chzn-container .chzn-results .active-result { + cursor: pointer; + display: list-item; +} +.chzn-container .chzn-results .highlighted { + background-color: #3875d7; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 ); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc)); + background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%); + background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%); + background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%); + background-image: -ms-linear-gradient(top, #3875d7 20%, #2a62bc 90%); + background-image: linear-gradient(top, #3875d7 20%, #2a62bc 90%); + color: #fff; +} +.chzn-container .chzn-results li em { + background: #feffde; + font-style: normal; +} +.chzn-container .chzn-results .highlighted em { + background: transparent; +} +.chzn-container .chzn-results .no-results { + background: #f4f4f4; + display: list-item; +} +.chzn-container .chzn-results .group-result { + cursor: default; + color: #999; + font-weight: bold; +} +.chzn-container .chzn-results .group-option { + padding-left: 15px; +} +.chzn-container-multi .chzn-drop .result-selected { + display: none; +} +.chzn-container .chzn-results-scroll { + background: white; + margin: 0 4px; + position: absolute; + text-align: center; + width: 321px; /* This should by dynamic with js */ + z-index: 1; +} +.chzn-container .chzn-results-scroll span { + display: inline-block; + height: 17px; + text-indent: -5000px; + width: 9px; +} +.chzn-container .chzn-results-scroll-down { + bottom: 0; +} +.chzn-container .chzn-results-scroll-down span { + background: url('../img/chosen-sprite.png') no-repeat -4px -3px; +} +.chzn-container .chzn-results-scroll-up span { + background: url('../img/chosen-sprite.png') no-repeat -22px -3px; +} +/* @end */ + +/* @group Active */ +.chzn-container-active .chzn-single { + -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); + -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); + -o-box-shadow : 0 0 5px rgba(0,0,0,.3); + box-shadow : 0 0 5px rgba(0,0,0,.3); + border: 1px solid #5897fb; +} +.chzn-container-active .chzn-single-with-drop { + border: 1px solid #aaa; + -webkit-box-shadow: 0 1px 0 #fff inset; + -moz-box-shadow : 0 1px 0 #fff inset; + -o-box-shadow : 0 1px 0 #fff inset; + box-shadow : 0 1px 0 #fff inset; + background-color: #eee; + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 ); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff)); + background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%); + background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%); + background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%); + background-image: -ms-linear-gradient(top, #eeeeee 20%, #ffffff 80%); + background-image: linear-gradient(top, #eeeeee 20%, #ffffff 80%); + -webkit-border-bottom-left-radius : 0; + -webkit-border-bottom-right-radius: 0; + -moz-border-radius-bottomleft : 0; + -moz-border-radius-bottomright: 0; + border-bottom-left-radius : 0; + border-bottom-right-radius: 0; +} +.chzn-container-active .chzn-single-with-drop div { + background: transparent; + border-left: none; +} +.chzn-container-active .chzn-single-with-drop div b { + background-position: -18px 1px; +} +.chzn-container-active .chzn-choices { + -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); + -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); + -o-box-shadow : 0 0 5px rgba(0,0,0,.3); + box-shadow : 0 0 5px rgba(0,0,0,.3); + border: 1px solid #5897fb; +} +.chzn-container-active .chzn-choices .search-field input { + color: #111 !important; +} +/* @end */ + +/* @group Disabled Support */ +.chzn-disabled { + cursor: default; + opacity:0.5 !important; +} +.chzn-disabled .chzn-single { + cursor: default; +} +.chzn-disabled .chzn-choices .search-choice .search-choice-close { + cursor: default; +} + +/* @group Right to Left */ +.chzn-rtl { text-align: right; } +.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; } +.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; } + +.chzn-rtl .chzn-single div { left: 3px; right: auto; } +.chzn-rtl .chzn-single abbr { + left: 26px; + right: auto; +} +.chzn-rtl .chzn-choices .search-field input { direction: rtl; } +.chzn-rtl .chzn-choices li { float: right; } +.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; } +.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;} +.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; } +.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; } +.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; } +.chzn-rtl .chzn-search input { + background: #fff url('../img/chosen-sprite.png') no-repeat -38px -22px; + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%); + background: url('../img/chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%); + padding: 4px 5px 4px 20px; + direction: rtl; +} +/* @end */ + +/* Localized */ \ No newline at end of file diff --git a/gloam/WebRoot/css/dtreeselect.css b/gloam/WebRoot/css/dtreeselect.css new file mode 100644 index 0000000..d04e7f3 --- /dev/null +++ b/gloam/WebRoot/css/dtreeselect.css @@ -0,0 +1,28 @@ +.dtree { + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + white-space: nowrap; +} +.dtree img { + border: 0px; + vertical-align: middle; +} +.dtree a { + color: #0000FF; + text-decoration: none; +} +.dtree a.node, .dtree a.nodeSel { + white-space: nowrap; + padding: 1px 2px 1px 2px; +} +.dtree a.node:hover, .dtree a.nodeSel:hover { + color: #CC6600; + text-decoration: underline; +} +.dtree a.nodeSel { + background-color: #c0d2ec; +} +.dtree .clip { + overflow: hidden; +} diff --git a/gloam/WebRoot/css/elfinder.min.css b/gloam/WebRoot/css/elfinder.min.css new file mode 100644 index 0000000..19e5e7c --- /dev/null +++ b/gloam/WebRoot/css/elfinder.min.css @@ -0,0 +1,9 @@ +/*! + * elFinder - file manager for web + * Version 2.0 rc1 (2012-04-10) + * http://elfinder.org + * + * Copyright 2009-2012, Studio 42 + * Licensed under a 3 clauses BSD license + */ +.elfinder-dialog-resize{margin-top:.3em}.elfinder-resize-type{float:left;margin-bottom:.4em}.elfinder-resize-control{padding-top:3em}.elfinder-resize-control input[type=text]{border:1px solid #aaa;text-align:right}.elfinder-resize-preview{width:400px;height:400px;padding:10px;background:#fff;border:1px solid #aaa;float:right;position:relative;overflow:auto}.elfinder-resize-handle{position:relative}.elfinder-resize-handle-hline,.elfinder-resize-handle-vline{position:absolute;background-image:url("../img/crop.gif")}.elfinder-resize-handle-hline{width:100%;height:1px!important;background-repeat:repeat-x}.elfinder-resize-handle-vline{width:1px!important;height:100%;background-repeat:repeat-y}.elfinder-resize-handle-hline-top{top:0;left:0}.elfinder-resize-handle-hline-bottom{bottom:0;left:0}.elfinder-resize-handle-vline-left{top:0;left:0}.elfinder-resize-handle-vline-right{top:0;right:0}.elfinder-resize-handle-point{position:absolute;width:8px;height:8px;border:1px solid #777;background:0 0}.elfinder-resize-handle-point-n{top:0;left:50%;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-ne{top:0;right:0;margin-top:-5px;margin-right:-5px}.elfinder-resize-handle-point-e{top:50%;right:0;margin-top:-5px;margin-right:-5px}.elfinder-resize-handle-point-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px}.elfinder-resize-handle-point-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px}.elfinder-resize-handle-point-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px}.elfinder-resize-handle-point-w{top:50%;left:0;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-nw{top:0;left:0;margin-top:-5px;margin-left:-5px}.elfinder-resize-spinner{position:absolute;width:200px;height:30px;top:50%;margin-top:-25px;left:50%;margin-left:-100px;text-align:center;background:url(../img/progress.gif) center bottom repeat-x}.elfinder-resize-row{margin-bottom:7px;position:relative}.elfinder-resize-label{float:left;width:80px;padding-top:3px}.elfinder-resize-reset{width:16px;height:16px;position:absolute;margin-top:-8px}.elfinder-dialog .elfinder-dialog-resize .ui-resizable-e{height:100%;width:10px}.elfinder-dialog .elfinder-dialog-resize .ui-resizable-s{width:100%;height:10px}.elfinder-dialog .elfinder-dialog-resize .ui-resizable-se{background:0 0;bottom:0;right:0;margin-right:-7px;margin-bottom:-7px}.elfinder-dialog-resize .ui-icon-grip-solid-vertical{position:absolute;top:50%;right:0;margin-top:-8px;margin-right:-11px}.elfinder-dialog-resize .ui-icon-grip-solid-horizontal{position:absolute;left:50%;bottom:0;margin-left:-8px;margin-bottom:-11px}.elfinder-resize-row .elfinder-buttonset{float:right}.elfinder-resize-rotate-slider{float:left;width:195px;margin:7px 7px 0}.elfinder-file-edit{width:99%;height:99%;margin:0;padding:2px;border:1px solid #ccc}.elfinder-help{margin-bottom:.5em}.elfinder-help .ui-tabs-panel{padding:.5em}.elfinder-dialog .ui-tabs .ui-tabs-nav li a{padding:.2em 1em}.elfinder-help-shortcuts{height:300px;padding:1em;margin:.5em 0;overflow:auto}.elfinder-help-shortcut{white-space:nowrap;clear:both}.elfinder-help-shortcut-pattern{float:left;width:160px}.elfinder-help-logo{width:100px;height:96px;float:left;margin-right:1em;background:url('../img/logo.png') center center no-repeat}.elfinder-help h3{font-size:1.5em;margin:.2em 0 .3em}.elfinder-help-separator{clear:both;padding:.5em}.elfinder-help-link{padding:2px}.elfinder-help .ui-priority-secondary{font-size:.9em}.elfinder-help .ui-priority-primary{margin-bottom:7px}.elfinder-help-team{clear:both;text-align:right;border-bottom:1px solid #ccc;margin:.5em 0;font-size:.9em}.elfinder-help-team div{float:left}.elfinder-help-license{font-size:.9em}.elfinder-help-disabled{font-weight:700;text-align:center;margin:90px 0}.elfinder-help .elfinder-dont-panic{display:block;border:1px solid transparent;width:200px;height:200px;margin:30px auto;text-decoration:none;text-align:center;position:relative;background:#d90004;-moz-box-shadow:5px 5px 9px #111;-webkit-box-shadow:5px 5px 9px #111;box-shadow:5px 5px 9px #111;background:-moz-radial-gradient(80px 80px,circle farthest-corner,#d90004 35%,#960004 100%);background:-webkit-gradient(radial,80 80,60,80 80,120,from(#d90004),to(#960004));-moz-border-radius:100px;-webkit-border-radius:100px;border-radius:100px;outline:none}.elfinder-help .elfinder-dont-panic span{font-size:3em;font-weight:700;text-align:center;color:#fff;position:absolute;left:0;top:45px}.elfinder{padding:0;position:relative;display:block}.elfinder-rtl{text-align:right;direction:rtl}.elfinder-workzone{padding:0;position:relative;overflow:hidden}.elfinder-perms,.elfinder-symlink{position:absolute;width:16px;height:16px;background-image:url(../img/toolbar.png);background-repeat:no-repeat;background-position:0 -528px}.elfinder-na .elfinder-perms{background-position:0 -96px}.elfinder-ro .elfinder-perms{background-position:0 -64px}.elfinder-wo .elfinder-perms{background-position:0 -80px}.elfinder-drag-helper{width:60px;height:50px;padding:0 0 0 25px;z-index:100000}.elfinder-drag-helper-icon-plus{position:absolute;width:16px;height:16px;left:43px;top:55px;background:url('../img/toolbar.png') 0 -544px no-repeat;display:none}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-plus{display:block}.elfinder-drag-num{position:absolute;top:0;left:0;width:16px;height:14px;text-align:center;padding-top:2px;font-size:12px;font-weight:700;color:#fff;background-color:red;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-drag-helper .elfinder-cwd-icon{margin:0 0 0 -24px;float:left}.elfinder-overlay{opacity:0;filter:Alpha(Opacity=0)}.elfinder .elfinder-panel{position:relative;background-image:none;padding:7px 12px}.elfinder-contextmenu,.elfinder-contextmenu-sub{display:none;position:absolute;border:1px solid #aaa;background:#fff;color:#555;padding:4px 0}.elfinder-contextmenu-sub{top:5px}.elfinder-contextmenu-ltr .elfinder-contextmenu-sub{margin-left:-5px}.elfinder-contextmenu-rtl .elfinder-contextmenu-sub{margin-right:-5px}.elfinder-contextmenu-item{position:relative;display:block;padding:4px 30px;text-decoration:none;white-space:nowrap;cursor:default}.elfinder-contextmenu .elfinder-contextmenu-item span{font-size:.76em;display:block}.elfinder-contextmenu-ltr .elfinder-contextmenu-item{text-align:left}.elfinder-contextmenu-rtl .elfinder-contextmenu-item{text-align:right}.elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextmenu-item{padding-left:12px}.elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextmenu-item{padding-right:12px}.elfinder-contextmenu-arrow,.elfinder-contextmenu-icon{position:absolute;top:50%;margin-top:-8px}.elfinder-contextmenu-ltr .elfinder-contextmenu-icon{left:8px}.elfinder-contextmenu-rtl .elfinder-contextmenu-icon{right:8px}.elfinder-contextmenu-arrow{width:16px;height:16px;background:url('../img/arrows-normal.png') 5px 4px no-repeat}.elfinder-contextmenu-ltr .elfinder-contextmenu-arrow{right:5px}.elfinder-contextmenu-rtl .elfinder-contextmenu-arrow{left:5px;background-position:0 -10px}.elfinder-contextmenu .ui-state-hover{border:0 solid;background-image:none}.elfinder-contextmenu-separator{height:0;border-top:1px solid #ccc;margin:0 1px}.elfinder-cwd-wrapper{overflow:auto;position:relative;padding:2px;margin:0}.elfinder-cwd-wrapper-list{padding:0}.elfinder-cwd{position:relative;font-size:.7em;cursor:default;padding:0;margin:0;-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;user-select:none}.elfinder .elfinder-cwd-wrapper.elfinder-droppable-active{padding:0;border:2px solid #8cafed}.elfinder-cwd-view-icons .elfinder-cwd-file{width:120px;height:80px;padding-bottom:2px;cursor:default;overflow:hidden}.elfinder-ltr .elfinder-cwd-view-icons .elfinder-cwd-file{float:left;margin:0 3px 12px 0}.elfinder-rtl .elfinder-cwd-view-icons .elfinder-cwd-file{float:right;margin:0 0 5px 3px}.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover{border:0 solid}.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:52px;height:52px;margin:1px auto;padding:2px;position:relative}.elfinder-cwd-view-icons .elfinder-cwd-filename{text-align:center;white-space:pre;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;margin:3px 1px 0;padding:1px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-cwd-view-icons .elfinder-perms{bottom:4px;right:2px}.elfinder-cwd-view-icons .elfinder-symlink{bottom:6px;left:0}.elfinder-cwd-icon{display:block;width:48px;height:48px;margin:0 auto;background:url('../img/icons-big.png') 0 0 no-repeat;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon{background-position:0 -100px}.elfinder-cwd-icon-directory{background-position:0 -50px}.elfinder-cwd-icon-application{background-position:0 -150px}.elfinder-cwd-icon-x-empty,.elfinder-cwd-icon-text{background-position:0 -200px}.elfinder-cwd-icon-image,.elfinder-cwd-icon-vnd-adobe-photoshop,.elfinder-cwd-icon-postscript{background-position:0 -250px}.elfinder-cwd-icon-audio{background-position:0 -300px}.elfinder-cwd-icon-video,.elfinder-cwd-icon-flash-video{background-position:0 -350px}.elfinder-cwd-icon-rtf,.elfinder-cwd-icon-rtfd{background-position:0 -401px}.elfinder-cwd-icon-pdf{background-position:0 -450px}.elfinder-cwd-icon-vnd-ms-office,.elfinder-cwd-icon-msword,.elfinder-cwd-icon-vnd-ms-word,.elfinder-cwd-icon-vnd-oasis-opendocument-text,.elfinder-cwd-icon-ms-excel,.elfinder-cwd-icon-vnd-ms-excel,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,.elfinder-cwd-icon-vnd-ms-powerpoint,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation{background-position:0 -500px}.elfinder-cwd-icon-html{background-position:0 -550px}.elfinder-cwd-icon-css{background-position:0 -600px}.elfinder-cwd-icon-javascript,.elfinder-cwd-icon-x-javascript{background-position:0 -650px}.elfinder-cwd-icon-x-perl{background-position:0 -700px}.elfinder-cwd-icon-x-python{background-position:0 -750px}.elfinder-cwd-icon-x-ruby{background-position:0 -800px}.elfinder-cwd-icon-x-sh,.elfinder-cwd-icon-x-shellscript{background-position:0 -850px}.elfinder-cwd-icon-x-c,.elfinder-cwd-icon-x-csrc,.elfinder-cwd-icon-x-chdr,.elfinder-cwd-icon-x-c--,.elfinder-cwd-icon-x-c--src,.elfinder-cwd-icon-x-c--hdr,.elfinder-cwd-icon-x-java,.elfinder-cwd-icon-x-java-source{background-position:0 -900px}.elfinder-cwd-icon-x-php{background-position:0 -950px}.elfinder-cwd-icon-xml{background-position:0 -1000px}.elfinder-cwd-icon-zip,.elfinder-cwd-icon-x-zip,.elfinder-cwd-icon-x-7z-compressed{background-position:0 -1050px}.elfinder-cwd-icon-x-gzip,.elfinder-cwd-icon-x-tar{background-position:0 -1100px}.elfinder-cwd-icon-x-bzip,.elfinder-cwd-icon-x-bzip2{background-position:0 -1150px}.elfinder-cwd-icon-x-rar,.elfinder-cwd-icon-x-rar-compressed{background-position:0 -1200px}.elfinder-cwd-icon-x-shockwave-flash{background-position:0 -1250px}.elfinder-cwd-icon-group{background-position:0 -1300px}.elfinder-cwd input{width:100%;border:0 solid;margin:0;padding:0}.elfinder-cwd-view-icons input,.elfinder-cwd-view-icons{text-align:center}.elfinder-cwd table{width:100%;border-collapse:collapse;border:0 solid;margin:0 0 10px}.elfinder .elfinder-cwd table thead tr{border-left:0 solid;border-top:0 solid;border-right:0 solid}.elfinder .elfinder-cwd table thead td{font-size:.9em}.elfinder .elfinder-cwd table td{padding:3px 12px;white-space:pre;overflow:hidden;text-align:right;cursor:default;border:0 solid}.elfinder-ltr .elfinder-cwd table td{text-align:right}.elfinder-ltr .elfinder-cwd table td:first-child{text-align:left}.elfinder-rtl .elfinder-cwd table td{text-align:left}.elfinder-rtl .elfinder-cwd table td:first-child{text-align:right}.elfinder-odd-row{background:#eee}.elfinder-cwd-view-list .elfinder-cwd-file-wrapper{width:97%;position:relative}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-file-wrapper{padding-left:23px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-file-wrapper{padding-right:23px}.elfinder-cwd-view-list .elfinder-perms,.elfinder-cwd-view-list .elfinder-symlink{top:50%;margin-top:-6px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-perms{left:7px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-symlink{left:-7px}.elfinder-cwd-view-list td .elfinder-cwd-icon{width:16px;height:16px;position:absolute;top:50%;margin-top:-8px;background-image:url(../img/icons-small.png)}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-icon{left:0}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-icon{right:0}.std42-dialog{padding:0}.std42-dialog .ui-dialog-titlebar{border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;font-size:.82em;font-weight:400;padding:.2em 1em}.std42-dialog .ui-dialog-titlebar-close,.std42-dialog .ui-dialog-titlebar-close:hover{padding:1px}.elfinder-rtl .elfinder-dialog .ui-dialog-titlebar{text-align:right}.elfinder-rtl .elfinder-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close{right:auto;left:.3em}.std42-dialog .ui-dialog-content{padding:.3em .5em;font-size:.72em}.std42-dialog .ui-dialog-buttonpane{border:0 solid;margin:0;padding:.5em .7em;font-size:.76em}.std42-dialog .ui-dialog-buttonpane button{margin:0 0 0 .4em;padding:0;outline:0 solid}.std42-dialog .ui-dialog-buttonpane button span{padding:2px 9px}.elfinder-dialog .ui-resizable-e,.elfinder-dialog .ui-resizable-s{width:0;height:0}.std42-dialog .ui-button input{cursor:pointer}.elfinder-dialog-icon{position:absolute;width:32px;height:32px;left:12px;top:50%;margin-top:-15px;background:url("../img/dialogs.png") 0 0 no-repeat}.elfinder-rtl .elfinder-dialog-icon{left:auto;right:12px}.elfinder-dialog-error .ui-dialog-content,.elfinder-dialog-confirm .ui-dialog-content{padding-left:56px;min-height:35px}.elfinder-rtl .elfinder-dialog-error .ui-dialog-content,.elfinder-rtl .elfinder-dialog-confirm .ui-dialog-content{padding-left:0;padding-right:56px}.elfinder-dialog-notify .ui-dialog-titlebar-close{display:none}.elfinder-dialog-notify .ui-dialog-content{padding:0}.elfinder-notify{border-bottom:1px solid #ccc;position:relative;padding:.5em;text-align:center;overflow:hidden}.elfinder-ltr .elfinder-notify{padding-left:30px}.elfinder-rtl .elfinder-notify{padding-right:30px}.elfinder-notify:last-child{border:0 solid}.elfinder-notify-progressbar{width:180px;height:8px;border:1px solid #aaa;background:#f5f5f5;margin:5px auto;overflow:hidden}.elfinder-notify-progress{width:100%;height:8px;background:url(../img/progress.gif) center center repeat-x}.elfinder-notify-progressbar,.elfinder-notify-progress{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.elfinder-dialog-icon-open,.elfinder-dialog-icon-file,.elfinder-dialog-icon-reload{background-position:0 -225px}.elfinder-dialog-icon-mkdir{background-position:0 -64px}.elfinder-dialog-icon-mkfile{background-position:0 -96px}.elfinder-dialog-icon-copy,.elfinder-dialog-icon-prepare,.elfinder-dialog-icon-move{background-position:0 -128px}.elfinder-dialog-icon-upload{background-position:0 -160px}.elfinder-dialog-icon-rm{background-position:0 -192px}.elfinder-dialog-icon-download{background-position:0 -260px}.elfinder-dialog-icon-save{background-position:0 -295px}.elfinder-dialog-icon-rename{background-position:0 -330px}.elfinder-dialog-icon-archive,.elfinder-dialog-icon-extract{background-position:0 -365px}.elfinder-dialog-icon-search{background-position:0 -402px}.elfinder-dialog-confirm-applyall{padding-top:3px}.elfinder-dialog-confirm .elfinder-dialog-icon{background-position:0 -32px}.elfinder-info-title .elfinder-cwd-icon{float:left;width:48px;height:48px;margin-right:1em}.elfinder-info-title strong{display:block;padding:.3em 0 .5em}.elfinder-info-tb{min-width:200px;border:0 solid;margin:1em .2em;font-size:.9em}.elfinder-info-tb td{white-space:nowrap;padding:2px}.elfinder-info-tb tr td:first-child{text-align:right}.elfinder-info-tb span{float:left}.elfinder-info-tb a{outline:none;text-decoration:underline}.elfinder-info-tb a:hover{text-decoration:none}.elfinder-info-spinner{width:14px;height:14px;float:left;background:url("../img/spinner-mini.gif") center center no-repeat;margin:0 5px}.elfinder-upload-dropbox{font-size:1.2em;text-align:center;padding:2em 0;border:3px dashed #aaa}.elfinder-upload-dropbox.ui-state-hover{background:#dfdfdf;border:3px dashed #555}.elfinder-upload-dialog-or{font-size:1.2em;margin:.3em 0;text-align:center}.elfinder-upload-dialog-wrapper{text-align:center}.elfinder-upload-dialog-wrapper .ui-button{position:relative;overflow:hidden}.elfinder-upload-dialog-wrapper .ui-button form{position:absolute;right:0;top:0;opacity:0;filter:Alpha(Opacity=0)}.elfinder-upload-dialog-wrapper .ui-button form input{padding:0 20px;font-size:3em}.dialogelfinder .dialogelfinder-drag{border-left:0 solid;border-top:0 solid;border-right:0 solid;font-weight:400;font-size:.9em;padding:2px 12px;cursor:move;position:relative;text-align:left}.elfinder-rtl .dialogelfinder-drag{text-align:right}.dialogelfinder-drag-close{position:absolute;top:50%;margin-top:-8px}.elfinder-ltr .dialogelfinder-drag-close{right:12px}.elfinder-rtl .dialogelfinder-drag-close{left:12px}.elfinder .elfinder-navbar{width:230px;padding:3px 5px;font-size:.72em;background-image:none;border-top:0 solid;border-bottom:0 solid;overflow:auto;display:none;position:relative;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;user-select:none}.elfinder-ltr .elfinder-navbar{float:left;border-left:0 solid}.elfinder-rtl .elfinder-navbar{float:right;border-right:0 solid}.elfinder-ltr .ui-resizable-e{margin-left:10px}.elfinder-tree{display:table;width:100%;margin:0 0 .5em}.elfinder-navbar-dir{position:relative;display:block;white-space:nowrap;padding:3px 12px;margin:0;outline:0 solid;border:1px solid transparent;cursor:default}.elfinder-ltr .elfinder-navbar-dir{padding-left:35px}.elfinder-rtl .elfinder-navbar-dir{padding-right:35px}.elfinder-navbar-arrow{width:12px;height:14px;position:absolute;display:none;top:50%;margin-top:-8px;background-image:url("../img/arrows-normal.png");background-repeat:no-repeat}.ui-state-active .elfinder-navbar-arrow{background-image:url("../img/arrows-active.png")}.elfinder-navbar-collapsed .elfinder-navbar-arrow{display:block}.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 4px;left:0}.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 -10px;right:0}.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow,.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow{background-position:0 -21px}.elfinder-navbar-icon{width:16px;height:16px;position:absolute;top:50%;margin-top:-8px;background-image:url("../img/toolbar.png");background-repeat:no-repeat;background-position:0 -16px}.elfinder-ltr .elfinder-navbar-icon{left:14px}.elfinder-rtl .elfinder-navbar-icon{right:14px}.elfinder-tree .elfinder-navbar-root .elfinder-navbar-icon{background-position:0 0}.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon{background-position:0 -48px}.ui-state-active .elfinder-navbar-icon,.elfinder-droppable-active .elfinder-navbar-icon,.ui-state-hover .elfinder-navbar-icon{background-position:0 -32px}.elfinder-navbar-subtree{display:none}.elfinder-ltr .elfinder-navbar-subtree{margin-left:12px}.elfinder-rtl .elfinder-navbar-subtree{margin-right:12px}.elfinder-navbar-spinner{width:14px;height:14px;position:absolute;display:block;top:50%;margin-top:-7px;background:url("../img/spinner-mini.gif") center center no-repeat}.elfinder-ltr .elfinder-navbar-spinner{left:0;margin-left:-2px}.elfinder-rtl .elfinder-navbar-spinner{right:0;margin-right:-2px}.elfinder-navbar .elfinder-perms{top:50%;margin-top:-8px}.elfinder-ltr .elfinder-navbar .elfinder-perms{left:18px}.elfinder-rtl .elfinder-navbar .elfinder-perms{right:18px}.elfinder-ltr .elfinder-navbar .elfinder-symlink{left:8px}.elfinder-rtl .elfinder-navbar .elfinder-symlink{right:8px}.elfinder-navbar .ui-resizable-handle{width:12px;background:url('../img/resize.png') center center no-repeat;left:0}.elfinder-nav-handle-icon{position:absolute;top:50%;margin:-8px 2px 0;opacity:.5;filter:Alpha(Opacity=50)}.elfinder-places{border:1px solid transparent}.elfinder-places.elfinder-droppable-active{border:1px solid #8cafed}.elfinder-place-drag .elfinder-navbar-dir{font-size:.9em}.elfinder-quicklook{position:absolute;background:url("../img/quicklook-bg.png");display:none;overflow:hidden;border-radius:7px;-moz-border-radius:7px;-webkit-border-radius:7px;padding:20px 0 40px}.elfinder-quicklook .ui-resizable-se{width:14px;height:14px;right:5px;bottom:3px;background:url("../img/toolbar.png") 0 -496px no-repeat}.elfinder-quicklook-fullscreen{border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;-webkit-background-clip:padding-box;padding:0;background:#000;z-index:90000;display:block}.elfinder-quicklook-fullscreen .elfinder-quicklook-titlebar{display:none}.elfinder-quicklook-fullscreen .elfinder-quicklook-preview{border:0 solid}.elfinder-quicklook-titlebar{text-align:center;background:#777;position:absolute;left:0;top:0;width:100%;height:20px;-moz-border-radius-topleft:7px;-webkit-border-top-left-radius:7px;border-top-left-radius:7px;-moz-border-radius-topright:7px;-webkit-border-top-right-radius:7px;border-top-right-radius:7px;cursor:move}.elfinder-quicklook-title{font-size:.7em;color:#fff;white-space:nowrap;overflow:hidden;padding:2px 0}.elfinder-quicklook-titlebar .ui-icon{position:absolute;left:4px;top:50%;margin-top:-8px;width:16px;height:16px;cursor:default}.elfinder-quicklook-preview{overflow:hidden;position:relative;border:0 solid;border-left:1px solid transparent;border-right:1px solid transparent;height:100%}.elfinder-quicklook-info-wrapper{position:absolute;width:100%;left:0;top:50%;margin-top:-50px}.elfinder-quicklook-info{padding:0 12px 0 112px}.elfinder-quicklook-info .elfinder-quicklook-info-data:first-child{color:#fff;font-weight:700;padding-bottom:.5em}.elfinder-quicklook-info-data{font-size:.72em;padding-bottom:.2em;color:#fff}.elfinder-quicklook .elfinder-cwd-icon{position:absolute;left:32px;top:50%;margin-top:-20px}.elfinder-quicklook-preview img{display:block;margin:0 auto}.elfinder-quicklook-navbar{position:absolute;left:50%;bottom:4px;width:140px;height:32px;padding:0;margin-left:-70px;border:1px solid transparent;border-radius:19px;-moz-border-radius:19px;-webkit-border-radius:19px}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{width:188px;margin-left:-94px;padding:5px;border:1px solid #eee;background:#000}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-icon-close,.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-separator{display:inline}.elfinder-quicklook-navbar-icon{width:32px;height:32px;margin:0 7px;float:left;background:url("../img/quicklook-icons.png") 0 0 no-repeat}.elfinder-quicklook-navbar-icon-fullscreen{background-position:0 -64px}.elfinder-quicklook-navbar-icon-fullscreen-off{background-position:0 -96px}.elfinder-quicklook-navbar-icon-prev{background-position:0 0}.elfinder-quicklook-navbar-icon-next{background-position:0 -32px}.elfinder-quicklook-navbar-icon-close{background-position:0 -128px;display:none}.elfinder-quicklook-navbar-separator{width:1px;height:32px;float:left;border-left:1px solid #fff;display:none}.elfinder-quicklook-preview-text-wrapper{width:100%;height:100%;background:#fff;color:#222;font-size:.9em;overflow:auto}pre.elfinder-quicklook-preview-text{margin:0;padding:3px 9px}.elfinder-quicklook-preview-html,.elfinder-quicklook-preview-pdf{width:100%;height:100%;background:#fff;border:0 solid;margin:0}.elfinder-quicklook-preview-flash{width:100%;height:100%}.elfinder-quicklook-preview-audio{width:100%;position:absolute;bottom:0;left:0}embed.elfinder-quicklook-preview-audio{height:30px;background:0 0}.elfinder-quicklook-preview-video{width:100%;height:100%}.elfinder-statusbar{text-align:center;font-weight:400;padding:.2em .5em;border-right:0 solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.elfinder-statusbar a{text-decoration:none}.elfinder-statusbar div{font-size:.7em}.elfinder-path{max-width:30%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.elfinder-ltr .elfinder-path{float:left}.elfinder-rtl .elfinder-path{float:right}.elfinder-stat-size{white-space:nowrap}.elfinder-ltr .elfinder-stat-size{float:right}.elfinder-rtl .elfinder-stat-size{float:left}.elfinder-stat-selected{white-space:nowrap;overflow:hidden}.elfinder-toolbar{padding:4px 0 3px;border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent}.elfinder-buttonset{margin:1px 4px;float:left;background:0 0;padding:0;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.elfinder .elfinder-button{width:16px;height:16px;margin:0;padding:4px;float:left;overflow:hidden;position:relative;border:0 solid}.elfinder .ui-icon-search{cursor:pointer}.elfinder-button:first-child{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.elfinder-button:last-child{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.elfinder-toolbar-button-separator{float:left;padding:0;height:24px;border-top:0 solid;border-right:0 solid;border-bottom:0 solid;width:0}.elfinder .elfinder-button.ui-state-disabled{opacity:1;filter:Alpha(Opacity=100)}.elfinder .elfinder-button.ui-state-disabled .elfinder-button-icon{opacity:.4;filter:Alpha(Opacity=40)}.elfinder-rtl .elfinder-buttonset{float:right}.elfinder-button-icon{width:16px;height:16px;display:block;background:url('../img/toolbar.png') no-repeat}.elfinder-button-icon-home{background-position:0 0}.elfinder-button-icon-back{background-position:0 -112px}.elfinder-button-icon-forward{background-position:0 -128px}.elfinder-button-icon-up{background-position:0 -144px}.elfinder-button-icon-reload{background-position:0 -160px}.elfinder-button-icon-open{background-position:0 -176px}.elfinder-button-icon-mkdir{background-position:0 -192px}.elfinder-button-icon-mkfile{background-position:0 -208px}.elfinder-button-icon-rm{background-position:0 -224px}.elfinder-button-icon-copy{background-position:0 -240px}.elfinder-button-icon-cut{background-position:0 -256px}.elfinder-button-icon-paste{background-position:0 -272px}.elfinder-button-icon-getfile{background-position:0 -288px}.elfinder-button-icon-duplicate{background-position:0 -304px}.elfinder-button-icon-rename{background-position:0 -320px}.elfinder-button-icon-edit{background-position:0 -336px}.elfinder-button-icon-quicklook{background-position:0 -352px}.elfinder-button-icon-upload{background-position:0 -368px}.elfinder-button-icon-download{background-position:0 -384px}.elfinder-button-icon-info{background-position:0 -400px}.elfinder-button-icon-extract{background-position:0 -416px}.elfinder-button-icon-archive{background-position:0 -432px}.elfinder-button-icon-view{background-position:0 -448px}.elfinder-button-icon-view-list{background-position:0 -464px}.elfinder-button-icon-help{background-position:0 -480px}.elfinder-button-icon-resize{background-position:0 -512px}.elfinder-button-icon-search{background-position:0 -561px}.elfinder-button-icon-sort{background-position:0 -577px}.elfinder-button-icon-rotate-r{background-position:0 -625px}.elfinder-button-icon-rotate-l{background-position:0 -641px}.elfinder .elfinder-menubutton{overflow:visible}.elfinder-button-menu{position:absolute;left:0;top:26px;padding:3px 0}.elfinder-button-menu-item{white-space:nowrap;font-size:.72em;cursor:default;padding:5px 19px;position:relative}.elfinder-button-menu .ui-state-hover{border:0 solid}.elfinder-menu-item-sort-dir{width:16px;height:16px;position:absolute;left:2px;top:50%;margin-top:-8px;background:url("../img/toolbar.png") 0 -594px no-repeat;display:none}.elfinder-button-menu-item-selected .elfinder-menu-item-sort-dir{display:block}.elfinder-menu-item-sort-desc .elfinder-menu-item-sort-dir{background-position:0 -608px}.elfinder-button form{position:absolute;top:0;right:0;opacity:0;filter:Alpha(Opacity=0);cursor:pointer}.elfinder .elfinder-button form input{background:0 0;cursor:default}.elfinder .elfinder-button-search{border:0 solid;background:0 0;padding:0;margin:1px 4px;height:auto;min-height:26px;float:right;width:202px}.elfinder-ltr .elfinder-button-search{float:right;margin-right:10px}.elfinder-rtl .elfinder-button-search{float:left;margin-left:10px}.elfinder-button-search input{width:160px;height:22px;padding:0 20px;font-size:.8em;line-height:22px;border:1px solid #aaa;-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px;outline:0 solid}.elfinder-rtl .elfinder-button-search input{direction:rtl}.elfinder-button-search .ui-icon{position:absolute;height:18px;top:50%;margin:-9px 4px 0;opacity:.6;filter:Alpha(Opacity=60)}.elfinder-ltr .elfinder-button-search .ui-icon-search{left:0}.elfinder-rtl .elfinder-button-search .ui-icon-search,.elfinder-ltr .elfinder-button-search .ui-icon-close{right:0}.elfinder-rtl .elfinder-button-search .ui-icon-close{left:0} \ No newline at end of file diff --git a/gloam/WebRoot/css/elfinder.theme.css b/gloam/WebRoot/css/elfinder.theme.css new file mode 100644 index 0000000..369270a --- /dev/null +++ b/gloam/WebRoot/css/elfinder.theme.css @@ -0,0 +1,49 @@ +/** + * MacOS X like theme for elFinder. + * Required jquery ui "smoothness" theme. + * + * @author Dmitry (dio) Levashov + **/ + +/* dialogs */ +.std42-dialog, .std42-dialog .ui-widget-content { background-color:#ededed; background-image:none; background-clip: content-box; } + +/* navbar */ +.elfinder .elfinder-navbar { background:#dde4eb; } +.elfinder-navbar .ui-state-hover { background:transparent; border-color:transparent; } +.elfinder-navbar .ui-state-active { background: #3875d7; border-color:#3875d7; color:#fff; } +/* disabled elfinder */ +.elfinder-disabled .elfinder-navbar .ui-state-active { background: #dadada; border-color:#aaa; color:#fff; } + + +/* current directory */ +/* selected file in "icons" view */ +.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover { background:#ccc; } +/* list view*/ +.elfinder-cwd table tr:nth-child(odd) { background-color:#edf3fe; } +.elfinder-cwd table tr { border-top:1px solid #fff; } + +/* common selected background/color */ +.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, +.elfinder-cwd table td.ui-state-hover, +.elfinder-button-menu .ui-state-hover { background: #3875d7; color:#fff;} +/* disabled elfinder */ +.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, +.elfinder-disabled .elfinder-cwd table td.ui-state-hover { background:#dadada;} + +/* statusbar */ +.elfinder .elfinder-statusbar { color:#555; } +.elfinder .elfinder-statusbar a { text-decoration:none; color:#555;} + + +.std42-dialog .elfinder-help, .std42-dialog .elfinder-help .ui-widget-content { background:#fff;} + +/* contextmenu */ +.elfinder-contextmenu .ui-state-hover { background: #3875d7; color:#fff; } +.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { background-image:url('../img/arrows-active.png'); } + + + + + + diff --git a/gloam/WebRoot/css/fkpagetransitions.min.css b/gloam/WebRoot/css/fkpagetransitions.min.css new file mode 100644 index 0000000..ee2f590 --- /dev/null +++ b/gloam/WebRoot/css/fkpagetransitions.min.css @@ -0,0 +1,2 @@ +/* fkpagetransitions animation sets */ +.pt-page-ontop{z-index:999}.pt-page-fkfadeIn{-webkit-animation:fkfadeIn .7s ease both;-moz-animation:fkfadeIn .7s ease both;animation:fkfadeIn .7s ease both}.pt-page-fkfadeOut{-webkit-animation:fkfadeOut .7s ease both;-moz-animation:fkfadeOut .7s ease both;animation:fkfadeOut .7s ease both}.pt-page-moveToLeft{-webkit-animation:moveToLeft .6s ease both;-moz-animation:moveToLeft .6s ease both;animation:moveToLeft .6s ease both}.pt-page-moveFromLeft{-webkit-animation:moveFromLeft .6s ease both;-moz-animation:moveFromLeft .6s ease both;animation:moveFromLeft .6s ease both}.pt-page-moveToRight{-webkit-animation:moveToRight .6s ease both;-moz-animation:moveToRight .6s ease both;animation:moveToRight .6s ease both}.pt-page-moveFromRight{-webkit-animation:moveFromRight .6s ease both;-moz-animation:moveFromRight .6s ease both;animation:moveFromRight .6s ease both}.pt-page-moveToTop{-webkit-animation:moveToTop .6s ease both;-moz-animation:moveToTop .6s ease both;animation:moveToTop .6s ease both}.pt-page-moveFromTop{-webkit-animation:moveFromTop .6s ease both;-moz-animation:moveFromTop .6s ease both;animation:moveFromTop .6s ease both}.pt-page-moveToBottom{-webkit-animation:moveToBottom .6s ease both;-moz-animation:moveToBottom .6s ease both;animation:moveToBottom .6s ease both}.pt-page-moveFromBottom{-webkit-animation:moveFromBottom .6s ease both;-moz-animation:moveFromBottom .6s ease both;animation:moveFromBottom .6s ease both}.pt-page-fade{-webkit-animation:fade .7s ease both;-moz-animation:fade .7s ease both;animation:fade .7s ease both}.pt-page-moveToLeftFade{-webkit-animation:moveToLeftFade .7s ease both;-moz-animation:moveToLeftFade .7s ease both;animation:moveToLeftFade .7s ease both}.pt-page-moveFromLeftFade{-webkit-animation:moveFromLeftFade .7s ease both;-moz-animation:moveFromLeftFade .7s ease both;animation:moveFromLeftFade .7s ease both}.pt-page-moveToRightFade{-webkit-animation:moveToRightFade .7s ease both;-moz-animation:moveToRightFade .7s ease both;animation:moveToRightFade .7s ease both}.pt-page-moveFromRightFade{-webkit-animation:moveFromRightFade .7s ease both;-moz-animation:moveFromRightFade .7s ease both;animation:moveFromRightFade .7s ease both}.pt-page-moveToTopFade{-webkit-animation:moveToTopFade .7s ease both;-moz-animation:moveToTopFade .7s ease both;animation:moveToTopFade .7s ease both}.pt-page-moveFromTopFade{-webkit-animation:moveFromTopFade .7s ease both;-moz-animation:moveFromTopFade .7s ease both;animation:moveFromTopFade .7s ease both}.pt-page-moveToBottomFade{-webkit-animation:moveToBottomFade .7s ease both;-moz-animation:moveToBottomFade .7s ease both;animation:moveToBottomFade .7s ease both}.pt-page-moveFromBottomFade{-webkit-animation:moveFromBottomFade .7s ease both;-moz-animation:moveFromBottomFade .7s ease both;animation:moveFromBottomFade .7s ease both}.pt-page-moveToLeftEasing{-webkit-animation:moveToLeft .7s ease-in-out both;-moz-animation:moveToLeft .7s ease-in-out both;animation:moveToLeft .7s ease-in-out both}.pt-page-moveToRightEasing{-webkit-animation:moveToRight .7s ease-in-out both;-moz-animation:moveToRight .7s ease-in-out both;animation:moveToRight .7s ease-in-out both}.pt-page-moveToTopEasing{-webkit-animation:moveToTop .7s ease-in-out both;-moz-animation:moveToTop .7s ease-in-out both;animation:moveToTop .7s ease-in-out both}.pt-page-moveToBottomEasing{-webkit-animation:moveToBottom .7s ease-in-out both;-moz-animation:moveToBottom .7s ease-in-out both;animation:moveToBottom .7s ease-in-out both}@-webkit-keyframes fkfadeIn{from{opacity:0}}@-moz-keyframes fkfadeIn{from{opacity:0}}@keyframes fkfadeIn{from{opacity:0}}@-webkit-keyframes fkfadeOut{to{opacity:0}}@-moz-keyframes fkfadeOut{to{opacity:0}}@keyframes fkfadeOut{to{opacity:0}}@-webkit-keyframes moveToLeft{to{-webkit-transform:translateX(-100%)}}@-moz-keyframes moveToLeft{to{-moz-transform:translateX(-100%)}}@keyframes moveToLeft{to{transform:translateX(-100%)}}@-webkit-keyframes moveFromLeft{from{-webkit-transform:translateX(-100%)}}@-moz-keyframes moveFromLeft{from{-moz-transform:translateX(-100%)}}@keyframes moveFromLeft{from{transform:translateX(-100%)}}@-webkit-keyframes moveToRight{to{-webkit-transform:translateX(100%)}}@-moz-keyframes moveToRight{to{-moz-transform:translateX(100%)}}@keyframes moveToRight{to{transform:translateX(100%)}}@-webkit-keyframes moveFromRight{from{-webkit-transform:translateX(100%)}}@-moz-keyframes moveFromRight{from{-moz-transform:translateX(100%)}}@keyframes moveFromRight{from{transform:translateX(100%)}}@-webkit-keyframes moveToTop{to{-webkit-transform:translateY(-100%)}}@-moz-keyframes moveToTop{to{-moz-transform:translateY(-100%)}}@keyframes moveToTop{to{transform:translateY(-100%)}}@-webkit-keyframes moveFromTop{from{-webkit-transform:translateY(-100%)}}@-moz-keyframes moveFromTop{from{-moz-transform:translateY(-100%)}}@keyframes moveFromTop{from{transform:translateY(-100%)}}@-webkit-keyframes moveToBottom{to{-webkit-transform:translateY(100%)}}@-moz-keyframes moveToBottom{to{-moz-transform:translateY(100%)}}@keyframes moveToBottom{to{transform:translateY(100%)}}@-webkit-keyframes moveFromBottom{from{-webkit-transform:translateY(100%)}}@-moz-keyframes moveFromBottom{from{-moz-transform:translateY(100%)}}@keyframes moveFromBottom{from{transform:translateY(100%)}}@-webkit-keyframes fade{to{opacity:.3}}@-moz-keyframes fade{to{opacity:.3}}@keyframes fade{to{opacity:.3}}@-webkit-keyframes moveToLeftFade{to{opacity:.3;-webkit-transform:translateX(-100%)}}@-moz-keyframes moveToLeftFade{to{opacity:.3;-moz-transform:translateX(-100%)}}@keyframes moveToLeftFade{to{opacity:.3;transform:translateX(-100%)}}@-webkit-keyframes moveFromLeftFade{from{opacity:.3;-webkit-transform:translateX(-100%)}}@-moz-keyframes moveFromLeftFade{from{opacity:.3;-moz-transform:translateX(-100%)}}@keyframes moveFromLeftFade{from{opacity:.3;transform:translateX(-100%)}}@-webkit-keyframes moveToRightFade{to{opacity:.3;-webkit-transform:translateX(100%)}}@-moz-keyframes moveToRightFade{to{opacity:.3;-moz-transform:translateX(100%)}}@keyframes moveToRightFade{to{opacity:.3;transform:translateX(100%)}}@-webkit-keyframes moveFromRightFade{from{opacity:.3;-webkit-transform:translateX(100%)}}@-moz-keyframes moveFromRightFade{from{opacity:.3;-moz-transform:translateX(100%)}}@keyframes moveFromRightFade{from{opacity:.3;transform:translateX(100%)}}@-webkit-keyframes moveToTopFade{to{opacity:.3;-webkit-transform:translateY(-100%)}}@-moz-keyframes moveToTopFade{to{opacity:.3;-moz-transform:translateY(-100%)}}@keyframes moveToTopFade{to{opacity:.3;transform:translateY(-100%)}}@-webkit-keyframes moveFromTopFade{from{opacity:.3;-webkit-transform:translateY(-100%)}}@-moz-keyframes moveFromTopFade{from{opacity:.3;-moz-transform:translateY(-100%)}}@keyframes moveFromTopFade{from{opacity:.3;transform:translateY(-100%)}}@-webkit-keyframes moveToBottomFade{to{opacity:.3;-webkit-transform:translateY(100%)}}@-moz-keyframes moveToBottomFade{to{opacity:.3;-moz-transform:translateY(100%)}}@keyframes moveToBottomFade{to{opacity:.3;transform:translateY(100%)}}@-webkit-keyframes moveFromBottomFade{from{opacity:.3;-webkit-transform:translateY(100%)}}@-moz-keyframes moveFromBottomFade{from{opacity:.3;-moz-transform:translateY(100%)}}@keyframes moveFromBottomFade{from{opacity:.3;transform:translateY(100%)}}.pt-page-scaleDown{-webkit-animation:scaleDown .7s ease both;-moz-animation:scaleDown .7s ease both;animation:scaleDown .7s ease both}.pt-page-scaleUp{-webkit-animation:scaleUp .7s ease both;-moz-animation:scaleUp .7s ease both;animation:scaleUp .7s ease both}.pt-page-scaleUpDown{-webkit-animation:scaleUpDown .5s ease both;-moz-animation:scaleUpDown .5s ease both;animation:scaleUpDown .5s ease both}.pt-page-scaleDownUp{-webkit-animation:scaleDownUp .5s ease both;-moz-animation:scaleDownUp .5s ease both;animation:scaleDownUp .5s ease both}.pt-page-scaleDownCenter{-webkit-animation:scaleDownCenter .4s ease-in both;-moz-animation:scaleDownCenter .4s ease-in both;animation:scaleDownCenter .4s ease-in both}.pt-page-scaleUpCenter{-webkit-animation:scaleUpCenter .4s ease-out both;-moz-animation:scaleUpCenter .4s ease-out both;animation:scaleUpCenter .4s ease-out both}@-webkit-keyframes scaleDown{to{opacity:0;-webkit-transform:scale(.8)}}@-moz-keyframes scaleDown{to{opacity:0;-moz-transform:scale(.8)}}@keyframes scaleDown{to{opacity:0;transform:scale(.8)}}@-webkit-keyframes scaleUp{from{opacity:0;-webkit-transform:scale(.8)}}@-moz-keyframes scaleUp{from{opacity:0;-moz-transform:scale(.8)}}@keyframes scaleUp{from{opacity:0;transform:scale(.8)}}@-webkit-keyframes scaleUpDown{from{opacity:0;-webkit-transform:scale(1.2)}}@-moz-keyframes scaleUpDown{from{opacity:0;-moz-transform:scale(1.2)}}@keyframes scaleUpDown{from{opacity:0;transform:scale(1.2)}}@-webkit-keyframes scaleDownUp{to{opacity:0;-webkit-transform:scale(1.2)}}@-moz-keyframes scaleDownUp{to{opacity:0;-moz-transform:scale(1.2)}}@keyframes scaleDownUp{to{opacity:0;transform:scale(1.2)}}@-webkit-keyframes scaleDownCenter{to{opacity:0;-webkit-transform:scale(.7)}}@-moz-keyframes scaleDownCenter{to{opacity:0;-moz-transform:scale(.7)}}@keyframes scaleDownCenter{to{opacity:0;transform:scale(.7)}}@-webkit-keyframes scaleUpCenter{from{opacity:0;-webkit-transform:scale(.7)}}@-moz-keyframes scaleUpCenter{from{opacity:0;-moz-transform:scale(.7)}}@keyframes scaleUpCenter{from{opacity:0;transform:scale(.7)}}.pt-page-rotateRightSideFirst{-webkit-transform-origin:0 50%;-webkit-animation:rotateRightSideFirst .8s both ease-in;-moz-transform-origin:0 50%;-moz-animation:rotateRightSideFirst .8s both ease-in;transform-origin:0 50%;animation:rotateRightSideFirst .8s both ease-in}.pt-page-rotateLeftSideFirst{-webkit-transform-origin:100% 50%;-webkit-animation:rotateLeftSideFirst .8s both ease-in;-moz-transform-origin:100% 50%;-moz-animation:rotateLeftSideFirst .8s both ease-in;transform-origin:100% 50%;animation:rotateLeftSideFirst .8s both ease-in}.pt-page-rotateTopSideFirst{-webkit-transform-origin:50% 100%;-webkit-animation:rotateTopSideFirst .8s both ease-in;-moz-transform-origin:50% 100%;-moz-animation:rotateTopSideFirst .8s both ease-in;transform-origin:50% 100%;animation:rotateTopSideFirst .8s both ease-in}.pt-page-rotateBottomSideFirst{-webkit-transform-origin:50% 0;-webkit-animation:rotateBottomSideFirst .8s both ease-in;-moz-transform-origin:50% 0;-moz-animation:rotateBottomSideFirst .8s both ease-in;transform-origin:50% 0;animation:rotateBottomSideFirst .8s both ease-in}.pt-page-flipOutRight{-webkit-transform-origin:50% 50%;-webkit-animation:flipOutRight .5s both ease-in;-moz-transform-origin:50% 50%;-moz-animation:flipOutRight .5s both ease-in;transform-origin:50% 50%;animation:flipOutRight .5s both ease-in}.pt-page-flipInLeft{-webkit-transform-origin:50% 50%;-webkit-animation:flipInLeft .5s both ease-out;-moz-transform-origin:50% 50%;-moz-animation:flipInLeft .5s both ease-out;transform-origin:50% 50%;animation:flipInLeft .5s both ease-out}.pt-page-flipOutLeft{-webkit-transform-origin:50% 50%;-webkit-animation:flipOutLeft .5s both ease-in;-moz-transform-origin:50% 50%;-moz-animation:flipOutLeft .5s both ease-in;transform-origin:50% 50%;animation:flipOutLeft .5s both ease-in}.pt-page-flipInRight{-webkit-transform-origin:50% 50%;-webkit-animation:flipInRight .5s both ease-out;-moz-transform-origin:50% 50%;-moz-animation:flipInRight .5s both ease-out;transform-origin:50% 50%;animation:flipInRight .5s both ease-out}.pt-page-flipOutTop{-webkit-transform-origin:50% 50%;-webkit-animation:flipOutTop .5s both ease-in;-moz-transform-origin:50% 50%;-moz-animation:flipOutTop .5s both ease-in;transform-origin:50% 50%;animation:flipOutTop .5s both ease-in}.pt-page-flipInBottom{-webkit-transform-origin:50% 50%;-webkit-animation:flipInBottom .5s both ease-out;-moz-transform-origin:50% 50%;-moz-animation:flipInBottom .5s both ease-out;transform-origin:50% 50%;animation:flipInBottom .5s both ease-out}.pt-page-flipOutBottom{-webkit-transform-origin:50% 50%;-webkit-animation:flipOutBottom .5s both ease-in;-moz-transform-origin:50% 50%;-moz-animation:flipOutBottom .5s both ease-in;transform-origin:50% 50%;animation:flipOutBottom .5s both ease-in}.pt-page-flipInTop{-webkit-transform-origin:50% 50%;-webkit-animation:flipInTop .5s both ease-out;-moz-transform-origin:50% 50%;-moz-animation:flipInTop .5s both ease-out;transform-origin:50% 50%;animation:flipInTop .5s both ease-out}.pt-page-rotateFall{-webkit-transform-origin:0 0;-webkit-animation:rotateFall 1s both ease-in;-moz-transform-origin:0 0;-moz-animation:rotateFall 1s both ease-in;transform-origin:0 0;animation:rotateFall 1s both ease-in}.pt-page-rotateFall2{-webkit-transform-origin:100% 0;-webkit-animation:rotateFall2 1s both ease-in;-moz-transform-origin:100% 0;-moz-animation:rotateFall2 1s both ease-in;transform-origin:100% 0;animation:rotateFall2 1s both ease-in}.pt-page-rotateOutNewspaper{-webkit-transform-origin:50% 50%;-webkit-animation:rotateOutNewspaper .5s both ease-in;-moz-transform-origin:50% 50%;-moz-animation:rotateOutNewspaper .5s both ease-in;transform-origin:50% 50%;animation:rotateOutNewspaper .5s both ease-in}.pt-page-rotateInNewspaper{-webkit-transform-origin:50% 50%;-webkit-animation:rotateInNewspaper .5s both ease-out;-moz-transform-origin:50% 50%;-moz-animation:rotateInNewspaper .5s both ease-out;transform-origin:50% 50%;animation:rotateInNewspaper .5s both ease-out}.pt-page-rotatePushLeft{-webkit-transform-origin:0 50%;-webkit-animation:rotatePushLeft .8s both ease;-moz-transform-origin:0 50%;-moz-animation:rotatePushLeft .8s both ease;transform-origin:0 50%;animation:rotatePushLeft .8s both ease}.pt-page-rotatePushRight{-webkit-transform-origin:100% 50%;-webkit-animation:rotatePushRight .8s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotatePushRight .8s both ease;transform-origin:100% 50%;animation:rotatePushRight .8s both ease}.pt-page-rotatePushTop{-webkit-transform-origin:50% 0;-webkit-animation:rotatePushTop .8s both ease;-moz-transform-origin:50% 0;-moz-animation:rotatePushTop .8s both ease;transform-origin:50% 0;animation:rotatePushTop .8s both ease}.pt-page-rotatePushBottom{-webkit-transform-origin:50% 100%;-webkit-animation:rotatePushBottom .8s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotatePushBottom .8s both ease;transform-origin:50% 100%;animation:rotatePushBottom .8s both ease}.pt-page-rotatePullRight{-webkit-transform-origin:100% 50%;-webkit-animation:rotatePullRight .5s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotatePullRight .5s both ease;transform-origin:100% 50%;animation:rotatePullRight .5s both ease}.pt-page-rotatePullLeft{-webkit-transform-origin:0 50%;-webkit-animation:rotatePullLeft .5s both ease;-moz-transform-origin:0 50%;-moz-animation:rotatePullLeft .5s both ease;transform-origin:0 50%;animation:rotatePullLeft .5s both ease}.pt-page-rotatePullTop{-webkit-transform-origin:50% 0;-webkit-animation:rotatePullTop .5s both ease;-moz-transform-origin:50% 0;-moz-animation:rotatePullTop .5s both ease;transform-origin:50% 0;animation:rotatePullTop .5s both ease}.pt-page-rotatePullBottom{-webkit-transform-origin:50% 100%;-webkit-animation:rotatePullBottom .5s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotatePullBottom .5s both ease;transform-origin:50% 100%;animation:rotatePullBottom .5s both ease}.pt-page-rotateFoldRight{-webkit-transform-origin:0 50%;-webkit-animation:rotateFoldRight .7s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateFoldRight .7s both ease;transform-origin:0 50%;animation:rotateFoldRight .7s both ease}.pt-page-rotateFoldLeft{-webkit-transform-origin:100% 50%;-webkit-animation:rotateFoldLeft .7s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateFoldLeft .7s both ease;transform-origin:100% 50%;animation:rotateFoldLeft .7s both ease}.pt-page-rotateFoldTop{-webkit-transform-origin:50% 100%;-webkit-animation:rotateFoldTop .7s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateFoldTop .7s both ease;transform-origin:50% 100%;animation:rotateFoldTop .7s both ease}.pt-page-rotateFoldBottom{-webkit-transform-origin:50% 0;-webkit-animation:rotateFoldBottom .7s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateFoldBottom .7s both ease;transform-origin:50% 0;animation:rotateFoldBottom .7s both ease}.pt-page-rotateUnfoldLeft{-webkit-transform-origin:100% 50%;-webkit-animation:rotateUnfoldLeft .7s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateUnfoldLeft .7s both ease;transform-origin:100% 50%;animation:rotateUnfoldLeft .7s both ease}.pt-page-rotateUnfoldRight{-webkit-transform-origin:0 50%;-webkit-animation:rotateUnfoldRight .7s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateUnfoldRight .7s both ease;transform-origin:0 50%;animation:rotateUnfoldRight .7s both ease}.pt-page-rotateUnfoldTop{-webkit-transform-origin:50% 100%;-webkit-animation:rotateUnfoldTop .7s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateUnfoldTop .7s both ease;transform-origin:50% 100%;animation:rotateUnfoldTop .7s both ease}.pt-page-rotateUnfoldBottom{-webkit-transform-origin:50% 0;-webkit-animation:rotateUnfoldBottom .7s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateUnfoldBottom .7s both ease;transform-origin:50% 0;animation:rotateUnfoldBottom .7s both ease}.pt-page-rotateRoomLeftOut{-webkit-transform-origin:100% 50%;-webkit-animation:rotateRoomLeftOut .8s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateRoomLeftOut .8s both ease;transform-origin:100% 50%;animation:rotateRoomLeftOut .8s both ease}.pt-page-rotateRoomLeftIn{-webkit-transform-origin:0 50%;-webkit-animation:rotateRoomLeftIn .8s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateRoomLeftIn .8s both ease;transform-origin:0 50%;animation:rotateRoomLeftIn .8s both ease}.pt-page-rotateRoomRightOut{-webkit-transform-origin:0 50%;-webkit-animation:rotateRoomRightOut .8s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateRoomRightOut .8s both ease;transform-origin:0 50%;animation:rotateRoomRightOut .8s both ease}.pt-page-rotateRoomRightIn{-webkit-transform-origin:100% 50%;-webkit-animation:rotateRoomRightIn .8s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateRoomRightIn .8s both ease;transform-origin:100% 50%;animation:rotateRoomRightIn .8s both ease}.pt-page-rotateRoomTopOut{-webkit-transform-origin:50% 100%;-webkit-animation:rotateRoomTopOut .8s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateRoomTopOut .8s both ease;transform-origin:50% 100%;animation:rotateRoomTopOut .8s both ease}.pt-page-rotateRoomTopIn{-webkit-transform-origin:50% 0;-webkit-animation:rotateRoomTopIn .8s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateRoomTopIn .8s both ease;transform-origin:50% 0;animation:rotateRoomTopIn .8s both ease}.pt-page-rotateRoomBottomOut{-webkit-transform-origin:50% 0;-webkit-animation:rotateRoomBottomOut .8s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateRoomBottomOut .8s both ease;transform-origin:50% 0;animation:rotateRoomBottomOut .8s both ease}.pt-page-rotateRoomBottomIn{-webkit-transform-origin:50% 100%;-webkit-animation:rotateRoomBottomIn .8s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateRoomBottomIn .8s both ease;transform-origin:50% 100%;animation:rotateRoomBottomIn .8s both ease}.pt-page-rotateCubeLeftOut{-webkit-transform-origin:100% 50%;-webkit-animation:rotateCubeLeftOut .6s both ease-in;-moz-transform-origin:100% 50%;-moz-animation:rotateCubeLeftOut .6s both ease-in;transform-origin:100% 50%;animation:rotateCubeLeftOut .6s both ease-in}.pt-page-rotateCubeLeftIn{-webkit-transform-origin:0 50%;-webkit-animation:rotateCubeLeftIn .6s both ease-in;-moz-transform-origin:0 50%;-moz-animation:rotateCubeLeftIn .6s both ease-in;transform-origin:0 50%;animation:rotateCubeLeftIn .6s both ease-in}.pt-page-rotateCubeRightOut{-webkit-transform-origin:0 50%;-webkit-animation:rotateCubeRightOut .6s both ease-in;-moz-transform-origin:0 50%;-moz-animation:rotateCubeRightOut .6s both ease-in;transform-origin:0 50%;animation:rotateCubeRightOut .6s both ease-in}.pt-page-rotateCubeRightIn{-webkit-transform-origin:100% 50%;-webkit-animation:rotateCubeRightIn .6s both ease-in;-moz-transform-origin:100% 50%;-moz-animation:rotateCubeRightIn .6s both ease-in;transform-origin:100% 50%;animation:rotateCubeRightIn .6s both ease-in}.pt-page-rotateCubeTopOut{-webkit-transform-origin:50% 100%;-webkit-animation:rotateCubeTopOut .6s both ease-in;-moz-transform-origin:50% 100%;-moz-animation:rotateCubeTopOut .6s both ease-in;transform-origin:50% 100%;animation:rotateCubeTopOut .6s both ease-in}.pt-page-rotateCubeTopIn{-webkit-transform-origin:50% 0;-webkit-animation:rotateCubeTopIn .6s both ease-in;-moz-transform-origin:50% 0;-moz-animation:rotateCubeTopIn .6s both ease-in;transform-origin:50% 0;animation:rotateCubeTopIn .6s both ease-in}.pt-page-rotateCubeBottomOut{-webkit-transform-origin:50% 0;-webkit-animation:rotateCubeBottomOut .6s both ease-in;-moz-transform-origin:50% 0;-moz-animation:rotateCubeBottomOut .6s both ease-in;transform-origin:50% 0;animation:rotateCubeBottomOut .6s both ease-in}.pt-page-rotateCubeBottomIn{-webkit-transform-origin:50% 100%;-webkit-animation:rotateCubeBottomIn .6s both ease-in;-moz-transform-origin:50% 100%;-moz-animation:rotateCubeBottomIn .6s both ease-in;transform-origin:50% 100%;animation:rotateCubeBottomIn .6s both ease-in}.pt-page-rotateCarouselLeftOut{-webkit-transform-origin:100% 50%;-webkit-animation:rotateCarouselLeftOut .8s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateCarouselLeftOut .8s both ease;transform-origin:100% 50%;animation:rotateCarouselLeftOut .8s both ease}.pt-page-rotateCarouselLeftIn{-webkit-transform-origin:0 50%;-webkit-animation:rotateCarouselLeftIn .8s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateCarouselLeftIn .8s both ease;transform-origin:0 50%;animation:rotateCarouselLeftIn .8s both ease}.pt-page-rotateCarouselRightOut{-webkit-transform-origin:0 50%;-webkit-animation:rotateCarouselRightOut .8s both ease;-moz-transform-origin:0 50%;-moz-animation:rotateCarouselRightOut .8s both ease;transform-origin:0 50%;animation:rotateCarouselRightOut .8s both ease}.pt-page-rotateCarouselRightIn{-webkit-transform-origin:100% 50%;-webkit-animation:rotateCarouselRightIn .8s both ease;-moz-transform-origin:100% 50%;-moz-animation:rotateCarouselRightIn .8s both ease;transform-origin:100% 50%;animation:rotateCarouselRightIn .8s both ease}.pt-page-rotateCarouselTopOut{-webkit-transform-origin:50% 100%;-webkit-animation:rotateCarouselTopOut .8s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateCarouselTopOut .8s both ease;transform-origin:50% 100%;animation:rotateCarouselTopOut .8s both ease}.pt-page-rotateCarouselTopIn{-webkit-transform-origin:50% 0;-webkit-animation:rotateCarouselTopIn .8s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateCarouselTopIn .8s both ease;transform-origin:50% 0;animation:rotateCarouselTopIn .8s both ease}.pt-page-rotateCarouselBottomOut{-webkit-transform-origin:50% 0;-webkit-animation:rotateCarouselBottomOut .8s both ease;-moz-transform-origin:50% 0;-moz-animation:rotateCarouselBottomOut .8s both ease;transform-origin:50% 0;animation:rotateCarouselBottomOut .8s both ease}.pt-page-rotateCarouselBottomIn{-webkit-transform-origin:50% 100%;-webkit-animation:rotateCarouselBottomIn .8s both ease;-moz-transform-origin:50% 100%;-moz-animation:rotateCarouselBottomIn .8s both ease;transform-origin:50% 100%;animation:rotateCarouselBottomIn .8s both ease}.pt-page-rotateSidesOut{-webkit-transform-origin:-50% 50%;-webkit-animation:rotateSidesOut .5s both ease-in;-moz-transform-origin:-50% 50%;-moz-animation:rotateSidesOut .5s both ease-in;transform-origin:-50% 50%;animation:rotateSidesOut .5s both ease-in}.pt-page-rotateSidesIn{-webkit-transform-origin:150% 50%;-webkit-animation:rotateSidesIn .5s both ease-out;-moz-transform-origin:150% 50%;-moz-animation:rotateSidesIn .5s both ease-out;transform-origin:150% 50%;animation:rotateSidesIn .5s both ease-out}.pt-page-rotateSidesOut2{-webkit-transform-origin:150% 50%;-webkit-animation:rotateSidesOut2 .5s both ease-in;-moz-transform-origin:150% 50%;-moz-animation:rotateSidesOut2 .5s both ease-in;transform-origin:150% 50%;animation:rotateSidesOut2 .5s both ease-in}.pt-page-rotateSidesIn2{-webkit-transform-origin:-50% 50%;-webkit-animation:rotateSidesIn2 .5s both ease-out;-moz-transform-origin:-50% 50%;-moz-animation:rotateSidesIn2 .5s both ease-out;transform-origin:-50% 50%;animation:rotateSidesIn2 .5s both ease-out}.pt-page-rotateSlideOut{-webkit-animation:rotateSlideOut 1s both ease;-moz-animation:rotateSlideOut 1s both ease;animation:rotateSlideOut 1s both ease}.pt-page-rotateSlideOut2{-webkit-animation:rotateSlideOut2 1s both ease;-moz-animation:rotateSlideOut2 1s both ease;animation:rotateSlideOut2 1s both ease}.pt-page-rotateSlideIn{-webkit-animation:rotateSlideIn 1s both ease;-moz-animation:rotateSlideIn 1s both ease;animation:rotateSlideIn 1s both ease}.pt-page-rotateSlideIn2{-webkit-animation:rotateSlideIn2 1s both ease;-moz-animation:rotateSlideIn2 1s both ease;animation:rotateSlideIn2 1s both ease}@-webkit-keyframes rotateRightSideFirst{40%{-webkit-transform:rotateY(15deg);opacity:.8;-webkit-animation-timing-function:ease-out}100%{-webkit-transform:scale(0.8) translateZ(-200px);opacity:0}}@-moz-keyframes rotateRightSideFirst{40%{-moz-transform:rotateY(15deg);opacity:.8;-moz-animation-timing-function:ease-out}100%{-moz-transform:scale(0.8) translateZ(-200px);opacity:0}}@keyframes rotateRightSideFirst{40%{transform:rotateY(15deg);opacity:.8;animation-timing-function:ease-out}100%{transform:scale(0.8) translateZ(-200px);opacity:0}}@-webkit-keyframes rotateLeftSideFirst{40%{-webkit-transform:rotateY(-15deg);opacity:.8;-webkit-animation-timing-function:ease-out}100%{-webkit-transform:scale(0.8) translateZ(-200px);opacity:0}}@-moz-keyframes rotateLeftSideFirst{40%{-moz-transform:rotateY(-15deg);opacity:.8;-moz-animation-timing-function:ease-out}100%{-moz-transform:scale(0.8) translateZ(-200px);opacity:0}}@keyframes rotateLeftSideFirst{40%{transform:rotateY(-15deg);opacity:.8;animation-timing-function:ease-out}100%{transform:scale(0.8) translateZ(-200px);opacity:0}}@-webkit-keyframes rotateTopSideFirst{40%{-webkit-transform:rotateX(15deg);opacity:.8;-webkit-animation-timing-function:ease-out}100%{-webkit-transform:scale(0.8) translateZ(-200px);opacity:0}}@-moz-keyframes rotateTopSideFirst{40%{-moz-transform:rotateX(15deg);opacity:.8;-moz-animation-timing-function:ease-out}100%{-moz-transform:scale(0.8) translateZ(-200px);opacity:0}}@keyframes rotateTopSideFirst{40%{transform:rotateX(15deg);opacity:.8;animation-timing-function:ease-out}100%{transform:scale(0.8) translateZ(-200px);opacity:0}}@-webkit-keyframes rotateBottomSideFirst{40%{-webkit-transform:rotateX(-15deg);opacity:.8;-webkit-animation-timing-function:ease-out}100%{-webkit-transform:scale(0.8) translateZ(-200px);opacity:0}}@-moz-keyframes rotateBottomSideFirst{40%{-moz-transform:rotateX(-15deg);opacity:.8;-moz-animation-timing-function:ease-out}100%{-moz-transform:scale(0.8) translateZ(-200px);opacity:0}}@keyframes rotateBottomSideFirst{40%{transform:rotateX(-15deg);opacity:.8;animation-timing-function:ease-out}100%{transform:scale(0.8) translateZ(-200px);opacity:0}}@-webkit-keyframes flipOutRight{to{-webkit-transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@-moz-keyframes flipOutRight{to{-moz-transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@keyframes flipOutRight{to{transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@-webkit-keyframes flipInLeft{from{-webkit-transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@-moz-keyframes flipInLeft{from{-moz-transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@keyframes flipInLeft{from{transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@-webkit-keyframes flipOutLeft{to{-webkit-transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@-moz-keyframes flipOutLeft{to{-moz-transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@keyframes flipOutLeft{to{transform:translateZ(-1000px) rotateY(-90deg);opacity:.2}}@-webkit-keyframes flipInRight{from{-webkit-transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@-moz-keyframes flipInRight{from{-moz-transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@keyframes flipInRight{from{transform:translateZ(-1000px) rotateY(90deg);opacity:.2}}@-webkit-keyframes flipOutTop{to{-webkit-transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@-moz-keyframes flipOutTop{to{-moz-transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@keyframes flipOutTop{to{transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@-webkit-keyframes flipInBottom{from{-webkit-transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@-moz-keyframes flipInBottom{from{-moz-transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@keyframes flipInBottom{from{transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@-webkit-keyframes flipOutBottom{to{-webkit-transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@-moz-keyframes flipOutBottom{to{-moz-transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@keyframes flipOutBottom{to{transform:translateZ(-1000px) rotateX(-90deg);opacity:.2}}@-webkit-keyframes flipInTop{from{-webkit-transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@-moz-keyframes flipInTop{from{-moz-transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@keyframes flipInTop{from{transform:translateZ(-1000px) rotateX(90deg);opacity:.2}}@-webkit-keyframes rotateFall{0%{-webkit-transform:rotateZ(0deg)}20%{-webkit-transform:rotateZ(10deg);-webkit-animation-timing-function:ease-out}40%{-webkit-transform:rotateZ(17deg)}60%{-webkit-transform:rotateZ(16deg)}100%{-webkit-transform:translateY(100%) rotateZ(17deg)}}@-moz-keyframes rotateFall{0%{-moz-transform:rotateZ(0deg)}20%{-moz-transform:rotateZ(10deg);-moz-animation-timing-function:ease-out}40%{-moz-transform:rotateZ(17deg)}60%{-moz-transform:rotateZ(16deg)}100%{-moz-transform:translateY(100%) rotateZ(17deg)}}@keyframes rotateFall{0%{transform:rotateZ(0deg)}20%{transform:rotateZ(10deg);animation-timing-function:ease-out}40%{transform:rotateZ(17deg)}60%{transform:rotateZ(16deg)}100%{transform:translateY(100%) rotateZ(17deg)}}@-webkit-keyframes rotateFall2{0%{-webkit-transform:rotateZ(0deg)}20%{-webkit-transform:rotateZ(-10deg);-webkit-animation-timing-function:ease-out}40%{-webkit-transform:rotateZ(-17deg)}60%{-webkit-transform:rotateZ(-16deg)}100%{-webkit-transform:translateY(100%) rotateZ(-17deg)}}@-moz-keyframes rotateFall2{0%{-moz-transform:rotateZ(0deg)}20%{-moz-transform:rotateZ(-10deg);-moz-animation-timing-function:ease-out}40%{-moz-transform:rotateZ(-17deg)}60%{-moz-transform:rotateZ(-16deg)}100%{-moz-transform:translateY(100%) rotateZ(-17deg)}}@keyframes rotateFall2{0%{transform:rotateZ(0deg)}20%{transform:rotateZ(-10deg);animation-timing-function:ease-out}40%{transform:rotateZ(-17deg)}60%{transform:rotateZ(-16deg)}100%{transform:translateY(100%) rotateZ(-17deg)}}@-webkit-keyframes rotateOutNewspaper{to{-webkit-transform:translateZ(-3000px) rotateZ(360deg);opacity:0}}@-moz-keyframes rotateOutNewspaper{to{-moz-transform:translateZ(-3000px) rotateZ(360deg);opacity:0}}@keyframes rotateOutNewspaper{to{transform:translateZ(-3000px) rotateZ(360deg);opacity:0}}@-webkit-keyframes rotateInNewspaper{from{-webkit-transform:translateZ(-3000px) rotateZ(-360deg);opacity:0}}@-moz-keyframes rotateInNewspaper{from{-moz-transform:translateZ(-3000px) rotateZ(-360deg);opacity:0}}@keyframes rotateInNewspaper{from{transform:translateZ(-3000px) rotateZ(-360deg);opacity:0}}@-webkit-keyframes rotatePushLeft{to{opacity:0;-webkit-transform:rotateY(90deg)}}@-moz-keyframes rotatePushLeft{to{opacity:0;-moz-transform:rotateY(90deg)}}@keyframes rotatePushLeft{to{opacity:0;transform:rotateY(90deg)}}@-webkit-keyframes rotatePushRight{to{opacity:0;-webkit-transform:rotateY(-90deg)}}@-moz-keyframes rotatePushRight{to{opacity:0;-moz-transform:rotateY(-90deg)}}@keyframes rotatePushRight{to{opacity:0;transform:rotateY(-90deg)}}@-webkit-keyframes rotatePushTop{to{opacity:0;-webkit-transform:rotateX(-90deg)}}@-moz-keyframes rotatePushTop{to{opacity:0;-moz-transform:rotateX(-90deg)}}@keyframes rotatePushTop{to{opacity:0;transform:rotateX(-90deg)}}@-webkit-keyframes rotatePushBottom{to{opacity:0;-webkit-transform:rotateX(90deg)}}@-moz-keyframes rotatePushBottom{to{opacity:0;-moz-transform:rotateX(90deg)}}@keyframes rotatePushBottom{to{opacity:0;transform:rotateX(90deg)}}@-webkit-keyframes rotatePullRight{from{opacity:0;-webkit-transform:rotateY(-90deg)}}@-moz-keyframes rotatePullRight{from{opacity:0;-moz-transform:rotateY(-90deg)}}@keyframes rotatePullRight{from{opacity:0;transform:rotateY(-90deg)}}@-webkit-keyframes rotatePullLeft{from{opacity:0;-webkit-transform:rotateY(90deg)}}@-moz-keyframes rotatePullLeft{from{opacity:0;-moz-transform:rotateY(90deg)}}@keyframes rotatePullLeft{from{opacity:0;transform:rotateY(90deg)}}@-webkit-keyframes rotatePullTop{from{opacity:0;-webkit-transform:rotateX(-90deg)}}@-moz-keyframes rotatePullTop{from{opacity:0;-moz-transform:rotateX(-90deg)}}@keyframes rotatePullTop{from{opacity:0;transform:rotateX(-90deg)}}@-webkit-keyframes rotatePullBottom{from{opacity:0;-webkit-transform:rotateX(90deg)}}@-moz-keyframes rotatePullBottom{from{opacity:0;-moz-transform:rotateX(90deg)}}@keyframes rotatePullBottom{from{opacity:0;transform:rotateX(90deg)}}@-webkit-keyframes rotateFoldRight{to{opacity:0;-webkit-transform:translateX(100%) rotateY(90deg)}}@-moz-keyframes rotateFoldRight{to{opacity:0;-moz-transform:translateX(100%) rotateY(90deg)}}@keyframes rotateFoldRight{to{opacity:0;transform:translateX(100%) rotateY(90deg)}}@-webkit-keyframes rotateFoldLeft{to{opacity:0;-webkit-transform:translateX(-100%) rotateY(-90deg)}}@-moz-keyframes rotateFoldLeft{to{opacity:0;-moz-transform:translateX(-100%) rotateY(-90deg)}}@keyframes rotateFoldLeft{to{opacity:0;transform:translateX(-100%) rotateY(-90deg)}}@-webkit-keyframes rotateFoldTop{to{opacity:0;-webkit-transform:translateY(-100%) rotateX(90deg)}}@-moz-keyframes rotateFoldTop{to{opacity:0;-moz-transform:translateY(-100%) rotateX(90deg)}}@keyframes rotateFoldTop{to{opacity:0;transform:translateY(-100%) rotateX(90deg)}}@-webkit-keyframes rotateFoldBottom{to{opacity:0;-webkit-transform:translateY(100%) rotateX(-90deg)}}@-moz-keyframes rotateFoldBottom{to{opacity:0;-moz-transform:translateY(100%) rotateX(-90deg)}}@keyframes rotateFoldBottom{to{opacity:0;transform:translateY(100%) rotateX(-90deg)}}@-webkit-keyframes rotateUnfoldLeft{from{opacity:0;-webkit-transform:translateX(-100%) rotateY(-90deg)}}@-moz-keyframes rotateUnfoldLeft{from{opacity:0;-moz-transform:translateX(-100%) rotateY(-90deg)}}@keyframes rotateUnfoldLeft{from{opacity:0;transform:translateX(-100%) rotateY(-90deg)}}@-webkit-keyframes rotateUnfoldRight{from{opacity:0;-webkit-transform:translateX(100%) rotateY(90deg)}}@-moz-keyframes rotateUnfoldRight{from{opacity:0;-moz-transform:translateX(100%) rotateY(90deg)}}@keyframes rotateUnfoldRight{from{opacity:0;transform:translateX(100%) rotateY(90deg)}}@-webkit-keyframes rotateUnfoldTop{from{opacity:0;-webkit-transform:translateY(-100%) rotateX(90deg)}}@-moz-keyframes rotateUnfoldTop{from{opacity:0;-moz-transform:translateY(-100%) rotateX(90deg)}}@keyframes rotateUnfoldTop{from{opacity:0;transform:translateY(-100%) rotateX(90deg)}}@-webkit-keyframes rotateUnfoldBottom{from{opacity:0;-webkit-transform:translateY(100%) rotateX(-90deg)}}@-moz-keyframes rotateUnfoldBottom{from{opacity:0;-moz-transform:translateY(100%) rotateX(-90deg)}}@keyframes rotateUnfoldBottom{from{opacity:0;transform:translateY(100%) rotateX(-90deg)}}@-webkit-keyframes rotateRoomLeftOut{to{opacity:.3;-webkit-transform:translateX(-100%) rotateY(90deg)}}@-moz-keyframes rotateRoomLeftOut{to{opacity:.3;-moz-transform:translateX(-100%) rotateY(90deg)}}@keyframes rotateRoomLeftOut{to{opacity:.3;transform:translateX(-100%) rotateY(90deg)}}@-webkit-keyframes rotateRoomLeftIn{from{opacity:.3;-webkit-transform:translateX(100%) rotateY(-90deg)}}@-moz-keyframes rotateRoomLeftIn{from{opacity:.3;-moz-transform:translateX(100%) rotateY(-90deg)}}@keyframes rotateRoomLeftIn{from{opacity:.3;transform:translateX(100%) rotateY(-90deg)}}@-webkit-keyframes rotateRoomRightOut{to{opacity:.3;-webkit-transform:translateX(100%) rotateY(-90deg)}}@-moz-keyframes rotateRoomRightOut{to{opacity:.3;-moz-transform:translateX(100%) rotateY(-90deg)}}@keyframes rotateRoomRightOut{to{opacity:.3;transform:translateX(100%) rotateY(-90deg)}}@-webkit-keyframes rotateRoomRightIn{from{opacity:.3;-webkit-transform:translateX(-100%) rotateY(90deg)}}@-moz-keyframes rotateRoomRightIn{from{opacity:.3;-moz-transform:translateX(-100%) rotateY(90deg)}}@keyframes rotateRoomRightIn{from{opacity:.3;transform:translateX(-100%) rotateY(90deg)}}@-webkit-keyframes rotateRoomTopOut{to{opacity:.3;-webkit-transform:translateY(-100%) rotateX(-90deg)}}@-moz-keyframes rotateRoomTopOut{to{opacity:.3;-moz-transform:translateY(-100%) rotateX(-90deg)}}@keyframes rotateRoomTopOut{to{opacity:.3;transform:translateY(-100%) rotateX(-90deg)}}@-webkit-keyframes rotateRoomTopIn{from{opacity:.3;-webkit-transform:translateY(100%) rotateX(90deg)}}@-moz-keyframes rotateRoomTopIn{from{opacity:.3;-moz-transform:translateY(100%) rotateX(90deg)}}@keyframes rotateRoomTopIn{from{opacity:.3;transform:translateY(100%) rotateX(90deg)}}@-webkit-keyframes rotateRoomBottomOut{to{opacity:.3;-webkit-transform:translateY(100%) rotateX(90deg)}}@-moz-keyframes rotateRoomBottomOut{to{opacity:.3;-moz-transform:translateY(100%) rotateX(90deg)}}@keyframes rotateRoomBottomOut{to{opacity:.3;transform:translateY(100%) rotateX(90deg)}}@-webkit-keyframes rotateRoomBottomIn{from{opacity:.3;-webkit-transform:translateY(-100%) rotateX(-90deg)}}@-moz-keyframes rotateRoomBottomIn{from{opacity:.3;-moz-transform:translateY(-100%) rotateX(-90deg)}}@keyframes rotateRoomBottomIn{from{opacity:.3;transform:translateY(-100%) rotateX(-90deg)}}@-webkit-keyframes rotateCubeLeftOut{50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}100%{opacity:.3;-webkit-transform:translateX(-100%) rotateY(-90deg)}}@-moz-keyframes rotateCubeLeftOut{50%{-moz-animation-timing-function:ease-out;-moz-transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}100%{opacity:.3;-moz-transform:translateX(-100%) rotateY(-90deg)}}@keyframes rotateCubeLeftOut{50%{animation-timing-function:ease-out;transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}100%{opacity:.3;transform:translateX(-100%) rotateY(-90deg)}}@-webkit-keyframes rotateCubeLeftIn{0%{opacity:.3;-webkit-transform:translateX(100%) rotateY(90deg)}50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateX(50%) translateZ(-200px) rotateY(45deg)}}@-moz-keyframes rotateCubeLeftIn{0%{opacity:.3;-moz-transform:translateX(100%) rotateY(90deg)}50%{-moz-animation-timing-function:ease-out;-moz-transform:translateX(50%) translateZ(-200px) rotateY(45deg)}}@keyframes rotateCubeLeftIn{0%{opacity:.3;transform:translateX(100%) rotateY(90deg)}50%{animation-timing-function:ease-out;transform:translateX(50%) translateZ(-200px) rotateY(45deg)}}@-webkit-keyframes rotateCubeRightOut{50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateX(50%) translateZ(-200px) rotateY(45deg)}100%{opacity:.3;-webkit-transform:translateX(100%) rotateY(90deg)}}@-moz-keyframes rotateCubeRightOut{50%{-moz-animation-timing-function:ease-out;-moz-transform:translateX(50%) translateZ(-200px) rotateY(45deg)}100%{opacity:.3;-moz-transform:translateX(100%) rotateY(90deg)}}@keyframes rotateCubeRightOut{50%{animation-timing-function:ease-out;transform:translateX(50%) translateZ(-200px) rotateY(45deg)}100%{opacity:.3;transform:translateX(100%) rotateY(90deg)}}@-webkit-keyframes rotateCubeRightIn{0%{opacity:.3;-webkit-transform:translateX(-100%) rotateY(-90deg)}50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}}@-moz-keyframes rotateCubeRightIn{0%{opacity:.3;-moz-transform:translateX(-100%) rotateY(-90deg)}50%{-moz-animation-timing-function:ease-out;-moz-transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}}@keyframes rotateCubeRightIn{0%{opacity:.3;transform:translateX(-100%) rotateY(-90deg)}50%{animation-timing-function:ease-out;transform:translateX(-50%) translateZ(-200px) rotateY(-45deg)}}@-webkit-keyframes rotateCubeTopOut{50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}100%{opacity:.3;-webkit-transform:translateY(-100%) rotateX(90deg)}}@-moz-keyframes rotateCubeTopOut{50%{-moz-animation-timing-function:ease-out;-moz-transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}100%{opacity:.3;-moz-transform:translateY(-100%) rotateX(90deg)}}@keyframes rotateCubeTopOut{50%{animation-timing-function:ease-out;transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}100%{opacity:.3;transform:translateY(-100%) rotateX(90deg)}}@-webkit-keyframes rotateCubeTopIn{0%{opacity:.3;-webkit-transform:translateY(100%) rotateX(-90deg)}50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}}@-moz-keyframes rotateCubeTopIn{0%{opacity:.3;-moz-transform:translateY(100%) rotateX(-90deg)}50%{-moz-animation-timing-function:ease-out;-moz-transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}}@keyframes rotateCubeTopIn{0%{opacity:.3;transform:translateY(100%) rotateX(-90deg)}50%{animation-timing-function:ease-out;transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}}@-webkit-keyframes rotateCubeBottomOut{50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}100%{opacity:.3;-webkit-transform:translateY(100%) rotateX(-90deg)}}@-moz-keyframes rotateCubeBottomOut{50%{-moz-animation-timing-function:ease-out;-moz-transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}100%{opacity:.3;-moz-transform:translateY(100%) rotateX(-90deg)}}@keyframes rotateCubeBottomOut{50%{animation-timing-function:ease-out;transform:translateY(50%) translateZ(-200px) rotateX(-45deg)}100%{opacity:.3;transform:translateY(100%) rotateX(-90deg)}}@-webkit-keyframes rotateCubeBottomIn{0%{opacity:.3;-webkit-transform:translateY(-100%) rotateX(90deg)}50%{-webkit-animation-timing-function:ease-out;-webkit-transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}}@-moz-keyframes rotateCubeBottomIn{0%{opacity:.3;-moz-transform:translateY(-100%) rotateX(90deg)}50%{-moz-animation-timing-function:ease-out;-moz-transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}}@keyframes rotateCubeBottomIn{0%{opacity:.3;transform:translateY(-100%) rotateX(90deg)}50%{animation-timing-function:ease-out;transform:translateY(-50%) translateZ(-200px) rotateX(45deg)}}@-webkit-keyframes rotateCarouselLeftOut{to{opacity:.3;-webkit-transform:translateX(-150%) scale(.4) rotateY(-65deg)}}@-moz-keyframes rotateCarouselLeftOut{to{opacity:.3;-moz-transform:translateX(-150%) scale(.4) rotateY(-65deg)}}@keyframes rotateCarouselLeftOut{to{opacity:.3;transform:translateX(-150%) scale(.4) rotateY(-65deg)}}@-webkit-keyframes rotateCarouselLeftIn{from{opacity:.3;-webkit-transform:translateX(200%) scale(.4) rotateY(65deg)}}@-moz-keyframes rotateCarouselLeftIn{from{opacity:.3;-moz-transform:translateX(200%) scale(.4) rotateY(65deg)}}@keyframes rotateCarouselLeftIn{from{opacity:.3;transform:translateX(200%) scale(.4) rotateY(65deg)}}@-webkit-keyframes rotateCarouselRightOut{to{opacity:.3;-webkit-transform:translateX(200%) scale(.4) rotateY(65deg)}}@-moz-keyframes rotateCarouselRightOut{to{opacity:.3;-moz-transform:translateX(200%) scale(.4) rotateY(65deg)}}@keyframes rotateCarouselRightOut{to{opacity:.3;transform:translateX(200%) scale(.4) rotateY(65deg)}}@-webkit-keyframes rotateCarouselRightIn{from{opacity:.3;-webkit-transform:translateX(-200%) scale(.4) rotateY(-65deg)}}@-moz-keyframes rotateCarouselRightIn{from{opacity:.3;-moz-transform:translateX(-200%) scale(.4) rotateY(-65deg)}}@keyframes rotateCarouselRightIn{from{opacity:.3;transform:translateX(-200%) scale(.4) rotateY(-65deg)}}@-webkit-keyframes rotateCarouselTopOut{to{opacity:.3;-webkit-transform:translateY(-200%) scale(.4) rotateX(65deg)}}@-moz-keyframes rotateCarouselTopOut{to{opacity:.3;-moz-transform:translateY(-200%) scale(.4) rotateX(65deg)}}@keyframes rotateCarouselTopOut{to{opacity:.3;transform:translateY(-200%) scale(.4) rotateX(65deg)}}@-webkit-keyframes rotateCarouselTopIn{from{opacity:.3;-webkit-transform:translateY(200%) scale(.4) rotateX(-65deg)}}@-moz-keyframes rotateCarouselTopIn{from{opacity:.3;-moz-transform:translateY(200%) scale(.4) rotateX(-65deg)}}@keyframes rotateCarouselTopIn{from{opacity:.3;transform:translateY(200%) scale(.4) rotateX(-65deg)}}@-webkit-keyframes rotateCarouselBottomOut{to{opacity:.3;-webkit-transform:translateY(200%) scale(.4) rotateX(-65deg)}}@-moz-keyframes rotateCarouselBottomOut{to{opacity:.3;-moz-transform:translateY(200%) scale(.4) rotateX(-65deg)}}@keyframes rotateCarouselBottomOut{to{opacity:.3;transform:translateY(200%) scale(.4) rotateX(-65deg)}}@-webkit-keyframes rotateCarouselBottomIn{from{opacity:.3;-webkit-transform:translateY(-200%) scale(.4) rotateX(65deg)}}@-moz-keyframes rotateCarouselBottomIn{from{opacity:.3;-moz-transform:translateY(-200%) scale(.4) rotateX(65deg)}}@keyframes rotateCarouselBottomIn{from{opacity:.3;transform:translateY(-200%) scale(.4) rotateX(65deg)}}@-webkit-keyframes rotateSidesOut{to{opacity:0;-webkit-transform:translateZ(-500px) rotateY(90deg)}}@-moz-keyframes rotateSidesOut{to{opacity:0;-moz-transform:translateZ(-500px) rotateY(90deg)}}@keyframes rotateSidesOut{to{opacity:0;transform:translateZ(-500px) rotateY(90deg)}}@-webkit-keyframes rotateSidesIn{from{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}}@-moz-keyframes rotateSidesIn{from{opacity:0;-moz-transform:translateZ(-500px) rotateY(-90deg)}}@keyframes rotateSidesIn{from{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}}@-webkit-keyframes rotateSidesOut2{to{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}}@-moz-keyframes rotateSidesOut2{to{opacity:0;-moz-transform:translateZ(-500px) rotateY(-90deg)}}@keyframes rotateSidesOut2{to{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}}@-webkit-keyframes rotateSidesIn2{from{opacity:0;-webkit-transform:translateZ(-500px) rotateY(90deg)}}@-moz-keyframes rotateSidesIn2{from{opacity:0;-moz-transform:translateZ(-500px) rotateY(90deg)}}@keyframes rotateSidesIn2{from{opacity:0;transform:translateZ(-500px) rotateY(90deg)}}@-webkit-keyframes rotateSlideOut{25%{opacity:.5;-webkit-transform:translateZ(-500px)}75%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(-200%)}}@-moz-keyframes rotateSlideOut{25%{opacity:.5;-moz-transform:translateZ(-500px)}75%{opacity:.5;-moz-transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;-moz-transform:translateZ(-500px) translateX(-200%)}}@keyframes rotateSlideOut{25%{opacity:.5;transform:translateZ(-500px)}75%{opacity:.5;transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;transform:translateZ(-500px) translateX(-200%)}}@-webkit-keyframes rotateSlideOut2{25%{opacity:.5;-webkit-transform:translateZ(-500px)}75%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(200%)}100%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(200%)}}@-moz-keyframes rotateSlideOut2{25%{opacity:.5;-moz-transform:translateZ(-500px)}75%{opacity:.5;-moz-transform:translateZ(-500px) translateX(200%)}100%{opacity:.5;-moz-transform:translateZ(-500px) translateX(200%)}}@keyframes rotateSlideOut2{25%{opacity:.5;transform:translateZ(-500px)}75%{opacity:.5;transform:translateZ(-500px) translateX(200%)}100%{opacity:.5;transform:translateZ(-500px) translateX(200%)}}@-webkit-keyframes rotateSlideIn{0%,25%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;-webkit-transform:translateZ(-500px)}100%{opacity:1;-webkit-transform:translateZ(0) translateX(0)}}@-moz-keyframes rotateSlideIn{0%,25%{opacity:.5;-moz-transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;-moz-transform:translateZ(-500px)}100%{opacity:1;-moz-transform:translateZ(0) translateX(0)}}@keyframes rotateSlideIn{0%,25%{opacity:.5;transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;transform:translateZ(-500px)}100%{opacity:1;transform:translateZ(0) translateX(0)}}@-webkit-keyframes rotateSlideIn2{0%,25%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(-200%)}75%{opacity:.5;-webkit-transform:translateZ(-500px)}100%{opacity:1;-webkit-transform:translateZ(0) translateX(0)}}@-moz-keyframes rotateSlideIn2{0%,25%{opacity:.5;-moz-transform:translateZ(-500px) translateX(-200%)}75%{opacity:.5;-moz-transform:translateZ(-500px)}100%{opacity:1;-moz-transform:translateZ(0) translateX(0)}}@keyframes rotateSlideIn2{0%,25%{opacity:.5;transform:translateZ(-500px) translateX(-200%)}75%{opacity:.5;transform:translateZ(-500px)}100%{opacity:1;transform:translateZ(0) translateX(0)}}.pt-page-delay100{-webkit-animation-delay:.1s;-moz-animation-delay:.1s;animation-delay:.1s}.pt-page-delay180{-webkit-animation-delay:.180s;-moz-animation-delay:.180s;animation-delay:.180s}.pt-page-delay200{-webkit-animation-delay:.2s;-moz-animation-delay:.2s;animation-delay:.2s}.pt-page-delay300{-webkit-animation-delay:.3s;-moz-animation-delay:.3s;animation-delay:.3s}.pt-page-delay400{-webkit-animation-delay:.4s;-moz-animation-delay:.4s;animation-delay:.4s}.pt-page-delay500{-webkit-animation-delay:.5s;-moz-animation-delay:.5s;animation-delay:.5s}.pt-page-delay700{-webkit-animation-delay:.7s;-moz-animation-delay:.7s;animation-delay:.7s}.pt-page-delay1000{-webkit-animation-delay:1s;-moz-animation-delay:1s;animation-delay:1s} diff --git a/gloam/WebRoot/css/font-awesome-ie7.min.css b/gloam/WebRoot/css/font-awesome-ie7.min.css new file mode 100644 index 0000000..ae30160 --- /dev/null +++ b/gloam/WebRoot/css/font-awesome-ie7.min.css @@ -0,0 +1,22 @@ +/*! + * Font Awesome 3.0.2 + * the iconic font designed for use with Twitter Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fortawesome.github.com/Font-Awesome/ + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + * Contact + * ------------------------------------------------------- + * Email: dave@davegandy.com + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */.icon-large{font-size:1.3333333333333333em;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;vertical-align:middle}.nav [class^="icon-"],.nav [class*=" icon-"]{vertical-align:inherit;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px}.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{vertical-align:-25%}.nav-pills [class^="icon-"].icon-large,.nav-tabs [class^="icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large{line-height:.75em;margin-top:-7px;padding-top:5px;margin-bottom:-5px;padding-bottom:4px}.btn [class^="icon-"].pull-left,.btn [class*=" icon-"].pull-left,.btn [class^="icon-"].pull-right,.btn [class*=" icon-"].pull-right{vertical-align:inherit}.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large{margin-top:-0.5em}a [class^="icon-"],a [class*=" icon-"]{cursor:pointer}ul.icons{text-indent:-1.5em;margin-left:3em}.icon-glass{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-music{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-search{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-envelope{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-heart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-star{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-star-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-user{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-film{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-th-large{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-th{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-th-list{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-ok{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-remove{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-zoom-in{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-zoom-out{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-off{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-signal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cog{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-trash{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-home{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-file{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-time{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-road{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-download-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-download{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-upload{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-inbox{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-play-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-repeat{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-refresh{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-list-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-lock{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-flag{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-headphones{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-volume-off{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-volume-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-volume-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-qrcode{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-barcode{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-tag{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-tags{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-book{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bookmark{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-print{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-camera{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-font{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bold{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-italic{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-text-height{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-text-width{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-align-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-align-center{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-align-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-align-justify{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-list{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-indent-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-indent-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-facetime-video{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-picture{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-pencil{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-map-marker{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-adjust{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-tint{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-edit{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-share{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-check{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-move{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-step-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-fast-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-play{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-pause{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-stop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-fast-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-step-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-eject{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-chevron-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-chevron-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-plus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-minus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-remove-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-ok-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-question-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-info-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-screenshot{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-remove-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-ok-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-ban-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-arrow-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-arrow-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-arrow-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-arrow-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-share-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-resize-full{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-resize-small{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-plus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-minus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-asterisk{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-exclamation-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-gift{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-leaf{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-fire{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-eye-open{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-eye-close{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-warning-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-plane{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-calendar{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-random{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-comment{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-magnet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-chevron-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-chevron-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-retweet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-shopping-cart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-folder-close{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-folder-open{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-resize-vertical{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-resize-horizontal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bar-chart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-twitter-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-facebook-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-camera-retro{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-key{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cogs{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-comments{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-thumbs-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-thumbs-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-star-half{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-heart-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-signout{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-linkedin-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-pushpin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-external-link{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-signin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-trophy{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-github-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-upload-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-lemon{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-phone{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-check-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bookmark-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-phone-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-twitter{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-facebook{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-github{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-unlock{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-credit-card{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-rss{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hdd{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bullhorn{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bell{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-certificate{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hand-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hand-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hand-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hand-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle-arrow-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle-arrow-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle-arrow-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle-arrow-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-globe{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-wrench{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-tasks{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-filter{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-briefcase{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-fullscreen{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-group{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-link{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cloud{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-beaker{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cut{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-copy{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-paper-clip{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-save{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-sign-blank{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-reorder{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-list-ul{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-list-ol{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-strikethrough{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-underline{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-table{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-magic{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-truck{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-pinterest{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-pinterest-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-google-plus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-google-plus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-money{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-caret-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-caret-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-caret-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-caret-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-columns{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-sort{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-sort-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-sort-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-envelope-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-linkedin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-undo{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-legal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-dashboard{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-comment-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-comments-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bolt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-sitemap{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-umbrella{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-paste{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-lightbulb{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-exchange{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cloud-download{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-cloud-upload{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-user-md{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-stethoscope{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-suitcase{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-bell-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-coffee{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-food{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-file-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-building{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-hospital{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-ambulance{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-medkit{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-fighter-jet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-beer{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-h-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-plus-sign-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-double-angle-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-double-angle-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-double-angle-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-double-angle-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-angle-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-angle-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-angle-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-angle-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-desktop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-laptop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-tablet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-mobile-phone{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle-blank{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-quote-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-quote-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-spinner{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-reply{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-github-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-folder-close-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')}.icon-folder-open-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '')} \ No newline at end of file diff --git a/gloam/WebRoot/css/font-awesome.min.css b/gloam/WebRoot/css/font-awesome.min.css new file mode 100644 index 0000000..ef0a2da --- /dev/null +++ b/gloam/WebRoot/css/font-awesome.min.css @@ -0,0 +1,34 @@ +/*! + * Font Awesome 3.0.2 + * the iconic font designed for use with Twitter Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fortawesome.github.com/Font-Awesome/ + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + * Contact + * ------------------------------------------------------- + * Email: dave@davegandy.com + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */ + +@font-face{ + font-family:'FontAwesome'; + src:url('../font/fontawesome-webfont-62877.eot'); + src:url('../font/fontawesome-webfont-0.eot#iefix&v=3.0.1') format('embedded-opentype'), + url('../font/fontawesome-webfont-62877.woff') format('woff'), + url('../font/fontawesome-webfont-62877.ttf') format('truetype'); + font-weight:normal; + font-style:normal } + +[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}a [class^="icon-"],a [class*=" icon-"]{display:inline-block}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}.btn [class^="icon-"],.nav [class^="icon-"],.btn [class*=" icon-"],.nav [class*=" icon-"]{display:inline}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}li [class^="icon-"],.nav li [class^="icon-"],li [class*=" icon-"],.nav li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center}li [class^="icon-"].icon-large,.nav li [class^="icon-"].icon-large,li [class*=" icon-"].icon-large,.nav li [class*=" icon-"].icon-large{width:1.5625em}ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="icon-"],ul.icons li [class*=" icon-"]{width:.75em}.icon-muted{color:#eee}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}@-moz-document url-prefix(){.icon-spin{height:.9em}.btn .icon-spin{height:auto}.icon-spin.icon-large{height:1.25em}.btn .icon-spin.icon-large{height:.75em}}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope-alt:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"} +/* Localized */ \ No newline at end of file diff --git a/gloam/WebRoot/css/fullcalendar.css b/gloam/WebRoot/css/fullcalendar.css new file mode 100644 index 0000000..9838e10 --- /dev/null +++ b/gloam/WebRoot/css/fullcalendar.css @@ -0,0 +1,624 @@ +/* + * FullCalendar v1.5.4 Stylesheet + * + * Copyright (c) 2011 Adam Shaw + * Dual licensed under the MIT and GPL licenses, located in + * MIT-LICENSE.txt and GPL-LICENSE.txt respectively. + * + * Date: Tue Sep 4 23:38:33 2012 -0700 + * + */ + + +.fc { + direction: ltr; + text-align: left; + } + +.fc table { + border-collapse: collapse; + border-spacing: 0; + } + +html .fc, +.fc table { + font-size: 1em; + } + +.fc td, +.fc th { + padding: 0; + vertical-align: top; + } + + + +/* Header +------------------------------------------------------------------------*/ + +.fc-header td { + white-space: nowrap; + } + +.fc-header-left { + width: 25%; + text-align: left; + } + +.fc-header-center { + text-align: center; + } + +.fc-header-right { + width: 25%; + text-align: right; + } + +.fc-header-title { + display: inline-block; + vertical-align: top; + } + +.fc-header-title h2 { + margin-top: 0; + white-space: nowrap; + } + +.fc .fc-header-space { + padding-left: 10px; + } + +.fc-header .fc-button { + margin-bottom: 1em; + vertical-align: top; + } + +/* buttons edges butting together */ + +.fc-header .fc-button { + margin-right: -1px; + } + +.fc-header .fc-corner-right { + margin-right: 1px; /* back to normal */ + } + +.fc-header .ui-corner-right { + margin-right: 0; /* back to normal */ + } + +/* button layering (for border precedence) */ + +.fc-header .fc-state-hover, +.fc-header .ui-state-hover { + z-index: 2; + } + +.fc-header .fc-state-down { + z-index: 3; + } + +.fc-header .fc-state-active, +.fc-header .ui-state-active { + z-index: 4; + } + + + +/* Content +------------------------------------------------------------------------*/ + +.fc-content { + clear: both; + } + +.fc-view { + width: 100%; /* needed for view switching (when view is absolute) */ + overflow: hidden; + } + + + +/* Cell Styles +------------------------------------------------------------------------*/ + +.fc-widget-header { + background-image: -moz-linear-gradient(top, #fafafa, #efefef); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fafafa), to(#efefef)); + background-image: -webkit-linear-gradient(top, #fafafa, #efefef); + background-image: -o-linear-gradient(top, #fafafa, #efefef); + background-image: linear-gradient(to bottom, #fafafa, #efefef); + color: #646464; +} + +.fc-widget-header, /* , usually */ +.fc-widget-content { /* , usually */ + border: 1px solid #ddd; + color: #646464; +} + +.fc-state-highlight { /* today cell */ /* TODO: add .fc-today to */ + background: #fff; + } + +.fc-cell-overlay { /* semi-transparent rectangle while dragging */ + background: #9cf; + opacity: .2; + filter: alpha(opacity=20); /* for IE */ + } + + + +/* Buttons +------------------------------------------------------------------------*/ + +.fc-button { + position: relative; + display: inline-block; + cursor: pointer; + margin-top: -46px; + } + +.fc-state-default { /* non-theme */ + border-style: solid; + border-width: 1px 0; + } + +.fc-button-inner { + position: relative; + float: left; + overflow: hidden; + padding: 7px 7px 6px 7px; + + } + +.fc-state-default .fc-button-inner { /* non-theme */ + border-style: solid; + border-width: 0 1px; + } + +.fc-button-content { + position: relative; + float: left; + height: 1.6em; + line-height: 1.6em; + padding: 0 .6em; + white-space: nowrap; + } + +/* icon (for jquery ui) */ + +.fc-button-content .fc-icon-wrap { + position: relative; + float: left; + top: 50%; + } + +.fc-button-content .ui-icon { + position: relative; + float: left; + margin-top: -50%; + *margin-top: 0; + *top: -50%; + } + +/* gloss effect */ + +.fc-state-default .fc-button-effect { + position: absolute; + top: 50%; + left: 0; + } + +.fc-state-default .fc-button-effect span { + + } + +/* button states (determines colors) */ + +.fc-state-default, +.fc-state-default .fc-button-inner { + border-top-style: none; + border-bottom-style: none; + border-left-style: solid; + border-right-style: solid; + border-color: #eee; + background: transparent; + color: #646464; + } + +.fc-state-hover, +.fc-state-hover .fc-button-inner { + border-color: #eee; + background: #fafafa; + } + +.fc-state-down, +.fc-state-down .fc-button-inner { + border-color: #eee; + background: transparent; + } + +.fc-state-active, +.fc-state-active .fc-button-inner { + border-color: #eee; + background: #fff; + color: #646464; + border-bottom: 1px solid #fff; + } + +.fc-state-disabled, +.fc-state-disabled .fc-button-inner { + color: #999; + border-color: #eee; + } + +.fc-state-disabled { + cursor: default; + } + +.fc-state-disabled .fc-button-effect { + display: none; + } + + + +/* Global Event Styles +------------------------------------------------------------------------*/ + +.fc-event { + border-style: solid; + border-width: 0; + font-size: .85em; + cursor: default; + } + +a.fc-event, +.fc-event-draggable { + cursor: pointer; + } + +a.fc-event { + text-decoration: none; + } + +.fc-rtl .fc-event { + text-align: right; + } + +.fc-event-skin { + border-color: #2FABE9; /* default BORDER color */ + background-color: #67C2EF; /* default BACKGROUND color */ + color: #fff; /* default TEXT color */ + } + +.fc-event-inner { + position: relative; + width: 100%; + height: 100%; + border-style: solid; + border-width: 0; + overflow: hidden; + } + +.fc-event-time, +.fc-event-title { + padding: 0 1px; + } + +.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/ + display: block; + position: absolute; + z-index: 99999; + overflow: hidden; /* hacky spaces (IE6/7) */ + font-size: 300%; /* */ + line-height: 50%; /* */ + } + + + +/* Horizontal Events +------------------------------------------------------------------------*/ + +.fc-event-hori { + border-width: 1px 0; + margin-bottom: 1px; + } + +/* resizable */ + +.fc-event-hori .ui-resizable-e { + top: 0 !important; /* importants override pre jquery ui 1.7 styles */ + right: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: e-resize; + } + +.fc-event-hori .ui-resizable-w { + top: 0 !important; + left: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: w-resize; + } + +.fc-event-hori .ui-resizable-handle { + _padding-bottom: 14px; /* IE6 had 0 height */ + } + + + +/* Fake Rounded Corners (for buttons and events) +------------------------------------------------------------*/ + +.fc-corner-left { + margin-left: 1px; + } + +.fc-corner-left .fc-button-inner, +.fc-corner-left .fc-event-inner { + margin-left: -1px; + } + +.fc-corner-right { + margin-right: 1px; + } + +.fc-corner-right .fc-button-inner, +.fc-corner-right .fc-event-inner { + margin-right: -1px; + } + +.fc-corner-top { + margin-top: 1px; + } + +.fc-corner-top .fc-event-inner { + margin-top: -1px; + } + +.fc-corner-bottom { + margin-bottom: 1px; + } + +.fc-corner-bottom .fc-event-inner { + margin-bottom: -1px; + } + + + +/* Fake Rounded Corners SPECIFICALLY FOR EVENTS +-----------------------------------------------------------------*/ + +.fc-corner-left .fc-event-inner { + border-left-width: 1px; + } + +.fc-corner-right .fc-event-inner { + border-right-width: 1px; + } + +.fc-corner-top .fc-event-inner { + border-top-width: 1px; + } + +.fc-corner-bottom .fc-event-inner { + border-bottom-width: 1px; + } + + + +/* Reusable Separate-border Table +------------------------------------------------------------*/ + +table.fc-border-separate { + border-collapse: separate; + } + +.fc-border-separate th, +.fc-border-separate td { + border-width: 1px 0 0 1px; + } + +.fc-border-separate th.fc-last, +.fc-border-separate td.fc-last { + border-right-width: 1px; + } + +.fc-border-separate tr.fc-last th, +.fc-border-separate tr.fc-last td { + border-bottom-width: 1px; + } + +.fc-border-separate tbody tr.fc-first td, +.fc-border-separate tbody tr.fc-first th { + border-top-width: 0; + } + + + +/* Month View, Basic Week View, Basic Day View +------------------------------------------------------------------------*/ + +.fc-grid th { + text-align: center; + } + +.fc-grid .fc-day-number { + float: right; + padding: 0 2px; + } + +.fc-grid .fc-other-month .fc-day-number { + opacity: 0.3; + filter: alpha(opacity=30); /* for IE */ + /* opacity with small font can sometimes look too faded + might want to set the 'color' property instead + making day-numbers bold also fixes the problem */ + } + +.fc-grid .fc-day-content { + clear: both; + padding: 2px 2px 1px; /* distance between events and day edges */ + } + +/* event styles */ + +.fc-grid .fc-event-time { + font-weight: bold; + } + +/* right-to-left */ + +.fc-rtl .fc-grid .fc-day-number { + float: left; + } + +.fc-rtl .fc-grid .fc-event-time { + float: right; + } + + + +/* Agenda Week View, Agenda Day View +------------------------------------------------------------------------*/ + +.fc-agenda table { + border-collapse: separate; + } + +.fc-agenda-days th { + text-align: center; + } + +.fc-agenda .fc-agenda-axis { + width: 50px; + padding: 0 4px; + vertical-align: middle; + text-align: right; + white-space: nowrap; + font-weight: normal; + } + +.fc-agenda .fc-day-content { + padding: 2px 2px 1px; + } + +/* make axis border take precedence */ + +.fc-agenda-days .fc-agenda-axis { + border-right-width: 1px; + } + +.fc-agenda-days .fc-col0 { + border-left-width: 0; + } + +/* all-day area */ + +.fc-agenda-allday th { + border-width: 0 1px; + } + +.fc-agenda-allday .fc-day-content { + min-height: 34px; /* TODO: doesnt work well in quirksmode */ + _height: 34px; + } + +/* divider (between all-day and slots) */ + +.fc-agenda-divider-inner { + height: 2px; + overflow: hidden; + } + +.fc-widget-header .fc-agenda-divider-inner { + background: #eee; + } + +/* slot rows */ + +.fc-agenda-slots th { + border-width: 1px 1px; + } + +.fc-agenda-slots td { + border-width: 1px 0 0; + background: none; + } + +.fc-agenda-slots td div { + height: 20px; + } + +.fc-agenda-slots tr.fc-slot0 th, +.fc-agenda-slots tr.fc-slot0 td { + border-top-width: 0; + } + +.fc-agenda-slots tr.fc-minor th, +.fc-agenda-slots tr.fc-minor td { + border-top-style: dotted; + } + +.fc-agenda-slots tr.fc-minor th.ui-widget-header { + *border-top-style: solid; /* doesn't work with background in IE6/7 */ + } + + + +/* Vertical Events +------------------------------------------------------------------------*/ + +.fc-event-vert { + border-width: 0 1px; + } + +.fc-event-vert .fc-event-head, +.fc-event-vert .fc-event-content { + position: relative; + z-index: 2; + width: 100%; + overflow: hidden; + } + +.fc-event-vert .fc-event-time { + white-space: nowrap; + font-size: 10px; + } + +.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #fff; + opacity: .3; + filter: alpha(opacity=30); + } + +.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ +.fc-select-helper .fc-event-bg { + display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ + } + +/* resizable */ + +.fc-event-vert .ui-resizable-s { + bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ + width: 100% !important; + height: 8px !important; + overflow: hidden !important; + line-height: 8px !important; + font-size: 11px !important; + font-family: monospace; + text-align: center; + cursor: s-resize; + } + +.fc-agenda .ui-resizable-resizing { /* TODO: better selector */ + _overflow: hidden; + } \ No newline at end of file diff --git a/gloam/WebRoot/css/glyphicons.css b/gloam/WebRoot/css/glyphicons.css new file mode 100644 index 0000000..147d39c --- /dev/null +++ b/gloam/WebRoot/css/glyphicons.css @@ -0,0 +1,2577 @@ +html, +html .halflings { + -webkit-font-smoothing: antialiased !important; +} +@font-face { + font-family: 'Glyphicons'; + src: url('../font/glyphicons-regular.eot'); + src: url('../font/glyphicons-regular-0.eot#iefix') format('embedded-opentype'), url('../font/glyphicons-regular.woff') format('woff'), url('../font/glyphicons-regular.ttf') format('truetype'), url('../font/glyphicons-regular.svg#glyphicons_halflingsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.glyphicons { + display: inline-block; + position: relative; + padding: 5px 0 5px 35px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; +} +.glyphicons i:before { + position: absolute; + left: 0; + top: 0; + font: 24px/1em 'Glyphicons'; + font-style: normal; + color: #1d1d1b; +} +.glyphicons.white i:before { + color: #fff; +} +.glyphicons.glass i:before { + content: "\e001"; +} +.glyphicons.leaf i:before { + content: "\e002"; +} +.glyphicons.dog i:before { + content: "\e003"; +} +.glyphicons.user i:before { + content: "\e004"; +} +.glyphicons.girl i:before { + content: "\e005"; +} +.glyphicons.car i:before { + content: "\e006"; +} +.glyphicons.user_add i:before { + content: "\e007"; +} +.glyphicons.user_remove i:before { + content: "\e008"; +} +.glyphicons.film i:before { + content: "\e009"; +} +.glyphicons.magic i:before { + content: "\e010"; +} +.glyphicons.envelope i:before { + content: "\2709"; +} +.glyphicons.camera i:before { + content: "\e012"; +} +.glyphicons.heart i:before { + content: "\e013"; +} +.glyphicons.beach_umbrella i:before { + content: "\e014"; +} +.glyphicons.train i:before { + content: "\e015"; +} +.glyphicons.print i:before { + content: "\e016"; +} +.glyphicons.bin i:before { + content: "\e017"; +} +.glyphicons.music i:before { + content: "\e018"; +} +.glyphicons.note i:before { + content: "\e019"; +} +.glyphicons.heart_empty i:before { + content: "\e020"; +} +.glyphicons.home i:before { + content: "\e021"; +} +.glyphicons.snowflake i:before { + content: "\2744"; +} +.glyphicons.fire i:before { + content: "\e023"; +} +.glyphicons.magnet i:before { + content: "\e024"; +} +.glyphicons.parents i:before { + content: "\e025"; +} +.glyphicons.binoculars i:before { + content: "\e026"; +} +.glyphicons.road i:before { + content: "\e027"; +} +.glyphicons.search i:before { + content: "\e028"; +} +.glyphicons.cars i:before { + content: "\e029"; +} +.glyphicons.notes_2 i:before { + content: "\e030"; +} +.glyphicons.pencil i:before { + content: "\270F"; +} +.glyphicons.bus i:before { + content: "\e032"; +} +.glyphicons.wifi_alt i:before { + content: "\e033"; +} +.glyphicons.luggage i:before { + content: "\e034"; +} +.glyphicons.old_man i:before { + content: "\e035"; +} +.glyphicons.woman i:before { + content: "\e036"; +} +.glyphicons.file i:before { + content: "\e037"; +} +.glyphicons.coins i:before { + content: "\e038"; +} +.glyphicons.airplane i:before { + content: "\2708"; +} +.glyphicons.notes i:before { + content: "\e040"; +} +.glyphicons.stats i:before { + content: "\e041"; +} +.glyphicons.charts i:before { + content: "\e042"; +} +.glyphicons.pie_chart i:before { + content: "\e043"; +} +.glyphicons.group i:before { + content: "\e044"; +} +.glyphicons.keys i:before { + content: "\e045"; +} +.glyphicons.calendar i:before { + content: "\e046"; +} +.glyphicons.router i:before { + content: "\e047"; +} +.glyphicons.camera_small i:before { + content: "\e048"; +} +.glyphicons.dislikes i:before { + content: "\e049"; +} +.glyphicons.star i:before { + content: "\e050"; +} +.glyphicons.link i:before { + content: "\e051"; +} +.glyphicons.eye_open i:before { + content: "\e052"; +} +.glyphicons.eye_close i:before { + content: "\e053"; +} +.glyphicons.alarm i:before { + content: "\e054"; +} +.glyphicons.clock i:before { + content: "\e055"; +} +.glyphicons.stopwatch i:before { + content: "\e056"; +} +.glyphicons.projector i:before { + content: "\e057"; +} +.glyphicons.history i:before { + content: "\e058"; +} +.glyphicons.truck i:before { + content: "\e059"; +} +.glyphicons.cargo i:before { + content: "\e060"; +} +.glyphicons.compass i:before { + content: "\e061"; +} +.glyphicons.keynote i:before { + content: "\e062"; +} +.glyphicons.paperclip i:before { + content: "\e063"; +} +.glyphicons.power i:before { + content: "\e064"; +} +.glyphicons.lightbulb i:before { + content: "\e065"; +} +.glyphicons.tag i:before { + content: "\e066"; +} +.glyphicons.tags i:before { + content: "\e067"; +} +.glyphicons.cleaning i:before { + content: "\e068"; +} +.glyphicons.ruller i:before { + content: "\e069"; +} +.glyphicons.gift i:before { + content: "\e070"; +} +.glyphicons.umbrella i:before { + content: "\2602"; +} +.glyphicons.book i:before { + content: "\e072"; +} +.glyphicons.bookmark i:before { + content: "\e073"; +} +.glyphicons.wifi i:before { + content: "\e074"; +} +.glyphicons.cup i:before { + content: "\e075"; +} +.glyphicons.stroller i:before { + content: "\e076"; +} +.glyphicons.headphones i:before { + content: "\e077"; +} +.glyphicons.headset i:before { + content: "\e078"; +} +.glyphicons.warning_sign i:before { + content: "\e079"; +} +.glyphicons.signal i:before { + content: "\e080"; +} +.glyphicons.retweet i:before { + content: "\e081"; +} +.glyphicons.refresh i:before { + content: "\e082"; +} +.glyphicons.roundabout i:before { + content: "\e083"; +} +.glyphicons.random i:before { + content: "\e084"; +} +.glyphicons.heat i:before { + content: "\e085"; +} +.glyphicons.repeat i:before { + content: "\e086"; +} +.glyphicons.display i:before { + content: "\e087"; +} +.glyphicons.log_book i:before { + content: "\e088"; +} +.glyphicons.adress_book i:before { + content: "\e089"; +} +.glyphicons.building i:before { + content: "\e090"; +} +.glyphicons.eyedropper i:before { + content: "\e091"; +} +.glyphicons.adjust i:before { + content: "\e092"; +} +.glyphicons.tint i:before { + content: "\e093"; +} +.glyphicons.crop i:before { + content: "\e094"; +} +.glyphicons.vector_path_square i:before { + content: "\e095"; +} +.glyphicons.vector_path_circle i:before { + content: "\e096"; +} +.glyphicons.vector_path_polygon i:before { + content: "\e097"; +} +.glyphicons.vector_path_line i:before { + content: "\e098"; +} +.glyphicons.vector_path_curve i:before { + content: "\e099"; +} +.glyphicons.vector_path_all i:before { + content: "\e100"; +} +.glyphicons.font i:before { + content: "\e101"; +} +.glyphicons.italic i:before { + content: "\e102"; +} +.glyphicons.bold i:before { + content: "\e103"; +} +.glyphicons.text_underline i:before { + content: "\e104"; +} +.glyphicons.text_strike i:before { + content: "\e105"; +} +.glyphicons.text_height i:before { + content: "\e106"; +} +.glyphicons.text_width i:before { + content: "\e107"; +} +.glyphicons.text_resize i:before { + content: "\e108"; +} +.glyphicons.left_indent i:before { + content: "\e109"; +} +.glyphicons.right_indent i:before { + content: "\e110"; +} +.glyphicons.align_left i:before { + content: "\e111"; +} +.glyphicons.align_center i:before { + content: "\e112"; +} +.glyphicons.align_right i:before { + content: "\e113"; +} +.glyphicons.justify i:before { + content: "\e114"; +} +.glyphicons.list i:before { + content: "\e115"; +} +.glyphicons.text_smaller i:before { + content: "\e116"; +} +.glyphicons.text_bigger i:before { + content: "\e117"; +} +.glyphicons.embed i:before { + content: "\e118"; +} +.glyphicons.embed_close i:before { + content: "\e119"; +} +.glyphicons.table i:before { + content: "\e120"; +} +.glyphicons.message_full i:before { + content: "\e121"; +} +.glyphicons.message_empty i:before { + content: "\e122"; +} +.glyphicons.message_in i:before { + content: "\e123"; +} +.glyphicons.message_out i:before { + content: "\e124"; +} +.glyphicons.message_plus i:before { + content: "\e125"; +} +.glyphicons.message_minus i:before { + content: "\e126"; +} +.glyphicons.message_ban i:before { + content: "\e127"; +} +.glyphicons.message_flag i:before { + content: "\e128"; +} +.glyphicons.message_lock i:before { + content: "\e129"; +} +.glyphicons.message_new i:before { + content: "\e130"; +} +.glyphicons.inbox i:before { + content: "\e131"; +} +.glyphicons.inbox_plus i:before { + content: "\e132"; +} +.glyphicons.inbox_minus i:before { + content: "\e133"; +} +.glyphicons.inbox_lock i:before { + content: "\e134"; +} +.glyphicons.inbox_in i:before { + content: "\e135"; +} +.glyphicons.inbox_out i:before { + content: "\e136"; +} +.glyphicons.cogwheel i:before { + content: "\e137"; +} +.glyphicons.cogwheels i:before { + content: "\e138"; +} +.glyphicons.picture i:before { + content: "\e139"; +} +.glyphicons.adjust_alt i:before { + content: "\e140"; +} +.glyphicons.database_lock i:before { + content: "\e141"; +} +.glyphicons.database_plus i:before { + content: "\e142"; +} +.glyphicons.database_minus i:before { + content: "\e143"; +} +.glyphicons.database_ban i:before { + content: "\e144"; +} +.glyphicons.folder_open i:before { + content: "\e145"; +} +.glyphicons.folder_plus i:before { + content: "\e146"; +} +.glyphicons.folder_minus i:before { + content: "\e147"; +} +.glyphicons.folder_lock i:before { + content: "\e148"; +} +.glyphicons.folder_flag i:before { + content: "\e149"; +} +.glyphicons.folder_new i:before { + content: "\e150"; +} +.glyphicons.edit i:before { + content: "\e151"; +} +.glyphicons.new_window i:before { + content: "\e152"; +} +.glyphicons.check i:before { + content: "\e153"; +} +.glyphicons.unchecked i:before { + content: "\e154"; +} +.glyphicons.more_windows i:before { + content: "\e155"; +} +.glyphicons.show_big_thumbnails i:before { + content: "\e156"; +} +.glyphicons.show_thumbnails i:before { + content: "\e157"; +} +.glyphicons.show_thumbnails_with_lines i:before { + content: "\e158"; +} +.glyphicons.show_lines i:before { + content: "\e159"; +} +.glyphicons.playlist i:before { + content: "\e160"; +} +.glyphicons.imac i:before { + content: "\e161"; +} +.glyphicons.macbook i:before { + content: "\e162"; +} +.glyphicons.ipad i:before { + content: "\e163"; +} +.glyphicons.iphone i:before { + content: "\e164"; +} +.glyphicons.iphone_transfer i:before { + content: "\e165"; +} +.glyphicons.iphone_exchange i:before { + content: "\e166"; +} +.glyphicons.ipod i:before { + content: "\e167"; +} +.glyphicons.ipod_shuffle i:before { + content: "\e168"; +} +.glyphicons.ear_plugs i:before { + content: "\e169"; +} +.glyphicons.phone i:before { + content: "\e170"; +} +.glyphicons.step_backward i:before { + content: "\e171"; +} +.glyphicons.fast_backward i:before { + content: "\e172"; +} +.glyphicons.rewind i:before { + content: "\e173"; +} +.glyphicons.play i:before { + content: "\e174"; +} +.glyphicons.pause i:before { + content: "\e175"; +} +.glyphicons.stop i:before { + content: "\e176"; +} +.glyphicons.forward i:before { + content: "\e177"; +} +.glyphicons.fast_forward i:before { + content: "\e178"; +} +.glyphicons.step_forward i:before { + content: "\e179"; +} +.glyphicons.eject i:before { + content: "\e180"; +} +.glyphicons.facetime_video i:before { + content: "\e181"; +} +.glyphicons.download_alt i:before { + content: "\e182"; +} +.glyphicons.mute i:before { + content: "\e183"; +} +.glyphicons.volume_down i:before { + content: "\e184"; +} +.glyphicons.volume_up i:before { + content: "\e185"; +} +.glyphicons.screenshot i:before { + content: "\e186"; +} +.glyphicons.move i:before { + content: "\e187"; +} +.glyphicons.more i:before { + content: "\e188"; +} +.glyphicons.brightness_reduce i:before { + content: "\e189"; +} +.glyphicons.brightness_increase i:before { + content: "\e190"; +} +.glyphicons.circle_plus i:before { + content: "\e191"; +} +.glyphicons.circle_minus i:before { + content: "\e192"; +} +.glyphicons.circle_remove i:before { + content: "\e193"; +} +.glyphicons.circle_ok i:before { + content: "\e194"; +} +.glyphicons.circle_question_mark i:before { + content: "\e195"; +} +.glyphicons.circle_info i:before { + content: "\e196"; +} +.glyphicons.circle_exclamation_mark i:before { + content: "\e197"; +} +.glyphicons.remove i:before { + content: "\e198"; +} +.glyphicons.ok i:before { + content: "\e199"; +} +.glyphicons.ban i:before { + content: "\e200"; +} +.glyphicons.download i:before { + content: "\e201"; +} +.glyphicons.upload i:before { + content: "\e202"; +} +.glyphicons.shopping_cart i:before { + content: "\e203"; +} +.glyphicons.lock i:before { + content: "\e204"; +} +.glyphicons.unlock i:before { + content: "\e205"; +} +.glyphicons.electricity i:before { + content: "\e206"; +} +.glyphicons.ok_2 i:before { + content: "\e207"; +} +.glyphicons.remove_2 i:before { + content: "\e208"; +} +.glyphicons.cart_out i:before { + content: "\e209"; +} +.glyphicons.cart_in i:before { + content: "\e210"; +} +.glyphicons.left_arrow i:before { + content: "\e211"; +} +.glyphicons.right_arrow i:before { + content: "\e212"; +} +.glyphicons.down_arrow i:before { + content: "\e213"; +} +.glyphicons.up_arrow i:before { + content: "\e214"; +} +.glyphicons.resize_small i:before { + content: "\e215"; +} +.glyphicons.resize_full i:before { + content: "\e216"; +} +.glyphicons.circle_arrow_left i:before { + content: "\e217"; +} +.glyphicons.circle_arrow_right i:before { + content: "\e218"; +} +.glyphicons.circle_arrow_top i:before { + content: "\e219"; +} +.glyphicons.circle_arrow_down i:before { + content: "\e220"; +} +.glyphicons.play_button i:before { + content: "\e221"; +} +.glyphicons.unshare i:before { + content: "\e222"; +} +.glyphicons.share i:before { + content: "\e223"; +} +.glyphicons.chevron-right i:before { + content: "\e224"; +} +.glyphicons.chevron-left i:before { + content: "\e225"; +} +.glyphicons.bluetooth i:before { + content: "\e226"; +} +.glyphicons.euro i:before { + content: "\20AC"; +} +.glyphicons.usd i:before { + content: "\e228"; +} +.glyphicons.gbp i:before { + content: "\e229"; +} +.glyphicons.retweet_2 i:before { + content: "\e230"; +} +.glyphicons.moon i:before { + content: "\e231"; +} +.glyphicons.sun i:before { + content: "\2609"; +} +.glyphicons.cloud i:before { + content: "\2601"; +} +.glyphicons.direction i:before { + content: "\e234"; +} +.glyphicons.brush i:before { + content: "\e235"; +} +.glyphicons.pen i:before { + content: "\e236"; +} +.glyphicons.zoom_in i:before { + content: "\e237"; +} +.glyphicons.zoom_out i:before { + content: "\e238"; +} +.glyphicons.pin i:before { + content: "\e239"; +} +.glyphicons.albums i:before { + content: "\e240"; +} +.glyphicons.rotation_lock i:before { + content: "\e241"; +} +.glyphicons.flash i:before { + content: "\e242"; +} +.glyphicons.google_maps i:before { + content: "\e243"; +} +.glyphicons.anchor i:before { + content: "\2693"; +} +.glyphicons.conversation i:before { + content: "\e245"; +} +.glyphicons.chat i:before { + content: "\e246"; +} +.glyphicons.male i:before { + content: "\e247"; +} +.glyphicons.female i:before { + content: "\e248"; +} +.glyphicons.asterisk i:before { + content: "\002A"; +} +.glyphicons.divide i:before { + content: "\00F7"; +} +.glyphicons.snorkel_diving i:before { + content: "\e251"; +} +.glyphicons.scuba_diving i:before { + content: "\e252"; +} +.glyphicons.oxygen_bottle i:before { + content: "\e253"; +} +.glyphicons.fins i:before { + content: "\e254"; +} +.glyphicons.fishes i:before { + content: "\e255"; +} +.glyphicons.boat i:before { + content: "\e256"; +} +.glyphicons.delete i:before { + content: "\e257"; +} +.glyphicons.sheriffs_star i:before { + content: "\e258"; +} +.glyphicons.qrcode i:before { + content: "\e259"; +} +.glyphicons.barcode i:before { + content: "\e260"; +} +.glyphicons.pool i:before { + content: "\e261"; +} +.glyphicons.buoy i:before { + content: "\e262"; +} +.glyphicons.spade i:before { + content: "\e263"; +} +.glyphicons.bank i:before { + content: "\e264"; +} +.glyphicons.vcard i:before { + content: "\e265"; +} +.glyphicons.electrical_plug i:before { + content: "\e266"; +} +.glyphicons.flag i:before { + content: "\e267"; +} +.glyphicons.credit_card i:before { + content: "\e268"; +} +.glyphicons.keyboard-wireless i:before { + content: "\e269"; +} +.glyphicons.keyboard-wired i:before { + content: "\e270"; +} +.glyphicons.shield i:before { + content: "\e271"; +} +.glyphicons.ring i:before { + content: "\02DA"; +} +.glyphicons.cake i:before { + content: "\e273"; +} +.glyphicons.drink i:before { + content: "\e274"; +} +.glyphicons.beer i:before { + content: "\e275"; +} +.glyphicons.fast_food i:before { + content: "\e276"; +} +.glyphicons.cutlery i:before { + content: "\e277"; +} +.glyphicons.pizza i:before { + content: "\e278"; +} +.glyphicons.birthday_cake i:before { + content: "\e279"; +} +.glyphicons.tablet i:before { + content: "\e280"; +} +.glyphicons.settings i:before { + content: "\e281"; +} +.glyphicons.bullets i:before { + content: "\e282"; +} +.glyphicons.cardio i:before { + content: "\e283"; +} +.glyphicons.t-shirt i:before { + content: "\e284"; +} +.glyphicons.pants i:before { + content: "\e285"; +} +.glyphicons.sweater i:before { + content: "\e286"; +} +.glyphicons.fabric i:before { + content: "\e287"; +} +.glyphicons.leather i:before { + content: "\e288"; +} +.glyphicons.scissors i:before { + content: "\e289"; +} +.glyphicons.bomb i:before { + content: "\e290"; +} +.glyphicons.skull i:before { + content: "\e291"; +} +.glyphicons.celebration i:before { + content: "\e292"; +} +.glyphicons.tea_kettle i:before { + content: "\e293"; +} +.glyphicons.french_press i:before { + content: "\e294"; +} +.glyphicons.coffe_cup i:before { + content: "\e295"; +} +.glyphicons.pot i:before { + content: "\e296"; +} +.glyphicons.grater i:before { + content: "\e297"; +} +.glyphicons.kettle i:before { + content: "\e298"; +} +.glyphicons.hospital i:before { + content: "\e299"; +} +.glyphicons.hospital_h i:before { + content: "\e300"; +} +.glyphicons.microphone i:before { + content: "\e301"; +} +.glyphicons.webcam i:before { + content: "\e302"; +} +.glyphicons.temple_christianity_church i:before { + content: "\e303"; +} +.glyphicons.temple_islam i:before { + content: "\e304"; +} +.glyphicons.temple_hindu i:before { + content: "\e305"; +} +.glyphicons.temple_buddhist i:before { + content: "\e306"; +} +.glyphicons.bicycle i:before { + content: "\e307"; +} +.glyphicons.life_preserver i:before { + content: "\e308"; +} +.glyphicons.share_alt i:before { + content: "\e309"; +} +.glyphicons.comments i:before { + content: "\e310"; +} +.glyphicons.flower i:before { + content: "\2698"; +} +.glyphicons.baseball i:before { + content: "\e312"; +} +.glyphicons.rugby i:before { + content: "\e313"; +} +.glyphicons.ax i:before { + content: "\e314"; +} +.glyphicons.table_tennis i:before { + content: "\e315"; +} +.glyphicons.bowling i:before { + content: "\e316"; +} +.glyphicons.tree_conifer i:before { + content: "\e317"; +} +.glyphicons.tree_deciduous i:before { + content: "\e318"; +} +.glyphicons.more_items i:before { + content: "\e319"; +} +.glyphicons.sort i:before { + content: "\e320"; +} +.glyphicons.filter i:before { + content: "\e321"; +} +.glyphicons.gamepad i:before { + content: "\e322"; +} +.glyphicons.playing_dices i:before { + content: "\e323"; +} +.glyphicons.calculator i:before { + content: "\e324"; +} +.glyphicons.tie i:before { + content: "\e325"; +} +.glyphicons.wallet i:before { + content: "\e326"; +} +.glyphicons.piano i:before { + content: "\e327"; +} +.glyphicons.sampler i:before { + content: "\e328"; +} +.glyphicons.podium i:before { + content: "\e329"; +} +.glyphicons.soccer_ball i:before { + content: "\e330"; +} +.glyphicons.blog i:before { + content: "\e331"; +} +.glyphicons.dashboard i:before { + content: "\e332"; +} +.glyphicons.certificate i:before { + content: "\e333"; +} +.glyphicons.bell i:before { + content: "\e334"; +} +.glyphicons.candle i:before { + content: "\e335"; +} +.glyphicons.pushpin i:before { + content: "\e336"; +} +.glyphicons.iphone_shake i:before { + content: "\e337"; +} +.glyphicons.pin_flag i:before { + content: "\e338"; +} +.glyphicons.turtle i:before { + content: "\e339"; +} +.glyphicons.rabbit i:before { + content: "\e340"; +} +.glyphicons.globe i:before { + content: "\e341"; +} +.glyphicons.briefcase i:before { + content: "\e342"; +} +.glyphicons.hdd i:before { + content: "\e343"; +} +.glyphicons.thumbs_up i:before { + content: "\e344"; +} +.glyphicons.thumbs_down i:before { + content: "\e345"; +} +.glyphicons.hand_right i:before { + content: "\e346"; +} +.glyphicons.hand_left i:before { + content: "\e347"; +} +.glyphicons.hand_up i:before { + content: "\e348"; +} +.glyphicons.hand_down i:before { + content: "\e349"; +} +.glyphicons.fullscreen i:before { + content: "\e350"; +} +.glyphicons.shopping_bag i:before { + content: "\e351"; +} +.glyphicons.book_open i:before { + content: "\e352"; +} +.glyphicons.nameplate i:before { + content: "\e353"; +} +.glyphicons.nameplate_alt i:before { + content: "\e354"; +} +.glyphicons.vases i:before { + content: "\e355"; +} +.glyphicons.bullhorn i:before { + content: "\e356"; +} +.glyphicons.dumbbell i:before { + content: "\e357"; +} +.glyphicons.suitcase i:before { + content: "\e358"; +} +.glyphicons.file_import i:before { + content: "\e359"; +} +.glyphicons.file_export i:before { + content: "\e360"; +} +.glyphicons.bug i:before { + content: "\e361"; +} +.glyphicons.crown i:before { + content: "\e362"; +} +.glyphicons.smoking i:before { + content: "\e363"; +} +.glyphicons.cloud-upload i:before { + content: "\e364"; +} +.glyphicons.cloud-download i:before { + content: "\e365"; +} +.glyphicons.restart i:before { + content: "\e366"; +} +.glyphicons.security_camera i:before { + content: "\e367"; +} +.glyphicons.expand i:before { + content: "\e368"; +} +.glyphicons.collapse i:before { + content: "\e369"; +} +.glyphicons.collapse_top i:before { + content: "\e370"; +} +.glyphicons.globe_af i:before { + content: "\e371"; +} +.glyphicons.global i:before { + content: "\e372"; +} +.glyphicons.spray i:before { + content: "\e373"; +} +.glyphicons.nails i:before { + content: "\e374"; +} +.glyphicons.claw_hammer i:before { + content: "\e375"; +} +.glyphicons.classic_hammer i:before { + content: "\e376"; +} +.glyphicons.hand_saw i:before { + content: "\e377"; +} +.glyphicons.riflescope i:before { + content: "\e378"; +} +.glyphicons.electrical_socket_eu i:before { + content: "\e379"; +} +.glyphicons.electrical_socket_us i:before { + content: "\e380"; +} +.glyphicons.pinterest i:before { + content: "\e381"; +} +.glyphicons.dropbox i:before { + content: "\e382"; +} +.glyphicons.google_plus i:before { + content: "\e383"; +} +.glyphicons.jolicloud i:before { + content: "\e384"; +} +.glyphicons.yahoo i:before { + content: "\e385"; +} +.glyphicons.blogger i:before { + content: "\e386"; +} +.glyphicons.picasa i:before { + content: "\e387"; +} +.glyphicons.amazon i:before { + content: "\e388"; +} +.glyphicons.tumblr i:before { + content: "\e389"; +} +.glyphicons.wordpress i:before { + content: "\e390"; +} +.glyphicons.instapaper i:before { + content: "\e391"; +} +.glyphicons.evernote i:before { + content: "\e392"; +} +.glyphicons.xing i:before { + content: "\e393"; +} +.glyphicons.zootool i:before { + content: "\e394"; +} +.glyphicons.dribbble i:before { + content: "\e395"; +} +.glyphicons.deviantart i:before { + content: "\e396"; +} +.glyphicons.read_it_later i:before { + content: "\e397"; +} +.glyphicons.linked_in i:before { + content: "\e398"; +} +.glyphicons.forrst i:before { + content: "\e399"; +} +.glyphicons.pinboard i:before { + content: "\e400"; +} +.glyphicons.behance i:before { + content: "\e401"; +} +.glyphicons.github i:before { + content: "\e402"; +} +.glyphicons.youtube i:before { + content: "\e403"; +} +.glyphicons.skitch i:before { + content: "\e404"; +} +.glyphicons.foursquare i:before { + content: "\e405"; +} +.glyphicons.quora i:before { + content: "\e406"; +} +.glyphicons.badoo i:before { + content: "\e407"; +} +.glyphicons.spotify i:before { + content: "\e408"; +} +.glyphicons.stumbleupon i:before { + content: "\e409"; +} +.glyphicons.readability i:before { + content: "\e410"; +} +.glyphicons.facebook i:before { + content: "\e411"; +} +.glyphicons.twitter i:before { + content: "\e412"; +} +.glyphicons.instagram i:before { + content: "\e413"; +} +.glyphicons.posterous_spaces i:before { + content: "\e414"; +} +.glyphicons.vimeo i:before { + content: "\e415"; +} +.glyphicons.flickr i:before { + content: "\e416"; +} +.glyphicons.last_fm i:before { + content: "\e417"; +} +.glyphicons.rss i:before { + content: "\e418"; +} +.glyphicons.skype i:before { + content: "\e419"; +} +.glyphicons.e-mail i:before { + content: "\e420"; +} + +.glyphicons-icon { + display: inline-block; + width: 48px; + height: 48px; + line-height: 48px; + vertical-align: text-top; + background-image: url(../img/glyphicons.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.no-inlinesvg .glyphicons-icon { + background-image: url(../img/glyphicons.png); +} +.glyphicons-icon.white { + background-image: url(../img/glyphicons-white.svg); +} +.no-inlinesvg .glyphicons-icon.white { + background-image: url(../img/glyphicons-white.png); +} +.glyphicons-icon.glass { + background-position: 4px 11px; +} +.glyphicons-icon.leaf { + background-position: -44px 11px; +} +.glyphicons-icon.dog { + background-position: -92px 11px; +} +.glyphicons-icon.user { + background-position: -140px 11px; +} +.glyphicons-icon.girl { + background-position: -188px 11px; +} +.glyphicons-icon.car { + background-position: -236px 11px; +} +.glyphicons-icon.user_add { + background-position: -284px 11px; +} +.glyphicons-icon.user_remove { + background-position: -332px 11px; +} +.glyphicons-icon.film { + background-position: -380px 11px; +} +.glyphicons-icon.magic { + background-position: -428px 11px; +} +.glyphicons-icon.envelope { + background-position: 4px -37px; +} +.glyphicons-icon.camera { + background-position: -44px -37px; +} +.glyphicons-icon.heart { + background-position: -92px -37px; +} +.glyphicons-icon.beach_umbrella { + background-position: -140px -37px; +} +.glyphicons-icon.train { + background-position: -188px -37px; +} +.glyphicons-icon.print { + background-position: -236px -37px; +} +.glyphicons-icon.bin { + background-position: -284px -37px; +} +.glyphicons-icon.music { + background-position: -332px -37px; +} +.glyphicons-icon.note { + background-position: -380px -37px; +} +.glyphicons-icon.heart_empty { + background-position: -428px -37px; +} +.glyphicons-icon.home { + background-position: 4px -85px; +} +.glyphicons-icon.snowflake { + background-position: -44px -85px; +} +.glyphicons-icon.fire { + background-position: -92px -85px; +} +.glyphicons-icon.magnet { + background-position: -140px -85px; +} +.glyphicons-icon.parents { + background-position: -188px -85px; +} +.glyphicons-icon.binoculars { + background-position: -236px -85px; +} +.glyphicons-icon.road { + background-position: -284px -85px; +} +.glyphicons-icon.search { + background-position: -332px -85px; +} +.glyphicons-icon.cars { + background-position: -380px -85px; +} +.glyphicons-icon.notes_2 { + background-position: -428px -85px; +} +.glyphicons-icon.pencil { + background-position: 4px -133px; +} +.glyphicons-icon.bus { + background-position: -44px -133px; +} +.glyphicons-icon.wifi_alt { + background-position: -92px -133px; +} +.glyphicons-icon.luggage { + background-position: -140px -133px; +} +.glyphicons-icon.old_man { + background-position: -188px -133px; +} +.glyphicons-icon.woman { + background-position: -236px -133px; +} +.glyphicons-icon.file { + background-position: -284px -133px; +} +.glyphicons-icon.coins { + background-position: -332px -133px; +} +.glyphicons-icon.airplane { + background-position: -380px -133px; +} +.glyphicons-icon.notes { + background-position: -428px -133px; +} +.glyphicons-icon.stats { + background-position: 4px -181px; +} +.glyphicons-icon.charts { + background-position: -44px -181px; +} +.glyphicons-icon.pie_chart { + background-position: -92px -181px; +} +.glyphicons-icon.group { + background-position: -140px -181px; +} +.glyphicons-icon.keys { + background-position: -188px -181px; +} +.glyphicons-icon.calendar { + background-position: -236px -181px; +} +.glyphicons-icon.router { + background-position: -284px -181px; +} +.glyphicons-icon.camera_small { + background-position: -332px -181px; +} +.glyphicons-icon.dislikes { + background-position: -380px -181px; +} +.glyphicons-icon.star { + background-position: -428px -181px; +} +.glyphicons-icon.link { + background-position: 4px -229px; +} +.glyphicons-icon.eye_open { + background-position: -44px -229px; +} +.glyphicons-icon.eye_close { + background-position: -92px -229px; +} +.glyphicons-icon.alarm { + background-position: -140px -229px; +} +.glyphicons-icon.clock { + background-position: -188px -229px; +} +.glyphicons-icon.stopwatch { + background-position: -236px -229px; +} +.glyphicons-icon.projector { + background-position: -284px -229px; +} +.glyphicons-icon.history { + background-position: -332px -229px; +} +.glyphicons-icon.truck { + background-position: -380px -229px; +} +.glyphicons-icon.cargo { + background-position: -428px -229px; +} +.glyphicons-icon.compass { + background-position: 4px -277px; +} +.glyphicons-icon.keynote { + background-position: -44px -277px; +} +.glyphicons-icon.paperclip { + background-position: -92px -277px; +} +.glyphicons-icon.power { + background-position: -140px -277px; +} +.glyphicons-icon.lightbulb { + background-position: -188px -277px; +} +.glyphicons-icon.tag { + background-position: -236px -277px; +} +.glyphicons-icon.tags { + background-position: -284px -277px; +} +.glyphicons-icon.cleaning { + background-position: -332px -277px; +} +.glyphicons-icon.ruller { + background-position: -380px -277px; +} +.glyphicons-icon.gift { + background-position: -428px -277px; +} +.glyphicons-icon.umbrella { + background-position: 4px -325px; +} +.glyphicons-icon.book { + background-position: -44px -325px; +} +.glyphicons-icon.bookmark { + background-position: -92px -325px; +} +.glyphicons-icon.wifi { + background-position: -140px -325px; +} +.glyphicons-icon.cup { + background-position: -188px -325px; +} +.glyphicons-icon.stroller { + background-position: -236px -325px; +} +.glyphicons-icon.headphones { + background-position: -284px -325px; +} +.glyphicons-icon.headset { + background-position: -332px -325px; +} +.glyphicons-icon.warning_sign { + background-position: -380px -325px; +} +.glyphicons-icon.signal { + background-position: -428px -325px; +} +.glyphicons-icon.retweet { + background-position: 4px -373px; +} +.glyphicons-icon.refresh { + background-position: -44px -373px; +} +.glyphicons-icon.roundabout { + background-position: -92px -373px; +} +.glyphicons-icon.random { + background-position: -140px -373px; +} +.glyphicons-icon.heat { + background-position: -188px -373px; +} +.glyphicons-icon.repeat { + background-position: -236px -373px; +} +.glyphicons-icon.display { + background-position: -284px -373px; +} +.glyphicons-icon.log_book { + background-position: -332px -373px; +} +.glyphicons-icon.adress_book { + background-position: -380px -373px; +} +.glyphicons-icon.building { + background-position: -428px -373px; +} +.glyphicons-icon.eyedropper { + background-position: 4px -421px; +} +.glyphicons-icon.adjust { + background-position: -44px -421px; +} +.glyphicons-icon.tint { + background-position: -92px -421px; +} +.glyphicons-icon.crop { + background-position: -140px -421px; +} +.glyphicons-icon.vector_path_square { + background-position: -188px -421px; +} +.glyphicons-icon.vector_path_circle { + background-position: -236px -421px; +} +.glyphicons-icon.vector_path_polygon { + background-position: -284px -421px; +} +.glyphicons-icon.vector_path_line { + background-position: -332px -421px; +} +.glyphicons-icon.vector_path_curve { + background-position: -380px -421px; +} +.glyphicons-icon.vector_path_all { + background-position: -428px -421px; +} +.glyphicons-icon.font { + background-position: 4px -469px; +} +.glyphicons-icon.italic { + background-position: -44px -469px; +} +.glyphicons-icon.bold { + background-position: -92px -469px; +} +.glyphicons-icon.text_underline { + background-position: -140px -469px; +} +.glyphicons-icon.text_strike { + background-position: -188px -469px; +} +.glyphicons-icon.text_height { + background-position: -236px -469px; +} +.glyphicons-icon.text_width { + background-position: -284px -469px; +} +.glyphicons-icon.text_resize { + background-position: -332px -469px; +} +.glyphicons-icon.left_indent { + background-position: -380px -469px; +} +.glyphicons-icon.right_indent { + background-position: -428px -469px; +} +.glyphicons-icon.align_left { + background-position: 4px -517px; +} +.glyphicons-icon.align_center { + background-position: -44px -517px; +} +.glyphicons-icon.align_right { + background-position: -92px -517px; +} +.glyphicons-icon.justify { + background-position: -140px -517px; +} +.glyphicons-icon.list { + background-position: -188px -517px; +} +.glyphicons-icon.text_smaller { + background-position: -236px -517px; +} +.glyphicons-icon.text_bigger { + background-position: -284px -517px; +} +.glyphicons-icon.embed { + background-position: -332px -517px; +} +.glyphicons-icon.embed_close { + background-position: -380px -517px; +} +.glyphicons-icon.table { + background-position: -428px -517px; +} +.glyphicons-icon.message_full { + background-position: 4px -565px; +} +.glyphicons-icon.message_empty { + background-position: -44px -565px; +} +.glyphicons-icon.message_in { + background-position: -92px -565px; +} +.glyphicons-icon.message_out { + background-position: -140px -565px; +} +.glyphicons-icon.message_plus { + background-position: -188px -565px; +} +.glyphicons-icon.message_minus { + background-position: -236px -565px; +} +.glyphicons-icon.message_ban { + background-position: -284px -565px; +} +.glyphicons-icon.message_flag { + background-position: -332px -565px; +} +.glyphicons-icon.message_lock { + background-position: -380px -565px; +} +.glyphicons-icon.message_new { + background-position: -428px -565px; +} +.glyphicons-icon.inbox { + background-position: 4px -613px; +} +.glyphicons-icon.inbox_plus { + background-position: -44px -613px; +} +.glyphicons-icon.inbox_minus { + background-position: -92px -613px; +} +.glyphicons-icon.inbox_lock { + background-position: -140px -613px; +} +.glyphicons-icon.inbox_in { + background-position: -188px -613px; +} +.glyphicons-icon.inbox_out { + background-position: -236px -613px; +} +.glyphicons-icon.cogwheel { + background-position: -284px -613px; +} +.glyphicons-icon.cogwheels { + background-position: -332px -613px; +} +.glyphicons-icon.picture { + background-position: -380px -613px; +} +.glyphicons-icon.adjust_alt { + background-position: -428px -613px; +} +.glyphicons-icon.database_lock { + background-position: 4px -661px; +} +.glyphicons-icon.database_plus { + background-position: -44px -661px; +} +.glyphicons-icon.database_minus { + background-position: -92px -661px; +} +.glyphicons-icon.database_ban { + background-position: -140px -661px; +} +.glyphicons-icon.folder_open { + background-position: -188px -661px; +} +.glyphicons-icon.folder_plus { + background-position: -236px -661px; +} +.glyphicons-icon.folder_minus { + background-position: -284px -661px; +} +.glyphicons-icon.folder_lock { + background-position: -332px -661px; +} +.glyphicons-icon.folder_flag { + background-position: -380px -661px; +} +.glyphicons-icon.folder_new { + background-position: -428px -661px; +} +.glyphicons-icon.edit { + background-position: 4px -709px; +} +.glyphicons-icon.new_window { + background-position: -44px -709px; +} +.glyphicons-icon.check { + background-position: -92px -709px; +} +.glyphicons-icon.unchecked { + background-position: -140px -709px; +} +.glyphicons-icon.more_windows { + background-position: -188px -709px; +} +.glyphicons-icon.show_big_thumbnails { + background-position: -236px -709px; +} +.glyphicons-icon.show_thumbnails { + background-position: -284px -709px; +} +.glyphicons-icon.show_thumbnails_with_lines { + background-position: -332px -709px; +} +.glyphicons-icon.show_lines { + background-position: -380px -709px; +} +.glyphicons-icon.playlist { + background-position: -428px -709px; +} +.glyphicons-icon.imac { + background-position: 4px -757px; +} +.glyphicons-icon.macbook { + background-position: -44px -757px; +} +.glyphicons-icon.ipad { + background-position: -92px -757px; +} +.glyphicons-icon.iphone { + background-position: -140px -757px; +} +.glyphicons-icon.iphone_transfer { + background-position: -188px -757px; +} +.glyphicons-icon.iphone_exchange { + background-position: -236px -757px; +} +.glyphicons-icon.ipod { + background-position: -284px -757px; +} +.glyphicons-icon.ipod_shuffle { + background-position: -332px -757px; +} +.glyphicons-icon.ear_plugs { + background-position: -380px -757px; +} +.glyphicons-icon.phone { + background-position: -428px -757px; +} +.glyphicons-icon.step_backward { + background-position: 4px -805px; +} +.glyphicons-icon.fast_backward { + background-position: -44px -805px; +} +.glyphicons-icon.rewind { + background-position: -92px -805px; +} +.glyphicons-icon.play { + background-position: -140px -805px; +} +.glyphicons-icon.pause { + background-position: -188px -805px; +} +.glyphicons-icon.stop { + background-position: -236px -805px; +} +.glyphicons-icon.forward { + background-position: -284px -805px; +} +.glyphicons-icon.fast_forward { + background-position: -332px -805px; +} +.glyphicons-icon.step_forward { + background-position: -380px -805px; +} +.glyphicons-icon.eject { + background-position: -428px -805px; +} +.glyphicons-icon.facetime_video { + background-position: 4px -853px; +} +.glyphicons-icon.download_alt { + background-position: -44px -853px; +} +.glyphicons-icon.mute { + background-position: -92px -853px; +} +.glyphicons-icon.volume_down { + background-position: -140px -853px; +} +.glyphicons-icon.volume_up { + background-position: -188px -853px; +} +.glyphicons-icon.screenshot { + background-position: -236px -853px; +} +.glyphicons-icon.move { + background-position: -284px -853px; +} +.glyphicons-icon.more { + background-position: -332px -853px; +} +.glyphicons-icon.brightness_reduce { + background-position: -380px -853px; +} +.glyphicons-icon.brightness_increase { + background-position: -428px -853px; +} +.glyphicons-icon.circle_plus { + background-position: 4px -901px; +} +.glyphicons-icon.circle_minus { + background-position: -44px -901px; +} +.glyphicons-icon.circle_remove { + background-position: -92px -901px; +} +.glyphicons-icon.circle_ok { + background-position: -140px -901px; +} +.glyphicons-icon.circle_question_mark { + background-position: -188px -901px; +} +.glyphicons-icon.circle_info { + background-position: -236px -901px; +} +.glyphicons-icon.circle_exclamation_mark { + background-position: -284px -901px; +} +.glyphicons-icon.remove { + background-position: -332px -901px; +} +.glyphicons-icon.ok { + background-position: -380px -901px; +} +.glyphicons-icon.ban { + background-position: -428px -901px; +} +.glyphicons-icon.download { + background-position: 4px -949px; +} +.glyphicons-icon.upload { + background-position: -44px -949px; +} +.glyphicons-icon.shopping_cart { + background-position: -92px -949px; +} +.glyphicons-icon.lock { + background-position: -140px -949px; +} +.glyphicons-icon.unlock { + background-position: -188px -949px; +} +.glyphicons-icon.electricity { + background-position: -236px -949px; +} +.glyphicons-icon.ok_2 { + background-position: -284px -949px; +} +.glyphicons-icon.remove_2 { + background-position: -332px -949px; +} +.glyphicons-icon.cart_out { + background-position: -380px -949px; +} +.glyphicons-icon.cart_in { + background-position: -428px -949px; +} +.glyphicons-icon.left_arrow { + background-position: 4px -997px; +} +.glyphicons-icon.right_arrow { + background-position: -44px -997px; +} +.glyphicons-icon.down_arrow { + background-position: -92px -997px; +} +.glyphicons-icon.up_arrow { + background-position: -140px -997px; +} +.glyphicons-icon.resize_small { + background-position: -188px -997px; +} +.glyphicons-icon.resize_full { + background-position: -236px -997px; +} +.glyphicons-icon.circle_arrow_left { + background-position: -284px -997px; +} +.glyphicons-icon.circle_arrow_right { + background-position: -332px -997px; +} +.glyphicons-icon.circle_arrow_top { + background-position: -380px -997px; +} +.glyphicons-icon.circle_arrow_down { + background-position: -428px -997px; +} +.glyphicons-icon.play_button { + background-position: 4px -1045px; +} +.glyphicons-icon.unshare { + background-position: -44px -1045px; +} +.glyphicons-icon.share { + background-position: -92px -1045px; +} +.glyphicons-icon.chevron-right { + background-position: -140px -1045px; +} +.glyphicons-icon.chevron-left { + background-position: -188px -1045px; +} +.glyphicons-icon.bluetooth { + background-position: -236px -1045px; +} +.glyphicons-icon.euro { + background-position: -284px -1045px; +} +.glyphicons-icon.usd { + background-position: -332px -1045px; +} +.glyphicons-icon.gbp { + background-position: -380px -1045px; +} +.glyphicons-icon.retweet_2 { + background-position: -428px -1045px; +} +.glyphicons-icon.moon { + background-position: 4px -1093px; +} +.glyphicons-icon.sun { + background-position: -44px -1093px; +} +.glyphicons-icon.cloud { + background-position: -92px -1093px; +} +.glyphicons-icon.direction { + background-position: -140px -1093px; +} +.glyphicons-icon.brush { + background-position: -188px -1093px; +} +.glyphicons-icon.pen { + background-position: -236px -1093px; +} +.glyphicons-icon.zoom_in { + background-position: -284px -1093px; +} +.glyphicons-icon.zoom_out { + background-position: -332px -1093px; +} +.glyphicons-icon.pin { + background-position: -380px -1093px; +} +.glyphicons-icon.albums { + background-position: -428px -1093px; +} +.glyphicons-icon.rotation_lock { + background-position: 4px -1141px; +} +.glyphicons-icon.flash { + background-position: -44px -1141px; +} +.glyphicons-icon.google_maps { + background-position: -92px -1141px; +} +.glyphicons-icon.anchor { + background-position: -140px -1141px; +} +.glyphicons-icon.conversation { + background-position: -188px -1141px; +} +.glyphicons-icon.chat { + background-position: -236px -1141px; +} +.glyphicons-icon.male { + background-position: -284px -1141px; +} +.glyphicons-icon.female { + background-position: -332px -1141px; +} +.glyphicons-icon.asterisk { + background-position: -380px -1141px; +} +.glyphicons-icon.divide { + background-position: -428px -1141px; +} +.glyphicons-icon.snorkel_diving { + background-position: 4px -1189px; +} +.glyphicons-icon.scuba_diving { + background-position: -44px -1189px; +} +.glyphicons-icon.oxygen_bottle { + background-position: -92px -1189px; +} +.glyphicons-icon.fins { + background-position: -140px -1189px; +} +.glyphicons-icon.fishes { + background-position: -188px -1189px; +} +.glyphicons-icon.boat { + background-position: -236px -1189px; +} +.glyphicons-icon.delete { + background-position: -284px -1189px; +} +.glyphicons-icon.sheriffs_star { + background-position: -332px -1189px; +} +.glyphicons-icon.qrcode { + background-position: -380px -1189px; +} +.glyphicons-icon.barcode { + background-position: -428px -1189px; +} +.glyphicons-icon.pool { + background-position: 4px -1237px; +} +.glyphicons-icon.buoy { + background-position: -44px -1237px; +} +.glyphicons-icon.spade { + background-position: -92px -1237px; +} +.glyphicons-icon.bank { + background-position: -140px -1237px; +} +.glyphicons-icon.vcard { + background-position: -188px -1237px; +} +.glyphicons-icon.electrical_plug { + background-position: -236px -1237px; +} +.glyphicons-icon.flag { + background-position: -284px -1237px; +} +.glyphicons-icon.credit_card { + background-position: -332px -1237px; +} +.glyphicons-icon.keyboard-wireless { + background-position: -380px -1237px; +} +.glyphicons-icon.keyboard-wired { + background-position: -428px -1237px; +} +.glyphicons-icon.shield { + background-position: 4px -1285px; +} +.glyphicons-icon.ring { + background-position: -44px -1285px; +} +.glyphicons-icon.cake { + background-position: -92px -1285px; +} +.glyphicons-icon.drink { + background-position: -140px -1285px; +} +.glyphicons-icon.beer { + background-position: -188px -1285px; +} +.glyphicons-icon.fast_food { + background-position: -236px -1285px; +} +.glyphicons-icon.cutlery { + background-position: -284px -1285px; +} +.glyphicons-icon.pizza { + background-position: -332px -1285px; +} +.glyphicons-icon.birthday_cake { + background-position: -380px -1285px; +} +.glyphicons-icon.tablet { + background-position: -428px -1285px; +} +.glyphicons-icon.settings { + background-position: 4px -1333px; +} +.glyphicons-icon.bullets { + background-position: -44px -1333px; +} +.glyphicons-icon.cardio { + background-position: -92px -1333px; +} +.glyphicons-icon.t-shirt { + background-position: -140px -1333px; +} +.glyphicons-icon.pants { + background-position: -188px -1333px; +} +.glyphicons-icon.sweater { + background-position: -236px -1333px; +} +.glyphicons-icon.fabric { + background-position: -284px -1333px; +} +.glyphicons-icon.leather { + background-position: -332px -1333px; +} +.glyphicons-icon.scissors { + background-position: -380px -1333px; +} +.glyphicons-icon.bomb { + background-position: -428px -1333px; +} +.glyphicons-icon.skull { + background-position: 4px -1381px; +} +.glyphicons-icon.celebration { + background-position: -44px -1381px; +} +.glyphicons-icon.tea_kettle { + background-position: -92px -1381px; +} +.glyphicons-icon.french_press { + background-position: -140px -1381px; +} +.glyphicons-icon.coffe_cup { + background-position: -188px -1381px; +} +.glyphicons-icon.pot { + background-position: -236px -1381px; +} +.glyphicons-icon.grater { + background-position: -284px -1381px; +} +.glyphicons-icon.kettle { + background-position: -332px -1381px; +} +.glyphicons-icon.hospital { + background-position: -380px -1381px; +} +.glyphicons-icon.hospital_h { + background-position: -428px -1381px; +} +.glyphicons-icon.microphone { + background-position: 4px -1429px; +} +.glyphicons-icon.webcam { + background-position: -44px -1429px; +} +.glyphicons-icon.temple_christianity_church { + background-position: -92px -1429px; +} +.glyphicons-icon.temple_islam { + background-position: -140px -1429px; +} +.glyphicons-icon.temple_hindu { + background-position: -188px -1429px; +} +.glyphicons-icon.temple_buddhist { + background-position: -236px -1429px; +} +.glyphicons-icon.bicycle { + background-position: -284px -1429px; +} +.glyphicons-icon.life_preserver { + background-position: -332px -1429px; +} +.glyphicons-icon.share_alt { + background-position: -380px -1429px; +} +.glyphicons-icon.comments { + background-position: -428px -1429px; +} +.glyphicons-icon.flower { + background-position: 4px -1477px; +} +.glyphicons-icon.baseball { + background-position: -44px -1477px; +} +.glyphicons-icon.rugby { + background-position: -92px -1477px; +} +.glyphicons-icon.ax { + background-position: -140px -1477px; +} +.glyphicons-icon.table_tennis { + background-position: -188px -1477px; +} +.glyphicons-icon.bowling { + background-position: -236px -1477px; +} +.glyphicons-icon.tree_conifer { + background-position: -284px -1477px; +} +.glyphicons-icon.tree_deciduous { + background-position: -332px -1477px; +} +.glyphicons-icon.more_items { + background-position: -380px -1477px; +} +.glyphicons-icon.sort { + background-position: -428px -1477px; +} +.glyphicons-icon.filter { + background-position: 4px -1525px; +} +.glyphicons-icon.gamepad { + background-position: -44px -1525px; +} +.glyphicons-icon.playing_dices { + background-position: -92px -1525px; +} +.glyphicons-icon.calculator { + background-position: -140px -1525px; +} +.glyphicons-icon.tie { + background-position: -188px -1525px; +} +.glyphicons-icon.wallet { + background-position: -236px -1525px; +} +.glyphicons-icon.piano { + background-position: -284px -1525px; +} +.glyphicons-icon.sampler { + background-position: -332px -1525px; +} +.glyphicons-icon.podium { + background-position: -380px -1525px; +} +.glyphicons-icon.soccer_ball { + background-position: -428px -1525px; +} +.glyphicons-icon.blog { + background-position: 4px -1573px; +} +.glyphicons-icon.dashboard { + background-position: -44px -1573px; +} +.glyphicons-icon.certificate { + background-position: -92px -1573px; +} +.glyphicons-icon.bell { + background-position: -140px -1573px; +} +.glyphicons-icon.candle { + background-position: -188px -1573px; +} +.glyphicons-icon.pushpin { + background-position: -236px -1573px; +} +.glyphicons-icon.iphone_shake { + background-position: -284px -1573px; +} +.glyphicons-icon.pin_flag { + background-position: -332px -1573px; +} +.glyphicons-icon.turtle { + background-position: -380px -1573px; +} +.glyphicons-icon.rabbit { + background-position: -428px -1573px; +} +.glyphicons-icon.globe { + background-position: 4px -1621px; +} +.glyphicons-icon.briefcase { + background-position: -44px -1621px; +} +.glyphicons-icon.hdd { + background-position: -92px -1621px; +} +.glyphicons-icon.thumbs_up { + background-position: -140px -1621px; +} +.glyphicons-icon.thumbs_down { + background-position: -188px -1621px; +} +.glyphicons-icon.hand_right { + background-position: -236px -1621px; +} +.glyphicons-icon.hand_left { + background-position: -284px -1621px; +} +.glyphicons-icon.hand_up { + background-position: -332px -1621px; +} +.glyphicons-icon.hand_down { + background-position: -380px -1621px; +} +.glyphicons-icon.fullscreen { + background-position: -428px -1621px; +} +.glyphicons-icon.shopping_bag { + background-position: 4px -1669px; +} +.glyphicons-icon.book_open { + background-position: -44px -1669px; +} +.glyphicons-icon.nameplate { + background-position: -92px -1669px; +} +.glyphicons-icon.nameplate_alt { + background-position: -140px -1669px; +} +.glyphicons-icon.vases { + background-position: -188px -1669px; +} +.glyphicons-icon.bullhorn { + background-position: -236px -1669px; +} +.glyphicons-icon.dumbbell { + background-position: -284px -1669px; +} +.glyphicons-icon.suitcase { + background-position: -332px -1669px; +} +.glyphicons-icon.file_import { + background-position: -380px -1669px; +} +.glyphicons-icon.file_export { + background-position: -428px -1669px; +} +.glyphicons-icon.bug { + background-position: 4px -1717px; +} +.glyphicons-icon.crown { + background-position: -44px -1717px; +} +.glyphicons-icon.smoking { + background-position: -92px -1717px; +} +.glyphicons-icon.cloud-upload { + background-position: -140px -1717px; +} +.glyphicons-icon.cloud-download { + background-position: -188px -1717px; +} +.glyphicons-icon.restart { + background-position: -236px -1717px; +} +.glyphicons-icon.security_camera { + background-position: -284px -1717px; +} +.glyphicons-icon.expand { + background-position: -332px -1717px; +} +.glyphicons-icon.collapse { + background-position: -380px -1717px; +} +.glyphicons-icon.collapse_top { + background-position: -428px -1717px; +} +.glyphicons-icon.globe_af { + background-position: 4px -1765px; +} +.glyphicons-icon.global { + background-position: -44px -1765px; +} +.glyphicons-icon.spray { + background-position: -92px -1765px; +} +.glyphicons-icon.nails { + background-position: -140px -1765px; +} +.glyphicons-icon.claw_hammer { + background-position: -188px -1765px; +} +.glyphicons-icon.classic_hammer { + background-position: -236px -1765px; +} +.glyphicons-icon.hand_saw { + background-position: -284px -1765px; +} +.glyphicons-icon.riflescope { + background-position: -332px -1765px; +} +.glyphicons-icon.electrical_socket_eu { + background-position: -380px -1765px; +} +.glyphicons-icon.electrical_socket_us { + background-position: -428px -1765px; +} +.glyphicons-icon.pinterest { + background-position: 4px -1813px; +} +.glyphicons-icon.dropbox { + background-position: -44px -1813px; +} +.glyphicons-icon.google_plus { + background-position: -92px -1813px; +} +.glyphicons-icon.jolicloud { + background-position: -140px -1813px; +} +.glyphicons-icon.yahoo { + background-position: -188px -1813px; +} +.glyphicons-icon.blogger { + background-position: -236px -1813px; +} +.glyphicons-icon.picasa { + background-position: -284px -1813px; +} +.glyphicons-icon.amazon { + background-position: -332px -1813px; +} +.glyphicons-icon.tumblr { + background-position: -380px -1813px; +} +.glyphicons-icon.wordpress { + background-position: -428px -1813px; +} +.glyphicons-icon.instapaper { + background-position: 4px -1861px; +} +.glyphicons-icon.evernote { + background-position: -44px -1861px; +} +.glyphicons-icon.xing { + background-position: -92px -1861px; +} +.glyphicons-icon.zootool { + background-position: -140px -1861px; +} +.glyphicons-icon.dribbble { + background-position: -188px -1861px; +} +.glyphicons-icon.deviantart { + background-position: -236px -1861px; +} +.glyphicons-icon.read_it_later { + background-position: -284px -1861px; +} +.glyphicons-icon.linked_in { + background-position: -332px -1861px; +} +.glyphicons-icon.forrst { + background-position: -380px -1861px; +} +.glyphicons-icon.pinboard { + background-position: -428px -1861px; +} +.glyphicons-icon.behance { + background-position: 4px -1909px; +} +.glyphicons-icon.github { + background-position: -44px -1909px; +} +.glyphicons-icon.youtube { + background-position: -92px -1909px; +} +.glyphicons-icon.skitch { + background-position: -140px -1909px; +} +.glyphicons-icon.foursquare { + background-position: -188px -1909px; +} +.glyphicons-icon.quora { + background-position: -236px -1909px; +} +.glyphicons-icon.badoo { + background-position: -284px -1909px; +} +.glyphicons-icon.spotify { + background-position: -332px -1909px; +} +.glyphicons-icon.stumbleupon { + background-position: -380px -1909px; +} +.glyphicons-icon.readability { + background-position: -428px -1909px; +} +.glyphicons-icon.facebook { + background-position: 4px -1957px; +} +.glyphicons-icon.twitter { + background-position: -44px -1957px; +} +.glyphicons-icon.instagram { + background-position: -92px -1957px; +} +.glyphicons-icon.posterous_spaces { + background-position: -140px -1957px; +} +.glyphicons-icon.vimeo { + background-position: -188px -1957px; +} +.glyphicons-icon.flickr { + background-position: -236px -1957px; +} +.glyphicons-icon.last_fm { + background-position: -284px -1957px; +} +.glyphicons-icon.rss { + background-position: -332px -1957px; +} +.glyphicons-icon.skype { + background-position: -380px -1957px; +} +.glyphicons-icon.e-mail { + background-position: -428px -1957px; +} + +/* Localized */ \ No newline at end of file diff --git a/gloam/WebRoot/css/halflings.css b/gloam/WebRoot/css/halflings.css new file mode 100644 index 0000000..d643121 --- /dev/null +++ b/gloam/WebRoot/css/halflings.css @@ -0,0 +1,1023 @@ +/*! + * + * Project: GLYPHICONS HALFLINGS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +html, +html .halflings { + -webkit-font-smoothing: antialiased !important; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../font/glyphiconshalflings-regular.eot'); + src: url('../font/glyphiconshalflings-regular-0.eot#iefix') format('embedded-opentype'), url('../font/glyphiconshalflings-regular.woff') format('woff'), url('../font/glyphiconshalflings-regular.ttf') format('truetype'), url('../font/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.halflings { + display: inline-block; + position: relative; + padding: 0 0 0 25px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; +} +.halflings i:before { + position: absolute; + left: 0; + top: 0; + font: 12px/1em 'Glyphicons Halflings'; + font-style: normal; + color: #1d1d1b; +} +.halflings.white i:before { + color: #fff; +} +.halflings.glass i:before { + content: "\e001"; +} +.halflings.music i:before { + content: "\e002"; +} +.halflings.search i:before { + content: "\e003"; +} +.halflings.envelope i:before { + content: "\2709"; +} +.halflings.heart i:before { + content: "\e005"; +} +.halflings.star i:before { + content: "\e006"; +} +.halflings.star-empty i:before { + content: "\e007"; +} +.halflings.user i:before { + content: "\e008"; +} +.halflings.film i:before { + content: "\e009"; +} +.halflings.th-large i:before { + content: "\e010"; +} +.halflings.th i:before { + content: "\e011"; +} +.halflings.th-list i:before { + content: "\e012"; +} +.halflings.ok i:before { + content: "\e013"; +} +.halflings.remove i:before { + content: "\e014"; +} +.halflings.zoom-in i:before { + content: "\e015"; +} +.halflings.zoom-out i:before { + content: "\e016"; +} +.halflings.off i:before { + content: "\e017"; +} +.halflings.signal i:before { + content: "\e018"; +} +.halflings.cog i:before { + content: "\e019"; +} +.halflings.trash i:before { + content: "\e020"; +} +.halflings.home i:before { + content: "\e021"; +} +.halflings.file i:before { + content: "\e022"; +} +.halflings.time i:before { + content: "\e023"; +} +.halflings.road i:before { + content: "\e024"; +} +.halflings.download-alt i:before { + content: "\e025"; +} +.halflings.download i:before { + content: "\e026"; +} +.halflings.upload i:before { + content: "\e027"; +} +.halflings.inbox i:before { + content: "\e028"; +} +.halflings.play-circle i:before { + content: "\e029"; +} +.halflings.repeat i:before { + content: "\e030"; +} +.halflings.refresh i:before { + content: "\e031"; +} +.halflings.list-alt i:before { + content: "\e032"; +} +.halflings.lock i:before { + content: "\e033"; +} +.halflings.flag i:before { + content: "\e034"; +} +.halflings.headphones i:before { + content: "\e035"; +} +.halflings.volume-off i:before { + content: "\e036"; +} +.halflings.volume-down i:before { + content: "\e037"; +} +.halflings.volume-up i:before { + content: "\e038"; +} +.halflings.qrcode i:before { + content: "\e039"; +} +.halflings.barcode i:before { + content: "\e040"; +} +.halflings.tag i:before { + content: "\e041"; +} +.halflings.tags i:before { + content: "\e042"; +} +.halflings.book i:before { + content: "\e043"; +} +.halflings.bookmark i:before { + content: "\e044"; +} +.halflings.print i:before { + content: "\e045"; +} +.halflings.camera i:before { + content: "\e046"; +} +.halflings.font i:before { + content: "\e047"; +} +.halflings.bold i:before { + content: "\e048"; +} +.halflings.italic i:before { + content: "\e049"; +} +.halflings.text-height i:before { + content: "\e050"; +} +.halflings.text-width i:before { + content: "\e051"; +} +.halflings.align-left i:before { + content: "\e052"; +} +.halflings.align-center i:before { + content: "\e053"; +} +.halflings.align-right i:before { + content: "\e054"; +} +.halflings.align-justify i:before { + content: "\e055"; +} +.halflings.list i:before { + content: "\e056"; +} +.halflings.indent-left i:before { + content: "\e057"; +} +.halflings.indent-right i:before { + content: "\e058"; +} +.halflings.facetime-video i:before { + content: "\e059"; +} +.halflings.picture i:before { + content: "\e060"; +} +.halflings.pencil i:before { + content: "\270f"; +} +.halflings.map-marker i:before { + content: "\e062"; +} +.halflings.adjust i:before { + content: "\e063"; +} +.halflings.tint i:before { + content: "\e064"; +} +.halflings.edit i:before { + content: "\e065"; +} +.halflings.share i:before { + content: "\e066"; +} +.halflings.check i:before { + content: "\e067"; +} +.halflings.move i:before { + content: "\e068"; +} +.halflings.step-backward i:before { + content: "\e069"; +} +.halflings.fast-backward i:before { + content: "\e070"; +} +.halflings.backward i:before { + content: "\e071"; +} +.halflings.play i:before { + content: "\e072"; +} +.halflings.pause i:before { + content: "\e073"; +} +.halflings.stop i:before { + content: "\e074"; +} +.halflings.forward i:before { + content: "\e075"; +} +.halflings.fast-forward i:before { + content: "\e076"; +} +.halflings.step-forward i:before { + content: "\e077"; +} +.halflings.eject i:before { + content: "\e078"; +} +.halflings.chevron-left i:before { + content: "\e079"; +} +.halflings.chevron-right i:before { + content: "\e080"; +} +.halflings.plus-sign i:before { + content: "\e081"; +} +.halflings.minus-sign i:before { + content: "\e082"; +} +.halflings.remove-sign i:before { + content: "\e083"; +} +.halflings.ok-sign i:before { + content: "\e084"; +} +.halflings.question-sign i:before { + content: "\e085"; +} +.halflings.info-sign i:before { + content: "\e086"; +} +.halflings.screenshot i:before { + content: "\e087"; +} +.halflings.remove-circle i:before { + content: "\e088"; +} +.halflings.ok-circle i:before { + content: "\e089"; +} +.halflings.ban-circle i:before { + content: "\e090"; +} +.halflings.arrow-left i:before { + content: "\e091"; +} +.halflings.arrow-right i:before { + content: "\e092"; +} +.halflings.arrow-up i:before { + content: "\e093"; +} +.halflings.arrow-down i:before { + content: "\e094"; +} +.halflings.share-alt i:before { + content: "\e095"; +} +.halflings.resize-full i:before { + content: "\e096"; +} +.halflings.resize-small i:before { + content: "\e097"; +} +.halflings.plus i:before { + content: "\002b"; +} +.halflings.minus i:before { + content: "\2212"; +} +.halflings.asterisk i:before { + content: "\002a"; +} +.halflings.exclamation-sign i:before { + content: "\e101"; +} +.halflings.gift i:before { + content: "\e102"; +} +.halflings.leaf i:before { + content: "\e103"; +} +.halflings.fire i:before { + content: "\e104"; +} +.halflings.eye-open i:before { + content: "\e105"; +} +.halflings.eye-close i:before { + content: "\e106"; +} +.halflings.warning-sign i:before { + content: "\e107"; +} +.halflings.plane i:before { + content: "\e108"; +} +.halflings.calendar i:before { + content: "\e109"; +} +.halflings.random i:before { + content: "\e110"; +} +.halflings.comments i:before { + content: "\e111"; +} +.halflings.magnet i:before { + content: "\e113"; +} +.halflings.chevron-up i:before { + content: "\e113"; +} +.halflings.chevron-down i:before { + content: "\e114"; +} +.halflings.retweet i:before { + content: "\e115"; +} +.halflings.shopping-cart i:before { + content: "\e116"; +} +.halflings.folder-close i:before { + content: "\e117"; +} +.halflings.folder-open i:before { + content: "\e118"; +} +.halflings.resize-vertical i:before { + content: "\e119"; +} +.halflings.resize-horizontal i:before { + content: "\e120"; +} +.halflings.hdd i:before { + content: "\e121"; +} +.halflings.bullhorn i:before { + content: "\e122"; +} +.halflings.bell i:before { + content: "\e123"; +} +.halflings.certificate i:before { + content: "\e124"; +} +.halflings.thumbs-up i:before { + content: "\e125"; +} +.halflings.thumbs-down i:before { + content: "\e126"; +} +.halflings.hand-right i:before { + content: "\e127"; +} +.halflings.hand-left i:before { + content: "\e128"; +} +.halflings.hand-top i:before { + content: "\e129"; +} +.halflings.hand-down i:before { + content: "\e130"; +} +.halflings.circle-arrow-right i:before { + content: "\e131"; +} +.halflings.circle-arrow-left i:before { + content: "\e132"; +} +.halflings.circle-arrow-top i:before { + content: "\e133"; +} +.halflings.circle-arrow-down i:before { + content: "\e134"; +} +.halflings.globe i:before { + content: "\e135"; +} +.halflings.wrench i:before { + content: "\e136"; +} +.halflings.tasks i:before { + content: "\e137"; +} +.halflings.filter i:before { + content: "\e138"; +} +.halflings.briefcase i:before { + content: "\e139"; +} +.halflings.fullscreen i:before { + content: "\e140"; +} +.halflings.dashboard i:before { + content: "\e141"; +} +.halflings.paperclip i:before { + content: "\e142"; +} +.halflings.heart-empty i:before { + content: "\e143"; +} +.halflings.link i:before { + content: "\e144"; +} +.halflings.phone i:before { + content: "\e145"; +} +.halflings.pushpin i:before { + content: "\e146"; +} +.halflings.euro i:before { + content: "\20ac"; +} +.halflings.usd i:before { + content: "\e148"; +} +.halflings.gbp i:before { + content: "\e149"; +} +.halflings.sort i:before { + content: "\e150"; +} +.halflings.sort-by-alphabet i:before { + content: "\e151"; +} +.halflings.sort-by-alphabet-alt i:before { + content: "\e152"; +} +.halflings.sort-by-order i:before { + content: "\e153"; +} +.halflings.sort-by-order-alt i:before { + content: "\e154"; +} +.halflings.sort-by-attributes i:before { + content: "\e155"; +} +.halflings.sort-by-attributes-alt i:before { + content: "\e156"; +} +.halflings.unchecked i:before { + content: "\e157"; +} +.halflings.expand i:before { + content: "\e158"; +} +.halflings.collapse i:before { + content: "\e159"; +} +.halflings.collapse-top i:before { + content: "\e160"; +} +.halflings-icon { + display: inline-block; + width: 14px; + height: 14px; + line-height: 14px; + vertical-align: text-top; + background-image: url(../img/glyphicons_halflings.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.no-inlinesvg .halflings-icon { + background-image: url(../img/glyphicons_halflings.png); +} +.halflings-icon.white { + background-image: url(../img/glyphicons_halflings-white.svg); +} +.no-inlinesvg .halflings-icon.white { + background-image: url(../img/glyphicons_halflings-white.png); +} +.halflings-icon.glass { + background-position: 0 0; +} +.halflings-icon.music { + background-position: -24px 0; +} +.halflings-icon.search { + background-position: -48px 0; +} +.halflings-icon.envelope { + background-position: -72px 0; +} +.halflings-icon.heart { + background-position: -96px 0; +} +.halflings-icon.star { + background-position: -120px 0; +} +.halflings-icon.star-empty { + background-position: -144px 0; +} +.halflings-icon.user { + background-position: -168px 0; +} +.halflings-icon.film { + background-position: -192px 0; +} +.halflings-icon.th-large { + background-position: -216px 0; +} +.halflings-icon.th { + background-position: -240px 0; +} +.halflings-icon.th-list { + background-position: -264px 0; +} +.halflings-icon.ok { + background-position: -288px 0; +} +.halflings-icon.remove { + background-position: -312px 0; +} +.halflings-icon.zoom-in { + background-position: -336px 0; +} +.halflings-icon.zoom-out { + background-position: -360px 0; +} +.halflings-icon.off { + background-position: -384px 0; +} +.halflings-icon.signal { + background-position: -408px 0; +} +.halflings-icon.cog { + background-position: -432px 0; +} +.halflings-icon.trash { + background-position: -456px 0; +} +.halflings-icon.home { + background-position: 0 -24px; +} +.halflings-icon.file { + background-position: -24px -24px; +} +.halflings-icon.time { + background-position: -48px -24px; +} +.halflings-icon.road { + background-position: -72px -24px; +} +.halflings-icon.download-alt { + background-position: -96px -24px; +} +.halflings-icon.download { + background-position: -120px -24px; +} +.halflings-icon.upload { + background-position: -144px -24px; +} +.halflings-icon.inbox { + background-position: -168px -24px; +} +.halflings-icon.play-circle { + background-position: -192px -24px; +} +.halflings-icon.repeat { + background-position: -216px -24px; +} +.halflings-icon.refresh { + background-position: -240px -24px; +} +.halflings-icon.list-alt { + background-position: -264px -24px; +} +.halflings-icon.lock { + background-position: -287px -24px; +} +.halflings-icon.flag { + background-position: -312px -24px; +} +.halflings-icon.headphones { + background-position: -336px -24px; +} +.halflings-icon.volume-off { + background-position: -360px -24px; +} +.halflings-icon.volume-down { + background-position: -384px -24px; +} +.halflings-icon.volume-up { + background-position: -408px -24px; +} +.halflings-icon.qrcode { + background-position: -432px -24px; +} +.halflings-icon.barcode { + background-position: -456px -24px; +} +.halflings-icon.tag { + background-position: 0 -48px; +} +.halflings-icon.tags { + background-position: -25px -48px; +} +.halflings-icon.book { + background-position: -48px -48px; +} +.halflings-icon.bookmark { + background-position: -72px -48px; +} +.halflings-icon.print { + background-position: -96px -48px; +} +.halflings-icon.camera { + background-position: -120px -48px; +} +.halflings-icon.font { + background-position: -144px -48px; +} +.halflings-icon.bold { + background-position: -167px -48px; +} +.halflings-icon.italic { + background-position: -192px -48px; +} +.halflings-icon.text-height { + background-position: -216px -48px; +} +.halflings-icon.text-width { + background-position: -240px -48px; +} +.halflings-icon.align-left { + background-position: -264px -48px; +} +.halflings-icon.align-center { + background-position: -288px -48px; +} +.halflings-icon.align-right { + background-position: -312px -48px; +} +.halflings-icon.align-justify { + background-position: -336px -48px; +} +.halflings-icon.list { + background-position: -360px -48px; +} +.halflings-icon.indent-left { + background-position: -384px -48px; +} +.halflings-icon.indent-right { + background-position: -408px -48px; +} +.halflings-icon.facetime-video { + background-position: -432px -48px; +} +.halflings-icon.picture { + background-position: -456px -48px; +} +.halflings-icon.pencil { + background-position: 0 -72px; +} +.halflings-icon.map-marker { + background-position: -24px -72px; +} +.halflings-icon.adjust { + background-position: -48px -72px; +} +.halflings-icon.tint { + background-position: -72px -72px; +} +.halflings-icon.edit { + background-position: -96px -72px; +} +.halflings-icon.share { + background-position: -120px -72px; +} +.halflings-icon.check { + background-position: -144px -72px; +} +.halflings-icon.move { + background-position: -168px -72px; +} +.halflings-icon.step-backward { + background-position: -192px -72px; +} +.halflings-icon.fast-backward { + background-position: -216px -72px; +} +.halflings-icon.backward { + background-position: -240px -72px; +} +.halflings-icon.play { + background-position: -264px -72px; +} +.halflings-icon.pause { + background-position: -288px -72px; +} +.halflings-icon.stop { + background-position: -312px -72px; +} +.halflings-icon.forward { + background-position: -336px -72px; +} +.halflings-icon.fast-forward { + background-position: -360px -72px; +} +.halflings-icon.step-forward { + background-position: -384px -72px; +} +.halflings-icon.eject { + background-position: -408px -72px; +} +.halflings-icon.chevron-left { + background-position: -432px -72px; +} +.halflings-icon.chevron-right { + background-position: -456px -72px; +} +.halflings-icon.plus-sign { + background-position: 0 -96px; +} +.halflings-icon.minus-sign { + background-position: -24px -96px; +} +.halflings-icon.remove-sign { + background-position: -48px -96px; +} +.halflings-icon.ok-sign { + background-position: -72px -96px; +} +.halflings-icon.question-sign { + background-position: -96px -96px; +} +.halflings-icon.info-sign { + background-position: -120px -96px; +} +.halflings-icon.screenshot { + background-position: -144px -96px; +} +.halflings-icon.remove-circle { + background-position: -168px -96px; +} +.halflings-icon.ok-circle { + background-position: -192px -96px; +} +.halflings-icon.ban-circle { + background-position: -216px -96px; +} +.halflings-icon.arrow-left { + background-position: -240px -96px; +} +.halflings-icon.arrow-right { + background-position: -264px -96px; +} +.halflings-icon.arrow-up { + background-position: -289px -96px; +} +.halflings-icon.arrow-down { + background-position: -312px -96px; +} +.halflings-icon.share-alt { + background-position: -336px -96px; +} +.halflings-icon.resize-full { + background-position: -360px -96px; +} +.halflings-icon.resize-small { + background-position: -384px -96px; +} +.halflings-icon.plus { + background-position: -408px -96px; +} +.halflings-icon.minus { + background-position: -433px -96px; +} +.halflings-icon.asterisk { + background-position: -456px -96px; +} +.halflings-icon.exclamation-sign { + background-position: 0 -120px; +} +.halflings-icon.gift { + background-position: -24px -120px; +} +.halflings-icon.leaf { + background-position: -48px -120px; +} +.halflings-icon.fire { + background-position: -72px -120px; +} +.halflings-icon.eye-open { + background-position: -96px -120px; +} +.halflings-icon.eye-close { + background-position: -120px -120px; +} +.halflings-icon.warning-sign { + background-position: -144px -120px; +} +.halflings-icon.plane { + background-position: -168px -120px; +} +.halflings-icon.calendar { + background-position: -192px -120px; +} +.halflings-icon.random { + background-position: -216px -120px; +} +.halflings-icon.comments { + background-position: -240px -120px; +} +.halflings-icon.magnet { + background-position: -264px -120px; +} +.halflings-icon.chevron-up { + background-position: -288px -120px; +} +.halflings-icon.chevron-down { + background-position: -313px -119px; +} +.halflings-icon.retweet { + background-position: -336px -120px; +} +.halflings-icon.shopping-cart { + background-position: -360px -120px; +} +.halflings-icon.folder-close { + background-position: -384px -120px; +} +.halflings-icon.folder-open { + background-position: -408px -120px; +} +.halflings-icon.resize-vertical { + background-position: -432px -119px; +} +.halflings-icon.resize-horizontal { + background-position: -456px -118px; +} +.halflings-icon.hdd { + background-position: 0px -144px; +} +.halflings-icon.bullhorn { + background-position: -24px -144px; +} +.halflings-icon.bell { + background-position: -48px -144px; +} +.halflings-icon.certificate { + background-position: -72px -144px; +} +.halflings-icon.thumbs-up { + background-position: -96px -144px; +} +.halflings-icon.thumbs-down { + background-position: -120px -144px; +} +.halflings-icon.hand-right { + background-position: -144px -144px; +} +.halflings-icon.hand-left { + background-position: -168px -144px; +} +.halflings-icon.hand-top { + background-position: -192px -144px; +} +.halflings-icon.hand-down { + background-position: -216px -144px; +} +.halflings-icon.circle-arrow-right { + background-position: -240px -144px; +} +.halflings-icon.circle-arrow-left { + background-position: -264px -144px; +} +.halflings-icon.circle-arrow-top { + background-position: -288px -144px; +} +.halflings-icon.circle-arrow-down { + background-position: -313px -144px; +} +.halflings-icon.globe { + background-position: -336px -144px; +} +.halflings-icon.wrench { + background-position: -360px -144px; +} +.halflings-icon.tasks { + background-position: -384px -144px; +} +.halflings-icon.filter { + background-position: -408px -144px; +} +.halflings-icon.briefcase { + background-position: -432px -144px; +} +.halflings-icon.fullscreen { + background-position: -456px -144px; +} +.halflings-icon.dashboard { + background-position: 0px -168px; +} +.halflings-icon.paperclip { + background-position: -24px -168px; +} +.halflings-icon.heart-empty { + background-position: -48px -168px; +} +.halflings-icon.link { + background-position: -72px -168px; +} +.halflings-icon.phone { + background-position: -96px -168px; +} +.halflings-icon.pushpin { + background-position: -120px -168px; +} +.halflings-icon.euro { + background-position: -144px -168px; +} +.halflings-icon.usd { + background-position: -168px -168px; +} +.halflings-icon.gbp { + background-position: -192px -168px; +} +.halflings-icon.sort { + background-position: -216px -168px; +} +.halflings-icon.sort-by-alphabet { + background-position: -240px -168px; +} +.halflings-icon.sort-by-alphabet-alt { + background-position: -264px -168px; +} +.halflings-icon.sort-by-order { + background-position: -288px -168px; +} +.halflings-icon.sort-by-order-alt { + background-position: -313px -168px; +} +.halflings-icon.sort-by-attributes { + background-position: -336px -168px; +} +.halflings-icon.sort-by-attributes-alt { + background-position: -360px -168px; +} +.halflings-icon.unchecked { + background-position: -384px -168px; +} +.halflings-icon.expand { + background-position: -408px -168px; +} +.halflings-icon.collapse { + background-position: -432px -168px; +} +.halflings-icon.collapse-top { + background-position: -456px -168px; +} + +/* Localized */ \ No newline at end of file diff --git a/gloam/WebRoot/css/home.css b/gloam/WebRoot/css/home.css new file mode 100644 index 0000000..c480800 --- /dev/null +++ b/gloam/WebRoot/css/home.css @@ -0,0 +1,111 @@ +#msgTable .fontWarn{ + color:#fc0; +} +#msgTable .fontWarn:hover{ + color:#666; +} + +body{ + background-color:#333 ; + +} +*{ + margin: 0px; + padding: 0px; + } + #lMenu li{ + position:relative; + } + #lMenu li .menu{ + position: absolute; + display: none; + margin-left: 100%; + margin-top: -50px; + width: 180px; + background: #3a3a3a; + } + .submenu{ + color: #fc0; + } + .submenu:hover{ + color: #666; + } +.sidebar-nav .sidebar-toggler { + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); + margin-top: 15px; + margin-left: 2%; + width: 29px; + height: 29px; + background-repeat: no-repeat; +} +.sidebar-nav .sidebar-toggler1 { + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); + margin-top: 15px; + margin-left: 82%; + width: 29px; + height: 29px; + background-repeat: no-repeat; +} +.sidebar-toggler { + background-image: url(../img/sidebar-toggler.jpg); + background-color: #242424; +} +.sidebar-toggler1 { + background-image: url(../img/sidebar-toggler.jpg); + background-color: #242424; +} +.page-sidebar ul > li > a > .arrow:before { + float: right; + margin-top: 1px; + margin-right: 5px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f104"; + font-weight: 300; + text-shadow:none; +} +.arrow{ + display: none; +} +a{ + cursor: pointer; +} +.breadcrumb { + margin: 40px 0 0 0 ; + line-height: 34px; +} +#submenu{ + overflow-y: auto; + max-height: 400px; + overflow-x: hidden; +} + +.top1{ + position:fixed; + top:85%; + right: 5px; + /*background: url(../img/top1.png) no-repeat;*/ + float: right; + height: 90px; + width: 30px; +} + +.halflings-icon.redsvg { + background-image: url("../img/ui-icons_cd0a0a_256x240.png"); +} +.halflings-icon.warning-sign { + background-position: -2px -143px; +} +.positionFixed{ +position:fixed !important; +} +.error_tip { + margin: 20px 0 0 20px; + font-size: 20px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/ie.css b/gloam/WebRoot/css/ie.css new file mode 100644 index 0000000..f9b998e --- /dev/null +++ b/gloam/WebRoot/css/ie.css @@ -0,0 +1,107 @@ +.navbar-inner a i { + margin-top: 4px; +} + +.box-header h2 i { + margin-top: 1px; +} + +.todo-actions i { + margin: 2px 5px 0px 5px; +} + +.message .header i { + margin-top: 3px; +} + +.container-fluid-full { + overflow: hidden; + position: relative; + height: 100%; +} + +#content { + width: 85.578%; + padding: 28px; + margin: 0px 0px; + margin-left: 14.422% !important; +} + +#sidebar-left { + background: #3D3D3D; + margin-left: 0px !important; + position: absolute; + height: 100%; +} + +hr { + height: 2px; + border: none; + background: #f9f9f9; +} + +.dark { + right: -12px; +} + +footer { + margin: 0px 0px 0px 0px; + padding: 10px 20px; +} + +.hideInIE8 { + display: none; +} + +.task .time .date { + font-size: 14px; + margin-bottom: 5px; +} + +.statbox .footer { + background:none; + -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19FFFFFF,endColorstr=#19FFFFFF); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19FFFFFF,endColorstr=#19FFFFFF); + zoom: 1; +} + +.statbox .footer:hover { + background:none; + -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33FFFFFF,endColorstr=#33FFFFFF); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33FFFFFF,endColorstr=#33FFFFFF); + zoom: 1; +} + +.sidebar-nav > ul > li > ul { + background:none; + -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3F000000,endColorstr=#3F000000); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3F000000,endColorstr=#3F000000); + zoom: 1; +} + +.verticalChart .singleBar .bar .value span{ + color: #000; +} + +.verticalChart .singleBar .bar { + background:none; + -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33FFFFFF,endColorstr=#33FFFFFF); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33FFFFFF,endColorstr=#33FFFFFF); + zoom: 1; +} + +ul.chat.metro li .message { + background:none; + -ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#44000000,endColorstr=#44000000); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#44000000,endColorstr=#44000000); + zoom: 1; + border: 0px; +} + +ul.chat.metro li.left .message .arrow { + left: -20px; +} + +ul.chat.metro li.right .message .arrow { + right: -20px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/ie9.css b/gloam/WebRoot/css/ie9.css new file mode 100644 index 0000000..db9d8dd --- /dev/null +++ b/gloam/WebRoot/css/ie9.css @@ -0,0 +1,23 @@ +.dark { + right: -25px; +} + +.btn-overlay { + filter: none !important; +} + +hr, +.sliderOverlay, +.progressBarOverlay, +.slider, +.progress, +.progressSlim, +.ui-progressbar-value, +.ui-slider-range, +.sliderVertical { + filter: none !important; +} + +.verticalChart .singleBar .bar .value span{ + color: #3b3b41; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/jbox.css b/gloam/WebRoot/css/jbox.css new file mode 100644 index 0000000..d500b0f --- /dev/null +++ b/gloam/WebRoot/css/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #4C4C4C;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#4C4C4C;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#4C4C4C;border-color:#4C4C4C;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery-ui-1.8.21.custom.css b/gloam/WebRoot/css/jquery-ui-1.8.21.custom.css new file mode 100644 index 0000000..9dfa1ba --- /dev/null +++ b/gloam/WebRoot/css/jquery-ui-1.8.21.custom.css @@ -0,0 +1,566 @@ +/*! + * jQuery UI CSS Framework 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and ../img */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/*! + * jQuery UI CSS Framework 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(../img/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(../img/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(../img/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(../img/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(../img/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(../img/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../img/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and ../img */ +.ui-icon { width: 16px; height: 16px; background-image: url(../img/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(../img/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(../img/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(../img/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../img/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(../img/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(../img/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../img/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*! + * jQuery UI Resizable 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*! + * jQuery UI Selectable 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/*! + * jQuery UI Accordion 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/*! + * jQuery UI Autocomplete 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.21 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/*! + * jQuery UI Button 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/*! + * jQuery UI Dialog 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/*! + * jQuery UI + 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/*! + * jQuery UI Tabs 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding:0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px;background:none repeat scroll 0% 0% rgb(191, 191, 191) !important; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/*! + * jQuery UI Datepicker 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/*! + * jQuery UI Progressbar 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } diff --git a/gloam/WebRoot/css/jquery.cleditor.css b/gloam/WebRoot/css/jquery.cleditor.css new file mode 100644 index 0000000..648d50d --- /dev/null +++ b/gloam/WebRoot/css/jquery.cleditor.css @@ -0,0 +1,24 @@ +.cleditorMain {border:1px solid #ddd; padding:0 1px 1px; background-color:white} +.cleditorMain iframe {border:none; margin:0; padding:0} +.cleditorMain textarea {border:none; margin:0; padding:0; overflow-y:scroll; font:10pt Arial,Verdana; resize:none; outline:none /* webkit grip focus */} +.cleditorToolbar {background: url('../img/toolbar.gif') repeat} +.cleditorGroup {float:left; height:26px} +.cleditorButton {float:left; width:24px; height:24px; margin:1px 0 1px 0; background: url('../img/buttons.gif')} +.cleditorDisabled {opacity:0.3; filter:alpha(opacity=30)} +.cleditorDivider {float:left; width:1px; height:23px; margin:1px 0 1px 0; background:#CCC} +.cleditorPopup {border:solid 1px #999; background-color:white; position:absolute; font:10pt Arial,Verdana; cursor:default; z-index:10000} +.cleditorList div {padding:2px 4px 2px 4px} +.cleditorList p, +.cleditorList h1, +.cleditorList h2, +.cleditorList h3, +.cleditorList h4, +.cleditorList h5, +.cleditorList h6, +.cleditorList font {padding:0; margin:0; background-color:Transparent} +.cleditorColor {width:150px; padding:1px 0 0 1px} +.cleditorColor div {float:left; width:14px; height:14px; margin:0 1px 1px 0} +.cleditorPrompt {background-color:#F6F7F9; padding:4px; font-size:8.5pt} +.cleditorPrompt input, +.cleditorPrompt textarea {font:8.5pt Arial,Verdana;} +.cleditorMsg {background-color:#FDFCEE; width:150px; padding:4px; font-size:8.5pt} diff --git a/gloam/WebRoot/css/jquery.gritter.css b/gloam/WebRoot/css/jquery.gritter.css new file mode 100644 index 0000000..f0fa3de --- /dev/null +++ b/gloam/WebRoot/css/jquery.gritter.css @@ -0,0 +1,112 @@ +/* the norm */ +#gritter-notice-wrapper { + position:fixed; + top:20px; + right:20px; + width:301px; + z-index:9999; +} + +#gritter-notice-wrapper.top-left { + left: 20px; + right: auto; +} + +#gritter-notice-wrapper.bottom-right { + top: auto; + left: auto; + bottom: 20px; + right: 20px; +} + +#gritter-notice-wrapper.bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; +} + +.gritter-item-wrapper { + position:relative; + margin:0 0 10px 0; +} + +.gritter-item { + background-color: rgba(0,0,0,0.8); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc000000', endColorstr='#cc000000',GradientType=0 ); /* IE6-8 */ + color:#fff; + padding:15px; + font-size: 11px; + -webkit-border-radius: 4px !important; + -moz-border-radius: 4px !important; + border-radius: 4px !important; + -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.25); + box-shadow: 0px 1px 1px rgba(0,0,0,0.25); +} + +.hover .gritter-item {} + +.gritter-item p { + padding:0; + margin:0; + word-wrap:break-word; +} + +.gritter-close { + display:none; + position:absolute; + top:5px; + right:5px; + cursor:pointer; + width:12px; + height:12px; + background: url(../img/close-button-white.png); + opacity: .6; + +} + +.gritter-title { + font-size:14px; + font-weight:bold; + padding:0 0 7px 0; + display:block; + text-shadow:1px 1px 0 #000; /* Not supported by IE :( */ +} + +.gritter-image { + width:48px; + height:48px; + float:left; + margin: -5px 5px 5px -5px; +} + +.gritter-with-image, +.gritter-without-image { + padding:0; +} + +.gritter-with-image { + width:220px; + float:right; +} + +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item { + background-color: rgba(255,255,255,0.8); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ccFFFFFF', endColorstr='#ccFFFFFF',GradientType=0 ); /* IE6-8 */ + color: #646464 !important; + -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.25); + box-shadow: 0px 1px 1px rgba(0,0,0,0.25); +} + +.gritter-light .gritter-close { + background: url(../img/close-button.png); +} + + +.gritter-light .gritter-title { + color: #646464 !important; + text-shadow: none !important; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery.iphone.toggle.css b/gloam/WebRoot/css/jquery.iphone.toggle.css new file mode 100644 index 0000000..78de2f7 --- /dev/null +++ b/gloam/WebRoot/css/jquery.iphone.toggle.css @@ -0,0 +1,147 @@ +.iPhoneCheckContainer { + position: relative; + height: 27px; + cursor: pointer; + overflow: hidden; } + .iPhoneCheckContainer input { + position: absolute; + top: 5px; + left: 30px; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; } + .iPhoneCheckContainer label { + white-space: nowrap; + font-size: 17px; + line-height: 17px; + font-weight: bold; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + cursor: pointer; + display: block; + height: 27px; + position: absolute; + width: auto; + top: 0; + padding-top: 5px; + overflow: hidden; } + .iPhoneCheckContainer, .iPhoneCheckContainer label { + user-select: none; + -moz-user-select: none; + -khtml-user-select: none; } + +.iPhoneCheckDisabled { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + opacity: 0.5; } + +label.iPhoneCheckLabelOn { + color: white; + background: url('../img/iphone-style-checkboxes/on-63584.png') no-repeat; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6); + left: 0; + padding-top: 5px; } + label.iPhoneCheckLabelOn span { + padding-left: 8px; } +label.iPhoneCheckLabelOff { + color: #8b8b8b; + background: url('../img/iphone-style-checkboxes/off-63584.png') no-repeat right 0; + text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6); + text-align: right; + right: 0; } + label.iPhoneCheckLabelOff span { + padding-right: 8px; } + +.iPhoneCheckHandle { + display: block; + height: 27px; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + width: 0; + background: url('../img/iphone-style-checkboxes/slider_left-63584.png') no-repeat; + padding-left: 3px; } + +.iPhoneCheckHandleRight { + height: 100%; + width: 100%; + padding-right: 3px; + background: url('../img/iphone-style-checkboxes/slider_right-63584.png') no-repeat right 0; } + +.iPhoneCheckHandleCenter { + height: 100%; + width: 100%; + background: url('../img/iphone-style-checkboxes/slider_center-63584.png'); } + +.iOSCheckContainer { + position: relative; + height: 27px; + cursor: pointer; + overflow: hidden; } + .iOSCheckContainer input { + position: absolute; + top: 5px; + left: 30px; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; } + .iOSCheckContainer label { + white-space: nowrap; + font-size: 17px; + line-height: 17px; + font-weight: bold; + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + cursor: pointer; + display: block; + height: 27px; + position: absolute; + width: auto; + top: 0; + padding-top: 5px; + overflow: hidden; } + .iOSCheckContainer, .iOSCheckContainer label { + user-select: none; + -moz-user-select: none; + -khtml-user-select: none; } + +.iOSCheckDisabled { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); + opacity: 0.5; } + +label.iOSCheckLabelOn { + color: white; + background: url('../img/ios-style-checkboxes/on-63584.png') no-repeat; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6); + left: 0; + padding-top: 5px; } + label.iOSCheckLabelOn span { + padding-left: 8px; } +label.iOSCheckLabelOff { + color: #8b8b8b; + background: url('../img/ios-style-checkboxes/off-63584.png') no-repeat right 0; + text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6); + text-align: right; + right: 0; } + label.iOSCheckLabelOff span { + padding-right: 8px; } + +.iOSCheckHandle { + display: block; + height: 27px; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + width: 0; + background: url('../img/ios-style-checkboxes/slider_left-63584.png') no-repeat; + padding-left: 3px; } + +.iOSCheckHandleRight { + height: 100%; + width: 100%; + padding-right: 3px; + background: url('../img/ios-style-checkboxes/slider_right-63584.png') no-repeat right 0; } + +.iOSCheckHandleCenter { + height: 100%; + width: 100%; + background: url('../img/ios-style-checkboxes/slider_center-63584.png'); } + +/* Localized */ \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery.jScrollPane.css b/gloam/WebRoot/css/jquery.jScrollPane.css new file mode 100644 index 0000000..08ef73e --- /dev/null +++ b/gloam/WebRoot/css/jquery.jScrollPane.css @@ -0,0 +1,121 @@ +/* + * CSS Styles that are needed by jScrollPane for it to operate correctly. + * + * Include this stylesheet in your site or copy and paste the styles below into your stylesheet - jScrollPane + * may not operate correctly without them. + */ + +.jspContainer +{ + overflow: hidden; + position: relative; +} + +.jspPane +{ + position: absolute; +} + +.jspVerticalBar +{ + position: absolute; + top: 0; + right: 0; + width: 6px; + height: 100%; + background: red; +} + +.jspHorizontalBar +{ + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 16px; + background: red; +} + +.jspVerticalBar *, +.jspHorizontalBar * +{ + margin: 0; + padding: 0; +} + +.jspCap +{ + display: none; +} + +.jspHorizontalBar .jspCap +{ + float: left; +} + +.jspTrack +{ + background: #757575 ; + position: relative; +} + +.jspDrag +{ + background: #333; + position: relative; + top: 0; + left: 0; + cursor: pointer; + border-radius:4px; +} + +.jspHorizontalBar .jspTrack, +.jspHorizontalBar .jspDrag +{ + float: left; + height: 100%; +} + +.jspArrow +{ + background: #50506d; + text-indent: -20000px; + display: block; + cursor: pointer; +} + +.jspArrow.jspDisabled +{ + cursor: default; + background: #80808d; +} + +.jspVerticalBar .jspArrow +{ + height: 16px; +} + +.jspHorizontalBar .jspArrow +{ + width: 16px; + float: left; + height: 100%; +} + +.jspVerticalBar .jspArrow:focus +{ + outline: none; +} + +.jspCorner +{ + background: #eeeef4; + float: left; + height: 100%; +} + +/* Yuk! CSS Hack for IE6 3 pixel bug :( */ +* html .jspCorner +{ + margin: 0 -3px 0 0; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery.noty.css b/gloam/WebRoot/css/jquery.noty.css new file mode 100644 index 0000000..b589ebf --- /dev/null +++ b/gloam/WebRoot/css/jquery.noty.css @@ -0,0 +1,105 @@ + +/* CORE STYLES */ + + /* noty bar */ + .noty_bar { + position: fixed; + display: none; + z-index: 9999999; + } + + /* noty_message */ + .noty_bar .noty_message { + text-align: center; + } + + /* noty close button */ + .noty_bar .noty_close { + cursor: pointer; + } + + /* noty modal */ + .noty_modal { + position: fixed; + width: 100%; + height: 100%; + background-color: #000; + z-index: 10000; + opacity: 0.6; + display: none; + left: 0; + top: 0; + } + + /* noty container for noty_layout_topLeft & noty_layout_topRight */ + ul.noty_cont { + position: fixed; + z-index: 10000000; + margin: 0px; + padding: 0px; + list-style: none; + width: 300px; + } + ul.noty_cont li { + position: relative; + float: left; + clear: both; + list-style: none; + padding: 0px; + margin: 10px 0 0 0; + width: 300px; /* Fix for: http://bugs.jquery.com/ticket/2278 */ + } + ul.noty_cont.noty_layout_topLeft {left:20px; top:20px;} + ul.noty_cont.noty_layout_topRight {right:40px; top:20px;} + ul.noty_cont.noty_layout_bottomLeft {left:20px; bottom:20px} + ul.noty_cont.noty_layout_bottomRight {right:40px; bottom:20px} + ul.noty_cont.noty_layout_topRight li {float:right} + +/* LAYOUTS */ + + /* noty_layout_top */ + .noty_bar.noty_layout_top { + top: 0; + left: 0; + width: 100%; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + } + + /* noty_layout_bottom */ + .noty_bar.noty_layout_bottom { + bottom: 0; + left: 0; + width: 100%; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + } + + /* noty_layout_center */ + .noty_bar.noty_layout_center { + top: 40%; + } + + /* noty_layout_topLeft & noty_layout_topRight */ + .noty_bar.noty_layout_topLeft, + .noty_bar.noty_layout_topRight, + .noty_bar.noty_layout_bottomLeft, + .noty_bar.noty_layout_bottomRight { + width: 100%; + clear: both; + position: relative; + } + + .noty_bar.noty_layout_topLeft .noty_message, + .noty_bar.noty_layout_topRight .noty_message, + .noty_bar.noty_layout_bottomLeft .noty_message, + .noty_bar.noty_layout_bottomRight .noty_message { + text-align: left; + } + + /* noty_layout_topCenter */ + .noty_bar.noty_layout_topCenter { + top: 20px; + } \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery.qtip.min.css b/gloam/WebRoot/css/jquery.qtip.min.css new file mode 100644 index 0000000..22d86e3 --- /dev/null +++ b/gloam/WebRoot/css/jquery.qtip.min.css @@ -0,0 +1,74 @@ +/* qTip2 v2.2.1 | Plugins: tips viewport | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 21:55:19 */ + +.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0} +.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:center;word-wrap:break-word} +.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700} +.qtip-titlebar+.qtip-content{border-top-width:0!important} +.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent} +.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px} +* html .qtip-titlebar .qtip-close{top:16px} +.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr} +.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none} +.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat} +.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555} +.qtip-default .qtip-titlebar{background-color:#FFEF93} +.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777} +.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111} +.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545} +.qtip-light .qtip-titlebar{background-color:#f1f1f1} +.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3} +.qtip-dark .qtip-titlebar{background-color:#404040} +.qtip-dark .qtip-icon{border-color:#444} +.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030} +.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35} +.qtip-cream .qtip-titlebar{background-color:#F0DE7D} +.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0} +.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323} +.qtip-red .qtip-titlebar{background-color:#F06D65} +.qtip-red .qtip-close .qtip-icon{background-position:-102px 0} +.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252} +.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219} +.qtip-green .qtip-titlebar{background-color:#B0DE78} +.qtip-green .qtip-close .qtip-icon{background-position:-42px 0} +.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD} +.qtip-blue .qtip-titlebar{background-color:#D0E9F5} +.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0} +.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)} +.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px} +.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0} +.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)} +.qtip-youtube .qtip-titlebar{background-color:transparent} +.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"} +.qtip-youtube .qtip-icon{border-color:#222} +.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030} +.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333} +.qtip-jtools .qtip-titlebar{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"} +.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent} +.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333} +.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent} +.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent} +.qtip-cluetip .qtip-icon{border-color:#808064} +.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952} +.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000} +.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent} +.qtip-tipsy .qtip-content{padding:6px 10px} +.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none} +.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030} + + +.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font: 12px arial,sans-serif;} +.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"} +.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589} +.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555} +.qtip-bootstrap{font-size:12px;line-height:20px;padding:1px;border:1px solid #F1D031;background-color:#FFFFA3;color:#555;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box} +.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0} +.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none} +.qtip-bootstrap .qtip-content{padding:9px 14px} +.qtip-bootstrap .qtip-icon{background:0 0} +.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)} +.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)} +.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none} +.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10} +.qtip .qtip-tip,x:-o-prefocus{visibility:hidden} +.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent} +.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible} \ No newline at end of file diff --git a/gloam/WebRoot/css/jquery.xctips.css b/gloam/WebRoot/css/jquery.xctips.css new file mode 100644 index 0000000..619284a --- /dev/null +++ b/gloam/WebRoot/css/jquery.xctips.css @@ -0,0 +1,5 @@ +.xctips{position:fixed; top:0; left:0; width:100%; height:44px; z-index:999; background:#3498db; color:#FFF; line-height:44px; text-align:center; vertical-align:middle; font-size:16px; transition:background .2s linear;-webkit-transition:background .2s linear; font-family: "Microsoft YaHei", "????????", "?????? Light" , "??????", "Arial", "SimSun", "?????";} +.xctips.info{background:#3498db;} +.xctips.success{background:#2ecc71;} +.xctips.error{background:#ff9090;} +.xctips.loading{background:#F93;} \ No newline at end of file diff --git a/gloam/WebRoot/css/list.css b/gloam/WebRoot/css/list.css new file mode 100644 index 0000000..e7d451a --- /dev/null +++ b/gloam/WebRoot/css/list.css @@ -0,0 +1,201 @@ +select { + width: 86px; + background-color: #ffffff; + border: 1px solid #cccccc; + height: 22px; +} + +label,select { + font-size: 12px; +} + +.mydiv { + background-color: #fff; + border: 1px solid #000; + text-align: center; + line-height: 40px; + font-size: 14px; + font-weight: bold; + z-index: 99; + width: 220px; + height: 80px; + left: 50%; /*FF IE7*/ + top: 50%; /*FF IE7*/ + margin-left: -150px !important; /*FF IE7 该值为本身宽的一半 */ + margin-top: -60px !important; /*FF IE7 该值为本身高的一半*/ + margin-top: 0px; + position: fixed !important; /*FF IE7*/ + position: absolute; /*IE6*/ + _top: expression(eval(document.compatMode && + document.compatMode == 'CSS1Compat') ? + documentElement.scrollTop + ( + document.documentElement.clientHeight-this.offsetHeight )/ 2 : /*IE6*/ + + document.body.scrollTop + ( document.body.clientHeight - + this.clientHeight )/ 2 ); /*IE5 IE5.5*/ +} + +.bg { + background-color: #ccc; + width: 100%; + height: 100%; + left: 0; + top: 0; /*FF IE7*/ + filter: alpha(opacity = 50); /*IE*/ + opacity: 0.5; /*FF*/ + z-index: 1; + position: fixed !important; /*FF IE7*/ + position: absolute; /*IE6*/ + _top: expression(eval(document.compatMode && + document.compatMode == 'CSS1Compat') ? + documentElement.scrollTop + ( + document.documentElement.clientHeight-this.offsetHeight )/ 2 : /*IE6*/ + + document.body.scrollTop + ( + document.body.clientHeight - this.clientHeight )/ 2 ); /*IE5 IE5.5*/ +} + +/*The END*/ +#suggest1 { + width: 200px; + text-align: left; +} + +.gray { + color: gray; +} + +.ac_results { + background: #fff; + border: 1px solid #7f9db9; + position: absolute; + z-index: 10000; + display: none; + font-size: 12px; +} + +.ac_results ul { + margin: 0; + padding: 0; + list-style: none; +} + +.ac_results li a { + white-space: nowrap; + text-decoration: none; + display: block; + color: #05a; + padding: 1px 3px; +} + +.ac_results li { + border: 1px solid #fff; +} + +.ac_over,.ac_results li a:hover { + background: #c8e3fc; +} + +.ac_results li a span { + float: right; +} + +.ac_result_tip { + border-bottom: 1px dashed #666; + padding: 3px; +} + +.ac_results_main { + width: 200px; + height: 600px; + overflow-y: auto; +} + +.box_1 { + font-size: 14px; + line-height: 30px; + float: left; + margin-left: 8px; + vertical-align: middle; +} + +.box_2 { + line-height: 38px; + float: left; + margin-right: 4%; + margin-top: 0.76%; + margin-left:30px; + vertical-align: middle; +} +.box_21 { + line-height: 38px; + float: right; + margin-top: 0.76%; + margin-right:1.6%; + vertical-align: middle; +} +.box_22 { + line-height: 38px; + float: right; + margin-top: 0.76%; + margin-right:-0.5%; + vertical-align: middle; +} +.rtd { + width: 100px; + text-align: right; + white-space: nowrap; +} + + + +.ltd input { + width: 153px; +} +.ltd select { + width:167px; + height: 30px; +} + +a{ +color: yellow; +} +.table-striped tbody > tr > td.htop{ + border-top: 0; + background-color: #4C4C4C; +} + +img.limg{ + width: 20px; + height: 20px; + border: 0; +} +body{ + background-color:#333 ; +} +.table.table{ + background-color: #333; +} +.table-bordered tbody:first-child tr:first-child td { + border-top: 1px solid #fff; +} +.showTips{ + color: #fff; +} +.showTips:hover, .showTips:focus { + color: #fff; + text-decoration:none; +} +#maindiv{ + margin-top: 75px; +} +#maindiv1{ + margin-top: 40px; +} +.cols{ + float: left; + margin-left: 12%; +} +.chi{ + margin-top: 5px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/loading.css b/gloam/WebRoot/css/loading.css new file mode 100644 index 0000000..fbf053f --- /dev/null +++ b/gloam/WebRoot/css/loading.css @@ -0,0 +1,638 @@ +/* Welcome to Compass. + * In this file you should write your main styles. (or centralize your imports) + * Import this file using the following HTML or equivalent: + * */ +/* line 5, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; +} + +/* line 22, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +html { + line-height: 1; +} + +/* line 24, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 26, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 28, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 30, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 103, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 32, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 116, C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; +} + +/* line 14, ../sass/loading.scss */ +.cpt-loading-mask * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 18, ../sass/loading.scss */ +.cpt-loading-mask.column { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent; + z-index: 100; + -moz-transform: translateZ(0); + -webkit-transform: translateZ(0); + transform: translateZ(0); + -moz-user-select: -moz-none; + -ms-user-select: none; + -webkit-user-select: none; + user-select: none; +} +/* line 31, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading { + position: absolute; + top: 50%; + left: 50%; + width: 260px; + background: rgba(0, 0, 0, 0.6); + -moz-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -moz-transform: translate3d(-50%, -50%, 0); + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + -moz-border-radius: 12px; + -webkit-border-radius: 12px; + border-radius: 12px; + padding: 16px; +} +/* line 42, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading { + position: relative; + width: 60px; + height: 60px; + background: transparent; + margin: 0 auto; +} +/* line 50, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div { + width: 80%; + height: 80%; + position: absolute; + left: 10%; + top: 10%; + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-animation: load 2.28s linear infinite; + -webkit-animation: load 2.28s linear infinite; + animation: load 2.28s linear infinite; +} +/* line 59, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div span { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + background: #FBC9B9; + position: absolute; + left: 50%; + margin-top: -10px; + margin-left: -10px; +} +/* line 72, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div:nth-child(1) { + -moz-animation-delay: 0.2s; + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} +/* line 75, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div:nth-child(2) { + -moz-animation-delay: 0.4s; + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} +/* line 78, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div:nth-child(3) { + -moz-animation-delay: 0.6s; + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} +/* line 81, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div:nth-child(4) { + -moz-animation-delay: 0.8s; + -webkit-animation-delay: 0.8s; + animation-delay: 0.8s; +} +/* line 84, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.origin div:nth-child(5) { + -moz-animation-delay: 1s; + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 90, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.pic { + width: 80px; + height: 80px; +} +/* line 94, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading.pic img { + width: 100%; + height: 100%; +} +/* line 101, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading-title { + width: 100%; + text-align: center; + color: #fff; + padding: 2px 0; + font-size: 16px; + margin-bottom: 20px; + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; +} +/* line 112, ../sass/loading.scss */ +.cpt-loading-mask.column .div-loading .loading-discription { + width: 100%; + text-align: center; + color: #fff; + font-size: 12px; + margin-top: 20px; +} +/* line 123, ../sass/loading.scss */ +.cpt-loading-mask.row { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent; + z-index: 100; + -moz-transform: translateZ(0); + -webkit-transform: translateZ(0); + transform: translateZ(0); + -moz-user-select: -moz-none; + -ms-user-select: none; + -webkit-user-select: none; + user-select: none; +} +/* line 136, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading { + position: absolute; + top: 50%; + left: 50%; + width: 260px; + background: rgba(0, 0, 0, 0.6); + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-flex-direction: row-reverse; + flex-direction: row-reverse; + -moz-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -moz-transform: translate3d(-50%, -50%, 0); + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + -moz-border-radius: 12px; + -webkit-border-radius: 12px; + border-radius: 12px; + padding: 15px; +} +/* line 151, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading { + position: relative; + width: 60px; + height: 60px; + background: transparent; + float: left; +} +/* line 160, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div { + width: 80%; + height: 80%; + position: absolute; + left: 10%; + top: 10%; + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-animation: load 2.28s linear infinite; + -webkit-animation: load 2.28s linear infinite; + animation: load 2.28s linear infinite; +} +/* line 169, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div span { + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + background: #FBC9B9; + position: absolute; + left: 50%; + margin-top: -10px; + margin-left: -10px; +} +/* line 182, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div:nth-child(1) { + -moz-animation-delay: 0.2s; + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} +/* line 185, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div:nth-child(2) { + -moz-animation-delay: 0.4s; + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} +/* line 188, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div:nth-child(3) { + -moz-animation-delay: 0.6s; + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} +/* line 191, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div:nth-child(4) { + -moz-animation-delay: 0.8s; + -webkit-animation-delay: 0.8s; + animation-delay: 0.8s; +} +/* line 194, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.origin div:nth-child(5) { + -moz-animation-delay: 1s; + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +/* line 200, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.pic { + width: 80px; + height: 80px; +} +/* line 204, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading.pic img { + width: 100%; + height: 100%; +} +/* line 211, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading-title { + width: 72%; + text-align: center; + color: #fff; + font-size: 16px; + padding: 2px 0; + padding-left: 20px; + margin-bottom: 0; + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; +} +/* line 223, ../sass/loading.scss */ +.cpt-loading-mask.row .div-loading .loading-discription { + display: none; + width: 100%; + text-align: center; + color: #fff; + font-size: 12px; + margin-top: 20px; +} + +/* line 236, ../sass/loading.scss */ +.animated { + animation-duration: 0.5s; + animation-fill-mode: both; +} + +/* line 241, ../sass/loading.scss */ +.animated.infinite { + animation-iteration-count: infinite; +} + +@-webkit-keyframes fadeInNoTransform { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeInNoTransform { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/* line 256, ../sass/loading.scss */ +.fadeInNoTransform { + -webkit-animation-name: fadeInNoTransform; + animation-name: fadeInNoTransform; +} + +@-webkit-keyframes fadeOutNoTransform { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes fadeOutNoTransform { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* line 269, ../sass/loading.scss */ +.fadeOutNoTransform { + -webkit-animation-name: fadeOutNoTransform; + animation-name: fadeOutNoTransform; +} + +@-webkit-keyframes load { + 0% { + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 10% { + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + } + 50% { + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-transform: rotate(160deg); + -ms-transform: rotate(160deg); + -webkit-transform: rotate(160deg); + transform: rotate(160deg); + } + 62% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + } + 65% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -moz-transform: rotate(200deg); + -ms-transform: rotate(200deg); + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + } + 90% { + -moz-transform: rotate(340deg); + -ms-transform: rotate(340deg); + -webkit-transform: rotate(340deg); + transform: rotate(340deg); + } + 100% { + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-moz-keyframes load { + 0% { + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 10% { + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + } + 50% { + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-transform: rotate(160deg); + -ms-transform: rotate(160deg); + -webkit-transform: rotate(160deg); + transform: rotate(160deg); + } + 62% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + } + 65% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -moz-transform: rotate(200deg); + -ms-transform: rotate(200deg); + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + } + 90% { + -moz-transform: rotate(340deg); + -ms-transform: rotate(340deg); + -webkit-transform: rotate(340deg); + transform: rotate(340deg); + } + 100% { + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-ms-keyframes load { + 0% { + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 10% { + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + } + 50% { + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-transform: rotate(160deg); + -ms-transform: rotate(160deg); + -webkit-transform: rotate(160deg); + transform: rotate(160deg); + } + 62% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + } + 65% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -moz-transform: rotate(200deg); + -ms-transform: rotate(200deg); + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + } + 90% { + -moz-transform: rotate(340deg); + -ms-transform: rotate(340deg); + -webkit-transform: rotate(340deg); + transform: rotate(340deg); + } + 100% { + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-o-keyframes load { + 0% { + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 10% { + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + } + 50% { + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-transform: rotate(160deg); + -ms-transform: rotate(160deg); + -webkit-transform: rotate(160deg); + transform: rotate(160deg); + } + 62% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + } + 65% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -moz-transform: rotate(200deg); + -ms-transform: rotate(200deg); + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + } + 90% { + -moz-transform: rotate(340deg); + -ms-transform: rotate(340deg); + -webkit-transform: rotate(340deg); + transform: rotate(340deg); + } + 100% { + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes load { + 0% { + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 10% { + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + } + 50% { + filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); + opacity: 1; + -moz-transform: rotate(160deg); + -ms-transform: rotate(160deg); + -webkit-transform: rotate(160deg); + transform: rotate(160deg); + } + 62% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + } + 65% { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -moz-transform: rotate(200deg); + -ms-transform: rotate(200deg); + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + } + 90% { + -moz-transform: rotate(340deg); + -ms-transform: rotate(340deg); + -webkit-transform: rotate(340deg); + transform: rotate(340deg); + } + 100% { + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} diff --git a/gloam/WebRoot/css/mycss.css b/gloam/WebRoot/css/mycss.css new file mode 100644 index 0000000..2f89e5f --- /dev/null +++ b/gloam/WebRoot/css/mycss.css @@ -0,0 +1,18 @@ + +.box_2{ + line-height:30px; + float:right; + margin-right:8px; + margin-bottom:10px; + vertical-align:middle; +} + + +img{ +height:15px !important; +} + +body{ + background-color:#333; +} + diff --git a/gloam/WebRoot/css/noty_theme_default.css b/gloam/WebRoot/css/noty_theme_default.css new file mode 100644 index 0000000..da94e8c --- /dev/null +++ b/gloam/WebRoot/css/noty_theme_default.css @@ -0,0 +1,240 @@ + +/* CORE STYLES*/ + + /* noty bar */ + .noty_bar.noty_theme_default { + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAYAAAAPOoFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPZJREFUeNq81tsOgjAMANB2ov7/7ypaN7IlIwi9rGuT8QSc9EIDAsAznxvY4pXPKr05RUE5MEVB+TyWfCEl9LZApYopCmo9C4FKSMtYoI8Bwv79aQJU4l6hXXCZrQbokJEksxHo9KMOgc6w1atHXM8K9DVC7FQnJ0i8iK3QooGgbnyKgMDygBWyYFZoqx4qS27KqLZJjA1D0jK6QJcYEQEiWv9PGkTsbqxQ8oT+ZtZB6AkdsJnQDnMoHXHLGKOgDYuCWmYhEERCI5gaamW0bnHdA3k2ltlIN+2qKRyCND0bhqSYCyTB3CAOc4WusBEIpkeBuPgJMAAX8Hs1NfqHRgAAAABJRU5ErkJggg==') repeat-x scroll left top #fff; + } + + /* if you use noty with customContainer you can access noty with this way + * .noty_custom_container noty will add automaticly this class to your customContainer + * .noty_theme_default your theme + * .noty_layout_inline your layout + */ + + /* custom container */ + .noty_custom_container.noty_theme_default.noty_layout_inline { + position: relative; + } + + /* custom growl container */ + .noty_custom_container.noty_theme_default.noty_layout_inline .noty_cont.noty_layout_inline { + position: static; + } + /* custom noty bar */ + .noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar { + border-width: 1px; + border-style: solid; + position: static; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + } + .noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar .noty_message { + font-size: 13px; + padding: 4px; + } + .noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar .noty_message .noty_buttons { + margin-top: -1px; + } + + /* noty_message */ + .noty_bar.noty_theme_default .noty_message { + padding: 8px 14px; + font-size: 16px; + font-weight: bold; + width: auto; + } + .noty_bar.noty_theme_default.noty_closable .noty_message { + padding: 8px 34px 8px 14px; + } + + /* noty_buttons */ + .noty_bar.noty_theme_default .noty_message .noty_buttons { + float: right; + font-size: 13px; + margin-top: -4px; + margin-left: 4px; + } + + /* noty_button */ + .noty_bar.noty_theme_default .noty_message .noty_buttons button { + margin-left: 5px; + } + + /* noty close button */ + .noty_bar.noty_theme_default .noty_close { + position: absolute; + top: 10px; + right: 10px; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAORJREFUeNq0lU0OgjAQhRm5gUl3rLyBB3BDQjwI4TDcgmu4NqwNJGxdueqWA4zzCJoxtvxoeckLzbz2C5ShEDNHDiXis/gkPooPY/0uvomv4ov48bUSQGUSF+Ka51WPc0kzNGwvLnm9ynHtB5B+hGkoaWDB/6t4AZOFe7ZkTxMAc1dqreU0TbnrunetbVvOsmzIPMoBrFwJYGgCY8wAgjFGDZlHFYCNK9EAXPUYmUcNgL0v1dAFMKjfRSsVx/H0hC0eOfhLmWwbfTcYozbXNsEbO/int8nhEPz4CnbAUuhfwFOAAQAA48KKOuexjwAAAABJRU5ErkJggg=='); + width: 20px; + height: 20px; + } + + /* noty modal */ + .noty_modal.noty_theme_default { + opacity: 0.7; + } + +/* LAYOUTS */ + + /* noty_layout_top */ + .noty_bar.noty_theme_default.noty_layout_top { + border-bottom: 3px solid #eee; + } + + /* noty_layout_bottom */ + .noty_bar.noty_theme_default.noty_layout_bottom { + border-top: 3px solid #eee; + } + + .noty_bar.noty_theme_default.noty_layout_center .noty_close { + top: 8px; + } + + .noty_bar.noty_theme_default.noty_layout_center .noty_message .noty_buttons { + margin-top: -2px + } + + /* noty_layout_topLeft & noty_layout_topRight */ + .noty_bar.noty_theme_default.noty_layout_center, + .noty_bar.noty_theme_default.noty_layout_topLeft, + .noty_bar.noty_theme_default.noty_layout_topRight, + .noty_bar.noty_theme_default.noty_layout_bottomLeft, + .noty_bar.noty_theme_default.noty_layout_bottomRight { + border: 1px solid #eee; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + } + .noty_bar.noty_theme_default.noty_layout_center .noty_message, + .noty_bar.noty_theme_default.noty_layout_topLeft .noty_message, + .noty_bar.noty_theme_default.noty_layout_topRight .noty_message, + .noty_bar.noty_theme_default.noty_layout_bottomLeft .noty_message, + .noty_bar.noty_theme_default.noty_layout_bottomRight .noty_message { + font-size: 13px; + font-weight: normal; + } + .noty_bar.noty_theme_default.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_layout_bottomRight .noty_message .noty_buttons { + float: none; + border-top: 1px solid #ccc; + margin-left: 0; + margin-top: 10px; + padding-top: 10px; + text-align: right; + } + + /* noty_layout_topCenter */ + .noty_bar.noty_theme_default.noty_layout_topCenter { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + } + .noty_bar.noty_theme_default.noty_layout_topCenter .noty_message { + font-weight: normal; + font-size: 13px; + } + .noty_bar.noty_theme_default.noty_layout_topCenter .noty_close { + top: 50%; + margin-top: -10px; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; + } + .noty_bar.noty_theme_default.noty_layout_topCenter.noty_success { + border: 1px solid #50C24E; + } + .noty_bar.noty_theme_default.noty_layout_topCenter .noty_message .noty_buttons { + margin-left: 15px; + margin-top: 0px + } + +/* NOTIFICATION TYPES */ + + /* noty_notification */ + .noty_bar.noty_theme_default.noty_notification { + background-color: #fff; + border-color: #ccc; + color: #555; + } + .noty_bar.noty_theme_default.noty_notification.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_notification.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_notification.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_notification.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: #ccc; + } + + /* noty_warning */ + .noty_bar.noty_theme_default.noty_warning { + background-color: #FFEAA8; + border-color: #FFC237; + color: #826200; + } + .noty_bar.noty_theme_default.noty_warning.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_warning.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_warning.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_warning.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: #FFC237; + } + + /* noty_alert */ + .noty_bar.noty_theme_default.noty_alert { + background-color: #fff; + border-color: #ccc; + } + .noty_bar.noty_theme_default.noty_alert.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_alert.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_alert.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_alert.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: #ccc; + } + + /* noty_error */ + .noty_bar.noty_theme_default.noty_error { + background-color: red; + color: #fff; + border-color: darkred; + } + .noty_bar.noty_theme_default.noty_error .noty_message { + font-weight: bold; + } + .noty_bar.noty_theme_default.noty_error.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_error.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_error.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_error.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: darkred; + } + + /* noty_success */ + .noty_bar.noty_theme_default.noty_success { + background-color: lightgreen; + color: darkgreen; + border-color: #50C24E; + } + .noty_bar.noty_theme_default.noty_success.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_success.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_success.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_success.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: #50C24E; + } + + /* noty_information */ + .noty_bar.noty_theme_default.noty_information { + background-color: #57B7E2; + border-color: #0B90C4; + color: #fff; + } + .noty_bar.noty_theme_default.noty_information.noty_layout_topLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_information.noty_layout_topRight .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_information.noty_layout_bottomLeft .noty_message .noty_buttons, + .noty_bar.noty_theme_default.noty_information.noty_layout_bottomRight .noty_message .noty_buttons { + border-color: #0B90C4; + } + \ No newline at end of file diff --git a/gloam/WebRoot/css/passwordstrength.css b/gloam/WebRoot/css/passwordstrength.css new file mode 100644 index 0000000..5bc48eb --- /dev/null +++ b/gloam/WebRoot/css/passwordstrength.css @@ -0,0 +1,6 @@ +.strengthFrame{ float:left; width:226px; height:38px; color:#171717;} +.emptyColor{ float:left; background:#d6d3d3; width:62px; height:4px; margin-top:5px; _margin-top:0px; margin-left:5px; _height:2px;font-size:0px;} +.strengthWord{ float:left; width:62px; margin-left:5px; text-align:center; color:#b0adad; font-size:12px; } +.strength1{ float:left; background:#ff3300; width:62px; height:4px; margin-top:5px; margin-left:5px; _margin-top:0px;_height:2px; font-size:0px;} +.strength2{ float:left; background: #099; width:62px; height:4px; margin-top:5px; margin-left:5px; _margin-top:0px;_height:2px; font-size:0px;} +.strength3{ float:left; background: #060; width:62px; height:4px; margin-top:5px; margin-left:5px; _margin-top:0px;_height:2px; font-size:0px;} diff --git a/gloam/WebRoot/css/perfect-scrollbar.css b/gloam/WebRoot/css/perfect-scrollbar.css new file mode 100644 index 0000000..b486392 --- /dev/null +++ b/gloam/WebRoot/css/perfect-scrollbar.css @@ -0,0 +1,116 @@ +/* + * Container style + */ +.ps { + overflow: hidden !important; + overflow-anchor: none; + -ms-overflow-style: none; + touch-action: auto; + -ms-touch-action: auto; +} + +/* + * Scrollbar rail styles + */ +.ps__rail-x { + display: none; + opacity: 0; + transition: background-color .2s linear, opacity .2s linear; + -webkit-transition: background-color .2s linear, opacity .2s linear; + height: 15px; + /* there must be 'bottom' or 'top' for ps__rail-x */ + bottom: 0px; + /* please don't change 'position' */ + position: absolute; +} + +.ps__rail-y { + display: none; + opacity: 0; + transition: background-color .2s linear, opacity .2s linear; + -webkit-transition: background-color .2s linear, opacity .2s linear; + width: 15px; + /* there must be 'right' or 'left' for ps__rail-y */ + right: 0; + /* please don't change 'position' */ + position: absolute; +} + +.ps--active-x > .ps__rail-x, +.ps--active-y > .ps__rail-y { + display: block; + background-color: transparent; +} + +.ps:hover > .ps__rail-x, +.ps:hover > .ps__rail-y, +.ps--focus > .ps__rail-x, +.ps--focus > .ps__rail-y, +.ps--scrolling-x > .ps__rail-x, +.ps--scrolling-y > .ps__rail-y { + opacity: 0.6; +} + +.ps .ps__rail-x:hover, +.ps .ps__rail-y:hover, +.ps .ps__rail-x:focus, +.ps .ps__rail-y:focus, +.ps .ps__rail-x.ps--clicking, +.ps .ps__rail-y.ps--clicking { + background-color: #eee; + opacity: 0.9; +} + +/* + * Scrollbar thumb styles + */ +.ps__thumb-x { + background-color: #aaa; + border-radius: 6px; + transition: background-color .2s linear, height .2s ease-in-out; + -webkit-transition: background-color .2s linear, height .2s ease-in-out; + height: 6px; + /* there must be 'bottom' for ps__thumb-x */ + bottom: 2px; + /* please don't change 'position' */ + position: absolute; +} + +.ps__thumb-y { + background-color: #aaa; + border-radius: 6px; + transition: background-color .2s linear, width .2s ease-in-out; + -webkit-transition: background-color .2s linear, width .2s ease-in-out; + width: 6px; + /* there must be 'right' for ps__thumb-y */ + right: 2px; + /* please don't change 'position' */ + position: absolute; +} + +.ps__rail-x:hover > .ps__thumb-x, +.ps__rail-x:focus > .ps__thumb-x, +.ps__rail-x.ps--clicking .ps__thumb-x { + background-color: #999; + height: 11px; +} + +.ps__rail-y:hover > .ps__thumb-y, +.ps__rail-y:focus > .ps__thumb-y, +.ps__rail-y.ps--clicking .ps__thumb-y { + background-color: #999; + width: 11px; +} + +/* MS supports */ +@supports (-ms-overflow-style: none) { + .ps { + overflow: auto !important; + } +} + +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .ps { + overflow: auto !important; + } +} diff --git a/gloam/WebRoot/css/proLog.css b/gloam/WebRoot/css/proLog.css new file mode 100644 index 0000000..751c86f --- /dev/null +++ b/gloam/WebRoot/css/proLog.css @@ -0,0 +1,29 @@ +body{ + background-color:#333; +} + +#startTime ,#endTime{ + z-index: 9999; + position: relative; + width: 110px +} + +.textSet{ + width :100px; +} + +.select{ + width :100px; + height: 30px; +} + +.box_1{ + margin-left: 15px; + margin-top: 15px;; + +} + +.quetyInfomation{ + color: yellow ; + +} diff --git a/gloam/WebRoot/css/smart_wizard.css b/gloam/WebRoot/css/smart_wizard.css new file mode 100644 index 0000000..01396b0 --- /dev/null +++ b/gloam/WebRoot/css/smart_wizard.css @@ -0,0 +1,306 @@ +/* + SmartWizard 2.0 plugin + jQuery Wizard control Plugin + by Dipu + + http://www.techlaboratory.net + http://tech-laboratory.blogspot.com +*/ +.swMain { + position:relative; + display:block; + margin:0; + padding:0; + border: 0px solid #CCC; + overflow:visible; + float:left; + width:100%; +} +.swMain .stepContainer { + display:block; + position: relative; + margin: 0; + padding:0; + border: 0px solid #CCC; + overflow:hidden; + clear:both; + height:460px; +} + +.setp_content{ + height: 460px; +} + +.swMain .stepContainer div.content { + display:block; + position: absolute; + float:left; + margin: 0; + padding:5px; + border: 1px solid #CCC; + font: normal 12px Verdana, Arial, Helvetica, sans-serif; + color:#5A5655; + background-color:#F8F8F8; + height:460px; + text-align:left; + overflow:visible; + z-index:88; + -webkit-border-radius: 5px; + -moz-border-radius : 5px; + width:100%; + clear:both; +} + +.swMain div.actionBar { + display:block; + position: relative; + clear:both; + margin: 3px 0 0 0; + border: 1px solid #CCC; + padding: 0; + color: #5A5655; + background-color: #F8F8F8; + height:50px; + text-align:left; + overflow:auto; + z-index:88; + -webkit-border-radius: 5px; + -moz-border-radius : 5px; + left:0; +} + +.swMain .stepContainer .StepTitle { + display:block; + position: relative; + margin:0; + border:1px solid #E0E0E0; + padding:5px; + font: bold 16px Verdana, Arial, Helvetica, sans-serif; + color:#5A5655; + background-color:#E0E0E0; + clear:both; + text-align:left; + z-index:88; + -webkit-border-radius: 5px; + -moz-border-radius : 5px; +} +.swMain ul.anchor { + position: relative; + display:block; + float:left; + list-style: none; + padding: 0px; + margin: 10px 0; + clear: both; + border: 0px solid #CCCCCC; + background: transparent; /*#EEEEEE */ +} +.swMain ul.anchor li{ + position: relative; + display:block; + margin: 0; + padding: 0; + padding-left:3px; + padding-right: 3px; + border: 0px solid #E0E0E0; + float: left; +} +/* Anchor Element Style */ +.swMain ul.anchor li a { + display:block; + position:relative; + float:left; + margin:0; + height:50px; + text-decoration: none; + outline-style:none; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; + z-index:99; + padding-top: 8px; +} +.swMain ul.anchor li a .stepNumber{ + position:relative; + float:left; + text-align: center; + padding:5px; + padding-top:0; + font: bold 35px Verdana, Arial, Helvetica, sans-serif; +} +.swMain ul.anchor li a .stepDesc{ + position:relative; + display:block; + float:left; + text-align: left; + padding:5px; + + font: bold 26px Verdana, Arial, Helvetica, sans-serif; +} +.swMain ul.anchor li a .stepDesc small{ + font: normal 12px Verdana, Arial, Helvetica, sans-serif; +} +.swMain ul.anchor li a.selected{ + color:#F8F8F8; + background: #A71D31; /* EA8511 */ + border: 1px solid #A71D31; + cursor:text; + -moz-box-shadow: 5px 5px 8px #888; + -webkit-box-shadow: 5px 5px 8px #888; + box-shadow: 5px 5px 8px #888; +} +.swMain ul.anchor li a.selected:hover { + color:#F8F8F8; + background: #A71D31; +} + +.swMain ul.anchor li a.done { + position:relative; + color:#FFF; + background: url('../images/line.png') left repeat-x; + border: 0px solid #000; + z-index:99; +} +.swMain ul.anchor li a.done:hover { + color:#5A5655; + background: url('../images/line.png') left repeat-x; + border: 1px solid #5A5655; +} +.swMain ul.anchor li a.disabled { + color:#CCCCCC; + background: #F8F8F8; + border: 1px solid #CCC; + cursor:text; +} +.swMain ul.anchor li a.disabled:hover { + color:#CCCCCC; + background: #F8F8F8; +} + +.swMain ul.anchor li a.error { + color:#6c6c6c !important; + background: #f08f75 !important; + border: 1px solid #fb3500 !important; +} +.swMain ul.anchor li a.error:hover { + color:#000 !important; +} + +.swMain .buttonNext { + display:block; + float:right; + margin:5px 3px 0 3px; + padding:5px; + text-decoration: none; + text-align: center; + font: bold 13px Verdana, Arial, Helvetica, sans-serif; + width:100px; + color:#FFF; + outline-style:none; + background-color: #5A5655; + border: 1px solid #5A5655; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; +} +.swMain .buttonDisabled { + color:#F8F8F8 !important; + background-color: #CCCCCC !important; + border: 1px solid #CCCCCC !important; + cursor:text; +} +.swMain .buttonPrevious { + display:block; + float:right; + margin:5px 3px 0 3px; + padding:5px; + text-decoration: none; + text-align: center; + font: bold 13px Verdana, Arial, Helvetica, sans-serif; + width:100px; + color:#FFF; + outline-style:none; + background-color: #5A5655; + border: 1px solid #5A5655; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; +} +.swMain .buttonFinish { + display:block; + float:right; + margin:5px 10px 0 3px; + padding:5px; + text-decoration: none; + text-align: center; + font: bold 13px Verdana, Arial, Helvetica, sans-serif; + width:100px; + color:#FFF; + outline-style:none; + background-color: #5A5655; + border: 1px solid #5A5655; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; +} + +/* Form Styles */ + +.txtBox { + border:1px solid #CCCCCC; + color:#5A5655; + font:13px Verdana,Arial,Helvetica,sans-serif; + padding:2px; + width:430px; +} +.txtBox:focus { + border:1px solid #A71D31; +} + +.swMain .loader { + position:relative; + display:none; + float:left; + margin: 2px 0 0 2px; + padding:8px 10px 8px 40px; + border: 1px solid #FFD700; + font: bold 13px Verdana, Arial, Helvetica, sans-serif; + color:#5A5655; + background: #FFF url(../images/loader.gif) no-repeat 5px; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; + z-index:998; +} +.swMain .msgBox { + position:relative; + display:none; + float:left; + margin: 4px 0 0 5px; + padding:5px; + border: 1px solid #FFD700; + background-color: #FFFFDD; + font: normal 12px Verdana, Arial, Helvetica, sans-serif; + color:#5A5655; + -moz-border-radius : 5px; + -webkit-border-radius: 5px; + z-index:999; + min-width:200px; +} +.swMain .msgBox .content { + font: normal 12px Verdana,Arial,Helvetica,sans-serif; + padding: 0px; + float:left; +} +.swMain .msgBox .close { + border: 1px solid #CCC; + border-radius: 3px; + color: #CCC; + display: block; + float: right; + margin: 0 0 0 5px; + outline-style: none; + padding: 0 2px 0 2px; + position: relative; + text-align: center; + text-decoration: none; +} +.swMain .msgBox .close:hover{ + color: #A71D31; + border: 1px solid #A71D31; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/style-forms.css b/gloam/WebRoot/css/style-forms.css new file mode 100644 index 0000000..297dc3a --- /dev/null +++ b/gloam/WebRoot/css/style-forms.css @@ -0,0 +1,925 @@ +.add-on, +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +input[type="file"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + margin:0px 5px 0px 5px; + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + margin:0px 5px 0px 5px; + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + margin:0px 5px 0px 5px; + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: 0px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 5; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #9A9C9D; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 0px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} \ No newline at end of file diff --git a/gloam/WebRoot/css/style-responsive.css b/gloam/WebRoot/css/style-responsive.css new file mode 100644 index 0000000..54460ea --- /dev/null +++ b/gloam/WebRoot/css/style-responsive.css @@ -0,0 +1,536 @@ +/* Higher than 1200 (desktop devices) +====================================================================== */ +@media (min-width: 1200px) { + + .container-fluid-full { + overflow: hidden; + position: relative; + height: 100%; + } + + #content { + width: 90%; + height:100%; + padding: 28px; + margin: 0px 0px; + margin-left: 5.422% !important; + } + + #sidebar-left { + background: #3A3A3A; + margin-left: 0px !important; + position: absolute; + height: 100%; + } + + .sidebar-nav > ul{ + margin: 0px; + } + + footer { + margin: 0px 0px 0px 0px; + padding: 10px 20px; + } + +} + +/* Higher than 960 (desktop devices) +====================================================================== */ +@media only screen and (min-width: 980px) and (max-width: 1199px){ + + .container-fluid-full { + overflow: hidden; + position: relative; + height: 100%; + } + + #content { + width: 96%; + height:100%; + padding: 20px; + margin: 0px; + margin-left: 3.422% !important; + } + + .dark { + padding: 20px; + top: -20px; + right: -12px; + margin-bottom: -56px; + margin-right: -30px; + } + + + #sidebar-left { + background: #3A3A3A; + margin-left: 0px !important; + position: absolute; + height: 100%; + } + + .sidebar-nav > ul{ + margin: 0px; + } + + .sparkLineStats { + position: relative; + padding-bottom: 4px; + } + + .sparkLineStats li { + font-size: 10px; + line-height: 42px; + } + + .sparkLineStats li .number { + font-size: 16px; + font-weight: 700; + padding:0 0px; + } + + .breadcrumb { + margin: -20px -20px 20px -20px; + } + + .statbox, + .widget, + .box, + .circleStatsItemBox { + margin-bottom: 20px; + } + + /* Page: Tasks + =================================================================== */ + + .task .desc { + display: inline-block; + width: 70%; + padding: 10px 10px; + font-size: 12px; + } + + .task .desc .title { + font-size: 16px; + margin-bottom: 5px; + } + + .task .time { + display: inline-block; + float: right; + width: 20%; + padding: 10px 10px; + font-size: 12px; + text-align: right; + } + + .task .time .date { + font-size: 16px; + margin-bottom: 5px; + } + + footer { + margin: 0px; + padding: 10px 20px; + } + +} + +/* Tablet Portrait (devices and browsers) +====================================================================== */ +@media only screen and (min-width: 768px) and (max-width: 979px) { + + .container-fluid-full { + overflow: hidden; + position: relative; + height: 100%; + } + + #content { + width: 91.666%; + padding: 22px; + margin: 0px 0px; + margin-left: 8.334% !important; + } + + .dark { + padding: 20px; + top: -22px; + right: -15px; + margin-bottom: -56px; + margin-right: -30px; + } + + .breadcrumb { + margin: -22px -22px 22px -22px; + } + + .statbox, + .widget, + .box, + .circleStatsItemBox { + margin-bottom: 22px; + } + + #sidebar-left { + background: #3A3A3A; + margin-left: 0px !important; + position: absolute; + height: 100%; + width: 8.334% !important; + } + + .sidebar-nav > ul{ + margin: 0px; + } + + .nav-tabs.nav-stacked > li > a, + .nav-tabs.nav-stacked > li > ul > li > a { + text-align: center; + margin-top: -2px; + } + + .noMargin { + margin-left: 0px !important; + } + + .btn-navbar { + display: none !important; + } + + .nav-collapse, + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + margin-left: 0px !important; + } + + + .stats-date .range { + font-size: 16px; + font-weight: 300; + } + + + .stat .left .number { + font-size: 16px; + font-weight: 300; + } + + .stat .left .title { + font-size: 9px; + } + + .stat .right .percent { + text-align: center; + font-size: 12px; + line-height: 16px; + } + + .box-small-link { + font-size: 20px; + } + + .sparkLineStats { + padding-bottom: 10px; + } + + .sparkLineStats li { + font-size: 10px; + line-height: 43px; + } + + .sparkLineStats li .number { + font-size: 12px; + font-weight: 700; + padding:0 0px; + } + + /* Page: Tasks + =================================================================== */ + + .task { + border-bottom: 1px solid #f9f9f9; + margin-bottom: 1px; + } + + .task.high { + border-left: 2px solid rgba(250,96,61,1); + } + + .task.medium { + border-left: 2px solid rgba(250,187,61,1); + } + + .task.low { + border-left: 2px solid rgba(120,205,81,1); + } + + .task .desc { + display: inline-block; + width: 65%; + padding: 10px 10px; + font-size: 10px; + margin-right: -20px; + } + + .task .desc .title{ + font-size: 14px; + margin-bottom: 5px; + } + + .task .time { + display: inline-block; + float: right; + width: 25%; + padding: 10px 10px; + font-size: 10px; + text-align: right; + } + + .task .time .date { + font-size: 14px; + margin-bottom: 5px; + } + + .timeslot .task span { + border: 2px solid rgba(103, 194, 239, 1); + background: rgba(103, 194, 239, .1); + padding: 5px; + display: block; + font-size: 10px; + } + + .timeslot .task span span{ + border: 0px; + background: transparent; + padding: 0px; + } + + .timeslot .task span span.details{ + font-size: 14px; + margin-bottom: 0px; + } + + .timeslot .task span span.remaining{ + font-size: 12px; + } + + footer { + margin: 0px; + padding: 10px 20px; + } + +} + +/* All Mobile Sizes (devices and browser) +====================================================================== */ +@media only screen and (max-width: 767px) { + + #content { + overflow: hidden; + margin: -10px 0px 0px 0px; + } + + .breadcrumb { + margin: -5px -5px 5px -5px; + } + + .nav-tabs.nav-stacked > li > a, + .nav-tabs.nav-stacked > li > ul > li > a { + margin-top: -2px; + } + + .dark { + padding: 5px; + top: 5px; + right: 0px; + margin-bottom: 0px; + margin-right: 0px; + position: relative; + border: 0px; + } + + .statbox, + .widget, + .box, + .circleStatsItemBox { + margin-bottom: 20px !important; + } + + /* Page: Tasks + =================================================================== */ + + .task { + border-bottom: 1px solid #f9f9f9; + margin-bottom: 1px; + } + + .task.high { + border-left: 2px solid rgba(250,96,61,1); + } + + .task.medium { + border-left: 2px solid rgba(250,187,61,1); + } + + .task.low { + border-left: 2px solid rgba(120,205,81,1); + } + + .task .desc { + display: inline-block; + width: 65%; + padding: 10px 10px; + font-size: 10px; + margin-right: -20px; + } + + .task .desc .title{ + font-size: 14px; + margin-bottom: 5px; + } + + .task .time { + display: inline-block; + float: right; + width: 25%; + padding: 10px 10px; + font-size: 10px; + text-align: right; + } + + .task .time .date { + font-size: 14px; + margin-bottom: 5px; + } + + .timeslot .task span { + border: 2px solid rgba(103, 194, 239, 1); + background: rgba(103, 194, 239, .1); + padding: 5px; + display: block; + font-size: 10px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + + .timeslot .task span span{ + border: 0px; + background: transparent; + padding: 0px; + } + + .timeslot .task span span.details{ + font-size: 14px; + margin-bottom: 0px; + } + + .timeslot .task span span.remaining{ + font-size: 12px; + } + + +} + +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) +====================================================================== */ +@media only screen and (min-width: 480px) and (max-width: 767px) { + + body { + padding: 0px; + } + + #content { + padding: 5px; + } + + .stat { + width: 50%; + margin: 10px 0% 0% 0%; + float: left; + } + + .quick-button, + .quick-button-small { + margin-bottom: 20px; + } + + .pull-right { + width: 100%; + margin: 10px auto; + text-align: center; + } + + .fc-button-today, + .fc-button-month, + .fc-button-agendaWeek, + .fc-button-agendaDay { + display: none; + } + + footer { + padding: 10px 20px; + } + +} + +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) +=================================================================== */ +@media only screen and (max-width: 479px) { + + body { + padding: 0px; + } + + #content { + padding: 5px; + } + + .stat { + width: 100%; + margin: 1% 0% 0% 0%; + float: left; + } + + .quick-button, + .quick-button-small { + margin-bottom: 20px; + } + + .pull-right { + width: 100%; + margin: 10px auto; + text-align: center; + } + + .fc-button-today, + .fc-button-month, + .fc-button-agendaWeek, + .fc-button-agendaDay { + display: none; + } + + table, + .pagination { + font-size: 10px; + } + + .pagination { + padding: 5px; + } + + .ui-slider-handle { + margin-top: 1px !important; + } + + .sliderVertical .ui-slider-handle { + margin: 0px 0px -10px 1px !important; + } + + + footer { + padding: 10px 20px; + } + +} \ No newline at end of file diff --git a/gloam/WebRoot/css/style.css b/gloam/WebRoot/css/style.css new file mode 100644 index 0000000..bf33608 --- /dev/null +++ b/gloam/WebRoot/css/style.css @@ -0,0 +1,3072 @@ +/* +* Author: Dennis Ji +* Template: Metro Admin Template - Bootstrap Theme +* Version: 1.0.0 +* Bootstrap version: 2.3.1 +* Copyright 2013 Bootstrap Metro Dashboard +* www: http://clabs.co +* mail: lukasz@clabs.co +* You can buy this theme on WrapBootstrap: https://wrapbootstrap.com/user/Bootstrap Metro Dashboard +*/ + +/* Import Section +=================================================================== */ +@import url("jquery-ui-1.8.21.custom.css"); /* jQuery User Interface Framework Styles */ +@import url("fullcalendar.css"); /* Calendars Styles */ +@import url("chosen.css"); /* Select Boxes Styles */ +@import url("uniform.default.css"); /* Uniform Styles */ +@import url("jquery.cleditor.css"); /* Text Editor Styles. */ +@import url("jquery.noty.css"); /* Noty Notifications Style */ +@import url("noty_theme_default.css"); /* Noty Notifications Style */ +@import url("elfinder.min.css"); /* File Manager Style */ +@import url("elfinder.theme.css"); /* File Manager Style */ +@import url("jquery.iphone.toggle.css"); /* Styles for iPhone */ +@import url("uploadify.css"); /* Uploadify Styles */ +@import url("jquery.gritter.css"); /* Growl Like Notifications Styles */ +@import url("font-awesome.min.css"); /* Font Awesome Styles */ +@import url("font-awesome-ie7.min.css"); /* Font Awesome Styles */ +@import url("glyphicons.css"); /* Glyphicons Font */ +@import url("halflings.css"); /* Glyphicons Halflings Font */ +@import url("style-forms.css"); /* Forms */ + +/* Main Colors +=================================================================== */ + +.black, +.black [class="box-header"], +.black.box, +.slider.black .ui-slider-range, +.progress.black .ui-progressbar-value +.sliderVertical.black .ui-slider-range, +.progressSlim.black .ui-progressbar-value { + background: #222 !important; + border-color: #222 !important; + color: #fff; +} + +.black .box-header h2 i, +.black .box-header .box-icon i, +.black .box-header .box-icon i:hover { + opacity: 1; + filter: alpha(opacity=100); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; +} + +.green, +.green [class="box-header"], +.green.box, +.slider.green .ui-slider-range, +.progress.green .ui-progressbar-value, +.sliderVertical.green .ui-slider-range, +.progressSlim.green .ui-progressbar-value, +.label-success, +.badge-success { + background: #00A300 !important; + border-color: #00A300 !important; + color: #fff; +} + +.greenDark, +.greenDark [class="box-header"], +.greenDark.box, +.slider.greenDark .ui-slider-range, +.progress.greenDark .ui-progressbar-value, +.sliderVertical.greenDark .ui-slider-range, +.progressSlim.greenDark .ui-progressbar-value { + background: #1E7145 !important; + border-color: #1E7145 !important; + color: #fff; +} + +.greenLight, +.greenLight [class="box-header"], +.greenLight.box, +.slider.greenLight .ui-slider-range, +.progress.greenLight .ui-progressbar-value, +.sliderVertical.greenLight .ui-slider-range, +.progressSlim.greenLight .ui-progressbar-value { + background: #99B433 !important; + border-color: #99B433 !important; + color: #fff; +} + +.pink, +.pink [class="box-header"], +.pink.box, +.slider.pink .ui-slider-range, +.progress.pink .ui-progressbar-value, +.sliderVertical.pink .ui-slider-range, +.progressSlim.pink .ui-progressbar-value { + background: #9F00A7 !important; + border-color: #9F00A7 !important; + color: #fff; +} + +.pinkDark, +.pinkDark [class="box-header"], +.pinkDark.box, +.slider.pinkDark .ui-slider-range, +.progress.pinkDark .ui-progressbar-value, +.sliderVertical.pinkDark .ui-slider-range, +.progressSlim.pinkDark .ui-progressbar-value { + background: #7E3878 !important; + border-color: #7E3878 !important; + color: #fff; +} + +.yellow, +.yellow [class="box-header"], +.yellow.box, +.slider.yellow .ui-slider-range, +.progress.yellow .ui-progressbar-value, +.sliderVertical.yellow .ui-slider-range, +.progressSlim.yellow .ui-progressbar-value, +.label-warning, +.badge-warning { + background: #FFC40D !important; + border-color: #FFC40D !important; + color: #fff; +} + +.purple, +.purple [class="box-header"], +.purple.box, +.slider.purple .ui-slider-range, +.progress.purple .ui-progressbar-value, +.sliderVertical.purple .ui-slider-range, +.progressSlim.purple .ui-progressbar-value { + background: #603CBA !important; + border-color: #603CBA !important; + color: #fff; +} + +.blue, +.blue [class="box-header"], +.blue.box, +.slider.blue .ui-slider-range, +.progress.blue .ui-progressbar-value, +.sliderVertical.blue .ui-slider-range, +.progressSlim.blue .ui-progressbar-value, +.label-info, +.badge-info { + background: #2D89EF !important; + border-color: #2D89EF !important; + color: #fff; +} + +.blueDark, +.blueDark [class="box-header"], +.blueDark.box, +.slider.blueDark .ui-slider-range, +.progress.blueDark .ui-progressbar-value, +.sliderVertical.blueDark .ui-slider-range, +.progressSlim.blueDark .ui-progressbar-value { + background: #2B5797 !important; + border-color: #2B5797 !important; + color: #fff; +} + +.blueLight, +.blueLight [class="box-header"], +.blueLight.box, +.slider.blueLight .ui-slider-range, +.progress.blueLight .ui-progressbar-value, +.sliderVertical.blueLight .ui-slider-range, +.progressSlim.blueLight .ui-progressbar-value { + background: #EFF4FF !important; + border-color: #EFF4FF !important; + color: #fff; +} + +.orange, +.orange [class="box-header"], +.orange.box, +.slider.orange .ui-slider-range, +.progress.orange .ui-progressbar-value, +.sliderVertical.orange .ui-slider-range, +.progressSlim.orange .ui-progressbar-value { + background: #E3A21A !important; + border-color: #E3A21A !important; + color: #fff; +} + +.orangeDark, +.orangeDark [class="box-header"], +.orangeDark.box, +.slider.orangeDark .ui-slider-range, +.progress.oragneDark .ui-progressbar-value, +.sliderVertical.orangeDark .ui-slider-range, +.progressSlim.orangeDark .ui-progressbar-value { + background: #DA532C !important; + border-color: #DA532C !important; + color: #fff; +} + +.red, +.red [class="box-header"], +.red.box, +.slider.red .ui-slider-range, +.progress.red .ui-progressbar-value, +.sliderVertical.red .ui-slider-range, +.progressSlim.red .ui-progressbar-value, +.label-important, +.badge-important { + background: #EB3C00 !important; + border-color: #EB3C00 !important; + color: #fff; +} + +.widget.green h2 .glyphicons i:before, +.widget.greenDark h2 .glyphicons i:before, +.widget.greenLight h2 .glyphicons i:before, +.widget.pink h2 .glyphicons i:before, +.widget.pinkDark h2 .glyphicons i:before, +.widget.yellow h2 .glyphicons i:before, +.widget.purple h2 .glyphicons i:before, +.widget.blue h2 .glyphicons i:before, +.widget.blueDark h2 .glyphicons i:before, +.widget.blueLight h2 .glyphicons i:before, +.widget.orange h2 .glyphicons i:before, +.widget.orangeDark h2 .glyphicons i:before, +.widget.red h2 .glyphicons i:before { + color: #fff; +} + +/* Basic +=================================================================== */ + +body { + background: #F5F5F5; + color: #fff; + border: none; + font-family: '微软雅黑'; + font-weight: 400; +} + +a { + color: #ffffff; +} + +hr { + height: 2px; + border: none; + /* IE9 SVG, needs conditional override of 'filter' to 'none' */ + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmOWY5ZjkiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background: -moz-linear-gradient(left, rgba(249,249,249,0.25) 0%, rgba(249,249,249,1) 50%, rgba(249,249,249,0.25) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(249,249,249,0.25)), color-stop(50%,rgba(249,249,249,1)), color-stop(100%,rgba(249,249,249,0.25))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(249,249,249,0.25) 0%,rgba(249,249,249,1) 50%,rgba(249,249,249,0.25) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, rgba(249,249,249,0.25) 0%,rgba(249,249,249,1) 50%,rgba(249,249,249,0.25) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, rgba(249,249,249,0.25) 0%,rgba(249,249,249,1) 50%,rgba(249,249,249,0.25) 100%); /* IE10+ */ + background: linear-gradient(to right, rgba(249,249,249,0.25) 0%,rgba(249,249,249,1) 50%,rgba(249,249,249,0.25) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40f9f9f9', endColorstr='#40f9f9f9',GradientType=1 ); /* IE6-8 */ +} + +.noMarginLeft { + margin-left: 0px !important; +} + +h1 { + font-size: 32px; + line-height: 32px; + font-weight: 300; +} + +h2 { + font-size: 16px; + line-height: 16px; +} + +h3 { + font-size: 15px; + line-height: 15px; +} + +h4 { + font-size: 14px; + line-height: 14px; +} + +h5 { + font-size: 13px; + line-height: 13px; +} + +h6 { + font-size: 12px; + line-height: 12px; +} + +/* Header Section +=================================================================== */ +.navbar { + margin-bottom: 0px; + z-index:9999; + position:fixed; + width:100%; +} + +.navbar-inner { + margin-bottom: 0px; + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background: #080808; + filter: none; + text-shadow: 1px 1px 1px #0a0c0e; + border: none; + color: #fff; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + *zoom: 1; + border-bottom: 1px solid #38383D; /* rgba(0, 0, 0, 0.05); */ + +} + +.navbar-inner a { + color: #7b7b7b; + text-shadow: 0 -1px 1px #0b090a; +} + +.navbar-inner a i { + margin-top: 2px; +} + +.navbar-inner a:hover i { + opacity: .8; + filter: alpha(opacity=80); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; +} + +.brand img { + margin: -12px 0px -5px 0px; +} + +a.brand span { + color: #fff; + text-shadow: none; +} + +.header-nav { + padding: 0px; + color: #fff !important; + background: #000 !important; +} + +.header-nav .nav { + margin: 0px; +} +.header-nav .btn { + display: inline-block; + padding: 21px 20px; + margin-top: 0px; + margin-left: 0px; + font-size: 14px; + line-height: 20px; + text-align: center; + text-shadow: none; + vertical-align: middle; + cursor: pointer; + background: transparent; + border-left: none; + border-right: none; + border-top: 0px; + border-bottom: 0px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.header-nav a.btn { + color: #fff !important; + text-shadow: none !important; + padding: 10px 25px !important; +} + +.header-nav .btn .caret { + border-top-color: #fff !important; + border-bottom-color: #fff !important; +} + +.header-nav .btn:hover .caret { + border-top-color: #fff !important; + border-bottom-color: #fff !important; +} + +/* Navigation Section +=================================================================== */ + +#sidebar-left { +/* background: #fc0;*/ + width:149px; + margin-top:40px; + background: #3A3A3A; +} + + +#sidebar-left.active{ + background: #3A3A3A; + width:170px; +} + +.sidebar-nav > ul{ + margin: 0px; + padding-bottom: 1px; + font-size: 14px; +} + +.sidebar-nav > ul > li > ul { + list-style: none; + margin: 0px; + display: none; + background: rgba(0,0,0,.25); +} + +.nav-tabs.nav-stacked > li > a, +.nav-tabs.nav-stacked > li > ul > li > a { + padding: 15px 10px 14px 10px; + color: #fc0; + border-top: none; + border-bottom: 1px solid #FC0; + border-left: none; + border-right: none; + text-decoration: none; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + border-bottom: 1px solid #FC0; +} + +.nav-tabs.nav-stacked > li > ul > li > a{ + padding: 15px 10px 14px 10px; + display: block; +} + +.nav-tabs.nav-stacked > li > a > i, +.nav-tabs.nav-stacked > li > ul > li > a > i { + opacity: 1; + filter: alpha(opacity=100); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + font-size: 16px; +} + +.nav-tabs.nav-stacked > li > ul > li > a > i { + font-size: 20px; +} + +.nav-tabs.nav-stacked > li > a:hover > i { + opacity: 1; + filter: alpha(opacity=100); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > ul > li > a:hover { + color: #777; + background:#000; + border-bottom: 1px solid #fff; +} + +.nav-tabs.nav-stacked > li.active > a, +.nav-tabs.nav-stacked > li > ul > li.active > a { + background: #3A3A3A; + border-bottom: 1px solid #FC0; +} + +.nav-tabs.nav-stacked > li.active > a:hover, +.nav-tabs.nav-stacked > li > ul > li.active > a:hover { + background: #000; + color: #777; + border: none; + border-bottom: 1px solid #ddd; +} + +.nav-tabs.nav-stacked > li.active > ul { + padding: 5px 0px; + color: #3b3b41; + background: #fff; +} + +.nav-tabs.nav-stacked > li:first-child > a { + margin: 0px 0px 0px 0px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #000; + outline: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.dropdown-menu:after, +.dropdown-menu:before { + top: -1px; + left: 10px; + border-right: 9px solid transparent; + border-bottom: 9px solid #222 !important; + border-left: 9px solid transparent; + content: ''; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + max-width: 300px; + padding: 0px 0; + margin: 5px 0 0 0; + list-style: none; + text-shadow: none; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 0px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #eee; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu li a { + display: block; + padding: 7px 10px 6px!important; + clear: both; + font-weight: normal; + line-height: 20px; + color: #000; + text-shadow: none; + white-space: normal !important; +} + +.dropdown-menu li { + border-bottom: 1px solid #eee; +} + +.dropdown-menu li:first-child { + border-top: 0px !important; +} + +.dropdown-menu li:last-child { + border-bottom: 0px !important; +} + +.dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + color: #ffffff; + text-decoration: none; + background: #2D89EF; +} + +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background: #2D89EF; +} + +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: #999999; +} + +.dropdown-menu .disabled > a:hover { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.dropdown-menu-title { + background: #222; + color: #fff; + padding: 8px 0px; + position: relative; +} + +.dropdown-menu-title span { + margin-left: 15px; +} + +.dropdown-menu-title a:link { + position: absolute; + right: 4px; + top: 4px; + padding: 4px 6px !important; +} + +.dropdown-menu-title a i { + color: #fff; +} + +/* .dropdown-menu-title a:hover { + background: #fff !important; +} */ + +.dropdown-menu-title a:hover i { + color: #222 !important; +} + +.dropdown-menu-sub-footer { + background: #eee; +} + +.dropdown-menu ul, +.dropdown-menu ul li { + padding: 0px !important; + margin: 0px !important; +} + +ul.notifications li, +ul.tasks li, +ul.messages li{ + width: 260px; +} + +ul.notifications li .avatar img, +ul.tasks li .avatar img, +ul.messages li .avatar img { + float: left; + height: 40px; + width: 40px; + margin-right: 10px; +} + + +ul.messages li .header { + display: block; +} + +ul.messages li .header .from { + font-size: 12px; + font-weight: bold; +} + +ul.notifications li .icon { + margin: 0px 10px 0px -10px !important; + padding: 9px 10px 9px 10px; +} + +ul.notifications li .time, +ul.tasks li .header .percent, +ul.messages li .header .time { + font-size: 11px; + font-weight: bold; + font-style: italic; + position: absolute; + right: 5px; +} +ul.tasks li .title, +ul.notifications li .message { + font-size: 12px; +} + +ul.notifications li.warning a { + color: #FA5833; +} + +ul.messages li .message { + font-size: 11px; +} + +/* Content and Main Elements +=================================================================== */ + +#content { + background: #333; + filter: none; + min-height: 100%; + padding: 20px 0px 0px 0px; + position: relative; +} + +.breadcrumb { + margin: -28px -28px 28px -28px; + line-height: 34px; + background: #FC0; + border: 0px; + color: #000; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.breadcrumb span { + text-shadow: 1px 1px 0px #fff; +} + +.breadcrumb a { + color: #000; + text-shadow: 0px 1px 1px #fff; +} + +.breadcrumb a:hover { + color: #646464; + text-shadow: 0px 1px 1px #fff; + text-decoration: none; +} + +.dark { + background: #333; + text-shadow: 0px 1px 1px #fff !important; + padding: 20px; + top: -28px; + right: -28px; + margin-bottom: -56px; + margin-right: -30px; + position: relative; + border-left: 2px solid #eee; + min-height: 100%; + overflow: hidden; +} + +.well { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.statbox { + height: 120px; + padding: 10px; + position: relative; + margin-bottom: 28px; +} + + .statbox .number { + font-size: 40px; + position: absolute; + top: 10px; + right: 10px; + } + + .statbox .title { + font-size: 16px; + position: absolute; + top: 50px; + right: 10px; + } + + .statbox .footer { + background: rgba(0,0,0,.1); + background-color: #19FFFFFF; + position: absolute; + bottom: 0px; + left: 0px; + padding: 10px; + } + + .statbox .footer:hover { + background: rgba(0,0,0,.2); + } + + .statbox .footer a { + color: #fff; + text-decoration: none; + } + +.widget { + padding: 10px; + margin-bottom: 28px; +} + +.widget h2 { + padding: 10px 10px 0px 10px; + font-size: 18px !important; + line-height: 18px !important; + margin-bottom: -5px; + font-weight: 300; + text-shadow: 0px 1px 0px #fff; +} + +.widget h2 .glyphicons i:before { + margin-top: -7px; + font-size: 20px !important; + line-height: 20px !important; +} + +.box { + border: 2px solid #eee; + background: #333 !important; + margin-bottom: 28px; +} + +.box-header { + height: 16px; + font-size: 16px; + line-height: 16px; + padding: 10px; + background: #eee; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: hidden; + color:#333; +} + +.box-header h2{ + float:left; + margin-top: 0px; + font-weight: 300; +} + +.box-header h2 i { + margin: 0px 3px 0px 4px; + opacity: .8; + filter: alpha(opacity=80); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; +} + +.box-header .break{ + border-left: 1px solid #FFF; + margin: -12px 10px -10px 10px; + padding: 12px 0px 6px 0px; + +} +.box-header div{ + text-align:right; + margin-top:-5px; +} +.box-header .box-icon { + float:right; + margin-top: -6px; +} + +.box-header .box-icon i { + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: .8; + filter: alpha(opacity=80); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; +} + +.box-header .box-icon i:hover { + opacity: 1; + filter: alpha(opacity=100); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; +} + +.box-header .box-icon a { + margin: 0px 5px; +} + +.box-content { + position: relative; + z-index: 50; + margin-top: -1px; + padding: 10px; + background: #333 !important; + color:#fff; +} + +/* Vertical Bar Chart +=================================================================== */ + +.verticalChart { + width: 100%; +} + +.verticalChart .singleBar { + width: 9%; + float: left; + margin-left: 0.5%; + margin-right: 0.5%; +} + +.verticalChart .singleBar .bar { + position: relative; + height: 200px; + background: rgba(255,255,255,0.2); + overflow: hidden; +} + +.verticalChart .singleBar .bar .value { + position: absolute; + bottom: 0; + width: 100%; + background: #fff; + color: #fff; +} + +.verticalChart .singleBar .bar .value span{ + position: absolute; + font-size: 12px; + bottom: 0; + width: 100%; + height: 20px; + color: #ddd; + text-shadow: 0px -1px 0px #fff, 0px 1px 0px #fff, 1px 0px 0px #fff, -1px 0px 0px #fff, -1px -1px 0px #fff,-1px 1px 0px #fff, 1px 1px 0px #fff, 1px -1px 0px #fff; + display: none; + text-align: center; +} + +.verticalChart .singleBar .title { + margin-top: 5px; + text-align: center; +} + +/* Browsers Stats +=================================================================== */ + +.browserStat.big { + display:inline-block; + width: 49%; + text-align: center; + margin-bottom: 20px; + padding: 0px; +} + +.browserStat { + display:inline-block; + width: 32%; + text-align: center; + margin: 0px; + padding: 0px; +} + +.browserStat span{ + display:block; + text-align: center; + margin-top: 10px; +} + +/* Notifications & Labels +=================================================================== */ + +.notification { + position: absolute; + top: -1px; + right: -1px; + line-height: 16px; + height: 16px; + padding: 3px 6px; + color: white !important; + text-shadow: 0 1px hsla(0, 0%, 0%, 0.25); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: 0 1px 1px hsla(0, 0%, 0%, 0.08), inset 0 1px hsla(0, 100%, 100%, 0.3); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), inset 0 1px rgba(255, 255, 255, 0.3); + box-shadow: 0 1px 1px hsla(0, 0%, 0%, 0.08), inset 0 1px hsla(0, 100%, 100%, 0.3); +} + +.notification-small { + padding: 2px 7px; + color: white !important; + text-shadow: 0 1px hsla(0, 0%, 0%, 0.25); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: 0 1px 1px hsla(0, 0%, 0%, 0.08), inset 0 1px hsla(0, 100%, 100%, 0.3); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), inset 0 1px rgba(255, 255, 255, 0.3); + box-shadow: 0 1px 1px hsla(0, 0%, 0%, 0.08), inset 0 1px hsla(0, 100%, 100%, 0.3); +} + +.label, +.badge { + text-shadow: none; + font-family: 'Open Sans', sans-serif; + font-weight: 600; + font-size: 12px; + padding: 3px 6px; +} + +.label { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +/* Quick Buttons +=================================================================== */ + +.quick-button { + border: 1px solid #ddd; + margin-bottom: -1px; + padding: 30px 0px 10px 0px; + font-size: 14px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #fafafa, #efefef); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fafafa), to(#efefef)); + background-image: -webkit-linear-gradient(top, #fafafa, #efefef); + background-image: -o-linear-gradient(top, #fafafa, #efefef); + background-image: linear-gradient(to bottom, #fafafa, #efefef); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fafafa', endColorstr='#efefef', GradientType=0); + -webkit-box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + -moz-box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + display:block; + color: #646464; + text-shadow: 0 1px 0px rgba(255, 255, 255, .6); + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.quick-button:hover { + text-decoration: none; + border-color: #a5a5a5; + color: #444444; + text-shadow: 0 1px 0px rgba(255, 255, 255, 1); + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,.25); + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,.25); + box-shadow: 0px 0px 3px rgba(0,0,0,.25); +} +.quick-button:hover .notification { + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,.6); + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,.6); + box-shadow: 0px 0px 3px rgba(0,0,0,.6); +} + +.quick-button i { + font-size: 32px; +} + +/* Quick Buttons Metro Style +=================================================================== */ + +.quick-button.metro { + position: relative; + color: #fff; + text-shadow: 0 1px 1px rgba(0, 0, 0, .25); + filter: none; + padding: 30px 10px 0px 10px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.quick-button.metro p { + text-align: left; + margin-top: 20px; +} + +.quick-button.metro:hover { + color: rgba(255,255,255,.9); + text-shadow: none; +} + +.quick-button.metro i { + font-size: 64px; + text-align: center !important; +} + +.quick-button.metro .badge { + text-align: center !important; + position: absolute; + top: 50%; + left: 70%; + background: none; + text-shadow: 0 1px 1px rgba(0, 0, 0, .25); +} + + +/* Quick Buttons Small +=================================================================== */ + +.quick-button-small { + border: 1px solid #ddd; + padding: 15px 0px 0px 0px; + font-size: 10px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #fafafa, #efefef); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fafafa), to(#efefef)); + background-image: -webkit-linear-gradient(top, #fafafa, #efefef); + background-image: -o-linear-gradient(top, #fafafa, #efefef); + background-image: linear-gradient(to bottom, #fafafa, #efefef); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fafafa', endColorstr='#efefef', GradientType=0); + -webkit-box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + -moz-box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + box-shadow: 0 1px 0px rgba(255, 255, 255, .8); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + display:block; + color: #646464; + text-shadow: 0 1px 0px rgba(255, 255, 255, .6); + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.quick-button-small:hover { + text-decoration: none; + border-color: #a5a5a5; + color: #444444; + text-shadow: 0 1px 0px rgba(255, 255, 255, 1); + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,.25); + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,.25); + box-shadow: 0px 0px 3px rgba(0,0,0,.25); +} + +.quick-button-small:hover .notification { + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,.6); + -moz-box-shadow: 0px 0px 3px rgba(0,0,0,.6); + box-shadow: 0px 0px 3px rgba(0,0,0,.6); +} + +.quick-button-small i { + font-size: 20px; +} + +/* Dashboard Lists ex. +=================================================================== */ + +ul.dashboard-list li{ + padding: 5px 0; + list-style:none; + border-bottom: 1px solid #eee; + font-size: 12px; +} + +ul.dashboard-list li i{ + font-size: 18px; + opacity: .7; + filter: alpha(opacity=70); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + padding: 2px 2px 0px 2px; + margin-right: -2px; +} + +ul.dashboard-list li:first-child { + border-top: none; + border-bottom: 1px solid #eee; +} + +ul.dashboard-list li:last-child { + border-bottom: none; +} + +ul.dashboard-list a:hover{ + text-decoration:none; +} + +ul.dashboard-list{ + margin:0; +} + +ul.dashboard-list li a span { + display: inline-block; + font-size: 18px; + font-weight: bold; + text-align: right; + padding: 0px 4px; +} + +ul.dashboard-list li .avatar { + height: 50px; + width: 50px; + padding: 1px; + float: left; + margin-top: 3px; + margin-right: 15px; + border: 1px solid #eee; +} + +ul.dashboard-list li .avatar img{ + height: 40px; + width: 40px; + padding: 1px; + float: left; + margin-top: 3px; + margin-right: 15px; + border: 1px solid #eee; +} + +/* Dashboard Lists Metro Style ex. +=================================================================== */ + +ul.dashboard-list.metro { + margin: -10px -10px; +} + +ul.dashboard-list.metro li { + padding: 5px 0; + list-style:none; + border-bottom: 1px solid #eee; + font-size: 12px; +} + +ul.dashboard-list.metro li:last-child { + border-bottom: none; +} + +ul.dashboard-list.metro li i { + font-size: 18px; + padding: 9px 7px; + margin: -5px 10px -5px 0px; +} + +ul.dashboard-list a:hover{ + text-decoration:none; +} + +ul.dashboard-list.metro li .avatar { + height: 50px; + width: 50px; + float: left; + margin: 3px 15px 0px 10px; + border: none; +} + +/* Support tickets +=================================================================== */ + +ul.tickets { + margin:0; +} + +ul.tickets li { + list-style: none; + padding: 5px 0; + border-top: 1px solid #fff; + border-bottom: 1px solid #eee; + font-size: 12px; +} + +ul.tickets li:first-child { + border-top: none; + border-bottom: 1px solid #eee; +} + +ul.tickets li:last-child { + border-bottom: none; +} + + +ul.tickets li.ticket .header { + width: 100%; + display: inline-block; + font-weight: bold; + font-size: 13px; +} + +ul.tickets li.ticket .header .title { + float: left; + text-align: left; +} + +ul.tickets li.ticket .header .number { + float: right; + text-align: right; +} + +ul.tickets li.ticket .avatar img { + height: 36px; + width: 36px; + padding: 1px; + float: left; + margin-top: 1px; + margin-right: 10px; + border: 1px solid #eee; +} + +ul.tickets li.ticket .content{ + display: inline-block; + width: 100%; +} + +ul.tickets li.ticket .content .name, +ul.tickets li.ticket .content .status { + float: left; + text-align: left; + width: 40%; + white-space: nowrap; + overflow:hidden !important; + text-overflow: ellipsis; +} + +ul.tickets li.ticket .content .priority, +ul.tickets li.ticket .content .date { + float: right; + text-align: right; +} + +/* Support tickets Metro Style +=================================================================== */ + +ul.tickets.metro { + margin: -10px; +} + +ul.tickets.metro li { + padding: 5px 10px; +} + +ul.tickets.metro li a { + color: #fff !important; +} + +ul.tickets li.ticket .avatar img { + padding: 0px; + border: none; +} + +/* Chat +=================================================================== */ + +ul.chat { + margin:0; +} + +ul.chat li { + list-style: none; + padding: 5px 0; + margin: 10px auto; + font-size: 12px; +} + + +ul.chat li img.avatar { + height: 50px; + width: 50px; + padding: 1px; + border: 1px solid #eee; +} + +ul.chat li.left img.avatar { + float: left; + margin-right: 10px; +} + +ul.chat li.right img.avatar { + float: right; + margin-left: 10px; +} + +ul.chat li .message { + display: block; + border: 2px solid #eee; + padding: 5px; + position: relative; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +ul.chat li.left .message { + text-align: left; + margin-left: 65px; + background: #fff +} + +ul.chat li.left .message .arrow { + height: 20px; + width: 20px; + display: block; + position: absolute; + top: 5px; + left: -20px; + background: url(../img/chat-left.png) no-repeat 0px 0px; +} + +ul.chat li.right .message .arrow { + height: 20px; + width: 20px; + display: block; + position: absolute; + top: 5px; + right: -20px; + background: url(../img/chat-right.png) no-repeat 0px 0px; +} + +ul.chat li.right .message { + text-align: right; + margin-right: 65px; + background: #fcfcfc; +} + +ul.chat li .message .text { + display: block; +} + +.chat-form { + border-top: 1px solid #ddd; + background: #eee; + padding: 10px; + margin: 20px -10px -10px -10px; +} + +.chat-form textarea { + width: 100%; + padding: 0.5em; + -webkit-box-sizing: border-box; /* Safari, Chrome et al */ + -moz-box-sizing: border-box; /* Firefox */ + box-sizing: border-box; /* Opera/IE 8+ */ + height: 80px; + outline: 0px !important; + font-size: 12px; +} + +/* Chat Metro Style +=================================================================== */ + +ul.chat.metro { + margin:-10px -10px -20px -10px; + padding: 10px; +} + +ul.chat.metro li img.avatar { + padding: 0px; + border: none; +} + +ul.chat.metro li .message { + background: rgba(0,0,0,.2) !important; + border: 2px solid rgba(0,0,0,.27) !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +ul.chat.metro li.left .message .arrow { + left: -22px; + background: url(../img/chat-left-metro.png) no-repeat 0px 0px; +} + +ul.chat.metro li.right .message .arrow { + right: -22px; + background: url(../img/chat-right-metro.png) no-repeat 0px 0px; +} + +/* Forms +=================================================================== */ + +.form-actions { + padding: 19px 20px 20px; + margin: 20px -10px -30px -10px; + background-color: #333; + + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +/* Buttons +=================================================================== */ + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 500; + line-height: 20px; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: 1px solid #a7a9aa; + -webkit-border-radius: 0px !important; + border-radius: 0px !important; +} + +.btn i { + margin-top: 2px; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #fff; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: default; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 14px; + font-size: 17.5px; + border-radius: 0px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + border-radius: 0px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + border-radius: 0px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn { + color: #ffffff; + background-color: #a7a9aa; + border-color: #a7a9aa; + background-image: none; + filter: none; + text-shadow: none; +} + +.btn:hover, +.btn:focus, +.btn:active { + background-color: #9a9c9d; + border-color: #8d9091; +} + +.btn.disabled:hover, +.btn[disabled]:hover, +fieldset[disabled] .btn:hover, +.btn.disabled:focus, +.btn[disabled]:focus, +fieldset[disabled] .btn:focus, +.btn.disabled:active, +.btn[disabled]:active, +fieldset[disabled] .btn:active { + background-color: #a7a9aa; + border-color: #a7a9aa; +} + +.btn-primary { + background-color: #2D89EF; + border-color: #2D89EF; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background-color: #357ebd; + border-color: #3071a9; +} + +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active { + background-color: #2D89EF; + border-color: #2D89EF; +} + +.btn-warning { + background-color: #FFC40D; + border-color: #FFC40D; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active { + background-color: #eea236; + border-color: #ec971f; +} + +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active { + background-color: #FFC40D; + border-color: #FFC40D; +} + +.btn-danger { + background-color: #EB3C00; + border-color: #EB3C00; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active { + background-color: #d43f3a; + border-color: #c9302c; +} + +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active { + background-color: #EB3C00; + border-color: #EB3C00; +} + +.btn-success { + background-color: #00A300; + border-color: #00A300; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active { + background-color: #4cae4c; + border-color: #449d44; +} + +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active { + background-color: #00A300; + border-color: #00A300; +} + +.btn-info { + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active { + background-color: #46b8da; + border-color: #31b0d5; +} + +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active { + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link { + font-weight: normal; + color: #2D89EF; + cursor: pointer; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #333333; + text-decoration: none; +} + +/* Alert Boxes +=================================================================== */ +.alert { + font-family: Arial, sans-serif; + font-size: 12px; + line-height: 18px; + margin-bottom: 15px; + position: relative; + padding: 14px 40px 14px 18px; + -webkit-box-shadow: 0px 1px 1px 0px rgba(180, 180, 180, 0.1); + box-shadow: 0px 1px 1px 0px rgba(180, 180, 180, 0.1); + -webkit-border-radius: 0px; + border-radius: 0px; +} + +.alert.alert-success { + background-color: #edf6e5 !important; + color: #7a9659 !important; + border: 1px solid #9fc76f !important; +} + +.alert.alert-error { + background-color: #fdeaea !important; + color: #ca6f74 !important; + border: 1px solid #f27b81 !important; +} + +.alert { + background-color: #fffee1 !important; + color: #daac50 !important; + border: 1px solid #f5c056 !important; +} + +.alert.alert-info { + background-color: #e9f8ff !important; + color: #5d9fa9 !important; + border: 1px solid #75c7d3 !important; +} + +/* Tables +=================================================================== */ + +.table th, +.table td { + border-top: 1px solid #eee; +} + +.table-bordered { + border-color: #eee; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #eee; +} +.num{ + white-space:nowrap; +} +.name{ + white-space:nowrap; +} +.realname{ + white-space:nowrap; +} + +.role{ + width:40%; +} +.dept{ + width:60%; +} +.yn{ + white-space:nowrap; +} +.ctime{white-space:nowrap;} +.color_6,.color_7{ + white-space:nowrap; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +.pagination ul { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + -webkit-border-bottom-left-radius: 0px; + border-bottom-left-radius: 0px; + -webkit-border-top-left-radius: 0px; + border-top-left-radius: 0px; + -moz-border-radius-bottomleft: 0px; + -moz-border-radius-topleft: 0px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 0px; + border-top-right-radius: 0px; + -webkit-border-bottom-right-radius: 0px; + border-bottom-right-radius: 0px; + -moz-border-radius-topright: 0px; + -moz-border-radius-bottomright: 0px; +} + +/* Tabs +=================================================================== */ + +.tab-menu.nav-tabs { + *zoom: 1; + margin-top: -46px; +} + +.tab-menu.nav-tabs > li { + float: left; +} + +.tab-menu.nav-tabs { + border-bottom: none; +} + +.tab-menu.nav-tabs > li { + margin-bottom: -1px; +} + +.tab-menu.nav-tabs > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 16px; + margin-left: 0px; + border: none; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.tab-menu.nav-tabs > li > a:hover { + border: none; + color: rgb(29, 60, 16); + background-color: rgb(238, 238, 238); +} + +.tab-menu.nav-tabs > .active > a { + color: #555555; + cursor: default; + background-color: #fff; + border: none; + border-left: 5px solid rgba(255,204,0,1); + border-right: 5px solid rgba(255,204,0,1); +} + +.tab-menu.nav-tabs > .active > a:hover { + background-color: #fafafa; +} + +/* Masonry Gallery +=================================================================== */ + +.masonry-thumb { + display: inline-block; + vertical-align: top; + margin-bottom: 6px; +} + +/* Login Box +=================================================================== */ + +.login-box { + width: 450px; + margin: 100px auto; + background: rgb(59,59,65); /* Old browsers */ + /* IE9 SVG, needs conditional override of 'filter' to 'none' */ + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y1ZjVmNSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjE5JSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijc3JSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNWY1ZjUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background: -moz-linear-gradient(top, rgba(59,59,65,1) 0%, rgba(59,59,65,1) 19%, rgba(59,59,65,1) 77%, rgba(59,59,65,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(59,59,65,1)), color-stop(19%,rgba(59,59,65,1)), color-stop(77%,rgba(59,59,65,1)), color-stop(100%,rgba(59,59,65,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(59,59,65,1) 0%,rgba(59,59,65,1) 19%,rgba(59,59,65,1) 77%,rgba(59,59,65,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(59,59,65,1) 0%,rgba(59,59,65,1) 19%,rgba(59,59,65,1) 77%,rgba(59,59,65,1) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, rgba(59,59,65,1) 0%,rgba(59,59,65,1) 19%,rgba(59,59,65,1) 77%,rgba(59,59,65,1) 100%); /* IE10+ */ + background: linear-gradient(to bottom, rgba(59,59,65,1) 0%,rgba(59,59,65,1) 19%,rgba(59,59,65,1) 77%,rgba(59,59,65,1) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3b3b41', endColorstr='#3b3b41',GradientType=0 ); /* IE6-8 */ + color: #000; + overflow: hidden; + -webkit-box-shadow: 0px 0px 15px 5px rgba(0,0,0,0.15); + -moz-box-shadow: 0px 0px 15px 5px rgba(0,0,0,0.15); + box-shadow: 0px 0px 15px 5px rgba(0,0,0,0.15); +} +.login-box1{ + height:80px; + width:450px; + background:#3b3b41; + padding-top:100px; + text-align: center; +} +.login-box1 span{ + color:#fc0; + font-size:40px; + text-shadow: 1px 1px 0px #fff; +} +.login-box2{ + height:157px; + width:450px; + background:#fc0; + padding-top:10px; +} +.login-box form{ + background:#3b3b41; +} +.login-img { + height:auto; !important +} + +.login-box h1 { + color: #333333; + text-align:center; + font-family: monaco; + font-weight: bolder; +} + +.login-box .icons { + text-align: right; + margin: 20px 15px; + +} + +.login-box .icons i { + text-align: right; + opacity: .2; + filter: alpha(opacity=20); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; + margin: 0px 5px; +} + +.login-box .icons i:hover { + opacity: .8; + filter: alpha(opacity=80); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; +} + +.login-box h2 { + color: #646464; + margin-left: 30px; + font-family: monaco; + font-weight: normal; +} + +.login-box h3 { + color: #646464; + margin-left: 30px; + font-family: monaco; + font-weight: normal; +} + +.login-box p { + margin: 10px 30px; + font-weight: normal; +} + +.login-box .input-prepend { + background: #3b3b41; + width: 100%; + text-align: center; + padding: 15px 0px; + border-left: 3px solid #3b3b41; +} + +.login-box .input-prepend-focus { + background: #fcfcfc; + width: 100%; + text-align: center; + padding: 15px 0px; + border-left: 3px solid #646464; +} + +.login-box .add-on { + border: 1px solid #eee !important; + background: #fff; + margin-left: -10px; +} + +.login-box .add-on i{ + opacity: .1; + filter: alpha(opacity=10); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; +} + +.login-box input[type="text"], +.login-box input[type="password"] { + border: 1px solid #eee !important; + color: #333; + border-left: none !important; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.login-box .remember { + margin-top: 20px; + margin-left: 20px; + float: left; +} + +.login-box .button-login { + margin-top: 20px; + margin-right: 20px; + margin-bottom:20px; + float: right; +} + +/* UI - Uniform +=================================================================== */ + +div.checker { + margin-top: -4px !important; +} + +div.radio { + margin-top: -4px !important; +} + +div.uploader{ + -webkit-border-radius:10px; + -moz-border-radius:10px; + border-radius:10px; +} + +/* UI - Sliders & Progress +=================================================================== */ + +.ui-slider-handle { + display: inline-block; + border: 1px solid #ddd; + height: 16px; + width: 16px; + position: absolute !important; + background: url("../img/slider_r8.png") no-repeat center center scroll #f4f4f4 !important; + background: url("../img/slider_r8.png") no-repeat center center scroll, -webkit-linear-gradient(top , #F4F4F4 0%, #F7F7F7 100%) !important; + background: url("../img/slider_r8.png") no-repeat center center scroll, -moz-linear-gradient(top , #F4F4F4 0%, #F7F7F7 100%) !important; + background: url("../img/slider_r8.png") no-repeat center center scroll, -o-linear-gradient(top , #F4F4F4 0%, #F7F7F7 100%) !important; + background: url("../img/slider_r8.png") no-repeat center center scroll, -ms-linear-gradient(top , #F4F4F4 0%, #F7F7F7 100%) !important; + background: url("../img/slider_r8.png") no-repeat center center scroll, linear-gradient(top , #F4F4F4 0%, #F7F7F7 100%) !important; + margin-top: -1px !important; + outline: none !important; +} + +.sliderVertical .ui-slider-handle { + margin: 0px 0px -10px 0px !important; +} + +.slider { + background: #eee !important; + border: 1px solid #ddd !important; + height: 10px; + position: relative; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.slider .ui-slider-range { + position: absolute; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.sliderVertical { + background: #eee !important; + border: 1px solid #ddd !important; + width: 6px; + top: auto; + bottom: auto; + padding: 15px 3px !important; + position: relative; + margin: 8px 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + float: left; + height: 100px; + margin-right: 40px; +} + + +.sliderVertical .ui-slider-range { + height: 100%; + width: 100%; + top: auto; + bottom: auto; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.ui-slider-range-max { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.ui-slider-range-min { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.sliderVertical .ui-slider-range-max { + top: 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.sliderVertical .ui-slider-range-min { + bottom: 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.progress { + background: #eee !important; + border: 1px solid #ddd !important; + height: 14px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + position: relative; +} + +.ui-progressbar-value { + border-color: transparent; + height: 100%; + top: 0px; + position: absolute; + left: 0px; +} + +.progressBarValue span{ + font-size: 12px; +} + +.progressBarValue span.progressCustomValueVal { + font-size: 18px; font-weight: 700; padding:0 5px; color: #FA5833; +} + + +.progressSlim { + background: #ddd !important; + height: 12px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + position: relative +} + +.tasks .progressSlim { + overflow: hidden; + border: none !important; + height: 12px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + margin-top: 0px; +} + +.tasks .progressSlim .ui-progressbar-value { + overflow: hidden; + margin: 0px; + border: none !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.progressSlim .ui-progressbar-value { + border-color: transparent; + height: 100%; + top: 0px; + position: absolute; + left: 0px; +} + +/* ToDo List +=================================================================== */ +.todo ul{ + list-style: none; + padding: 0px; + margin: 0px; +} + +.todo ul li{ + margin-left: 0px !important; + padding: 5px; + border-top: 1px solid #fff; + border-bottom: 1px solid #f6f6f6; + font-size: 12px; + position: relative; +} + +.todo-actions{ + position: absolute; + right: 0px; +} + +.todo .label { + position: absolute; + right: 60px; +} + +.todo-actions i { + opacity: .3; + filter: alpha(opacity=30); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; + margin: 2px 5px 0px 5px; +} + +.todo-actions i:hover { + opacity: .6; + filter: alpha(opacity=60); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; +} + +.todo ul li:first-child{ + border-top: 0px; +} + +.todo ul li:last-child{ + border-bottom: 0px; +} + +/* ToDo List Metro Style +=================================================================== */ +.todo.metro ul{ + list-style: none; + padding: 0px; + margin: -10px; +} + +.todo.metro ul li { + padding: 8px; + border-bottom: none; + font-size: 12px; + position: relative; + color: #fff !important; +} + +.todo.metro ul li a { + color: #fff !important; + text-decoration: none; + font-size: 14px; +} + +.todo.metro ul li strong { + position: absolute; + right: 10px; +} + +.todo .label { + position: absolute; + right: 60px; +} + +.todo-actions i { + opacity: .3; + filter: alpha(opacity=30); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; + margin: 2px 5px 0px 5px; +} + +.todo-actions i:hover { + opacity: .6; + filter: alpha(opacity=60); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; +} + +.todo ul li:first-child{ + border-top: 0px; +} + +.todo ul li:last-child{ + border-bottom: 0px; +} + +/* Skill Bars +=================================================================== */ +.skill-bar h5 { + margin-bottom:6px; +} + +.skill-bar li { + margin-bottom:12px; + list-style: none; + margin-left: -26px; + padding-left: 0px; +} + +.meter { + height: 14px; + position: relative; + background: #fff !important; + border: 1px solid #ddd; +} + +.meter > span { + display: block; + height: 100%; + position: relative; + overflow: hidden; + background:#ddd; +} + +.meter > span:after, .animate > span > span { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + overflow: hidden; +} + +.meter > span:after, +.animate > span > spans li.current { +} + +/* Star Rating +=================================================================== */ + +.rating { + unicode-bidi: bidi-override; + direction: rtl; + font-size: 30px; +} +.rating span.star, +.rating span.star { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; +} +.rating span.star:hover, +.rating span.star:hover { + cursor: pointer; +} +.rating span.star:before, +.rating span.star:before { + content: "\f006"; + padding-right: 5px; + color: #999999; +} +.rating span.star:hover:before, +.rating span.star:hover:before, +.rating span.star:hover ~ span.star:before, +.rating span.star:hover ~ span.star:before { + content: "\f005"; + color: #e3cf7a; +} + +/* Footer +=================================================================== */ + +footer { + min-height: 24px; + background: #3A3A3A; + color: #fff !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +/* Sparkline stats +=================================================================== */ + +.sparkLineStats { + position: relative; + margin-bottom: -4px; +} + +.sparkLineStats ul { + margin:0; +} + +.sparkLineStats li { + margin-bottom: 0; + line-height: 42px; + padding-top:3px; + font-size: 12px +} + +.sparkLineStats li .number { + font-size: 17px; + font-weight: 700; + padding:0px 0px 0px 2px; + color: #fff; +} + +.sparkLineStats li span:first-child { + margin-right: 5px; +} + +.sparkLineStats h4 { + position: relative; + border-bottom: 1px solid #c4c4c4; + padding-bottom: 0px; + margin-bottom: 10px; + line-height: 37px; + -webkit-box-shadow: 0 1px 0px rgba(255, 255, 255, 1); + -moz-box-shadow:0 1px 0px rgba(255, 255, 255, 1); + box-shadow: 0 1px 0px rgba(255, 255, 255, 1); +} + +/* Circle stats +=================================================================== */ + +.circleStats {text-align: center; position: relative;} + +.circleStatsItemBox { + position: relative; + background: #67C2EF; + width:100%; + min-width: 130px; + height: 160px; + padding-top: 40px; + margin-bottom: 28px; +} + +.circleStatsItemBox .header { + background: rgba(255,255,255,0.2); + color: rgba(255,255,255,0.9); + width: 100%; + height: 20px; + padding: 5px 0px; + position: absolute; + top: 0px; +} + +.circleStatsItemBox .footer { + background: rgba(0,0,0,0.1); + color: rgba(255,255,255,0.9); + width: 100%; + height: 20px; + padding: 5px 0px; + position: absolute; + bottom: 0px; +} + +.circleStatsItemBox .footer .count{ + font-size: 12px; +} + +.circleStatsItemBox .footer .value{ + font-weight: bold; +} + +.circleStatsItemBox .percent { + font-size: 12px; + position: absolute; + top:110px; + width: 100%; + left: 0px; + text-align: center; + color: rgba(255,255,255,0.9); +} + +.circleStatsItemBox input { + cursor: default; + box-shadow: none; + border:none; + height: auto; + position: absolute; + top:30px; + padding: 5px 0px !important; + border-color: rgba(0, 0, 0, 0.8); +} + +.circleStatsItemBox input:focus { + outline: 0; + outline: thin dotted 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* Typography - Blockquote +=================================================================== */ +blockquote { + background: url(../img/quote.png) no-repeat 0px 10px; + font-style: italic; + border-left: none; + padding: 0 0 0 30px; +} + +/* Icons +=================================================================== */ + +.the-icons { + list-style: none; +} + +.glyphicons p { + width: 33%; + float: left; + line-height: 44px; +} + +/* Page: Messages +=================================================================== */ + +ul.messagesList { + list-style: none; + margin: 0px; + font-size: 12px; + +} + +ul.messagesList li { + background: #3A3A3A; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + padding: 5px 10px; + cursor: pointer; +} + +ul.messagesList li .glyphicons{ + padding: 5px 0 5px 25px; +} + +ul.messagesList li .glyphicons i:before{ + font-size: 14px; + margin: -2px 0px 0px 5px; + color: #3b3b41; +} + +ul.messagesList li:nth-child(odd) { + background: #646464 !important; +} + +ul.messagesList li.odd { + background: #fff !important; +} + +ul.messagesList li span.from { + display: inline-block; + width: 25%; + white-space: nowrap; + overflow:hidden !important; + text-overflow: ellipsis; +} + +ul.messagesList li span.title { + display: inline-block; + width: 55%; + font-weight: 300; + white-space: nowrap; + overflow:hidden !important; + text-overflow: ellipsis; +} + +ul.messagesList li span.date { + display: inline-block; + width: 20%; + text-align: right; +} + +.message .header { + margin-bottom: 30px; +} + +.message .header h1{ + background: #67C2EF; /* rgba(103, 194, 239, 1); */ + color: #fff; + text-shadow: 0px -1px 0px rgba(0,0,0,.15); + margin: -20px -20px 10px -20px; + padding: 20px; +} + +.message .header i { + margin-top: 1px; +} + +.message .header .from { + display: inline-block; + width: 70%; + font-size: 12px; +} + +.message .header .date { + display: inline-block; + width: 29%; + text-align: right; + float: right; + font-size: 12px; +} + +.message .attachments { + border-top: 3px solid #f9f9f9; + border-bottom: 3px solid #f9f9f9; + padding: 10px 0px; + margin-bottom: 20px; + font-size: 12px; +} + +.message .attachments ul { + list-style: none; + margin: 0; +} + +.message .attachments ul li { + margin: 10px 0; +} + +.message .attachments ul li span.label { + font-size: 12px !important; +} + +.message .attachments ul li span.quickMenu { + float: right; + text-align: right; +} + +.message .attachments ul li span.quickMenu .glyphicons { + padding: 5px 0 5px 25px; +} + +.message .attachments ul li span.quickMenu .glyphicons i:before{ + font-size: 14px; + margin: -2px 0px 0px 5px; + color: #3b3b41; +} + +/* Page: Tasks +=================================================================== */ + +.priority.high { + background: #FFEFEC; /* rgba(250,96,61,.1); */ + margin-bottom: 1px; +} + +.priority.high span { + background: #FA603D; /* rgba(250,96,61,1); */ + padding: 2px 10px; + color: #fff; + display: inline-block; + font-size: 12px; +} + +.priority.medium { + background: #FFF7EB; /* rgba(250,187,61,.1); */ + margin-bottom: 1px; +} + +.priority.medium span { + background: #FABB3D; /* rgba(250,187,61,1); */ + padding: 2px 10px; + color: #fff; + display: inline-block; + font-size: 12px; +} + +.priority.low { + background: #F1F9ED; /* rgba(120,205,81,.1); */ + margin-bottom: 1px; +} + +.priority.low span { + background: #78CD51; /* rgba(120,205,81,1); */ + padding: 2px 10px; + color: #fff; + display: inline-block; + font-size: 12px; +} + +.task { + border-bottom: 1px solid #f9f9f9; + margin-bottom: 1px; +} + +.task.last { + border-bottom: 1px solid transparent; +} + +.task.high { + border-left: 2px solid #FA603D; /* rgba(250,96,61,1); */ +} + +.task.medium { + border-left: 2px solid #FABB3D; /* rgba(250,187,61,1) */; +} + +.task.low { + border-left: 2px solid #78CD51; /* rgba(120,205,81,1); */ +} + +.task .desc { + display: inline-block; + width: 75%; + padding: 10px 10px; + font-size: 12px; +} + +.task .desc .title{ + font-size: 18px; + margin-bottom: 5px; +} + +.task .time { + display: inline-block; + float: right; + width: 15%; + padding: 10px 10px 10px 0px; + font-size: 12px; + text-align: right; +} + +.task .time .date { + font-size: 18px; + margin-bottom: 5px; +} + +.timeline { + width: auto; + height: 100%; + margin: 20px auto; + background: url(../img/timeline-bg.png) repeat-y center top; +} + +.timeslot { + display: inline-block; + position: relative; + width: 100%; + margin: 5px 0px; +} + +.timeslot .task { + position: absolute; + width: 42%; + padding-right: 18px; + display: block; + height: auto; + border: none; + color:#333; +} + +.timeslot.alt .task { + left: auto; + right: -20px; + padding-left: 18px; +} + +.timeslot .task span { + border: 2px solid #67C2EF; /* rgba(103, 194, 239, 1); */ + background: #EDF6FB; /* rgba(103, 194, 239, .1); */ + padding: 5px; + display: block; + font-size: 11px; +} + +.timeslot .task span span{ + border: 0px; + background: transparent; + padding: 0px; +} + +.timeslot .task span span.details{ + font-size: 16px; + margin-bottom: 10px; +} + +.timeslot .task span span.remaining{ + font-size: 14px; +} + +.timeslot .task .arrow { + position: absolute; + top: 6px; + right: 0px; + height: 20px; + width: 20px; + background: url(../img/timeline-left-arrow.png) no-repeat; +} + +.timeslot.alt .task .arrow { + position: absolute; + top: 6px; + left: 0px; + height: 20px; + width: 20px; + background: url(../img/timeline-right-arrow.png) no-repeat; +} + +.timeslot .icon { + position: absolute; + border: 2px solid #67C2EF; /* rgba(103, 194, 239, 1); */ + background: #3b3b41; + -webkit-border-radius: 50em; + -moz-border-radius: 50em; + border-radius: 50em; + height: 30px; + width: 30px; + left: 50%; + margin-left: -16px; + color: #fff; + font-size: 18px; + line-height: 30px; + text-align: center; + text-shadow: none; + z-index: 2; +} + +.timeslot.alt .icon { + +} + +.timeslot .time { + background: #333; + position: absolute; + top: 1px; + left: 50%; + padding: 5px 10px 5px 40px; + z-index: 1; + margin-top: 1px; +} + +.timeslot.alt .time { + top: 1px; + left: auto; + right: 50%; + padding: 5px 40px 5px 10px; +} +.logo { + width:auto; + height:auto; +} + +/* Retina Display Hack +=================================================================== */ +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { + + .timeslot .task .arrow { + background: url(../img/timeline-left-arrow@2x.png) no-repeat; + background-size: 100%; + } + + .timeslot.alt .task .arrow { + background: url(../img/timeline-right-arrow@2x.png) no-repeat; + background-size: 100%; + } + + ul.chat li.left .message .arrow { + background: url(../img/chat-left@2x.png) no-repeat 0px 0px; + background-size: 100%; + } + + ul.chat li.right .message .arrow { + background: url(../img/chat-right@2x.png) no-repeat 0px 0px; + background-size: 100%; + } + + ul.chat.metro li.left .message .arrow { + background: url(../img/chat-left-metro@2x.png) no-repeat 0px 0px; + background-size: 100%; + } + + ul.chat.metro li.right .message .arrow { + background: url(../img/chat-right-metro@2x.png) no-repeat 0px 0px; + background-size: 100%; + } + +} + +#middleRight{ + margin-left: 220px !important; + background-color: #333 !important; +} + +.international-a{ + width:59px; + color:white !important; + position: relative; + left: 0; + right: 0; + top: 0; + bottom: 0;} + diff --git a/gloam/WebRoot/css/su.css b/gloam/WebRoot/css/su.css new file mode 100644 index 0000000..7dfc265 --- /dev/null +++ b/gloam/WebRoot/css/su.css @@ -0,0 +1,3 @@ +#input1{ + width:10px; +} diff --git a/gloam/WebRoot/css/suggest.css b/gloam/WebRoot/css/suggest.css new file mode 100644 index 0000000..c0d1df3 --- /dev/null +++ b/gloam/WebRoot/css/suggest.css @@ -0,0 +1,11 @@ +body{margin:0;padding:0;font-family:"����";font-size:13px;text-align:center;} + #suggest{width:200px;text-align:left} + .gray{color:gray;} + .ac_results {background:#fff;border:1px solid #7f9db9;position: absolute;z-index: 10000;display: none;font-size: 12px;} + .ac_results ul{margin:0;padding:0;list-style:none;} + .ac_results li a{white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px;} + .ac_results li{border:1px solid #fff;} + .ac_over,.ac_results li a:hover {background:#c8e3fc;} + .ac_results li a span{float:right;} + .ac_result_tip{border-bottom:1px dashed #666;padding:3px;} + .ac_results_main{width:200px;height: 600px; overflow-y:auto; } \ No newline at end of file diff --git a/gloam/WebRoot/css/uniform.default.css b/gloam/WebRoot/css/uniform.default.css new file mode 100644 index 0000000..160db6a --- /dev/null +++ b/gloam/WebRoot/css/uniform.default.css @@ -0,0 +1,615 @@ +/* + +Uniform Theme: Uniform Default +Version: 1.6 +By: Josh Pyles +License: MIT License +--- +For use with the Uniform plugin: +http://pixelmatrixdesign.com/uniform/ +--- +Generated by Uniform Theme Generator: +http://pixelmatrixdesign.com/uniform/themer.html + +*/ + +/* Global Declaration */ + +div.selector, +div.selector span, +div.checker span, +div.radio span, +div.uploader, +div.uploader span.action, +div.button, +div.button span { + background-image: url(../img/sprite.png); + background-repeat: no-repeat; + -webkit-font-smoothing: antialiased; +} + +.selector, +.radio, +.checker, +.uploader, +.button, +.selector *, +.radio *, +.checker *, +.uploader *, +.button *{ + margin: 0; + padding: 0; +} + +/* INPUT & TEXTAREA */ + +input.text, +input.email, +input.password, +textarea.uniform { + font-size: 12px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: normal; + padding: 3px; + color: #777; + background: url('../img/bg-input-focus.png') repeat-x 0px 0px; + background: url('../img/bg-input.png') repeat-x 0px 0px; + border-top: solid 1px #ddd; + border-left: solid 1px #ddd; + border-bottom: solid 1px #ddd; + border-right: solid 1px #ddd; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + outline: 0; +} + +input.text:focus, +input.email:focus, +input.password:focus, +textarea.uniform:focus { + -webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.3); + box-shadow: 0px 0px 4px rgba(0,0,0,0.3); + border-color: #999; + background: url('../img/bg-input-focus.png') repeat-x 0px 0px; +} + +/* SPRITES */ + +/* Select */ + +div.selector { + background-position: -483px -130px; + line-height: 26px; + height: 26px; +} + +div.selector span { + background-position: right 0px; + height: 26px; + line-height: 26px; +} + +div.selector select { + /* change these to adjust positioning of select element */ + top: 0px; + left: 0px; +} + +div.selector:active, +div.selector.active { + background-position: -483px -156px; +} + +div.selector:active span, +div.selector.active span { + background-position: right -26px; +} + +div.selector.focus, div.selector.hover, div.selector:hover { + background-position: -483px -182px; +} + +div.selector.focus span, div.selector.hover span, div.selector:hover span { + background-position: right -52px; +} + +div.selector.focus:active, +div.selector.focus.active, +div.selector:hover:active, +div.selector.active:hover { + background-position: -483px -208px; +} + +div.selector.focus:active span, +div.selector:hover:active span, +div.selector.active:hover span, +div.selector.focus.active span { + background-position: right -78px; +} + +div.selector.disabled { + background-position: -483px -234px; +} + +div.selector.disabled span { + background-position: right -104px; +} + +/* Checkbox */ + +div.checker { + width: 19px; + height: 19px; +} + +div.checker input { + width: 19px; + height: 19px; +} + +div.checker span { + background-position: 0px -260px; + height: 19px; + width: 19px; +} + +div.checker:active span, +div.checker.active span { + background-position: -19px -260px; +} + +div.checker.focus span, +div.checker:hover span { + background-position: -38px -260px; +} + +div.checker.focus:active span, +div.checker:active:hover span, +div.checker.active:hover span, +div.checker.focus.active span { + background-position: -57px -260px; +} + +div.checker span.checked { + background-position: -76px -260px; +} + +div.checker:active span.checked, +div.checker.active span.checked { + background-position: -95px -260px; +} + +div.checker.focus span.checked, +div.checker:hover span.checked { + background-position: -114px -260px; +} + +div.checker.focus:active span.checked, +div.checker:hover:active span.checked, +div.checker.active:hover span.checked, +div.checker.active.focus span.checked { + background-position: -133px -260px; +} + +div.checker.disabled span, +div.checker.disabled:active span, +div.checker.disabled.active span { + background-position: -152px -260px; +} + +div.checker.disabled span.checked, +div.checker.disabled:active span.checked, +div.checker.disabled.active span.checked { + background-position: -171px -260px; +} + +/* Radio */ + +div.radio { + width: 18px; + height: 18px; +} + +div.radio input { + width: 18px; + height: 18px; +} + +div.radio span { + height: 18px; + width: 18px; + background-position: 0px -279px; +} + +div.radio:active span, +div.radio.active span { + background-position: -18px -279px; +} + +div.radio.focus span, +div.radio:hover span { + background-position: -36px -279px; +} + +div.radio.focus:active span, +div.radio:active:hover span, +div.radio.active:hover span, +div.radio.active.focus span { + background-position: -54px -279px; +} + +div.radio span.checked { + background-position: -72px -279px; +} + +div.radio:active span.checked, +div.radio.active span.checked { + background-position: -90px -279px; +} + +div.radio.focus span.checked, div.radio:hover span.checked { + background-position: -108px -279px; +} + +div.radio.focus:active span.checked, +div.radio:hover:active span.checked, +div.radio.focus.active span.checked, +div.radio.active:hover span.checked { + background-position: -126px -279px; +} + +div.radio.disabled span, +div.radio.disabled:active span, +div.radio.disabled.active span { + background-position: -144px -279px; +} + +div.radio.disabled span.checked, +div.radio.disabled:active span.checked, +div.radio.disabled.active span.checked { + background-position: -162px -279px; +} + +/* Uploader */ + +div.uploader { + background-position: 0px -297px; + height: 28px; +} + +div.uploader span.action { + background-position: 1px -409px; + height: 24px; + line-height: 24px; +} + +div.uploader span.filename { + height: 24px; + /* change this line to adjust positioning of filename area */ + margin: 2px 0px 2px 2px; + line-height: 24px; +} + +div.uploader.focus, +div.uploader.hover, +div.uploader:hover { + background-position: 0px -353px; +} + +div.uploader.focus span.action, +div.uploader.hover span.action, +div.uploader:hover span.action { + background-position: 0px -437px; +} + +div.uploader.active span.action, +div.uploader:active span.action { + background-position: 1px -465px; +} + +div.uploader.focus.active span.action, +div.uploader:focus.active span.action, +div.uploader.focus:active span.action, +div.uploader:focus:active span.action { + background-position: 1px -493px; +} + +div.uploader.disabled { + background-position: 0px -325px; +} + +div.uploader.disabled span.action { + background-position: 1px -381px; +} + +div.button { + background-position: 0px -523px; +} + +div.button span { + background-position: right -643px; +} + +div.button.focus, +div.button:focus, +div.button:hover, +div.button.hover { + background-position: 0px -553px; +} + +div.button.focus span, +div.button:focus span, +div.button:hover span, +div.button.hover span { + background-position: right -673px; +} + +div.button.active, +div.button:active { + background-position: 0px -583px; +} + +div.button.active span, +div.button:active span { + background-position: right -703px; + color: #555; +} + +div.button.disabled, +div.button:disabled { + background-position: 0px -613px; +} + +div.button.disabled span, +div.button:disabled span { + background-position: right -733px; + color: #bbb; + cursor: default; +} + +/* PRESENTATION */ + +/* Button */ + +div.button { + height: 30px; +} + +div.button span { + margin-left: 13px; + height: 22px; + padding-top: 8px; + font-weight: bold; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + letter-spacing: 1px; + text-transform: uppercase; + padding-left: 2px; + padding-right: 15px; +} + +/* Select */ +div.selector { + width: 190px; + font-size: 12px; +} + +div.selector select { + min-width: 190px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + border: solid 1px #fff; +} + +div.selector span { + padding: 0px 25px 0px 2px; + cursor: pointer; +} + +div.selector span { + color: #666; + width: 158px; + text-shadow: 0 1px 0 #fff; +} + +div.selector.disabled span { + color: #bbb; +} + +/* Checker */ +div.checker { + margin-right: 5px; +} + +/* Radio */ +div.radio { + margin-right: 3px; +} + +/* Uploader */ +div.uploader { + width: 190px; + cursor: pointer; +} + +div.uploader span.action { + width: 85px; + text-align: center; + text-shadow: #fff 0px 1px 0px; + font-size: 11px; + color:#777; +} + +div.uploader span.filename { + color: #777; + width: 82px; + border-right: solid 1px #bbb; + font-size: 11px; +} + +div.uploader input { + width: 190px; +} + +div.uploader.disabled span.action { + color: #aaa; +} + +div.uploader.disabled span.filename { + border-color: #ddd; + color: #aaa; +} +/* + +CORE FUNCTIONALITY + +Not advised to edit stuff below this line +----------------------------------------------------- +*/ + +.selector, +.checker, +.button, +.radio, +.uploader { + display: -moz-inline-box; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} + +.selector select:focus, .radio input:focus, .checker input:focus, .uploader input:focus { + outline: 0; +} + +/* Button */ + +div.button a, +div.button button, +div.button input { + position: absolute; +} + +div.button { + cursor: pointer; + position: relative; +} + +div.button span { + display: -moz-inline-box; + display: inline-block; + line-height: 1; + text-align: center; +} + +/* Select */ + +div.selector { + position: relative; + padding-left: 10px; + overflow: hidden; +} + +div.selector span { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +div.selector select { + position: absolute; + opacity: 0; + filter: alpha(opacity:0); + height: 25px; + border: none; + background: none; +} + +/* Checker */ + +div.checker { + position: relative; +} + +div.checker span { + display: -moz-inline-box; + display: inline-block; + text-align: center; +} + +div.checker input { + opacity: 0; + filter: alpha(opacity:0); + display: inline-block; + background: none; +} + +/* Radio */ + +div.radio { + position: relative; +} + +div.radio span { + display: -moz-inline-box; + display: inline-block; + text-align: center; +} + +div.radio input { + opacity: 0; + filter: alpha(opacity:0); + text-align: center; + display: inline-block; + background: none; +} + +/* Uploader */ + +div.uploader { + position: relative; + overflow: hidden; + cursor: default; +} + +div.uploader span.action { + float: left; + display: inline; + padding: 2px 0px; + overflow: hidden; + cursor: pointer; +} + +div.uploader span.filename { + padding: 0px 10px; + float: left; + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + cursor: default; +} + +div.uploader input { + opacity: 0; + filter: alpha(opacity:0); + position: absolute; + top: 0; + right: 0; + bottom: 0; + float: right; + height: 25px; + border: none; + cursor: default; +} +.icon-info-sign, +.icon-cog{ + color:#e39a1e; + margin-right:2px; +} + diff --git a/gloam/WebRoot/css/upc.css b/gloam/WebRoot/css/upc.css new file mode 100644 index 0000000..dc6663d --- /dev/null +++ b/gloam/WebRoot/css/upc.css @@ -0,0 +1,319 @@ +@CHARSET "UTF-8"; +.breadcrumb{ +margin:0 !important; +} +.bcColor{ +background-color:#333333 !important; + +} +.tdAlignRight{ +text-align:right !important; +} +.tdAlignLeft{ +text-align:left !important; +} +.tdAlignCenter{ +text-align:center !important; +} +.m30{ +margin-left:0% !important; +width:100% !important; +} +img{ +height:20px !important; +} +a{ +color:yellow; +} +.marBott{ +margin-bottom:10px !important; +} +.tm{ +background: rgb(51, 51, 51);filter:alpha(opacity = 50); +background:rgba(255,255,255,0)none repeat scroll; +} + +.noMarginBottom{ +margin-bottom:0px !important; +} +.middle_list{ +margin-top:20px !important; +} +.scroll-y{ +overflow-y:true !important; +} +.noScroll-y{ +overflow-y: hidden !important; +} +.css_loading{ +width:100%; height:100%; position:absolute; top:0%; left:0px; bottom:1px;margin-right: auto;margin-left: auto;background-repeat: no-repeat;background-position: center center;display: none; +background-color: #333333; +z-index:10001; +-moz-opacity: 0.5; +opacity:.0; +filter: alpha(opacity=0); +} +.disTableCell{ +display:table-cell !important; +} + +#suggest1 { + width: 200px !important; + text-align: left !important; +} +.ac_results { + background: #fff !important; + border: 1px solid #7f9db9 !important; + position: absolute !important; + z-index: 10000 !important; + display: none ; + font-size: 12px !important; +} + +.ac_results ul { + margin: 0 !important; + padding: 0 !important; + list-style: none !important; +} + +.ac_results li a { + white-space: nowrap !important; + text-decoration: none !important; + display: block ; + color: #05a !important; + padding: 1px 3px !important; +} + +.ac_results li { + border: 1px solid #fff !important; +} + +.ac_over,.ac_results li a:hover { + background: #c8e3fc !important; +} + +.ac_results li a span { + float: right !important; +} + +.ac_result_tip { + border-bottom: 1px dashed #666; + padding: 3px !important; +} + +.ac_results_main { + width: 200px !important; + height: 200px !important; + overflow-y: auto !important; +} +.gray { + color: gray !important; +} + +.width70{ +width:70% important; +} +.noBorderTop{ +border-top: 0px none !important; +} +.mrt-7{ + +} +.fl{ +float:left !important; +} +.acButton{ +clear:both; +text-align:right; +margin-right:10px; +} +.fiwidth{ +width:23.8px !important; +} +.uploader{ +float:none !important; +} +.mrb5{ +margin-bottom:5px !important; +} +.fieldsetPosition{ +margin-left:20% !important; +margin-top:10px !important; +} +.fieldsetPosition30{ +margin-left:30% !important; +margin-top:10px !important; +} +.fieldsetPosition15{ +margin-left:15% !important; +margin-top:10px !important; +} +.fieldsetPosition10{ +margin-left:10% !important; +margin-top:10px !important; +} +.mktreewidth{ +width:280px !important; +overflow:auto !important; +height:500px !important; +max-height: 510px; +} +.routeInputHeight30{ +height:30px !important; +} +.colorYellow{ +color:yellow !important; +} +.userfl{ +float:left !important; +width:35%; +} +.fieldsetBottom1{ +border-bottom: 1px solid !important; +} +.fieldsetTop10{ +margin-top:10px !important; +} +.labelWidthAuto{ +width:auto !important; +} +.blackcolor{ +color:black !important; +} +.aColorWhite{ +color:white !important; +} +.heh30{ +height:24px !important; +} +.marbottom0{ +margin-bottom:0px !important; +} +.noPadding{ +padding:0 !important; +} +.noLeftBorder tr>td:first-child{ +border-left:0 !important; +} + +.blackBorderColor { +border: 1px solid #333333 !important; +} + +.whiteBorder{ +border:1px solid white !important; +} + +.noleftTdBorder{ +border-left-width: 0px !important; +} + +.noBorder{ +border:0px !important; +} + +.paddingLeft5px{ +padding-left:5px !important; +} +.radioDivPTandHG{ +height: 30px !important; +padding-top: 7px !important; +} +.companyTextWidth{ +width:181px !important; +} +.height26{ +height:20px !important; +} +.syHeight{ +height:900px !important; +} +.minHeight{ +min-height:550px !important; +} +.paddingTop0{ +padding-top:0px !important; +} +.marginRight17{ +margin-right:17px !important; +} +.MzTreeview>font{ +color:#A7A9AA !important; +} +.break7{ +padding:12px 0px 7px !important; +} +#nodeIds{ +margin-right:20px; +margin-bottom:8px; +margin-left:3px; +} +.fontSize{ +font-size:14px; +} + +.select30Height{ + width:auto !important; + height:30px !important; +} + +.testInterval{ + margin:5px !important; +} +.tipInfo{ + color:#EA9546 !important; +} +.templateTable1,.templateTable{ + width:100%; +} +.tdNoBorder th, .tdNoBorder td{ + border-top: 0px solid #EEE; +} +.del_button{ + color:#357EBD !important; + float:right; + cursor: pointer; + display: none; + margin:0 0px 10px 0; +} +#del_recovery_span,#del_backup_span{ + display:inline; +} +.posAndZ-index { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} +.dropdown-menu::after,.dropdown-menu::before{ +border:0px; +} +.trangle::before { + z-index:1; + border: 5px solid transparent; + border-bottom: 10px solid #f0ebeb !important; + width: 0; + height: 0; + position: absolute; + content: ' '; + top:-15px !important; + left:145px !important; +} +.notifications{ +top:30px; +border: 1px solid grey; +} +.notifications > li > a{ +margin-left:0px !important; +margin-right:0px !important; +width:140px !important; +} +.notifications > li{ +width:160px !important; + +} +.notifications > li > a:hover{ +background-color:#0081C2; +background-image:linear-gradient(to bottom, #08C, #0077B3); +} + diff --git a/gloam/WebRoot/css/uploadify.css b/gloam/WebRoot/css/uploadify.css new file mode 100644 index 0000000..89e1932 --- /dev/null +++ b/gloam/WebRoot/css/uploadify.css @@ -0,0 +1,92 @@ +/* +Uploadify +Copyright (c) 2012 Reactive Apps, Ronnie Garcia +Released under the MIT License +*/ + +.uploadify { + position: relative; + margin-bottom: 1em; +} +.uploadify-button { + background-color: #505050; + background-image: linear-gradient(bottom, #505050 0%, #707070 100%); + background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%); + background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%); + background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%); + background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%); + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0, #505050), + color-stop(1, #707070) + ); + background-position: center top; + background-repeat: no-repeat; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; + border: 2px solid #808080; + color: #FFF; + font: bold 12px Arial, Helvetica, sans-serif; + text-align: center; + text-shadow: 0 -1px 0 rgba(0,0,0,0.25); + width: 100%; +} +.uploadify:hover .uploadify-button { + background-color: #606060; + background-image: linear-gradient(top, #606060 0%, #808080 100%); + background-image: -o-linear-gradient(top, #606060 0%, #808080 100%); + background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%); + background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%); + background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%); + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0, #606060), + color-stop(1, #808080) + ); + background-position: center bottom; +} +.uploadify-button.disabled { + background-color: #D0D0D0; + color: #808080; +} +.uploadify-queue { + margin-bottom: 1em; +} +.uploadify-queue-item { + background-color: #F5F5F5; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + font: 11px Verdana, Geneva, sans-serif; + margin-top: 5px; + max-width: 350px; + padding: 10px; +} +.uploadify-error { + background-color: #FDE5DD !important; +} +.uploadify-queue-item .cancel a { + background: url('../img/uploadify-cancel.png') 0 0 no-repeat; + float: right; + height: 16px; + text-indent: -9999px; + width: 16px; +} +.uploadify-queue-item.completed { + background-color: #E5E5E5; +} +.uploadify-progress { + background-color: #E5E5E5; + margin-top: 10px; + width: 100%; +} +.uploadify-progress-bar { + background-color: #0099FF; + height: 3px; + width: 1px; +} \ No newline at end of file diff --git a/gloam/WebRoot/detection/chart-cpudisk.html b/gloam/WebRoot/detection/chart-cpudisk.html new file mode 100644 index 0000000..38c3be1 --- /dev/null +++ b/gloam/WebRoot/detection/chart-cpudisk.html @@ -0,0 +1,223 @@ + + + +#include("/common/header.html") + + + + + + + + + +
+ + + + +
+ +   + + + +
#--#(_res.get("goback"))--#
+
+
+ #for(x : columns) + #if(x.chartState == "0") + #if(fieldName == x.fieldName) + #set(class="tab tab-active") + #else + #set(class="tab") + #end +
#(x.fieldComments)
+ #end + #end +
+
+
+ #for(x : names) +
#(" " + x)
+ #end +
+
+
#(_res.get("reset"))
+
#(_res.get("chart.submit"))
+
+
+ + diff --git a/gloam/WebRoot/detection/chart-mem.html b/gloam/WebRoot/detection/chart-mem.html new file mode 100644 index 0000000..0bf7fbf --- /dev/null +++ b/gloam/WebRoot/detection/chart-mem.html @@ -0,0 +1,195 @@ + + + +#include("/common/header.html") + + + + + + + + + +
+ + + + +
+ +   + + + +
#--#(_res.get("goback"))--#
+
+
+ #for(x : columns) + #if(x.chartState == "0") + #if(fieldName == x.fieldName) + #set(class="tab tab-active") + #else + #set(class="tab") + #end +
#(x.fieldComments)
+ #end + #end +
+
+
+ + diff --git a/gloam/WebRoot/detection/chart-net.html b/gloam/WebRoot/detection/chart-net.html new file mode 100644 index 0000000..73d90c5 --- /dev/null +++ b/gloam/WebRoot/detection/chart-net.html @@ -0,0 +1,215 @@ + + + +#include("/common/header.html") + + + + + + + + + +
+ + + + +
+ +   + + + +
#--#(_res.get("goback"))--#
+
+
+ #for(x : columns) + #if(x.chartState == "0") + #if(fieldName == x.fieldName) + #set(class="tab tab-active") + #else + #set(class="tab") + #end +
#(x.fieldComments)
+ #end + #end +
+
+
+ #for(x : names) + #if(checkedName == x) + #set(checked = "checked='checked'") + #else + #set(checked = "") + #end +
#(" " + x)
+ #end +
+
+
#(_res.get("chart.submit"))
+
+
+ + diff --git a/gloam/WebRoot/detection/detectionInfoNew-index.html b/gloam/WebRoot/detection/detectionInfoNew-index.html new file mode 100644 index 0000000..44c40a3 --- /dev/null +++ b/gloam/WebRoot/detection/detectionInfoNew-index.html @@ -0,0 +1,156 @@ + + + +#include("/common/header.html") + + + + + + +
+
+ + +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + + #set(i=0) + #if(nodeNum!=null&&nodeNum.size()!=0) + #for(s : nodeNum) + #if(monitor!=null&&monitor.size()!=0) + #for(x : monitor) + + #if(x.monitorCard == s.monitorCard) + #if(i == 0 ) + + #end + #set(i=i+1) + + + + + + #end + + #end + #set(i=0) + #end + #end + #end + +
#(_res.get("monitor.card"))#(_res.get("monitor.type"))#(_res.get("monitor.setting"))#(_res.get("monitor.status"))#(_res.get("monitor.check"))#(_res.get("monitor.information"))
#(s.monitorCard) + #(x.monitorType) + + #(x.monitorSetting) + #if(x.monitorSetting != null && x.monitorSetting !='') + + + + #end + + #set(n = com.nis.gloam.util.DateUtil::formatStringToLong(x.now, "yyyy-MM-dd HH:mm:ss")) + #set(c = com.nis.gloam.util.DateUtil::formatStringToLong(x.checkTime, "yyyy-MM-dd HH:mm:ss")) + #if(x.monitorStatus == '1' && (n-c <= java.lang.Integer::parseInt(com.jfinal.kit.PropKit::get("monitor_interval"))*1000*2)) + + #else + + #end + #(x.checkTime) +
+ #if(x.monitorStatus == '1' && (n-c <= java.lang.Integer::parseInt(com.jfinal.kit.PropKit::get("monitor_interval"))*1000*2)) + #(x.monitorInfo.replaceAll("\$@\$", "
")) + #else + i18n_option_table.24.type_code_n81i + #end +
+
+
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/detection/detectionInfoNew-setDetail.html b/gloam/WebRoot/detection/detectionInfoNew-setDetail.html new file mode 100644 index 0000000..f64633b --- /dev/null +++ b/gloam/WebRoot/detection/detectionInfoNew-setDetail.html @@ -0,0 +1,141 @@ + + + +#include("/common/header.html") + + + + + + +
+
+ +
+ +
+
+
+
+

+ +

+
+
+
+
+ +   + + + + + +
+
+ + + + + + + + + + + + + #if(page.getList() == null) + + #end + #for(x : page.getList()) + + + + + + + + + #end + +
#(_res.get("node.ip"))#(_res.get("monitor.type"))#(_res.get("monitor.setting"))#(_res.get("monitor.status"))#(_res.get("monitor.checktime"))#(_res.get("monitor.information"))
+
i18n_dspmi.message.noData_n81i
+
#(x.ip)#(x.monitorType)#(x.monitorSetting) + #if(x.monitorStatus == '1') + + #else + + #end + #(x.checkTime) +
#(x.detectionStateInfo.replaceAll("\$@\$", "
"))
+
+ #@pageSplite(page.pageNumber, page.totalPage, totalRow, pageSize, "/monitor/monitorSetDetail?seqId=" + seqId + "&detectionSetInfoId=" + detectionSetInfoId + "&startTime=" + startTime + "&endTime=" + endTime + "&paginate=") +
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/detection/detectionInfoNew-typeDetail.html b/gloam/WebRoot/detection/detectionInfoNew-typeDetail.html new file mode 100644 index 0000000..733adaa --- /dev/null +++ b/gloam/WebRoot/detection/detectionInfoNew-typeDetail.html @@ -0,0 +1,122 @@ + + + +#include("/common/header.html") + + + + + + +
+
+ +
+ +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#(_res.get("monitor.data.details"))
#(_res.get("monitor.setting"))#(base.get("monitorSetting"))#(_res.get("node.ip"))#(base.get("ip"))#(_res.get("monitor.status"))#(_res.get(base.get("monitorStatus")))
#(_res.get("monitor.checktime"))#(base.get("checkTime"))#(_res.get("monitor.nextchecktime"))#(base.get("nextCheckTime"))#(_res.get("monitor.arriveTime"))#(base.get("arriveTime"))
#(_res.get("monitor.information"))#(base.get("detectionStateInfo").replaceAll("\$@\$", "
"))
+ + #set(s=columns.size()) + + + + + #for(column : columns) + + #end + + #for(detail : details) + + #for(column : columns) + #if(detail.get(column.fieldName).toString().contains("E")) + + #else + + #end + #end + + #end +
#(_res.get("monitor.data"))
#(column.fieldComments)
#(detail.get(column.fieldName))#(detail.get(column.fieldName))
+
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/error/404.html b/gloam/WebRoot/error/404.html new file mode 100644 index 0000000..8283465 --- /dev/null +++ b/gloam/WebRoot/error/404.html @@ -0,0 +1,18 @@ + + + + + + + + +404 +#include("/common/header.html") + + + +
+ #(_res.get('404')) +
+ + diff --git a/gloam/WebRoot/error/500.html b/gloam/WebRoot/error/500.html new file mode 100644 index 0000000..a3f0240 --- /dev/null +++ b/gloam/WebRoot/error/500.html @@ -0,0 +1,18 @@ + + + + + + + + +500 +#include("/common/header.html") + + + +
+ #(_res.get('500')) +
+ + diff --git a/gloam/WebRoot/font/fontawesome-webfont-62877.ttf b/gloam/WebRoot/font/fontawesome-webfont-62877.ttf new file mode 100644 index 0000000..d461724 Binary files /dev/null and b/gloam/WebRoot/font/fontawesome-webfont-62877.ttf differ diff --git a/gloam/WebRoot/font/fontawesome-webfont-62877.woff b/gloam/WebRoot/font/fontawesome-webfont-62877.woff new file mode 100644 index 0000000..3c89ae0 Binary files /dev/null and b/gloam/WebRoot/font/fontawesome-webfont-62877.woff differ diff --git a/gloam/WebRoot/i18n/globalMessages_en_US.properties b/gloam/WebRoot/i18n/globalMessages_en_US.properties new file mode 100644 index 0000000..e650854 --- /dev/null +++ b/gloam/WebRoot/i18n/globalMessages_en_US.properties @@ -0,0 +1,7352 @@ +#WebRoot directory +################################################# +#login.jsp page +login.message.title=Network Management System_User Login +login.message.username=Please enter username or password +login.message.password=Please enter user name or password +login.text.username=Use  Users +login.text.password=Secure  Code +login.message.yhmc=Please enter user name + +#main.jsp page +main.message.title=Network Management System +main.text.show1=Alarm Information +main.text.show2=Alarm Information +main.format.data=yyyy-MM-dd hh:mm:ss week w +main.format.week=Sundy Monday Tuesday Wendesday Thursday Friday Sataday +main.message.stateInfo1=Completed +main.message.stateInfo2=All Succeeded +main.message.stateInfo3=All Failed +main.message.stateInfo4=Partially Successful +main.message.info=The following tasks completed +main.text.logout=Exit +main.text.systemSelect=View Switch +main.text.welcome=Hello! +main.text.systemName=Current Business System +main.message.I3=The browser does not support inline frames or is configured not to display inline frames. + +#middle.jsp page +middle.message.title=Network Management System +middle.message.I3=The browser does not support inline frames or is configured not to display inline frames. + +#middle1.jsp page +middle1.message.title=Network Management System +middle1.text.position=Your current location is: Information Management +middle1.text.selectMessage=Information Lookup +middle1.text.selectDefault=Please Select +middle1.text.allMessage=All Information +middle1.text.undergraduate=Undergraduate +middle1.text.graduate=Graduate +middle1.text.message=Information +middle1.text.username=Username +middle1.text.realName=Real Name +middle1.text.currentState=Current Status +middle1.text.operation=Operation +middle1.text.messageName=The name of the message +middle1.text.userName=The user's first name +middle1.text.userRealName=The user's real name +middle1.text.state=Normal +middle1.text.delete=Delete +middle1.text.page.total=A total of +middle1.text.page.pageInfo=Page Information +middle1.text.page.current=Current Page +middle1.text.page.page=Page +middle1.text.page.change=Go +middle1.text.page.unit=Page + +#showImportError.jsp page +sie.message.title=Error Information Page +sie.text.errorMessage=Error Message +sie.button.back=Back + +#showImportError.jsp page +sie.text.brandError=Brand Error Message +sie.text.engineError=Host Frame Error Message +sie.text.cardSlotError=Slot Error Message +sie.text.BoardError=Board Error Message +sie.text.portError=Port Error Message + +#systemSelect.jsp page +systemSelect.message.title=Network Management System_Business System Selection +systemSelect.font.style1=Microsoft Black +systemSelect.message.loginSuccess=Login Successful +systemSelect.message.system=Business System + +#page.jsp +page.message.inputnum = Please enter the number +page.text.current= Current +page.text.total= Total of +page.text.record= Records +page.text.page= Page +page.text.change= Go to +page.text.pageSize= Each Page Shows + +#pageSub.jsp +pageSub.text.inputNum= Please enter the number +pageSub.text.tooSmall= The number of pages entered is too small. Please re-enter the number of pages entered +#remoteConn.jsp +remoteConn.text.title= Remote Connection +remoteConn.text.sure= Sure +remoteConn.text.select= Please Select +remoteconn.text.unknow = Unselected type +remoteConn.text.cancel= Cancel +remoteConn.text.downMsg= Click to download and install the client executor before accessing the remote connection +remoteConn.text.download=Download +remoteConn.text.down= Click And Download +remoteConn.message.title= Please select the operating system +remoteConn.text.sysType= Operating System Type +remoteConn.text.svgMsg= No SVG plug-in installed, download and install + +#WebRoot directory +#page directory +#detecation directory +#checkType directory +################################################ +#addCheckTypeSetInfo.jsp page +actsi.message.title=Add Monitoring Category Setting Information +actsi.text.checkTypeName1=Monitoring Category Name +actsi.text.checkTypeName=Monitoring Category +actsi.text.tableName=Corresponding Database Table +actsi.text.checkTypeName1.hasSpecialChar=There are special characters in the monitor category name. Please re-enter it. +actsi.text.tableName.enterDBName=Please enter the database table name +actsi.text.tableName.tabSpecialChar=There is a special character in the corresponding database table. Please enter it again. +actsi.text.tableName.tabHasZh=The corresponding database table exists in Chinese, please re-enter +actsi.text.usergroup=User Group +actsi.text.oidFont=OID is illegal. The format is as follows: OID: 1.3.6.1.2.1.1 +actsi.text.ctypeName.exception1=Please enter a length less than 64 characters +actsi.text.tableNameFont.exception=Please enter a length less than 21 characters +actsi.text.ctypeName.exception2=Please enter letters and numbers +actsi.button.back=Return +actsi.text.addCheckType=Add Monitoring Category +actsi.text.tableDesc=Table Description +actsi.text.viewPrivilege=View Permissions +actsi.text.viewPrivilege.publisher=Publisher View +actsi.text.viewPrivilege.publisherGroup=Publisher Group View +actsi.text.viewPrivilege.allInSys=All People In The System View +actsi.text.viewPrivilege.unlimited=Unlimited +actsi.text.usergroup1=User  group +actsi.text.selectUserGroup=Please select a user group +actsi.text.snmp=SNMP Monitoring +actsi.text.NO=No +actsi.text.lawful=Lawful +actsi.text.isSchedule=Preset Information +actsi.text.remark=Notes +actsi.button.submit=Submit +actsi.button.reset=Reset + +#addCheckTypeSource.jsp page +acts.message.title=Configure Monitoring Category Metadata +acts.error.abnormalOperation=Abnormal Operation! +acts.error.charLen=Please enter the character length +acts.text.filedName=Field Name +acts.text.filedComments=Field Description +acts.text.filedType=Field Type +acts.text.showNum=Transmission Sequence Number +acts.error.filedName=The field name exists in Chinese, please enter again +acts.text.filedTypeLength=Field Length +acts.error.cannotNum=Cannot begin with a number +acts.error.hasSpecialChar=There are special characters in the field name. Please re-enter it. +acts.error.lenTooLess=The length of the field name must be less than 15 characters +acts.text.addDetecationMetaDate=New Monitoring Category Metadata +acts.text.detecationType=Monitoring Category +acts.text.tableName=Table Name +acts.error.filedComments=Please specify field units +acts.message.filedType.selectDefault=Please Select +acts.message.filedType.selectNumber=Number +acts.message.filedType.selectDATE=Time +acts.message.filedType.selectVARCHAR2=Text +acts.text.metaDateState=Is the ID enabled? +acts.message.metaDateState0=Enabled +acts.message.metaDateState1=Disabled +acts.text.ChartState=Used for statistics +acts.message.yes=Yes +acts.message.no=No +acts.text.serialNumber=Serial Number during transmission +acts.button.submit=Submit +acts.button.reset=Reset +acts.button.back=Back + +#checkTypeSetInfoList.jsp page +ctsil.message.title=Monitoring Category Management +ctsil.message.success=Operation is successful! +ctsil.message.faild=Operation Failed! +ctsil.error.itemSelect=Please select a row! +ctsil.error.isDelete=Is sure to delete the setting information? +ctsil.error.selectFile=Please select the imported file +ctsil.error.selectFileType=Please select the correct import file type +ctsil.error.isImport=Import monitoring category. Are you sure to import? +ctsil.text.detecationTypeName=Monitoring Category Name +ctsil.message.selectDetecationTypeDefault=Please Select +ctsil.button.downloadModel=Download Template +ctsil.button.import=Import +ctsil.button.export=Export +ctsil.button.index=Index +ctsil.text.detecationType=Monitoring Category +ctsil.text.tableMap=The Corresponding Database Table +ctsil.text.tableComments=Table Description +ctsil.text.isSchedule=Preset Information +ctsil.text.isSnmp=Whether SNMP Monitoring +ctsil.text.remark=Notes +ctsil.message.yes=Yes +ctsil.message.no=No +ctsil.message.noRecord=No Record +ctsil.button.exportCurrentPage=Export The Current Page Data +ctsil.button.exportAllData=Export All Data +ctsil.button.closeWindow=Close Window + +#checkTypeSetInfoListChild.jsp page +ctsilc.message.yes=Yes +ctsilc.message.no=No + +#checkTypeSourceList.jsp page +ctsl.message.title=Monitoring Category Metadata Management +ctsl.message.success=Operation is successful! +ctsl.message.faild=Operation Failed! +ctsl.error.itemSelect=Please select at least one line of record! +ctsl.error.itemSelect1=Please select a row! +ctsl.message.isCreateTable=Is it generated? +ctsl.message.isAddFiled=Is sure to add? +ctsl.message.warningDetecationMetaDate=Monitoring category source data operation completed. Continue to maintain data? +ctsl.message.hint=Tip +ctsl.message.warningDetecationType=Monitoring category operation completed. Continue to maintain data? +ctsl.button.add=Add +ctsl.button.update=Modify +ctsl.button.createTable=Generate Data Table +ctsl.button.stop=Disabled +ctsl.button.start=Enabled +ctsl.button.back=Return +ctsl.text.index=Serial Number +ctsl.text.detecationType=Monitoring Category +ctsl.text.tableName=Table Name +ctsl.text.tableComments=Table Description +ctsl.text.filedName=Field Name +ctsl.text.filedDesc= Field Description +ctsl.text.filedType=Field Type +ctsl.text.isMetaDateState=Whether to enable identification +ctsl.text.isChartState=Used for statistics +ctsl.text.transIndex=Transmission Sequence Number +ctsl.message.metaDateState0=Enabled +ctsl.message.metaDateState1=Disabled +ctsl.message.yes=Yes +ctsl.message.no=No +ctsl.message.noRecord=No Record + +#updateCheckTypeSetInfo.jsp page +uctsi.message.title=Modify Monitoring Category Information +uctsi.message.faild=Abnormal Operation! +uctsi.message.checkTypeName1=Monitoring Category Name +uctsi.message.tableName=Corresponding Database Table +uctsi.error.checkTypeName1=There are special characters in the monitoring category name, please re-enter +uctsi.error.inputTableName=Please enter the database table name +uctsi.error.tooLong=Please enter a length less than 21 characters +uctsi.error.tabHasSpecialChar=There are special characters in the corresponding database table. Please re-enter it. +uctsi.error.tabHasZh=The corresponding database table exists in Chinese, please re-enter +uctsi.message.usergroup=User Group +uctsi.error.OIDFont=OID is illegal. The format is as follows: OID: 1.3.6.1.2.1.1 +uctsi.button.back=Return +uctsi.text.updateDetecationType=Modify Monitoring Category +uctsi.text.checkTypeName=Monitoring Category +uctsi.text.tableComments=Table Description +uctsi.text.viewPrivilige=View Permissions +uctsi.text.publisher=Publisher View +uctsi.text.publisherGroup=Publisher Group View +uctsi.text.allInSys=All People In The System View +uctsi.text.unlimited=Unlimited +uctsi.text.usergroup=User  user  group +uctsi.message.selectUserGroup=Please select a user group +uctsi.message.isSnmp=SNMP Monitoring +uctsi.message.no=No +uctsi.text.isSchedule=Preset Information +uctsi.text.remark=Notes +uctsi.button.submit=Submit +uctsi.button.reset=Reset + +#updateCheckTypeSourceList.jsp page +uctsl.message.title=Monitoring Category Metadata Management +uctsl.message.faild=Abnormal Operation! +uctsl.message.inputFiledName=Please enter the field name +uctsl.message.filedName2=Field Name +uctsl.message.cannotNum=Field names cannot start with a digit +uctsl.message.filedNameRepeat=Duplicate field names, please change! +uctsl.message.filedComments=The field description cannot be null +uctsl.message.filedType1=Field types cannot be empty +uctsl.message.filedLength1=Text type field length can not be empty +uctsl.message.filedLength2=Text length Please enter a number! +uctsl.message.hasSortSign=Please select a field as the category identifier +uctsl.message.filedType2=Character types cannot be used for statistics +uctsl.text.updateMetaData=Modify Monitoring Category Metadata in Bulk +uctsl.text.index=Serial Number +uctsl.text.filedName=Field Name +uctsl.text.filedComments=Field Description +uctsl.text.filedType=Field Type +uctsl.text.isMetaDateState=Whether to enable identification +uctsl.text.isChartState=Used for statistics +uctsl.text.dict=Translation Dictionary +uctsl.text.isClassify=Is it categorized? +uctsl.text.showFiledUtil=Please specify the field unit +uctsl.message.metaDataDefault=Please Select +uctsl.message.metaDataNumber=Number +uctsl.message.metaDataDATE=Time +uctsl.message.metaDataVARCHAR2=Text +uctsl.message.metaDataLength=Length +uctsl.message.stop=Disabled +uctsl.message.start=Enabled +uctsl.message.no=No +uctsl.message.yes=Yes +uctsl.message.noRecord=No Record +uctsl.button.submit=Submit +uctsl.button.reset=Reset +uctsl.button.back=Back + +#updCheckTypeSource.jsp page +ucts.message.title=Configure Monitoring Category Metadata +ucts.message.inputFiledTypeLength=Please enter the character length +ucts.message.filedName=Field Name +ucts.message.filedType=Field Type +ucts.message.filedComments=Field Description +ucts.message.filedTypeLength=Field Length +ucts.text.updateMetaData=Modify Monitoring Category Metadata +ucts.text.checkType=Monitoring Category +ucts.text.tableName=Table Name +ucts.text.filedName=Field Name +ucts.text.filedComments=Field Description +ucts.text.filedType=Field Type +ucts.message.filedTypeDefault=Please Select +ucts.message.filedTypeNumber=Number +ucts.message.filedTypeDATE=Time +ucts.message.filedTypeVARCHAR2=Text +ucts.text.isState=Is the ID enabled? +ucts.text.isChartState=Used for statistics +ucts.text.showNum=Serial Number During Transmission +ucts.button.submit=Submit +ucts.button.reset=Reset +ucts.button.back=Back + +#WebRoot directory +#page directory +#detecation directory +#detecWarning directory +################################################## ####### +#detailWarninginfo.jsp page +dwi.message.title=Alert Details +dwi.button.back=Return +dwi.message.warningInfo=Alarm Information +dwi.text.processIdenName=Setting Name +dwi.text.nodeIp=Node IP +dwi.text.detecationState=Monitoring Status +dwi.message.abnormal=Not Normal +dwi.message.normal=Normal +dwi.message.execFailed=Execution Failed +dwi.text.viewLevel=View Permissions +dwi.message.publisher=Publisher View +dwi.message.publisherGroup=Publisher Group View +dwi.message.allInSys=All People In The System View +dwi.message.unlimited=No Restrictions +dwi.text.stateInfo=Status Information +dwi.text.performaceData=Performance Data +dwi.text.checkGap=Monitoring Data Interval (minutes) +dwi.text.currentTimes=Recent Checks +dwi.text.nextCheckTime=Next Monitoring Time +dwi.text.dataArriveTime=Last Updated Time +dwi.text.dataCheckTime=Last Monitored Time +dwi.text.warningInfo=Alarm Information +dwi.text.noRecord=No Record + +#detecConfLevelWarningList.jsp page +dclwl.message.title=Alarm Information +dclwl.message.hasSpecialChar=Input is a special character, please re-enter! +dclwl.message.inputNum=Alert level Please enter a number +dclwl.message.policeLevelVal=Warning value must be between 1-99! +dclwl.text.police_emergent=Emergency +dclwl.text.changeEmergentDefault=Please Select +dclwl.text.emergency=Emergency +dclwl.text.nonEmergency=Non-emergency +dclwl.text.police_level=Alert Level +dclwl.text.police_levelDefault=Please Select +dclwl.text.police_levelSelect=Level Alarms +dclwl.text.nodeIp=Node IP +dclwl.message.nodeIp=Please enter node IP +dclwl.text.checkType=Monitoring Category +dclwl.message.checkType=Please enter the detection class name +dclwl.text.pIden=Setting Name +dclwl.message.pIden=Please enter a setting name +dclwl.text.dataCheckTime=Last Check Time +dclwl.text.stateInfo=Performance Data +dclwl.message.stateInfo=Please enter status information +dclwl.text.timeoutDetecFilter=Filter Supercycle Monitoring +dclwl.message.no=No +dclwl.message.yes=Yes +dclwl.message.export=Export +dclwl.button.back=Return +dclwl.text.index=Serial Number +dclwl.text.checkWay=Monitoring Method +dclwl.text.tryTimes=Attempts +dclwl.text.persistTime=Duration +dclwl.message.showRecord=View Details +dclwl.message.showDetectionInfo=Alarm History +dclwl.message.active=Active +dclwl.message.passive=Passive +dclwl.text.noRecord=No Record +dclwl.button.exportCurrentPage=Export The Current Page Data +dclwl.button.exprotAllData=Export All Data +dclwl.text.closeWindow=Close Window + +#detecConfLevelWarningListChild.jsp page +dclwlc.message.showRecord=View Details +dclwlc.message.showDetectionInfo=Alarm History +dclwlc.message.active=Active +dclwlc.message.passive=Passive + +#detecWarningList.jsp page +dwl.message.title=Alarm Information +dwl.message.hasSpecialChar=Input is a special character, please re-enter! +dwl.message.inputNum=Alert level Please enter a number +dwl.message.policeLevelVal=Warning value must be between 1-99! +dwl.text.police_emergent=Emergency +dwl.text.changeEmergentDefault=Please Select +dwl.text.emergent0=Emergency +dwl.text.nonEmergent1=Non-emergency +dwl.text.police_level=Alert Level +dwl.text.levelAlarm=Level Alarm +dwl.message.changeLevelDefault=Please Select +dwl.text.nodeIp=Node IP +dwl.message.nodeIp=Please enter node IP +dwl.text.checkType=Monitoring Category +dwl.message.checkType=Please enter the detection category name +dwl.text.checkTypeName=Setting Name +dwl.message.checkTypeName=Please enter a setting name +dwl.text.dataCheckTime=Last Check Time +dwl.text.stateInfo=Performance Data +dwl.message.stateInfo=Please enter status information +dwl.text.timeoutDetecFilter=Filtering Supercycle Monitoring +dwl.message.no=No +dwl.message.yes=Yes +dwl.button.export=Export +dwl.button.back=Return +dwl.text.index=Serial Number +dwl.text.checkWay=Monitoring Method +dwl.text.persistTime=Duration +dwl.text.tryTimes=Attempts +dwl.message.showRecord=View Details +dwl.message.showDetectionInfo=Alarm History +dwl.message.active=Active +dwl.message.passive=Passive +dwl.text.noRecord=No Record +dwl.button.exportCurrentPage=Export The Current Page Data +dwl.button.exportAllData=Export All Data +dwl.message.closeWindow=Close Window + +#detecWarningListChild.jsp page +dwlc.message.showRecord=View Details +dwlc.message.showDetectionInfo=Alarm History +dwlc.message.active=Active +dwlc.message.passive=Passive + + +#WebRoot directory +#page directory +#detecation directory +#monitorData directory +################################################## ###### +#detailMonitor.jsp page +dm.message.title=Monitoring Data Details +dm.button.back=Return +dm.text.detecationInfo=Monitoring Data Details +dm.text.processIdenName=Setting Name +dm.text.nodeIp=Node IP +dm.text.datecationState=Monitoring Status +dm.message.abnormal=Not Normal +dm.message.normal=Normal +dm.text.viewLevel=View Permissions +dm.message.publisher=Publisher View +dm.message.publisherGroup=Publisher Group View +dm.message.allInSys=All People In The System View +dm.message.unlimited=No Restrictions +dm.text.detectionStateInfo=Status Information +dm.text.performaceData=Performance Data +dm.text.checkGap=Monitoring Data Interval (Minutes) +dm.text.currentTimes=Recent Checks +dm.text.nextCheckTime=Next Monitoring Time +dm.text.dataArriveTime=Information Storage Time +dm.text.datacheckTime=Last Monitored Time +dm.text.checkWay=Monitoring Method +dm.message.active=Active +dm.message.passive=Passive +dm.text.nodeSytemInfo=Node System Information +dm.message.noDataCollect=No related data collected +dm.message.noDataForSwitch=This node has no data for the switch +dm.text.hostName=Host Name +dm.text.operateSystem=Operating System +dm.text.cpuCnt=The number of CPUs +dm.text.cpuMhz=CPU Clock (MHz) +dm.text.memorySize=Memory Size (G) +dm.text.diskSize=Hard Disk Size (G) +dm.text.swapSize=SWAP Size (G) +dm.text.netCnt=Number of NICs +dm.text.dataCheckTime=Information Collection Time +dm.text.dataStorageTime=Information Storage Time +dm.text.diskInfo=Hard Disk Details +dm.message.diskInfo=No hard disk data was collected +dm.text.index=Serial Number +dm.text.diskRang=Hard Disk Partition +dm.text.rangSize=Partition Size (G) +dm.text.netCardInfo=Network Card Details +dm.message.netCardInfo=No NIC data was collected +dm.text.netName=NIC Name +dm.text.netState=NIC Status +dm.text.netSpeed= NIC Bandwidth (Unit: Mbps) +dm.text.netSubmask=Subnet Mask +dm.text.netGateway=Gateway +dm.text.netMac=MAC Address +dm.text.detecationData=Monitoring Data +dm.text.noRecord=No Record + +#detailWarning.jsp page +dw.message.title=Monitoring Data Details +dw.text.processIdenName=Setting Name +dw.button.back=Back +dw.text.nodeIp=Node IP +dw.text.detectionedState=Monitoring Status +dw.message.abnormal=Not Normal +dw.message.normal=Normal +dw.text.viewLevel=View Permissions +dw.message.publisher=Publisher View +dw.message.publisherGroup=Publisher Group View +dw.message.allInSys=All People In The System View +dw.message.unlimited=No Restrictions +dw.text.detectionStateInfo=Status Information +dw.text.performaceData=Performance Data +dw.text.checkGap=Monitoring Data Interval (Minutes) +dw.text.currentTimes=Recent Check Times +dw.text.nextCheckTime=Next Monitoring Time +dw.text.dataArriveTime=Information Storage Time +dw.text.dataCheckTime=Information Collection Time +dw.text.checkWay=Monitoring Method +dw.message.active=Active +dw.message.passive=Passive +dw.text.nodeSystemInfo=Node System Information +dw.message.nodeType0=No relevant data was collected +dw.message.nodeType1=This node has no data for the switch +dw.text.hostName=Host Name +dw.text.operateSystem=Operating System +dw.text.cpuCnt=CPU Number +dw.text.cpuMhz=CPU Clock (MHz) +dw.text.memorySize=Memory Size (G) +dw.text.diskSize=Hard Disk Size (G) +dw.text.swapSize=SWAP Size (G) +dw.text.netCnt=Number of NICs +dw.text.dataCollectTime=Information Collection Time +dw.text.diskInfo=Hard Disk Details +dw.text.dataStorageTime=Information Storage Time +dw.message.diskInfo=No hard disk data was collected +dw.text.index=Serial Number +dw.text.diskRang=Hard Disk Partition +dw.text.rangSize=Partition Size (G) +dw.text.netInfo=Network Card Details +dw.message.netInfo=No NIC data was collected +dw.text.netName=NIC Name +dw.text.netState=NIC Status +dw.text.netSpeed= NIC Bandwidth (Unit: Mbps) +dw.text.netSubmask=Subnet Mask +dw.text.netGateway=Gateway +dw.text.netMac=MAC Address +dw.text.detecationData=Monitoring Data +dw.text.noRecord=No Record + +#detectionInfoList.jsp page +dil.message.title=Department Information Management +dil.message.checkDate=The end time cannot be less than the start time +dil.text.startTime=Time +dil.text.status=Status +dil.message.statusDefault=Please Select +dil.message.normal=Normal +dil.message.abnormal=Exception +dil.button.back=Return +dil.text.nodeIp=Node IP +dil.text.checkType=Monitoring Category +dil.text.checkTypeName=Setting Name +dil.text.state=State +dil.text.dataCheckTime=Last Check Time +dil.text.tryTimes=Attempts +dil.text.performaceData=Performance Data +dil.text.stateInfo=Status Information +dil.text.noRecord=No Record + +#drawMonitorInfo.jsp page +dmi.message.title=Monitor Data Line Chart +dmi.message.startTime=Start Time cannot be empty +dmi.message.endTime=End Time cannot be empty +dmi.message.startGtEnd=The end time must be greater than the start time +dmi.message.intervalErr=The start end interval cannot exceed one week +dmi.message.noData=No Data +dmi.message.policeLine=Warning Line +dmi.message.updateTheMark=Modify this tag here +dmi.text.LineChart=Monitor Data Line Chart +dmi.text.startTime=Start Time +dmi.text.endTime=End Time +dmi.message.defaultMsg=Tip: When the start and end times are not selected, the default query date data +dmi.button.back=Back +dmi.text.noRecord=No Record + +#drawSnmpMonitorInfo.jsp page +dsmi.message.title=Monitor Data Line Chart +dsmi.message.selectToDraw1=Please select no more than 5 markers to draw to make the page smooth +dsmi.message.selectTodraw2=Please select drawing chart ID +dsmi.message.startTime=Start Time cannot be empty +dsmi.message.endTime=End Time cannot be empty +dsmi.message.timeCompareInfo1=The end time must be greater than the start time +dsmi.message.timeCompareInfo2=The start end interval cannot exceed one week +dsmi.message.noData=No Data +dsmi.message.policyLine=Warning Line +dsmi.message.updateTheMark=Modify this tag here +dsmi.text.startTime=Start Time +dsmi.text.endTime=End Time +dsmi.message.defaultMsg=Tip: When the start and end times are not selected, the default query day data +dsmi.text.noRecord=No Record +dsmi.button.back=Back +dsmi.textnoClassify=Classification ID is empty +dsmi.button.clearSelected=Clear Selection +dsmi.button.sure=OK + +#drawSpecialMonitorInfo.jsp page +dspmi.message.title=Monitor Data Line Chart +dspmi.message.selecttoDraw=Please select no more than 2 markers for drawing to make the page smooth +dspmi.message.selecttoDrawID=Please select drawing chart ID +dspmi.message.startTime=Start Time cannot be empty +dspmi.message.endTime=End Time cannot be null +dspmi.message.timeCompareInfo1=The end time must be greater than the start time +dspmi.message.timeCompareInfo2=The start end interval cannot exceed one week +dspmi.message.noData=No Data +dspmi.message.policyLine=Warning Line +dspmi.message.updateTheMark=Modify this tag here +dspmi.text.startTime=Start Time +dspmi.text.endTime=End Time +dspmi.message.defaultMsg=Tip: When no start and end time is selected, the default query date data +dspmi.button.back=Return +dspmi.text.noRecord=No Record +dspmi.textnoClassify=Classification ID is empty +dspmi.button.clearSelected=Clear Selection +dspmi.button.sure=OK + +#drawSwitchportMonitorInfo.jsp page +dswmi.message.title=Monitor Data Line Chart +dswmi.message.startTime=Start Time cannot be empty +dswmi.message.endTime=End Time cannot be null +dswmi.message.timeCompareInfo1=The end time must be greater than the start time +dswmi.message.timeCompareInfo2=The start end interval cannot exceed one week +dswmi.message.selectToChart=Please select plot chart ID +dswmi.message.noData=No Data +dswmi.message.policyLine=Warning Line +dswmi.message.updateTheMark=Modify this tag here +dswmi.text.startTime=Start Time +dswmi.text.endTime=End Time +dswmi.message.defaultMsg=Tip: When the start and end times are not selected, the default query day data +dswmi.button.back=Back +dswmi.message.noRecord=No Record +dswmi.textnoClassify=Classification ID is empty +dswmi.button.clearSelected=Clear Selection +dswmi.button.sure=OK + +#monitorInfoList_abnormalSet.jsp page +milas.message.title=Monitoring Information +milas.message.inputInfo=Input is a special character, please re-enter! +milas.text.hostName=Hostname +milas.message.hostName=Please enter the host name +milas.text.checkType=Monitoring Category +milas.message.checkTypeDefault=Please Select +milas.button.back=Back +milas.button.export=Export +milas.text.processIdenName=Setting Name +milas.text.status=Status +milas.text.dataCheckTime=Last Check Time +milas.text.persistTime=Duration +milas.text.tryTimes=Attempts +milas.text.stateInfo=Status Information +milas.text.noRecord=No Record +milas.button.exportCurrentPage=Export The Current Page Data +milas.button.exportAllData=Export All Data +milas.text.closeWindow=Close Window + +#monitorInfoList.jsp page +mil.message.title=Module Information +mil.text.hostName=Hostname +mil.message.hostName=Please enter the host name +mil.text.checkType=Monitoring Category +mil.message.checkType=Please enter monitoring type +mil.text.processIdenName=Setting Name +mil.text.status=Status +mil.text.dataCheckTime=Last Check Time +mil.text.persistTime=Duration +mil.text.tryTimes=Attempts +mil.text.stateInfo=Status Information +mil.text.noRecord=No Record + +#monitorInfoListNew.jsp page +miln.message.title=Monitoring Information +miln.message.inputInfo=Input is a special character, please re-enter! +miln.text.nodeIp=Node IP +miln.message.nodeIp=Please enter the node IP +miln.text.checkType=Monitoring Category +miln.message.checkType=Please enter the detection category name +miln.text.stateInfo=Status Information +miln.message.stateInfo=Please enter status information +miln.button.export=Export +miln.text.processIdenName=Setting Name +miln.text.state=Status +miln.text.dataCheckTime=Last Check Time +miln.text.persistTime=Duration +miln.text.tryTimes=Attempts +miln.message.handshake=Handshake Monitoring +miln.message.showRecord=View Details +miln.message.showDetectionInfo=History +miln.message.drawPic=Statistics +miln.text.noRecord=No Record +miln.button.exportCurrentPage=Export The Current Page Data +miln.button.exportAllData=Export All Data +miln.text.closeWindow=Close Window + +#monitorInfoListNewChild.jsp page +milnc.message.handshake=Handshake Monitoring +milnc.message.showRecord=View Details +milnc.message.showDetectionInfo=History +milnc.message.drawPic=Statistics + +#monitorNEList.jsp page +mnel.message.title=Monitoring Information +mnel.message.hasSpecialChar=Input is a special character, please re-enter! +mnel.text.nodeIp=Node IP +mnel.message.nodeIp=Please enter the host name +mnel.text.checkType=Monitoring Category +mnel.message.checkType=Please enter the detection class name +mnel.text.stateInfo=Status Information +mnel.message.staeInfo=Please enter status information +mnel.button.export=Export +mnel.text.processIdenName=Setting Name +mnel.text.state=State +mnel.text.dataCheckTime=Last Check Time +mnel.text.persistTime=Duration +mnel.text.tryTimes=Attempts +mnel.message.handshake=Handshake Monitoring +mnel.button.exportCurrentPage=Export The Current Page Data +mnel.button.exportAllData=Export All Data +mnel.text.closeWindow=Close Window +mnel.text.noRecord=No Record + +#monitorNEListChild.jsp page +mnelc.message.handshake=Handshake Monitoring + +#queryEmergent.jsp page +qe.message.title=Monitoring Information +qe.text.nodeIp=Node IP +qe.text.checkType=Monitoring Category +qe.text.processIdenName=Setting Name +qe.text.state=Status +qe.text.dataCheckTime=Last Check Time +qe.text.persistTime=Duration +qe.text.tryTimes=Attempts +qe.text.stateInfo=Status Information +qe.message.handshake=Handshake Monitoring +qe.button.showDetectionInfo=History +qe.button.drawPic=Statistics +qe.text.noRecord=No Record + +#queryEmergentChild.jsp page +qec.message.handshake=Handshake Monitoring +qec.button.showDetectionInfo=History +qec.button.drawPic=Statistics + +#select_plug.jsp page +sp.message.title=Select A List Of Chart IDs +sp.message.selectToDraw=Please select no more than 5 markers to draw to make the page smooth +sp.message.selectTodrawID=Please select drawing chart ID +sp.text.query=Query +sp.message.query=(Hint: type spelling, spelling, Chinese characters) +sp.button.clear=Clear Selection +sp.button.ok=OK +sp.button.cancel=Cancel + +#serverMonitorInfoListChild.jsp page +smilc.message.handshake=Handshake Monitoring +smilc.message.showRecord=View Details +smilc.message.showDetectionInfo=History +smilc.message.drawPic=Statistics + +#serverMonitorInfoListNew.jsp page +smiln.message.title=Monitoring Information +smiln.message.hasSpecialChar=Input is a special character, please re-enter! +smiln.text.nodeIp=Node IP +smiln.message.nodeIp=Please enter node IP +smiln.text.nodeGroup=Node Groups +smiln.message.nodeGroup=Please enter the node group name +smiln.text.checkType=Monitoring Category +smiln.message.checkType=Please enter the detection category name +smiln.text.stateInfo=Status Information +smiln.message.stateInfo=Please enter status information +smiln.button.export=Export +smiln.text.processIdenName=Setting Name +smiln.text.state=Status +smiln.text.dataCheckTime=Recent Check Time +smiln.text.persistTime=Duration +smiln.text.tryTimes=Attempts +smiln.message.handshake=Handshake Monitoring +smiln.message.showRecord=View Details +smiln.message.showDetectionInfo=History +smiln.message.drawPic=Statistics +smiln.text.noRecord=No Record +smiln.button.exportCurrentPage=Export The Current Page Data +smiln.button.exportAllData=Export All Data +smiln.text.closeWindow=Close Window + +#vmonitorInfoList.jsp page +vil.message.title=Monitoring Information +vil.text.hostName=Hostname +vil.message.hostName=Please enter the host name +vil.text.checkType=Monitoring Type +vil.message.checkType=Please enter monitoring type +vil.text.processIdenName=Setting Name +vil.text.state=State +vil.text.dataCheckTime=Last Check Time +vil.text.persistTime=Duration +vil.text.tryTimes=Attempts +vil.text.stateInfo=Status Information +vil.text.noRecord=No Record + + +#WebRoot directory +#page directory +#detecation directory +#oidDictionary directory +################################################## ###### +#addOidDictionary.jsp page +aod.message.title=Add OID Dictionary +aod.message.oddesc=Field Description +aod.message.oidFont=OID is illegal. Please refer to the following OID: 1.3.6.1.2.1.1 +aod.text.title=Add OID Dictionary Information +aod.text.oidDesc= Field Description +aod.button.submit=Submit +aod.button.reset=Reset +aod.button.back=Back + +#oidDictionaryList.jsp page +odl.message.title=OID Data Dictionary +odl.text.index=Serial Number +odl.text.oddesc=OID Field Description +odl.text.option=Operation +odl.message.updateRecord=Modify Information +odl.message.noRecord=No Record + +#updateOidDictionary.jsp page +uod.message.title=Modify OID Dictionary +uod.message.oiddesc=Field Description +uod.message.oidFont=OID is illegal. The format is as follows: OID: 1.3.6.1.2.1.1 +uod.text.title=Modify OID Dictionary Information +uod.button.submit=Submit +uod.button.reset=Reset +uod.button.back=Back + + +#WebRoot directory +#page directory +#detecation directory +#policeRelation directory +################################################## ####### +#addPoliceRelation.jsp page +apr.message.title=Add Alarm Setting Information +apr.message.metadata=Alarm Field +apr.message.policeValue=Alarm Threshold +apr.message.policeUnit=Alarm Threshold Unit +apr.message.policeSymbols=Alarm Comparators +apr.message.policeEmergent=Is it urgent +apr.message.policeLevel=Alert Level +apr.message.policeLevelInfo=Alarm Level 1~5 +apr.message.inputInfo=The input should be less than 200 characters +apr.text.title=Add Alarm Settings +apr.message.metadataDefault=Please Select +apr.text.policeState=State +apr.message.active=Active +apr.message.invalid=Invalid +apr.text.markerFiled=Filter Field +apr.message.markerFiledDefault=Please Select +apr.text.marker=Filter ID +apr.message.marker=Multiple identifiers used | Split; Content is empty, no filtering +apr.text.policeEmergent=Urgent +apr.message.policeEmergentDefault=Please Select +apr.text.policeLevel=Alarm Level +apr.text.policeValue=Alarm Threshold +apr.text.policeUnit=Alarm Threshold Unit +apr.text.policeSymbols=Alarm Comparators +apr.text.policeSymbolsDefault=Please Select +apr.text.policeShowInfo=Alert Alert Message +apr.message.policeShowInfo=Content is less than 200 characters +apr.button.submit=Submit +apr.button.reset=Reset +apr.button.back=Back + +#policeRelationList.jsp page +prl.message.title=Alarm Setting Information +prl.message.success=Operation is successful! +prl.message.faild=Operation Failed! +prl.message.hasSpecialChar=Input is a special character, please re-enter! +prl.message.select=Please select a row! +prl.text.checkTypeName=Monitoring Category Name +prl.message.checkTypeDefault=Please Select +prl.text.processIdenName=Setting Name +prl.message.processIdenName=Please enter the setting name +prl.button.add=Add +prl.button.update=Modify +prl.button.back=Return +prl.text.index=Serial Number +prl.text.checkGap=Monitoring Interval (Minutes) +prl.text.filedName=Alarm Field +prl.text.filedComments=Alarm Field Description +prl.text.policeValue=Alarm Threshold +prl.text.policeUnit=Alarm Threshold Unit +prl.text.policeSymbols=Alarm Comparators +prl.text.policeLevel=Alarm Level +prl.text.policeEmergent=Whether it is urgent +prl.text.state=Status +prl.text.policeShowInfo=Alert Message +prl.message.emergent=Emergency +prl.message.nonEmergent=Non-emergency +prl.message.active=Active +prl.message.invalid=Invalid +prl.text.noRecord=No Record + +#updatePoliceRelation.jsp page +upr.message.title=Add Alarm Setting Information +upr.message.policeValue=Alarm Value +upr.message.policeUnit=Alarm Value Unit +upr.message.policeSymbols=Alarm Comparators +upr.message.policeLevel=The alarm level is 1~5 +upr.message.policeLevelInfo=Alarm Level 1~5 +upr.message.inputInfo=The input should be less than 200 characters +upr.text.title=Modify Alarm Settings +upr.text.metadata=Alarm Field +upr.text.policeState=State +upr.message.active=Active +upr.message.invalid=Invalid +upr.text.markerFiled=Filter Field +upr.message.markerFiledDefault=Please Select +upr.text.marker=Filter ID +upr.message.marker=Multiple flags used | Split; Content is empty, no filtering +upr.text.policeEmergent=Urgent +upr.message.emergency=Emergency +upr.message.nonEmergency=Non-emergency +upr.text.policeLevel=Alarm Level +upr.text.policeValue=Alarm Threshold +upr.text.policeUnit=Alarm Threshold Unit +upr.text.policeSymbols=Alarm Comparators +upr.message.policeSymbolsDefault=Please Select +upr.text.policeShowInfo=Alarm Information +upr.message.policeShowInfo=Content is less than 200 characters +upr.button.submit=Submit +upr.button.reset=Reset +upr.button.back=Return + +#WebRoot directory +#page directory +#detecation directory +#switchInfo directory +################################################## ##### +#selectNodeAndDeviceType.jsp page +snadt.message.seqId=Please select node +snadt.message.deviceBrandCode=Please select a brand +snadt.message.deviceBrandTypeCode=Please select a model +snadt.message.selectDefault=Please Select +snadt.text.seqId=Section  points +snadt.text.deviceBrandCode=Device Brand +snadt.text.deviceBrandTypeCode=Device Model +snadt.text.maxDevNum=Stacks +snadt.button.ok=OK + +#specialDeviceConfig.jsp page +sdc.message.title=JS Drag DIV +sdc.message.checkPosition=Slot and subdevice do not correspond. Please reconfigure +sdc.text.ip=Node +sdc.text.deviceBrandTypeCode=Brand Model +sdc.button.submit=Submit +sdc.button.back=Back + +#switchDetectInfoGraphPage.jsp page +sdigp.message.title=Switch Monitoring Data Graphical Display +sdigp.message.noData=No Data +sdigp.message.updateTheMarker=Modify this tag here +sdigp.button.back=Back +sdigp.text.ip=Node IP +sdigp.text.deviceTypeCode=Device Type +sdigp.text.dataCheckTime=Monitoring Time +sdigp.text.title=System Basic Information +sdigp.text.sysName=System Name +sdigp.text.sysUpTime=System Running Time +sdigp.text.sysLocation=Location +sdigp.text.outoctetsspeed=Output Speed +sdigp.message.outoctetsspeed=Output Speed +sdigp.text.inoctetsspeed=Input Speed +sdigp.message.inoctetsspeed=Input Speed +sdigp.text.outpktsspeed=Package Rate +sdigp.message.outpktsspeed=Package Rate +sdigp.text.inpktsspeed=Package Rate +sdigp.message.inpktsspeed=Pass Rate +sdigp.text.sysStatus=System Status +sdigp.text.sysDesc=System Description +sdigp.text.from=From +sdigp.text.selectOneDay=Query 1 Day Data +sdigp.text.port=Port +sdigp.text.portInfo=Details +sdigp.text.ifDescr=Interface Description +sdigp.text.ifType=Port Type +sdigp.text.ifAdminStatus=Admin State of the Interface +sdigp.text.ifOperStatus=Port Operation Status +sdigp.text.ifouterrors_vary=Output Errors +sdigp.message.ifouterrors_vary=Output Errors +sdigp.text.ifinerrors_vary=Input Errors +sdigp.message.ifinerrors_vary=Number of input errors +sdigp.text.ifoutdiscards_vary=Output Packet Loss +sdigp.message.ifoutdiscards_vary=Number of output lost packets +sdigp.text.ifindiscards_vary=Enter the number of lost packets +sdigp.message.ifindiscards_vary=Enter the number of lost packets +sdigp.text.ifHighSpeed=Bandwidth +sdigp.text.ifPhysAddress=Mac Address +sdigp.text.ifLastChangeStr=Status Last Change Time + +#switchInfoList.jsp page +sil.message.title=Switch Data View +sil.message.success=Operation is successful! +sil.message.faild=The operation failed! +sil.message.selectInfo1=Please select at least one row! +sil.message.selectInfo2=Please select a row! +sil.message.sureToCreate=Is it generated? +sil.message.sureToAdd=OK to add? +sil.button.export=Export +sil.button.add=Add +sil.button.update=Modify +sil.button.createTable=Generate Data Table +sil.button.stop=Disabled +sil.button.start=Enabled +sil.button.back=Back +sil.text.switchIp=Node IP +sil.text.title=Device And Port Details +sil.text.sysDescr=System Description +sil.text.sysObjectID=System Manufacturer ID +sil.text.upTimeStr=System Runtime +sil.text.sysContact=System Administrator +sil.text.sysName=System Name +sil.text.sysLocation=System Physical Address +sil.text.sysServices=Protocol Layer Services +sil.text.checkedTimeStr=Information Acquisition Time +sil.text.index=Serial Number +sil.text.ifDescr=Port Name +sil.text.ifHighSpeed=Bandwidth +sil.text.ifOperStatus=Status +sil.text.ifInOctetsSpeed=Input Rate +sil.text.inpktsspeed=Package Rate +sil.text.ifindiscardsVary=Enter the number of lost packets +sil.text.ifinerrorsVary=Number of input errors +sil.text.ifOutOctetsSpeed=Output Rate +sil.text.outpktsspeed=Package Rate +sil.text.ifoutdiscardsVary=Number of output lost packets +sil.text.ifouterrorsVary=Output Errors +sil.text.lastStringTime=Last Monitoring Time +sil.text.noRecord=No Record + +#switchInfoTotalList.jsp page +sitl.message.title=Switch Data View +sitl.message.success=Operation is successful! +sitl.message.faild=Operation Failed! +sitl.message.inputInfo=Input is a special character, please re-enter! +sitl.text.nodeIp=Node IP +sitl.message.nodeIp=Please enter the node IP +sitl.text.networElementType=Network Element Category +sitl.message.selectDefault=Please Select +sitl.text.netType=Type of network element +sitl.text.checkType=Monitoring Category +sitl.text.processIdenName=Setting Name +sitl.text.portNum=Ports +sitl.text.text.dataCheckTime=Latest Monitoring Time +sitl.text.showRecord=View +sitl.text.showGrap=Graphic Viewing +sitl.text.showList=List View +sitl.text.noRecord=No Record +sitl.button.export=Export +sitl.button.exportCurrentPage=Export The Current Page Data +sitl.button.exportAllData=Export All Data +sitl.text.closeWindow=Close Window + +#switchInfoTotalListChild.jsp page +sitlc.text.showGrap=Graphics View +sitlc.text.showList=List View + +#toConfigPort.jsp page +tcp.message.title=Port State Configuration +tcp.message.inputInfo=Input is a special character, please re-enter! +tcp.text.nodeIp=Section      point +tcp.message.nodeIp=Please enter node IP +tcp.button.batchSave=Batch Save +tcp.text.index=Serial Number +tcp.text.processIdenName=Setting Name +tcp.text.portState=Port Status +tcp.text.option=Operation +tcp.button.save=Save +tcp.text.noRecord=No Record + +#toConfigPortChild.jsp page +tcpc.button.save=Save + + +#WebRoot directory +#page directory +#detecation directory +################################################## ##### +#addDetecSetInfo.jsp page +adsi.message.title=Add monitoring settings information +adsi.message.inputInfo=Specify a special character for the name. Please re-enter it. +adsi.message.noValidNodes=There are no valid nodes in the selected node group +adsi.message.usergroupid=Please select a user group +adsi.message.processIdenName=Setting Name +adsi.message.checkTypeId=Monitoring Category +adsi.message.processIden=Setting ID +adsi.message.checkGapTitle=Monitoring Data Interval +adsi.message.checkOutTime=Timeout +adsi.message.checkMaxTimes=Maximum number of tests +adsi.message.processFile=Process PID File +adsi.message.processSearchCodeTitle=Process Search Keyword +adsi.message.processPathTitle=Startup File Path +adsi.message.myFile=Please select a script file +adsi.message.leastOneUser=Please select at least one user to view +adsi.message.checkGapInfo=The monitoring and upload interval must be greater than or equal to 5 minutes +adsi.message.pIdenFont=Please enter letters and numbers +adsi.message.selectDefault=Please Select +adsi.message.monitorCategory=Please select monitoring category first +adsi.button.back=Back +adsi.text.title=Monitor Settings Basic Information +adsi.text.processIdenName=Setting Name +adsi.text.processIden=Setting ID +adsi.text.checkType=Monitoring Category +adsi.text.nodeGroup=Node Groups +adsi.button.select=Select +adsi.text.nodeIp=Node IP +adsi.text.viewLevel=View Permissions +adsi.message.publisher=Publisher View +adsi.message.publisherGroup=Publisher Group View +adsi.message.allInSys=All People In The System View +adsi.message.unlimited=No Restrictions +adsi.text.userGroup=Use  user  group +adsi.text.selectNodeGroup=Please select a user group +adsi.text.planCheckTime=Monitoring First Execution Time +adsi.text.checkGap=Monitoring Data Interval (Minutes) +adsi.message.checkGap=*Interval must be greater than or equal to 5 minutes +adsi.text.checkOutTime=Timeout (Seconds) +adsi.text.checkMaxTimes=Attempts +adsi.text.state=Status +adsi.text.runAble=Active +adsi.text.controlstart=Starting Method +adsi.message.manually=Start Manually +adsi.message.singleStart=NC Single Start +adsi.message.cycleStart=NC Cycle Start +adsi.text.controlStartTime=Control Start Time +adsi.text.processFile=Process PID File +adsi.text.processSearchCode=Process Search Keyword +adsi.message.processSearchCode=Please provide precise search process keywords, otherwise you can't pinpoint the process +adsi.text.processPath=Startup File Path +adsi.message.processPath=can take parameters, separated by spaces, format\: "command parameters" parameters to match the parameter format of the command +adsi.text.myFile=Script File +adsi.text.user=Contacts +adsi.message.checkAll=Select All +adsi.button.submit=Submit +adsi.button.reset=Reset + +#detailDetecSetInfo.jsp page +ddsi.message.title=Monitoring Settings Details +ddsi.button.back=Return +ddsi.text.title=Monitoring Settings Details +ddsi.text.processIdenName=Setting Name +ddsi.text.processIden=Setting ID +ddsi.text.nodeGroup=Node Groups +ddsi.text.nodeIp=Node IP +ddsi.text.checkTypeName=Monitoring Category Name +ddsi.text.checkType=Monitoring Category +ddsi.text.checkWay=Monitoring Method +ddsi.message.passive=Passive +ddsi.message.active=Active +ddsi.text.detectionSetState=Status +ddsi.message.valid=Valid +ddsi.message.invalid=Invalid +ddsi.text.viewLevel=View Permissions +ddsi.message.publisher=Publisher View +ddsi.message.publisherGroup=Publisher Group View +ddsi.message.allInSys=All People In The System View +ddsi.message.unlimited=No Restrictions +ddsi.text.isSchedule=Preset Information +ddsi.message.isSchedule0=Yes +ddsi.message.isSchedule1=No +ddsi.text.checkGap=Monitoring Data Interval (Minutes) +ddsi.text.checkOutTime=Timeout (Seconds) +ddsi.text.planCheckTime=Next Execution Time +ddsi.text.checkMaxTimes=Attempts +ddsi.text.processFile=Process PID File +ddsi.text.processPath=Startup File Path +ddsi.text.isControlStart=Start Method +ddsi.text.ncStartup=NC Startup +ddsi.message.manually=Start Manually +ddsi.message.singleStart_=NC Single Start +ddsi.message.cycleStart=NC Cycle Start +ddsi.text.controlStartTime=Control Start Time +ddsi.text.processSearchCode=Process Search Keyword +ddsi.text.myFileFile=Script File +ddsi.text.download=Click To Download + +#detecSetInfoList.jsp page +dsil.message.title=Monitor Settings Information +dsil.message.success=Operation is successful! +dsil.message.faild=Operation Failed! +dsil.message.selectARow=Please select a row! +dsil.message.invalidStatus=Invalid status information, please select again! +dsil.message.validSetting=Contains valid settings information. Please select again! +dsil.message.hasSpecialChar=Input is a special character, please re-enter! +dsil.message.selectImportFile=Please select the imported file +dsil.message.selectCorrectImportFile=Please select the correct import file type +dsil.message.sureToImport=Import monitoring settings. Are you sure to import? +dsil.message.detecationWarning=Monitor setting operation completed. Continue to maintain data? +dsil.message.hint=Tip +dsil.text.nodeIp=Node IP +dsil.message.nodeIp=Please enter node IP +dsil.text.checkTypeName=Monitoring Category Name +dsil.message.selectDefault=Please Select +dsil.text.processIdenName=Setting Name +dsil.message.processIdenName=Please enter a setting name +dsil.button.downloadExample=Download Template +dsil.text.importXls=Import Excel +dsil.button.importXls=Import +dsil.button.showDiv=Export +dsil.text.index=Serial Number +dsil.text.nodeGroup=Node Groups +dsil.text.checkGap=Monitoring Interval (Minutes) +dsil.text.checkMaxTimes=Attempts +dsil.text.checkOutTime=Timeout (Seconds) +dsil.text.planCheckTime=First Monitoring Time +dsil.text.processFile=Process PID File +dsil.text.processPath=Startup File Path +dsil.text.isControlStart=Start Method +dsil.message.manually=Start Manually +dsil.message.NCStart=NC Start +dsil.text.controlStartTime=Control Start Time +dsil.text.isSchedule=Preset Information +dsil.text.detectionSetState=Status +dsil.message.yes=Yes +dsil.message.no=No +dsil.message.invalid=Invalid +dsil.message.valid=Valid +dsil.message.noRecord=No Record +dsil.button.exportCurrentPage=Export The Current Page Data +dsil.button.exportAllData=Export All Data +dsil.text.closeWindow=Close Window + +#detecSetInfoListChild.jsp page +dsilc.message.manually=Start Manually +dsilc.message.NCStart=NC Start +dsilc.message.yes=Yes +dsilc.message.no=No +dsilc.message.invalid=Invalid +dsilc.message.valid=Active + +#updateDetecSetInfo.jsp page +udsi.message.title=Modify Monitoring Settings Information +udsi.message.faild=Abnormal Operation! +udsi.message.processIdenName=Setting Name +udsi.message.jdz=There are no valid nodes in the selected node group +udsi.message.userGroup=Please select a user group +udsi.message.processIdenNameInfo=Specify a special character for the name. Please re-enter it. +udsi.message.processIden=Setting ID +udsi.message.checkGap=Monitoring Data Interval +udsi.message.checkOutTime=Timeout +udsi.message.checkMaxTimes=Maximum Number Of Tests +udsi.message.processFile=process PID File +udsi.message.processPath=Startup File Path +udsi.message.myFile=Script File +udsi.message.lxr=Please select at least one user to view +udsi.message.checkGapInfo=The monitoring and upload interval must be greater than or equal to 5 minutes +udsi.message.selectDefault=Please Select +udsi.button.back=Back +udsi.text.title=Monitor Settings Basic Information +udsi.text.processIdenName=Setting Name +udsi.text.processIden=Setting ID +udsi.text.checkType=Monitoring Category +udsi.text.nodeGroup=Node Groups +udsi.button.select=Select +udsi.text.nodeIp=Node IP +udsi.text.viewLevel=View Permissions +udsi.message.publisher=Publisher View +udsi.message.publisherGroup=Publisher Group View +udsi.message.allInSys=All People In The System View +udsi.message.unlimited=No Restrictions +udsi.text.userGroup=Use  user  Group +udsi.text.selectUserGroup=Please select a user group +udsi.text.planCheckTime=Monitoring First Execution Time +udsi.text.checkGap=Monitoring Data Interval (Minutes) +udsi.message.checkGapInfo1=Interval must be greater than or equal to 5 minutes +udsi.text.checkOutTime=Timeout (Seconds) +udsi.text.checkMaxTimes=Attempts +udsi.text.detectionSetState=Status +udsi.message.valid=Valid +udsi.message.invalid=Invalid +udsi.text.isControlStart=Start Method +udsi.message.manually=Start Manually +udsi.message.singleStart=NC Single Start +udsi.message.cycleStart=NC Cycle Start +udsi.text.controlStartTime=Control Start Time +udsi.text.processFile=Process PID File +udsi.text.processSearchCode=Process Search Key +udsi.message.processSearchCode=Please provide the exact search process keywords, otherwise you can not accurately locate the process +udsi.text.processPath=Startup File Path +udsi.text.scriptFile=Script File +udsi.text.download=Click To Download +udsi.message.scriptFile=Upload script file, ie update monitoring script +udsi.text.user=Contacts +udsi.text.selectAll=Select All +udsi.button.submit=Submit +udsi.button.reset=Reset + +#WebRoot directory +#page directory +#function directory +################################################## ####### +#mkInfoList.jsp page +mkil.message.title=Module Information +mkil.message.table.name=Name +mkil.message.table.type=Type +mkil.message.table.serial=Serial +mkil.message.table.description=Description +mkil.message.table.operations=Operations +mkil.message.selectNode=Please select the node to move! +mkil.message.success=Operation Successful +mkil.message.faild=Operation Failed +mkil.message.upDisable=This module is already in the top position and cannot be moved up +mkil.message.downDisable=This module is already at the end and cannot be moved down +mkil.message.andSubnode=Add Child Node +mkil.message.updateMK=Please select a module to be modified in the menu! +mkil.message.addZMK=Please select an item as a parent module in the menu! +mkil.text.mkmc=Module Name +mkil.message.mkmc=There are special characters in the module name. Please re-enter it. +mkil.text.mkurl=Url Address +mkil.text.level=Menu Level +mkil.message.pathAndjs=Please enter the js function +mkil.text.forder=Arrangement Number +mkil.text.mkManage=Module Management +mkil.text.title=Module Information +mkil.text.pathAndjs=Path or JS Function +mkil.text.mktype=Display Type +mkil.message.menu=Menu +mkil.message.button=Button +mkil.text.state=Status +mkil.message.valid=Active +mkil.message.invalid=Invalid +mkil.text.mkms=Function Description +mkil.text.showorder=Arrangement Number +mkil.message.btnsortup=Node Moves Up +mkil.message.btnsortdown=Node Down +mkil.button.submit=Submit +mkil.button.cancel=Cancel + +#WebRoot directory +#page directory +#mission directory +#parameterDefaults directory +################################################## ####### +#addDefaultsInfo.jsp page +adi.message.title=Add Default Information +adi.text.title=Default Value Configuration +adi.text.system=Business System +adi.message.selectDefault=Please Select +adi.text.missionType=Task Type +adi.text.nodeGroup=Node Groups +adi.text.missionTypeName=Task Type Name +adi.text.viewLevel=View Rating +adi.text.userGroup=User Group +adi.text.startTime=Start Time +adi.text.endTime=End Time +adi.text.targetPath=Path to the file destination +adi.text.loopFlag=Timed Tasks +adi.message.untimed=Untimed Tasks +adi.message.timed=Timed Tasks +adi.text.loopStartDate=Timing Start Time +adi.text.loopEndDate=Timing End Time +adi.text.loopDelay=Circulation Cycle +adi.text.filterKeyword=Filter Keywords + +#defaultsInfoList.jsp page +dil.message.infoManage=Department Information Management +dil.message.success=Operation is successful! +dil.message.faild=The operation failed! +dil.text.missionName=Configuration Name +dil.text.missionType=Business Type +dil.text.selectDefault=Please Select +dil.text.system=Business System +dil.text.nodeGroup=Node Groups +dil.text.index=Serial Number +dil.text.opration=Operation +dil.text.missionType1=Task Type +dil.text.viewRecord=View Details + +#examineDefaultsInfo1.jsp page +edi1.message.title=Add Default Information +edi1.text.title=Default Value Configuration +edi1.text.systemName=Business System +edi1.text.missionType=Task Type +edi1.text.nodeGroup=Node Group +edi1.text.missionTypeName=Task Type Name +edi1.text.viewLevel=View Rating +edi1.text.userGroup=User Group +edi1.text.startTime=Start Time +edi1.text.endTime=End Time +edi1.text.targetPath=Path to the file destination +edi1.text.checkValue=File Checksum +edi1.text.loopFlag=Timed Tasks +edi1.message.untimed=Untimed Tasks +edi1.message.timed=Timed Tasks +edi1.text.loopStartDate=Timing Start Time +edi1.text.loopEndDate=Timing End Time +edi1.text.loopDelay=Circulation Cycle +edi1.text.filterKeyword=Filter Keywords + +#examineDefaultsInfo2.jsp page +edi2.text.addDefaultInfoTitle=Add Default Information +edi2.text.title=Default Value Configuration +edi2.text.systemName=Business System +edi2.message.selectDefault=Please Select +edi2.text.missionType=Task Type +edi2.text.nodeGroup=Node Groups +edi2.text.missionTypeName=Task Type Name +edi2.text.viewLevel=View Rating +edi2.text.userGroup=User Group +edi2.text.startTime=Start Time +edi2.text.endTime=End Time +edi2.text.targetPath=path to the file destination +edi2.text.checkValue=File Checksum +edi2.text.loopFlag=Timed Tasks +edi2.message.untimed=Untimed Tasks +edi2.message.timed=Timed Tasks +edi2.text.loopStartDate=Timing Start Time +edi2.text.loopEndDate=Timed End Time +edi2.text.loopDelay=Circulation Cycle +edi2.text.filterKeyword=Filter Keywords + +#updateDefaultsInfo.jsp +udi.message.title=Modify User Information +udi.text.deptname=Department Name +udi.message.deptname=Please select superior department +udi.text.title=Modify Department Information +udi.text.deptlayer=Department Level +udi.text.deptlayer.generalTeam=General Team +udi.text.deptlayer.detachment=Detachment +udi.text.deptlayer.team=Team +udi.text.upperlayer=Superior Department +udi.message.default=Please Select +udi.message.upperlayer=Please Select + + +#WebRoot directory +#page directory +#mission directory +#smipleMission directory +################################################## ##### +#addmissionInfo.jsp page +ami.message.selectSystem=Please select the business system +ami.message.selectMK=Please select module +ami.text.upFile=Upgrade File +ami.message.filePath=Please select the configuration file +ami.message.sets=Please select a configuration item +ami.text.title=System Module Upgrade +ami.text.systemName=Business System +ami.message.selectDefault=Please Select +ami.text.module=Module +ami.text.deployedNodeGroup=Deployed Node Group +ami.message.selectMK10=Log Processing Module +ami.message.selectMK11=System Detection Module +ami.message.selectMK12=Redundant Cleanup Module +ami.message.selectMK13=Library Table Backup Module +ami.message.selectUpFile=Select Upgrade File +ami.text.checkSets=Verification Of Configuration Correctness +ami.text.filePath=Select Configuration File +ami.text.sets=Configuration Items +ami.message.passback=Passback NIC +ami.message.flyer=Flyer +ami.message.presetInfo=Preset Information +ami.message.testNetwork=Test Network +ami.text.filterFlag=Result Filter +ami.message.yes=Yes +ami.message.no=No + +#examineMissionInfo1.jsp page +emi1.message.title=Add User Information +emi1.text.title=View Results +emi1.text.missionName=Task Name +emi1.text.createTime=Created +emi1.text.missionState=Task Status +emi1.text.viewLevel=View Level +emi1.text.addUser=Create User +emi1.text.userGroup=User Group +emi1.text.nodeGroup=Node Group +emi1.text.targetPath=Destination Path +emi1.text.missionComments=Mission Description +emi1.text.nodeIp=Node IP +emi1.text.state=State +emi1.text.returnValue=Return Value +emi1.text.success=Success +emi1.text.testA=Test Performance A +emi1.text.faild=Failed +emi1.text.testB=Test Performance B + +#examineMissionInfo2.jsp page +emi2.message.title=Add User Information +emi2.text.title=View Results +emi2.text.missionName=Task Name +emi2.text.createTime=Created +emi2.text.missionState=Task Status +emi2.text.viewLevel=View Level +emi2.text.addUser=Create User +emi2.text.userGroup=User Group +emi2.text.nodeGroup=Node Group +emi2.text.isFilter=Filter Results +emi2.text.filterValue=Filter Content +emi2.text.missionComments=Mission Description +emi2.text.startTime=Start Time +emi2.text.endTime=End Time +emi2.text.cycle=Cycle +emi2.text.sets=Configuration Contents +emi2.text.nodeNum=Number Of Nodes +emi2.text.nodeList=Node List +emi2.text.exportNode=Node Export +emi2.text.context1=Content 1 +emi2.text.nodes=Nodes +emi2.text.faildCause=Failure Reason +emi2.text.unkownException=Unknown Exception +emi2.text.runtimeError=Runtime Error +emi2.text.connectNodeFaild=Node Connection Failed + +#missionInfoList.jsp page +msil.message.title=Department Information Management +msil.message.success=Operation is successful! +msil.message.faild=Operation Failed! +msil.text.missionName=Task Name +msil.text.username=Task Creator +msil.text.createDate=Created +msil.text.to=To +msil.text.missionState=Task Status +msil.message.selectDefault=Please select +msil.text.systemName=Business System +msil.text.nodeGroup=Node Groups +msil.text.viewLevel=View Permissions +msil.text.index=Serial Number +msil.text.opration=Operation +msil.message.missionType1=Module +msil.message.missionType0=Node Group +msil.message.updateRecord=Module +msil.message.changeState=Pause +msil.message.viewRecord=View Results +msil.message.missionType10=Log Processing Module +msil.message.missionType11=System Detection Module +msil.message.missionType12=Redundant Cleanup Module +msil.message.missionType13=Library Table Backup Module +msil.message.publisher=Publisher View +msil.message.publisherGroup=Publisher Group View +msil.message.allInSys=All People In The System View +msil.message.noRecord=No Record + +#WebRoot directory +#page directory +#pluginInfo directory +################################################## ##### +#addPluginInfo.jsp page +api.message.title=Add Tool Information +api.message.name=Name cannot be empty. +api.message.myFile=The tool cannot be empty. Please select. +api.button.back=Return +api.text.title=Add Tool Information +api.text.name=Tool Name +api.text.myFile=Tools +api.text.des=Tool Description +api.button.submit=Submit +api.button.reset=Reset + +#pluginInfoList.jsp page +pil.message.title=Tool Management +pil.message.selectOne=Please select a row! +pil.message.delPlugin=Is sure to delete tool information? +pil.message.index=Serial Number +pil.text.name=Tool Name +pil.text.fileName=File Name +pil.text.des=Tool Description +pil.text.createUsername=Created By +pil.text.createTime=Created At +pil.text.updateUsername=Last Update Person +pil.text.udateTime=Last Updated Time +pil.text.noRecord=No Record + +#updatePluginInfo.jsp page +upi.message.title=Modify Tool Information +upi.message.name=Name cannot be empty. +upi.button.back=Back +upi.text.title=Modify Tool Information +upi.message.titleInfo=Do not select the tool file, that is, do not update the tool file +upi.text.name=Tool Name +upi.text.myFile=Tools +upi.text.des=Tool Description +upi.text.download=Click to download +upi.text.delete=Delete +upi.button.update=Modify +upi.button.reset=Reset + + +#WebRoot directory +#page directory +#show directory +#nodeBox directory +################################################## ##### +#addBoxInfo.jsp page +abi.message.title=Add Brand Information +abi.text.boxUType=Cabinet U Position +abi.message.ispn=The cabinet number already exists. Please re-enter it! +abi.message.faild=Abnormal Operation! +abi.text.roomIspn=Room Number +abi.text.roomRowPosition=Room Line Number +abi.text.roomColPosition=Room Column number +abi.text.descinfo= Cabinet Description +abi.message.ispn1=There is an illegal character in the cabinet number. Please enter it again! +abi.message.selectDefault=Please Select +abi.button.back=Back +abi.text.title=Add Brand +abi.text.ispn=Number +abi.text.U=U bit +abi.text.des=Description +abi.text.submit=Submit +abi.text.reset=Reset + +#boxInfoList.jsp page +bil.message.title=Cabin Setup Information +bil.message.success=Operation Successful! +bil.message.faild=Operation Failed! +bil.message.selectOne=Please select a row! +bil.message.delete=Is sure to delete the setting information? +bil.message.inputInfo=Input is a special character, please re-enter! +bil.message.selectImportFile=Please select the imported file +bil.message.selectFileType=Please select the correct import file type +bil.message.sureToImport=Import cabinet, are you sure to import? +bil.message.warning=Enclosure operation completed. Continue to maintain data? +bil.message.hint=Tip +bil.text.nodeBoxTable=Cabinet Number +bil.message.nodeBoxTable=Please enter the cabinet number +bil.button.downloadExample=Download Template +bil.text.importXls=Import Excel +bil.button.importXls=Import +bil.button.showDiv=Export +bil.button.add=Add +bil.button.update=Modify +bil.button.delete=Delete +bil.button.back=Back +bil.text.index=Serial Number +bil.text.descinfo= Cabinet Description +bil.text.roomIspn=Ranking Room Number +bil.text.noRecord=No Record +bil.button.exportCurrentPage=Export The Current Page Data +bil.button.exportAllData=Export All Data +bil.text.closeWindow=Close Window + +#showImportError.jsp +sie.text.title=Error Message +sie.text.index=Number +sie.text.U=U bit +sie.text.roomIspn=Room Number +sie.text.roomRowPosition=Room Line Number +sie.text.roomColPosition=Room Column number +sie.text.errorInfo=Error Message + +#updateBoxInfo.jsp page +ubi.message.title=Add Brand Information +ubi.text.boxUType=Cabinet U position +ubi.message.faild=Abnormal Operation! +ubi.text.ispn=Cabinet Number +ubi.text.descinfo= Cabinet Description +ubi.text.roomIspn=Room Number +ubi.text.roomRowPosition=Room Line Number +ubi.text.roomColPosition=Room Column number +ubi.message.inputInfo=There is an illegal character in the cabinet number. Please enter it again! +ubi.message.selectDefault=Please Select +ubi.button.back=Back +ubi.text.title=Edit Brand +ubi.text.index=Number +ubi.text.U=U bit +ubi.text.desc=Description +ubi.button.submit=Submit +ubi.button.reset=Reset + + +#WebRoot directory +#page directory +#show directory +#nodeGroup directory +################################################## ##### +#configTopo.jsp page +ct.message.title=Logical Topology Configuration +ct.text.save=Save +ct.text.sets=Configuration +ct.message.srcNodeGroup=Source node group cannot be empty +ct.message.descNodeGroup=The target node group cannot be empty +ct.message.lineOffset=Connection offset is digital +ct.message.lineDirection=Connection direction cannot be empty +ct.message.srcLinePostion=The source connection cannot be empty +ct.message.descLinePostion=The target connection cannot be empty +ct.message.nodeLock=Failed node continues to upgrade Node group and node cannot be modified +ct.text.srcNodeGroup=Source Node Group +ct.button.select=Select +ct.text.descNodeGroup=Target Node Group +ct.text.lineOffset=Connection Offset +ct.text.lineDirection=Connection Direction +ct.message.lineDirectionDefault=Please select the direction of the connection +ct.message.lineDirection1=One-way +ct.message.lineDirection2=Two-way +ct.text.lineNumber=Number of lines +ct.message.lineNumberDefault=Automatically calculate based on location +ct.text.srcLinePostion=Source Connection Location +ct.message.srcLinePostionDefault=Please select the source connection location +ct.message.srcLinePostionUp=Up +ct.message.srcLinePostionDown=Down +ct.message.srcLinePostionLeft=Left +ct.message.srcLinePostionRight=Right +ct.text.descLinePostion=Target Connection Location +ct.message.descLinePostionDefault=Please select the source connection location +ct.message.descLinePostionUp=Up +ct.message.descLinePostionDown=Down +ct.message.descLinePostionLeft=Left +ct.message.descLinePostionRight=Right +ct.button.ok=OK + +#showTopo.jsp page +st.message.title=Diagram +st.nodeList.title=Detection Data +st.nodeBox.title=Cabinets +st.text.nodeIp=Node IP: +st.text.nodeName=Node Name +st.text.nodeUType=Node U bit +st.text.nodeBeginUType=Starting U bit +st.text.monitorData=Detection Data +st.text.U=U bit +st.text.policy=Emergency Alarm +st.message.frameInfo=The browser does not support inline frames or is configured not to display inline frames. + +#WebRoot directory +#page directory +#show directory +#nodeRoom directory +################################################## ##### +#addRoomInfo.jsp page +ari.message.title=Adding A Room +ari.text.roomIspn=Room Number +ari.text.roomRows=Room Lines +ari.text.roomCols=Computer Room Columns +ari.message.roomRows=The number of columns in the room should be less than or equal to +ari.message.roomIspn=An illegal character exists in the room number. Please re-enter it! +ari.message.MkformError=The record already exists. Please re-enter it! +ari.message.MkformException=Abnormal Operation! +ari.button.back=Back +ari.text.title=Basic Information of Computer Room +ari.text.index=Serial Number +ari.text.rows=Number of rows +ari.text.cols=Number of columns +ari.text.roomDesc=Description +ari.button.submit=Submit +ari.button.reset=Reset + +#roomInfoList.jsp page +ril.message.title=Room Information +ril.message.success=Operation is successful! +ril.message.faild=Operation Failed! +ril.message.selectOne=Please select a row! +ril.message.delete=Is sure to delete the setting information? +ril.message.inputInfo=Input is a special character, please re-enter! +ril.message.selectImportFile=Please select the imported file +ril.message.selectCorrectFile=Please select the correct import file type +ril.message.sureToImport=Import to the room, are you sure to import? +ril.message.warning=The operation of the equipment room is completed. Continue to maintain data? +ril.message.hint=Tip +ril.text.rIspn=Room Number +ril.message.rIspn=Please enter the room number +ril.button.downloadExample=Download Template +ril.text.importXls=Import Excel +ril.button.import=Import +ril.button.export=Export +ril.button.boxmanager=Enclosure Management +ril.text.index=Serial Number +ril.text.roomRows=Room Rows +ril.text.roomCols=Computer Room Columns +ril.text.roomDesc=Room Description +ril.text.noRecord=No Record +ril.button.exportCurrentXls=Export Current Page Data +ril.button.exportAllXls=Export All Data +ril.text.closeWindow=Close Window + +#updateRoomInfo.jsp page +uri.message.title=Modify Room Information +uri.message.mkFormError=The record already exists. Please re-enter! +uri.message.mkFormException=Abnormal Operation! +uri.text.roomIspn=Room Number +uri.text.roomRows=Room Lines +uri.text.roomCols=Computer Room Columns +uri.message.roomRows=The number of room lines need to be less than or equal to +uri.message.roomCols=The number of columns in the equipment room must be less than or equal to +uri.message.roomIspn=There is an illegal character in the room number. Please enter it again! +uri.button.back=Return +uri.text.title=Basic Information of Computer Room +uri.text.index=Number +uri.text.rows=Number of rows +uri.text.cols=Columns +uri.text.rommDesc=Description +uri.button.submit=Submit +uri.button.reset=Reset + + +#WebRoot directory +#page directory +#show directory +################################################## ######## +#editMap.jsp page +em.message.title=Diagram +em.message.saveSets=Save the current cabinet settings? +em.message.spanTable=This cabinet has not yet maintained the node in this cabinet +em.button.ok=OK +em.button.cancle=Cancel +em.text.find=Search Cabinet +em.message.find=Please enter the cabinet number +em.text.spanName=Name +em.text.spanUType=Node Thickness (U-bit) +em.message.board=Please select icon for association! +em.message.nodeBox= Associated Node 1 +em.text.ispn=Number: +em.message.iconBox=Please Save +em.message.dragDisable=Do not drag in elements other than nodes +em.message.boxExists=The cabinet already exists. Please select another cabinet to pull in +em.message.nodeTable=What are you dragging to the desktop? +em.message.dragBoxDisable=Do not drag the cabinet into this cabinet +em.message.dragNodeDisable=A node already in this grid is prohibited from dragging +em.message.tooBigToBox=Node thickness is too large and the U bit of the cabinet cannot drop this node +em.message.tooBigToBox1=The node thickness is too large and the U bit of the cabinet cannot be set down +em.menu.save=Save +em.menu.reset=Reset +em.menu.link=Related +em.menu.unLink=Delete Node +em.menu.changeImg=Edit Picture +em.menu.openBox=Open Cabinet +em.menu.openTopology=Open The Page + +#flexTopo.jsp page +ft.message.title=Node Machine Status Display +ft.message.flashContent=Flash player 10.0.0+ is not installed, please click to download and install, then visit the page! +ft.message.flashUrl=Click to download flash player +ft.message.noJsOrFlash= JavaScript is disabled, or the browser used does not have enough JavaScript support, or the flash player 10.0.0+ is not installed! + +#show3DRoom.jsp page +sr.message.title=Show 3D Room +sr.message.isFirst= Is already the first node group +sr.message.isLast=Already the last node group +Sr.message.frame=The browser does not support inline frames or is configured not to display inline frames. + +#showMap.jsp page +sm.message.title=Diagram +sm.message.loading=Opening page for you, please wait +sm.button.ok=OK +sm.button.cancle=Cancel +sm.message.data=Please select icon for association! +sm.message.actionInfo=Associated Node 1 +sm.menu.save=Save +sm.menu.reset=Reset +sm.menu.unLink=Delete association +sm.menu.link=Association +sm.menu.unNode=Delete Node +sm.menu.changeImg=Modify Image +sm.menu.openTopology=Open The Page + +#showNode.jsp page +sn.message.title=Show Node Group Relationships +sn.message.content=Content Display + +#showNodeRoom.jsp +snr.message.title=Show Node Group Relationships +snr.text.nodeBox=Cabinets +snr.text.alarmInfo=Alarm Info +snr.text.titleTtext.nodeGroup=Node Group +snr.text.titleTtext.roomId=Room Number +snr.message.boxTitle1=No node exists in this node group +snr.message.boxTitle2=There is a node under this node group +snr.message.boxTitle3=There is a node under this node group and it is abnormal +snr.message.title.row=Row +snr.message.title.column=Column +snr.message.room=Room +snr.message.nodeTableTitle.nodeIp=Node IP +snr.message.nodeTableTitle.nodeName=Node Name +snr.message.nodeTableTitle.nodeU=Node U-bit +snr.message.nodeTableTitle.startU=Start U Bit +snr.message.UBit=U Bit +snr.message.frame=The browser does not support inline frames or is configured not to display inline frames. + +#showTopology.jsp page +st.message.loading=Opening page for you, please wait... +st.message.spanTable=This node has not yet maintained the node in this cabinet +st.text.spanName2=Name +st.text.spanUType2=Node Thickness (U bit) +st.text.getBox=View Cabinet +st.text.getChildNg=View Child Node Groups + +#showTopologySub.jsp page +sts.message.title=Diagram +sts.message.spanTable=This node has not yet maintained the node in this cabinet +sts.button.ok=OK +sts.button.cancle=Cancel +sts.text.spanName2=Name +sts.text.spanUType2=Node Thickness (U bit) +sts.menu.save=Save +sts.menu.reset=Reset +sts.menu.changeImg=Edit Picture +sts.menu.getBox=View Cabinet +sts.menu.getChildNg=View Child Node Groups +sts.menu.openTopology=Open The Page + + +#WebRoot directory +#page directory +#system directory +#brandManage directory +######################################################## +#addBrandInfo.jsp page +abi.message.addBrandInfoTitle=Add Brand Information +abi.text.brandName=Brand Name +abi.text.addBrandTitle=Add Brand +abi.text.brandOid=Brand OID +abi.text.brandDesc=Brand Description +abi.button.submit=Submit +abi.button.reset=Reset + + +#brandInfoList.jsp page +bril.message.title=Brand Management +bril.message.success=Operation is successful! +bril.message.faild=Operation Failed! +bril.message.selectOne=Please select a row! +bril.message.delete=Is sure to delete the setting information? +bril.text.brandName=Brand Name +bril.text.index=Serial Number +bril.text.brandDesc=Brand Description +bril.text.brandOid=Brand OID +bril.text.noRecord=No Record + +#detailBrandInfo.jsp page +dbi.message.title=Add Brand Information +dbi.text.title=View Brand +dbi.text.brandName=Brand Name +dbi.text.brandOid=Brand OID +dbi.text.brandDesc=Brand Description +dbi.button.back=Return + +#updateBrandInfo.jsp page +ubi.message.addBrandInfoTitle=Add brand information +ubi.text.brandName=Brand Name +ubi.text.updateBrandTitle=Edit Brand +ubi.text.brandOid=Brand OID +ubi.text.brandDesc=Brand Description + + + +#WebRoot directory +#page directory +#system directory +#deptManage directory +################################################## ############# +#deptInfoList.jsp page +dept.message.title=Department Information +dept.text.deptname=Department Name +dept.message.deptname=There are special characters for the department name. Please re-enter it. +dept.message.deptname1=This department name already exists +dept.text.deptMenu=Department Menu +dept.text.deptInfo=Department Information +dept.text.state=Status +dept.message.valid=Active +dept.message.invalid=Invalid +dept.button.add=Add +dept.button.update=Modify + + +#WebRoot directory +#page directory +#system directory +#deviceManage directory +################################################## ################ +#addBatchDevTypeInfo.jsp page +abdti.message.title=Add port device model information in batch +abdti.text.deviceRandCode=Affiliate Brand +abdti.text.pid=Parent Device Model +abdti.message.showIndexEnd1=Please enter the starting number +abdti.message.showIndexEnd2=Number starting value, please enter the number +abdti.message.showIndexEnd3=Please enter the number ending value +abdti.message.showIndexEnd4=Number end value, please enter number +abdti.message.figureFill=The file type is incorrect, please upload the following image type +abdti.message.selectDefault=Please Select +abdti.button.back=Back +abdti.text.title=Bulk Add Port Devices +abdti.text.showIndexRule=Number Rule +abdti.message.showIndexRule.all=All +abdti.message.showIndexRule.odd=Odd +abdti.message.showIndexRule.even=Even +abdti.text.showIndexStart=Number Range +abdti.text.figureFill=Device Picture +abdti.text.nameFormat=Name Format +abdti.text.nameFormatInfo=[Y]: represents the location of the device itself in the parent device, [X]: represents the position of the parent device in the grandfather device +abdti.text.diTableName=Monitoring Information Table +abdti.text.indexFiled=Connection Field +abdti.text.statusFiled=Status Field +abdti.text.statusSymbols=Anomaly Comparators +abdti.text.statusValue=Exception Comparison Value +abdti.text.deviceDesc=Device Description +abdti.text.autoAddDeviceID=Automatically add device labels at the end of the description +abdti.button.submit=Submit +abdti.button.reset=Reset + +#addDevBrandInfo.jsp page +adbi.message.title=Add Brand Information +adbi.text.deviceRandCode=Brand Number +adbi.text.deviceRandName=Brand Name +adbi.text.title=Add Brand +adbi.text.deviceBrandDesc=Brand Description +adbi.button.submit=Submit +adbi.button.reset=Reset + +#addDevTypeInfo.jsp page +adti.message.title=Add Device Model Information +adti.text.deviceRandCode=Affiliate Brand +adti.text.deviceTypeCode=Device Model +adti.message.maxDeviceNum=Please enter the number +adti.message.showIndex1=Please enter the number +adti.message.showIndex2=Please enter the number +adti.message.figureFill=The file type is incorrect, please upload the following type of picture +adti.message.selectDefault=Please Select +adti.button.back=Back +adti.text.title=Add Device Model +adti.text.maxDeviceNum=Maximum Number Of Overlays +adti.text.pid=Parent Device Model +adti.message.pid=Add port, power supply, fan, etc. (Not selected when adding a new chassis) +adti.text.canConfigPid=Configurable Parent Device +adti.message.canConfigPid=Use when adding a new card (do not select when adding a new one) +adti.text.index=Serial Number +adti.text.figureFill=Device Picture +adti.text.diTableName=Monitoring Information Table +adti.text.indexFiled=Connection Field +adti.text.statusFiled=Status Field +adti.text.statusSymbols=Anomaly Comparators +adti.text.statusValue=Exception Comparison Value +adti.text.deviceDesc=Device Description +adti.button.add=Submit +adti.button.reset=Reset + +#addPosDevTypeInfo.jsp page +apdti.message.title=Add Device Model Information +apdti.message.showIndexEnd1=Please enter the starting number of the number +apdti.message.showIndexEnd2=Number starting value, please enter the number +apdti.message.showIndexEnd3=Please enter the number ending value +apdti.message.showIndexEnd4=Number end value, please enter the number +apdti.button.back=Back +apdti.text.title=Adding A Slot Device +apdti.text.deviceTypeCode=Parent Device Model +apdti.text.deviceRandCode=Owned Brand +apdti.text.showIndexStart=Number Range +apdti.text.deviceDesc=Device Description +apdti.text.autoAddDeviceID=Automatically add device labels at the end of the description +apdti.button.add=Submit +apdti.button.reset=Reset + +#confDevPos.jsp page +cdp.message.title=JS Drag and Drop DIV +cdp.text.deviceTypeCode=Device Model +cdp.text.confDevCode=Subdevice +cdp.text.bkwz=Select The Appropriate Board +cdp.button.select=Select +cdp.text.setComments.config=Configuration Notes +cdp.text.setComments.selectSubDevice=1. Select Sub-Devices to Configure +cdp.text.setComments.configPosition=2. Drag and drop on the parent device to configure the position and size of the child device (multiple times can be dragged) +cdp.text.shortcut=Shortcut +cdp.text.or=or +cdp.text.changeSubDevice=Switch Child Devices +cdp.text.movePosition=Move the position of the selected area +cdp.text.setHeigh=Adjust the height of the selected area +cdp.text.setWiedth=Adjust the width of the selected area +cdp.button.add=Submit +cdp.button.back=Return + +#detailBrandInfo.jsp page +dtbi.message.title=Add Brand Information +dtbi.text.title=View Brand +dtbi.text.brandName=Brand Name +dtbi.text.brandOid=Brand OID +dtbi.text.brandDesc=Brand Description +dtbi.button.back=Back + +#detailDevTypeInfo.jsp page +ddti.message.title=Device Model Details +ddti.button.back=Back +ddti.text.title=Device Model Details +ddti.text.deviceRandCode=Owned Brands +ddti.text.deviceTypeCode=Device Model +ddti.text.maxDeviceNum=Maximum Number Of Overlays +ddti.text.pid=Parent Device Model +ddti.text.index=Serial Number +ddti.text.figureFill=Device Picture +ddti.text.nameFormat=Port Name Format +ddti.text.diTableName=Monitoring Information Table +ddti.text.indexFiled=Connection Field +ddti.text.statusFiled=Status Field +ddti.text.statusSymbols=Exception Matches +ddti.text.statusValue=Exception Comparison Value +ddti.text.deviceDesc=Device Description + +#deviceBrandInfoList.jsp page +dbil.message.title=Equipment Brand Management +dbil.message.selectOne=Please select a row! +dbil.message.delete=Are you sure you want to delete brand information? +dbil.message.selectImportFile=Please select the imported file +dbil.message.selectCorrectFile=Please select the correct import file type +dbil.message.sureToImport=Import brand, are you sure to import? +dbil.text.brandName=Brand Name +dbil.button.downloadExample=Download Template +dbil.text.importXls=Import Excel +dbil.buton.importXls=Import +dbil.buton.exportXls=Export +dbil.text.index=Serial Number +dbil.text.deviceRandCode=Brand Number +dbil.text.deviceRandName=Brand Name +dbil.text.deviceBrandDesc=Brand Description +dbil.text.addTime=Created At +dbil.text.noRecord=No Record +dbil.button.exportCurrentPage=Export The Current Page Data +dbil.button.exportAllData=Export All Data +dbil.text.closeWindow=Close Window + + +#deviceTypeInfoList.jsp page +dtil.message.title=Device Model Management +dtil.message.selectOne=Please select a row! +dtil.message.delete=Is sure to delete device information? +dtil.message.selectDefault=Please Select +dtil.message.selectImportFile=Please select the imported file +dtil.message.selectCorrectFile=Please select the correct import file type +dtil.message.sureToImport=Import the device. Are you sure to import it? +dtil.message.noDataExport=No Data export in current list! +dtil.message.inputInfo=Input is a special character, please re-enter! +dtil.text.devTypeCode=Device Model +dtil.text.devRandCode=Owned Brand +dtil.text.parDev=Parent Device +dtil.button.export=Export +dtil.button.add=Add +dtil.button.toAddBatchDevType=Bulk Add Port +dtil.button.update=Modify +dtil.button.delete=Delete +dtil.text.index=Serial Number +dtil.text.deviceDesc=Device Description +dtil.text.parDevCode=Parent Device Model +dtil.text.addTime=Created At +dtil.text.opration=Operation +dtil.text.detailDev=Details +dtil.text.toAddPosDevType=Add A New Slot +dtil.text.toConfDevPos=Location Configuration +dtil.text.noRecord=No Record +dtil.button.exportCurrentPage=Export The Current Page Data +dtil.button.exportAllDate=Export All Data +dtil.text.closeWindow=Close Window + +#deviceTypeInfoListChild.jsp page +dtilc.text.detailDev=Detail +dtilc.text.toAddPosDevType=Add A New Slot +dtilc.text.toConfDevPos=Location Configuration + +#selectBanKa.jsp page +sbk.text.selectAll=Select All +sbk.text.selectBK=Select The Corresponding Board +sbk.button.submit=Submit +sbk.button.close=Close + +#updateDevBrandInfo.jsp page +udbi.message.title=Modify device brand information +udbi.text.deviceRandCode=Brand Number +udbi.button.back=Back +udbi.text.title=Modify Device Brand +udbi.text.deviceRandName=Brand Name +udbi.text.deviceBrandDesc=Brand Description +udbi.button.update=Submit +udbi.button.reset=Reset + +#updateDevTypeInfo.jsp page +udti.message.title=Modify device model information +udti.text.deviceRandCode=Owned Brand +udti.text.deviceTypeCode=Device Model +udti.message.maxDeviceNum=Please enter the number +udti.message.showIndex1=Please enter the number +udti.message.showIndex2=Please enter the number +udti.message.figureFill=The file type is incorrect, please upload the following image type +udti.message.deviceTypeCode=Device model already exists +udti.message.faild=Abnormal Operation! +udti.message.selectDefault=Please Select +udti.button.back=Back +udti.text.title=Modify Device Model +udti.text.maxDeviceNum=Maximum number of overlays +udti.text.pid=Parent Device Model +udti.text.showIndex=Number +udti.text.figureFill=Device Picture +udti.text.nameFormat=Port Name Format +udti.text.nameFormatInfo=[Y]: represents the location of the device itself in the parent device, [X]: represents the position of the parent device in the grandfather device +udti.text.diTableName=Monitoring Information Table +udti.text.indexFiled=Connection Field +udti.text.statusFiled=Status Field +udti.text.tableStatusValue=Exception Comparison +udti.text.statusValue=Exception Comparison Value +udti.text.deviceDesc=Device Description +udti.button.update=Submit +udti.button.reset=Reset + +#WebRoot directory +#page directory +#system directory +#dictionary +################################################## ############## +#addDictionary.jsp page +ad.message.title=Add Data Dictionary +ad.message.dictTypeNameExists=The dictionary type name already exists. Please re-enter! +ad.message.identifierExists=Dictionary identifier already exists, please re-enter\! +ad.message.faild=Abnormal Operation! +ad.text.sn=Display Serial Number +ad.text.typeName=Dictionary Type Name +ad.text.typeIdentity=Dictionary Identifier +ad.button.back=Back +ad.text.title=New Type Data Dictionary +ad.text.typeDesc=Description +ad.button.add=Submit +ad.button.reset=Reset + +#addDictionarySource.jsp page +ads.message.title=Add Data Dictionary Source Data +ads.text.typeCode=Type Code +ads.text.typeValue=Type Name +ads.text.showNum=Show Serial Number +ads.text.delayTime=Delay Time +ads.text.MkformError=Type code or type name already exists, please re-enter! +ads.text.MkformException=Abnormal Operation! +ads.button.back=Return +ads.text.title=New type data dictionary source data +ads.text.delayTime1=Delay Time (Minutes) +ads.button.add=Submit +ads.button.reset=Reset + +#deteDataConSetList.jsp page +ddcsl.message.title=Monitor data list filter conditions +ddcsl.text.index=Serial Number +ddcsl.text.menuName=Menu Name +ddcsl.text.policeEmergent=Emergency +ddcsl.text.policeLevel=Non-critical Alert Level +ddcsl.text.opration=Operation +ddcsl.text.editInfo=Modify Information +ddcsl.text.noRecord=No Record + +#dictionaryInfoList.jsp +dict.message.title=Data Dictionary +dict.text.index=Serial Number +dict.text.typeName=Dictionary Type Name +dict.text.typeDesc=Dictionary Type Description +dict.text.showNum=Show Serial Number +dict.text.typeState=State +dict.text.opration=Operation +dict.message.typeState0=Enabled +dict.message.typeState1=Disabled +dict.text.update=Modify Information +dict.text.noRecord=No Record + +#dictionarySourceList.jsp page +dsl.message.title=Data Dictionary Source Data +dsl.button.add=Add +dsl.button.back=Return +dsl.text.index=Serial Number +dsl.text.typeCode=Type Code +dsl.text.typeValue=Type Name +dsl.text.showNum=Show Serial Number +dsl.text.typeState=State +dsl.text.opration=Operation +dsl.message.typeState0=Enabled +dsl.message.typeState1=Disabled +dsl.text.update=Modify Information +dsl.text.noRecord=No Record + +#updateDetDataConSet.jsp page +uddc.message.title=Modify monitoring data list filter +uddc.button.back=Return +uddc.text.title=Modify Monitoring Data Filter Settings +uddc.text.menuName=Menu Name +uddc.text.policeEmergent=Urgent +uddc.message.emergent=Emergency +uddc.message.nonEmergent=Non-emergency +uddc.text.policeLevel=Alert Level +uddc.message.policeLevel1=1 +uddc.message.policeLevel2=Level 2 +uddc.message.policeLevel3=3 levels +uddc.message.policeLevel4=4 level +uddc.message.policeLevel5=5 level +uddc.text.remark=Notes +uddc.text.selectNull=No item selected, list is not filtered +uddc.button.submit=Submit +uddc.button.reset=Reset + +#updateDictionary.jsp page +ud.message.title=Modify OID dictionary +ud.message.MkformError=The dictionary type name already exists. Please re-enter! +ud.message.MkformException=Abnormal Operation! +ud.text.showNum=Show Serial Number +ud.text.typeName=Dictionary Type Name +ud.text.typeIdentity=Dictionary Identifier +ud.buttone.back=Back +ud.text.title=Modify The Type Data Dictionary +ud.text.typeState=State +ud.message.enable=Enabled +ud.message.disable=Disabled +ud.text.typeDesc=Description +ud.buttone.submit=Submit +ud.buttone.reset=Reset + +#updateDictionarySource.jsp page +uds.message.title=Modify type dictionary source data +uds.message.MkformError=Type code or type name already exists, please re-enter! +uds.message.MkformException=Abnormal Operation! +uds.text.typeCode=Type Code +uds.text.typeValue=Type Name +uds.text.showNum=Show Serial Number +uds.text.delayTime=Delay Time +uds.buttone.back=Back +uds.text.title=Modify The Type Data Dictionary +uds.text.typeState=State +uds.message.enable=Enabled +uds.message.disable=Disabled +uds.text.delayTime1=Delay Time (Minutes) +uds.buttone.submit=Submit +uds.buttone.reset=Reset + +#WebRoot directory +#page directory +#system directory +#nmsError directory +################################################## ############## +#errorInfoDetail.jsp +eid.message.title=Node Information +eid.text.title=System Alert Information +eid.text.errorName=Exception Type +eid.text.errorCode=Anomaly Flag +eid.text.errortIp=Exception Generated IP +eid.text.errortGetip=Exception To Provide IP +eid.text.errorTime=Exception Generation Time +eid.text.errorState=Current Status +eid.message.resolved=Resolved +eid.message.unresolved=Unresolved +eid.message.recovered=Recovered +eid.text.yhmc=Solution +eid.text.stateUpdateTime=Time To Resolve +eid.button.back=Return + +#nmsErrorInfoList.jsp page +neil.message.title=Exception Information List +neil.message.checkState0=Please select at least one line of exception information! +neil.message.checkState1=Contains the resolved exception. Please reselect! +neil.message.checkState2=Contains unresolved exceptions, please reselect! +neil.message.inputInfo=Input is a special character, please re-enter! +neil.text.errorName=Exception Type +neil.message.errorName=Please enter the server name +neil.text.errorIp=Exception IP +neil.message.errorIp=Server IP +neil.text.eiState=Processing Status +neil.message.all=All +neil.message.resolved=Resolved +neil.message.unresolved=Unresolved +neil.button.checkStateOK=Resolved +neil.text.index=Serial Number +neil.text.eventDesc=Event Description +neil.text.happendTime=Time Of Occurrence +neil.text.state=Status +neil.text.uploadIp=Report IP +neil.text.newTime=Latest Time +neil.text.handleName=Handler +neil.text.operation=Operation +neil.message.recovered=Recovered +neil.text.showRecord=View Details +neil.text.noRecord=No Record + + + +#WebRoot directory +#page directory +#system directory +#nmstaskmanager directory +#addConverse directory +################################################## ########### +#addConverseNmsTaskInfo.jsp page +acnti.message.title=Add Task Information +acnti.message.missionName=Please enter the task name +acnti.message.jdz=Please select a node group +acnti.message.nodeIp=There are no valid nodes in the selected node group +acnti.message.usergroupid=Please select a user group +acnti.message.maxWaitTime=Waiting Time +acnti.text.cover=Overwrite Directory +acnti.text.source=Backup Directory +acnti.text.startupFile=Startup File +acnti.text.pidFile=Original Task ID +acnti.text.backup=Files That Need To Be Backed Up +acnti.text.backupTo=Backup To The Path +acnti.message.missionDesc=The task description cannot be greater than 100 +acnti.message.notNull=Cannot be empty +acnti.message.mlmc=Please select the command name +acnti.message.nodeLock=Specify result node reverse operation Node group and node cannot be modified +acnti.button.back=Return +acnti.text.title=Add Reverse Task +acnti.text.missionType=Task Type +acnti.text.upgrade=Upgrade Deployment +acnti.text.systemIdName=Business System +acnti.text.missionName=Task Name +acnti.text.nodeGroup=Section  point  Group +acnti.button.select=Select +acnti.text.nodeIp=Node IP +acnti.text.viewLevel=View Permissions +acnti.message.publisher=Publisher View +acnti.message.publisherGroup=Publisher Group View +acnti.message.allInSys=All People In The System View +acnti.text.usergroup=Use  user  Group +acnti.message.selectUsergroupDefault=Please select a user group +acnti.text.parentMissionId=Original Task ID +acnti.text.upgradeTime=Upgrade Time +acnti.text.commandName=Command Name +acnti.text.commandDesc=Command Content    
or  See   +acnti.text.addOperation=Add Operation +acnti.text.missionDesc=Task Description +acnti.text.users=Contacts +acnti.message.selectAll=Select All +acnti.button.submit=Submit +acnti.button.reset=Reset + +#converseTaskTemplate.jsp page +ctt.text.recovery=Recover +ctt.text.recoverySets=Add Recovery Parameters +ctt.text.backup=Backup +ctt.text.backupSets=Add Backup Parameters +ctt.text.delete=Delete +ctt.text.startupFile=Startup File Or Command +ctt.text.pidFile=PID File +ctt.text.username=Owner +ctt.text.execParams=Startup Parameters +ctt.message.execParams=Multiple parameters are separated by semicolons +ctt.text.maxWaitTime=Waiting Time +ctt.message.maxWaitTime=Seconds (if it is empty, it will wait for 3 seconds by default) +ctt.text.backupFile=Files That Need To Be Backed Up +ctt.text.compression=Compression ID +ctt.text.absolutePath=Absolute Path +ctt.text.relativePath=Relative Path +ctt.text.backupTo=Path To Backup +ctt.message.backupTo=Backup path Please fill in the relative path +ctt.text.exceptFile=Exclude File +ctt.message.exceptFile=Separate multiple files with semicolons +ctt.text.source=Source File Or Directory +ctt.text.decompression=Uncompression ID +ctt.text.recoveryFile=Restore Files Or Directories +ctt.text.deleteFile=Delete Files +ctt.message.deleteFile=Separate multiple files with semicolons + +#missioncmdPara6ForNewConverse.jsp page +mcpfnc.text.coverPath=Overwrite Directory +mcpfnc.text.username=Owner +mcpfnc.text.recovery=Restore +mcpfnc.text.sourcePath=Source file or directory +mcpfnc.text.decompression=Uncompression ID +mcpfnc.text.recoveryFile=Recover Files Or Directories +mcpfnc.text.absolutePath=Absolute Path +mcpfnc.text.relativePath=Relative Path +mcpfnc.text.deleteFile=Delete Files +mcpfnc.message.deleteFile=Separate multiple files with semicolons +mcpfnc.message.sepParam=Multiple parameters are separated by semicolons +mcpfnc.text.delete=Delete +mcpfnc.text.backup=Backup +mcpfnc.text.backupSets=Add Backup Parameters +mcpfnc.text.startupFile=Startup File Or Command +mcpfnc.text.pidFile=PID File +mcpfnc.text.startupParam=Startup Parameters +mcpfnc.text.maxWaitTime=Waiting Time +mcpfnc.text.recoverySets=Add Recovery Parameters + + +#WebRoot directory +#page directory +#system directory +#nmstaskmanager directory +#addSimilar directory +################################################## ########### +#addConverseSimilarNmsTaskInfo.jsp page +acsnti.message.title=Add Task Information +acsnti.message.missionName=Please enter the task name +acsnti.message.selectMissionType=Please select the business type +acsnti.message.jdz=Please select a node group +acsnti.message.nodeIp=There are no valid nodes in the selected node group +acsnti.message.usergroupid=Please select a user group +acsnti.text.maxWaitTime=Waiting Time +acsnti.text.coverPath=Overwrite Directory +acsnti.text.sourcePath=Backup Directory +acsnti.text.startupFile=Startup File +acsnti.text.pidFile=Original Task ID +acsnti.text.backupFile=Files That Need To Be Backed Up +acsnti.text.backupTo=Path To Backup +acsnti.message.missionDesc=The number of task descriptions cannot be greater than 100 +acsnti.message.notNull=Cannot be empty +acsnti.message.mlmc=Please select the command name +acsnti.message.nodeLock=Failed node continues to upgrade Node group and node cannot be modified +acsnti.button.back=Back +acsnti.text.title=Add Reverse Similar Tasks +acsnti.text.missionType=Task Type +acsnti.text.upgrade=Upgrade Deployment +acsnti.text.systemName=Business System +acsnti.text.missionName=Task Name +acsnti.text.nodeGroups=Section  point  Group +acsnti.button.select=Select +acsnti.text.nodeIp=Node IP +acsnti.text.viewLevel=View Permissions +acsnti.message.publisher=Publisher View +acsnti.message.publisherGroup=Publisher Group View +acsnti.message.allInSys=All People In The System View +acsnti.text.usergroup=Use  user  Group +acsnti.text.selectUserGroup=Please select a user group +acsnti.text.upgrade_date=Upgrade Time +acsnti.text.parentMissionId=Original Task ID +acsnti.text.commandEName=Command Name +acsnti.text.commandComments=Command Content    
or  See   +acsnti.text.addOperation=Add Operation +acsnti.text.missionDesc=Task Description +acsnti.text.users=Contacts +acsnti.message.selectAll=Select All +acsnti.button.submit=Submit +acsnti.button.reset=Reset + + +#addSimilarNmsTaskInfo.jsp page +asnti.message.title=Add Task Information +asnti.message.missionName=Please enter the task name +asnti.message.systemType=Please select business type +asnti.message.jdz=Please select a node group +asnti.message.noUsedNode=No valid nodes in the selected node group +asnti.message.usergroupid=Please select a user group +asnti.message.pushFile=Push File +asnti.message.pushTarget=Push Destination +asnti.text.maxWaitTime=Maximum Waiting Time +asnti.text.commandEName=Please select the command name +asnti.text.cycle=Cycle +asnti.text.startTime=Start Time +asnti.text.endTime=End Time +asnti.message.TimeInfo1=The end time of the cycle should be greater than or equal to the start time! +asnti.message.TimeInfo2=The end of the period should be greater than the current time! +asnti.message.returnPath=Please enter the return file +asnti.text.backupFile=Files That Need To Be Backed Up +asnti.text.backupTo=Backup To The Path +asnti.text.pidFile=PID File +asnti.text.source=Source File Or Directory +asnti.text.coverFile=Overwrite Directory +asnti.text.execcmd=Execute File Or Command +asnti.text.execResult=Execution Result File +asnti.text.missionName=Command Name +asnti.text.mlmc=Please select the command name +asnti.text.maxWaitTime1=Waiting Time +asnti.text.coverPath=Overwrite Directory +asnti.text.startupFile=Startup File +asnti.message.nodeLock=Failed node continues to upgrade Node group and node cannot be modified +asnti.text.title=Similar Tasks To Add +asnti.text.missionType=Task Type +asnti.message.missionType1=File Push +asnti.message.missionType4=Command Execution +asnti.message.missionType6=Upgrade Deployment +asnti.text.systemIdName=Business System +asnti.text.missionName=Task Name +asnti.text.nodeGroup=Section  point  Group +asnti.button.select=Select +asnti.text.nodeIp=Node IP +asnti.message.missionDesc=The number of task descriptions cannot be greater than 100 +asnti.message.notNull=Cannot be empty +asnti.text.viewLevel=View Permissions +asnti.message.publisher=Publisher View +asnti.message.publisherGroup=Publisher Group View +asnti.message.allInSys=All People In The System View +asnti.text.usergroup=Use  user  Group +asnti.message.usergroupDefault=Please select a user group +asnti.text.upgradeDate=Upgrade Time +asnti.text.commandType=Command Type +asnti.button.back=Back +asnti.message.commandType1=NC native support command +asnti.message.commandType2=Executable command +asnti.message.selectCommandNameDefault=Please select a command name +asnti.text.commandDesc=Command Content    
or  See   +asnti.text.addPushFile=Adding a Push File +asnti.message.addPushFile=The total size of the file must be less than 100MB +asnti.text.addOperation=Add Operation +asnti.text.loopFlag=Period Tasks +asnti.text.minute=Minute +asnti.message.timed=Yes +asnti.message.untimed=No +asnti.text.missionDesc=Task Description +asnti.text.users=Contacts +asnti.text.selectAll=Select All +asnti.button.submit=Submit +asnti.button.reset=Reset + +#missioncmdPara1ForNewSimilar.jsp page +mcpfns1.text.filePath=Path +mcpfns1.message.filePath=single file, zip, gz compression package +mcpfns1.text.delete=Delete +mcpfns1.text.destPath=Push Destination +mcpfns1.text.isCover=Overwrite +mcpfns1.message.isCoverY=Yes +mcpfns1.message.isCoverN=No +mcpfns1.text.username=Owner +mcpfns1.text.permisson=File Permissions +mcpfns1.text.groupName=Groups + +#missioncmdPara4ForNewSimilar.jsp page +mcpfns4.text.backupFile=Files that need to be backed up +mcpfns4.text.backupTo=Path To Backup +mcpfns4.message.backupTo=Please fill in the relative path +mcpfns4.text.compression=Compression ID +mcpfns4.text.absolutePath=Absolute Path +mcpfns4.text.relativePath=Relative Path +mcpfns4.text.exceptFile=Exclude Files +mcpfns4.message.exceptFile=Separate multiple files with semicolons +mcpfns4.text.delete=Delete +mcpfns4.text.startFileOrExecCmd=Startup File Or Command +mcpfns4.text.forceExec=Force Enforcement +mcpfns4.message.Y=Yes +mcpfns4.message.N=No +mcpfns4.text.execResult=Execution Result File +mcpfns4.text.residentFlag=Resident Memory +mcpfns4.text.maxWaitTime=Maximum Waiting Time +mcpfns4.text.returnFlag=Postback ID +mcpfns4.text.username=Owner +mcpfns4.text.returnPath=Returning Files +mcpfns4.text.execParams=Startup Parameters +mcpfns4.message.execParams=Multiple parameters are separated by semicolons +mcpfns4.text.execCmd=Execute Command +mcpfns4.text.source=Source File Or Directory +mcpfns4.text.decompression=Uncompression ID +mcpfns4.text.coverPath=Overwrite Directory +mcpfns4.text.isCreateCover=Create Logo +mcpfns4.message.isCreateCoverY=Create +mcpfns4.message.isCreateCoverN=Do not create +mcpfns4.text.deleteFile=Delete Files +mcpfns4.message.deleteFile=Separate multiple files with semicolons + +#missioncmdPara6ForNewConverseSimilar.jsp page +mcpfncs.text.coverPath=Overwrite Directory +mcpfncs.text.username=Owner +mcpfncs.text.recovery=Restore +mcpfncs.text.source=Source File Or Directory +mcpfncs.text.decompression=Uncompression ID +mcpfncs.text.absolutePath=Absolute Path +mcpfncs.text.relativePath=Relative Path +mcpfncs.text.recoveryPath=Recover Files Or Directories +mcpfncs.text.deleteFile=Delete Files +mcpfncs.message.deleteFile=Separate multiple files with semicolons +mcpfncs.text.delete=Delete +mcpfncs.text.backup=Backup +mcpfncs.text.backupFiles=Files That Need To Be Backed Up +mcpfncs.text.compression=Compression ID +mcpfncs.text.backupTo=Path To Backup +mcpfncs.message.backupTo=Backup path Please fill in the relative path +mcpfncs.text.exceptFile=Exclude File +mcpfncs.message.exceptFile=Separate multiple files with semicolons +mcpfncs.text.startupFile=Startup File Or Command +mcpfncs.text.pidFile=PID File +mcpfncs.text.execParams=Startup Parameters +mcpfncs.message.execParams=Multiple parameters are separated by semicolons +mcpfncs.message.maxWaitTime=Waiting Time +mcpfncs.text.recoveryFile=Recover Files Or Directories +mcpfncs.text.recoverySets=Add Recovery Parameters +mcpfncs.text.addBackupSets=Add backup parameters +mcpfncs.message.maxWaitTime=Seconds (if it is empty, it will wait for 3 seconds by default) + +#missioncmdPara6ForNewSimilar.jsp page +mcpfns6.text.path=Path +mcpfns6.message.path=single file, zip, gz compression package +mcpfns6.text.delete=Delete +mcpfns6.text.coverPath=Overwrite directory +mcpfns6.text.isCreateCover=Create Logo +mcpfns6.message.isCreateCoverY=Create +mcpfns6.message.isCreateCoverN=Do not create +mcpfns6.text.username=Owner +mcpfns6.text.decompression=Uncompression ID +mcpfns6.text.absolutePath=Absolute Path +mcpfns6.text.relativePath=Relative Path +mcpfns6.text.groupName=Herds +mcpfns6.text.deleteFile=Delete Files +mcpfns6.message.deleteFile=Separate multiple files with semicolons +mcpfns6.text.permisson=File Permissions +mcpfns6.text.backup=Backup +mcpfns6.text.backupFiles=Files That Need To Be Backed Up +mcpfns6.text.compression=Compression ID +mcpfns6.text.backupTo=Path To Backup +mcpfns6.message.backupTo=Please fill in the relative path for backup path +mcpfns6.text.exceptFile=Exclude Files +mcpfns6.message.exceptFile=Separate multiple files with semicolons +mcpfns6.text.startupFile=Startup File Or Command +mcpfns6.text.pidFile=PID File +mcpfns6.text.forceExec=Force Enforcement +mcpfns6.message.Y=Yes +mcpfns6.message.N=No +mcpfns6.text.execParams=Startup Parameters +mcpfns6.message.execParams=Multiple parameters separated by semicolons +mcpfns6.text.maxWaitTime=Waiting Time +mcpfns6.text.addBackupSets=Add Backup Parameters +mcpfns6.text.backupFile=Files That Need To Be Backed Up + + +#WebRoot directory +#page directory +#system directory +#nmstaskmanager directory +#detail directory +################################################## ################# +#converseMissioncmdPara6.jsp page +cmcp.text.coverPath=Overwrite Directory +cmcp.text.username=Owner +cmcp.text.pidFile=PID File +cmcp.text.startupFile=Startup File Or Command +cmcp.text.execParams=Startup Parameters +cmcp.text.maxWaitTime=Waiting Time +cmcp.text.second=Seconds +cmcp.text.backups=Backup +cmcp.text.backupFile=Files That Need To Be Backed Up +cmcp.text.compression=Compression ID +cmcp.text.absolutePath=Absolute Path +cmcp.text.relativePath=Relative Path +cmcp.text.backupTo=Path To Backup +cmcp.text.exceptFile=Exclude File +cmcp.text.recovery=Recover +cmcp.text.source=Source File Or Directory +cmcp.text.decompression=Uncompression ID +cmcp.text.coverFile=Recover File Or Directory +cmcp.text.deleteFile=Delete Files + + +#converseMissionDetail.jsp page +cmd.message.title=Upgrade Deployment - Reverse Task Results View +cmd.button.back=Back +cmd.text.title=Upgrade Deployment - Reverse Task Results View +cmd.text.missionName=Task Name +cmd.text.missionType=Task Type +cmd.text.upgrade=Upgrade Deployment - Reverse Task +cmd.text.systemIdName=Business System +cmd.text.nodeGroup=Node Group +cmd.text.excuNode=Executive Node +cmd.text.addUser=Create User +cmd.text.viewLevel=View Permissions +cmd.message.publisher=Publisher View +cmd.message.publisherGroup=Publisher Group View +cmd.message.allInSys=All People In The System View +cmd.text.groupIdName=User Group +cmd.text.commandName=Command Name +cmd.text.startTime=Upgrade Time +cmd.text.missionId=Task ID +cmd.text.parentMissionId=Original Task ID +cmd.text.commandDesc=Command Content Or Parameters +cmd.text.missionComments=Task Description +cmd.text.runningComments=Executive Description + +#missioncmdPara1.jsp page +mcp1.text.fileName=Push File +mcp1.text.isCover=Overwrite +mcp1.message.Y=Yes +mcp1.message.N=No +mcp1.text.destPath=Push Destination +mcp1.text.username=Owner +mcp1.text.permisson=File permissions +mcp1.text.groupName=Groups + +#missioncmdPara4.jsp page +mcp4.text.backup=Files That Need To Be Backed Up +mcp4.text.backupTo=Backup To The Path +mcp4.text.compression=Compression ID +mcp4.text.absolutePath=Absolute Path +mcp4.text.relativePath=Relative Path +mcp4.text.exceptFile=Exclude File +mcp4.text.startFileOrExecCmd=Startup File Or Command +mcp4.text.forceExec=Enforced +mcp4.message.Y=Yes +mcp4.message.N=No +mcp4.text.username=Owner +mcp4.text.residentFlag=Resident Memory +mcp4.text.execResult=Execution Result File +mcp4.text.returnFlag=Postback ID +mcp4.text.maxWaitTime=Maximum Wait Time +mcp4.text.second=Seconds +mcp4.text.returnPath=Returning Files +mcp4.text.execParams=Startup Parameters +mcp4.text.execcmd=Execute Command +mcp4.text.source=Source File Or Directory +mcp4.text.decompression=Uncompression ID +mcp4.text.cover=Overwrite Directory +mcp4.text.isCreateCover=Create Logo +mcp4.message.isCreateCoverY=Create +mcp4.message.isCreateCoverN=Do not create +mcp4.text.deleteFile=Delete Files +mcp4.text.pidFile=PID File + +#missioncmdPara6.jsp page +mcp6.text.fileName=Source File +mcp6.text.cover=Overwrite Directory +mcp6.text.isCreateCover=Create Logo +mcp6.message.isCreateCoverY=Create +mcp6.message.isCreateCoverN=Do not create +mcp6.text.permisson=File Permissions +mcp6.text.username=Owner +mcp6.text.decompression=Uncompression ID +mcp6.text.absolutePath=Absolute Path +mcp6.text.relativePath=Relative Path +mcp6.text.groupName=Groups +mcp6.text.deleteFile=Delete Files +mcp6.text.backup=Backup +mcp6.text.needBackupFile=Files That Need To Be Backed Up +mcp6.text.backupTo=Path To Backup +mcp6.text.compression=Compression ID +mcp6.text.exceptFile=Exclude File +mcp6.text.startupFile=Startup File Or Command +mcp6.text.pidFile=PID File +mcp6.text.forceExec=Enforced +mcp6.message.Y=Yes +mcp6.message.N=No +mcp6.text.maxWaitTime=Waiting Time +mcp6.text.second=Seconds +mcp6.text.execParams=Startup Parameters + +#missionstateparameter1.jsp page +mspm1.message.title=File Push Detailed Results +mspm1.button.back=Back +mspm1.text.title=Push File Results View +mspm1.text.missionName=Task Name +mspm1.text.missionType=Task Type +mspm1.message.missionType1=File Push +mspm1.message.missionType2=Get Non-streaming Text Data +mspm1.text.systemIdName=Business System +mspm1.text.nodeListName=Node Group +mspm1.text.excNode=Executive Node +mspm1.text.fileName=Push File +mspm1.text.viewLevel=View Permissions +mspm1.message.publisher=Publisher View +mspm1.message.publisherGroup=Publisher Group View +mspm1.message.allInSys=All People In The System View +mspm1.text.groupIdName=User Group +mspm1.text.addUser=Create User +mspm1.text.contentParam=Content Parameters +mspm1.text.missionDesc=Task Description +mspm1.text.runningDesc=Execution Description + +#missionstateparameter2.jsp page +mspm2.message.title=Non-stream Text Data Get Results View +mspm2.text.title=Non-streaming Text Data Get Results View +mspm2.text.missionName=Task Name +mspm2.text.missionType=Task Type +mspm2.message.missionType1=File Push +mspm2.message.missionType2=Get Non-stream Text Data +mspm2.text.systemIdName=Business System +mspm2.text.filePath=File +mspm2.text.missionDesc=Task Description +mspm2.text.viewLevel=View Permissions +mspm2.message.publisher=Publisher View +mspm2.message.publisherGroup=Publisher Group View +mspm2.message.allInSys=All People In The System View +mspm2.message.user=Users +mspm2.message.filterCode=Filter Keywords +mspm2.text.startTime=Start Time +mspm2.text.endTime=End Time +mspm2.text.startFlag=Start Flag +mspm2.text.endFlag=End Flag +mspm2.text.totalChart=Overall Scale +mspm2.text.lineChart=Line Trend Chart +mspm2.text.columnarChart=Bar Chart +mspm2.text.browerInfo=The browser does not support inline frames or is configured not to display inline frames. +mspm2.text.nodeIp=Node IP +mspm2.text.returnResult=Execution Result +mspm2.text.result=Results Reason +mspm2.message.success=Success +mspm2.message.failed=Failed +mspm2.button.exportFaildNode=Failed Node Export +mspm2.text.select=Please Select + +#missionstateparameter3.jsp page +mspm3.message.title=Non-stream Text Data Results +mspm3.text.title=Non-streaming Text Data Get Results View +mspm3.text.missionName=Task Name +mspm3.text.missionType=Task Type +mspm3.message.filePush=File Push +mspm3.message.getNonStream=Get Non-stream Text Data +mspm3.message.getStream=Streaming Text Data Acquisition +mspm3.message.commandExcute=Command Execution +mspm3.message.shellRegist=Shell Registration +mspm3.text.systemIdName=Business System +mspm3.text.filePath=Files +mspm3.text.missionDesc=Task Description +mspm3.text.viewLevel=View Permissions +mspm3.message.publisher=Publisher View +mspm3.message.publisherGroup=Publisher Group View +mspm3.message.allInSys=All personnel in the system can see +mspm3.text.user=Users +mspm3.text.filterKeyword=Filter Keywords +mspm3.text.startTime=Start Time +mspm3.text.endTime=End Time +mspm3.text.filterType=Filter Type +mspm3.message.noFilter=Do not filter +mspm3.message.hitReturn=Hit data returned +mspm3.message.hitDrop=Hits dropped +mspm3.text.loopFlag=No-time task +mspm3.message.Y=Yes +mspm3.message.N=No +mspm3.text.startTime1=Start Time +mspm3.text.endTime1=End Time +mspm3.text.totalChart=Overall Scale +mspm3.text.lineChart=Line Trend Chart +mspm3.text.columnarChart=Bar Chart +mspm3.text.browerInfo=The browser does not support inline frames or is configured not to display inline frames. +mspm3.text.nodeIp=Node IP +mspm3.text.returnResult=Execution Result +mspm3.text.result=Results Reason +mspm3.message.success=Success +mspm3.message.failed=Failed +mspm3.button.exportFaildNode=Failed Node Export + + +#missionstateparameter4.jsp page +mspm4.message.title=Command Execution - Task Results View +mspm4.button.back=Return +mspm4.text.title=Command Execution - Task Results View +mspm4.text.missionName=Task Name +mspm4.text.missionType=Task Type +mspm4.message.filePush=File push +mspm4.message.getNonStream=Get non-stream text data +mspm4.message.getStream=Get non-streaming text data +mspm4.message.commandExcute=Command Execution +mspm4.message.shellRegist=Shell Registration +mspm4.message.upgrade=Upgrade Deployment +mspm4.text.systemIdName=Business System +mspm4.text.nodeListName=Node Group +mspm4.text.excuNode=Executive Node +mspm4.text.addUser=Create User +mspm4.text.viewLevel=View Permissions +mspm4.message.publisher=Publisher View +mspm4.message.publisherGroup=Publisher Group View +mspm4.message.allInSys=All People In The System View +mspm4.text.groupIdName=User Group +mspm4.text.missionId=Task ID +mspm4.text.commandType=Command Type +mspm4.message.nativeCommand=Agent native support command +mspm4.message.script=Script +mspm4.message.shellCommand=Shell Command +mspm4.text.commandName=Command Name +mspm4.text.loopFlag=Period Tasks +mspm4.message.Y=Yes +mspm4.message.N=No +mspm4.text.loopDelay=Period +mspm4.text.minute=Minutes +mspm4.text.startTime=Start Time +mspm4.text.endTime=End Time +mspm4.text.commandDesc=command content    
or parameter +mspm4.text.missionDesc=Task Description +mspm4.text.autoDesc=Executive Description + +#missionstateparameter5.jsp page +mspm5.message.title=Non-stream Text Data Results +mspm5.text.title=Unstreamed Text Data Get Results View +mspm5.text.missionName=Task Name +mspm5.text.missionType=Task Type +mspm5.message.filePush=File Push +mspm5.message.getNonStream=Get Non-stream Text Data +mspm5.message.getStream=Streaming Text Data Acquisition +mspm5.message.commandExcute=Command Execution +mspm5.message.shellRegist=Shell Registration +mspm5.text.systemIdName=Business System +mspm5.text.commandFlag=Call Flag +mspm5.text.missionDesc=Task Description +mspm5.text.viewLevel=View Permissions +mspm5.message.publisher=Publisher View +mspm5.message.publisherGroup=Publisher Group View +mspm5.message.allInSys=All Personnel In The System Can See +mspm5.text.userIdName=Users +mspm5.text.shellPath=Script Path +mspm5.text.totalChart=Overall Scale +mspm5.text.lineChart=Line Trend Chart +mspm5.text.columnarChart=Bar Chart +mspm5.text.browerInfo=The browser does not support inline frames or is configured not to display inline frames. +mspm5.text.nodeIp=Node IP +mspm5.text.returnResult=Execution Result +mspm5.text.result=Result Reason +mspm5.message.success=Success +mspm5.message.failed=Failed +mspm5.button.exportFaildNode=Failed Node Export +mspm5.text.select=Please Select + +#missionstateparameter6.jsp page +mspm6.message.title=Upgrade Deployment - Task Results View +mspm6.button.back=Back +mspm6.text.title=Upgrade Deployment - Task Results View +mspm6.text.missionName=Task Name +mspm6.text.missionType=Task Type +mspm6.message.filePush=File Push +mspm6.message.getNonStream=Get non-stream Text Data +mspm6.message.getStream=Streaming Text Data Acquisition +mspm6.message.commandExcute=Command Execution +mspm6.message.shellRegist=Shell Registration +mspm6.message.upgrade=Upgrade Deployment +mspm6.text.systemIdName=Business System +mspm6.text.nodeListName=Node Group +mspm6.text.excuNode=Execution Node +mspm6.text.addUser=Create User +mspm6.text.viewLevel=View Permissions +mspm6.message.publisher=Publisher View +mspm6.message.publisherGroup=Publisher Group View +mspm6.message.allInSys=All People In The System View +mspm6.text.groupIdName=User Group +mspm6.text.missionId=Task ID +mspm6.text.sourceFile= Source File +mspm6.text.commandName=Command Name +mspm6.text.startTime=Upgrade Time +mspm6.text.commandDesc=Command Content Or Parameters +mspm6.text.missionDesc=Task Description +mspm6.text.autoDesc=Executive Description + + +#WebRoot directory +#page directory +#system directory +#nmstaskmanager directory +################################################## ########### +#addFailureNodeTaskInfo.jsp page +afnti.message.title=Failed Node Executes Again +afnti.message.missionName1=Please enter the task name +afnti.message.missionName2=There are special characters in the task name. Please re-enter it. +afnti.message.nodeList=Please select a node group +afnti.message.operationType=Please select the business type +afnti.message.userGroup=Please select a user group +afnti.message.isNotNull=Cannot be empty +afnti.text.title=Failed Node Executes Again +afnti.text.missionName=Task Name +afnti.text.editCommandSets=Modify Command Parameters +afnti.text.nodeGroup=Section  point  Group +afnti.button.select=Select +afnti.text.nodeIp=Node IP +afnti.text.viewLevel=View Permissions +afnti.message.publisher=Publisher View +afnti.message.publisherGroup=Publisher Group View +afnti.message.allInSys=All People In The System View +afnti.text.usergroup=Use  user  Group +afnti.message.userGroupDefault=Please select a user group +afnti.text.missionDesc=Task Description +afnti.text.users=Contacts +afnti.message.selectAll=Select All +afnti.buttone.add=Submit +afnti.buttone.reset=Reset +afnti.buttone.back=Back + +#addnmstaskInfo.jsp page +anti.message.title=Add Task Information +anti.message.missionName=Please enter the task name +anti.message.jdz=Please select a node group +anti.message.nodeIp=There are no valid nodes in the selected node group +anti.message.systemId=Please select business type +anti.message.usergroupid=Please select user group +anti.message.pushFile=Push File +anti.message.pushDest=Push Destination +anti.message.maxWaitTime=Maximum Wait Time +anti.message.commandEName=Please select the command name +anti.text.cycle=Cycle +anti.text.startTime=Start Time +anti.text.endTime=End Time +anti.message.timeInfo1=The end of the period should be greater than or equal to the start time! +anti.message.timeInfo2=The end of the period should be greater than the current time! +anti.message.returnPath=Please enter the return file +anti.text.backup=Files That Need To Be Backed Up +anti.text.backupTo=Backup To The Path +anti.text.pidFile=PID File +anti.text.source=Source File Or Directory +anti.text.cover=Overwrite Directory +anti.text.execcmd=Execute File Or Command +anti.text.execResult=Execution Result File +anti.message.waitTime=Waiting Time +anti.text.pushFile=Push File +anti.text.startupFile=Startup File +anti.message.missionDesc=The number of task description words cannot be greater than 100 +anti.message.isNotNull=Cannot be empty +anti.message.fileIsNotExists=File does not exist! +anti.message.fileIsTooBig=The total size of the push file exceeds 100M. Please reselect the file to be pushed! +anti.message.mlmc=Please select the command name +anti.message.nodeLock=Failed node continues to upgrade Node group and node cannot be modified +anti.button.back=Back +anti.text.title=Tasks Added +anti.text.missionType=Task Type +anti.message.filePush=File Push +anti.message.commandExcute=Command Execution +anti.message.upgrade=Upgrade Deployment +anti.text.systemName=Business System +anti.text.missionName=Task Name +anti.text.nodeGroup=Section  point  Group +anti.button.select=Select +anti.text.select=Node IP +anti.text.viewLevel=View Permissions +anti.message.publisher=Publisher View +anti.message.publisherGroup=Publisher Group View +anti.message.allInSys=All People In The System View +anti.text.usergroup=Use  user  Group +anti.message.userGroupDefault=Please select user group +anti.text.upgradeDate=Upgrade Time +anti.text.commandType=Command Type +anti.message.commandType1=NC native support command +anti.message.commandType2=Executable command +anti.text.commandexeName=Command Name +anti.message.commandNameSelect=Please select the command name +anti.text.commandDesc=Command Content    
or  See   +anti.text.addPushFile=Add push File +anti.message.addPushFile=The total size of the file must be less than 100MB +anti.text.addOperation=Add Operation +anti.text.loopFlag=Period Tasks +anti.message.timed=Yes +anti.message.untimed=No +anti.text.minute=Minute +anti.text.missionDesc=Task Description +anti.text.user=Contacts +anti.text.selectAll=Select All +anti.button.submit=Submit +anti.button.reset=Reset + +#editMissionViewLevel.jsp +emvl.message.title=Modify Task Information +emvl.message.missionName1=Please enter the task name +emvl.message.missionName2=There are special characters for the task name. Please re-enter it. +emvl.message.usergroupid=Please select a user group +emvl.text.title=Mission Of Task Information +emvl.text.missionName=Task Name +emvl.text.viewLevel=View Permissions +emvl.message.publisher=Publisher View +emvl.message.publisherGroup=Publisher Group View +emvl.message.allInSys=All People In The System View +emvl.message.unlimited=Global +emvl.text.usergroup=Use  user  Group +emvl.text.usergroupDefault=Please select a user group +emvl.button.submit=Submit +emvl.button.reset=Reset +emvl.button.back=Back + +#editnmstaskInfoparameter1.jsp +entip1.message.title=Add Task Information +entip1.message.nodegroupidDefault=Please select the node group +entip1.message.detectFileDefault=Select Monitoring File +entip1.message.missionName=Please enter the task name +entip1.message.operationType=Please select the business type +entip1.message.usergroupid=Please select user group +entip1.message.sourcePath=Please select the source file +entip1.message.targetPath=Please enter the destination +entip1.message.selectFile=Please select file +entip1.text.title=Modify Task Information +entip1.text.missionName=Task Name +entip1.text.missionType=Task Type +entip1.text.filePush=File Push +entip1.text.selectSystem=Select Business System +entip1.message.selectSystem=Please select a business system +entip1.text.pushNodeGroup=Push Node Group +entip1.text.pushMissionDesc=Push Task Description +entip1.text.viewLevel=View Permissions +entip1.text.publisher=Publishers view +entip1.text.publisherGroup=Publisher Group View +entip1.text.allInSys=Publisher Group View +entip1.text.userGroup=User Group +entip1.text.sourcePath=Source File +entip1.text.targetPath=Destination + +#editnmstaskInfoparameter2.jsp page +entip2.message.title=Add Task Information +entip2.message.nodegroupid=Please select the node group +entip2.message.monfenfuenfefef=Select Monitoring File +entip2.message.missionName=Please enter a task name +entip2.message.missionType=Please select business type +entip2.message.userGroup=Please select a user group +entip2.message.sourcePath=Please select the source file +entip2.message.targetPath=Please enter the destination +entip2.message.file=Please select a file +entip2.text.addmissionInfo=Add Task Information +entip2.text.missionName=Task Name +entip2.text.missionType=Task Type +entip2.text.getDate=Get Non-streaming Text Data +entip2.text.System=Select Business System +entip2.text.selectSystem=Please select the business system +entip2.text.groupId=Non-stream Node Group +entip2.text.missionDesc=Non-flow Task Description +entip2.text.viewLevel=View Permissions +entip2.message.publisher=Publisher View +entip2.message.publisherGroup=Publisher Group View +entip2.message.allInSys=All people in the system can see +entip2.text.userGroup=User Group +entip2.text.loopFlag=No-time task +entip2.message.Y=Yes +entip2.message.N=No +entip2.text.cycle=Period (in minutes) +entip2.text.minute=Minutes +entip2.text.selectFile=Select File +entip2.text.filterKeyword=Filter Keywords +entip2.text.startFlag=Start Flag +entip2.text.endFlag=End Flag + +#missionResultBarChart.jsp page +mrbc.message.title=Task Execution Result Graph +mrbc.text.resultChart=Timed Task Execution Result Trend Graph +mrbc.message.success=Success +mrbc.message.failed=Failure +mrbc.message.underDelivery=Under Delivery +mrbc.message.deliveredSuccess=The task was delivered successfully +mrbc.message.processStop=Successful Process Deactivation +mrbc.message.fileBackup=File Backup Success +mrbc.message.fileUpdate=File update was successful +mrbc.message.commandSuccess=Command executed successfully +mrbc.message.commandFailed=Command execution failed +mrbc.message.withDraw=Ready to withdraw +mrbc.message.undo=Undo +mrbc.message.undoComplete=Undo complete + +#missionResultLineChart.jsp page +mrlc.message.title=Task Execution Result Graph +mrlc.text.xAxis=Rounds +mrlc.message.success=Success +mrlc.message.failed=Failure +mrlc.message.underDelivery=Under delivery +mrlc.message.deliveredSuccess=The task was delivered successfully +mrlc.message.processStop=Successful process deactivation +mrlc.message.fileBackup=File backup success +mrlc.message.fileUpdate=File update was successful +mrlc.message.commandSuccess=Command executed successfully +mrlc.message.commandFailed=Command execution failed +mrlc.message.withDraw=Ready to withdraw +mrlc.message.undo=Undo +mrlc.message.undoComplete=Undo completed +mrlc.text.firstTd=Previous +mrlc.text.lastTd=Next + + +#missionResultList.jsp page +mrl.message.title=Command Execution - Task Results View +mrl.message.judgmentFails=Please select a row of failed results! +mrl.message.isUpdate=The selected task type is non-upgrade and is not reversible +mrl.message.isConverse=The selected task is an inverse task and cannot be reversed +mrl.message.finished=The selected task has not been completed and is not reversible +mrl.message.haveBackUp=No backup of the selected task, irreversible +mrl.message.hasSpecialChar=Input is a special character, please re-enter! +mrl.message.batchDownLoadFile=Currently selected no files to download! +mrl.message.selectOne=Please select at least one record! +mrl.text.missionType=Task Type +mrl.message.missionType1=File Push +mrl.message.missionType4=Command Execution +mrl.message.missionType6=Upgrade Deployment +mrl.text.missionName=Task Name +mrl.text.cycle=Cycle +mrl.text.result=Task Result +mrl.message.resultStateDefault=All +mrl.message.underDelivery=Posted +mrl.message.deliveredSuccess=The task was issued successfully +mrl.message.processStop=Deactivation process succeeded +mrl.message.fileBackup=File backup succeeded +mrl.message.fileUpdate=File update succeeded +mrl.message.commandSuccess=Command succeeded +mrl.message.commandFailed=Command execution failed +mrl.message.withDraw=Ready to revoke +mrl.message.undo=Undoing +mrl.message.undoComplete=Undo completed +mrl.message.success=Success +mrl.message.failed=Failed +mrl.text.ipNode=Node IP +mrl.message.ipNode=Please enter the node IP address +mrl.button.judgmentFails=Decision Failed +mrl.button.updateFailedNodes=Failed Node Executes Again +mrl.button.reverseSuccessNodes=Success Node Reverse +mrl.button.reverseFaildNodes=Failed Node Reverse +mrl.button.reverseAllNodes=All Reverse +mrl.button.exportXLS=Query Result Export +mrl.button.batchDownLoadFile=Bulk Download Backfiles +mrl.button.back=Return +mrl.text.nodeIp=Node IP +mrl.text.returnResult=Execution Result +mrl.text.resultCause=Results Reason +mrl.text.backFile=Post File +mrl.message.decisionFailed=Decision failed + +#missionResultListChild.jsp page +mrlchild.message.underDelivery=Posted +mrlchild.message.deliveredSuccess=The task was issued successfully +mrlchild.message.processStop=Deactivation process succeeded +mrlchild.message.fileBackup=File backup succeeded +mrlchild.message.fileUpdate=File update succeeded +mrlchild.message.commandSuccess=Command succeeded +mrlchild.message.commandFailed=Command execution failed +mrlchild.message.withDraw=Ready to revoke +mrlchild.message.undo=Undoing +mrlchild.message.undoComplete=Undo completed +mrlchild.message.success=Success +mrlchild.message.failed=Failed +mrlchild.message.decisionFailed=Decision failed + +#missionResultPieChart.jsp page +mrpc.message.title=Detailed File Push Results +mrlchild.message.all=All +mrlchild.message.rightTree=Right list shows +mrlchild.message.rightTree.node=Nodes +mrlchild.text.resultChart=Results Scale +mrlchild.text.cycleChart=Last Cycle Result Scale +mrlchild.text.totalChart=Overall Ratio + +#missionResultsStatistics.jsp page +mrs.message.title=Command Execution - Task Results View +mrs.message.brower=The browser does not support inline frames or is configured not to display inline frames. +mrs.button.exportXls=Failure Result Export +mrs.button.back=Return +mrs.message.filePush=File Push +mrs.message.getNonStream=Get Non-streaming Text Data +mrs.message.getStream=Streaming Text Data Acquisition +mrs.message.commandExec=Command Execution +mrs.message.shellRegist=Shell Registration +mrs.message.upgradeDeployment=Upgrade Deployment +mrs.text.loopFlag=Period Tasks +mrs.text.resultView=Mission Results View +mrs.text.pie=Task State Diagram +mrs.text.line=Line Trend Chart +mrs.text.data=Period Statistics +mrs.text.column=Bar Chart + +#missionResultsStatisticsList.jsp page +mrsl.message.title=NMS Task Query +mrsl.text.loopInterval=Period Interval +mrsl.text.to=To +mrsl.text.cycle=Cycle +mrsl.text.successNum=Success +mrsl.text.filedNum=Failures +mrsl.text.downNum=Unreleased +mrsl.text.upNum=Unreported Number +mrsl.text.totalNum=Total +mrsl.text.searchResults=The +mrsl.text.searchResults.cycle=Cycle +mrsl.text.noResult=No Results + +#missionResultsStatisticsListChild.jsp page +mrslc.text.searchResults=The +mrslc.text.searchResults.cycle=Cycle +mrslc.text.noResult=No Results + +#nmstaskInfoList.jsp page +ntil.message.title=NMS Task Query +ntil.message.success=Operation is successful! +ntil.message.faild=Operation failed! +ntil.message.selectOne=Please select a row! +ntil.message.isUpdate=The selected task type is non-upgrade and is not reversible +ntil.message.isConverse=The selected task is an inverse task and cannot be reversed +ntil.message.finished=The selected task has not been completed and is not reversible +ntil.message.haveBackUp=No backup of selected task, irreversible +ntil.message.toSelect=Please select at least one line of record! +ntil.message.isLoopFlag=Contains acyclic tasks. Please reselect! +ntil.message.taskComplete=Contains completed or failed tasks. Please reselect! +ntil.message.taskInEffect=Contains the tasks that are in effect. Please reselect! +ntil.message.taskNotCancelled=The task has not been cancelled yet and cannot be enabled again +ntil.message.operateCautiously=Please use this operation cautiously. Once the task is cancelled, the task can only be enabled again after the task is cancelled\! Please confirm again whether to disable this task\! +ntil.message.disabledTask=Contains disabled tasks. Please reselect! +ntil.message.inputInfo=Input is a special character, please re-enter! +ntil.message.warning=Task operation completed. Continue to maintain data? +ntil.message.hint=Tip +ntil.text.missionName=Task Name +ntil.message.missionName=Please enter the task name +ntil.text.loopFlag=Periodic Tasks +ntil.text.selectDefault=Please Select +ntil.message.timed=Period Tasks +ntil.message.untimed=Acyclic Tasks +ntil.text.missionState=Task Status +ntil.message.missionCreated=Mission created +ntil.message.missionExec=The task has started execution +ntil.message.missionComplete=Mission completed +ntil.message.execFailed=The task failed to execute +ntil.message.revocation=Periodic tasks for revocation +ntil.message.cancellation=Period cancellation +ntil.message.cancelled=Period cancellation of periodic task +ntil.text.missionType=Task Type +ntil.message.missionType1=File Push +ntil.message.missionType4=Command Execution +ntil.message.missionType6=Upgrade Deployment +ntil.text.operation=Operation +ntil.text.isLoop=Periodic Tasks +ntil.text.missionStateDesc=Task Status Description +ntil.text.systemId=Business System +ntil.text.userGroup=User Group +ntil.text.viewLevel=View Permissions +ntil.text.user=Created By +ntil.text.createTime=Created At +ntil.text.resultView=Results View +ntil.text.updateInfo=Modify Information +ntil.message.missionType2=Get Non-streaming text data +ntil.message.missionType3=Streaming Text Data Acquisition +ntil.message.missionType5=Register +ntil.message.Y=Yes +ntil.message.N=No +ntil.message.allSuccess=All successful +ntil.message.partiallySuccess=Partially successful +ntil.message.allFailed=All failed +ntil.message.publisher=Publisher View +ntil.message.publisherGroup=Publisher Group View +ntil.message.allInSys=All People In The System View +ntil.message.noRecord=No Record +ntil.button.exportCurrentPage=Export The Current Page Data +ntil.button.exportAllData=Export All Data +ntil.button.closeWindow=Close The Window +ntil.button.clickToShowInfo=Click On The Task Information + +#nmstaskInfoListChild.jsp page +ntilc.text.resultView=Results View +ntilc.text.updateInfo=Modify Information +ntilc.message.filePush=File Push +ntilc.message.getNonStream=Get Non-streaming Text Data +ntilc.message.getStream=Streaming Text Data Acquisition +ntilc.message.commandExec=Command Execution +ntilc.message.shellRegist=Shell Registration +ntilc.message.upgradeDeployment=Upgrade Deployment +ntilc.message.missionCreated=Mission created +ntilc.message.taskExec=The task has started execution +ntilc.message.completed=Completed +ntilc.message.allSuccess=All succeeded +ntilc.message.partiallySuccess=Partially successful +ntilc.message.allFailed=All failed +ntilc.message.teskFailedExec=The task failed to execute +ntilc.message.revocation=Periodic tasks for revocation +ntilc.message.cancellation=Period cancellation +ntilc.message.cancelled=Period cancellation of periodic task +ntilc.message.publisher=Publisher View +ntilc.message.publisherGroup=Publisher Group View +ntilc.message.allInSys=All People In The System View +ntilc.message.Y=Yes +ntilc.message.N=No + +#nmstaskInfoListParent.jsp page +ntilp.message.title=NMS Task Query +ntilp.message.success=Operation is successful! +ntilp.message.faild=Operation failed! +ntilp.message.selectOne=Please select a row! +ntilp.message.isUpdate=The selected task type is non-upgrade and is not reversible +ntilp.message.isConverse=The selected task is an inverse task and cannot be reversed +ntilp.message.finished=The selected task has not been completed and is not reversible +ntilp.message.haveBackUp=No backup of selected task, irreversible +ntilp.message.isLoopFlag=Contains acyclic tasks. Please reselect! +ntilp.message.isOperation1=Contains completed or failed tasks. Please reselect! +ntilp.message.isOperation2=Contains the tasks that are in effect. Please reselect! +ntilp.message.isOperation3=The task has not been undone and cannot be enabled again +ntilp.message.disabledTask=Contains disabled tasks. Please reselect! +ntilp.message.isOperation4=Please use this operation cautiously. Once the task is cancelled, it can only be enabled again after the task is cancelled\! Please confirm again whether to disable this task\! +ntilp.message.inputInfo=Enter special characters, please re-enter! +ntilp.message.warning=Task operation completed. Continue to maintain data? +ntilp.message.hint=Tip +ntilp.message.operation=Operation +ntilp.text.missionName=Task Name +ntilp.message.missionName=Please enter the task name +ntilp.text.loopFlag=Period Task +ntilp.message.messageDefault=Please Select +ntilp.message.timed=Period Tasks +ntilp.message.untimed=Acyclic Tasks +ntilp.text.missionState=Task Status +ntilp.message.missionState1=Task created +ntilp.message.missionState2=The task has started execution +ntilp.message.missionState3=Completed +ntilp.message.missionState4=The task failed to execute +ntilp.message.missionState5=Periodic tasks for revocation +ntilp.message.missionState6=Period cancellation +ntilp.message.missionState7=Period cancellation of periodic task +ntilp.text.missionType=Task Type +ntilp.message.missionType1=File Push +ntilp.message.missionType4=Command Execution +ntilp.message.missionType6=Upgrade Deployment +ntilp.button.exportXls=Export +ntilp.text.missionStateDesc=Task Status Description +ntilp.text.systemId=Business System +ntilp.text.userGroup=User Group +ntilp.text.viewLevel=View Permissions +ntilp.text.createUser=Created By +ntilp.text.createTime=Created +ntilp.text.resultView=Results View +ntilp.text.updateInfo=Modify Information +ntilp.message.missionType2=Get Non-streaming Text Data +ntilp.message.missionType3=Streaming Text Data Acquisition +ntilp.message.missionType5=Registration +ntilp.message.Y=Yes +ntilp.message.N=No +ntilp.message.missionState30=All succeeded +ntilp.message.missionState32=Partial success +ntilp.message.missionState31=All failed +ntilp.message.publisher=Publisher View +ntilp.message.publisherGroup=Publisher Group View +ntilp.message.allInSys=All People In The System View +ntilp.text.noRecord=No Record +ntilp.button.expordCurrentPage=Export Current Page Data +ntilp.button.expordAllData=Export All Data +ntilp.text.closeWindow=Close Window + +#taskTemplate.jsp page +tt.text.path=Path +tt.message.path=single file, zip, gz compression package +tt.text.delete=Delete +tt.text.destPath=Push Destination +tt.text.isCover=Overwrite +tt.message.Y=Yes +tt.message.N=No +tt.text.username=Owner +tt.text.groupName=Groups +tt.text.permisson=File Permissions +tt.text.coverPath=Overwrite Directory +tt.text.isCreateCover=Create Logo +tt.message.isCreateCoverY=Create +tt.message.isCreateCoverN=Do not create +tt.text.decompression=Uncompression ID +tt.text.absolutePath=Absolute Path +tt.text.relativePath=Relative Path +tt.text.deleteFile=Delete Files +tt.message.deleteFile=Separate multiple files with semicolons +tt.text.backup=Backup +tt.message.addBackup=Add backup parameters +tt.text.pidFile=PID File +tt.text.forceExec=Force Enforcement +tt.text.execParams=Startup Parameters +tt.message.execParams=Multiple parameters are separated by semicolons +tt.text.maxWaitTime=Waiting Time +tt.message.maxWaitTime=Seconds (If it's empty, wait 3 seconds by default) +tt.text.backupFile=Files That Need To Be Backed Up +tt.text.compression=Compression ID +tt.text.backupTo=Path To Backup +tt.text.exceptFile=Exclude File +tt.message.exceptFile=Separate multiple files with semicolons +tt.message.backupTo=Please fill in the relative path +tt.text.execCmd=Startup File Or Command +tt.text.execResult=Execution Result File +tt.text.residentFlag=Resident Memory +tt.text.maxWaitTime1=Maximum Waiting Time +tt.text.returnFlag=Postback ID +tt.text.backFile=Post File +tt.text.source=Source File Or Directory +tt.text.execcommand=Execute Command + + +#WebRoot directory +#page directory +#system directory +#snmpDetecttypeManage directory +################################################## ########### +#addSnmpDetecttypeInfo.jsp page +asdti.message.title=Adding SNMP Monitoring Items +asdti.text.sortName=SNMP Monitoring Category Name +asdti.text.title=Add SNMP Monitoring Items +asdti.text.sortDesc=SNMP Monitoring Category Description +asdti.text.submit=Submit +asdti.text.reset=Reset +asdti.text.back=Back + +#detailSnmpDetecttypeInfo.jsp page +dsdti.text.title=View SNMP Monitoring Items +dsdti.text.sortName=SNMP Monitoring Category Name +dsdti.text.sortDesc=SNMP Monitoring Category Description + +#snmpDetecttypeInfoList.jsp page +sdtil.message.title=SNMP Monitoring Item Management +sdtil.message.success=Operation is successful! +sdtil.message.faild=Operation Failed! +sdtil.message.selectOne=Please select a row! +sdtil.message.delete=Is sure to delete the setting information? +sdtil.text.sortName=SNMP Monitoring Category Name +sdtil.text.index=Serial Number +sdtil.text.sortTypeDesc=SNMP Monitoring Category Description +sdtil.text.noRecord=No Record + +#updateSnmpDetecttypeInfo.jsp page +usdti.message.title=Modify SNMP Monitoring Items +usdti.text.title=Modify SNMP Monitoring Items +usdti.text.sortName=SNMP Monitoring Category Name +usdti.text.sortTypeDesc=SNMP Monitoring Category Description +usdti.text.submit=Submit +usdti.text.reset=Reset +usdti.text.back=Back + + +#WebRoot directory +#page directory +#system directory +#toolManage directory +################################################## ########### +#downLoadTools.jsp page +dlt.message.title=Modify User Information +dlt.text.title=Tool Download +dlt.text.toolName=Tool Name +dlt.text.operation=Operation + +#WebRoot directory +#page directory +#system directory +#usergroup directory +#giveGrouppermission directory +################################################## ########### +#addgroupinfo.jsp page +agi.message.title=Add User Group Information +agi.message.jsFormError=The user group already exists. Please re-enter! +agi.message.jsFormException=Abnormal Operation! +agi.text.jsmc=User Group Name +agi.message.jsmc=There is a special character in the user group name. Please enter it again. +agi.message.sys=Please select a system for this user group! +agi.button.back=Return +agi.text.title=Add User Group Information +agi.text.jsms=User Group Description +agi.text.state=State +agi.text.using=Valid +agi.text.selectSys=Select accessible system +agi.text.systemList=Business System List +agi.button.submit=Submit +agi.button.reset=Reset + +#geivegroupperm.jsp page +ggrp.message.title=Modify user group information +ggrp.message.jsFormError=The user group already exists. Please re-enter! +ggrp.message.jsFormException=Abnormal Operation! +ggrp.text.jsmc=User Group Name +ggrp.message.jsmc=There is a special character in the user group name. Please re-enter it. +ggrp.message.sys=Please select a system for this user group! +ggrp.button.back=Back +ggrp.text.title=Modify user group information +ggrp.text.userGroup=User Group Name +ggrp.message.userGroupDesc=User Group Description +ggrp.text.state=Status +ggrp.message.state0=Active +ggrp.message.state1=Invalid +ggrp.text.systemId=Select Accessible System +ggrp.text.systemList=Business System List +ggrp.button.submit=Submit +ggrp.button.reset=Reset + + +#groupInfoList.jsp page +gil.message.title=User Group Information List +gil.message.success=Operation Successful! +gil.message.faild=Operation Failed! +gil.message.inputInfo=Input is a special character, please re-enter! +gil.message.importFile=Please select the imported file +gil.message.importCorrectFile=Please select the correct import file type +gil.message.sureToImport=Import user groups. Are you sure to import? +gil.message.warning=User group operation completed. Continue to maintain data? +gil.message.hint=Tip +gil.text.userGroup=User Group Name +gil.button.downloadExample=Download Template +gil.text.importXls=Import Excel +gil.button.importXls=Import +gil.button.showDiv=Export +gil.text.index=Serial Number +gil.text.userGroupDesc=User Group Description +gil.text.state=Status +gil.text.operation=Operation +gil.message.state0=Active +gil.message.state1=Invalid +gil.text.updateInfo=Modify Information +gil.text.noRecord=No Record +gil.button.exportCurrentPage=Export Current Page Data +gil.button.exportAllData=Export All Data +gil.button.closeWindow=Close Window + +#viewgrouppermission.jsp page +vgp.message.title=View User Group Information +vgp.button.back=Back +vgp.text.title=User Group Basic Information +vgp.text.userGroup=User Group Name +vgp.text.state=Status +vgp.message.state0=Active +vgp.message.state1=Invalid +vgp.text.userGroupDesc=User Group Description +vgp.text.systemId=Accessible System +vgp.message.systemId=NMS Business System +vgp.text.userGroupInfo=All User Information Under User Group +Bgp.message.brower=The browser does not support inline frames or is configured not to display inline frames. + + +#viewgrouppermissionForGuide.jsp page +vgpmfg.message.title=View User Group Information +vgpmfg.button.back=Return +vgpmfg.text.title=User Group Basic Information +vgpmfg.text.usergroup=User Group Name +vgpmfg.text.state=Status +vgpmfg.message.state0=Active +vgpmfg.message.state1=Invalid +vgpmfg.text.userGroupDesc=User Group Description +vgpmfg.text.systemId=Accessible System +vgpmfg.message.systemId=NMS Business System +vgpmfg.text.userGroupInfo=All User Information In The User Group +vgpmfg.message.brower=The browser does not support inline frames or is configured not to display inline frames. + + +#WebRoot directory +#page directory +#system directory +################################################## ################### +#addDeptInfo.jsp page +adepti.message.title=Adding User Information +adepti.text.deptname=Department Name +adepti.message.deptname=Please select superior department +adepti.message.deptnameExists=This department name already exists +adepti.text.title=Add Department Information +adepti.text.upperlayer=Superior Department +adepti.message.selectDefault=Please Select +adepti.text.deptlayer=Department Level +adepti.message.deptlayer0=The Corps +adepti.message.deptlayer1=Detachment +adepti.message.deptlayer2=Team +adepti.button.submit=Submit +adepti.button.reset=Reset +adepti.button.back=Back + +#addErrorInfo.jsp page +aei.message.title=Add Fault Library +aei.text.troubleCode=Error Code +aei.text.troubleInfo=Failure Name +aei.message.selectSystem=Please select the system +aei.message.MkformError=Error code already exists. Please re-enter! +aei.message.MkformException=Abnormal operation! +aei.button.back=Back +aei.text.title=New Trouble Database Information +aei.text.systeId=Business System +aei.message.systeId=Please select a business system +aei.text.troubleDescr=Error Description +aei.button.submit=Submit +aei.button.reset=Reset + + +#addJsInfo.jsp page +aji.message.title=Add Role Information +aji.text.jsmc=Role Name +aji.message.jsmc=There is a special character in the role name. Please enter it again. +aji.message.mk=Please select a module for this character! +aji.message.jsmcInput=This role name already exists, please re-enter +aji.button.back=Back +aji.text.title=Add Role Information +aji.text.jsms=Action Description +aji.text.state=Status +aji.text.using=Valid +aji.message.selectMk=Select accessible module +aji.message.mkMenu=Module Menu +aji.button.submit=Submit +aji.button.reset=Reset + +#addMkInfo.jsp page +amki.message.title=Add Module Function Information +amki.text.mkjbxx=Module Basic Information +amki.text.mkmc=Module Name +amki.text.mkurl=Module Path +amki.text.mkms=Module Description +amki.text.state=Status +amki.message.state0=Active +amki.message.state1=Invalid + +#addUser.jsp page +au.message.title=Add user information +au.message.yhbh1=Username already exists! +au.text.yhbh=Username +au.message.hasSpecialChar=There are special characters in the user name. Please re-enter it. +au.message.hasZH=Username cannot include Chinese, please re-enter +au.message.onlyNumber=Username cannot be a pure number +au.message.cannotHasZH=Character and numbers are mixed,can not include Chinese +au.text.yhmc=Real Name +au.message.email=E-mail format is incorrect, please re-enter! +au.message.js=Please select at least one character! +au.message.yhz=Please select at least one user group! +au.message.bm=Please select at least one department! +au.button.back=Back +au.text.title=Add User Information +au.text.yhjbxx=User Basic Information +au.text.state=Status +au.text.using=Valid +au.text.reciveEmail=Receive Mail +au.message.Y=Yes +au.message.N=No +au.text.xzjs=Select Role +au.text.select=Select +au.text.selectUser=User Role +au.text.selectUserGroup=Select User Group +au.text.userGroup=User Group +au.text.selectDept=Select Department +au.message.deptMenu=Department Menu +au.button.submit=Submit +au.button.reset=Reset +au.text.language=Language + +#addUserInfo.jsp page +aui.message.title=Adding User Information +aui.text.yhmc=Real Name +aui.text.yhbh=User Name +aui.text.yhmm=User Password +aui.text.confirm=Confirm Password +aui.message.email=E-mail format is incorrect, please re-enter! +aui.message.jsbh=Please select at least one character! +aui.message.deptid=Please select at least one department! +aui.message.confirm=The password and confirmation password are different. Please re-enter! +aui.message.inputInfo=Input is a special character, please re-enter! +aui.text.title=Add User Information +aui.text.baseInfo=User Basic Information +aui.text.selectDept=Select Department +aui.text.select=Select +aui.text.dept=Department Name +aui.text.selectJs=Select Role +aui.text.jsbh=Actor ID +aui.text.jsmc=Role Name +aui.text.state=Status +aui.message.state0=Active +aui.message.state1=Logout +aui.text.selectUserGroup=Select user group +aui.text.userGroupId=User Group ID +aui.text.userGroup=User Group Name +aui.button.submit=Submit +aui.button.reset=Reset +aui.button.back=Return + +#configJsMKGnInfo.jsp page +cjsmkgi.message.title=Role permission configuration +cjsmkgi.text.baseInfo=Role Basic Information +cjsmkgi.text.jsbh=Role ID +cjsmkgi.text.jsmc=Role Name +cjsmkgi.text.state=Status +cjsmkgi.message.state0=Active +cjsmkgi.message.state1=Logout +cjsmkgi.text.mkpromission=Select Module Permissions +cjsmkgi.message.openAll=Open All +cjsmkgi.message.closeAll=Close All +cjsmkgi.text.mkList=Module Information List + +#deptInfoList.jsp page +deptil.message.title=Department Information Management +deptil.message.success=Operation is successful! +deptil.message.faild=Operation failed! +deptil.message.inputInfo=Input is a special character, please re-enter! +deptil.message.deptname=Please enter department name +deptil.text.deptname=Department Name +deptil.button.add=Add +deptil.text.index=Serial Number +deptil.text.deptLevel=Department Level +deptil.text.option=Operation +deptil.message.deptlayer0=The Corps +deptil.message.deptlayer1=Department +deptil.message.deptlayer2=Team +deptil.text.update=Modify +deptil.text.noRecord=No Record + +#errorInfoList.jsp page +eil.message.title=Troubleshoot +eil.button.add=Add +eil.text.index=Serial Number +eil.text.troubleCode=Error Code +eil.text.troubleInfo=Trouble Name +eil.text.troubleDescr=Error Description +eil.text.systemName=System Name +eil.text.createUser=Created By +eil.text.createDate=Created +eil.text.lastUpUser=Modifiers +eil.text.lastUpDate=Modification Time +eil.text.state=Status +eil.text.operation=Operation +eil.message.state0=Active +eil.message.state1=Invalid +eil.text.updateInfo=Modify information +eil.text.noRecord=No Record + +#fourceModifyUserPwd.jsp page +fmup.message.title=Modify user password +fmup.text.yhmm=User Password +fmup.text.confirm=Confirm Password +fmup.message.confirm=The password and confirmation password are different. Please re-enter! +fmup.text.title=Modify Password Information +fmup.text.yhmc=User Name +fmup.message.yhmm=The password must be at least 8 bits long +fmup.button.submit=Submit +fmup.button.reset=Reset +fmup.button.back=Return + +#jsInfoList.jsp page +jsil.message.title=Role Information +jsil.message.seccess=Operation successful! +jsil.message.faild=Operation failed! +jsil.message.inputInfo=Input is a special character, please re-enter! +jsil.text.jsmc=Role Name +jsil.message.jsmc=Please enter a role name +jsil.button.add=Add +jsil.text.index=Serial Number +jsil.text.jsms=Actor Description +jsil.text.state=Status +jsil.text.option=Operation +jsil.message.state0=Active +jsil.message.state1=Invalid +jsil.text.updateInfo=Modify information +jsil.text.noRecord=No Record + +#mkInfoList.jsp page +mil.message.mktitle=Module Information +mil.message.seccess=Operation successful! +mil.message.faild=Operation failed! +mil.message.pid=No Records selected. The added menu will be the first level. Are you sure to add it? +mil.message.selectOne=Please select a record! +mil.message.inputInfo=Input is a special character, please re-enter! +mil.text.mkmc=Module Name +mil.message.mkmc=Please enter module name +mil.text.mkms=Module Description +mil.message.mkms=Please enter module description +mil.text.index=Serial Number +mil.text.mkid=Module number +mil.text.mkurl=Module Path +mil.text.state=Status +mil.text.option=Operation +mil.message.state0=Active +mil.message.state1=Logout +mil.text.update=Modify + +#showImportUserError.jsp page +siue.message.title=Error Information Page +siue.text.title=Error Message +siue.text.yhbh=Username +siue.text.yhmc=Real Name +siue.text.showError=Error Message +siue.text.back=Back + + +#updateDeptInfo.jsp page +udept.message.title=Modify User Information +udept.text.deptname=Department Name +udept.message.deptname=Please select superior department +udept.message.deptnameExists=This department name already exists +udept.text.title=Modify Department Information +udept.text.deptlayer=Department Level +udept.text.upperlayer=Superior Department +udept.message.selectDefault=Please Select +udept.button.submit=Submit +udept.button.reset=Reset +udept.button.back=Back + +#updateErrorInfo.jsp page +uei.message.title=Adding A Fault Library +uei.text.troubleInfo=Trouble Name +uei.message.systemId=Please select the system +uei.button.back=Back +uei.text.title=Modify Fault Library Information +uei.text.troubleCode=Trouble Code +uei.text.systemId=Business System +uei.message.system=Please select a business system +uei.text.troubleDescr=Error Description +uei.text.troubleState=Status +uei.message.troubleState0=Active +uei.message.troubleState1=Invalid +uei.button.submit=Submit +uei.button.reset=Reset + + +#updateJsInfo.jsp page +ujsi.message.title=Modify Role Information +ujsi.text.jsmc=Role Name +ujsi.message.jsmc=There are special characters in the role name. Please enter again. +ujsi.message.mk=Please select a module for this role! +ujsi.message.jsExists=This role name already exists +ujsi.button.back=Return +ujsi.text.title=Modify Role Information +ujsi.text.jsms=Action Description +ujsi.text.state=Status +ujsi.message.state0=Active +ujsi.message.state1=Invalid +ujsi.text.selectMk=Select accessible module +ujsi.text.mkMenu=Module Menu +ujsi.button.submit=Submit +ujsi.button.reset=Reset + + +#updateMkInfo.jsp page +umki.message.title=Modify Module Function Information +umki.text.title=Module Basic Information +umki.text.mkid=Module Number +umki.text.mkmc=Module Name +umki.text.mkurl=Module Path +umki.text.mkms=Module Description +umki.text.state=Status +umki.message.state0=Active +umki.message.state1=Invalid + +#updateSelfInfo.jsp page +usi.message.title=Edit personal information +usi.message.success=Operation is successful! +usi.message.faild=Operation failed! +usi.message.email=E-mail format is incorrect, please re-enter! +usi.message.emailInput=Please enter the email +usi.text.yhmm=User Password +usi.text.confirm=Confirm Password +usi.message.confirm=The password and confirmation password are different. Please re-enter! +usi.text.title=Modify Personal Information +usi.text.yhmc=Username +usi.text.userRole=User Role +usi.text.userDept=User Department +usi.text.emailRecive=Receive Mail +usi.message.Y=Yes +usi.message.N=No +usi.text.isUpdatePwd=Do you want to change the password? +usi.button.submit=Submit +usi.button.reset=Reset + +#updateUser.jsp page +uu.message.title=Modify User Information +uu.text.yhmc=Real Name +uu.message.yhmc=There are special characters in the real name, please enter again +uu.message.email=E-mail format is incorrect, please re-enter +uu.message.js=Please select at least one character! +uu.message.yhz=Please select at least one user group! +uu.message.bm=Please select at least one department! +uu.button.back=Return +uu.text.title=Modify User Information +uu.text.baseInfo=User Basic Information +uu.text.yhbh=Username +uu.text.state=Status +uu.message.state0=Active +uu.message.state1=Invalid +uu.text.isReceiveEmail=Receive mail +uu.message.isReceiveEmail0=Yes +uu.message.isReceiveEmail1=No +uu.text.role=Select Role +uu.message.select=Select +uu.message.userRole=User Role +uu.text.selectUserGroup=Select User Group +uu.text.userGroup=User Group +uu.text.selectDept=Select Department +uu.text.deptMenu=Department Menu +uu.text.submit=Submit +uu.text.reset=Reset + +#updateUserInfo.jsp page +uui.message.title=Modify User Information +uui.text.yhmc=Real Name +uui.message.selectRole=Please select at least one character! +uui.message.deptid=Please select at least one department! +uui.text.title=Modify User Information +uui.text.baseInfo=User Basic Information +uui.text.yhbh=Username +uui.text.state=Status +uui.message.state0=Active +uui.message.state1=Invalid +uui.text.selectDept=Select department +uui.message.select=Select +uui.text.deptName=Department Name +uui.text.selectRole=Select Role +uui.text.roleId=Actor ID +uui.text.roleName=Role Name +uui.message.cancellation=Logout +uui.text.selectUserGroup=Select User Group +uui.text.userGroupId=User Group ID +uui.text.userGroup=User Group Name +uui.text.submit=Submit +uui.text.reset=Reset +uui.text.back=Back + +#updateUserPassword.jsp page +uup.message.title=Modify User Password +uup.text.yhmm=User Password +uup.text.confirm=Confirm Password +uup.message.confirm=The password and confirmation password are different. Please re-enter! +uup.message.yhmc=User Name +uup.button.back=Return +uup.text.title=Modify Password Information +uup.message.password=The password must be at least 8 bits long +uup.text.submit=Submit +uup.text.reset=Reset + +#usersInfoList.jsp page +uil.message.title=User Information Management +uil.message.success=Operation was successful +uil.message.faild=Operation failed! +uil.message.inputInfo=Input is a special character, please re-enter! +uil.message.myFile1=Please select the imported file +uil.message.myFile2=Please select the correct import file type +uil.message.myFile3=Is sure to import? +uil.button.downloadExample=Download Template +uil.text.importUser=Import Users +uil.button.importXls=Import +uil.button.add=Add +uil.text.yhbh=Username +uil.message.yhbh=Please enter user name +uil.text.yhmc=Real Name +uil.message.yhmc=Please input real name +uil.text.index=Serial Number +uil.text.role=User Role +uil.text.dept=User Department +uil.text.createDate=Created +uil.text.state=Status +uil.text.option=Operation +uil.text.updateRecord=Modify Information +uil.text.updatePassword=Change Password +uil.text.noRecord=No Record + + +#WebRoot directory +#page directory +#systemManage directory +#guide directory +################################################## ################### +#configGuide.jsp page +cg.message.title=Add Node Information +cg.text.userGroup=User Group +cg.text.room=Room +cg.text.box=Enclosure +cg.text.nodes=Node Groups/Nodes +cg.text.indecate=Please do the task to 5, do data monitoring, please go to 6 +cg.text.mission=Mission +cg.text.decateType=Detection Category +cg.text.decateDate=Detection Data +cg.text.decateSets=Monitor Settings +cg.message.brower=The browser does not support inline frames or is configured not to display inline frames. + + +#guideIndex.jsp page +gi.message.title=Wizard Settings Page +gi.text.title=NMS Wizard Setup Flowchart + + +#monitorConfig.jsp page +mc.message.title=Add Node Information +mc.message.nodeGroupId=Please select a node group +mc.message.sureNodeExists=Make sure you have the nodes you need +mc.message.toAddNode=Please add node for node group +mc.text.userGroup=User Group +mc.text.room=Room +mc.text.box=Enclosure +mc.text.nodeGroup=Node Groups +mc.text.node=Node +mc.text.decateType=Detection Category +mc.text.decateDate=Detection Data +mc.text.decateSets=Monitoring Settings +mc.message.brower=The browser does not support inline frames or is configured not to display inline frames. + +#taskConfig.jsp page +tc.message.title=Add Node Information +tc.message.nodeGroupId=Please select a node group +tc.message.sureNodeExists=Make sure you have the nodes you need +tc.message.toAddNode=Please add node for node group +tc.text.userGroup=User Group +tc.text.room=Room +tc.text.box=Enclosure +tc.text.nodeGroup=Node Groups +tc.text.node=Node +tc.text.mission=Tasks +tc.message.brower=The browser does not support inline frames or is configured not to display inline frames. + +#WebRoot directory +#page directory +#systemManage directory +#node directory +################################################## ################### +#addNodeInfo.jsp page +ani.message.title=Add Node Information +ani.text.nodeIp=Node IP +ani.text.nodeName=Node Name +ani.text.title=Add Node Information +ani.text.nodeType=Node Type +ani.message.computer=Computer +ani.text.nodeUType=Node Thickness (U-bit) +ani.text.nodeDesc=Node Description +ani.text.nodeState=Node Status +ani.message.nodeState0=Normal +ani.message.nodeState1=Disabled +ani.text.snmpVersion=SNMP Version +ani.text.submit=Submit +ani.text.reset=Reset +ani.text.back=Back + +#nodeInfoList.jsp page +nil.message.title=Node Information +nil.message.success=Operation is successful! +nil.message.faild=Operation failed! +nil.message.importFile=Please select the imported file +nil.message.importCorrectFile=Please select the correct import file type +nil.message.sureToImport=Is sure to import? +nil.message.inputInfo=Input is a special character, please re-enter! +nil.text.nodeName=Node Name +nil.message.nodeName=Please enter the node name +nil.text.nodeDesc=Node Description +nil.message.nodeDesc=Please enter node description +nil.text.importXls=Import Excel +nil.button.importXls=Import +nil.button.add=Add +nil.button.downloadExample=Download Template +nil.button.back=Back +nil.text.index=Serial Number +nil.text.option=Operation +nil.text.nodeIp=Node IP +nil.text.systemId=Owned System +nil.text.nodeGroup=Node Group To Which It Belongs +nil.text.createDate=Created +nil.text.update=Modify +nil.text.stop=Disabled +nil.text.start=Enabled +nil.text.noRecord=No Record + +#showImportError.jsp page +sierr.message.title=Error Information Page +sierr.text.title=Error message +sierr.text.nodeIp=Node IP +sierr.text.nodeName=Node Name +sierr.text.nodeDesc=Node Description +sierr.text.nodeType=Node Type +sierr.text.nodeState=Node Status +sierr.text.showError=Error Message +sierr.button.back=Back + +#updateNodeInfo.jsp page +uni.message.title=Modify Node Information +uni.text.nodeIp=Node IP +uni.text.nodeName=Node Name +uni.text.title=Modify Node Information +uni.text.nodeType=Node Type +uni.message.computer=Computer +uni.message.nodeUType=Node Thickness (U bit) +uni.text.nodeDesc=Node Description +uni.text.nodeState=Node Status +uni.message.nodeState0=Normal +uni.message.nodeState1=Disabled +uni.text.snmpVersion=SNMP Version +uni.text.submit=Submit +uni.text.reset=Reset +uni.text.back=Back + +#WebRoot directory +#page directory +#systemManage directory +#nodegroup directory +################################################## ################### +#addNodegroupInfo.jsp page +angi.message.title=Add Node Group Information +angi.text.groupName=Group Name +angi.text.systemId=Business System +angi.message.noGroupBelong=You do not belong to any user group, no permission to add this type of node group! +angi.message.groupSelect=Please select user group! +angi.text.title=Node Group Basic Information +angi.text.groupType=Group Type +angi.message.groupType0=Normal +angi.message.groupType1=Temp +angi.message.systemId=Please select a business system +angi.text.isValid=Has Taken Effect +angi.message.valid=Effective +angi.message.invalid=Expiration +angi.text.viewLevel=View Permissions +angi.message.publisher=Publisher View +angi.message.publisherGroup=Publisher Group View +angi.message.allInSys=All personnel in the system view +angi.text.usergroup=User Group +angi.message.usergroup=Please select a user group +angi.text.groupDesc=Group Description +angi.text.submit=Submit +angi.text.reset=Reset +angi.text.back=Back + +#detailNodegroupInfo.jsp page +dngi.message.title=View Node Group Information +dngi.text.title=Node Group Basic Information +dngi.text.groupName=Group Name +dngi.text.groupType=Group Type +dngi.message.groupType0=Normal +dngi.message.groupType1=Temp +dngi.text.viewLevel=View Permissions +dngi.message.publisher=Publisher View +dngi.message.publisherGroup=Publisher Group View +dngi.message.allInSys=All People In The System View +dngi.text.isValid=Availability +dngi.message.valid=Effective +dngi.message.invalid=Expired +dngi.text.systemId=Owned System +dngi.text.createTime=Add Time +dngi.text.userGroupIdName=Owned User Group +dngi.text.groupDesc=Group Description +dngi.text.nodeList=All Node Information Under The Node Group +dngi.text.index=Serial Number +dngi.text.nodeIp=Node IP +dngi.text.nodeName=Node Name +dngi.text.nodeDesc=Node Description +dngi.text.nodeState=Node Status +dngi.message.nodeState0=Normal +dngi.message.nodeState1=Disabled +dngi.text.noRecord=No Record +dngi.text.back=Back + +#nodegroupInfoList.jsp page +ngil.message.title=Node Management Information Under Node Group +ngil.message.success=Operation successful! +ngil.message.faild=Operation failed! +ngil.message.updateNodeGroup=Please select a row! +ngil.message.SelectOne=Please select at least one line of record! +ngil.message.includeUnusingNode=Contains node groups that have expired. Please reselect! +ngil.message.startNodeGroup=Included effective node groups, please reselect! +ngil.message.inputInfo=Input is a special character, please re-enter! +ngil.text.groupName=Node Group Name +ngil.message.groupName=Please enter the node group name +ngil.text.index=Serial Number +ngil.text.nodeGroup=Node Groups +ngil.text.nodeGroupType=Group Type +ngil.text.viewLevel=View Permissions +ngil.text.createTime=Created +ngil.text.state=Status +ngil.message.nodeGroupType0=Normal +ngil.message.nodeGroupType1=Temp +ngil.message.publisher=Publisher View +ngil.message.publisherGroup=Publisher Group View +ngil.message.allInSys=All People In The System View +ngil.message.isValid0=Effective +ngil.message.isValid1=Invalid +ngil.text.noRecord=No Record + +#updateNodegroupInfo.jsp page +ungi.message.title=Modify Node Group Information +ungi.text.groupName=Group Name +ungi.text.systemId=Business System +ungi.message.noGroupBelong=You do not belong to any user group. You do not have permission to modify this node group! +ungi.message.selectGroup=Please select user group! +ungi.text.title=Node Group Basic Information +ungi.text.groupType=Group Type +ungi.message.groupType0=Normal +ungi.message.groupType1=Temp +ungi.message.systemId=Please select a business system +ungi.text.isValid=Has Taken Effect +ungi.message.valid=Effective +ungi.message.inValid=Expired +ungi.text.viewLevel=View Permissions +ungi.message.publisher=Publisher View +ungi.message.publisherGroup=Publisher Group View +ungi.message.allInSys=All People In The System View +ungi.text.usergroup=User Group +ungi.message.usergroup=Please select a user group +ungi.text.groupDesc=Group Description +ungi.button.submit=Submit +ungi.button.reset=Reset +ungi.button.back=Return + +#WebRoot directory +#page directory +#systemManage directory +#nodeGroupManage directory +#node directory +################################################## ################### +#addNodeInfo.jsp page +addNodeInfo.message.title=Add node information +addNodeInfo.text.nodeIp=Node IP +addNodeInfo.text.nodeMac=Node MAC +addNodeInfo.text.nNa=Node Name +addNodeInfo.text.nodeBoxIspn=Cabinet Number +addNodeInfo.text.nodeUType=Node Thickness (U-bit) +addNodeInfo.text.nodeBeginUType= Cabinet Start U Bit +addNodeInfo.message.nodeBeginUType=Please select network element type +addNodeInfo.message.nodeGroup=This node group has the same IP +addNodeInfo.message.nodeIp=Node IP already exists +addNodeInfo.message.selectDefault=Please select +addNodeInfo.message.nodeUType=Node thickness (U bit), please enter the number! +addNodeInfo.button.back=Return +addNodeInfo.text.title=Add Node Information +addNodeInfo.text.nodeType=Node Type +addNodeInfo.message.nodeType0=Server +addNodeInfo.message.nodeType1=Network Element +addNodeInfo.text.networElementType=Type Of Network Element +addNodeInfo.text.nodeUserName=Username +addNodeInfo.text.nodePassword=Password +addNodeInfo.message.nodeBoxIspn=Please enter the cabinet number +addNodeInfo.text.snmpVersion=SNMP Version +addNodeInfo.text.nodeIpInfo=Node IP Information +addNodeInfo.text.nodeDesc=Node Description +addNodeInfo.button.submit=Submit +addNodeInfo.button.reset=Reset + +#detailNodeInfo.jsp page +dni.message.title=Node Information +dni.message.nodeType0=No relevant data was collected +dni.message.nodeType1=This node has no data for the switch +dni.button.back=Return +dni.text.title=Node System Information +dni.text.hostName=Host Name +dni.text.operateSystem=Operating System +dni.text.cpuCnt=CPU Number +dni.text.cpuMhz=CPU Clock (MHz) +dni.text.memorySize=Memory Size (GB) +dni.text.diskSize=Hard Disk Size (GB) +dni.text.swapSize=Size of SWAP +dni.text.netCnt=Number of NICs +dni.text.dataCheckTime=Information Collection Time +dni.text.dataArriveTime=Information Storage Time +dni.text.diskInfo=Hard Disk Details +dni.message.noDataGetFromDisk=No hard disk data was collected +dni.text.index=Serial Number +dni.text.diskRang=Hard Disk Partition +dni.text.rangSize=Partition Size (G) +dni.text.netInfo=Network Card Details +dni.message.noDataGetFromNet=No NIC data was collected +dni.text.netName=NIC Name +dni.text.netState=NIC Status +dni.text.netSpeed=Card Bandwidth (unit: Mbps) +dni.text.netSubmask=Subnet Mask +dni.text.netGateway=Gateway +dni.text.netMac=MAC Address + + +#nodeInfoList.jsp page +nodeInfo.message.title=Node Information +nodeInfo.message.success=Operation successful! +nodeInfo.message.faild=Operation failed! +nodeInfo.message.selectFile=Please select the imported file +nodeInfo.message.selectFileType=Please select the correct import file type +nodeInfo.message.isImport=Import the node. Are you sure to import it? +nodeInfo.message.inputInfo=Input is a special character, please re-enter! +nodeInfo.message.warning=A node operation is completed. Continue to maintain data? +nodeInfo.message.hint=Tip +nodeInfo.button.downloadExample=Download Template +nodeInfo.text.importXls=Import Excel +nodeInfo.button.importXls=Import +nodeInfo.button.showDiv=Export +nodeInfo.button.back=Return +nodeInfo.button.add=Add +nodeInfo.text.nodeIp=Node IP +nodeInfo.message.nodeIp=Please enter node IP +nodeInfo.text.nodeName=Node Name +nodeInfo.message.nodeName=Please enter the node name +nodeInfo.text.index=Serial Number +nodeInfo.text.nodeType=Node Type +nodeInfo.text.nodeHight=Node Height +nodeInfo.text.systemId=Owned System +nodeInfo.text.nodeGroup=Owned Node Group +nodeInfo.text.createTime=Created At +nodeInfo.text.operation=Operation +nodeInfo.message.specialDevice=Network Element: Special Device +nodeInfo.message.diskArray=Network Element: Disk Array +nodeInfo.message.blockRouter=Network Element: Block Router +nodeInfo.message.netElements=Other Network Elements +nodeInfo.text.server=Server +nodeInfo.text.updateInfo=Modify Information +nodeInfo.message.downline=Downline +nodeInfo.message.online=Online +nodeInfo.text.systemInfo=System Information +nodeInfo.text.nodeState0=Downline +nodeInfo.text.nodeState1=Online +nodeInfo.text.noRecord=No Record +nodeInfo.button.emportCurrentXls=Export The Current Page Data +nodeInfo.button.emportAllXls=Export All Data +nodeInfo.text.closeWindow=Close Window + +#nodeInfoListIn.jsp page +nili.message.title=Node Information +nili.message.inputInfo=Input is a special character, please re-enter! +nili.text.nodeState=Online Status +nili.message.selectDefault=Please Select +nili.message.downline=Downline +nili.message.online=Online +nili.text.nodeIp=Node IP +nili.message.nodeIp=Please enter node IP +nili.text.nodeName=Node Name +nili.message.nodeName=Please enter the node name +nili.text.index=Serial Number +nili.text.nodeType=Node Type +nili.text.nodeHight=Node Height +nili.text.systemId=Owned System +nili.text.nodeGroup=Node Group To Which It Belongs +nili.text.createTime=Created +nili.message.specialDevice=Network Element: Special Device +nili.message.diskArray=Network Element: Disk Array +nili.message.blockRouter=Network Element: Block Router +nili.message.netElements=Other Network Elements +nili.text.server=Server +nili.text.noRecord=No Record + +#showImportError.jsp page +showErr.message.title=Error Information Page +showErr.text.title=Error message +showErr.text.nodeIp=Node IP +showErr.text.nodeName=Node Name +showErr.text.nodeDesc=Node Description +showErr.text.nodeType=Node Type +showErr.text.nodeState=Node Status +showErr.text.showError=Error message +showErr.button.back=Back + +#updateNodeInfo.jsp page +updatenode.message.title=Modify Node Information +updatenode.text.nodeIp=Node IP +updatenode.text.nodeMac=Node MAC +updatenode.text.nNa=Node Name +updatenode.text.nodeBoxIspn=Cabinet Number +updatenode.text.nodeUType=Node Thickness (U-bit) +updatenode.text.nodeBeginUType=Enclosure Start U Bit +updatenode.message.nodeBeginUType=Please select network element type +updatenode.message.selectDefault=Please Select +updatenode.message.nodeUType=Node thickness (U bit), please enter the number! +updatenode.message.nodeIsExists=Node IP already exists +updatenode.message.nodeRepeat=The node group has the same IP +updatenode.buttone.back=Back +updatenode.text.title=Modify Node Information +updatenode.text.nodeType=Node Type +updatenode.message.nodeType0=Server +updatenode.message.nodeType1=Network Element +updatenode.text.networElementType=Type Of Network Element +updatenode.text.nodeUsername=Username +updatenode.text.nodePassword=Password +updatenode.message.nodeBoxIspn=Please enter the cabinet number +updatenode.text.snmpVersion=SNMP Version +updatenode.text.nodeIpInfo=Node IP Information +updatenode.text.nodeDesc=Node Description +updatenode.text.nodeState=Node Status +updatenode.message.online=Online +updatenode.message.downline=Offline +updatenode.button.submit=Submit +updatenode.button.reset=Reset + +#nodegroupInfoList.jsp page +nginfo.message.title=Node Group Information +nginfo.message.success=Operation is successful! +nginfo.message.faild=The operation failed! +nginfo.message.groupInfo=Node Group Information +nginfo.message.nodeGroupId=Please select a node group to be modified in the menu! +nginfo.message.editGroupInfo=Modify Node Group Information +nginfo.message.addGroupInfo=New Node Group Information +nginfo.message.selectParent=Please select a parent node group in the menu! +nginfo.message.addSubNode=Add child node group information +nginfo.text.addSubNode=Group Name +nginfo.message.inputGroupName=There are special characters in the group name, please re-enter +nginfo.text.systemId=Business System +nginfo.message.startNodeGroup1=Please select at least one row! +nginfo.message.startNodeGroup2=Included effective node groups, please reselect! +nginfo.message.startNodeGroup3=An attempt was made to enable a node group whose parent node group is invalid, so it cannot be started. Please reselect! +nginfo.message.warning=Whether its child node group is enabled at the same time? +nginfo.message.hint=Tip +nginfo.message.nodeManage1=Please select a row! +nginfo.message.nodeManage2=The selected record is a non-leaf node group! +nginfo.message.nodeManageInDetail1=Please select a row! +nginfo.message.nodeManageInDetail2=The selected record is a non-leaf node group! +nginfo.error.selectFile=Please select the imported file +nginfo.error.selectFileType=Please select the correct import file type +nginfo.error.isImport=Import node group, are you sure to import? +nginfo.message.warning1=Node group operation completed. Continue to maintain data? +nginfo.button.downloadExample=Download Template +nginfo.text.importXls=Import Excel +nginfo.button.importXls=Import +nginfo.button.showDiv=Export +nginfo.text.nodeGroup=Node Groups +nginfo.text.ShowStopNGroup=Show Offline Node Groups +nginfo.text.nodeGroupInfo=Node Group Information +nginfo.message.nodeGroupList= Node Groups List +nginfo.button.addSubNodeGroup=Add Child Group +nginfo.button.update=Modify +nginfo.button.mngNode=Node Management +nginfo.text.title=New Node Group Information +nginfo.text.groupName=Group Name +nginfo.text.groupType=Group Type +nginfo.message.groupType0=Normal +nginfo.message.groupType1=Temp +nginfo.message.systemId=Please select a business system +nginfo.text.isValid=Has Taken Effect +nginfo.message.isValid1=Effective +nginfo.message.isValid0=Invalid +nginfo.text.groupDesc=Group Description +nginfo.button.submit=Submit +nginfo.button.reset=Reset +nginfo.button.back=Back +nginfo.message.brower=The browser does not support inline frames or is configured not to display inline frames. + +#toSelectNodeAndNodeGroup.jsp page +tsnang.message.title=Node Group Information +tsnang.message.netElement=This monitoring category setting cannot be targeted for network elements +tsnang.text.netElement=Network Element +tsnang.text.server=Server +tsnang.message.selectOne=Please select at least one line of record! +tsnang.message.selectNodeGroup=Please select at least one node group with nodes! +tsnang.message.muchNode=Too many nodes selected, operation cannot continue +tsnang.message.onlyServer=The task can only be added to the server +tsnang.message.noRecord=No Record +tsnang.text.selectNodeGroup=Node Group Selection +tsnang.text.setDisabled=By Node Group +tsnang.text.setNoDisabled=By Node +tsnang.text.index=Serial Number +tsnang.text.nodeGroup=Node Groups +tsnang.text.nodeIp=Node IP +tsnang.text.nodeType=Type +tsnang.text.selectAll=Select All +tsnang.text.reverse=Reverse +tsnang.text.operateSystem=Operating System +tsnang.text.noRecord=No Record +tsnang.message.dcControlIp=The following nodes are not included in the DC management IP +tsnang.message.nodeName=Node Name +tsnang.button.submit=Submit +tsnang.button.close=Close + +#toSelectNodeGroup.jsp page +tsng.message.title=Node Group Information +tsng.message.selectOne=Please select at least one row! +tsng.button.select=Select +tsng.button.close=Close +tsng.button.nodeGroup=Node Group Selection + + +#WebRoot directory +#page directory +#systemManage directory +#server directory +################################################## ################### +#addserverinfo.jsp page +asi.message.title=Add Server Information +asi.message.hasIp=The server name or IP already exists and cannot be duplicated. Please modify it. +asi.message.faild=Abnormal operation! +asi.text.serverName=Server Name +asi.text.serverDesc=Server Description +asi.text.serverIp=Server IP +asi.message.serverName=There are special characters in the server name. Please re-enter it. +asi.text.startIP=Start IP +asi.text.endIP=End IP +asi.message.ipRang=Start IP should not be greater than the end IP +asi.message.delete=Delete +asi.message.ipRepeat=IP Cross-repeat +asi.message.ipRepeat.and=And +asi.message.ipRepeat.with=With +asi.button.back=Return +asi.text.title=Adding Server Information +asi.text.configIp=Configuration Manage IP +asi.message.configIp=Configure IP +asi.message.getIp=Allocated IP +asi.button.add=Add +asi.message.state0=Status: Active +asi.message.state1=Status: Invalid +asi.button.submit=Submit +asi.button.reset=Reset + +#detailserverinfo.jsp page +dsi.message.title=Add Business System Information +dsi.button.back=Return +dsi.text.title=Server Information +dsi.text.serverName=Server Name +dsi.text.serverDesc=Server Description +dsi.text.serverIp=Server IP +dsi.text.serverState=Server Status +dsi.message.serverState0=Enabled +dsi.message.serverState1=Disabled +dsi.text.configIp=Configuration Manage IP + +#serverInfoList.jsp page +serverinfo.message.title=DataController Management +serverinfo.message.success=Operation successful! +serverinfo.message.faild=Operation failed! +serverinfo.message.selectOne=Please select a row! +serverinfo.message.includeStop=Contains disabled business systems. Please reselect! +serverinfo.message.includeStart=Contains enabled business systems. Please reselect! +serverinfo.message.inputInfo=Input is a special character, please re-enter! +serverinfo.message.selectFile=Please select the imported file +serverinfo.message.selectFileType=Please select the correct import file type +serverinfo.message.isImport=Import DC, are you sure to import? +serverinfo.message.selectFile1=Please select the imported file +serverinfo.message.selectFileType1=Please select the correct import file type +serverinfo.message.isImport1=Import the node. Are you sure to import it? +serverinfo.text.serverName=Server Name +serverinfo.message.serverName=Please enter the server name +serverinfo.text.serverIp=Server IP +serverinfo.message.serverIp=Server IP +serverinfo.button.downloadExample=Download Template +serverinfo.text.importXls=Import Excel +serverinfo.button.importXls=Import +serverinfo.button.showDiv=Export +serverinfo.text.index=Serial Number +serverinfo.text.createTime=Created At +serverinfo.text.isOnline=Online +serverinfo.text.configIp=Configuration Manage IP +serverinfo.message.Y=Yes +serverinfo.message.N=No +serverinfo.button.downloadExampleUpdate=Download Template +serverinfo.button.showDiv1=Import +serverinfo.button.emportXlsUpdate=Export +serverinfo.text.noRecord=No Record +serverinfo.button.emportCurrentXls=Export The Current Page Data +serverinfo.button.emportAllXls=Export All Data +serverinfo.text.closeWindow=Close Window +serverinfo.button.importXlsAdd=Incremental import +serverinfo.button.importXlsAll=Full import + +#updateserverinfo.jsp page +upserver.message.title=Modify Server Information +upserver.message.repeat=The server name or IP already exists and cannot be duplicated. Please modify it. +upserver.message.faild=Abnormal operation! +upserver.text.serverName=Server Name +upserver.text.serverDesc=Server Description +upserver.message.serverName=There are special characters for the server name. Please re-enter it. +upserver.text.serverIp=Server IP +upserver.text.startIP=Start IP +upserver.text.endIP=End IP +upserver.message.ipInfo=The starting IP should not be greater than the ending IP +upserver.message.delete=Delete +upserver.message.ipRepeat=IP Cross-replication +upserver.message.ipRepeat.and=And +upserver.message.ipRepeat.with=With +upserver.button.back=Return +upserver.text.title=Modify Server Information +upserver.text.serverState=Server Status +upserver.text.configIp=Configuration Manage IP +upserver.message.configIp=Configure IP +upserver.message.hasip=Allocated IP +upserver.button.add=Add +upserver.message.state0=Status: Active +upserver.message.state1=Status: Invalid +upserver.button.submit=Submit +upserver.button.reset=Reset + + +#WebRoot directory +#page directory +#systemManage directory +################################################## ################### +#addSystemInfo.jsp page +addsysinfo.message.title=Add Business System Information +addsysinfo.message.sysExists=The system already exists. Please re-enter! +addsysinfo.message.faild=Abnormal operation! +addsysinfo.text.systemName=System Name +addsysinfo.text.systemDesc=System Description +addsysinfo.text.systemIp=Register IP +addsysinfo.text.systemPort=Register Port +addsysinfo.message.systemName=There are special characters in the system name. Please re-enter it. +addsysinfo.button.back=Return +addsysinfo.text.title=Add Business System Information +addsysinfo.text.isMaster=Master/Subsystem +addsysinfo.text.master=Main Control System +addsysinfo.text.slave=Subsystem +addsysinfo.text.isOnline=Online +addsysinfo.message.Y=Yes +addsysinfo.text.selectUserGroup=Select user group +addsysinfo.text.userGroupList=User Group List +addsysinfo.text.submit=Submit +addsysinfo.text.reset=Reset + +#detailSystemInfo.jsp page +detailsys.message.title=Network Management System +detailsys.button.back=Back +detailsys.text.title=Business System Basic Information +detailsys.text.systemName=System Name +detailsys.text.systemDesc=System Description +detailsys.text.systemCreatetime=Add time +detailsys.text.systemState=System State +detailsys.message.systemState0=Enabled +detailsys.message.systemState1=Disabled +detailsys.text.isMaster=(Master/Child) System +addsysinfo.text.sysUserGroup=User Group under Business System +addsysinfo.text.openAll=Open All +addsysinfo.text.closeAll=Close all +addsysinfo.message.showTipMsg=user group: A set of users who have permission to operate related functions of the business system. Users in the same user group have all rights of the user group. A user group can belong to multiple business systems, and a business system can also contain multiple user groups. +addsysinfo.message.brower=The browser does not support inline frames or is configured not to display inline frames. +addsysinfo.message.showTipMsg2=Node group: Each node of a business system is grouped according to certain features, such as function and region, each node group contains N nodes, each node can belong to multiple node groups, but one node group can not belong to multiple systems. + +#groupNodeList.jsp page +gnl.message.title=Node information under node group +gnl.text.index=Serial Number +gnl.text.nodeIp=Node IP +gnl.text.nodeName=Node Name +gnl.text.nodeDesc=Node Description +gnl.text.createTime=Add time +gnl.text.nodeState=Node Status +gnl.message.nodeState0=Normal +gnl.message.nodeState1=Disabled +gnl.text.noRecord=No Record + +#groupUserList.jsp page +gul.message.title=User information under user group +gul.text.index=Serial Number +gul.text.userId=User ID +gul.text.username=User Name +gul.text.createTime=Created At +gul.text.isVaild=Effective +gul.message.isVaild0=Active +gul.message.isVaild1=Invalid +gul.text.noRecord=No Record + +#groupUserListForGuide.jsp page +gulfg.message.title=User information under user group +gulfg.text.index=Serial Number +gulfg.text.userId=User ID +gulfg.text.username=User Name +gulfg.text.createTime=Created At +gulfg.text.isVaild=Effective +gulfg.message.isVaild0=Active +gulfg.message.isVaild1=Invalid +gulfg.text.noRecord=No Record + +#systemInfoList.jsp page +sysinfolist.message.title=Business System Management +sysinfolist.message.success=Operation is successful! +sysinfolist.message.faild=Operation failed! +sysinfolist.message.selectOne=Please select a row record! +sysinfolist.message.includeStop=Contains disabled business systems. Please reselect! +sysinfolist.message.includeStart=Contains enabled business systems. Please reselect! +sysinfolist.message.inputInfo=Enter special characters, please re-enter! +sysinfolist.message.warning=Business system operation completed. Continue to maintain data? +sysinfolist.message.hint=Tip +sysinfolist.text.systemName=System Name +sysinfolist.message.systemName=Please enter the system name +sysinfolist.text.systemDesc=System Description +sysinfolist.message.systemDesc=Please enter a system description +sysinfolist.text.index=Serial Number +sysinfolist.text.isMaster=Master/Subsystem +sysinfolist.text.createTime=Created +sysinfolist.text.isOnline=Online +sysinfolist.text.master=Main Control System +sysinfolist.text.slave=Subsystem +sysinfolist.message.Y=Yes +sysinfolist.message.N=No +sysinfolist.text.noRecord=No Record + + +#updateSystemInfo.jsp page +upsysinfo.message.title=Modify Business System Information +upsysinfo.message.repeat=The system already exists. Please re-enter! +upsysinfo.message.faild=Abnormal operation! +upsysinfo.text.systemName=System Name +upsysinfo.text.systemDesc=System Description +upsysinfo.message.systemName=There are special characters in the system name. Please re-enter it. +upsysinfo.button.back=Return +upsysinfo.text.title=Modify Business System Information +upsysinfo.text.isMaster=Master/Subsystem +upsysinfo.text.master=Main Control System +upsysinfo.text.slave=Subsystem +upsysinfo.text.isOnline=Online +upsysinfo.message.Y=Yes +upsysinfo.message.N=No +upsysinfo.text.selectUser=Select User Group +upsysinfo.message.selectUser=User Group List +upsysinfo.button.submit=Submit +upsysinfo.button.reset=Reset + + + +#check_type_info +#Tue Apr 17 17:35:58 CST 2018 +check_type_info.memory.CHECK_TYPE_NAME1=Memory Monitor +check_type_info.systemdate.CHECK_TYPE_NAME1=Clock Synchronization Monitoring +check_type_info.systeminfo.CHECK_TYPE_NAME1=System Basic Information +check_type_info.dpSystem.CHECK_TYPE_NAME1=Dip +check_type_info.dpSystemPowerEntry.CHECK_TYPE_NAME1=DP Power +check_type_info.SNMP_TRAP.TABLE_DESC=Snmp trap (snmp active alarm information table) presets +check_type_info.process.TABLE_DESC=Default Process Information +check_type_info.NMSClient.TABLE_DESC=Agent monitoring service starts monitoring task list +check_type_info.systeminfo.TABLE_DESC=Server System Information +check_type_info.switchport.CHECK_TYPE_NAME1=Switch Monitoring +check_type_info.net.CHECK_TYPE_NAME1=Network Condition Monitoring +check_type_info.SYSTEM.TABLE_DESC=Get target host basic xinxi +check_type_info.disk.CHECK_TYPE_NAME1=Hard Disk Monitoring +check_type_info.dpSystemStatus.CHECK_TYPE_NAME1=DP System Status +check_type_info.dpSystemFanEntry.CHECK_TYPE_NAME1=DP Fan +check_type_info.SNMP_TRAP.CHECK_REMARK=Snmp trap (snmp active alarm information table) preset table, cannot be modified +check_type_info.NMSClient.CHECK_TYPE_NAME1=Handshake Monitoring +check_type_info.PING.CHECK_TYPE_NAME1=PING Monitoring +check_type_info.dpSlotEntry.CHECK_TYPE_NAME1=DP Device Board Slot +check_type_info.cpu.CHECK_TYPE_NAME1=CPU Monitoring +check_type_info.dpBoardStatusEntry.CHECK_TYPE_NAME1=DP Board Temperature +check_type_info.process.CHECK_TYPE_NAME1=Process Monitoring +#data_police_relation +#Tue Apr 17 17:37:19 CST 2018 +data_police_relation.2.POLICE_SHOW_INFO=Service Node NC is not available +POLICE_UNIT=Unreachable +#detection_set_info +#Tue Apr 17 17:38:53 CST 2018 +detection_set_info.nmsclient.PROCESS_IDEN_NAME=NC Communication Monitoring +detection_set_info.switchport.PROCESS_IDEN_NAME=Switch Port Monitoring +detection_set_info.net.PROCESS_IDEN_NAME=Network Monitoring +detection_set_info.systemdate.PROCESS_IDEN_NAME=Clock Synchronization Monitoring +detection_set_info.memory.PROCESS_IDEN_NAME=Memory Monitoring +detection_set_info.SYSTEM.PROCESS_IDEN_NAME=Network Element System Information +detection_set_info.servicessysinfo.PROCESS_IDEN_NAME=Server System Information +detection_set_info.cpu.PROCESS_IDEN_NAME=CPU Monitoring +detection_set_info.DPPOWER.PROCESS_IDEN_NAME=DP Power Supply 1 +detection_set_info.DPFAN.PROCESS_IDEN_NAME=DP Fan +detection_set_info.dpslotentry.PROCESS_IDEN_NAME=Dip Equipment Board Slot +detection_set_info.disk.PROCESS_IDEN_NAME=Disk Monitoring +#device_brand_info +#Tue Apr 17 17:40:30 CST 2018 +device_brand_info.ZTE.device_rand_name=ZTE +device_brand_info.DPtech.device_brand_desc=Dip +device_brand_info.H3C.device_rand_name=Hua San +device_brand_info.ZTE.device_brand_desc=ZTE +device_brand_info.HUAWEI.device_brand_desc=Huawei +device_brand_info.HUAWEI.device_rand_name=Huawei +device_brand_info.DPtech.device_rand_name=Dip Split Device +device_brand_info.H3C.device_brand_desc=Hua San +#device_type_info +#Tue Apr 17 17:40:30 CST 2018 +device_type_info.device_desc.DPX8000-A12=Segmentation Device +device_type_info.device_desc.MPUA=MPUA The main control board plays a leading role in the DPX8000 series of products and implements the system's initial configuration, management, and control message processing. +device_type_info.device_desc.PF4XPS8XGES-E=The distribution service board (PF4XPS8XGES-E) is inserted into the service slot and provides four XFP 10GE POS optical ports and eight 10GE optical ports (SFP+). +device_type_info.device_desc.8XGEP-D=The interface board (8XGEP-D) is inserted in the service slot and provides eight XFP 10GE Ethernet optical interfaces. +device_type_info.device_desc.defaultSlot=Default Slot +device_type_info.device_desc.slot=Slot +device_type_info.device_desc.port=Port +device_type_info.device_desc.boardDefaultPort=Default port of the main control board +device_type_info.device_desc.switch=Switch +device_type_info.device_desc.switchPort=Switch Port +device_type_info.device_desc.fanLight=Fan Indicator +device_type_info.device_desc.fanLight1=Fan Indicator (Temporarily Unused) +device_type_info.device_desc.sourceLight=Power Indicator +device_type_info.device_desc.MPUA_SUB=Virtual Third-level Device (for test) +device_type_info.device_desc.whiteBoard=Blank Version +device_type_info.device_desc.ZXR10-T240G=ZTE T240G +device_type_info.device_desc.ZXR10-T240G-BLANK=ZTE Blank Board +device_type_info.device_desc.BLANK=Blank Card +device_type_info.device_desc.control=Control Card +device_type_info.device_desc.board=Board Card +device_type_info.device_desc.box=Frame +device_type_info.device_desc.controlBoard=Control Board +device_type_info.device_desc.SR6602=H3C SR6602 Blocking Routers +device_type_info.device_desc.PF4XPS12XGES-4P12E=Dip can be equipped with 4 cards, 4 POS ports and 12 GE ports +device_type_info.device_desc.controlSlot=Mainboard Slot +device_type_info.device_desc.10GBASE-R=Flow distribution board (10GBASE-R), inserted in the service slot, providing 48 tengige interfaces +device_type_info.device_desc.N-MPUA=The N-MPUA main control board plays a leading role in DPX19000 series products, and implements the system's initial configuration, management, and control message processing. + +#metadata +#Tue Apr 17 18:06:30 CST 2018 +metadata.SWAP_SIZE.filed_comments=SWAP Size (Units:: G) +metadata.sysContact.table_comments=Get Target Host Basic Information +metadata.OPERATE_SYSTEM.filed_comments=Operating System And Release Version +metadata.dpSlotIsMain.filed_comments=If the device board is a motherboard +metadata.ifOutOctets.filed_comments=Number Of Output Bytes +metadata.TX_DROPPED.filed_comments=Number of packets discarded when sent +metadata.TX_ERRORS.filed_comments=Errors when sending packets +metadata.ifInOctets.filed_comments=Bytes Received +metadata.CPU_USED_PERC.filed_comments=Process CPU Usage +metadata.ifPhysAddress.filed_comments=Mac Address +metadata.TOTAL_DISK_SIZE.filed_comments=Disk Total Capacity (G) +metadata.dpCpuRatio30s.filed_comments=CPU utilization within 30 seconds +metadata.CPU_CNT.filed_comments=CPU Cores +metadata.PRO_START_TIME.filed_comments=Process Start Time +metadata.ifOutNUcastPkts_t1.filed_comments=Non-unidirectional Data Packets +metadata.ifOutDiscardsPerc.filed_comments=Output Packet Loss Rate +metadata.sysLocation.table_comments=Get Target Host Basic Information +metadata.dpSession.filed_comments=Number Of Sessions +metadata.DISK_SIZE.filed_comments=The Total Size Of The Hard Disk(Units::G) +metadata.ifInOctets_t1.filed_comments=Bytes Received +metadata.Data_64_FLag.filed_comments=64-bit Data Identifier +metadata.TX_DROP_PERC.filed_comments=Send Packet Loss Rate +metadata.dpCpuRatioAverage.filed_comments=Average CPU Utilization +metadata.NET_CNT.filed_comments=Logical NICs +metadata.sysServices.table_comments=Get Target Host Basic Information +metadata.RX_PACKETS.filed_comments=Total Number Of Packages Received +metadata.dpCpuRatioPeak.filed_comments=Peak CPU Utilization +metadata.dpSlotStatus.filed_comments=Status Of Device Slot +metadata.ifInDiscardsPerc.filed_comments=Enter Packet Loss Rate +metadata.RX_BPS.filed_comments=Input bps (Unit:bps) +metadata.dpMemRatio.filed_comments=Memory Utilization +metadata.TX_ERRORS_PERC.filed_comments=Send Error Packet Rate +metadata.ifOutErrors.filed_comments=Outbound Failed Packets +metadata.PACKETS_LOST_RATE.filed_comments=Packet Loss Rate +metadata.TIME_CONSUMING_MAX.filed_comments=Maximum Elapsed Time (In Milliseconds) +metadata.ifLastChange.filed_comments=Status Change Time +metadata.INOCTETSSPEED.filed_comments=Input Speed +metadata.WAIT_CPU_PERC.filed_comments=Current Waiting Rate (wa%) +metadata.ifInErrors.filed_comments=Inbound Error Packets +metadata.OUTERRORSSCALE.filed_comments=Output Error Packet Rate +metadata.SYS_USED_CPU_PERC.filed_comments=System Utilization (sy%) +metadata.sysDescr.table_comments=Get Target Host Basic Information +metadata.dpMemRatioAverage.filed_comments=Average Memory Utilization +metadata.FREE_DISK_SIZE.filed_comments=Disk Free Capacity (G) +metadata.outPktsSpeed.filed_comments=Package Rate +metadata.ifOutQLen.filed_comments=The Length Of The Output Packet Arrangement (intra-packet) +metadata.RX_PPS.filed_comments=Input pps (Packets received per second) +metadata.ifAdminStatus.filed_comments=Management Status +metadata.DETECT_DATE.filed_comments=Monitor Time +metadata.dpCpuTemperature.filed_comments=CPU Temperature +metadata.ifInNUcastPkts.filed_comments=Admitted Non-unidirectional Transport Packets +metadata.sysUpTime.table_comments=Get Target Host Basic Information +metadata.FREE_MEMORY_SIZE.filed_comments=Free Memory (freeG) +metadata.MEMORY_SIZE.filed_comments=Memory Size (unit: G) +metadata.SEND_TIME.filed_comments=Send Time +metadata.TX_BYTES.filed_comments=Total Bytes Sent +metadata.ifHighSpeed.filed_comments=Port Rate Units (Mbps) +metadata.dpMainboardTemperature.filed_comments=Board Temperature +metadata.ifInUcastPkts.filed_comments=Acknowledged Unidirectional Transport Packets +metadata.DELAY_TIME.filed_comments=Delay Time +metadata.dpCpuRatio.filed_comments=CPU Utilization +metadata.SEND_INFO.filed_comments=Send Information +metadata.PACKETS_LOST.filed_comments=Number Of Lost Packets +metadata.USER_USED_CPU_PERC.filed_comments=User Usage (us%) +metadata.NICE_PERC.filed_comments=User Space Process CPU Occupancy Ratio (ni%) +metadata.ifType.filed_comments=Port Type +metadata.PACKETS_RECEIVED.filed_comments=Number Of Accepted Packages +metadata.DISK_ISWRITE.filed_comments=Whether The Disk Is Writable +metadata.ifInNUcastPkts_t1.filed_comments=Admitted non-unidirectional transport packets +metadata.ifOutDiscards.filed_comments=Outgoing Dropped Packets +metadata.PACKETS_SEND.filed_comments=Number Of Packets Sent +metadata.dpMemRatioPeak.filed_comments=Peak Memory Usage +metadata.TX_BPS.filed_comments=Output bps (Unit:bps) +metadata.ifOutOctets_t1.filed_comments=Number Of Output Bytes +metadata.RX_BYTES.filed_comments=Total Received Bytes +metadata.NAME.filed_comments=NIC Name +metadata.TOTAL_USED_PERC.filed_comments=Total Usage (%) +metadata.TIME_CONSUMING_AVER.filed_comments=Average Time (In Milliseconds) +metadata.MEM_USED_PERC.filed_comments=\ Memory Usage Of The Process +metadata.TX_PACKETS.filed_comments=Total Number Of Packages Sent +metadata.dpSlotDesc.filed_comments=Description Of Device Hot Swappable Board +metadata.dpSlotPortNum.filed_comments=Number Of Ports On The Device Hot-pluggable Board +metadata.SIZE_STOREDINPAGING_FILES.filed_comments=Total Swap Space (SwaptotalG) +metadata.CPU_MHZ.filed_comments=Frequency +metadata.USED_DISK_PERC.filed_comments=Disk Usage (%) +metadata.PROC_PRIORITY.filed_comments=Priority Of The Process +metadata.USED_MEMORY_PERC.filed_comments=Memory Usage (%) +metadata.ifInUcastPkts_t1.filed_comments=Acknowledgment Unidirectional Transport Packets +metadata.FREE_SPACE_INPAGING_FILES.filed_comments=Available Swap Space (SwapfreeG) +metadata.dpCpuRatio5min.filed_comments=CPU utilization in 300 seconds +metadata.dpSlotType.filed_comments=Type Of Device Hot-pluggable Board +metadata.RX_DROPPED.filed_comments=Number Of Packets Discarded Upon Receipt +metadata.sysName.table_comments=Get Target Host Basic Information +metadata.OUTOCTETSSPEED.filed_comments=Output Speed +metadata.TOTAL_MEMORY_SIZE.filed_comments=Total Memory (TotalG) +metadata.ifInUnknownProtos.filed_comments=Inbound Unknown Packets +metadata.TIME_CONSUMING_MIN.filed_comments=Minimum Elapsed Time (In Milliseconds) +metadata.RX_ERRORS.filed_comments=Number Of Error Packets Received +metadata.ifOutUcastPkts_t1.filed_comments=One-way Transmission Of Packets +metadata.ifOutUcastPkts.filed_comments=One-way Transmission Of Packets +metadata.INERRORSSCALE.filed_comments=Input Error Packet Rate +metadata.RX_ERRORS_PERC.filed_comments=Error Receiving Error Rate +metadata.TX_PPS.filed_comments=Output pps (Number of packets sent per second) +metadata.TIME_DELAY.filed_comments=Time Difference (Unit: Minutes) +metadata.sysObjectID.table_comments=Get Target Host Basic Information +metadata.inPktsSpeed.filed_comments=Package Rate +metadata.FREE_CPU_PERC.filed_comments=Current Idle Rate (Id%) +metadata.IS_IDENTICAL.filed_comments=Is it accessible +metadata.ifOutNUcastPkts.filed_comments=Non-unidirectional Data Packets +metadata.USED_MEMORY_SIZE.filed_comments=Used Memory (UsedG) +metadata.HOST_NAME.filed_comments=Host Name +metadata.ifSpecific.filed_comments=Detailed description of the port by the Management Information Base (MIB). +metadata.SERVICE_DATE.filed_comments=Server Time +metadata.SPEED.filed_comments=Bandwidth (In Mbps) +metadata.RETURN_TIME.filed_comments=Return Time +metadata.dpSlotIndex.filed_comments=Device Slot Number +metadata.ifSpeed.filed_comments=Port Bandwidth +metadata.ifDescr.filed_comments=Description +metadata.DISK_RANGE.filed_comments=Disk +metadata.PROC_STATE.filed_comments=Status Of The Process +metadata.RETURN_INFO.filed_comments=Return Information +metadata.ifOperStatus.filed_comments=Open Status +metadata.ifIndex.filed_comments=Index +metadata.ifInDiscards.filed_comments=Inbound Dropped Packets +metadata.dpSlotRunTimes.filed_comments=Time The Device Board Was Running +metadata.RX_DROP_PERC.filed_comments=Receiving Packet Loss Rate +metadata.CPU_NAME.filed_comments=CPU ID +#nms_error_code +#Tue Apr 17 18:07:46 CST 2018 +nms_error_code.DeamonNotExist.error_name=Daemon Does Not Exist +nms_error_code.DCSocketRuntimeError.error_name=DC Communication Exception +nms_error_code.DataResoveError.error_des=Data parsing error, applicable to all kinds of information parsing anomalies on the DC side +nms_error_code.ProcessNotExist.error_name=Process Does Not Exist +nms_error_code.CreateSocketError.error_des=Failed To Create Communication +nms_error_code.DataCollectError.error_des=Data Collection Management Thread Stopped Running +nms_error_code.NetWorkError.error_des=PING Is Not Working +nms_error_code.SocketError.error_name=Communication Failed +nms_error_code.ProtListenerError.error_des=Port listening failure, applicable to communication service port listening and snmp service port listening failure +nms_error_code.HandShakeError.error_name=Communication Handshake Failed +nms_error_code.DCSocketServerRuntimeError.error_name=DC Communication Service Runtime Exception +nms_error_code.NetWorkError.error_name=Network Nowhere +nms_error_code.NCWorkError.error_name=NC Works Abnormally +nms_error_code.DCSocketServerStartError.error_name=DC Communication Service Failed to Start +nms_error_code.ProtListenerError.error_name=Port Listening Failed +nms_error_code.HandShakeError.error_des=Communication Handshake Failed, For Web and DC Handshaking, DC to NC Handshake +nms_error_code.SocketError.error_des=An error occurred during the communication process. It is applicable to abnormal situations of web, DC, and NC communication threads. +nms_error_code.DCSocketServerStartError.error_des=DC Communication Service Failed To Start +nms_error_code.DataResoveError.error_name=Data Parsing Error +nms_error_code.CreateSocketError.error_name=Failed To Create Communication +nms_error_code.DCSocketServerRuntimeError.error_des=DC Communication Service Runtime Exception +nms_error_code.DeamonNotExist.error_des=The daemon does not exist, applies when the NC Daemon is not started and the DC Daemon is not started +nms_error_code.DataCollectError.error_name=Data Collection Exception +nms_error_code.ThreadRuntimeError.error_des=Execution exception for each program code. It is applicable to Web, DC, NC, and all program thread execution errors. +nms_error_code.ProcessNotExist.error_des=Target process does not exist, for web, DC, NC, third-party monitoring threads, execution thread does not exist, etc. +nms_error_code.DCSocketRuntimeError.error_des=Error code of DC communication error, used for basic communication alarm +nms_error_code.ThreadRuntimeError.error_name=Execute Exception +nms_error_code.NCWorkError.error_des=NC Abnormality +#option_table +#Tue Apr 17 18:09:40 CST 2018 +option_table.3.type_value=5-Level Alarm +option_table.20.type_value=The data status is abnormal and exceeds the alarm value four times in a row +option_table.11.type_value=Cannot Write +option_table.9.type_value=Enabled +option_table.26.type_value=Total Memory Size +option_table.25.type_code=The data status is abnormal and exceeds the alarm value +option_table.4.type_value=Level 2 Alarm +option_table.21.type_value=Network Exception +option_table.12.type_value=Emergency +option_table.27.type_value=Get The Node System Time Failed +option_table.26.type_code=Total Memory Size +option_table.5.type_value=Up +option_table.22.type_value=Error Getting SNMP Table +option_table.21.type_code=Network Exception +option_table.13.type_value=Normal +option_table.17.type_value=Array +option_table.6.type_value=1 Alarm +option_table.23.type_value=No Monitoring Data +option_table.14.type_value=Exception +option_table.22.type_code=Error Getting SNMP Table +option_table.18.type_value=Seal Router +option_table.1.type_value=Non-emergency +option_table.7.type_value=Level 3 Alarm +option_table.24.type_value=Over 2 monitoring periods, no monitoring result information was received +option_table.15.type_value=Downline +option_table.20.type_code=The data status is abnormal and exceeds the alarm value four times in a row +option_table.23.type_code=No Monitoring Data +option_table.19.type_value=Other Network Element +option_table.2.type_value=Unreachable +option_table.10.type_value=Writable +option_table.8.type_value=4 Alarm +option_table.25.type_value=The data status is abnormal and exceeds the alarm value +option_table.16.type_value=Dedicated Device +option_table.24.type_code=Over 2 monitoring cycles, no monitoring result information received +option_table.27.type_code=Get The Node System Time Failed +#order_table +#Tue Apr 17 18:10:55 CST 2018 +order_table.upgrade_kill_process.command_desc=Disable the process, the order of the parameters: the file 1 storing the PID; the file 2 storing the PID; +order_table.upgrade_other.command_model={"fileName"\:"push file name",\r\n"cover"\:"Overwrite directory (absolute path)\: When the Linux system and fileName specify a compressed file, the value of isAbs attribute is set Y, cover invalid (default root directory /)", \r\n"isCreateCover"\:"Create ID (Y create, N not create, default is N, case is ignored)",\r\n"isAbs" \:"If fileName specifies a compressed file, decompress the absolute path or the relative path (for Linux only, under Windows, press to enter the directory to extract)\: Y is untarred in the root directory, and the directory is /N; Into the directory decompression, the default is N, ignore the case ", \r\n" delete "\:[\r\n "Delete directory 1 (if the isAbs attribute value is Y, write the absolute path; if the isAbs attribute value is N , write relative path, the default is the directory specified by the relative cover attribute "), \r\n "delete directory 2"\r\n],\r\n "backups"\:[\r\n {"backup" \:"The file or directory to be backed up (absolute, relative path, relative path, default relative to the directory specified by the cover attribute)",\r\n "backupTo"\:"backup destination path (write relative path) ",\r\n "isAb s"\:" Specifies the absolute path or relative path when the backup file is compressed (only valid for Linux, and is only compressed when entering the backup path in Windows)\: Y contains the full path, N enters the backup path, and the default is N. Case "\r\n "except"\:[\r\n "Excluded file or directory path 1 (absolute or relative path, relative path, default is relative directory specified by backup attribute)",\r \n "Excluded file or directory path2"\r\n]\r\n},\r\n{"backup"\:"File or directory to back up",\r\n \t"backupTo" \:"Backup destination path",\r\n \t "isAbs"\:"Specify whether the backup file is absolute or absolute\: Y absolute compression contains the full path, N relative compression enters the backup path compression, the default is N, and case is ignored ",\r\n "except"\:[\r\n "Excluded file or directory path 1", \r\n "Excluded file or directory path 2"\r\n ]\r\n } r\n],\r\n"startupFile"\:"Full path to startup file",\r\n"execParams"\:["Startup parameter1","Startup parameter2"],\r\n"forceExec "\:" enforces (Y yes, N no, default N)", \r\n"pidFile"\:"Pid file full path",\r\n"maxWaitTime"\: "The maximum wait time (in minutes) to get the PID file after execution, the default is 0", \r\n"username"\:"owner",\r\n"groupName"\:"group", r\n"permisson"\:"File Permissions"\r\n};\r\n +kill_process=Disable Process +order_table.upgrade_agent.command_desc=Template introduction +order_table.upgrade_exec.command_model={"execCmd"\:"execution file or command",\r\n"execParams"\:["command parameter 1","command parameter 2"],\r\n"forceExec" \: "Force (Y yes, N no, default N)", \r\n"residentFlag"\:"resident memory ID (Y yes, N no, default N)",\r\n"execResult" \:"The file storing the execution result identifier\:1, resident memory, writing PID, 2, nonresident, writing execution result\: result flag (0 success 1 failure)|result description",\r\n"returnFlag "\:"back pass identifier (Y yes, N no, default N)",\r\n"returnPath"\:"backhaul path (file or directory)",\r\n"maxWaitTime"\:"final Result The maximum wait time (in minutes)",\r\n"username"\:"Execute user name"\r\n}; +single_exec=Single Execution Command +server=DC Upgrade +push_file=Push File +order_table.upgrade_recover.command_model={"source"\:"backup file (absolute path)",\r\n"cover"\:"recovered directory (absolute path)\: isAbs attribute when the Linux system and source are compressed files Value set to Y, cover invalid (default root directory /)", \r\n"isAbs"\:"If source specifies a compressed file, decompress the absolute or relative path (for Linux only, Windows only Press to enter the recovery directory and unzip it\: Y is decompressed in the root directory. At this time, the recovery directory is /, N is entered in the recovery directory and decompressed. The default is N. Ignore case, \r\n"delete"\:[\r\n "Delete directory 1 (if the isAbs attribute value is Y, write the absolute path; if the isAbs attribute value is N, write the relative path, the default is the directory specified by the relative cover attribute)",\r\n "delete directory 2"\r \n]\r\n}; +update=Overwrite Update +order_table.upgrade_server.command_desc=Template introduction +order_table.upgrade_agent.command_model={"fileName"\:"push file name",\r\n"cover"\:"Overwrite directory (relative and absolute paths are available, relative path is relative to Client deployment directory by default)\:Linux When the system and fileName specify a compressed file, the isAbs attribute value is set to Y, and the cover is invalid (default root directory /), \r\n"isCreateCover"\: "Create ID (Y is created, N is not created, and the default is N) , Ignore case "",\r\n"isAbs"\:"If fileName specifies a compressed file, decompress the absolute path or relative path (for Linux only, under Windows, press to enter the directory to extract)\:Y Unzip in the root directory, overwrite directory at this time /;; N into the directory decompression, the default is N, ignore the case "\r\n" delete "\:[\r\n "Delete directory 1 (if isAbs attribute Value is Y, write absolute path; if isAbs attribute value is N, relative path is written, the default is relative directory specified by the cover attribute),\r\n "Delete directory 2"\r\n],\r\n "backups"\:[\r\n{"backup"\:"The files or directories to be backed up (absolute and relative paths are possible, if relative path, the directory specified by the default relative cover attribute) )",\r\n "backupTo"\:"backup destination path (write relative path)",\r\n "isAbs"\:"specify absolute path or relative path when backup files are compressed (only valid for Linux, In Windows, press to enter the backup path only. Compression\: Y compression includes full path, N enters backup path compression, default is N, ignore case, \r\n "except"\:[\r\n "Excluded files Or directory path 1 (absolute or relative path, if relative path, the default is the directory specified by the relative backup property)", \r\n "Excluded file or directory path 2"\r\n]\r\n}, \r\n{"backup"\:"File or directory to backup",\r\n \t"backupTo"\:"Backup destination path",\r\n \t "isAbs"\:"Specify backup File relative or absolute compression\: Y absolute compression contains full path, N relative compression enters backup path compression, default is N, case is ignored, \r\n "except"\:[\r\n "Excluded files or directories Path 1",\r\n"Excluded file or directory path 2"\r\n ]\r\n }\r\n],\r\n"username"\:"Owner",\r n"groupName"\:"Family",\r\n"permisson"\:"File Permissions"\r\n};\r\n +order_table.upgrade_other.command_desc=Template introduction +order_table.upgrade_start.command_model={"execCmd"\:"execute file or command",\r\n"execParams"\:["command parameter 1","command parameter 2"],\r\n"forceExec" \: "Force (Y yes, N no, default N)", \r\n"residentFlag"\:"resident memory ID (Y yes, N no, default N)",\r\n"execResult" \:"The file storing the execution result identifier\:1, the resident memory, writing the PID file, 2. the nonresident, writing the execution result file, the format is as follows\: result identification (0 success 1 failure)|result description",\r \n"returnFlag"\:"Postback flag (Y is, NNo, defaultN)",\r\n"returnPath"\:"Return path (file or directory)",\r\n"maxWaitTime" \:"Get the maximum wait time for the final result (in minutes)",\r\n"username"\:"Execute user name"\r\n}; +order_table.upgrade_exec.command_desc=executable command (with parameters), the specification of the above as a parameter +order_table.upgrade_backup.command_model={"backup"\:"File or directory to backup (write absolute path)",\r\n "backupTo"\:"Backup path (write relative path)",\r\n" isAbs "\:" Specifies the absolute path or the relative path when the backup file is compressed (only valid for Linux, and is only compressed when entering the backup path in Windows)\: Y compression includes the full path, and N enters the backup path compression. By default, N is ignored. Case "\r\n "except"\:[\r\n "Excluded file or directory path (can be absolute or relative, if relative, the default is relative to the directory specified by the backup attribute. Next) "\r\n ]\r\n}; +other=Third Party Upgrade Deployment +order_table.upgrade_backup.command_desc=Backup, Parameter order: Need to backup directory or file; Backup to the directory +exec=Executable Command +order_table.upgrade_start.command_desc=Start process, Parameter order: File storing process ID; Start command parameter sequence (parameter sequence separated from start command space); return identifier (Y is, N no); output file path; resident Memory identification (Y is, N is no) +order_table.upgrade_recover.command_desc=Restore, Parameter order: Backup file directory; Directory to restore +order_table.single_exec.command_desc=Single Execution Command +recover=Restore +order_table.upgrade_update.command_desc=Update, Ie override, Parameter order: Upgrade file; Overwrite directory; Create directory (y yes, n no) +agent=NC Upgrade +order_table.push_file.command_desc=Push File Template +order_table.upgrade_server.command_model={"fileName"\:"push file name",\r\n"cover"\:"Overwrite directory (absolute path)\: When the Linux system and fileName specify a compressed file, the value of isAbs attribute is set Y, cover invalid (default root directory /)", \r\n"isCreateCover"\:"Create ID (Y create, N not create, default is N, case is ignored)",\r\n"isAbs" \:"If fileName specifies a compressed file, decompress the absolute path or the relative path (for Linux only, under Windows, press to enter the directory to extract)\: Y is untarred in the root directory, then the directory is /;N Into the directory decompression, the default is N, ignore the case ", \r\n" delete "\:[\r\n "Delete directory 1 (if the isAbs attribute value is Y, write the absolute path; if the isAbs attribute value is N , write relative path, the default is the directory specified by the relative cover attribute "), \r\n "delete directory 2"\r\n],\r\n "backups"\:[\r\n {"backup" \:"The file or directory to be backed up (absolute, relative path, relative path, default relative to the directory specified by the cover attribute)",\r\n "backupTo"\:"backup destination path (write relative path) ",\r\n "isA Bs "\:" Specifies the absolute path or relative path when the backup file is compressed (only valid for Linux, and is only compressed when entering the backup path in Windows)\: Y compression includes the full path and N enters the backup path compression. By default, N is ignored. Case "\r\n "except"\:[\r\n "Excluded file or directory path 1 (absolute or relative path, relative path, the default is relative to the directory specified by the backup attribute)",\r \n "Excluded file or directory path2"\r\n]\r\n},\r\n{"backup"\:"File or directory to back up",\r\n \t"backupTo" \:"Backup destination path",\r\n \t "isAbs"\:"Specify whether the backup file is absolute or absolute\:Y absolute compression contains the full path, N is relatively compressed into the backup path, default is N, and case is ignored ",\r\n "except"\:[\r\n "Excluded file or directory path 1", \r\n "Excluded file or directory path 2"\r\n ]\r\n } r\n],\r\n"startupFile"\:"Full path to startup file",\r\n"execParams"\:["Startup parameter1","Startup parameter2"],\r\n"forceExec "\:" enforced (Y yes, N no, default N)", \r\n"pidFile"\:"Pid file full path",\r\n"maxWaitTime" \:"The maximum waiting time (in minutes) for obtaining PID files after execution, the default is 0",\r\n"username"\:"owner",\r\n"groupName"\:"genus", \r\n"permisson"\:"File Permissions"\r\n}; +order_table.push_file.command_model={"fileName"\:"push file name (one-to-one correspondence with selected file name)",\r\n"destPath"\:"push destination",\r\n"isCover" \:"Whether to overwrite\: Y is, N is no, default is N, case is ignored", \r\n"username"\:"owner",\r\n"groupName"\:"genus", r\n"permisson"\:"File Permissions"\r\n}; +start=Start +backup=Backup +order_table.upgrade_update.command_model={"source"\:"source directory or file (absolute path)",\r\n"cover"\:"overwrite directory (absolute path)\: isAbs when the Linux system and source are compressed files The attribute value is set to Y, cover is invalid (default root directory /)", \r\n"isCreateCover"\:"Create overwrite directory ID (Y created, N is not created, default is N, case is ignored)",\r \n"isAbs"\:"If the source specifies a compressed file, decompress the absolute path or the relative path (for Linux only, under Windows, just press to enter the directory to extract)\: Y untarsed in the root directory, then override The directory is /, N enters the directory decompression, the default is N, ignore the case ", \r\n" delete "\:[\r\n "Delete directory 1 (if the isAbs attribute value is Y, write the absolute path; if isAbs attribute value is N, write relative path, the default is relative to the directory specified by the cover attribute), \r\n "delete directory 2"\r\n]\r\n}; +#plugin_info +#Tue Apr 17 18:12:07 CST 2018 +plugin_info.hh.file_name=1_Create a New Microsoft Visio Drawing .vsdx +#set_det_data_con +#Tue Apr 17 18:13:03 CST 2018 +set_det_data_con.5.menu_name=Alarm Information +set_det_data_con.2.menu_name=Alarm Information +set_det_data_con.3.menu_name=Exception Server +set_det_data_con.4.menu_name=Abnormal Network Element +set_det_data_con.1.menu_name=Business Logic Topology +#tabledboperationrpt +#Tue Apr 17 18:13:03 CST 2018 +tabledboperationrpt.username=Administrator +#type_table +#Tue Apr 17 18:16:11 CST 2018 +type_table.9.type_desc=This value is enabled. It is used to set the search keyword entered by the data display "status information" query condition. +type_table.3.type_name=Level Of Alarm Information Display +type_table.7.type_name=Dip Fan Power Status +type_table.6.type_name=Urgency +type_table.1.type_desc=When this value is enabled, the NC reports active alarms, but does not report active alarms when disabled. +type_table.4.type_desc=EmailFlag\:0 send; 1 do not send; +type_table.2.type_name= Is Reachable +type_table.5.type_name=Node Classification +type_table.9.type_name=Data Monitoring Status Information +type_table.3.type_desc=The alarm level displayed in the alarm information list (all emergency alarms are displayed in the alarm information list) +type_table.6.type_desc=Alarm Urgency +type_table.1.type_name=NC Report Active Alarm Information +type_table.4.type_name=Whether The System Uses Mail +type_table.8.type_name=Whether The Hard Disk Is Writable +type_table.2.type_desc=Handshaking Monitoring Is Reachable +#xt_js_jbxx +#Tue Apr 17 18:17:01 CST 2018 +xt_js_jbxx.224.jsmc=Configuration Manager +xt_js_jbxx.1.jsms=With System Management And Other Permissions +xt_js_jbxx.2.jsmc=Developers +xt_js_jbxx.225.jsmc=Operation And Maintenance Personnel +xt_js_jbxx.224.jsms=Responsible for configuring system and service related content (for operation and maintenance) +xt_js_jbxx.3.jsmc=Testers +xt_js_jbxx.2.jsms=Developers Use +xt_js_jbxx.21.jsmc=View Staff +xt_js_jbxx.225.jsms=Responsible Data View (For Operation And Maintenance) +xt_js_jbxx.3.jsms=Testers Use +xt_js_jbxx.1.jsmc=Administrator +xt_js_jbxx.21.jsms=View Only Information Permissions +#xt_mk_jbxx +#Tue Apr 17 18:20:41 CST 2018 +xt_mk_jbxx.361.mkmc=Port State Configuration +xt_mk_jbxx.303.mkmc=Copy Of The Task +xt_mk_jbxx.381.mkmc=Network Element Monitoring +xt_mk_jbxx.313.mkmc=Setting Alarms +xt_mk_jbxx.543.mkms=Add New Plugin +xt_mk_jbxx.12.mkms=New Fault Library +xt_mk_jbxx.269.mkmc=Monitor Configuration +xt_mk_jbxx.299.mkmc=Upline +xt_mk_jbxx.545.mkms=Remove Plugin +xt_mk_jbxx.421.mkmc=Monitoring Alarm Configuration +xt_mk_jbxx.307.mkmc=Enabled +xt_mk_jbxx.14.mkms=New Module Management +xt_mk_jbxx.279.mkmc=Permissions Management +xt_mk_jbxx.441.mkmc=3D Room +xt_mk_jbxx.461.mkmc=Brand Management +xt_mk_jbxx.309.mkmc=Edit +xt_mk_jbxx.501.mkmc=Alarm Information +xt_mk_jbxx.521.mkmc=Monitoring Filter Configuration +xt_mk_jbxx.10.mkmc=Add +xt_mk_jbxx.14.mkmc=Module Management +xt_mk_jbxx.16.mkmc=Add Submodules +xt_mk_jbxx.262.mkms=Monitoring Data +xt_mk_jbxx.274.mkms=Node Group and Node Maintenance +xt_mk_jbxx.266.mkms=Views of task information and execution status and results only. +xt_mk_jbxx.276.mkms=DC Management Scope +xt_mk_jbxx.288.mkms=User Group Management Interface +xt_mk_jbxx.270.mkmc=Category Configuration +xt_mk_jbxx.1.mkms=System Module Management, Etc. +xt_mk_jbxx.280.mkmc=Department Configuration +xt_mk_jbxx.272.mkmc=Special Equipment Configuration +xt_mk_jbxx.262.mkmc=Server Monitoring +xt_mk_jbxx.282.mkmc=User Management +xt_mk_jbxx.274.mkmc=Node Configuration +xt_mk_jbxx.264.mkmc=Special Monitoring +xt_mk_jbxx.310.mkmc=Delete +xt_mk_jbxx.284.mkmc=Data Display +xt_mk_jbxx.266.mkmc=Mission View +xt_mk_jbxx.542.mkms=Add, Delete, Check, And Download Plug-ins +xt_mk_jbxx.276.mkmc=DC Range Configuration +xt_mk_jbxx.11.mkms=System Fault Library +xt_mk_jbxx.9.mkms=Data Dictionary and Parameter Configuration Function +xt_mk_jbxx.304.mkmc=Add Reverse +xt_mk_jbxx.288.mkmc=User Group Configuration +xt_mk_jbxx.544.mkms=Modify Plugins +xt_mk_jbxx.306.mkmc=Disabled +xt_mk_jbxx.13.mkms=Modify Fault Bank +xt_mk_jbxx.1.mkmc=System Configuration +xt_mk_jbxx.546.mkms=Download Plugin +xt_mk_jbxx.462.mkmc=Device Management +xt_mk_jbxx.17.mkms=Add Main Module +xt_mk_jbxx.542.mkmc=Tool Management +xt_mk_jbxx.9.mkmc=Parameter Configuration +xt_mk_jbxx.546.mkmc=Download Attachments +xt_mk_jbxx.261.mkms=Original Alarm Data +xt_mk_jbxx.275.mkms=Business System Management +xt_mk_jbxx.285.mkms=Topology Display +xt_mk_jbxx.267.mkms=Configuration Management +xt_mk_jbxx.269.mkms=Configure Monitoring Settings Information +xt_mk_jbxx.289.mkms=Add User Group +xt_mk_jbxx.271.mkmc=Mission Configuration +xt_mk_jbxx.261.mkmc=Exception Server +xt_mk_jbxx.281.mkmc=Actor Configuration +xt_mk_jbxx.273.mkmc=Room Configuration +xt_mk_jbxx.263.mkmc=Anomaly Network Element +xt_mk_jbxx.293.mkmc=Offline +xt_mk_jbxx.283.mkmc=Modify Personal Information +xt_mk_jbxx.275.mkmc=Business System Configuration +xt_mk_jbxx.501.mkms=Display configuration level alarm information, including server and network element +xt_mk_jbxx.521.mkms=Set filtering conditions (alarm level, emergency) for the business logic topology, alarm information, abnormal server, abnormal network element, and system warning information menu +xt_mk_jbxx.541.mkms=Upload And Download Management Plugins +xt_mk_jbxx.285.mkmc=Business Logic Topology + + +#xt_yh_jbxx +#Tue Apr 17 18:21:57 CST 2018 +xt_yh_jbxx.admin.rigthmenuitems=System Management, +xt_yh_jbxx.admin.yhmc=Administrator + +####################补充内容 start############################## +#xt_mk_jbxx +#Mon May 28 11:27:21 CST 2018 +xt_mk_jbxx.221.mkmc=Brand Management +xt_mk_jbxx.71.mkms=Modify Machine Room Information +xt_mk_jbxx.39.mkms=Multi-level node group management, tree display +xt_mk_jbxx.66.mkms=Disable scheduled tasks +xt_mk_jbxx.22.mkms=User group new features +xt_mk_jbxx.33.mkms=Node Group Management +xt_mk_jbxx.28.mkmc=DataController Management +xt_mk_jbxx.60.mkms=Modify Detection Category +xt_mk_jbxx.278.mkmc=Business Logic Configuration +xt_mk_jbxx.39.mkmc=Node Group Management +xt_mk_jbxx.66.mkmc=Deactivate +xt_mk_jbxx.45.mkms=Enable Node Group +xt_mk_jbxx.601.mkmc=Test Submodule +xt_mk_jbxx.33.mkmc=Node Management +xt_mk_jbxx.72.mkms=Delete Machine Room Information +xt_mk_jbxx.245.mkms=Add 2 +xt_mk_jbxx.141.mkmc=Node Group Display +xt_mk_jbxx.267.mkmc=Configuration Management +xt_mk_jbxx.67.mkms=Enable Scheduled Tasks +xt_mk_jbxx.23.mkms=View and operate all business systems +xt_mk_jbxx.2.mkms=User/User Group/Role Permissions Configuration +xt_mk_jbxx.50.mkms=Monitoring Related Settings +xt_mk_jbxx.34.mkms=Add A New Node Group +xt_mk_jbxx.581.mkms=Topology Configuration +xt_mk_jbxx.245.mkmc=Add 2 +xt_mk_jbxx.61.mkms=Delete Detection Type +xt_mk_jbxx.201.mkmc=Monitor Configuration Wizard +xt_mk_jbxx.46.mkms=OID Dictionary Management +xt_mk_jbxx.50.mkmc=Monitoring Settings Management +xt_mk_jbxx.581.mkmc=Topology Configuration +xt_mk_jbxx.18.mkmc=Department Management +xt_mk_jbxx.57.mkms=Summary Monitoring Data +xt_mk_jbxx.268.mkmc=Monitor Configuration Wizard +xt_mk_jbxx.79.mkmc=Topology Display +xt_mk_jbxx.68.mkms=Add A New Reverse Task +xt_mk_jbxx.121.mkms=Network Element Graphical Configuration +xt_mk_jbxx.40.mkms=Add Subnode Group +xt_mk_jbxx.316.mkmc=Task Configuration Wizard +xt_mk_jbxx.24.mkms=New Business System +xt_mk_jbxx.51.mkms=Add Monitoring Settings +xt_mk_jbxx.46.mkmc=OID Dictionary Management +xt_mk_jbxx.35.mkms=Modify Node Group +xt_mk_jbxx.19.mkms=Role Management +xt_mk_jbxx.73.mkmc=3D Machine Room Map +xt_mk_jbxx.57.mkmc=Monitoring Data +xt_mk_jbxx.62.mkms=Data that requires an alarm +xt_mk_jbxx.181.mkmc=Task Configuration Wizard +xt_mk_jbxx.68.mkmc=Add Reverse +xt_mk_jbxx.121.mkmc=Network element graphical configuration +xt_mk_jbxx.40.mkmc=Add Subnode Group +xt_mk_jbxx.321.mkmc=Exception Device +xt_mk_jbxx.3.mkmc=Business System +xt_mk_jbxx.19.mkmc=Role Management +xt_mk_jbxx.58.mkms=Set Monitoring Category +xt_mk_jbxx.62.mkmc=Alarm Data +xt_mk_jbxx.69.mkms=Topology +xt_mk_jbxx.122.mkms=Network Element Graphical Configuration +xt_mk_jbxx.41.mkms=Add A First-level Node Group +xt_mk_jbxx.4.mkms=Node Management +xt_mk_jbxx.241.mkms=Device Management +xt_mk_jbxx.52.mkms=Modify Monitoring Settings +xt_mk_jbxx.36.mkms=Node Management +xt_mk_jbxx.74.mkmc=Topology Edit +xt_mk_jbxx.63.mkms=NMS Task Query And Processing +xt_mk_jbxx.58.mkmc=Monitoring Category Management +xt_mk_jbxx.69.mkmc=Computer Room Management +xt_mk_jbxx.122.mkmc=Network Element Graphical Configuration +xt_mk_jbxx.41.mkmc=Add A First-level Node Group +xt_mk_jbxx.4.mkmc=Node Management +xt_mk_jbxx.241.mkmc=Device Management +xt_mk_jbxx.36.mkmc=Node Management +xt_mk_jbxx.75.mkms=Maintenance Cabinet Information +xt_mk_jbxx.59.mkms=New Detection Type +xt_mk_jbxx.63.mkmc=Task Management +xt_mk_jbxx.286.mkmc=3D Machine Room Display +xt_mk_jbxx.42.mkms=Modify Node Group +xt_mk_jbxx.431.mkms=New Module Management +xt_mk_jbxx.26.mkms=Deactivate Business System +xt_mk_jbxx.561.mkmc=Brand Management +xt_mk_jbxx.242.mkms=New Device Model +xt_mk_jbxx.53.mkms=Alarm Settings +xt_mk_jbxx.37.mkms=Deactivate Node Group +xt_mk_jbxx.80.mkms=Online Monitoring Settings +xt_mk_jbxx.75.mkmc=Cabinet Management +xt_mk_jbxx.64.mkms=Add Similar Tasks +xt_mk_jbxx.431.mkmc=New Module Management +xt_mk_jbxx.5.mkmc=Monitoring Management +xt_mk_jbxx.53.mkmc=Set Alarm +xt_mk_jbxx.265.mkms=Show the alarm exception information of each node +xt_mk_jbxx.161.mkmc=Configuration Management +xt_mk_jbxx.64.mkmc=Task Copy +xt_mk_jbxx.43.mkms=Node Management +xt_mk_jbxx.27.mkms=Enable Business System +xt_mk_jbxx.6.mkms=NMS Task Management +xt_mk_jbxx.70.mkms=Additional Machine Room +xt_mk_jbxx.49.mkmc=NE Monitoring Information +xt_mk_jbxx.54.mkms=Set Alarm Parameters +xt_mk_jbxx.38.mkms=Enable Node Group +xt_mk_jbxx.481.mkmc=Topology Configuration +xt_mk_jbxx.265.mkmc=Alarm Information +xt_mk_jbxx.81.mkms=Downline Monitoring Settings +xt_mk_jbxx.21.mkms=User Group Management +xt_mk_jbxx.43.mkmc=Node Management +xt_mk_jbxx.6.mkmc=Task Management +xt_mk_jbxx.54.mkmc=Alarm Settings +xt_mk_jbxx.277.mkmc=Parameter Configuration +xt_mk_jbxx.541.mkmc=Tool Management +xt_mk_jbxx.21.mkmc=User Group Management +xt_mk_jbxx.341.mkms=New Operation +xt_mk_jbxx.44.mkms=Deactivate Node Group +xt_mk_jbxx.28.mkms=NMS Data Parsing Server Information Management + +#data_police_relation +#Mon May 28 16:17:02 CST 2018 +data_police_relation.100000.POLICE_SHOW_INFO=User usage exceeds 2% + +#order_table +#Mon May 28 16:25:52 CST 2018 +order_table.upgrade_recover.shell_path=Change the command name to upgrade_restore +####################补充内容 end############################## + +#DeptManageAction +DeptManageAction.update.success=Operation successful +DeptManageAction.update.faild=Operation failed +#CheckTypeSetAction +CheckTypeSetAction.downloadExample.title.monitorType=Monitoring Category (Required) +CheckTypeSetAction.downloadExample.title.monitorTypeName=Monitoring Category Name (Required) +CheckTypeSetAction.downloadExample.title.remark=Remarks +CheckTypeSetAction.downloadExample.title.mapTable=Corresponding Database Table (Required) +CheckTypeSetAction.downloadExample.title.tableDesc=Table Description +CheckTypeSetAction.downloadExample.title.viewPrivilage=View Permissions (Mandatory Fill in 1, issuer view; 2 publisher group, need to select group; 3 all personnel in the system view, current business system; 4, no limit) +CheckTypeSetAction.downloadExample.title.userGroup=User Group +CheckTypeSetAction.downloadExample.title.snmpMonitor=SNMP Monitoring (Required 0: Yes ;2: No; Please fill in OID when it is 0) +CheckTypeSetAction.downloadExample.sheet=Monitoring Category Management Information Sheet +CheckTypeSetAction.downloadExample.errorInfo.line=Line +CheckTypeSetAction.downloadExample.errorInfo1=column node monitoring class cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo2=column node monitoring class error; +CheckTypeSetAction.downloadExample.errorInfo3=column node monitoring class name cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo4=column node monitoring class name error; +CheckTypeSetAction.downloadExample.errorInfo5=column node notes extra long; +CheckTypeSetAction.downloadExample.errorInfo6=column node remarks error; +CheckTypeSetAction.downloadExample.errorInfo7=column node corresponding database table cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo8=column node corresponding database table error; +CheckTypeSetAction.downloadExample.errorInfo9=columns node table description extra long; +CheckTypeSetAction.downloadExample.errorInfo10=column node table description error; +CheckTypeSetAction.downloadExample.errorInfo11=column node view permission cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo12=column node view permission error; +CheckTypeSetAction.downloadExample.errorInfo13=column node user group ID error; +CheckTypeSetAction.downloadExample.errorInfo14=column node SNMP monitoring cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo15=column node SNMP monitoring error; +CheckTypeSetAction.downloadExample.errorInfo16=column node OID error; +CheckTypeSetAction.downloadExample.errorInfo17=column node field name cannot be empty +CheckTypeSetAction.downloadExample.errorInfo18=column node field name is incorrect; +CheckTypeSetAction.downloadExample.errorInfo19=column node field description cannot be null; +CheckTypeSetAction.downloadExample.errorInfo20=column node field description error; +CheckTypeSetAction.downloadExample.errorInfo21=column node field type cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo22=column node field type error; +CheckTypeSetAction.downloadExample.errorInfo23=Wrong line length for row 4; +CheckTypeSetAction.downloadExample.errorInfo24=Whether the row 5 column node is used for statistics cannot be null; +CheckTypeSetAction.downloadExample.errorInfo25=Whether the row 5 column node is used for statistical errors; +CheckTypeSetAction.downloadExample.errorInfo26=column node table name cannot be empty; +CheckTypeSetAction.downloadExample.errorInfo27=column node table name error; +CheckTypeSetAction.downloadExample.detecateType=Monitoring Category +CheckTypeSetAction.downloadExample.detecateTypeName=Monitoring Category Name +CheckTypeSetAction.downloadExample.remark=Notes +CheckTypeSetAction.downloadExample.tableMap=Corresponding Database Table +CheckTypeSetAction.downloadExample.tableDesc=Table Description +CheckTypeSetAction.downloadExample.viewLevel=View Permissions +CheckTypeSetAction.downloadExample.userGroup=User Group +CheckTypeSetAction.downloadExample.snmpDetecat=SNMP Monitoring +CheckTypeSetAction.downloadExample.errorInfo=Error Message +CheckTypeSetAction.downloadExample.fieldName=Field Name +CheckTypeSetAction.downloadExample.fieldDesc=Field Description +CheckTypeSetAction.downloadExample.fieldType=Field Type +CheckTypeSetAction.downloadExample.length=Length +CheckTypeSetAction.downloadExample.isChart=Used for statistics +CheckTypeSetAction.downloadExample.tableName=Table Name +CheckTypeSetAction.downloadExample.errorTheme=Monitoring Table Data Field Definition Error Information +CheckTypeSetAction.downloadExample.success=Operation succeeded +CheckTypeSetAction.downloadExample.fileIsNull=The selected file is empty. Please select again! +CheckTypeSetAction.downloadExample.detecateTypeIsNull=Monitoring category name does not exist; +CheckTypeSetAction.downloadExample.fieldExists= Field name already exists; +CheckTypeSetAction.downloadExample.number=Number +CheckTypeSetAction.downloadExample.DATE=Time +CheckTypeSetAction.downloadExample.text=Text +CheckTypeSetAction.downloadExample.textInfo=When the type is text, the length must be filled in +CheckTypeSetAction.downloadExample.lenghtInfo=Length should be of type number; +CheckTypeSetAction.downloadExample.filedTypeInfo=Filled in field type; +CheckTypeSetAction.downloadExample.Y=Yes +CheckTypeSetAction.downloadExample.N=No +CheckTypeSetAction.downloadExample.isCHartInfo=Is it used to fill in statistics errors? +CheckTypeSetAction.downloadExample.oidIsNecessary=OID is required under current monitoring category; +CheckTypeSetAction.downloadExample.importInfo=This node information import exception; +CheckTypeSetAction.downloadExample.detecateTypeNameRepeat=Monitoring category name duplication; +CheckTypeSetAction.downloadExample.detecateTypeRepeat=Duplicate monitoring category; +CheckTypeSetAction.downloadExample.tableExists=Data table already exists; +CheckTypeSetAction.downloadExample.viewLevelInfo=View permission is 2, user groups are required; +CheckTypeSetAction.downloadExample.noUserGroup=User group does not exist +CheckTypeSetAction.downloadExample.snmpDetecateInfo=When SNMP monitoring is 0, OID is required; +CheckTypeSetAction.downloadExample.isSchedule=Preset Information +CheckTypeSetAction.downloadExample.creteState=Whether SNMP Monitoring +CheckTypeSetAction.addCheckTypeSetInfo.detecateTypeNameRepeatInfo=Duplicate monitoring category name, please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.detecateTypeRepeatInfo=Duplicate monitoring category, please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.tableExistsInfo=Data table already exists, please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.classFileInfo=Failed to generate .class file! +CheckTypeSetAction.addCheckTypeSetInfo.getObjectFaild=Failed to get object field! +CheckTypeSetAction.addCheckTypeSetInfo.saveFailed=Failed to save! +CheckTypeSetAction.addCheckTypeSetInfo.editDetecateTypeInfo=Edit monitoring category management validation exception +CheckTypeSetAction.addCheckTypeSetInfo.detecateNameAndTypeRepeat=Monitoring category names and monitoring categories are duplicated. Please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.detecateNameRepeat=Duplicate monitoring category name, please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.detecateRepeat=Duplicate monitoring category, please re-enter! +CheckTypeSetAction.addCheckTypeSetInfo.tableExists=Already exists in the data table. It is forbidden to modify SNMP monitoring! +CheckTypeSetAction.addCheckTypeSetInfo.validateTable=Authenticating the table for exceptions +CheckTypeSetAction.addCheckTypeSetInfo.detecateSetsExists=Monitor settings already exist in this category and it is forbidden to delete! + +#DetectionSetAction +DetectionSetAction.downloadExample.title.setName=Set Name (Required) +DetectionSetAction.downloadExample.title.setId=Set ID (Required) +DetectionSetAction.downloadExample.title.monitorCategory=Monitoring Category (Required) +DetectionSetAction.downloadExample.title.nodeGroupRange=Node Group Range (Example: 1 or 1, 2, 3) +DetectionSetAction.downloadExample.title.nodeIpRange=Node IP Range (For Example: 1, 2, 3) +DetectionSetAction.downloadExample.title.viewLevel=View Permissions (1 required, publisher view; 2 Publisher's group, need to select the group; all personnel within 3 system view, the current business system within; 4, unlimited) +DetectionSetAction.downloadExample.title.userGroup=Creator Where The User Group +DetectionSetAction.downloadExample.title.monitorFirstTime=To Monitor The Implementation Of The First Time (Format: 2012-12-12 18:18:18) +DetectionSetAction.downloadExample.title.monitorDate=Monitoring Data Interval (Minutes) (Required ,Must greater than or equal to 5 minutes) +DetectionSetAction.downloadExample.title.timeOut=Time-out Time (Sec) (Required) +DetectionSetAction.downloadExample.title.attempt=Attempts (Required) +DetectionSetAction.downloadExample.title.state=State (1 Active, 0 Inactive) +DetectionSetAction.downloadExample.title.startMode=Start Mode (Required 0: Manual Start 1: NC Start) +DetectionSetAction.downloadExample.title.startUpTime= Control Startup Time (Format: 2012-12-12 18:18:18) +DetectionSetAction.downloadExample.title.pidFile=Process PID File +DetectionSetAction.downloadExample.title.searcheKey=Process Search Keyword +DetectionSetAction.downloadExample.title.startUpFile=Startup File Path +DetectionSetAction.downloadExample.title.contact=Contacts ( Example: 1 or 1, 2, 3) +DetectionSetAction.downloadExample.sheet=Monitoring Category Management Information Table +DetectionSetAction.downloadExample.errorInfo1=The row 1 column node setting name cannot be empty; +DetectionSetAction.downloadExample.errorInfo2=Line 1 column node setting name error; +DetectionSetAction.downloadExample.errorInfo3=The row 2 column node setting ID cannot be empty; +DetectionSetAction.downloadExample.errorInfo4=Line 2 column node setting identification error; +DetectionSetAction.downloadExample.errorInfo5=Line 3 column node monitoring class cannot be empty; +DetectionSetAction.downloadExample.errorInfo6=Line 3 column node monitoring class error; +DetectionSetAction.downloadExample.errorInfo7=Line 4 column node node group range error; +DetectionSetAction.downloadExample.errorInfo8=Line 5 column node node range error; +DetectionSetAction.downloadExample.errorInfo9=The row view 6 column node view permission cannot be empty; +DetectionSetAction.downloadExample.errorInfo10=Line 6 column node view permission error; +DetectionSetAction.downloadExample.errorInfo11=The user group of the row 7 column node creator is wrong; +DetectionSetAction.downloadExample.errorInfo12=Line 8 node monitoring first time format error; +DetectionSetAction.downloadExample.errorInfo13=Line 8 node monitoring first execution time error; +DetectionSetAction.downloadExample.errorInfo14=Line 9 column node monitoring data interval cannot be empty; +DetectionSetAction.downloadExample.errorInfo15=Line 9 column monitoring data interval error; +DetectionSetAction.downloadExample.errorInfo16=Line 10 column node timeout cannot be null; +DetectionSetAction.downloadExample.errorInfo17=Line 10 column node timeout error; +DetectionSetAction.downloadExample.errorInfo18=Line 11 column node attempts cannot be empty; +DetectionSetAction.downloadExample.errorInfo19=Wrong number of row 11 column node attempts; +DetectionSetAction.downloadExample.errorInfo20=Line 12 column node status error; +DetectionSetAction.downloadExample.errorInfo21=The starting mode of the row 13 node cannot be null; +DetectionSetAction.downloadExample.errorInfo22=Wrong starting mode for row 13 node; +DetectionSetAction.downloadExample.errorInfo23=Line 14 column node control start time format error; +DetectionSetAction.downloadExample.errorInfo24=Line 14 column node control start time error; +DetectionSetAction.downloadExample.errorInfo25=Line 15 column node process PID file error; +DetectionSetAction.downloadExample.errorInfo26=Line 16 column node process search keyword error; +DetectionSetAction.downloadExample.errorInfo27=Line 17 column node startup file path error; +DetectionSetAction.downloadExample.errorInfo28=Line 18 column node contact error; +DetectionSetAction.downloadExample.setName=Setting Name +DetectionSetAction.downloadExample.setID=Setting ID +DetectionSetAction.downloadExample.detecateType=Monitoring Category +DetectionSetAction.downloadExample.nodeGroupRang=Node Group Range +DetectionSetAction.downloadExample.nodeRang=Node Range +DetectionSetAction.downloadExample.viewLevel=View Permissions +DetectionSetAction.downloadExample.createUserGroup=Created By User Group +DetectionSetAction.downloadExample.detecateStartTime=Monitor First Execution Time +DetectionSetAction.downloadExample.detecateTimeInfo=Monitoring Data Interval (Minutes) +DetectionSetAction.downloadExample.outTime=Timeout (Seconds) +DetectionSetAction.downloadExample.tryTimes=Attempts +DetectionSetAction.downloadExample.state=Status +DetectionSetAction.downloadExample.startWay=Startup Method +DetectionSetAction.downloadExample.controlStartTime=Control Start Time +DetectionSetAction.downloadExample.processPidFile=Process PID File +DetectionSetAction.downloadExample.processSearchKey=Process Search Key +DetectionSetAction.downloadExample.startupFilePath=Startup File Path +DetectionSetAction.downloadExample.users=Contacts +DetectionSetAction.downloadExample.errorInfo=Error Information +DetectionSetAction.downloadExample.faild=Operation failed +DetectionSetAction.downloadExample.fileIsNull=The selected file is empty. Please select it again! +DetectionSetAction.downloadExample.detecateTypeNameIsNull=Monitoring category name does not exist +DetectionSetAction.downloadExample.nodeGroupNameFormat=Node group name is malformed +DetectionSetAction.downloadExample.nodeGroupNameIsNull.nodeGroupName=Node Group Name +DetectionSetAction.downloadExample.nodeGroupNameIsNull.notExit= does not exist +DetectionSetAction.downloadExample.nodeIpFormat=Incorrect Node IP Format +DetectionSetAction.downloadExample.nodeIpIsNull.nodeIp=Node IP +DetectionSetAction.downloadExample.usernameIsNull.username=Username +DetectionSetAction.downloadExample.detecateTypeIdIsNull=Monitoring category ID does not exist +DetectionSetAction.downloadExample.nodeRangRepeat=Set node range repeat +DetectionSetAction.downloadExample.nodegroupRangRepeat=Set the node group range to repeat; +DetectionSetAction.downloadExample.setsRangRepeat=Set the range to repeat; +DetectionSetAction.downloadExample.setNameAndIdRepeat=Set name repetition and set ID repetition; +DetectionSetAction.downloadExample.setIdRepeat=Set ID repetition +DetectionSetAction.downloadExample.setNameRepeat=Set name duplicates; +DetectionSetAction.downloadExample.detectionSetInfo1=The process PID file cannot be empty under the current monitoring category and startup mode. +DetectionSetAction.downloadExample.detectionSetInfo2=Under the current monitoring category and startup mode, the process search keyword cannot be null; +DetectionSetAction.downloadExample.detectionSetInfo3=Under the current monitoring category and startup mode, the startup file path cannot be empty. +DetectionSetAction.downloadExample.detectionSetInfo4=Under the current monitoring category and startup mode, the process PID file cannot be empty. +DetectionSetAction.downloadExample.detectionSetInfo5=Under the current monitoring category and startup mode, the process search keyword cannot be null; +DetectionSetAction.downloadExample.usergroupCanBeNull=User group cannot be empty under current viewing rights; +DetectionSetAction.downloadExample.userGroupNotExists=User group does not exist +DetectionSetAction.downloadExample.timeSpaceInfo=Monitoring data interval must be greater than or equal to 5 minutes; +DetectionSetAction.downloadExample.nodeInfoImportErr=The node information import exception +DetectionSetAction.downloadExample.handUp=Manual Startup +DetectionSetAction.downloadExample.ncStartup=NC Startup +DetectionSetAction.downloadExample.Y=Yes +DetectionSetAction.downloadExample.N=No +DetectionSetAction.downloadExample.valid=Valid +DetectionSetAction.downloadExample.unvalid=Invalid +DetectionSetAction.downloadExample.title1.nodeGroup=Node Group +DetectionSetAction.downloadExample.title1.nodeIp=Node IP +DetectionSetAction.downloadExample.title1.moniteType=Monitoring Category Name +DetectionSetAction.downloadExample.title1.moniteTime=Monitoring Interval (Minutes) +DetectionSetAction.downloadExample.title1.tryTimes=Attempts +DetectionSetAction.downloadExample.title1.outTime=Timeout (Seconds) +DetectionSetAction.downloadExample.title1.firstMoniteTime=First Monitoring Time +DetectionSetAction.downloadExample.title1.setName=Setting Name +DetectionSetAction.downloadExample.title1.procPidFile=Process PID File +DetectionSetAction.downloadExample.title1.startupFilePath=Startup File Path +DetectionSetAction.downloadExample.title1.startupWay=Startup Mode +DetectionSetAction.downloadExample.title1.startupTime=Control Startup Time +DetectionSetAction.downloadExample.title1.isSchedule=Preset Information +DetectionSetAction.downloadExample.title1.state=Status +DetectionSetAction.downloadExample.title1=Monitoring Setup Management Information Table +DetectionSetAction.downloadExample.success=Operation success +DetectionSetAction.downloadExample.nodeId=Node ID +DetectionSetAction.downloadExample.nodeGroupId=Node Group ID +DetectionSetAction.downloadExample.nodeRangRepeat2=Set Node Range Duplicate, +DetectionSetAction.downloadExample.nodeGroupRangRepeat=Set Node Group Range Duplicate, +DetectionSetAction.downloadExample.rangRepeat=Set range repeat, +DetectionSetAction.downloadExample.nameRepeat=Duplicate setting name, +DetectionSetAction.downloadExample.nameAndIdRepeat=Set Name Duplicate and Set Identity Duplicate, +DetectionSetAction.downloadExample.idRepeat=Set ID repetition. +DetectionSetAction.downloadExample.reInput=Please re-enter! +DetectionSetAction.downloadExample.scriptDownloadFaild=Script download failed +DetectionSetAction.downloadExample.detecateConfigValidateFaild=Modify monitoring configuration check exception +DetectionSetAction.downloadExample.updateDetecationException=Update monitoring data validity +DetectionSetAction.downloadExample.seqIdException=According to the node id and node group id, get a valid seqId exception + +#DetectionWarningAction.java +DetectionWarningAction.emportCurrentXls.active=Active +DetectionWarningAction.emportCurrentXls.passive=Passive +DetectionWarningAction.emportCurrentXls.title.hostName=Hostname +DetectionWarningAction.emportCurrentXls.title.monitorType=Monitoring Category +DetectionWarningAction.emportCurrentXls.title.setName=Setting Name +DetectionWarningAction.emportCurrentXls.title.monitorWay=Monitoring Method +DetectionWarningAction.emportCurrentXls.title.lastCheckTime=Last Checked Time +DetectionWarningAction.emportCurrentXls.title.duration=Duration +DetectionWarningAction.emportCurrentXls.title.attempt=Attempts +DetectionWarningAction.emportCurrentXls.title.alertLevel=Alert Level +DetectionWarningAction.emportCurrentXls.title.performanceData=Performance Data +DetectionWarningAction.emportCurrentXls.warningInfoTable=Alarm Data Information Table +DetectionWarningAction.emportCurrentXls.selectErrorTable=Query Exception List Exception +DetectionWarningAction.emportCurrentXls.faild=Operation failed +DetectionWarningAction.emportCurrentXls.success=Operation successful +DetectionWarningAction.emportCurrentXls.getWarningInfo=Acquire alarm list to display alarm severity +DetectionWarningAction.emportCurrentXls.getWarningFilteInfo=Get Exception Monitoring List Filter Configuration Exception +DetectionWarningAction.emportCurrentXls.selectWarningTable=Query Exception List Exception +DetectionWarningAction.emportCurrentXls.selectDetecateType=Query monitoring category information +DetectionWarningAction.emportCurrentXls.state=Status +DetectionWarningAction.emportCurrentXls.normal=Normal +DetectionWarningAction.emportCurrentXls.exception=Exception +DetectionWarningAction.emportCurrentXls.doFaild=Execution failed +DetectionWarningAction.emportCurrentXls.outWarningValue=Exceeded alarm value +#DetectionWarningAction.emportCurrentXls.day=Day +#DetectionWarningAction.emportCurrentXls.hour=Hours +#DetectionWarningAction.emportCurrentXls.minute=Minute +#DetectionWarningAction.emportCurrentXls.second=Seconds +DetectionWarningAction.emportCurrentXls.day= d +DetectionWarningAction.emportCurrentXls.hour= h +DetectionWarningAction.emportCurrentXls.minute= m +DetectionWarningAction.emportCurrentXls.second= s +DetectionWarningAction.emportCurrentXls.flashWarning=Animation Alert +DetectionWarningAction.emportCurrentXls.sysWarning=System Run Warning: +DetectionWarningAction.emportCurrentXls.policeEmergent=Emergency Warning: +DetectionWarningAction.emportCurrentXls.unpoliceEmergent1=Non-urgent +DetectionWarningAction.emportCurrentXls.unpoliceEmergent2= Level Warning: + +#MetaDataSetAction.java +MetaDataSetAction.queryCheckTypeSource.faild=Operation failed +MetaDataSetAction.queryCheckTypeSource.success=Operation successful +MetaDataSetAction.queryCheckTypeSource.fieldExists=Field name already exists, please re-enter! +MetaDataSetAction.queryCheckTypeSource.transIdExists=This transmission sequence number already exists. Please re-enter! +MetaDataSetAction.queryCheckTypeSource.transIdIncoherence=Transmission sequence number is inconsistent. Please re-enter! +MetaDataSetAction.queryCheckTypeSource.addDetecateType=Add monitoring category management validation exception +MetaDataSetAction.queryCheckTypeSource.tableExists=Data Sheet Already Exists +MetaDataSetAction.queryCheckTypeSource.recordExists=The record already exists. Please re-enter! +MetaDataSetAction.queryCheckTypeSource.editDisable=Prohibit modification. Please disable this field and modify it by adding new fields. +MetaDataSetAction.queryCheckTypeSource.inputTransId=Please enter the serial number +MetaDataSetAction.queryCheckTypeSource.updateTable=Data table has been generated, no modification! +MetaDataSetAction.queryCheckTypeSource.addFiled1=Please add a new field, fill in the position of transmission serial number= +MetaDataSetAction.queryCheckTypeSource.addFiled2=, or modify other transmission serial numbers to make it consistent +MetaDataSetAction.queryCheckTypeSource.repeatRecord=There are duplicate records, please re-enter! +MetaDataSetAction.queryCheckTypeSource.validateRepeat=Verify if duplicate record exception exists +MetaDataSetAction.queryCheckTypeSource.getOidDict=Failed to get OID dictionary! +MetaDataSetAction.queryCheckTypeSource.addSuccess=Add success! +MetaDataSetAction.queryCheckTypeSource.addFaild=Add failed! +MetaDataSetAction.queryCheckTypeSource.addFieldIndexFaild= field! +MetaDataSetAction.queryCheckTypeSource.pleaseAddField=Please add fields first! +MetaDataSetAction.queryCheckTypeSource.cantCreateTable=An empty field name exists, unable to generate a table! +MetaDataSetAction.queryCheckTypeSource.filedToCreate=Generation failure! + +#MonitorDataAction.java +MonitorDataAction.emportCurrentXlsAbnormalSet.exception=Exception +MonitorDataAction.emportCurrentXlsAbnormalSet.unnormal=Not Normal +MonitorDataAction.emportCurrentXlsAbnormalSet.normal=Normal +MonitorDataAction.emportCurrentXlsAbnormalSet.title.hostname=Hostname +MonitorDataAction.emportCurrentXlsAbnormalSet.title.checkType=Monitoring Category +MonitorDataAction.emportCurrentXlsAbnormalSet.title.setName=Setting Name +MonitorDataAction.emportCurrentXlsAbnormalSet.title.state=Status +MonitorDataAction.emportCurrentXlsAbnormalSet.title.lastCheckTime=Last Checkup Time +MonitorDataAction.emportCurrentXlsAbnormalSet.title.duration=Duration +MonitorDataAction.emportCurrentXlsAbnormalSet.title.attempt=Attempts +MonitorDataAction.emportCurrentXlsAbnormalSet.title.stateInfo=Status Information +MonitorDataAction.emportCurrentXlsAbnormalSet.deviceException=Exception Device Information Table +MonitorDataAction.emportCurrentXlsAbnormalSet.detecateData=Monitoring Data Information Table +MonitorDataAction.emportCurrentXlsAbnormalSet.faild=Operation failed +MonitorDataAction.emportCurrentXlsAbnormalSet.success=Operation successful +MonitorDataAction.emportCurrentXlsAbnormalSet.cartogram=Chart +MonitorDataAction.emportCurrentXlsAbnormalSet.avg=Average +MonitorDataAction.emportCurrentXlsAbnormalSet.moment= Instantaneous Value +MonitorDataAction.emportCurrentXlsAbnormalSet.avgStr=Sum Of The Average +MonitorDataAction.emportCurrentXlsAbnormalSet.pointStr=Sum Of Instantaneous Values +MonitorDataAction.emportCurrentXlsAbnormalSet.charStr= and +MonitorDataAction.emportCurrentXlsAbnormalSet.linkedStr=Connected string +MonitorDataAction.emportCurrentXlsAbnormalSet.state=Status +MonitorDataAction.emportCurrentXlsAbnormalSet.doFaild=Execution failed +MonitorDataAction.emportCurrentXlsAbnormalSet.noTable=The database table was not created! +MonitorDataAction.emportCurrentXlsAbnormalSet.outWarning=Prewarning value exceeded +MonitorDataAction.emportCurrentXlsAbnormalSet.shakehands=Handshake Monitoring +#MonitorDataAction.emportCurrentXlsAbnormalSet.day=Day +#MonitorDataAction.emportCurrentXlsAbnormalSet.hour=Hours +#MonitorDataAction.emportCurrentXlsAbnormalSet.minute=Minute +#MonitorDataAction.emportCurrentXlsAbnormalSet.second=Seconds +MonitorDataAction.emportCurrentXlsAbnormalSet.day= d +MonitorDataAction.emportCurrentXlsAbnormalSet.hour= h +MonitorDataAction.emportCurrentXlsAbnormalSet.minute= m +MonitorDataAction.emportCurrentXlsAbnormalSet.second= s +MonitorDataAction.emportCurrentXlsAbnormalSet.checkSetingsError=Set Name View Exception! + +#OidDictionaryAction.java +OidDictionaryAction.queryDictionary.queryDictFaild=Query data dictionary information failed! +OidDictionaryAction.queryDictionary.faild=Operation failed +OidDictionaryAction.queryDictionary.success=Operation successful +OidDictionaryAction.queryDictionary.oidExists=This OID dictionary already exists, please re-enter +OidDictionaryAction.queryDictionary.addBoxFaild=Failed to add cabinet information! +OidDictionaryAction.queryDictionary.openUpdateViewFaild=Open modify page failed! +OidDictionaryAction.queryDictionary.recordExists=The record already exists. Please re-enter! +OidDictionaryAction.queryDictionary.updateFaild=Update failed! + + +#PoliceSetAction.java +PoliceSetAction.queryPoliceSetInfo.faild=Operation failed +PoliceSetAction.queryPoliceSetInfo.success=Operation successful +PoliceSetAction.queryPoliceSetInfo.recordExists=The record already exists. Please re-enter! + +#SwitchDetectionAction.java +SwitchDetectionAction.emportXls.noData=No Data +SwitchDetectionAction.emportXls.title.portName=Port Name +SwitchDetectionAction.emportXls.title.bandwidth=Bandwidth (Mbps) +SwitchDetectionAction.emportXls.title.status=Status +SwitchDetectionAction.emportXls.title.inputRate=Input Rate (Bps) +SwitchDetectionAction.emportXls.title.packetRate=Packet Rate (Pps) +SwitchDetectionAction.emportXls.title.inputPacketLoss=Input Packet Loss +SwitchDetectionAction.emportXls.title.inputErrNum=Input Error Number +SwitchDetectionAction.emportXls.title.ouputRate=Output Rate (Bps) +SwitchDetectionAction.emportXls.title.outPacketRate=Outgoing Packet Rate (Pps) +SwitchDetectionAction.emportXls.title.outputPacketLoss=Number Of Output Loss Packets +SwitchDetectionAction.emportXls.title.outputErrNum=Number Of Output Errors +SwitchDetectionAction.emportXls.title.lastCheckTime=Last Monitoring Time +SwitchDetectionAction.emportXls.nodeIp=Node IP: +SwitchDetectionAction.emportXls.portInfo= Port Details +SwitchDetectionAction.emportXls.title1.checkType=Monitoring Category +SwitchDetectionAction.emportXls.title1.setName=Setting Name +SwitchDetectionAction.emportXls.title1.switchIp=Switch IP +SwitchDetectionAction.emportXls.title1.portNum=Port Number +SwitchDetectionAction.emportXls.title1.lastCheckTime=Latest Monitoring Time +SwitchDetectionAction.emportXls.netDetecateInfo=Network Element Monitoring Information Table +SwitchDetectionAction.emportXls.debugInfo1=Port data calculation discards data +SwitchDetectionAction.emportXls.debugInfo2=Port data calculation discarded data: time +SwitchDetectionAction.emportXls.debugInfo3=Port data calculation discarded data: Input packet speed and input byte speed calculation +SwitchDetectionAction.emportXls.debugInfo4=Port data calculation discarded data: input byte speed and bandwidth +SwitchDetectionAction.emportXls.noPictore=This node has no corresponding graphics configured! +SwitchDetectionAction.emportXls.operationRecord1=Operating Record: What statistics does the current node monitor? +SwitchDetectionAction.emportXls.operationRecord2=Operation record: Start updating node_figure_info monitoring information. . . +SwitchDetectionAction.emportXls.operationRecord3=Operation record: Start querying system basic information. . . +SwitchDetectionAction.emportXls.operationRecord4=Operation record: Begin to query node {0} related information. . . +SwitchDetectionAction.emportXls.operationRecord5=Operation record: Start generating svg file. . . +SwitchDetectionAction.emportXls.operationRecord6=Operation record: The query has several physical devices and the total height (or width) of the device. . . +SwitchDetectionAction.emportXls.normal=Normal +SwitchDetectionAction.emportXls.exception=Exception +SwitchDetectionAction.emportXls.netDetecationException=Network element monitoring information graphic display +SwitchDetectionAction.emportXls.queryCurrentNode=Query all device instances of the current node +SwitchDetectionAction.emportXls.operationRecord7=Operation record: Get system basic information +SwitchDetectionAction.emportXls.operationRecord8=Operation record: Get system statistics +SwitchDetectionAction.emportXls.showError=The graphical display of NE monitoring information -> Basic information of the query system +SwitchDetectionAction.emportXls.deviceError=Network element configuration initialization information: seqId, device type, device model query exception +SwitchDetectionAction.emportXls.operationRecord9=Operation record: Query device model basemap sql +SwitchDetectionAction.emportXls.noDevice=No device model! +SwitchDetectionAction.emportXls.operationRecord10=Operation record: Query device's child device sql +SwitchDetectionAction.emportXls.parentDeviceCode=Parent device code +SwitchDetectionAction.emportXls.operationRecord11=Operation record: The slot base number for query overlay +SwitchDetectionAction.emportXls.operationRecord12=Operation record: query device slot slot sql +SwitchDetectionAction.emportXls.subDeviceError=Get subdevice of device model {0} exception +SwitchDetectionAction.emportXls.configSuccess=Configuration succeeded +SwitchDetectionAction.emportXls.operationRecord13=Operation record: query leaf device (not repeat) sql +SwitchDetectionAction.emportXls.viewSubDeviceError=All leaf devices on the query interface configure the device +SwitchDetectionAction.emportXls.nodeFigureInfo=Recursive generation of nodeFigureInfo records +SwitchDetectionAction.emportXls.DeviceInfo=Generate nodeFigureInfo object from DeviceInfo +SwitchDetectionAction.emportXls.seqId=Get ip exception based on seqId:{0} +SwitchDetectionAction.emportXls.operationRecord14=Query port details sql +SwitchDetectionAction.emportXls.queryPortError=Query port details exception +SwitchDetectionAction.emportXls.queryAllPortError=Query all port details +SwitchDetectionAction.emportXls.detection_info=Acquires the partition of the detection_info table based on seqid and monitoring setting id +SwitchDetectionAction.emportXls.outTimeError={0} operation record: tableName={1}, all messages timed out, no monitoring information was received {2} +SwitchDetectionAction.emportXls.dataCheckTime=Operation record: The latest monitoring time of the query NE device is: {0} Operation record: The latest monitoring time of the NE device is +SwitchDetectionAction.emportXls.operationRecord15=Operation records: query configuration information related to the monitoring node sql +SwitchDetectionAction.emportXls.operationRecord16=Operation record: The latest monitoring time of the query NE device is: +SwitchDetectionAction.emportXls.node_figure_info=Update device status information, monitoring time (digital representation) and displayed picture in the node_figure_info table +SwitchDetectionAction.emportXls.operationRecord17=Operation record: query configuration information related to the monitoring node sql +SwitchDetectionAction.emportXls.setIdError=Gets the name of the table in which the monitoring information is stored through the monitoring setting id +SwitchDetectionAction.emportXls.getSql=getLatestDetectTimeDigitalBySeqId Get the latest monitoring sql +SwitchDetectionAction.emportXls.newDetecationInfo=Query the time of the latest monitoring information of seqId through seqId and table name. +SwitchDetectionAction.emportXls.getNewDetecationSql=getLatestCheckGapBySeqId Get Partition sql Get Latest Monitoring sql +SwitchDetectionAction.emportXls.detecationTimeError=The monitoring time interval of the latest monitoring information for seqId is queried by seqId and table name. +SwitchDetectionAction.emportXls.operationRecord18=Operation record: Item absolute path is +SwitchDetectionAction.emportXls.operationRecord19=Operation record: The path of the svg image is: +SwitchDetectionAction.emportXls.operationRecord20=Operation record: The path for generating the svg file is: +SwitchDetectionAction.emportXls.operationRecord21=Operation record: svg file generated: +SwitchDetectionAction.emportXls.svgFileError=Generate svg file exception +SwitchDetectionAction.emportXls.netSpeed=Bandwidth +SwitchDetectionAction.emportXls.output=Output Speed +SwitchDetectionAction.emportXls.input=Enter Speed +SwitchDetectionAction.emportXls.packout=Package Rate +SwitchDetectionAction.emportXls.packin=Package Rate +SwitchDetectionAction.emportXls.avgSpeed=Average Speed +SwitchDetectionAction.emportXls.pointSpeed=Instantaneous Speed +SwitchDetectionAction.emportXls.cartogram=Statistics +SwitchDetectionAction.emportXls.portLineChart=Get port detail line chart exception + +#DownLoadFileAction.java +DownLoadFileAction.downloadDevPic.downloadFileIsnull=Download file has been transferred or deleted! +DownLoadFileAction.downloadDevPic.noFile=File does not exist +DownLoadFileAction.downloadDevPic.toDownload=File does not exist, please click to download +DownLoadFileAction.downloadDevPic.saveToD=and stored under the D: disk + +#FunctionManagerAction.java +FunctionManagerAction.updateMKInfo.success=Operation succeeded +FunctionManagerAction.updateMKInfo.faild=Operation failed + +#MissionParameterDefaultsAction.java +MissionParameterDefaultsAction.add.toAddView=Jump to add page action +MissionParameterDefaultsAction.check.configExists=This parameter configuration already exists. Please reselect! +MissionParameterDefaultsAction.check.saveMissionInfo=Save Task and Parameter Information Operations +MissionParameterDefaultsAction.check.stopMission=Disable task operations +MissionParameterDefaultsAction.check.setingInfo=Parameter Information + +#SimpleMissionAction.java +SimpleMissionAction.add.toAddView=Jump to add page action +SimpleMissionAction.check.saveMissionInfo=Save task and parameter information operations +SimpleMissionAction.check.missionTypeError=Mission type error ~ Error +SimpleMissionAction.check.stopMission=Disable task operation +SimpleMissionAction.check.appUpdate=Application Upgrade +SimpleMissionAction.check.validateConfig=Configuration correctness verification +SimpleMissionAction.check.saveSuccess=Saved successfully +SimpleMissionAction.check.message1=Please set the default configuration of the task in the current system and then apply the upgrade +SimpleMissionAction.check.message2=Please set the default configuration of the task under the current system, and then verify the correctness of the configuration. + +#NmsErrorInfoAction.java +NmsErrorInfoAction.query.queryFaild=The query failed. Please try again +NmsErrorInfoAction.query.noResultReturn=For query related information, please re-operation +NmsErrorInfoAction.query.invalidId=Invalid data ID, please try again +NmsErrorInfoAction.query.getParamsFaild=Failed to get arguments, please try again +NmsErrorInfoAction.query.faild=Operation successful! + +#NmsTaskManagerAction.java +NmsTaskManagerAction.executeAction.nodeCheckInfo=Filtered Invalid Nodes (Groups) +NmsTaskManagerAction.executeAction.viewMission=View Task +NmsTaskManagerAction.executeAction.statistic=View Statistics +NmsTaskManagerAction.executeAction.statisticList=View the list of statistical results +NmsTaskManagerAction.executeAction.statisticListChild=View the list of statistical results +NmsTaskManagerAction.executeAction.pushFile=Push File +NmsTaskManagerAction.executeAction.getNotFlowData=Unstreamed Text Data Acquisition +NmsTaskManagerAction.executeAction.getFlowData=Streaming Text Data Acquisition +NmsTaskManagerAction.executeAction.regist=Register +NmsTaskManagerAction.executeAction.execCmd=Command Execution +NmsTaskManagerAction.executeAction.upgrade=Upgrade Deployment +NmsTaskManagerAction.executeAction.Y=Yes +NmsTaskManagerAction.executeAction.N=No +NmsTaskManagerAction.executeAction.missionHasCreate=Task Created +NmsTaskManagerAction.executeAction.missionStart=The task has started execution +NmsTaskManagerAction.executeAction.complete=Completed +NmsTaskManagerAction.executeAction.missionUncomplete=Task failed to execute +NmsTaskManagerAction.executeAction.loopMissionPrepareRevoke=Periodic tasks ready for revocation +NmsTaskManagerAction.executeAction.revokeLoopMission=Period cancellation +NmsTaskManagerAction.executeAction.revokeLoopMissionComplete=Period cancellation of cycle task +NmsTaskManagerAction.executeAction.allSuccess=All succeeded +NmsTaskManagerAction.executeAction.allFaild=All failed +NmsTaskManagerAction.executeAction.someSUccess=Partially successful +NmsTaskManagerAction.executeAction.createUserCheck=Publisher View +NmsTaskManagerAction.executeAction.createUserGroupCheck=Publisher Group View +NmsTaskManagerAction.executeAction.systemUser=All People In The System View +NmsTaskManagerAction.executeAction.title.missionName=Task Name +NmsTaskManagerAction.executeAction.title.missionType=Task Type +NmsTaskManagerAction.executeAction.title.isLoop=Cycle Task +NmsTaskManagerAction.executeAction.title.missionState=Task Status +NmsTaskManagerAction.executeAction.title.missionStateDesc=Sask Status Description +NmsTaskManagerAction.executeAction.title.system=Business System +NmsTaskManagerAction.executeAction.title.userGroup=User Group +NmsTaskManagerAction.executeAction.title.viewPrivilige=View Permission +NmsTaskManagerAction.executeAction.title.creater=Created By +NmsTaskManagerAction.executeAction.title.createTime=Created Time +NmsTaskManagerAction.executeAction.missionManageTable=Task Management Information Table +NmsTaskManagerAction.executeAction.noNode=No matching nodes, please re-operate! +NmsTaskManagerAction.executeAction.toJudgeFaild=Decisions failed +NmsTaskManagerAction.executeAction.faild=Operation failed +NmsTaskManagerAction.executeAction.success=Operation succeeded +NmsTaskManagerAction.executeAction.sql1=update mission_state_table mst set mst.mission_state_desc = 'Total'+total+' execution nodes,
'+(total-ok-fail)+'not executed,
'+( Ok+fail) + "have executed [success] +ok +", failed "+fail +"]' +NmsTaskManagerAction.executeAction.missionExec=Task execution notification +NmsTaskManagerAction.executeAction.missionComplete=End of task execution +NmsTaskManagerAction.executeAction.missionRevokeComplete=Tasks is revoked complete +NmsTaskManagerAction.executeAction.validFaild=Decision failed +NmsTaskManagerAction.executeAction.sql2=update mission_state_table mst set mst.mission_state_desc = 'Latest period total' + total + 'execution nodes,
' + (total-ok-fail) + 'not executed,
' +(ok+fail)+"have executed [success]+ok+", failed"+fail+"]' where mst.mission_id +NmsTaskManagerAction.executeAction.validFaildLoop=The status of the current task is re-evaluated after the failure, and the task status description (cycle) is abnormal +NmsTaskManagerAction.executeAction.root=Root Node +NmsTaskManagerAction.executeAction.secondNode=Secondary Node +NmsTaskManagerAction.executeAction.thirdNode=Three-level Node +NmsTaskManagerAction.executeAction.missionStateError=Exception in task status! +NmsTaskManagerAction.executeAction.missionExpire=The start and end time of the task execution has expired and the operation failed! +NmsTaskManagerAction.executeAction.miessionState=Task Status is set to +NmsTaskManagerAction.executeAction.stop=Disabled +NmsTaskManagerAction.executeAction.alive=Enabled +NmsTaskManagerAction.executeAction.selectMission=Please select a task! +NmsTaskManagerAction.executeAction.checkResultFaild=View failed +NmsTaskManagerAction.executeAction.checkResultViewFaild=View task execution result graph failed! +NmsTaskManagerAction.executeAction.checkMissionResultFaild=Task Result Query Failed +NmsTaskManagerAction.executeAction.missionResultChart=Task result statistics list exception! +NmsTaskManagerAction.executeAction.checkResultError=View task execution result exception! +NmsTaskManagerAction.executeAction.missionName=Task Name +NmsTaskManagerAction.executeAction.nodeIp=Node IP +NmsTaskManagerAction.executeAction.resultReturn=Execution Result +NmsTaskManagerAction.executeAction.resultCause=Result Reason +NmsTaskManagerAction.executeAction.all=All +NmsTaskManagerAction.executeAction.ok=Success +NmsTaskManagerAction.executeAction.err=Failed +NmsTaskManagerAction.executeAction.lssue=Issued +NmsTaskManagerAction.executeAction.lssueSuccess=Successfully issued +NmsTaskManagerAction.executeAction.processStop=Process was deactivated successfully +NmsTaskManagerAction.executeAction.fileBackup=File Backup Success +NmsTaskManagerAction.executeAction.fileUpdate=The file was updated successfully +NmsTaskManagerAction.executeAction.startSuccess=Startup succeeded +NmsTaskManagerAction.executeAction.startFaild=Start failed +NmsTaskManagerAction.executeAction.unknowState=Unknow result status +NmsTaskManagerAction.executeAction.noResultToExport=No query result information, no export +NmsTaskManagerAction.executeAction.filePush=File Push +NmsTaskManagerAction.executeAction.resultExport=Result Export +NmsTaskManagerAction.executeAction.selectFileIsNotExists=The selected target file has been completely transferred or deleted! +NmsTaskManagerAction.executeAction.missionLssueSuccess=The task was issued successfully +NmsTaskManagerAction.executeAction.cmdExecSuccess=Command executed successfully +NmsTaskManagerAction.executeAction.cmdExecFaild=Command execution failed +NmsTaskManagerAction.executeAction.prepareRevoke=Ready to revoke +NmsTaskManagerAction.executeAction.revoke=Undoing +NmsTaskManagerAction.executeAction.revokSuccess=Undo completed +NmsTaskManagerAction.executeAction.noLinkInfo=The related task information was not found. Please try again! +NmsTaskManagerAction.executeAction.cmdFormatErr=Incorrect command parameter format +NmsTaskManagerAction.executeAction.cmdFormatErrToDo=The command parameter is not in the correct format! operation failed +NmsTaskManagerAction.executeAction.fileName=Accessory Name +NmsTaskManagerAction.executeAction.fileSize=Attachment Size +NmsTaskManagerAction.executeAction.fileTotalSize=Total Attachment Size +NmsTaskManagerAction.executeAction.uploadOk=Upload ok +NmsTaskManagerAction.executeAction.addPushFile=Please add the push file, otherwise the task cannot be created! +NmsTaskManagerAction.executeAction.updateInfoFaild=The task failed to view the modification information +NmsTaskManagerAction.executeAction.noCommandToExec=No corresponding command parameter + +#NodeGroupManageAction.java +NodeGroupManageAction.downloadExample.title.nodeGroupName=Node Group Name (Required) +NodeGroupManageAction.downloadExample.title.groupDesc=Group Description +NodeGroupManageAction.downloadExample.title.parentGroup=Parent Group (Default is the top node when empty) +NodeGroupManageAction.downloadExample.nodeGroupInfo=Node Group Information Table +NodeGroupManageAction.downloadExample.errorInfo1=Line 1 column node node group name cannot be empty; +NodeGroupManageAction.downloadExample.errorInfo2=Line 1 column node node group name is incorrect; +NodeGroupManageAction.downloadExample.errorInfo3=Line 2 column node group description extra long; +NodeGroupManageAction.downloadExample.errorInfo4=Line 3 column node parent group error; +NodeGroupManageAction.downloadExample.nodeGroupName=Node Group Name +NodeGroupManageAction.downloadExample.groupDesc=Group Description +NodeGroupManageAction.downloadExample.parentGroupId= Parent Group ID +NodeGroupManageAction.downloadExample.errorInfo= Error Message +NodeGroupManageAction.downloadExample.faild=Operation failed +NodeGroupManageAction.downloadExample.success=Operation succeeded +NodeGroupManageAction.downloadExample.fileIsNull=The selected file is empty. Please select it again! +NodeGroupManageAction.downloadExample.subNodeList=This node group has created nodes and cannot create child node groups; +NodeGroupManageAction.downloadExample.nodegroupTable=View permission cannot be larger than its parent node group; +NodeGroupManageAction.downloadExample.nodeGroupExists=Node group already exists; +NodeGroupManageAction.downloadExample.nodeInfoExportErr=The node information import exception; +NodeGroupManageAction.downloadExample.nodeGroupNameRequired=Node Group Name (Required) +NodeGroupManageAction.downloadExample.parentGroup=Parent Group (Default is top-level node when empty) +NodeGroupManageAction.downloadExample.nodeGroupIsExists=Node group already exists. Please re-enter! +NodeGroupManageAction.downloadExample.viewLevleTooBig=View permission cannot be larger than its parent node group. Please re-enter! +NodeGroupManageAction.downloadExample.viewLevleTooSmall=View permission cannot be smaller than its child node group. Please re-enter! + +#NodeManageAction.java +NodeManageAction.addNodeInfo.boxHadNode=Node has been placed in the selected cabinet location. Please re-enter! +NodeManageAction.addNodeInfo.success=Operation successful +NodeManageAction.addNodeInfo.faild=Operation failed +NodeManageAction.addNodeInfo.nodeHadIp=This IP already exists in this node group. Please re-enter! +NodeManageAction.addNodeInfo.title.nodeIp=Node IP (Required) +NodeManageAction.addNodeInfo.title.nodeMac=Node MAC (Required) +NodeManageAction.addNodeInfo.title.nodeName=Node Name (Required) +NodeManageAction.addNodeInfo.title.nodeType=Node Type (Required, 0: Server, 1: Network Element( NE type is required)) +NodeManageAction.addNodeInfo.title.netType=Network Element Type (1: Special Equipment, 2: Disk Array, 3: Blocking Router, 4: Other Network Element) +NodeManageAction.addNodeInfo.title.username=User Name +NodeManageAction.addNodeInfo.title.pwd=Password +NodeManageAction.addNodeInfo.title.uWidth=Node Thickness U Bit (Required) +NodeManageAction.addNodeInfo.title.boxId=Rack Number (Required) +NodeManageAction.addNodeInfo.title.startU=Rack Start U Bit (Required) +NodeManageAction.addNodeInfo.title.snmpVersion=SNMP Version (Required, Version2c=1 Version3=3) +NodeManageAction.addNodeInfo.title.nodeState=Node Status (Must Fill in, 0: Normal, 1: Deleted or deactivated) +NodeManageAction.addNodeInfo.title.nodeIpInfo=Node IP Information +NodeManageAction.addNodeInfo.title.nodeDesc=Node Description +NodeManageAction.addNodeInfo.nodeTable=Node Table +NodeManageAction.addNodeInfo.errorInfo1=Line 1 column cannot be empty; +NodeManageAction.addNodeInfo.errorInfo2=Wrong format for ip address in row 1; +NodeManageAction.addNodeInfo.errorInfo3=Line 2 column node Mac cannot be empty; +NodeManageAction.addNodeInfo.errorInfo4=Line 2 column node Mac type error; +NodeManageAction.addNodeInfo.errorInfo5=Line 3 column node name cannot be empty; +NodeManageAction.addNodeInfo.errorInfo6=Line 4 column node type cannot be empty; +NodeManageAction.addNodeInfo.errorInfo7=Line 4 column node type error; +NodeManageAction.addNodeInfo.errorInfo8=Wrong format for node type for row 4; +NodeManageAction.addNodeInfo.errorInfo9=The number of network elements in row 5 is 1-4; +NodeManageAction.addNodeInfo.errorInfo10=The element type of row 5 is malformed; +NodeManageAction.addNodeInfo.errorInfo11=Line numbers for the 5 column are 1-4; +NodeManageAction.addNodeInfo.errorInfo12=When the row 4 column value is 1, the NE type of 5 columns is required; +NodeManageAction.addNodeInfo.errorInfo13=Line 8 column node U-bit cannot be empty; +NodeManageAction.addNodeInfo.errorInfo14=Line 8 column node U bit error; +NodeManageAction.addNodeInfo.errorInfo15=Line 8 column node U bit type error; +NodeManageAction.addNodeInfo.errorInfo16=Line 9 column cabinet number cannot be empty; +NodeManageAction.addNodeInfo.errorInfo17=The starting U bit of the row 10 column cabinet cannot be empty; +NodeManageAction.addNodeInfo.errorInfo18=Error in starting U bit of row 10 column cabinet; +NodeManageAction.addNodeInfo.errorInfo19=Wrong starting U bit type for row 10 column cabinet; +NodeManageAction.addNodeInfo.errorInfo20=Line 11 column SNMP version cannot be empty; +NodeManageAction.addNodeInfo.errorInfo21=Line 11 column SNMP version error; +NodeManageAction.addNodeInfo.errorInfo22=Line 12 column node status cannot be empty; +NodeManageAction.addNodeInfo.errorInfo23=Line 12 column node status error; +NodeManageAction.addNodeInfo.selectFileIsNull=The selected file is empty. Please reselect! +NodeManageAction.addNodeInfo.noBoxWithNode=The cabinet selected for this node does not exist +NodeManageAction.addNodeInfo.spaceToSmall=This node was selected for placement beyond the enclosure +NodeManageAction.addNodeInfo.boxHadNodeDesc=This node has placed a node in the selected cabinet location +NodeManageAction.addNodeInfo.nodeHadIpDesc=This IP already exists in this node group +NodeManageAction.addNodeInfo.importFaild=The node group for this node is empty and the import failed +NodeManageAction.addNodeInfo.nodeInfoImportFaild=This node information import exception +NodeManageAction.addNodeInfo.newNode=New Node + +#BoxSetAction.java +BoxSetAction.queryBoxInfo.queryBoxFaild=Failed to query cabinet information! +BoxSetAction.queryBoxInfo.boxManageAddValidate=Failed to add validation to the cabinet management! +BoxSetAction.queryBoxInfo.success=Operation successful +BoxSetAction.queryBoxInfo.faild=Operation failed +BoxSetAction.queryBoxInfo.addBoxFaild=Failed to add cabinet information! +BoxSetAction.queryBoxInfo.toUpdateViewFaild=Open modify page failed! +BoxSetAction.queryBoxInfo.recordExists=Record already exists. Please re-enter! +BoxSetAction.queryBoxInfo.boxManageUpdateFaild=The cabinet management modification is abnormal! +BoxSetAction.queryBoxInfo.boxIdExists=The cabinet number already exists, modification failed! +BoxSetAction.queryBoxInfo.hadUpdateNode=The node has been maintained under the cabinet, and the U bit must be reduced! +BoxSetAction.queryBoxInfo.updateFaild=Update failed! +BoxSetAction.queryBoxInfo.hadUpdateNodeToDelete1=The cabinet +BoxSetAction.queryBoxInfo.hadUpdateNodeToDelete2= has been maintained nodes and it is forbidden to delete it! +BoxSetAction.queryBoxInfo.deleteFaild=Delete failed! +BoxSetAction.queryBoxInfo.title=Number (Required) +BoxSetAction.queryBoxInfo.title=U-Bit (Required) +BoxSetAction.queryBoxInfo.title=Room Number (Required) +BoxSetAction.queryBoxInfo.title=Room Line Number (Required) +BoxSetAction.queryBoxInfo.title=Room Column Number (Required ) +BoxSetAction.queryBoxInfo.title=Description (Required) +BoxSetAction.queryBoxInfo.boxBaseInfo=Cabinet Basic Information Table +BoxSetAction.queryBoxInfo.errorInfo1=Line 1 column node number cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo2=Line 1 column node number error; +BoxSetAction.queryBoxInfo.errorInfo3=Line 2 column node U-bit cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo4=Line 2 column node U bit error, must be a number; +BoxSetAction.queryBoxInfo.errorInfo5=Line 3 column node room number cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo6=Line 3 node node room number error; +BoxSetAction.queryBoxInfo.errorInfo7=Line 4 column node room row number cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo8=Line 4 column node room line number error; +BoxSetAction.queryBoxInfo.errorInfo9=Line 5 column node room column number cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo10=Line 5 column node room column number error; +BoxSetAction.queryBoxInfo.errorInfo11=Line 6 column node description cannot be empty; +BoxSetAction.queryBoxInfo.errorInfo12=Line 6 column node description error; +BoxSetAction.queryBoxInfo.fileIsNull=The selected file is empty. Please select again! +BoxSetAction.queryBoxInfo.boxIdRepeat=This node cabinet number already exists +BoxSetAction.queryBoxInfo.noRoomExists=The node selected by this node does not exist +BoxSetAction.queryBoxInfo.roomPostionExists=The node selected room location does not exist +BoxSetAction.queryBoxInfo.roomHadBox=The cabinet selected by this node already has a cabinet +BoxSetAction.queryBoxInfo.nodeInfoErr=The node information import exception +BoxSetAction.queryBoxInfo.title1.boxId=Rack Number +BoxSetAction.queryBoxInfo.title1.boxDesc=Rack Description +BoxSetAction.queryBoxInfo.title1.roomId=Room Number + +#NodeGroupPositionAction.java +NodeGroupPositionAction.saveConfigTopo.saveConfigInfoFaild=Failed to save topology map configuration information +NodeGroupPositionAction.saveConfigTopo.flowErrNode=Node with abnormal traffic +NodeGroupPositionAction.saveConfigTopo.room=Room +NodeGroupPositionAction.saveConfigTopo.row=Line +NodeGroupPositionAction.saveConfigTopo.column=Column +NodeGroupPositionAction.saveConfigTopo.box=Cabinet +NodeGroupPositionAction.saveConfigTopo.groupNoNode=Nodes not yet maintained under the node group + +#NodePositionAction.java +NodePositionAction.loadImgs.loadImgsFaild=loadImgs method failed to load 'modify' image +NodePositionAction.ajaxDrawDateSource.ajaxDrawDateSourceFaild=ajaxDrawDateSource method, get data error +NodePositionAction.getChildGroup.getChildGroupFaild=getChildGroup method, get child node group error +NodePositionAction.initnodeBox.initnodeBoxFaild=initnodeBox method, error initializing cabinet information +NodePositionAction.getWarningInfo.getWarningInfoFaild=getWarningInfo method, get alarm data error +NodePositionAction.getIconModules.systemId=System ID +NodePositionAction.getIconModules.getIconModulesFaild=getIconModules method, error initializing desktop element +NodePositionAction.getBoxByGroup.getBoxByGroupFaild=getBoxByGroup method, topology showing error getting cabinet +NodePositionAction.isHaveWriningNodeInBox.isHaveWriningNodeInBoxFaild=isHaveWriningNodeInBox method to determine if an alarm node exists +NodePositionAction.getBoxInfo.getBoxInfoFaild=getBoxInfo method, get error on all cabinets +NodePositionAction.getLastLineSate.getLastLineSateFaild=getLastLineSate method, refresh connection error +NodePositionAction.saveBoxInfo.saveBoxInfoFaild=saveBoxInfo method, error saving cabinet information +NodePositionAction.updateNodes.updateNodesFaild=updateNodes method, error saving location information +NodePositionAction.deleteNodes.deleteNodesFaild=deleteNodes method, error deleting node +NodePositionAction.updateLines.updateLinesFaild=updateLines method, update connection error +NodePositionAction.deleteLatt.deleteLattFaild=deleteLatt method, delete the node in the cabinet + + +#RoomManageAction.java +RoomManageAction.downloadExample.title.roomId=Room Number (Required) +RoomManageAction.downloadExample.title.roomRows=Room Number (Required) +RoomManageAction.downloadExample.title.roomColumns=Number Of Room Columns (Required) +RoomManageAction.downloadExample.title.rootDesc=Room Description +RoomManageAction.downloadExample.roomInfoTable=Room Information Table +RoomManageAction.downloadExample.errorInfo1=Line 1 column node room number cannot be empty; +RoomManageAction.downloadExample.errorInfo2=Line 1 node node room number error; +RoomManageAction.downloadExample.errorInfo3=The number of rows in the 2 row node cannot be empty; +RoomManageAction.downloadExample.errorInfo4=The number of rows in the 2 row of nodes must be less than or equal to; +RoomManageAction.downloadExample.errorInfo5=Line 2 column node room number error; +RoomManageAction.downloadExample.errorInfo6=Line 3 column node room columns cannot be empty; +RoomManageAction.downloadExample.errorInfo7=The number of columns in the row 3 node is less than or equal to; +RoomManageAction.downloadExample.errorInfo8=Wrong number of rows in node 3 column; +RoomManageAction.downloadExample.errorInfo9=Line 4 column node room description long; +RoomManageAction.downloadExample.roomId=Room Number +RoomManageAction.downloadExample.roomRows=Room Lines +RoomManageAction.downloadExample.roomColumns=Computer Room Columns +RoomManageAction.downloadExample.roomDesc=Room Description +RoomManageAction.downloadExample.errorInfo=Error Message +RoomManageAction.downloadExample.success=Operation successful +RoomManageAction.downloadExample.faild=Operation failed +RoomManageAction.downloadExample.selectFileIsNull=The selected file is empty. Please select it again! +RoomManageAction.downloadExample.roomIdExists=The node room number already exists; +RoomManageAction.downloadExample.nodeInfoImportErr=The node information import exception; +RoomManageAction.downloadExample.title1={ "Room Number", "Room Number", "Room List", "Room Description" } +RoomManageAction.downloadExample.queryRoomInfoErr=Query room information is abnormal +RoomManageAction.downloadExample.addRoomConfigErr=Add room configuration check exception +RoomManageAction.downloadExample.addRoomInfoErr=Failed to add room information +RoomManageAction.downloadExample.updateRoomErr=Query room modification +RoomManageAction.downloadExample.ajaxValidateErr=ajax Query Verification Room Number Abnormal +RoomManageAction.downloadExample.changeRowsErr=This room has maintained the cabinet and it is forbidden to reduce the number of rows! +RoomManageAction.downloadExample.changecolumnssErr=The room has been maintained by the machine room. Do not reduce the number of columns! +RoomManageAction.downloadExample.updateRoomInfoErr=Failed to update room information +RoomManageAction.downloadExample.deleteUnable1=The room +RoomManageAction.downloadExample.deleteUnable2= has already maintained the cabinet. Do not delete it! +RoomManageAction.downloadExample.deleteRoomInfoErr=Failed to delete room information + +#TopoShowAction.java +TopoShowAction.show3DRoom.alramInfo1=Alarm Message +TopoShowAction.show3DRoom.nodeNum=Total Number Of Nodes +TopoShowAction.show3DRoom.normalNode=Number Of Normal Nodes +TopoShowAction.show3DRoom.abnormalNode=Number Of Abnormal Nodes +TopoShowAction.show3DRoom.alramInfo3=Nodes not yet maintained under the node group + +#PluginManageAction.java +PluginManageAction.downloadPlugin.targetFileIsNull=The target file has been moved or deleted +PluginManageAction.downloadPlugin.fileDownloadFaild=Attachment failed to download +PluginManageAction.downloadPlugin.fileReadFaild=Failed to read file +PluginManageAction.downloadPlugin.onlyOneToolToUse=Only one tool can be downloaded at a time +PluginManageAction.downloadPlugin.success=Operation successful +PluginManageAction.downloadPlugin.faild=Operation failed +PluginManageAction.downloadPlugin.uploadFile={0}" file uploaded to "{1} "succeeded +PluginManageAction.downloadPlugin.noTools=No tools selected +PluginManageAction.downloadPlugin.toolNameRepeat=Tool name already exists +PluginManageAction.downloadPlugin.fileNameValidateFaild=File name validation failed + +#ServerManagerAction.java +ServerManagerAction.downloadExample.title.serverName=Server Name (Required) +ServerManagerAction.downloadExample.title.serverIp=Server IP (Required) +ServerManagerAction.downloadExample.title.serverDesc=Server Description +ServerManagerAction.downloadExample.serverInfoTable=Server Information Table +ServerManagerAction.downloadExample.errorInfo1=Line 1 column node server name cannot be empty; +ServerManagerAction.downloadExample.errorInfo2=Line 1 column node server name error; +ServerManagerAction.downloadExample.errorInfo3=Line 2 column node server IP cannot be empty; +ServerManagerAction.downloadExample.errorInfo4=Line 2 column node server IP format error; +ServerManagerAction.downloadExample.errorInfo5=Line 2 column node server IP error; +ServerManagerAction.downloadExample.errorInfo6=Line 3 column node server description extra long; +ServerManagerAction.downloadExample.serverName=Server Name +ServerManagerAction.downloadExample.serverIp=Server IP +ServerManagerAction.downloadExample.serverDesc=Server Description +ServerManagerAction.downloadExample.errorInfo=Error Message +ServerManagerAction.downloadExample.success=Operation succeeded +ServerManagerAction.downloadExample.faild=Operation failed +ServerManagerAction.downloadExample.selectFileIsNull=The selected file is empty. Please reselect! +ServerManagerAction.downloadExample.serverNameExists=The node server name already exists; +ServerManagerAction.downloadExample.serverIpExists=The node server IP already exists; +ServerManagerAction.downloadExample.nodeInfoImportErr=This node information import exception; +ServerManagerAction.downloadExample.Y=Yes +ServerManagerAction.downloadExample.N=No +ServerManagerAction.downloadExample.title1.createTime=Creation Time +ServerManagerAction.downloadExample.title1.isOnline=Online +ServerManagerAction.downloadExample.errorInfo7=Line 1 column node starting IP cannot be empty; +ServerManagerAction.downloadExample.errorInfo8=Line 1 column node starting IP format error; +ServerManagerAction.downloadExample.errorInfo9=Line 1 column starting IP error; +ServerManagerAction.downloadExample.errorInfo10=Line 2 column node ending IP cannot be empty; +ServerManagerAction.downloadExample.errorInfo11=Line 2 column node end IP format error; +ServerManagerAction.downloadExample.errorInfo12=Line 2 column node end IP error; +ServerManagerAction.downloadExample.startIp=Start IP +ServerManagerAction.downloadExample.endIp=End IP +ServerManagerAction.downloadExample.inputIpErr=Start ip cannot be greater than end ip +ServerManagerAction.downloadExample.serverIpRepeat=IP cross-replication with server +ServerManagerAction.downloadExample.serverDetecateInfo=Server Monitors IP Information +ServerManagerAction.downloadExample.dataIdInvalid=Invalid data ID, please try again +ServerManagerAction.downloadExample.DcConfigErr=Add new DC range configuration validation exception +ServerManagerAction.downloadExample.addDcconfigErr=New DC range configuration failed! +ServerManagerAction.downloadExample.updateDcconfigErr=Modify DC scope configuration validation exception +ServerManagerAction.downloadExample.deleteSql=Delete SQL Statement +ServerManagerAction.downloadExample.addElement=Add Element +ServerManagerAction.downloadExample.updateDCRangConfigErr=DC range configuration modification failed + +#BrandManageAction.java +BrandManageAction.addBrand.success=Operation successful +BrandManageAction.addBrand.faild=Operation failed + +#DataDictionaryAction.java +DataDictionaryAction.queryDictionary.queryDictInfoErr=Query data dictionary information failed +DataDictionaryAction.queryDictionary.warningLevel=Level Alarm +DataDictionaryAction.queryDictionary.emergent=Emergency +DataDictionaryAction.queryDictionary.nonEmergent=Non-Emergency +DataDictionaryAction.queryDictionary.selectDetecateDataListErr=Query monitoring data list filter condition failed +DataDictionaryAction.queryDictionary.addDictValidateErr= New Data Dictionary Validation Exception +DataDictionaryAction.queryDictionary.success=Operation successful +DataDictionaryAction.queryDictionary.faild=Operation failed +DataDictionaryAction.queryDictionary.addDictErr=Failed to add data dictionary +DataDictionaryAction.queryDictionary.openUpdateViewErr=Open modified page failed +DataDictionaryAction.queryDictionary.openUpdateSourceViewErr=Open modify source data page failed +DataDictionaryAction.queryDictionary.updateDictValidateErr=Update data dictionary validation exception +DataDictionaryAction.queryDictionary.NCwarning=Whether the NC end reports active alarm +DataDictionaryAction.queryDictionary.updateErr=Update failed +DataDictionaryAction.queryDictionary.queryDictSourceInfoErr=Query data dictionary source data information failed +DataDictionaryAction.queryDictionary.getTypeDictErr=Fetching category dictionary failed +DataDictionaryAction.queryDictionary.addDictSourceErr=Failed to add data dictionary source data + +#DeviceBrandManageAction.java +DeviceBrandManageAction.downloadExampleType.title.deviceModel=Device Model (Required, Unique identifier of the device) +DeviceBrandManageAction.downloadExampleType.title.brand=Brand (Required, Corresponding brand number) +DeviceBrandManageAction.downloadExampleType.title.deviceDesc=Device Description +DeviceBrandManageAction.downloadExampleType.title.postionNum=Location Number Below Level +DeviceBrandManageAction.downloadExampleType.title.parentModel=Parent Model(The blank defaults to the top-level device) +DeviceBrandManageAction.downloadExampleType.title.picType=Image Type +DeviceBrandManageAction.downloadExampleType.title.X=X Coordinate +DeviceBrandManageAction.downloadExampleType.title.Y=Y Coordinate +DeviceBrandManageAction.downloadExampleType.title.width=Width +DeviceBrandManageAction.downloadExampleType.title.heigh=High +DeviceBrandManageAction.downloadExampleType.title.color=Edge Color +DeviceBrandManageAction.downloadExampleType.title.lineWidth=Edge Width +DeviceBrandManageAction.downloadExampleType.title.picName=Image Name (Required) +DeviceBrandManageAction.downloadExampleType.title.nameFormate=Name Format ([Y]: represents the location of the device itself in the parent device, [X]: represents the position of the parent device in the grandfather device) +DeviceBrandManageAction.downloadExampleType.title.monitorType=Monitoring Category Table +DeviceBrandManageAction.downloadExampleType.title.linkField=Connection Field +DeviceBrandManageAction.downloadExampleType.title.stateField=Status Field +DeviceBrandManageAction.downloadExampleType.title.character=Exception Comparison Character (>, <, =) +DeviceBrandManageAction.downloadExampleType.title.value=Exception Comparison Value +DeviceBrandManageAction.downloadExampleType.title.picLevel=Graph Level +DeviceBrandManageAction.downloadExampleType.title.isLinked=Is There A Link (1 Yes, 0 No) +DeviceBrandManageAction.downloadExampleType.title.isLeaf=Is The Leaf Device (Required, 1 Yes, 0 No ) +DeviceBrandManageAction.downloadExampleType.title.maxConn=Maximum Number Of Device Overlays (Shaping value, default is 1) +DeviceBrandManageAction.downloadExampleType.title1.brandCode=Device Brand Code (Required) +DeviceBrandManageAction.downloadExampleType.title1.deviceModel=Device Model (Required) +DeviceBrandManageAction.downloadExampleType.title1.parentDevice=Available Parent Device (Required) +DeviceBrandManageAction.downloadExampleType.deviceManageInfoTable=Device Management Information Table +DeviceBrandManageAction.downloadExampleType.deviceManageInfo=Device Management Information +DeviceBrandManageAction.downloadExampleType.brandLinkInfo=Brand model association error message +DeviceBrandManageAction.downloadExampleType.errorInfo1=Line 1 column node device model cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo2=Line 1 column node device model number error; +DeviceBrandManageAction.downloadExampleType.errorInfo3=The brand of the row 2 column node cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo4=Wrong branding of row 2 column; +DeviceBrandManageAction.downloadExampleType.errorInfo5=Line 3 column node device description error; +DeviceBrandManageAction.downloadExampleType.errorInfo6=Error in the position number at the 4 column level; +DeviceBrandManageAction.downloadExampleType.errorInfo7=Line 5 column node parent device model error; +DeviceBrandManageAction.downloadExampleType.errorInfo8=Line 6 column node image type error; +DeviceBrandManageAction.downloadExampleType.errorInfo9=Line 7 column node X coordinate error; +DeviceBrandManageAction.downloadExampleType.errorInfo10=Line 8 column node Y coordinate error; +DeviceBrandManageAction.downloadExampleType.errorInfo11=Line 9 column node width error; +DeviceBrandManageAction.downloadExampleType.errorInfo12=Line 10 column node high error; +DeviceBrandManageAction.downloadExampleType.errorInfo13=Line 11 column node edge color error; +DeviceBrandManageAction.downloadExampleType.errorInfo14=Line 12 column node width error; +DeviceBrandManageAction.downloadExampleType.errorInfo15=Line 13 column node image name cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo16=Line 13 column node image name error; +DeviceBrandManageAction.downloadExampleType.errorInfo17=Line 14 column node name is malformed; +DeviceBrandManageAction.downloadExampleType.errorInfo18=Line 15 column node monitoring category table error; +DeviceBrandManageAction.downloadExampleType.errorInfo19=Line 16 column node connection field error; +DeviceBrandManageAction.downloadExampleType.errorInfo20=Line 17 column node status field error; +DeviceBrandManageAction.downloadExampleType.errorInfo21=Line 18 column node exception comparator charactor error; +DeviceBrandManageAction.downloadExampleType.errorInfo22=Whether there is a link error in the row 21 column node; +DeviceBrandManageAction.downloadExampleType.errorInfo23=Line 20 column node graph level error; +DeviceBrandManageAction.downloadExampleType.errorInfo24=Line 22 column node can be configured with parent device error; +DeviceBrandManageAction.downloadExampleType.errorInfo25=Whether the row 22 column node is a leaf device error; +DeviceBrandManageAction.downloadExampleType.errorInfo26=Line 23 column node device maximum overlay error; +DeviceBrandManageAction.downloadExampleType.errorInfo27=Line 1 column node device brand code cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo28=Line 1 column node device brand code error; +DeviceBrandManageAction.downloadExampleType.errorInfo29=Line 3 column node configurable parent device cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo30=Line 3 column node can be mismatched with parent device error; +DeviceBrandManageAction.downloadExampleType.errorInfo31=Line 2 column node device model cannot be empty; +DeviceBrandManageAction.downloadExampleType.errorInfo32=Line 2 column node device model number error; +DeviceBrandManageAction.downloadExampleType.errorInfo33=Line 19 column node exception comparator value error; +DeviceBrandManageAction.downloadExampleType.deviceType=Device Model +DeviceBrandManageAction.downloadExampleType.brandBelong=Owned Brand +DeviceBrandManageAction.downloadExampleType.deviceDesc=Device Description +DeviceBrandManageAction.downloadExampleType.positionId= Level Below Position +DeviceBrandManageAction.downloadExampleType.parentDeviceType=Parent Device Model +DeviceBrandManageAction.downloadExampleType.pictureType=Image Type +DeviceBrandManageAction.downloadExampleType.XHeight=X Coordinates +DeviceBrandManageAction.downloadExampleType.YWeith=Y Coordinates +DeviceBrandManageAction.downloadExampleType.weith=Width +DeviceBrandManageAction.downloadExampleType.height=High +DeviceBrandManageAction.downloadExampleType.lineColor=Monitoring Category Table +DeviceBrandManageAction.downloadExampleType.lineWeith=Width +DeviceBrandManageAction.downloadExampleType.pictureName=Image Name +DeviceBrandManageAction.downloadExampleType.nameFormat=Name Format +DeviceBrandManageAction.downloadExampleType.detecateTypeTable=Monitoring Category Table +DeviceBrandManageAction.downloadExampleType.linkField=Connection Field +DeviceBrandManageAction.downloadExampleType.stateField=Status Field +DeviceBrandManageAction.downloadExampleType.exceptionCompare=Exception Finder +DeviceBrandManageAction.downloadExampleType.exceptionCompareValue=Exception comparison value +DeviceBrandManageAction.downloadExampleType.pictureLevel=Graph Level +DeviceBrandManageAction.downloadExampleType.isLinked=Is There A Link +DeviceBrandManageAction.downloadExampleType.isLeafDevice=Is Leaf Devices +DeviceBrandManageAction.downloadExampleType.maxNum=Maximum Number Of Device Overlays +DeviceBrandManageAction.downloadExampleType.errorInfo=Error Message +DeviceBrandManageAction.downloadExampleType.deviceBrandCode=Device Branding Code +DeviceBrandManageAction.downloadExampleType.deviceBrand=Device Model +DeviceBrandManageAction.downloadExampleType.parentDevice=Configurable Parent Device +DeviceBrandManageAction.downloadExampleType.success=Operation succeeded +DeviceBrandManageAction.downloadExampleType.faild=Operation failed +DeviceBrandManageAction.downloadExampleType.selectFileIsNull=The selected file is empty, please reselect +DeviceBrandManageAction.downloadExampleType.slotDeviceInputErr=Slot device error +DeviceBrandManageAction.downloadExampleType.currentDetecateTypeNotExists=Current monitor category table does not exist +DeviceBrandManageAction.downloadExampleType.exceptionValidateErr1=Not exist +DeviceBrandManageAction.downloadExampleType.exceptionValidateErr2=Devices +DeviceBrandManageAction.downloadExampleType.parentDeviceBrandIsNull=The parent device model does not exist +DeviceBrandManageAction.downloadExampleType.nodeInfoImportErr=This node information import exception +DeviceBrandManageAction.downloadExampleType.deviceBrandCodeNotExists=Device branding code does not exist +DeviceBrandManageAction.downloadExampleType.deviceBrandNotExists=Device model does not exist +DeviceBrandManageAction.downloadExampleType.parentDeviceNotExists=Configurable parent device does not exist +DeviceBrandManageAction.downloadExampleType.mapExists=Board mainframe correspondence already exists +DeviceBrandManageAction.emportCurrentXlsType.exportResultNotExists=Export result does not exist +DeviceBrandManageAction.emportCurrentXlsType.title={ "Device Model", "Brand of", "Device Description", "Parent Device Model", "Created Time"} +DeviceBrandManageAction.emportCurrentXlsType.title.createTime=Create Time +DeviceBrandManageAction.emportCurrentXlsType.title1={ "Device Brand Code", "Device Model", "Suitable Device"} +DeviceBrandManageAction.emportCurrentXlsType.title1.subDevice=Suitable Device +DeviceBrandManageAction.downloadExample.title.brandCode=Brand Number (Required) +DeviceBrandManageAction.downloadExample.title.brandName=Brand Name (Required) +DeviceBrandManageAction.downloadExample.title.brandDesc=Brand Description +DeviceBrandManageAction.downloadExample.brandManageTable=Brand Management Information Sheet +DeviceBrandManageAction.importXls.errorInfo1=Line 1 column node brand number can not be empty; +DeviceBrandManageAction.importXls.errorInfo2=Line 1 column node brand number error; +DeviceBrandManageAction.importXls.errorInfo3=Line 2 column node brand name can not be empty; +DeviceBrandManageAction.importXls.errorInfo4=Line 2 column node brand name error; +DeviceBrandManageAction.importXls.errorInfo5=Line 3 column node brand description error; +DeviceBrandManageAction.importXls.brandID=Brand Number +DeviceBrandManageAction.importXls.brandName=Brand Name +DeviceBrandManageAction.importXls.brandDesc=Brand Description +DeviceBrandManageAction.importXls.errorInfo=Error Message +DeviceBrandManageAction.importXls.success=Operation succeeded +DeviceBrandManageAction.importXls.faild=Operation failed +DeviceBrandManageAction.importXls.selectFileIsNull=The selected file is empty. Please reselect! +DeviceBrandManageAction.importXls.brandIdExists=Brand number already exists +DeviceBrandManageAction.importXls.brandNameExists=Brand name already exists +DeviceBrandManageAction.emportCurrentXls.title.brandId=Brand Number +DeviceBrandManageAction.emportCurrentXls.title.brandName=Brand Name +DeviceBrandManageAction.emportCurrentXls.title.brandDesc=Brand Description +DeviceBrandManageAction.emportCurrentXls.title.createTime=Creation Time +DeviceBrandManageAction.emportCurrentXls.brandManageInfoTable=Brand Management Information Table +DeviceBrandManageAction.emportCurrentXls.brandIdIsNotNull=Brand No. cannot be empty +DeviceBrandManageAction.emportCurrentXls.brandCodeIsNotNull=Brand code cannot be empty +DeviceBrandManageAction.emportCurrentXls.brandDeleteDisable=There are already models under the selected brand and cannot be deleted +DeviceBrandManageAction.toConfDevPos.operationRecord1=Operation record: query device basemap sql +DeviceBrandManageAction.toConfDevPos.operationRecord2=Operation record: query device's child device (used to configure device location) +DeviceBrandManageAction.toConfDevPos.subDeviceErr=Get Child Device (id={0}) Exception +DeviceBrandManageAction.toConfDevPos.deviceBrandIsNotNull=Device model cannot be empty +DeviceBrandManageAction.downloadExampleType1.title1.mainFrameModel=Mainframe Model (Required, Unique identifier of the device) +DeviceBrandManageAction.downloadExampleType1.title1.brand=Affiliated Brand (Required, Corresponding brand number) +DeviceBrandManageAction.downloadExampleType1.title1.deviceDesc=Equipment Description +DeviceBrandManageAction.downloadExampleType1.title1.positionNum=Position Serial Number +DeviceBrandManageAction.downloadExampleType1.title1.picType=Picture Type +DeviceBrandManageAction.downloadExampleType1.title1.X=X Coordinate +DeviceBrandManageAction.downloadExampleType1.title1.Y=Y Coordinate +DeviceBrandManageAction.downloadExampleType1.title1.width=Width +DeviceBrandManageAction.downloadExampleType1.title1.high=High +DeviceBrandManageAction.downloadExampleType1.title1.lineColor=Edge Color +DeviceBrandManageAction.downloadExampleType1.title1.lineWidth=Side Width +DeviceBrandManageAction.downloadExampleType1.title1.picName=Picture Name (Required) +DeviceBrandManageAction.downloadExampleType1.title1.nameFormat=Name Format ([Y]: represents the device itself in the location of the parent device, [X]: represents the position of the parent device in the grandfather device) +DeviceBrandManageAction.downloadExampleType1.title1.monitorTypeTab=Monitoring Category Table +DeviceBrandManageAction.downloadExampleType1.title1.picLevel=Graphics Level +DeviceBrandManageAction.downloadExampleType1.title1=Device Maximum Number Of Overlays (Integer value, default is 1) +DeviceBrandManageAction.downloadExampleType1.title2.boardSlot=Board Slot Model (Required, Unique identification of the device) +DeviceBrandManageAction.downloadExampleType1.title2.brand=Owned Brand (Required, Corresponding brand number) +DeviceBrandManageAction.downloadExampleType1.title2.deviceDesc=Device Description +DeviceBrandManageAction.downloadExampleType1.title2.positionNum=Position Number Below The Level +DeviceBrandManageAction.downloadExampleType1.title2.parentDevice=Parent Device Model (Main frame is empty) +DeviceBrandManageAction.downloadExampleType1.title2.picType=Picture Type +DeviceBrandManageAction.downloadExampleType1.title2.X=X Coordinate +DeviceBrandManageAction.downloadExampleType1.title2.Y=Y Coordinate +DeviceBrandManageAction.downloadExampleType1.title2.width=Width +DeviceBrandManageAction.downloadExampleType1.title2.high=Height +DeviceBrandManageAction.downloadExampleType1.title2.lineColor=Edge color +DeviceBrandManageAction.downloadExampleType1.title2.lineWidth=Edge Width +DeviceBrandManageAction.downloadExampleType1.title2.picName=Picture Name (Required) +DeviceBrandManageAction.downloadExampleType1.title2.nameFormat=Name Format ([Y]: represents the location of the device itself in the parent device, [X]: represents the position of the parent device in the grandfather device) +DeviceBrandManageAction.downloadExampleType1.title2.picLevel=Graphics Level +DeviceBrandManageAction.downloadExampleType1.title2.isLeaf=Is The Leaf Device (Required, 1 Yes, 0 No) +DeviceBrandManageAction.downloadExampleType1.title3.bordModel=Board Model (Required, Unique identifier of the device) +DeviceBrandManageAction.downloadExampleType1.title3.brand=Affiliated Brand (Required, Corresponding brand code) +DeviceBrandManageAction.downloadExampleType1.title3.brand=Equipment description +DeviceBrandManageAction.downloadExampleType1.title3.picType=Picture Type +DeviceBrandManageAction.downloadExampleType1.title3.X=X Coordinate +DeviceBrandManageAction.downloadExampleType1.title3.Y=Y Coordinate +DeviceBrandManageAction.downloadExampleType1.title3.width=Width +DeviceBrandManageAction.downloadExampleType1.title3.high=High +DeviceBrandManageAction.downloadExampleType1.title3.lineColor=Edge Color +DeviceBrandManageAction.downloadExampleType1.title3.lineWidth=Edge Width +DeviceBrandManageAction.downloadExampleType1.title3.picName=Picture Name (Required) +DeviceBrandManageAction.downloadExampleType1.title3.picLevel=Graphic Level +DeviceBrandManageAction.downloadExampleType1.title3.isLeaf=Whether It Is A Leaf Device (Required, 1 Yes, 0 No) +DeviceBrandManageAction.downloadExampleType1.title4.portModel=Port Model Number (Required, Unique identifier of the device) +DeviceBrandManageAction.downloadExampleType1.title4.brand=Affiliated Brand (Required, Corresponding brand number) +DeviceBrandManageAction.downloadExampleType1.title4.deviceDesc=Device Description +DeviceBrandManageAction.downloadExampleType1.title4.positionNum=Position Number Under The Level +DeviceBrandManageAction.downloadExampleType1.title4.parentDevice=Parent Device Model Number (Main frame is empty) +DeviceBrandManageAction.downloadExampleType1.title4.picType=Picture Type +DeviceBrandManageAction.downloadExampleType1.title4.X=X Coordinate +DeviceBrandManageAction.downloadExampleType1.title4.Y=Y Coordinate +DeviceBrandManageAction.downloadExampleType1.title4.width=Width +DeviceBrandManageAction.downloadExampleType1.title4.high=High +DeviceBrandManageAction.downloadExampleType1.title4.lineColor=Edge Color +DeviceBrandManageAction.downloadExampleType1.title4.lineWidth=Side Width +DeviceBrandManageAction.downloadExampleType1.title4.picName=Picture Name (Required) +DeviceBrandManageAction.downloadExampleType1.title4.nameFormat=Name Format ([Y]: represents the location of the device itself in the parent device, [X]: represents the position of the parent device in the grandfather device) +DeviceBrandManageAction.downloadExampleType1.title4.monitorTypeTab=Monitoring Category Table +DeviceBrandManageAction.downloadExampleType1.title4.linkField=Connection Field +DeviceBrandManageAction.downloadExampleType1.title4.stateField=Status Field +DeviceBrandManageAction.downloadExampleType1.title4.charactor=Exception Comparator (>, <, =) +DeviceBrandManageAction.downloadExampleType1.title4.value=Exception Comparison Value +DeviceBrandManageAction.downloadExampleType1.title4.picLevel=Graph Level +DeviceBrandManageAction.downloadExampleType1.title4.isLink=Is There A Link (1 Yes, 0 No) +DeviceBrandManageAction.downloadExampleType1.title4.isLeaf=Is The Leaf Device (Required, 1 Yes, 0 No) +DeviceBrandManageAction.downloadExampleType1.title4.maxNum=The device's maximum number of superposition (integer value, default is 1) +DeviceBrandManageAction.downloadExampleType1.title5.deviceBrandCode=Device Brand Code (Required) +DeviceBrandManageAction.downloadExampleType1.title5.mainFrame=Available Mainframe (Required) +DeviceBrandManageAction.downloadExampleType1.title5.bordModel=Card Model (Required) +DeviceBrandManageAction.downloadExampleType1.title6.deviceBrandCode=Device Brand Code (Required) +DeviceBrandManageAction.downloadExampleType1.title6.bordSlot=Slot Model (Required) +DeviceBrandManageAction.downloadExampleType1.title6.bordModel=Card Model (Required) +DeviceBrandManageAction.downloadExampleType1.title6.mainFrame=Main Frame Model (Required) +DeviceBrandManageAction.downloadExampleType1.sheetNames.brand=Brand +DeviceBrandManageAction.downloadExampleType1.sheetNames.mainFrame=Mainframe +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordSlot=Board Slot +DeviceBrandManageAction.downloadExampleType1.sheetNames.bord=Board +DeviceBrandManageAction.downloadExampleType1.sheetNames.port=Port +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordMainRelation=Board Mainframe Relationship +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordSlotRelation=Cardboard Slot Relationship +DeviceBrandManageAction.downloadExampleType1.slotExample=Block Slot Sample Data +DeviceBrandManageAction.downloadExampleType1.brandRecord=Brand Equipment Registration Form +DeviceBrandManageAction.saveDevicesByExcel.errorInfo1.before=Line 1 column node +DeviceBrandManageAction.saveDevicesByExcel.errorInfo1.after=model cannot be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo2.before=Line 1 columns node +DeviceBrandManageAction.saveDevicesByExcel.errorInfo2.after=Model number error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo3=The brand of the row 2 column node cannot be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo4=Line 2 column belongs to brand error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo5=Line 3 column node device description error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo6=The position number is wrong at the 4 column level; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo7=Line 5 column node image type error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo8=Line 6 column node X coordinate error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo9=Error in Y coordinate of row 7 node; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo10=Line 8 column node width error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo11=Line 9 column node high error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo12=Line 10 column node edge color error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo13=Wrong sideline width for row 11 column; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo14=Line 12 column node image name cannot be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo15=Line 12 column node image name is incorrect; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo16=Line 13 column node name is malformed; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo17=Line 14 column node monitoring category table error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo18=Line 15 column node graph level error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo19=Line 16 column node device maximum number of overlay errors; +DeviceBrandManageAction.saveDevicesByExcel.brand=Model +DeviceBrandManageAction.saveDevicesByExcel.errorInfo20=Line 5 column node parent device does not exist; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo21=Line 5 column node parent device model error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo22=Line 6 column node image type error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo23=Line 7 column node X coordinate error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo24=Error in Y coordinate of row 8 node; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo25=Line 9 column node width error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo26=Line 10 column node high error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo27=Line 11 column node edge color error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo28=Wrong sideline width for row 12 column; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo29=Line 13 column node image name cannot be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo30=Line 13 column node image name is incorrect; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo31=Line 14 column node name is malformed; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo32=Line 4 column node image type error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo33=Line 5 column node X coordinate error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo34=Error in Y coordinate of row 6 node; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo35=Line 7 column node width error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo36=Line 8 column node high error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo37=Line 9 column node edge color error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo38=Wrong sideline width for row 10 column; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo39=Line 11 column node image name cannot be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo40=Line 11 column node image name is incorrect; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo41=Line 12 column node graph level error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo42=Whether the row 13 column node has a leaf device error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo43=Line 15 column node monitoring category table error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo44=Line 20 column node graph level error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo45=Whether the row 22 column node has a leaf device error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo46=Line 23 column node device maximum number of overlay errors; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo47=Line 16 column node connection field error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo48=Line 17 column node status field error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo49=Line 18 column node exception comparator error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo50=Line 19 column node exception comparison value error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo51=Line 15 column node graph level error; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo52=Whether there is a connection error in the row of 21 column node; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo53=Line 22 column node whether the leaf device can not be empty; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo54=Line 16 column node whether or not a leaf device is wrong; +DeviceBrandManageAction.impDevicesByExcel.errorInfo1=Line 1 1 column node brand can't be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo2=Line 3 column node brand description error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo3=Line 1 column node brand number error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo4=Line 2 column node brand name cannot be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo5=Line 2 column node brand name error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo6=Line 2 column node device model can not be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo7=Line 2 column node device model error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo8=Line 3 column node can not be empty with the parent device; +DeviceBrandManageAction.impDevicesByExcel.errorInfo9=Line 3 column node can be mismatched with parent device error; +DeviceBrandManageAction.impDevicesByExcel.deviceBrandCode=Device Branding Code +DeviceBrandManageAction.impDevicesByExcel.kepeizhujijia=Available With Main Frame +DeviceBrandManageAction.impDevicesByExcel.boardBrand=Card Model +DeviceBrandManageAction.impDevicesByExcel.errorInfo10=Line 1 column node device brand code cannot be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo11=Line 1 column node device brand code error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo12=Line 2 column node slot model cannot be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo13=Line 2 column node slot model error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo14=Line 3 column node board model cannot be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo15=Line 3 column board module error; +DeviceBrandManageAction.impDevicesByExcel.errorInfo16=Line 4 column node mainframe model cannot be empty; +DeviceBrandManageAction.impDevicesByExcel.errorInfo17=Line 4 column node mainframe model error; +DeviceBrandManageAction.impDevicesByExcel.slotBrand=Slot Model +DeviceBrandManageAction.impDevicesByExcel.mainFrameModel=Main Frame Model +DeviceBrandManageAction.impDevicesByExcel.errorTheme1=Mainframe model entry error message +DeviceBrandManageAction.impDevicesByExcel.errorTheme2=board slot model entry error message +DeviceBrandManageAction.impDevicesByExcel.errorTheme3=Board Model Entry Error Message +DeviceBrandManageAction.impDevicesByExcel.errorTheme4=Port Model Entry Error Message +DeviceBrandManageAction.impDevicesByExcel.errorTheme5=Mainframe board association entry error message +DeviceBrandManageAction.impDevicesByExcel.errorTheme6=Board Board Slot Association Entry Error Message +DeviceBrandManageAction.impDevicesByExcel.slotBrandIsNull=Plate slot model does not exist +DeviceBrandManageAction.impDevicesByExcel.boardBrandIsNull=Board model does not exist +DeviceBrandManageAction.impDevicesByExcel.zjjBrandIsNull=The mainframe model does not exist +DeviceBrandManageAction.impDevicesByExcel.zjjbdy=Main frame model, board slot model does not correspond +DeviceBrandManageAction.impDevicesByExcel.brandZjjSoltBdy=Device brand, main frame model, board model does not correspond +DeviceBrandManageAction.impDevicesByExcel.slotBoardMapExists=Board slot correspondence already exists +DeviceBrandManageAction.impDevicesByExcel.deviceBrandExists=Device model already exists +DeviceBrandManageAction.impDevicesByExcel.pictureUploadFaild=Device Image Upload Failed +DeviceBrandManageAction.impDevicesByExcel.deleteSubDevice=There are child devices under the selected device model. Please delete the child device first. +DeviceBrandManageAction.impDevicesByExcel.deviceManageValidateFaild=Device management authentication failed + + +#GuideManageAction.java +GuideManageAction.getUserMk.systemManage=Business System Management +GuideManageAction.getUserMk.usergroupManage=User Group Management +GuideManageAction.getUserMk.roomManage=Room Management +GuideManageAction.getUserMk.boxManage=Enclosure Management +GuideManageAction.getUserMk.nodegroupManage=Node Group Management +GuideManageAction.getUserMk.missionManage=Task Management +GuideManageAction.getUserMk.detecateTypeManage=Monitoring Category Settings +GuideManageAction.getUserMk.detecateSetsManage=Monitoring Settings + +#NodeGroupManageAction.java +NodeGroupManageAction.openAddNodeGroupInfo.faild=Operation failed +NodeGroupManageAction.addNodeGroupInfo.nodeGroupExists=Node group already exists. Please re-enter! +NodeGroupManageAction.startNodeGroupInfo.faild=Operation succeeded + +#NodeManageAction.java +NodeManageAction.addNodeInfo.nodeTypeInvalid=The type or U bit of the node is inconsistent with the existing one. Please re-enter it! +NodeManageAction.addNodeInfo.nodeGroupHadIp=This IP already exists in this node group. Please re-enter! +NodeManageAction.downloadExample.title.nodeIp=Node IP +NodeManageAction.downloadExample.title.nodeName=Node Name +NodeManageAction.downloadExample.title.nodeDesc=Node Description +NodeManageAction.downloadExample.title.nodeType=Node Type (0 Computer) +NodeManageAction.downloadExample.title.nodeState=Node Status (0 Normal, 1 Deleted, or Deactivated) +NodeManageAction.downloadExample.nodeTable=Node Table +NodeManageAction.downloadExample.line=Line +NodeManageAction.downloadExample.errorInfo1=column cannot be empty +NodeManageAction.downloadExample.errorInfo2=Wrong format for ip address in row 1 +NodeManageAction.downloadExample.errorInfo3=Line 4 column node type error +NodeManageAction.downloadExample.errorInfo4=The node type of row 4 is malformed +NodeManageAction.downloadExample.errorInfo5=Line 5 column node status error +NodeManageAction.downloadExample.selectFileIsNull=The selected file is empty. Please reselect! +NodeManageAction.downloadExample.nodegroupHadIp=This IP already exists in this node group +NodeManageAction.downloadExample.nodeGroupIsNull=The node group for this node is empty and the import failed +NodeManageAction.downloadExample.nodeInfoImportErr=This node information import exception + +#SnmpDetectManageAction.java +SnmpDetectManageAction.addSnmpDetectType.success=Operation succeeded +SnmpDetectManageAction.addSnmpDetectType.faild=Operation failed + +#SysErrorManageAction.java +SysErrorManageAction.addErrorInfo.success=Operation succeeded +SysErrorManageAction.addErrorInfo.faild=Operation failed + +#SysPopedomManageAction.java +SysPopedomManageAction.addJsInfo.success=Operation succeeded +SysPopedomManageAction.addJsInfo.faild=Operation failed +SysPopedomManageAction.addJsInfo.emailTo=Mail To +SysPopedomManageAction.addJsInfo.nmsInitPwd=NMS System Initial Password +SysPopedomManageAction.addJsInfo.sendMsg.username=Hello! Your network management system username: +SysPopedomManageAction.addJsInfo.sendMsg.password=; Initial password: +SysPopedomManageAction.addJsInfo.sendMsg.password2=Hello! Your initial password is +SysPopedomManageAction.addJsInfo.sendMsg.toChangePwd=. In order to ensure the security of your password, please log in to the system to change the initial password in time! +SysPopedomManageAction.addJsInfo.errorInfo1=Line 1 column can not be empty; +SysPopedomManageAction.addJsInfo.errorInfo6=Line 2 column can not be empty; +SysPopedomManageAction.addJsInfo.errorInfo7=Line 4 column can not be empty; +SysPopedomManageAction.addJsInfo.errorInfo2=Username for line 1 is pure; +SysPopedomManageAction.addJsInfo.errorInfo3=Username in row 1 is Chinese; +SysPopedomManageAction.addJsInfo.errorInfo4=Line 2 column real name cannot be empty; +SysPopedomManageAction.addJsInfo.errorInfo5=Email format error in row 4; +SysPopedomManageAction.addJsInfo.selectFileIsNull=The selected file is empty. Please reselect! +SysPopedomManageAction.addJsInfo.title.username=User Name (Required) +SysPopedomManageAction.addJsInfo.title.realName=Real Name (Required) +SysPopedomManageAction.addJsInfo.title.email=Email (Required) +SysPopedomManageAction.addJsInfo.userTable=User Table +SysPopedomManageAction.addJsInfo.exists=Already Exists +SysPopedomManageAction.addJsInfo.userInfoImportErr=This user information import exception + + +#SystemManageAction.java +SystemManageAction.ajaxCheck.addSysValidateErr=Add Business System Configuration Check Exception +SystemManageAction.ajaxCheck.faild=Operation failed +SystemManageAction.ajaxCheck.success=Operation successful +SystemManageAction.ajaxCheck.sysConfigValidateFaild=Verify the business system configuration failed +SystemManageAction.ajaxCheck.invalid=Invalid +SystemManageAction.ajaxCheck.user=Users + +#UserGroupPerssionAction.java +UserGroupPerssionAction.downloadExample.title.userGroup=User Group Name(Required) +UserGroupPerssionAction.downloadExample.title.userGroupDesc=User Group Description +UserGroupPerssionAction.downloadExample.title.system=Accessibility System(Required) +UserGroupPerssionAction.downloadExample.usergroupTable=User Group Information Table +UserGroupPerssionAction.downloadExample.errorInfo1=Line 1 column node user group name cannot be empty +UserGroupPerssionAction.downloadExample.errorInfo2=Line 1 column node user group name is incorrect +UserGroupPerssionAction.downloadExample.errorInfo3=Line 2 column node user group description extra long +UserGroupPerssionAction.downloadExample.errorInfo4=Line 3 column node accessible system cannot be empty +UserGroupPerssionAction.downloadExample.errorInfo5=Line 3 column node accessible system error +UserGroupPerssionAction.downloadExample.usergroupName=User Group Name +UserGroupPerssionAction.downloadExample.usergroupDesc=User Group Description +UserGroupPerssionAction.downloadExample.system=Accessible System +UserGroupPerssionAction.downloadExample.errorInfo= Error Message +UserGroupPerssionAction.downloadExample.faild=Operation failed +UserGroupPerssionAction.downloadExample.success=Operation successful +UserGroupPerssionAction.downloadExample.selectFileIsNull=The selected file is empty. Please reselect! +UserGroupPerssionAction.downloadExample.systemIsNull=The node is accessible to the system does not exist +UserGroupPerssionAction.downloadExample.hasPermission=This node user group name already has currently accessible system privileges +UserGroupPerssionAction.downloadExample.nodeInfoImportErr=This node information import exception +UserGroupPerssionAction.downloadExample.valid=Valid +UserGroupPerssionAction.downloadExample.invalid=Invalid +UserGroupPerssionAction.downloadExample.state=Status +UserGroupPerssionAction.downloadExample.addUsergroupValidateErr=Add user group configuration check failed +UserGroupPerssionAction.downloadExample.updateUsergroupValidateErr=Modify user group validation exception +UserGroupPerssionAction.giveGroupPerssions.faild=Failed + +#LoginAction.java +LoginAction.login.userLocked=This user has been disabled +LoginAction.login.deptLocked=This user's department has been disabled and login is prohibited +LoginAction.login.outtime=Sessionold has expired +LoginAction.login.success=Success +LoginAction.login.in=Login +LoginAction.login.noPermission=This username does not have valid permissions +LoginAction.login.unpredictableErr=Unpredictable error +LoginAction.login.usernameOrPwdErr=Incorrect username or password +LoginAction.checkPwdState.userIsNotExists=This user does not exist or is invalid +LoginAction.checkPwdState.userInfoErr=This user information is abnormal! +LoginAction.checkPwdState.faild=Operation failed +LoginAction.checkPwdState.success=Operation successful +LoginAction.checkPwdState.selectSys=Please re-select the login business system! +LoginAction.checkPwdState.out=Logout +LoginAction.checkPwdState.sessionNoInfo=No person information was obtained from the session +LoginAction.checkPwdState.sessionOutTime=session may have expired + +#SnmpAction.java +SnmpAction.insertFiled.insertDataSrcErr=Failed to insert the data source! +SnmpAction.insertFiled.getPositionErr=Failed to get the field! +SnmpAction.insertFiled.loadMibErr=Load MIB failed! + +#GenJavaCodeTool.java +GenJavaCodeTool.genJavaCode.nodeInfoErr=This OID's corresponding node information is incorrect, please check the OID +GenJavaCodeTool.genJavaCode.cannotFind=The MIB definition of this OID is not found +GenJavaCodeTool.genJavaCode.createBeanErr=Failed to generate javaBean! + +#FileUtil.java +FileUtil.getAllMibFileNames.noMibFile=MIB file does not exist, please import the MIB library first +FileUtil.getAllMibFileNames.getMibNameErr=Error to get MIB file name! +FileUtil.getAllMibFileNames.createClassErr=Create class file error! + +#AutoRegisterForNMSWeb.java +AutoRegisterForNMSWeb.checkOrRegisterNMSWeb.newWeb=New Web + +#AutoRunForSocketServerServlet.java +AutoRunForSocketServerServlet.contextInitialized.sslConn=SSL communication + +#DCHandShakeManagerThread.java +DCHandShakeManagerThread.run.DcThread=DC heartbeat monitoring management thread + +#DetectDatasTimeoutAlarmThread.java +DetectDatasTimeoutAlarmThread.run.threadName=Monitoring data timeout alarm thread + +#MailingManagerThread.java +MailingManagerThread.run.threadName=Mail send management thread +MailingManagerThread.run.noField=Lack of parameters + +#MailingThread.java +MailingThread.call.threadName=Mail Sending Thread + +#EmailTypeConstants.java +EmailTypeConstants.content.DESC_DETECTION_INFO_RECOVER=Monitoring information recovery +EmailTypeConstants.content.DESC_DETECTION_INFO_EXCEPTION=Anomaly monitoring information +EmailTypeConstants.content.DESC_DETECTION_INFO_TIMEOUT=Monitoring information timeout +EmailTypeConstants.content.DESC_ALARM_INFO_EXCEPTION=Active alarm anomaly +EmailTypeConstants.content.DESC_ALARM_INFO_RECOVER=Active alarm recovery +EmailTypeConstants.content.DESC_TASK_NODE_RESULT_ERROR=Node result failure +EmailTypeConstants.content.DESC_TASK_STATE_CHANGE=Task state change +EmailTypeConstants.content.DESC_SYSTEM_RUNNING_EXCEPTION=System running abnormity +EmailTypeConstants.content.DESC_SYSTEM_RUNNING_RECOVER=System running recovery + +#TaskResources.java CommonResources.java +TaskResources.contents.ms_1=Have been created +TaskResources.contents.ms_2=Have in hand +TaskResources.contents.ms_3=Completed +TaskResources.contents.ms_30=All success +TaskResources.contents.ms_31=All failure +TaskResources.contents.ms_32=Partial success +TaskResources.contents.ms_4=Fail to execute +TaskResources.contents.ms_5=Prepare to revoke +TaskResources.contents.ms_6=Begin to revoke +TaskResources.contents.ms_7=Revoke complete +TaskResources.contents.mt_1=Push file +TaskResources.contents.mt_4=Command execution +TaskResources.contents.mt_6=Upgrade deployment +TaskResources.contents.loop_0=Aperiodic task +TaskResources.contents.loop_1=Periodic task +TaskResources.contents.ec_1=The task begins +TaskResources.contents.ec_4=The task begins +TaskResources.contents.ec_6=The task begins + +#EmailService.java +EmailService.sendEmailNew.threadName=Mail Sending Thread +EmailService.sendEmailNew.subjectDesc=NMS system mail +EmailService.sendEmailNew.emergencyNotice=Emergency notice +EmailService.sendEmailNew.noEmergencyNotice=Non emergency notice +EmailService.sendEmailNew.msgType=Message type +EmailService.sendEmailNew.msgDesc=Message description +EmailService.sendEmailNew.eventIp=Event IP +EmailService.sendEmailNew.time=Time +EmailService.sendEmailNew.msgContent=Message content +EmailService.sendEmailNew.isLoop=Periodic task +EmailService.sendEmailNew.no=No +EmailService.sendEmailNew.yes=Yes +EmailService.sendEmailNew.scheduleTime=Plan execution time +EmailService.sendEmailNew.missionState=Task state +EmailService.sendEmailNew.nodeGroup=Node group +EmailService.sendEmailNew.node=Node + +#SSLClient.java +SSLClient.toDo.threadName=Communication thread + +#Constants +Constants.xmlFile.sysConfig=system configuration +Constants.xmlFile.userInf=User information management +Constants.xmlFile.userPrivilege=User privileges management +Constants.xmlFile.mkManage=Module management +Constants.xmlFile.jsManage=Role management +Constants.xmlFile.businessConfig=Business configuration +Constants.xmlFile.letterInfoConfig=Letter information configuration +Constants.xmlFile.htmlInfoConfig=Web page information configuration +Constants.xmlFile.emailInfoConfig=Mail information configuration +Constants.xmlFile.webEmailInfoConfig=Web mail information configuration +Constants.xmlFile.communicateConfig=Instant message configuration +Constants.xmlFile.msnInfoConfig=MSN information configuration +Constants.xmlFile.yahooMsgInfoConfig=YahooMSG information configuration +Constants.xmlFile.feixinInfoConfig=Information configuration of feixin +Constants.xmlFile.sinaUCInfoConfig=Sina UC information configuration +Constants.xmlFile.telnetInfoConfig=TELNET information configuration +Constants.xmlFile.ftpInfoConfig=FTP information configuration +Constants.xmlFile.ipInfoConfig=IP information configuration +Constants.xmlFile.srcReportInfoConfig=The configuration of the original message information +Constants.xmlFile.tcpInfoConfig=TCP information configuration +Constants.xmlFile.udpInfoConfig=UDP information configuration +Constants.xmlFile.busnessConfigGuide=Business configuration wizard +Constants.xmlFile.configState=Configuration status view +Constants.xmlFile.businessCheck=Business audit +Constants.xmlFile.letterInfoCheck=Letter of information review +Constants.xmlFile.webInfoCheck=Web page information audit +Constants.xmlFile.emailInfoCheck=Mail information audit +Constants.xmlFile.webEmailInfoCheck=Web mail information audit +Constants.xmlFile.communicateInfoCheck=Instant information audit +Constants.xmlFile.msnInfoCheck=MSN information audit +Constants.xmlFile.yahooMsgInfoCheck=YahooMSG information audit +Constants.xmlFile.feixinInfoCheck=Information audit of feixin +Constants.xmlFile.sinaUCInfoCheck=Sina UC information audit +Constants.xmlFile.telnetInfoCheck=TELNET information audit +Constants.xmlFile.ftpInfoCheck=FTP information audit +Constants.xmlFile.srcReportInfoCheck=Review of original message information +Constants.xmlFile.ipInfoCheck=IP information audit +Constants.xmlFile.tcpInfoCheck=TCP information audit +Constants.xmlFile.udpInfoCheck=UDP information audit +Constants.xmlFile.businessResult=Business results +Constants.xmlFile.businessResultView=Business results view +Constants.xmlFile.hotport=Hot focus +Constants.xmlFile.mission=Special task +Constants.xmlFile.operateCheck=Operation audit +Constants.xmlFile.userOperateLog=User operation log +Constants.xmlFile.reportView=Report view +Constants.xmlFile.businessReportView=Business report view +Constants.xmlFile.monitorInfo1=More than +Constants.xmlFile.monitorInfo2= monitoring cycle, no monitoring results were received. + +#HibernateGeneralDaoImpl.java +HibernateGeneralDaoImpl.findByProperty.parmIsNotNull=Property name cannot be empty! +HibernateGeneralDaoImpl.findByProperty.sortFieldIsNotNull=The sort field cannot be empty! +HibernateGeneralDaoImpl.findByProperty.sortNameIsNotNull=The name of the sequence can not be empty + +#OracleToMysql.java +OracleToMysql.trans.sqlIsNotNull=The SQL statement cannot be empty +OracleToMysql.trans.noFormatMap=No MySQL formatting mappings + +#CommonService.java +CommonService.sendEmailForMission.missionName=Task name +CommonService.sendEmailForMission.missionType=Task type +CommonService.sendEmailForMission.loopMission=Periodic task +CommonService.sendEmailForMission.no=No +CommonService.sendEmailForMission.yes=Yes +CommonService.sendEmailForMission.missions=Task state +CommonService.sendEmailForMission.planTime=Plan execution time +CommonService.sendEmailForMission.nodeGroup=Node group +CommonService.sendEmailForMission.node=Node + +#BaseAction.java +BaseAction.logout.susscess=Success +BaseAction.logout.logout=Logout +BaseAction.exportXls.date=Date\\name +BaseAction.exportXls.num=Number +BaseAction.exportXls.fileNotExists=The target file has been transferred or deleted! + +#DateUtil.java +DateUtil.converDatetoWeekArray.sun=Sunday +DateUtil.converDatetoWeekArray.mon=Monday +DateUtil.converDatetoWeekArray.tues=Tuesday +DateUtil.converDatetoWeekArray.wed=Wednesday +DateUtil.converDatetoWeekArray.thur=Thurday +DateUtil.converDatetoWeekArray.fri=Friday +DateUtil.converDatetoWeekArray.sat=Saturday +DateUtil.converDatetoWeekArray.before=Before + +#ExportUtils.java +ExportUtils.exportExcel2Sheet.singleSheet=The amount of single sheet data is too large +ExportUtils.exportExcel2Sheet.rowDataErr=The row data is an array type, and no subscript is found as follows: +ExportUtils.exportExcel2Sheet.rowData=Data! +ExportUtils.exportExcel2Sheet.shouldBeIndex=Row data is array type, and field array should be corresponding subscript. +ExportUtils.exportExcel2Sheet.IOException=IO processing is abnormal: +ExportUtils.exportExcel2Sheet.exportException=The export processing has an exception: +ExportUtils.exportExcel2Sheet.noDataExport=No data can be exported! +ExportUtils.exportExcel2Sheet.data=Data +ExportUtils.exportExcel2Sheet.mouldi=Templet +ExportUtils.exportExcel2Sheet.tableField=Monitoring data table field definition +ExportUtils.exportExcel2Sheet.fieldName=Field Name (Required) +ExportUtils.exportExcel2Sheet.fieldDesc=Field Description (Required) +ExportUtils.exportExcel2Sheet.fieldType=Field Type (Required) (Number, Time, Text) +ExportUtils.exportExcel2Sheet.length=Length (Text type please fill in this item) +ExportUtils.exportExcel2Sheet.isChart=Whether it is used for Statistics (Required) (Yes, No) +ExportUtils.exportExcel2Sheet.monitorTypeName=Monitor Category Names (Required) +ExportUtils.exportExcel2Sheet.tableName=Table Name (Required) +ExportUtils.exportExcel2Sheet.moreThanZero=The data per page must be more than 0 +ExportUtils.exportExcel2Sheet.outZoom=The data is beyond the export range! +ExportUtils.exportExcel2Sheet.get=Get +ExportUtils.exportExcel2Sheet.fieldErr=Field property error: + +#Graph.java +Graph.createTimeXYCharShow.noData=No corresponding data, please re inquire. +Graph.createTimeXYCharShow.noData2=No corresponding data + +#StringUtil.java +StringUtil.getTableCodeMap.PROTOCOL=Protocol name +StringUtil.getTableCodeMap.SERVER_IP=Server IP +StringUtil.getTableCodeMap.CLIENT_IP=Client IP +StringUtil.getTableCodeMap.SERVER_PORT=Server port +StringUtil.getTableCodeMap.CLIENT_PORT=Client port +StringUtil.getTableCodeMap.PROXY=Proxy information +StringUtil.getTableCodeMap.USER=User +StringUtil.getTableCodeMap.PASS=Login password +StringUtil.getTableCodeMap.URL=Website +StringUtil.getTableCodeMap.FROM=Source information +StringUtil.getTableCodeMap.TO=Destination information +StringUtil.getTableCodeMap.SUBJECT=Subject content +StringUtil.getTableCodeMap.CALLER=Calling phone number +StringUtil.getTableCodeMap.CALLEE=Called telephone number +StringUtil.getTableCodeMap.IPP_ENCODING=Encoding method +StringUtil.getTableCodeMap.IPP_DATATYPE=Result data format +StringUtil.getTableCodeMap.IPP_RECOG_RESULT=Speaker ID list +StringUtil.getTableCodeMap.SMS_SRC_CENTER=Source SMS center +StringUtil.getTableCodeMap.SMS_DST_CENTER=Destination SMS center +StringUtil.getTableCodeMap.count=Number of query results + +#ThreadService.java +ThreadService.detectDatasTimeoutCheck.count=This node is a server node and is not used to detect this category +ThreadService.detectDatasTimeoutCheck.timeout=Get monitoring data timeout +ThreadService.detectDatasTimeoutCheck.ips=Multipe ip + + +client.Sysconfig.init=Lack of configuration file, program cannot be executed! \n Please execute the configuration program for configuration first +client.Sysconfig.error=Error + +client.AlarmThread.processExists=process exists, but +client.AlarmThread.loopMission1=The scheduled task“ +client.AlarmThread.loopMission2=”does not exist +client.AlarmThread.state=This status lasted +client.AlarmThread.times=times +client.AlarmThread.dataFileNotExists1=Data file directory“ +client.AlarmThread.dataFileNotExists2=”does not exist +client.AlarmThread.dataSize=Monitor data file size is 0 +client.AlarmThread.noDetecateData=No monitoring data + +client.StartPluginRun.startupDetecate=Start Tripartite Monitoring +client.StartPluginRun.startupDetecateErr1=Tripartite monitor failed to start. Please check if the process startup file“ +client.StartPluginRun.startupDetecateErr1.isTrue=”is set correctly! +client.StartPluginRun.startupDetecateErr2=Initiate tripartite monitoring anomaly and the monitoring script has not been issued! +client.StartPluginRun.startupDetecateErr3=Initiate tripartite monitoring anomaly and monitor script execution error! +client.ServerCollectData.transFile=Postback Success + +client.SSLServer.sendMsg=The task parameters are incomplete and the task result cannot be found +client.SSLServer.noResult=The task result does not exist +client.SSLServer.success=Success, details are as follows +client.SSLServer.fail=Failed, details are as follows +client.SSLServer.lssueSuccess=Successfully delivered. Details are as follows +client.SSLServer.lssueSuccess1=Successfully delivered +client.SSLServer.missionRevokeSuccess=The task has been revoked +client.SSLServer.ncCommunicateException=NC communication thread exception + +client.AgentCommand.execFail=Execution failed +client.AgentCommand.execFailDesc1=Execution failed: command parameter is empty +client.AgentCommand.execFailDesc2=Execution failed without this command +client.AgentCommand.execFailDesc3=Execution failed: command parameter is incorrect +client.AgentCommand.execFailDesc4=Execution failed: An exception occurred. See the logs for details. +client.AgentCommand.execFailDesc5=Execution failed: Current Agent version is up-to-date +client.AgentCommand.execFailDesc6=Execution failed: recovery parameters are empty +client.AgentCommand.destDesc=Update directory +client.AgentCommand.srcDesc=Upgrade file +client.AgentCommand.execFailDesc7=is empty +client.AgentCommand.execFailDesc8=does not exist +client.AgentCommand.execFailDesc9=Execution failed: owner incorrect +client.AgentCommand.coverRestart=Overwriting and restarting Agent +client.AgentCommand.upgradeFail=Upgrade failed +client.AgentCommand.restartFail=Restart Failed, Manual Startup Successful +client.AgentCommand.execFailDesc10=Execution failed: An exception occurred +client.AgentCommand.execFailDesc10.showDetail= See the logs for details. +client.AgentCommand.execFailDesc11=Execution failed: parameter is empty +client.AgentCommand.execFailDesc12=Execution failed: Current server version is up-to-date +client.AgentCommand.execFailDesc13=Execution failed: owner incorrect +client.AgentCommand.execFailDesc14=Execution failed: Upgrade file name is empty +client.AgentCommand.execFailDesc15=Execution failed: Upgrade file +client.AgentCommand.execFailDesc16=Execution failed: Overwrite directory is empty +client.AgentCommand.execFailDesc17=Execution failed: Overwrite directory does not exist +client.AgentCommand.DCupdate=DC upgrade request +client.AgentCommand.fail=Failed +client.AgentCommand.execFailDesc18=Execution failed: An exception occurred +client.AgentCommand.backupSuccess1=Backup succeeded: Backup parameters are not specified, no backup required +client.AgentCommand.backupFail1=Backup failed, the file to be backed up is empty +client.AgentCommand.backup=Backup +client.AgentCommand.backupFail2=failed, the file to be backed up does not exist +client.AgentCommand.backupSuccess2=succeeded. The file directory to be backed up is empty and no backup is required. +client.AgentCommand.backupSuccess3=succeeded, backup file +client.AgentCommand.backupFail3=failed +client.AgentCommand.backupFail4=failed, backup to directory +client.AgentCommand.readonly=read-only +client.AgentCommand.backupSuccess4= succeeded, this version backup already exists, no backup - backup file +client.AgentCommand.backupSuccess5=The backup was successful. Details are as follows +client.AgentCommand.backupFail5=Backup failed, details are as follows +client.AgentCommand.backupFail6=Backup failed: An exception occurred +client.AgentCommand.coverSuccess1=Overwrite success: no parameters specified, no need to override +client.AgentCommand.coverFail1=Overwrite +client.AgentCommand.coverFail1=failed, source file is empty +client.AgentCommand.coverFail2=failed, source file does not exist +client.AgentCommand.coverFail3=failed, overwrite directory is empty +client.AgentCommand.coverFail4=failed: Overwrite directory does not exist +client.AgentCommand.coverFail5=failed: overwrite directory +client.AgentCommand.coverFail5.sameDir= with same source directory! +client.AgentCommand.coverSuccess2=succeeds +client.AgentCommand.coverSuccess2.to=to +client.AgentCommand.coverFail6=failed +client.AgentCommand.coverFail7= failed: The directory to be overwritten is read-only +client.AgentCommand.coverSuccess3=Overwrite success, details are as follows +client.AgentCommand.coverFail8=Overwrite failed, details are as follows +client.AgentCommand.coverFail9=Overwrite failed: An exception occurred +client.AgentCommand.killProcFail1=Deactivation process failed: PID file parameter not specified +client.AgentCommand.killProcSuccess1=Disabled, process PID file is empty +client.AgentCommand.deactivate=Deactivate +client.AgentCommand.killProcSuccess2=succeeded, process PID file not found +client.AgentCommand.killProcSuccess3=success: Process does not exist originally +client.AgentCommand.killProcSuccess4=success +client.AgentCommand.killProcFail2=Failed, process exists, see if there is a daemon +client.AgentCommand.killProcSuccess5=Deactivation process is successful. Details are as follows +client.AgentCommand.killProcFail3=Deactivation process failed, details are as follows +client.AgentCommand.killProcFail4=Deactivation process failed: An exception occurred +client.AgentCommand.startCmdSuccess1=Execution succeeded: no content specified, no need to execute +client.AgentCommand.startCmdFail1=Failed, execution command is empty +client.AgentCommand.startCmdFail2=Failed, result file is empty +client.AgentCommand.startCmdFail3=failed with incorrect user name +client.AgentCommand.startCmdSuccess2=failed was successful. The process originally existed without executing +client.AgentCommand.startCmdSuccess3=failedsucceeded +client.AgentCommand.startCmdFail4=failed, PID is empty +client.AgentCommand.startCmdFail5=failed, PID +client.AgentCommand.startCmdFail6=failed, process PID file +client.AgentCommand.success=Success +client.AgentCommand.exec=Execute +client.AgentCommand.startCmdFail7=failed, result file is not written in result file +client.AgentCommand.startCmdFail8=failed, result file +client.AgentCommand.startCmdSuccess4=Execution succeeded, details are as follows +client.AgentCommand.startCmdFail9=Execution failed with the following details +client.AgentCommand.startCmdFail10=Execution failed: An exception occurred +client.AgentCommand.singleCmdSuccess1=Execution succeeded: no content specified, no need to execute +client.AgentCommand.singleCmdFail1= failed and the execution command was empty +client.AgentCommand.singleCmdFail2=failed with incorrect user name +client.AgentCommand.singleCmdFail3= failed +client.AgentCommand.singleCmdFail4=failed, timeout +client.AgentCommand.singleCmdFail5=failed, thread was interrupted +client.AgentCommand.singleCmdSuccess2=The execution was successful. The details are as follows +client.AgentCommand.singleCmdFail6=Execution failed with the following details +client.AgentCommand.singleCmdFail7=Execution failed: An exception occurred +client.AgentCommand.deleteSuccess=Delete +client.AgentCommand.deleteFail=Delete +client.AgentCommand.deleteFail.noFile=the file does not exist + +client.LoopTaskThread.loopTaskOuttime=this task execution timeout + +client.TaskReqHandle.sendInfoFormatErr=The format of the sent content is incorrect +client.TaskReqHandle.pushFileParamIsNull=File push parameter is empty +client.TaskReqHandle.pushFileNameParamIsNull=The push file name parameter is empty +client.TaskReqHandle.userGroupErr=The owner or group of the push file is incorrect +client.TaskReqHandle.pushFileNotExists=The push temporary file does not exist. Please check whether the push file name is consistent with the parameter file name +client.TaskReqHandle.successPush=Successfully pushed to +client.TaskReqHandle.pushFail=Push failed +client.TaskReqHandle.pushParamErr=Incorrect file push parameters +client.TaskReqHandle.reciveFileErr=Received push file exception +client.TaskReqHandle.sourceOrTargetIsNull=The source or destination file is empty + +client.TaskResultOper.restart=Restart succeeded + +client.TaskReturnHandle.backpass=Return +client.TaskReturnHandle.backFail1=failed, returning file path value is empty +client.TaskReturnHandle.backFail2=failed, the returned file does not exist + +client.ProcessUtil.processPid=Process PID +client.ProcessUtil.notExists=does not exists +client.ProcessUtil.pidFile=PID File +client.ProcessUtil.pidFieldNull=The PID file field is empty +client.ProcessUtil.searchKey=Process search keyword +client.ProcessUtil.noProcess=no process found +client.ProcessUtil.findTooMuch=find multiple processes, please provide keywords for finding processes accurately + +client.Utils.bit=Bit + +client.NmsClient.ncCommunicatePortErr=NC communication port starts abnormal,NC program terminates +client.NmsClient.ncDeamonStartFail=The NC daemon failed to start +client.NmsClient.ncDeamonStartException=The NC daemon starts an exception + +client.SystemInfo.memerySize=Total memory size +client.SystemInfo.core=core +client.SystemInfo.mhz=frequency +client.SystemInfo.currentUsed=Used now +client.SystemInfo.spaceRemain=Remaining +client.SystemInfo.shiyonglv=Usage +client.SystemInfo.size=Size +client.SystemInfo.used1=Used +client.SystemInfo.disk=Disk +client.SystemInfo.readOnly=Read Only +client.SystemInfo.diskSize=Total disk size +client.SystemInfo.zongShiYongLv=The total usage rate is 100% +client.SystemInfo.zone=partition +client.SystemInfo.used2=Used +client.SystemInfo.disable=unavailable +client.SystemInfo.netSpeed=Bandwidth +client.SystemInfo.input=Enter +client.SystemInfo.insert=logical network cards +client.SystemInfo.getSysTimeErr=Failed to get DataController system time +client.SystemInfo.message.core=core +client.SystemInfo.message.memery=GB of memory +client.SystemInfo.message.disk=GB of hard disk +client.SystemInfo.message.netcard=logical network card +client.SystemInfo.outputTest=Test whether the hard disk is writable and write files now\n + +client.GetInfoRun.totalAlarmInfo1=Data status returned to normal +client.GetInfoRun.totalAlarmInfo2=The data status is abnormal and exceeds the alarm value +client.GetInfoRun.totalAlarmInfo3=The data status is abnormal and exceeds the alarm value four times in a row +client.GetInfoRun.processNotExists=Process does not exist +client.GetInfoRun.isDiskWriteAble=Whether the disk is writable +client.GetInfoRun.diskUsed=Disk Usage (%) +client.GetInfoRun.warning=disk usage exceeds +client.GetInfoRun.ZongShiYongLv=Total usage (%) +client.GetInfoRun.cpuShiyonglv=CPU account for +client.GetInfoRun.warningValue=Alarm value +client.GetInfoRun.normal=Normal +client.GetInfoRun.writeAble=Writable +client.GetInfoRun.abnormal=Not Normal +client.GetInfoRun.gt=greater than +client.GetInfoRun.lt=less than +client.GetInfoRun.eq=Equal to +client.GetInfoRun.out=more +client.GetInfoRun.in= not exceeded + +client.NewPluginResultMerge.detecateData=Monitoring data not generated +client.NewPluginResultMerge.formatErr=Monitoring data is not generated or data format errors +client.NewPluginResultMerge.totalAlarmInfo1=Data status returned to normal +client.NewPluginResultMerge.totalAlarmInfo2=Data status is abnormal and the alarm value is exceeded +client.NewPluginResultMerge.totalAlarmInfo3=Data status is abnormal and exceeds alarm value four consecutive times +client.NewPluginResultMerge.warningValue=Alarm value +client.NewPluginResultMerge.abnormal=Not Normal +client.NewPluginResultMerge.normal=Normal +client.NewPluginResultMerge.gt=greater than +client.NewPluginResultMerge.lt=less than +client.NewPluginResultMerge.eq=Equal to +client.NewPluginResultMerge.out=more +client.NewPluginResultMerge.in=Not exceeded +client.GetInfoRun.notEquels=not Equels + + +server.Common.revokeFail=Revocation failed, exceeded maximum number of attempts, waiting for client request +server.Common.missionLssueFail=The task failed to be delivered, communication was interrupted, and the maximum number of attempts was exceeded +server.Common.createConnectionFail=The task failed to be sent and the communication failed to be established +server.Common.nmsShakeHandBegin=Started +server.Common.nmsShakeHand=NMSClient Handshake +server.Common.nmsShakeHandSuccess=success +server.Common.nmsShakeHandFail= failed +server.Common.sshLogin=SSH login username or password error +server.Common.sshConnectionFail=SSH connection failure +server.Common.netErr=Network abnormality + +server.CommonResources.ms_1=Created +server.CommonResources.ms_2=In progress +server.CommonResources.ms_3=Completed +server.CommonResources.ms_30=All succeeded +server.CommonResources.ms_31=All failed +server.CommonResources.ms_32=Partially successful +server.CommonResources.ms_4=Failed to execute +server.CommonResources.ms_5=Undo preparation +server.CommonResources.ms_6=Revocation starts +server.CommonResources.ms_7=Undo completed +server.CommonResources.mt_1=Push File +server.CommonResources.mt_4=Command execution +server.CommonResources.mt_6=Upgrade deployment +server.CommonResources.loop_0=Acyclic tasks +server.CommonResources.loop_1=Period tasks +server.CommonResources.ec_1=Mission started + +server.Config.initConfig=Parameter configuration file not found\! \nPlease run +server.Config.initConfig.init=initialization parameter configuration +server.Config.error=Error + +server.Constants.NO_DETECTDATA_STATUS_INFO=Data collection is out of time and no monitoring data is obtained +server.Constants.ERROR_DESC_DATA_COLLECT=The data collection management thread stopped running +server.Constants.ERROR_DESC_DATA_COLLECT_NO_RUN=Data Collection Management thread did not start +server.Constants.defaultNodeGroup=Default node group + +server.EmailTypeConstants.DESC_DETECTION_INFO_RECOVER=Monitoring Information Recovery +server.EmailTypeConstants.DESC_DETECTION_INFO_EXCEPTION=Monitoring information is abnormal +server.EmailTypeConstants.DESC_DETECTION_INFO_TIMEOUT=Monitoring information timeout +server.EmailTypeConstants.DESC_ALARM_INFO_EXCEPTION=Active alarm exception +server.EmailTypeConstants.DESC_ALARM_INFO_RECOVER=Active Alarm Recovery +server.EmailTypeConstants.DESC_TASK_NODE_RESULT_ERROR=Node result failed +server.EmailTypeConstants.DESC_TASK_STATE_CHANGE=Change of task status +server.EmailTypeConstants.DESC_SYSTEM_RUNNING_EXCEPTION=System operation is abnormal +server.EmailTypeConstants.DESC_SYSTEM_RUNNING_RECOVER=System Operation Recovery + +server.MissionConstants.ERROR_TASK_PARAMS=Parameter error, task cannot be performed +server.MissionConstants.ERROR_TASK_NO_FILE=No push file, task cannot be performed +server.MissionConstants.ERROR_TASK_NO_USED_NODE=No valid server node, task cannot be performed +server.MissionConstants.ERROR_TASK_RUND_NO_USED_NODE=No valid server node, the current cycle can not be executed +server.MissionConstants.WARN_TASK_UN_MANAGEMENT_NODE=Existing DC Managed Nodes +server.MissionConstants.NOTICE_TASK_RUNNING=Task execution started +server.MissionConstants.ERROR_RESULT_NOT_SERVER=This node is not a server +server.MissionConstants.ERROR_RESULT_UN_MANAGEMENT_NODE=This node is out of DC management +server.MissionConstants.ERROR_RESULT_FILE_DOWNLOAD_FAIL=DC file download failed +server.MissionConstants.ERROR_RESULT_EXEC_TIMEOUT=The periodic task execution timed out and the result was set to fail + +server.ChangeService.exception1=DataController information whose IP is {0} does not exist in the database. Please check the network settings or configure the manual DataController. +server.ChangeService.exception2=IP segment information of Data Controller with IP {0} does not exist in the database Please manually configure +server.ChangeService.exception3=DataController information with IP {0} Query Exception Unable to query ID + +server.CommonService.exception1=DataController information whose IP is {0} does not exist in the database. Please check the network settings or configure the manual DataController. +server.CommonService.exception2=IP segment information of Data Controller whose IP is {0} does not exist in the database Please manually configure +server.CommonService.exception3=DataController information with IP {0} Query Exception Unable to query ID +server.CommonService.resultInfo1=New IP is occupied, update failed +server.CommonService.resultInfo2=Update succeeded +server.CommonService.pInfo1=Alarm Recovery Monitoring Content +server.CommonService.pInfo2=Alert level +server.CommonService.monitorContent= Monitoring content +server.CommonService.errorInfo1=Location {0} Data node seqId (physical host ID) cannot be empty +server.CommonService.errorInfo2=Location {0} Data node seqId (physical host ID) is not a positive integer +server.CommonService.errorInfo3=Location {0} Data Monitoring Settings ID cannot be empty +server.CommonService.errorInfo4=Location {0} Data Monitoring setting ID is not an integer (can be 0, the default system basic information is set to 0) +server.CommonService.errorInfo5=Location {0} Data Monitoring Category cannot be empty +server.CommonService.errorInfo6=Location {0} data ""+startTime+"" monitoring service start time must be integer +server.CommonService.errorInfo7=Location {0} data monitoring service startup time cannot be empty +server.CommonService.errorInfo8=Location {0} data "{1}" Detection delay (seconds) must be integer +server.CommonService.errorInfo9=Location {0} data “{1}” The detection time must be integer +server.CommonService.errorInfo10=Location {0} Data This test cannot be empty +server.CommonService.errorInfo11=Location {0} data "{1}" Attempt must be an integer +server.CommonService.errorInfo12=Location {0} data Attempt cannot be empty +server.CommonService.errorInfo13=Location {0} data “{1}” The next scheduled monitoring time must be integer +server.CommonService.errorInfo14=Location {0} Data Attempt cannot be null +server.CommonService.errorInfo15=Location {0} data "{1}" Execution state must be integer +server.CommonService.errorInfo16=Location {0} Data Execution state cannot be empty +server.CommonService.exception4=NUMBER data format error! +server.CommonService.exception5=VARCHAR2 data format error! +server.CommonService.errorInfo17=The table field set information parsing failed +server.CommonService.errorInfo18= field value +server.CommonService.errorInfo19=Error occurred; exception data line +server.CommonService.dsinfo1=$@$Port +server.CommonService.dsinfo1,exception=exception (configuration status does not match actual status) +server.CommonService.dsinfo2=$@$Port +server.CommonService.dsinfo2.exception=exception (traffic 0) +server.CommonService.for= is +server.CommonService.policyLevel=Alarm level +server.CommonService.saveDefault=Default node group for automatically registering new node information +server.CommonService.errorInfo20=Location {0} Data node seqId (physical host ID) cannot be empty +server.CommonService.errorInfo21=Location {0} Data node seqId (Physical Host ID) is not a positive integer +server.CommonService.errorInfo22=Location {0} Data Monitoring Settings ID cannot be empty +server.CommonService.errorInfo23=Location {0} Data Monitoring Settings ID is not an integer (including 0) +server.CommonService.errorInfo24=Location {0} Data Monitoring Category cannot be empty +server.CommonService.errorInfo25=Location {0} data “{1}” monitoring service startup time must be integer +server.CommonService.errorInfo26=Location {0} data monitoring service startup time cannot be empty +server.CommonService.errorInfo27=Location {0} data "{1}" Detection delay (seconds) must be integer +server.CommonService.errorInfo28=Location {0} Data “{1}” This detection time must be an integer +server.CommonService.errorInfo29=Location {0} Data This test cannot be empty +server.CommonService.errorInfo30=Location {0} data "{1}" Attempt must be an integer +server.CommonService.errorInfo31=Location {0} data Attempt cannot be empty +server.CommonService.errorInfo32=Location {0} data “{1}” The next scheduled monitoring time must be integer +server.CommonService.errorInfo33=Location {0} data Attempt cannot be empty +server.CommonService.errorInfo34=Location {0} data "{1}" Execution state must be integer +server.CommonService.errorInfo35=Location {0} data Execution state cannot be empty + +server.EmailService.loopMission=Period tasks +server.EmailService.plantime=plan execution time +server.EmailService.yes=Yes +server.EmailService.no=No +server.EmailService.missionState=Task Status +server.EmailService.nodegroup=Node Group +server.EmailService.node=Node + +server.UpgradeService.created=Created +server.UpgradeService.exec=Executing +server.UpgradeService.finish=Completed +server.UpgradeService.missionName=Task name +server.UpgradeService.createTime=Created +server.UpgradeService.missionState=Task Status +server.UpgradeService.sql.complate=End of task execution:A total of +server.UpgradeService.sql.executeNode=execution nodes,successful +server.UpgradeService.sql.failed=failed +server.UpgradeService.sql.total=A total of +server.UpgradeService.sql.executeNode2=execution nodes +server.UpgradeService.sql.unexecute=unexecuted +server.UpgradeService.sql.execute=executed +server.UpgradeService.sql.success=successful +server.UpgradeService.sql.cycle=In the lastest cycle,a total of +server.UpgradeService.sql.revoke=Task revoked completed +server.UpgradeService.sql.executed=Task executed completed +server.UpgradeService.missionExec=Task execution notification +server.UpgradeService.missionEnd=End of task execution +server.UpgradeService.coldStart=Device Cold Start +server.UpgradeService.hotStart=Device Hot Start +server.UpgradeService.interClose=The interface is closed +server.UpgradeService.interUsed=Interface enabled +server.UpgradeService.snmp=SNMP authentication failed +server.UpgradeService.egp=EGP neighbor lost +server.UpgradeService.exception=Undefined SNMPTRAP type! +server.UpgradeService.trap=trap information + +server.NoDetectDataCollectManagerThread.network=Network Exception +server.NoDetectDataCollectManagerThread.start=Start +server.NoDetectDataCollectManagerThread.shakehand= NMSClient Shakehand +server.NoDetectDataCollectManagerThread.faild=failed + +server.DetecDataResoveThread.alarmInfo1=Monitoring returned to normal + +server.ReturnFileReaderThread.fnInfo=Postback succeeded + +server.InitRunningMissionThread.outEndTime= Task End Time Exceeded +server.InitRunningMissionThread.missionFail=The task failed to execute + +server.LoadNewMissionThread.missionLssue=Task notification +server.LoadNewMissionThread.missionLssueStart=The task is started +server.LoadNewMissionThread.missionInitFail=The task failed to initialize +server.LoadNewMissionThread.errorInfo1=The command execution task parameter is empty and the task cannot be executed +server.LoadNewMissionThread.errorInfo2=The task end time has been exceeded The task failed to execute +server.LoadNewMissionThread.loopMissionState=Period task status +server.LoadNewMissionThread.errorInfo3=Cycle task initialization exception, task cannot be executed +server.LoadNewMissionThread.missionRevoke=Task Revocation Notification +server.LoadNewMissionThread.missionRevokeStart=Mission cancelled execution started +server.LoadNewMissionThread.missionExecFail=Task execution failed +server.LoadNewMissionThread.errorInfo4=The upgrade deployment task parameter is empty and the task cannot be executed +server.LoadNewMissionThread.missionStart=Start the task + +server.MissionPollingThread.noParam=The task parameter is empty and the task cannot be executed +server.MissionPollingThread.missionFail=The task failed to execute +server.MissionPollingThread.outEndTime= Task End Time Exceeded Task Completed +server.MissionPollingThread.loopMissionState=Period task status +server.MissionPollingThread.missionExec=Start of task execution +server.MissionPollingThread.missionExecNotice=Task execution notification +server.MissionPollingThread.missionRevokeNotice=Task execution notification +server.MissionPollingThread.missionRevoke=Task Revocation Start + +server.MissionResultManagerThread.desc=Description + +server.MonitorUtil.warnValue=Alarm value +server.MonitorUtil.abnormal=Not Normal +server.MonitorUtil.normal=Normal +server.MonitorUtil.gt=greater than +server.MonitorUtil.lt=less than +server.MonitorUtil.eq=Equal to +server.MonitorUtil.out=more +server.MonitorUtil.in=Not exceeded +server.MonitorUtil.notEquels=not Equels + +server.NMSClientForSNMPThread.begin=Start +server.NMSClientForSNMPThread.snmpShake=SNMP handshake +server.NMSClientForSNMPThread.success=Success +server.NMSClientForSNMPThread.fail=Failed +server.NMSClientForSNMPThread.netErr=Network Exception + +server.NMSClientForSocketThread.nmsShake=NMSClient Handshake + +server.PingThread.ping=Failed to ping the target host + +server.SystemDateThread.getSysTimeFail=Get the node system time failed + +server.SSLServerManager.exception=The communication service port fails to be bound and exceeds the maximum number of times. The startup fails. + +server.ConnectionOracle.getConnection=Failed to get database connection + +server.SNMP4JUtils.Exception1=Not a basic node +server.SNMP4JUtils.response=The response is empty +server.SNMP4JUtils.Exception2=Error Message +server.SNMP4JUtils.Exception3=Error getting SNMP table +server.SNMP4JUtils.Exception4=Get an exception in SNMP table + +server.ZipUtil.exception1=Compressed directory or file does not exist +server.ZipUtil.exception2=The compressed file list is empty + +server.DataController.showMsg=Communication service failed to start\! \nPlease make sure the program is not started or check that the service port +server.DataController.isExists= is not occupied! +server.DataController.error=Error + +##########################oam################################ + +procInfoList.text.uploadTar=Please upload the tar file and confirm that the absolute path is included +procInfoList.text.format=The format is correct. Make sure you include an absolute path +procInfoList.text.bordCardNull=The card cannot be empty +procInfoList.text.processNull=The process cannot be empty +procInfoList.text.bordCard=Board +procInfoList.text.process=Process +procInfoList.text.updateFile=Upgrade File +procInfoList.text.updateSuccess=The update is successful +procInfoList.text.updateFaild=Update failed +procInfoList.text.bordName=Board Name +procInfoList.text.procName=Process Name +procInfoList.text.proceNo=Process No. +procInfoList.text.procStartTime=Process Start Time +procInfoList.text.cpuUsage=CPU Usage +procInfoList.text.memeryUsage=Memory Footprint +procInfoList.text.procState=Process Status +procInfoList.text.ok=Normal +procInfoList.text.no=Abnormal +procInfoList.text.strengthened=System Strengthened +procInfoList.text.optimized=System Optimized +procInfoList.text.sysname=System Name +procInfoList.text.serviceName=Service Name +procInfoList.text.serviceState=Service Status + +processReset.text.result=Reset mirror not saved.Reset failed! +processReset.text.confirm=Confirm reset?This oparetion is dangerous and irreversible. +reset.success=Reset success +reset.failed=Reset failed \ No newline at end of file diff --git a/gloam/WebRoot/i18n/globalMessages_zh_CN.properties b/gloam/WebRoot/i18n/globalMessages_zh_CN.properties new file mode 100644 index 0000000..1beb700 --- /dev/null +++ b/gloam/WebRoot/i18n/globalMessages_zh_CN.properties @@ -0,0 +1,7424 @@ +#WebRoot目录下 +################################################# +#login.jsp页面 +login.message.title=网络管理系统_用户登录 +login.message.username=请输入用户名或密码 +login.message.password=请输入用户名或密码 +login.text.username=用  户 +login.text.password=密  码 +login.message.yhmc=请输入用户名 + +#main.jsp页面 +main.message.title=网络管理系统 +main.text.show1=报警信息 +main.text.show2=报警信息 +main.format.data=yyyy-MM-dd hh:mm:ss 星期w +main.format.week=天一二三四五六 +main.message.stateInfo1=已完成 +main.message.stateInfo2=全部成功 +main.message.stateInfo3=全部失败 +main.message.stateInfo4=部分成功 +main.message.info=下列任务已完成 +main.text.logout=退出系统 +main.text.systemSelect=系统切换 +main.text.welcome=您好 +main.text.systemName=当前业务系统 +main.message.I3=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#middle.jsp页面 +middle.message.title=网络管理系统 +middle.message.I3=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#middle1.jsp页面 +middle1.message.title=网络管理系统 +middle1.text.position=你现在所在的位置是:信息管理 +middle1.text.selectMessage=信息查找 +middle1.text.selectDefault=请选择 +middle1.text.allMessage=所有信息 +middle1.text.undergraduate=本科 +middle1.text.graduate=研究生 +middle1.text.message=信息 +middle1.text.username=用户名 +middle1.text.realName=真实姓名 +middle1.text.currentState=目前状态 +middle1.text.operation=操作 +middle1.text.messageName=信息的名字 +middle1.text.userName=用户的名字 +middle1.text.userRealName=用户的真实姓名 +middle1.text.state=正常 +middle1.text.delete=删除 +middle1.text.page.total=共 +middle1.text.page.pageInfo=页信息 +middle1.text.page.current=当前第 +middle1.text.page.page=页 +middle1.text.page.change=转到 +middle1.text.page.unit=页 + +#showImportError.jsp页面 +sie.message.title=错误信息页面 +sie.text.errorMessage=报错信息 +sie.button.back=返回 + +#showImportError.jsp页面 +sie.text.brandError=品牌报错信息 +sie.text.engineError=主机架报错信息 +sie.text.cardSlotError=板槽报错信息 +sie.text.BoardError=板卡报错信息 +sie.text.portError=端口报错信息 + +#systemSelect.jsp页面 +systemSelect.message.title=网络管理系统_业务系统选择 +systemSelect.font.style1=微软雅黑 +systemSelect.message.loginSuccess=登录成功 +systemSelect.message.system=业务系统 + +#WebRoot目录下 +#common目录下 +############################################################# +#page.jsp +page.message.inputNum=请输入数字 +page.text.current=当前第 +page.text.total=共有 +page.text.record=条记录 +page.text.page=页 +page.text.change=转到第 +page.text.pageSize=每页显示 + +#pageSub.jsp +pageSub.text.inputNum=请输入数字 +pageSub.text.tooSmall=输入的页码太小,请重新输入的页数 + +#remoteConn.jsp +remoteConn.text.title=远程连接 +remoteConn.text.sure=确定 +remoteConn.text.select=请选择 +remoteConn.text.unknow=未选择类型 +remoteConn.text.cancel=取消 +remoteConn.text.downMsg=请点击下载并安装客户端执行程序,再访问远程连接 +remoteConn.text.download=下载 +remoteConn.text.down=点击下载 +remoteConn.message.title=请选择操作系统 +remoteConn.text.sysType=操作系统类型 +remoteConn.text.svgMsg=未安装SVG插件,请下载并安装 + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#checkType目录下 +################################################ +#addCheckTypeSetInfo.jsp页面 +actsi.message.title=添加监测类别设置信息 +actsi.text.checkTypeName1=监测类别名称 +actsi.text.checkTypeName=监测类别 +actsi.text.tableName=对应数据库表 +actsi.text.checkTypeName1.hasSpecialChar=监测类别名称存在特殊字符,请重新输入 +actsi.text.tableName.enterDBName=请输入数据库表名 +actsi.text.tableName.tabSpecialChar=对应数据库表存在特殊字符,请重新输入 +actsi.text.tableName.tabHasZh=对应数据库表存在中文,请重新输入 +actsi.text.usergroup=用户组 +actsi.text.oidFont=OID不合法,格式请参照如下OID:1.3.6.1.2.1.1 +actsi.text.ctypeName.exception1=请输入小于64个字符的长度 +actsi.text.tableNameFont.exception=请输入小于21个字符的长度 +actsi.text.ctypeName.exception2=请输入字母和数字 +actsi.button.back=返回 +actsi.text.addCheckType=添加监测类别 +actsi.text.tableDesc=表描述 +actsi.text.viewPrivilege=查看权限 +actsi.text.viewPrivilege.publisher=发布人查看 +actsi.text.viewPrivilege.publisherGroup=发布人所在组查看 +actsi.text.viewPrivilege.allInSys=系统内全部人员查看 +actsi.text.viewPrivilege.unlimited=无限制 +actsi.text.usergroup1=用  户  组 +actsi.text.selectUserGroup=请选择用户组 +actsi.text.snmp=SNMP 监控 +actsi.text.NO=否 +actsi.text.lawful=合法 +actsi.text.isSchedule=是否预置信息 +actsi.text.remark=备注 +actsi.button.submit=提交 +actsi.button.reset=重置 + +#addCheckTypeSource.jsp页面 +acts.message.title=配置监测类别元数据 +acts.error.abnormalOperation=操作异常! +acts.error.charLen=请输入字符长 +acts.text.filedName=字段名 +acts.text.filedComments=字段描述 +acts.text.filedType=字段类型 +acts.text.showNum=传输序号 +acts.error.filedName=字段名存在中文,请重新输入 +acts.text.filedTypeLength=字段长度 +acts.error.cannotNum=不能以数字开头 +acts.error.hasSpecialChar=字段名存在特殊字符,请重新输入 +acts.error.lenTooLess=字段名长度需小于15个字符 +acts.text.addDetecationMetaDate=新增监测类别元数据 +acts.text.detecationType=监测类别 +acts.text.tableName=表名 +acts.error.filedComments=请注明字段单位 +acts.message.filedType.selectDefault=请选择 +acts.message.filedType.selectNumber=数字 +acts.message.filedType.selectDATE=时间 +acts.message.filedType.selectVARCHAR2=文本 +acts.text.metaDateState=是否启用标识 +acts.message.metaDateState0=启用 +acts.message.metaDateState1=停用 +acts.text.ChartState=是否用于统计 +acts.message.yes=是 +acts.message.no=否 +acts.text.serialNumber=在传输过程中的序号 +acts.button.submit=提交 +acts.button.reset=重置 +acts.button.back=返回 + +#checkTypeSetInfoList.jsp页面 +ctsil.message.title=监测类别管理 +ctsil.message.success=操作成功! +ctsil.message.faild=操作失败! +ctsil.error.itemSelect=请选择一行记录! +ctsil.error.isDelete=确定删除设置信息吗? +ctsil.error.selectFile=请选择导入的文件 +ctsil.error.selectFileType=请选择正确的导入文件类型 +ctsil.error.isImport=导入监测类别,你确定导入吗? +ctsil.text.detecationTypeName=监测类别名称 +ctsil.message.selectDetecationTypeDefault=请选择 +ctsil.button.downloadModel=下载模板 +ctsil.button.import=导入 +ctsil.button.export=导出 +ctsil.button.index=序号 +ctsil.text.detecationType=监测类别 +ctsil.text.tableMap=对应数据库表 +ctsil.text.tableComments=表描述 +ctsil.text.isSchedule=是否预置信息 +ctsil.text.isSnmp=是否SNMP监控 +ctsil.text.remark=备注 +ctsil.message.yes=是 +ctsil.message.no=否 +ctsil.message.noRecord=没有记录 +ctsil.button.exportCurrentPage=导出当前页数据 +ctsil.button.exportAllData=导出全部数据 +ctsil.button.closeWindow=关闭窗口 + +#checkTypeSetInfoListChild.jsp页面 +ctsilc.message.yes=是 +ctsilc.message.no=否 + +#checkTypeSourceList.jsp页面 +ctsl.message.title=监测类别元数据管理 +ctsl.message.success=操作成功! +ctsl.message.faild=操作失败! +ctsl.error.itemSelect=请至少选择一行记录! +ctsl.error.itemSelect1=请选择一行记录! +ctsl.message.isCreateTable=确定生成吗? +ctsl.message.isAddFiled=确定添加吗? +ctsl.message.warningDetecationMetaDate=监测类别源数据操作已完成,是否继续维护数据? +ctsl.message.hint=提示 +ctsl.message.warningDetecationType=监测类别操作已完成,是否继续维护数据? +ctsl.button.add=新增 +ctsl.button.update=修改 +ctsl.button.createTable=生成数据表 +ctsl.button.stop=停用 +ctsl.button.start=启用 +ctsl.button.back=返回 +ctsl.text.index=序号 +ctsl.text.detecationType=监测类别 +ctsl.text.tableName=表名 +ctsl.text.tableComments=表描述 +ctsl.text.filedName=字段名 +ctsl.text.filedDesc=字段描述 +ctsl.text.filedType=字段类型 +ctsl.text.isMetaDateState=是否启用标识 +ctsl.text.isChartState=是否用于统计 +ctsl.text.transIndex=传输序号 +ctsl.message.metaDateState0=启用 +ctsl.message.metaDateState1=停用 +ctsl.message.yes=是 +ctsl.message.no=否 +ctsl.message.noRecord=没有记录 + +#updateCheckTypeSetInfo.jsp页面 +uctsi.message.title=修改监测类别信息 +uctsi.message.faild=操作异常! +uctsi.message.checkTypeName1=监测类别名称 +uctsi.message.tableName=对应数据库表 +uctsi.error.hasSpecialChar=监测类别名称存在特殊字符,请重新输入 +uctsi.error.inputTableName=请输入数据库表名 +uctsi.error.tooLong=请输入小于21个字符的长度 +uctsi.error.tabHasSpecialChar=对应数据库表存在特殊字符,请重新输入 +uctsi.error.tabHasZh=对应数据库表存在中文,请重新输入 +uctsi.message.usergroup=用户组 +uctsi.error.OIDFont=OID不合法,格式请参照如下OID:1.3.6.1.2.1.1 +uctsi.button.back=返回 +uctsi.text.updateDetecationType=修改监测类别 +uctsi.text.checkTypeName=监测类别 +uctsi.text.tableComments=表描述 +uctsi.text.viewPrivilige=查看权限 +uctsi.text.publisher=发布人查看 +uctsi.text.publisherGroup=发布人所在组查看 +uctsi.text.allInSys=系统内全部人员查看 +uctsi.text.unlimited=无限制 +uctsi.text.usergroup=用  户  组 +uctsi.message.selectUserGroup=请选择用户组 +uctsi.message.isSnmp=SNMP 监控 +uctsi.message.no=否 +uctsi.text.isSchedule=是否预置信息 +uctsi.text.remark=备注 +uctsi.button.submit=提交 +uctsi.button.reset=重置 + +#updateCheckTypeSourceList.jsp页面 +uctsl.message.title=监测类别元数据管理 +uctsl.message.faild=操作异常! +uctsl.message.inputFiledName=请输入字段名 +uctsl.message.filedName2=字段名 +uctsl.message.cannotNum=字段名不能以数字开头 +uctsl.message.filedNameRepeat=字段名重复,请修改! +uctsl.message.filedComments=字段描述均不可为空 +uctsl.message.filedType1=字段类型均不可为空 +uctsl.message.filedLength1=文本类型的字段长度均不可为空 +uctsl.message.filedLength2=文本长度请输入数字! +uctsl.message.hasSortSign=请选择一个字段作为分类标识 +uctsl.message.filedType2=字符类型不能用于统计 +uctsl.text.updateMetaData=批量修改监测类别元数据 +uctsl.text.index=序号 +uctsl.text.filedName=字段名 +uctsl.text.filedComments=字段描述 +uctsl.text.filedType=字段类型 +uctsl.text.isMetaDateState=是否启用标识 +uctsl.text.isChartState=是否用于统计 +uctsl.text.dict=翻译字典 +uctsl.text.isClassify=是否分类标识 +uctsl.text.showFiledUtil=请注明字段单位 +uctsl.message.metaDataDefault=请选择 +uctsl.message.metaDataNumber=数字 +uctsl.message.metaDataDATE=时间 +uctsl.message.metaDataVARCHAR2=文本 +uctsl.message.metaDataLength=长度 +uctsl.message.stop=停用 +uctsl.message.start=启用 +uctsl.message.no=否 +uctsl.message.yes=是 +uctsl.message.noRecord=没有记录 +uctsl.button.submit=提交 +uctsl.button.reset=重置 +uctsl.button.back=返回 + +#updCheckTypeSource.jsp页面 +ucts.message.title=配置监测类别元数据 +ucts.message.inputFiledTypeLength=请输入字符长度 +ucts.message.filedName=字段名 +ucts.message.filedType=字段类型 +ucts.message.filedComments=字段描述 +ucts.message.filedTypeLength=字段长度 +ucts.text.updateMetaData=修改监测类别元数据 +ucts.text.checkType=监测类别 +ucts.text.tableName=表名 +ucts.text.filedName=字段名 +ucts.text.filedComments=字段描述 +ucts.text.filedType=字段类型 +ucts.message.filedTypeDefault=请选择 +ucts.message.filedTypeNumber=数字 +ucts.message.filedTypeDATE=时间 +ucts.message.filedTypeVARCHAR2=文本 +ucts.text.isState=是否启用标识 +ucts.text.isChartState=是否用于统计 +ucts.text.showNum=在传输过程中的序号 +ucts.button.submit=提交 +ucts.button.reset=重置 +ucts.button.back=返回 + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#detecWarning目录下 +######################################################### +#detailWarningInfo.jsp页面 +dwi.message.title=告警详细信息 +dwi.button.back=返回 +dwi.message.warningInfo=告警数据详细信息 +dwi.text.processIdenName=设置名称 +dwi.text.nodeIp=节点IP +dwi.text.detecationState=监测状态 +dwi.message.abnormal=不正常 +dwi.message.normal=正常 +dwi.message.execFailed=执行失败 +dwi.text.viewLevel=查看权限 +dwi.message.publisher=发布人查看 +dwi.message.publisherGroup=发布人所在组查看 +dwi.message.allInSys=系统内全部人员查看 +dwi.message.unlimited=无限制 +dwi.text.stateInfo=状态信息 +dwi.text.performaceData=性能数据 +dwi.text.checkGap=监测数据时间间隔(分钟) +dwi.text.currentTimes=最近检查次数 +dwi.text.nextCheckTime=下次监测时间 +dwi.text.dataArriveTime=最近更新时间 +dwi.text.dataCheckTime=最近监测时间 +dwi.text.warningInfo=告警信息 +dwi.text.noRecord=没有记录 + +#detecConfLevelWarningList.jsp页面 +dclwl.message.title=告警信息 +dclwl.message.inputInfo=输入为特殊字符,请重新输入! +dclwl.message.inputNum=预警级别 请输入数字 +dclwl.message.policeLevelVal=预警值必须在1-99之间! +dclwl.text.police_emergent=紧急状态 +dclwl.text.changeEmergentDefault=请选择 +dclwl.text.emergency=紧急 +dclwl.text.nonEmergency=非紧急 +dclwl.text.police_level=预警级别 +dclwl.text.police_levelDefault=请选择 +dclwl.text.police_levelSelect=级告警 +dclwl.text.nodeIp=节点IP +dclwl.message.nodeIp=请输入节点IP +dclwl.text.checkType=监测类别 +dclwl.message.checkType=请输入检测类别名 +dclwl.text.pIden=设置名称 +dclwl.message.pIden=请输入设置名称 +dclwl.text.dataCheckTime=最近检查时间 +dclwl.text.stateInfo=性能数据 +dclwl.message.stateInfo=请输入状态信息 +dclwl.text.timeoutDetecFilter=过滤超周期监测 +dclwl.message.no=否 +dclwl.message.yes=是 +dclwl.message.export=导出 +dclwl.button.back=返回 +dclwl.text.index=序号 +dclwl.text.checkWay=监测方式 +dclwl.text.tryTimes=尝试次数 +dclwl.text.persistTime=持续时间 +dclwl.message.showRecord=查看详情 +dclwl.message.showDetectionInfo=报警记录 +dclwl.message.active=主动 +dclwl.message.passive=被动 +dclwl.text.noRecord=没有记录 +dclwl.button.exportCurrentPage=导出当前页数据 +dclwl.button.exprotAllData=导出全部数据 +dclwl.text.closeWindow=关闭窗口 + +#detecConfLevelWarningListChild.jsp页面 +dclwlc.message.showRecord=查看详情 +dclwlc.message.showDetectionInfo=报警记录 +dclwlc.message.active=主动 +dclwlc.message.passive=被动 + +#detecWarningList.jsp页面 +dwl.message.title=告警信息 +dwl.message.hasSpecialChar=输入为特殊字符,请重新输入! +dwl.message.inputNum=预警级别 请输入数字 +dwl.message.policeLevelVal=预警值必须在1-99之间! +dwl.text.police_emergent=紧急状态 +dwl.text.changeEmergentDefault=请选择 +dwl.text.emergent0=紧急 +dwl.text.nonEmergent1=非紧急 +dwl.text.police_level=预警级别 +dwl.text.levelAlarm=级告警 +dwl.message.changeLevelDefault=请选择 +dwl.text.nodeIp=节点IP +dwl.message.nodeIp=请输入节点IP +dwl.text.checkType=监测类别 +dwl.message.checkType=请输入检测类别名 +dwl.text.checkTypeName=设置名称 +dwl.message.checkTypeName=请输入设置名称 +dwl.text.dataCheckTime=最近检查时间 +dwl.text.stateInfo=性能数据 +dwl.message.stateInfo=请输入状态信息 +dwl.text.timeoutDetecFilter=过滤超周期监测 +dwl.message.no=否 +dwl.message.yes=是 +dwl.button.export=导出 +dwl.button.back=返回 +dwl.text.index=序号 +dwl.text.checkWay=监测方式 +dwl.text.persistTime=持续时间 +dwl.text.tryTimes=尝试次数 +dwl.message.showRecord=查看详情 +dwl.message.showDetectionInfo=报警记录 +dwl.message.active=主动 +dwl.message.passive=被动 +dwl.text.noRecord=没有记录 +dwl.button.exportCurrentPage=导出当前页数据 +dwl.button.exportAllData=导出全部数据 +dwl.message.closeWindow=关闭窗口 + +#detecWarningListChild.jsp页面 +dwlc.message.showRecord=查看详情 +dwlc.message.showDetectionInfo=报警记录 +dwlc.message.active=主动 +dwlc.message.passive=被动 + + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#monitorData目录下 +######################################################## +#detailMonitor.jsp页面 +dm.message.title=监控数据详细信息 +dm.button.back=返回 +dm.text.detecationInfo=监控数据详细信息 +dm.text.processIdenName=设置名称 +dm.text.nodeIp=节点IP +dm.text.datecationState=监测状态 +dm.message.abnormal=不正常 +dm.message.normal=正常 +dm.text.viewLevel=查看权限 +dm.message.publisher=发布人查看 +dm.message.publisherGroup=发布人所在组查看 +dm.message.allInSys=系统内全部人员查看 +dm.message.unlimited=无限制 +dm.text.detectionStateInfo=状态信息 +dm.text.performaceData=性能数据 +dm.text.checkGap=监测数据时间间隔(分钟) +dm.text.currentTimes=最近检查次数 +dm.text.nextCheckTime=下次监测时间 +dm.text.dataArriveTime=最近更新时间 +dm.text.datacheckTime=最近监测时间 +dm.text.checkWay=监测方式 +dm.message.active=主动 +dm.message.passive=被动 +dm.text.nodeSytemInfo=节点系统信息 +dm.message.noDataCollect=未采集到相关数据 +dm.message.noDataForSwitch=该节点为交换机暂无数据 +dm.text.hostName=主机名称 +dm.text.operateSystem=操作系统 +dm.text.cpuCnt=CPU数量 +dm.text.cpuMhz=CPU主频(MHz) +dm.text.memorySize=内存大小(G) +dm.text.diskSize=硬盘大小(G) +dm.text.swapSize=SWAP大小(G) +dm.text.netCnt=网卡个数 +dm.text.dataCheckTime=信息采集时间 +dm.text.dataStorageTime=信息入库时间 +dm.text.diskInfo=硬盘详细信息 +dm.message.diskInfo=未采集到硬盘数据 +dm.text.index=序号 +dm.text.diskRang=硬盘分区 +dm.text.rangSize=分区大小(G) +dm.text.netCardInfo=网卡详细信息 +dm.message.netCardInfo=未采集到网卡数据 +dm.text.netName=网卡名称 +dm.text.netState=网卡状态 +dm.text.netSpeed=网卡带宽(单位: Mbps) +dm.text.netSubmask=子网掩码 +dm.text.netGateway=网关 +dm.text.netMac=MAC地址 +dm.text.detecationData=监测数据 +dm.text.noRecord=没有记录 + +#detailWarning.jsp页面 +dw.message.title=监控数据详细信息 +dw.button.back=返回 +dw.text.processIdenName=设置名称 +dw.text.nodeIp=节点IP +dw.text.detectionedState=监测状态 +dw.message.abnormal=不正常 +dw.message.normal=正常 +dw.text.viewLevel=查看权限 +dw.message.publisher=发布人查看 +dw.message.publisherGroup=发布人所在组查看 +dw.message.allInSys=系统内全部人员查看 +dw.message.unlimited=无限制 +dw.text.detectionStateInfo=状态信息 +dw.text.performaceData=性能数据 +dw.text.checkGap=监测数据时间间隔(分钟) +dw.text.currentTimes=最近检查次数 +dw.text.nextCheckTime=下次监测时间 +dw.text.dataArriveTime=最近更新时间 +dw.text.dataCheckTime=最近监测时间 +dw.text.checkWay=监测方式 +dw.message.active=主动 +dw.message.passive=被动 +dw.text.nodeSystemInfo=节点系统信息 +dw.message.nodeType0=未采集到相关数据 +dw.message.nodeType1=该节点为交换机暂无数据 +dw.text.hostName=主机名称 +dw.text.operateSystem=操作系统 +dw.text.cpuCnt=CPU数量 +dw.text.cpuMhz=CPU主频(MHz) +dw.text.memorySize=内存大小(G) +dw.text.diskSize=硬盘大小(G) +dw.text.swapSize=SWAP大小(G) +dw.text.netCnt=网卡个数 +dw.text.dataCheckTime=信息采集时间 +dw.text.dataStorageTime=信息入库时间 +dw.text.diskInfo=硬盘详细信息 +dw.message.diskInfo=未采集到硬盘数据 +dw.text.index=序号 +dw.text.diskRang=硬盘分区 +dw.text.rangSize=分区大小(G) +dw.text.netInfo=网卡详细信息 +dw.message.netInfo=未采集到网卡数据 +dw.text.netName=网卡名称 +dw.text.netState=网卡状态 +dw.text.netSpeed=网卡带宽(单位: Mbps) +dw.text.netSubmask=子网掩码 +dw.text.netGateway=网关 +dw.text.netMac=MAC地址 +dw.text.detecationData=监测数据 +dw.text.noRecord=没有记录 + +#detectionInfoList.jsp页面 +dil.message.title=监控信息 +dil.message.checkDate=结束时间不能小于开始时间 +dil.text.startTime=时间 +dil.text.status=状态 +dil.message.statusDefault=请选择 +dil.message.normal=正常 +dil.message.abnormal=异常 +dil.button.back=返回 +dil.text.nodeIp=节点IP +dil.text.checkType=监测类别 +dil.text.checkTypeName=设置名称 +dil.text.state=状态 +dil.text.dataCheckTime=最近检查时间 +dil.text.tryTimes=尝试次数 +dil.text.performaceData=性能数据 +dil.text.stateInfo=状态信息 +dil.text.noRecord=没有记录 + +#drawMonitorInfo.jsp页面 +dmi.message.title=监控数据折线图 +dmi.message.startTime=起始时间不能为空 +dmi.message.endTime=结束时间不能为空 +dmi.message.startGtEnd=结束时间必须大于起始时间 +dmi.message.intervalErr=起始结束时间间隔不能超过一周 +dmi.message.noData=没有数据 +dmi.message.policeLine=警戒线 +dmi.message.updateTheMark=这里修改这个标记 +dmi.text.LineChart=监控数据折线图 +dmi.text.startTime=起始时间 +dmi.text.endTime=结束时间 +dmi.message.defaultMsg=提示:未选择起始和结束时间时,默认查询当天的数据 +dmi.button.back=返回 +dmi.text.noRecord=没有记录 + +#drawSnmpMonitorInfo.jsp页面 +dsmi.message.title=监控数据折线图 +dsmi.message.selectToDraw1=请选择不大于5个标识进行绘图,以使页面流畅 +dsmi.message.selectTodraw2=请选择绘制统计图标识 +dsmi.message.startTime=起始时间不能为空 +dsmi.message.endTime=结束时间不能为空 +dsmi.message.startGtEnd=结束时间必须大于起始时间 +dsmi.message.intervalErr=起始结束时间间隔不能超过一周 +dsmi.message.noData=没有数据 +dsmi.message.policyLine=警戒线 +dsmi.message.updateTheMark=这里修改这个标记 +dsmi.text.startTime=起始时间 +dsmi.text.endTime=结束时间 +dsmi.message.defaultMsg=提示:未选择起始和结束时间时,默认查询当天的数据 +dsmi.text.noRecord=没有记录 +dsmi.button.back=返回 +dsmi.textnoClassify=分类标识为空 +dsmi.button.clearSelected=清空选择 +dsmi.button.sure=确定 + +#drawSpecialMonitorInfo.jsp页面 +dspmi.message.title=监控数据折线图 +dspmi.message.selectToDraw=请选择不大于2个标识进行绘图,以使页面流畅 +dspmi.message.selecttoDrawID=请选择绘制统计图标识 +dspmi.message.startTime=起始时间不能为空 +dspmi.message.endTime=结束时间不能为空 +dspmi.message.startGtEnd=结束时间必须大于起始时间 +dspmi.message.intervalErr=起始结束时间间隔不能超过一周 +dspmi.message.noData=没有数据 +dspmi.message.policyLine=警戒线 +dspmi.message.updateTheMark=这里修改这个标记 +dspmi.text.startTime=起始时间 +dspmi.text.endTime=结束时间 +dspmi.message.defaultMsg=提示:未选择起始和结束时间时,默认查询当天的数据 +dspmi.button.back=返回 +dspmi.text.noRecord=没有记录 +dspmi.textnoClassify=分类标识为空 +dspmi.button.clearSelected=清空选择 +dspmi.button.sure=确定 + +#drawSwitchportMonitorInfo.jsp页面 +dswmi.message.title=监控数据折线图 +dswmi.message.startTime=起始时间不能为空 +dswmi.message.endTime=结束时间不能为空 +dswmi.message.startGtEnd=结束时间必须大于起始时间 +dswmi.message.intervalErr=起始结束时间间隔不能超过一周 +dswmi.message.selectToChart=请选择绘制统计图标识 +dswmi.message.noData=没有数据 +dswmi.message.policyLine=警戒线 +dswmi.message.updateTheMark=这里修改这个标记 +dswmi.text.startTime=起始时间 +dswmi.text.endTime=结束时间 +dswmi.message.defaultMsg=提示:未选择起始和结束时间时,默认查询当天的数据 +dswmi.button.back=返回 +dswmi.message.noRecord=没有记录 +dswmi.textnoClassify=分类标识为空 +dswmi.button.clearSelected=清空选择 +dswmi.button.sure=确定 + +#monitorInfoList_abnormalSet.jsp页面 +milas.message.title=监控信息 +milas.message.inputInfo=输入为特殊字符,请重新输入! +milas.text.hostName=主机名 +milas.message.hostName=请输入主机名 +milas.text.checkType=监测类别 +milas.message.checkTypeDefault=请选择 +milas.button.back=返回 +milas.button.export=导出 +milas.text.processIdenName=设置名称 +milas.text.status=状态 +milas.text.dataCheckTime=最近检查时间 +milas.text.persistTime=持续时间 +milas.text.tryTimes=尝试次数 +milas.text.stateInfo=状态信息 +milas.text.noRecord=没有记录 +milas.button.exportCurrentPage=导出当前页数据 +milas.button.exportAllData=导出全部数据 +milas.text.closeWindow=关闭窗口 + +#monitorInfoList.jsp页面 +mil.message.title=监控信息 +mil.text.hostName=主机名 +mil.message.hostName=请输入主机名 +mil.text.checkType=监测类别 +mil.message.checkType=请输入监测类型 +mil.text.processIdenName=设置名称 +mil.text.status=状态 +mil.text.dataCheckTime=最近检查时间 +mil.text.persistTime=持续时间 +mil.text.tryTimes=尝试次数 +mil.text.stateInfo=状态信息 +mil.text.noRecord=没有记录 + +#monitorInfoListNew.jsp页面 +miln.message.title=监控信息 +miln.message.inputInfo=输入为特殊字符,请重新输入! +miln.text.nodeIp=节点IP +miln.message.nodeIp=请输入节点IP +miln.text.checkType=监测类别 +miln.message.checkType=请输入检测类别名 +miln.text.stateInfo=状态信息 +miln.message.stateInfo=请输入状态信息 +miln.button.export=导出 +miln.text.processIdenName=设置名称 +miln.text.state=状态 +miln.text.dataCheckTime=最近检查时间 +miln.text.persistTime=持续时间 +miln.text.tryTimes=尝试次数 +miln.message.handshake=握手监测 +miln.message.showRecord=查看详情 +miln.message.showDetectionInfo=历史记录 +miln.message.drawPic=统计 +miln.text.noRecord=没有记录 +miln.button.exportCurrentPage=导出当前页数据 +miln.button.exportAllData=导出全部数据 +miln.text.closeWindow=关闭窗口 + +#monitorInfoListNewChild.jsp页面 +milnc.message.handshake=握手监测 +milnc.message.showRecord=查看详情 +milnc.message.showDetectionInfo=历史记录 +milnc.message.drawPic=统计 + +#monitorNEList.jsp页面 +mnel.message.title=监控信息 +mnel.message.hasSpecialChar=输入为特殊字符,请重新输入! +mnel.text.nodeIp=节点IP +mnel.message.nodeIp=请输入主机名 +mnel.text.checkType=监测类别 +mnel.message.checkType=请输入检测类别名 +mnel.text.stateInfo=状态信息 +mnel.message.staeInfo=请输入状态信息 +mnel.button.export=导出 +mnel.text.processIdenName=设置名称 +mnel.text.state=状态 +mnel.text.dataCheckTime=最近检查时间 +mnel.text.persistTime=持续时间 +mnel.text.tryTimes=尝试次数 +mnel.message.handshake=握手监测 +mnel.button.exportCurrentPage=导出当前页数据 +mnel.button.exportAllData=导出全部数据 +mnel.text.closeWindow=关闭窗口 +mnel.text.noRecord=没有记录 + +#monitorNEListChild.jsp页面 +mnelc.message.handshake=握手监测 + +#queryEmergent.jsp页面 +qe.message.title=监控信息 +qe.text.nodeIp=节点IP +qe.text.checkType=监测类别 +qe.text.processIdenName=设置名称 +qe.text.state=状态 +qe.text.dataCheckTime=最近检查时间 +qe.text.persistTime=持续时间 +qe.text.tryTimes=尝试次数 +qe.text.stateInfo=状态信息 +qe.message.handshake=握手监测 +qe.button.showDetectionInfo=历史记录 +qe.button.drawPic=统计 +qe.text.noRecord=没有记录 + +#queryEmergentChild.jsp页面 +qec.message.handshake=握手监测 +qec.button.showDetectionInfo=历史记录 +qec.button.drawPic=统计 + +#select_plug.jsp页面 +sp.message.title=选择统计图标识列表 +sp.message.selectToDraw=请选择不大于5个标识进行绘图,以使页面流畅 +sp.message.selectTodrawID=请选择绘制统计图标识 +sp.text.query=查询 +sp.message.query=(提示:可键入简拼、全拼、汉字) +sp.button.clear=清空选择 +sp.button.ok=确定 +sp.button.cancel=取消 + +#serverMonitorInfoListChild.jsp页面 +smilc.message.handshake=握手监测 +smilc.message.showRecord=查看详情 +smilc.message.showDetectionInfo=历史记录 +smilc.message.drawPic=统计 + +#serverMonitorInfoListNew.jsp页面 +smiln.message.title=监控信息 +smiln.message.hasSpecialChar=输入为特殊字符,请重新输入! +smiln.text.nodeIp=节点IP +smiln.message.nodeIp=请输入节点IP +smiln.text.nodeGroup=节点组 +smiln.message.nodeGroup=请输入节点组名称 +smiln.text.checkType=监测类别 +smiln.message.checkType=请输入检测类别名 +smiln.text.stateInfo=状态信息 +smiln.message.stateInfo=请输入状态信息 +smiln.button.export=导出 +smiln.text.processIdenName=设置名称 +smiln.text.state=状态 +smiln.text.dataCheckTime=最近检查时间 +smiln.text.persistTime=持续时间 +smiln.text.tryTimes=尝试次数 +smiln.message.handshake=握手监测 +smiln.message.showRecord=查看详情 +smiln.message.showDetectionInfo=历史记录 +smiln.message.drawPic=统计 +smiln.text.noRecord=没有记录 +smiln.button.exportCurrentPage=导出当前页数据 +smiln.button.exportAllData=导出全部数据 +smiln.text.closeWindow=关闭窗口 + +#vmonitorInfoList.jsp页面 +vil.message.title=监控信息 +vil.text.hostName=主机名 +vil.message.hostName=请输入主机名 +vil.text.checkType=监测类型 +vil.message.checkType=请输入监测类型 +vil.text.processIdenName=设置名称 +vil.text.state=状态 +vil.text.dataCheckTime=最近检查时间 +vil.text.persistTime=持续时间 +vil.text.tryTimes=尝试次数 +vil.text.stateInfo=状态信息 +vil.text.noRecord=没有记录 + + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#oidDictionary目录下 +######################################################## +#addOidDictionary.jsp页面 +aod.message.title=添加OID字典 +aod.message.oddesc=字段描述 +aod.message.oidFont=OID不合法,格式请参照如下OID:1.3.6.1.2.1.1 +aod.text.title=新增OID字典信息 +aod.text.oidDesc=字段描述 +aod.button.submit=提交 +aod.button.reset=重置 +aod.button.back=返回 + +#oidDictionaryList.jsp页面 +odl.message.title=OID数据字典 +odl.text.index=序号 +odl.text.oddesc=OID字段描述 +odl.text.option=操作 +odl.message.updateRecord=修改信息 +odl.message.noRecord=没有记录 + +#updateOidDictionary.jsp页面 +uod.message.title=修改OID字典 +uod.message.oiddesc=字段描述 +uod.message.oidFont=OID不合法,格式请参照如下OID:1.3.6.1.2.1.1 +uod.text.title=修改OID字典信息 +uod.button.submit=提交 +uod.button.reset=重置 +uod.button.back=返回 + + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#policeRelation目录下 +######################################################### +#addPoliceRelation.jsp页面 +apr.message.title=添加报警设置信息 +apr.message.metadata=报警字段 +apr.message.policeValue=报警阀值 +apr.message.policeUnit=报警阀值单位 +apr.message.policeSymbols=报警比较符 +apr.message.policeEmergent=是否紧急 +apr.message.policeLevel=预警级别 +apr.message.policeLevelInfo=报警级别为1~5 +apr.message.inputInfo=输入内容需小于200个字符 +apr.text.title=添加告警设置 +apr.message.metadataDefault=请选择 +apr.text.policeState=状态 +apr.message.active=有效 +apr.message.invalid=无效 +apr.text.markerFiled=过滤字段 +apr.message.markerFiledDefault=请选择 +apr.text.marker=过滤标识 +apr.message.marker=多个标识采用 | 进行分割; 内容为空,不进行过滤 +apr.text.policeEmergent=是否紧急 +apr.message.policeEmergentDefault=请选择 +apr.text.policeLevel=报警级别 +apr.text.policeValue=报警阀值 +apr.text.policeUnit=报警阀值单位 +apr.text.policeSymbols=报警比较符 +apr.text.policeSymbolsDefault=请选择 +apr.text.policeShowInfo=报警提示信息 +apr.message.policeShowInfo=内容小于200个字符 +apr.button.submit=提交 +apr.button.reset=重置 +apr.button.back=返回 + +#policeRelationList.jsp页面 +prl.message.title=报警设置信息 +prl.message.success=操作成功! +prl.message.faild=操作失败! +prl.message.hasSpecialChar=输入为特殊字符,请重新输入! +prl.message.select=请选择一行记录! +prl.text.checkTypeName=监测类别名称 +prl.message.checkTypeDefault=请选择 +prl.text.processIdenName=设置名称 +prl.message.processIdenName=请输入设置名称 +prl.button.add=新增 +prl.button.update=修改 +prl.button.back=返回 +prl.text.index=序号 +prl.text.checkGap=监测间隔(分钟) +prl.text.filedName=报警字段 +prl.text.filedComments=报警字段描述 +prl.text.policeValue=报警阀值 +prl.text.policeUnit=报警阀值单位 +prl.text.policeSymbols=报警比较符 +prl.text.policeLevel=报警级别 +prl.text.policeEmergent=是否紧急 +prl.text.state=状态 +prl.text.policeShowInfo=报警提示信息 +prl.message.emergent=紧急 +prl.message.nonEmergent=非紧急 +prl.message.active=有效 +prl.message.invalid=无效 +prl.text.noRecord=没有记录 + +#updatePoliceRelation.jsp页面 +upr.message.title=添加报警设置信息 +upr.message.policeValue=报警值 +upr.message.policeUnit=报警值单位 +upr.message.policeSymbols=报警比较符 +upr.message.policeLevel=预警级别 +upr.message.policeLevelInfo=报警级别为1~5 +upr.message.inputInfo=输入内容需小于200个字符 +upr.text.title=修改告警设置 +upr.text.metadata=报警字段 +upr.text.policeState=状态 +upr.message.active=有效 +upr.message.invalid=无效 +upr.text.markerFiled=过滤字段 +upr.message.markerFiledDefault=请选择 +upr.text.marker=过滤标识 +upr.message.marker=多个标识采用 | 进行分割; 内容为空,不进行过滤 +upr.text.policeEmergent=是否紧急 +upr.message.emergent=紧急 +upr.message.nonEmergent=非紧急 +upr.text.policeLevel=报警级别 +upr.text.policeValue=报警阀值 +upr.text.policeUnit=报警阀值单位 +upr.text.policeSymbols=报警比较符 +upr.message.policeSymbolsDefault=请选择 +upr.text.policeShowInfo=报警提示信息 +upr.message.policeShowInfo=内容小于200个字符 +upr.button.submit=提交 +upr.button.reset=重置 +upr.button.back=返回 + +#WebRoot目录下 +#page目录下 +#detecation目录下 +#switchInfo目录下 +####################################################### +#selectNodeAndDeviceType.jsp页面 +snadt.message.seqId=请选择节点 +snadt.message.deviceBrandCode=请选择品牌 +snadt.message.deviceBrandTypeCode=请选择型号 +snadt.message.selectDefault=请选择 +snadt.text.seqId=节      点 +snadt.text.deviceBrandCode=设备品牌 +snadt.text.deviceBrandTypeCode=设备型号 +snadt.text.maxDevNum=叠 加 数 +snadt.button.ok=确定 + +#specialDeviceConfig.jsp页面 +sdc.message.title=JS拖拽DIV +sdc.message.checkPosition=槽位与子设备不对应,请重新配置 +sdc.text.ip=节点 +sdc.text.deviceBrandTypeCode=品牌型号 +sdc.button.submit=提交 +sdc.button.back=返回 + +#switchDetectInfoGraphPage.jsp页面 +sdigp.message.title=交换机监测数据图形化展示 +sdigp.message.noData=没有数据 +sdigp.message.updateTheMarker=这里修改这个标记 +sdigp.button.back=返回 +sdigp.text.ip=节点IP +sdigp.text.deviceTypeCode=设备类型 +sdigp.text.dataCheckTime=监测时间 +sdigp.text.title=系统基本信息 +sdigp.text.sysName=系统名称 +sdigp.text.sysUpTime=系统运行时间 +sdigp.text.sysLocation=运行地点 +sdigp.text.outoctetsspeed=输出速度 +sdigp.message.outoctetsspeed=输出速度 +sdigp.text.inoctetsspeed=输入速度 +sdigp.message.inoctetsspeed=输入速度 +sdigp.text.outpktsspeed=发包速率 +sdigp.message.outpktsspeed=发包速率 +sdigp.text.inpktsspeed=收包速率 +sdigp.message.inpktsspeed=收包速率 +sdigp.text.sysStatus=系统状态 +sdigp.text.sysDesc=系统描述 +sdigp.text.from=从 +sdigp.text.selectOneDay=查询1天数据 +sdigp.text.port=端口 +sdigp.text.portInfo=详细信息 +sdigp.text.ifDescr=接口描述 +sdigp.text.ifType=端口类型 +sdigp.text.ifAdminStatus=接口的管理状态 +sdigp.text.ifOperStatus=端口运行状态 +sdigp.text.ifouterrors_vary=输出差错数 +sdigp.message.ifouterrors_vary=输出差错数 +sdigp.text.ifinerrors_vary=输入差错数 +sdigp.message.ifinerrors_vary=输入差错数 +sdigp.text.ifoutdiscards_vary=输出丢包数 +sdigp.message.ifoutdiscards_vary=输出丢包数 +sdigp.text.ifindiscards_vary=输入丢包数 +sdigp.message.ifindiscards_vary=输入丢包数 +sdigp.text.ifHighSpeed=带宽 +sdigp.text.ifPhysAddress=Mac地址 +sdigp.text.ifLastChangeStr=状态最后变更时间 + +#switchInfoList.jsp页面 +sil.message.title=交换机数据查看 +sil.message.success=操作成功! +sil.message.faild=操作失败! +sil.message.selectInfo1=请至少选择一行记录! +sil.message.selectInfo2=请选择一行记录! +sil.message.sureToCreate=确定生成吗? +sil.message.sureToAdd=确定添加吗? +sil.button.export=导出 +sil.button.add=新增 +sil.button.update=修改 +sil.button.createTable=生成数据表 +sil.button.stop=停用 +sil.button.start=启用 +sil.button.back=返回 +sil.text.switchIp=节点IP +sil.text.title=设备及端口详细信息 +sil.text.sysDescr=系统描述 +sil.text.sysObjectID=系统制造商标识 +sil.text.upTimeStr=系统运行时间 +sil.text.sysContact=系统管理人员 +sil.text.sysName=系统名称 +sil.text.sysLocation=系统物理地址 +sil.text.sysServices=协议层服务 +sil.text.checkedTimeStr=信息采集时间 +sil.text.index=序号 +sil.text.ifDescr=端口名 +sil.text.ifHighSpeed=带宽 +sil.text.ifOperStatus=状态 +sil.text.ifInOctetsSpeed=输入速率 +sil.text.inpktsspeed=收包速率 +sil.text.ifindiscardsVary=输入丢包数 +sil.text.ifinerrorsVary=输入差错数 +sil.text.ifOutOctetsSpeed=输出速率 +sil.text.outpktsspeed=发包速率 +sil.text.ifoutdiscardsVary=输出丢包数 +sil.text.ifouterrorsVary=输出差错数 +sil.text.lastStringTime=最后监测时间 +sil.text.noRecord=没有记录 + +#switchInfoTotalList.jsp页面 +sitl.message.title=交换机数据查看 +sitl.message.success=操作成功! +sitl.message.faild=操作失败! +sitl.message.inputInfo=输入为特殊字符,请重新输入! +sitl.text.nodeIp=节点IP +sitl.message.nodeIp=请输入节点IP +sitl.text.networElementType=网元类别 +sitl.message.selectDefault=请选择 +sitl.text.netType=网元类型 +sitl.text.checkType=监测类别 +sitl.text.processIdenName=设置名称 +sitl.text.portNum=端口数 +sitl.text.text.dataCheckTime=最新监测时间 +sitl.text.showRecord=查看 +sitl.text.showGrap=图形查看 +sitl.text.showList=列表查看 +sitl.text.noRecord=没有记录 +sitl.button.export=导出 +sitl.button.exportCurrentPage=导出当前页数据 +sitl.button.exportAllData=导出全部数据 +sitl.text.closeWindow=关闭窗口 + +#switchInfoTotalListChild.jsp页面 +sitlc.text.showGrap=图形查看 +sitlc.text.showList=列表查看 + +#toConfigPort.jsp页面 +tcp.message.title=端口状态配置 +tcp.message.inputInfo=输入为特殊字符,请重新输入! +tcp.text.nodeIp=节      点 +tcp.message.nodeIp=请输入节点IP +tcp.button.batchSave=批量保存 +tcp.text.index=序号 +tcp.text.processIdenName=设置名称 +tcp.text.portState=端口状态 +tcp.text.option=操作 +tcp.button.save=保存 +tcp.text.noRecord=没有记录 + +#toConfigPortChild.jsp页面 +tcpc.button.save=保存 + + +#WebRoot目录下 +#page目录下 +#detecation目录下 +####################################################### +#addDetecSetInfo.jsp页面 +adsi.message.title=添加监测设置信息 +adsi.message.inputInfo=设置名称存在特殊字符,请重新输入 +adsi.message.noValidNodes=所选节点组内无有效的节点 +adsi.message.usergroupid=请选择用户组 +adsi.message.processIdenName=设置名称 +adsi.message.checkTypeId=监测类别 +adsi.message.processIden=设置标识 +adsi.message.checkGapTitle=监测数据时间间隔 +adsi.message.checkOutTime=超时时间 +adsi.message.checkMaxTimes=最大测试次数 +adsi.message.processFile=进程PID文件 +adsi.message.processSearchCodeTitle=进程搜索关键字 +adsi.message.processPathTitle=启动文件路径 +adsi.message.myFile=请选择脚本文件 +adsi.message.leastOneUser=请至少选择一个可以查看的用户 +adsi.message.checkGapInfo=监测和上传间隔必须大于或等于5分钟 +adsi.message.pIdenFont=请输入字母和数字 +adsi.message.selectDefault=请选择 +adsi.message.monitorCategory=请先选择监测类别 +adsi.button.back=返回 +adsi.text.title=监控设置基本信息 +adsi.text.processIdenName=设置名称 +adsi.text.processIden=设置标识 +adsi.text.checkType=监测类别 +adsi.text.nodeGroup=节点组 +adsi.button.select=选择 +adsi.text.nodeIp=节点IP +adsi.text.viewLevel=查看权限 +adsi.message.publisher=发布人查看 +adsi.message.publisherGroup=发布人所在组查看 +adsi.message.allInSys=系统内全部人员查看 +adsi.message.unlimited=无限制 +adsi.text.userGroup=用  户  组 +adsi.text.selectNodeGroup=请选择用户组 +adsi.text.planCheckTime=监测首次执行时间 +adsi.text.checkGap=监测数据时间间隔(分钟) +adsi.message.checkGapInfo=间隔必须大于或等于5分钟 +adsi.text.checkOutTime=超时时间(秒) +adsi.text.checkMaxTimes=尝试次数 +adsi.text.state=状态 +adsi.text.runAble=有效 +adsi.text.controlstart=启动方式 +adsi.message.manually=手动启动 +adsi.message.singleStart=NC单次启动 +adsi.message.cycleStart=NC周期启动 +adsi.text.controlStartTime=控制启动时间 +adsi.text.processFile=进程PID文件 +adsi.text.processSearchCode=进程搜索关键字 +adsi.message.processSearchCode=请提供精确查找进程的关键字,否则不能精确定位进程 +adsi.text.processPath=启动文件路径 +adsi.message.processPath=可带参数,用空格隔开,格式:“命令 参数” 参数要符合命令的参数格式 +adsi.text.myFile=脚本文件 +adsi.text.user=联系人 +adsi.message.checkAll=全选 +adsi.button.submit=提交 +adsi.button.reset=重置 + +#detailDetecSetInfo.jsp页面 +ddsi.message.title=监测设置详细信息 +ddsi.button.back=返回 +ddsi.text.title=监控设置详细信息 +ddsi.text.processIdenName=设置名称 +ddsi.text.processIden=设置标识 +ddsi.text.nodeGroup=节点组 +ddsi.text.nodeIp=节点IP +ddsi.text.checkTypeName=监测类别名称 +ddsi.text.checkType=监测类别 +ddsi.text.checkWay=监测方式 +ddsi.message.passive=被动 +ddsi.message.active=主动 +ddsi.text.detectionSetState=状态 +ddsi.message.valid=有效 +ddsi.message.invalid=无效 +ddsi.text.viewLevel=查看权限 +ddsi.message.publisher=发布人查看 +ddsi.message.publisherGroup=发布人所在组查看 +ddsi.message.allInSys=系统内全部人员查看 +ddsi.message.unlimited=无限制 +ddsi.text.isSchedule=是否预置信息 +ddsi.message.isSchedule0=是 +ddsi.message.isSchedule1=否 +ddsi.text.checkGap=监测数据时间间隔(分钟) +ddsi.text.checkOutTime=超时时间(秒) +ddsi.text.planCheckTime=下次执行时间 +ddsi.text.checkMaxTimes=尝试次数 +ddsi.text.processFile=进程PID文件 +ddsi.text.processPath=启动文件路径 +ddsi.text.isControlStart=启动方式 +ddsi.text.ncStartup=NC启动 +ddsi.message.manually=手动启动 +ddsi.message.singleStart=NC单次启动 +ddsi.message.cycleStart=NC周期启动 +ddsi.text.controlStartTime=控制启动时间 +ddsi.text.processSearchCode=进程搜索关键字 +ddsi.text.myFileFile=脚本文件 +ddsi.text.download=点击下载 + +#detecSetInfoList.jsp页面 +dsil.message.title=监控设置信息 +dsil.message.success=操作成功! +dsil.message.faild=操作失败! +dsil.message.selectARow=请选择一行记录! +dsil.message.invalidStatus=包含无效状态的设置信息,请重新选择! +dsil.message.validSetting=包含有效状态的设置信息,请重新选择! +dsil.message.hasSpecialChar=输入为特殊字符,请重新输入! +dsil.message.selectImportFile=请选择导入的文件 +dsil.message.selectCorrectImportFile=请选择正确的导入文件类型 +dsil.message.sureToImport=导入监控设置,你确定导入吗? +dsil.message.detecationWarning=监测设置操作已完成,是否继续维护数据? +dsil.message.hint=提示 +dsil.text.nodeIp=节点IP +dsil.message.nodeIp=请输入节点IP +dsil.text.checkTypeName=监测类别名称 +dsil.message.selectDefault=请选择 +dsil.text.processIdenName=设置名称 +dsil.message.processIdenName=请输入设置名称 +dsil.button.downloadExample=下载模板 +dsil.text.importXls=导入excel +dsil.button.importXls=导入 +dsil.button.showDiv=导出 +dsil.text.index=序号 +dsil.text.nodeGroup=节点组 +dsil.text.checkGap=监测间隔(分钟) +dsil.text.checkMaxTimes=尝试次数 +dsil.text.checkOutTime=超时时间(秒) +dsil.text.planCheckTime=首次监测时间 +dsil.text.processFile=进程PID文件 +dsil.text.processPath=启动文件路径 +dsil.text.isControlStart=启动方式 +dsil.message.manually=手动启动 +dsil.message.NCStart=NC启动 +dsil.text.controlStartTime=控制启动时间 +dsil.text.isSchedule=是否预置信息 +dsil.text.detectionSetState=状态 +dsil.message.yes=是 +dsil.message.no=否 +dsil.message.invalid=无效 +dsil.message.valid=有效 +dsil.message.noRecord=没有记录 +dsil.button.exportCurrentPage=导出当前页数据 +dsil.button.exportAllData=导出全部数据 +dsil.text.closeWindow=关闭窗口 + +#detecSetInfoListChild.jsp页面 +dsilc.message.manually=手动启动 +dsilc.message.NCStart=NC启动 +dsilc.message.yes=是 +dsilc.message.no=否 +dsilc.message.invalid=无效 +dsilc.message.valid=有效 + +#updateDetecSetInfo.jsp页面 +udsi.message.title=修改监测设置信息 +udsi.message.faild=操作异常! +udsi.message.processIdenNameInfo=设置名称存在特殊字符,请重新输入 +udsi.message.jdz=所选节点组内无有效的节点 +udsi.message.userGroup=请选择用户组 +udsi.message.processIdenName=设置名称 +udsi.message.processIden=设置标识 +udsi.message.checkGap=监测数据时间间隔 +udsi.message.checkOutTime=超时时间 +udsi.message.checkMaxTimes=最大测试次数 +udsi.message.processFile=进程PID文件 +udsi.message.processPath=启动文件路径 +udsi.message.myFile=脚本文件 +udsi.message.lxr=请至少选择一个可以查看的用户 +udsi.message.checkGapInfo=监测和上传间隔必须大于或等于5分钟 +udsi.message.selectDefault=请选择 +udsi.button.back=返回 +udsi.text.title=监控设置基本信息 +udsi.text.processIdenName=设置名称 +udsi.text.processIden=设置标识 +udsi.text.checkType=监测类别 +udsi.text.nodeGroup=节点组 +udsi.button.select=选择 +udsi.text.nodeIp=节点IP +udsi.text.viewLevel=查看权限 +udsi.message.publisher=发布人查看 +udsi.message.publisherGroup=发布人所在组查看 +udsi.message.allInSys=系统内全部人员查看 +udsi.message.unlimited=无限制 +udsi.text.userGroup=用  户  组 +udsi.text.selectUserGroup=请选择用户组 +udsi.text.planCheckTime=监测首次执行时间 +udsi.text.checkGap=监测数据时间间隔(分钟) +udsi.message.checkGapInfo1=间隔必须大于或等于5分钟 +udsi.text.checkOutTime=超时时间(秒) +udsi.text.checkMaxTimes=尝试次数 +udsi.text.detectionSetState=状态 +udsi.message.valid=有效 +udsi.message.invalid=无效 +udsi.text.isControlStart=启动方式 +udsi.message.manually=手动启动 +udsi.message.singleStart=NC单次启动 +udsi.message.cycleStart=NC周期启动 +udsi.text.controlStartTime=控制启动时间 +udsi.text.processFile=进程PID文件 +udsi.text.processSearchCode=进程搜索关键字 +udsi.message.processSearchCode=请提供精确查找进程的关键字,否则不能精确定位进程 +udsi.text.processPath=启动文件路径 +udsi.text.scriptFile=脚本文件 +udsi.text.download=点击下载 +udsi.message.scriptFile=上传脚本文件,即对监测脚本进行更新 +udsi.text.user=联系人 +udsi.text.selectAll=全选 +udsi.button.submit=提交 +udsi.button.reset=重置 + +#WebRoot目录下 +#page目录下 +#function目录下 +######################################################### +#mkInfoList.jsp页面 +mkil.message.title=模块信息 +mkil.message.table.name=名称 +mkil.message.table.type=类型 +mkil.message.table.serial=序号 +mkil.message.table.description=描述 +mkil.message.table.operations=操作 +mkil.message.selectNode=请选择要移动的节点! +mkil.message.success=操作成功 +mkil.message.faild=操作失败 +mkil.message.upDisable=此模块已排在首位,无法上移 +mkil.message.downDisable=此模块已排在最后,无法下移 +mkil.message.andSubnode=新增子节点 +mkil.message.updateMK=请在菜单中选择一项要修改的模块! +mkil.message.addZMK=请在菜单中选择一项作为父模块! +mkil.text.mkmc=模块名称 +mkil.message.mkmc=模块名称存在特殊字符,请重新输入 +mkil.text.mkurl=url地址 +mkil.text.level=菜单级别 +mkil.message.pathAndjs=请输入js函数 +mkil.text.forder=排列序号 +mkil.text.mkManage=模块管理 +mkil.text.title=模块信息 +mkil.text.pathAndjs=路径或js函数 +mkil.text.mktype=显示类型 +mkil.message.menu=菜单 +mkil.message.button=按钮 +mkil.text.state=状态 +mkil.message.valid=有效 +mkil.message.invalid=无效 +mkil.text.mkms=功能描述 +mkil.text.showorder=排列序号 +mkil.message.btnsortup=节点上移 +mkil.message.btnsortdown=节点下移 +mkil.button.submit=提交 +mkil.button.cancel=取消 + +#WebRoot目录下 +#page目录下 +#mission目录下 +#parameterDefaults目录下 +######################################################### +#addDefaultsInfo.jsp页面 +adi.message.addDefaultInfoTitle=添加默认值信息 +adi.text.title=默认值配置 +adi.text.system=业务系统 +adi.message.selectDefault=请选择 +adi.text.missionType=任务类型 +adi.text.nodeGroup=节点组 +adi.text.missionTypeName=任务类型名称 +adi.text.viewLevel=查看等级 +adi.text.userGroup=用户组 +adi.text.startTime=开始时间 +adi.text.endTime=结束时间 +adi.text.targetPath=文件目的路径 +adi.text.loopFlag=定时任务 +adi.message.untimed=非定时任务 +adi.message.timed=定时任务 +adi.text.loopStartDate=定时起始时间 +adi.text.loopEndDate=定时结束时间 +adi.text.loopDelay=循环周期 +adi.text.filterKeyword=过滤关键词 + +#defaultsInfoList.jsp页面 +dil.message.infoManage=部门信息管理 +dil.message.success=操作成功! +dil.message.faild=操作失败! +dil.text.missionName=配置名称 +dil.text.missionType=业务类型 +dil.text.selectDefault=请选择 +dil.text.system=业务系统 +dil.text.nodeGroup=节点组 +dil.text.index=序号 +dil.text.opration=操作 +dil.text.missionType1=任务类型 +dil.text.viewRecord=查看详情 + +#examineDefaultsInfo1.jsp页面 +edi1.message.title=添加默认值信息 +edi1.text.title=默认值配置 +edi1.text.systemName=业务系统 +edi1.text.missionType=任务类型 +edi1.text.nodeGroup=节点组 +edi1.text.missionTypeName=任务类型名称 +edi1.text.viewLevel=查看等级 +edi1.text.userGroup=用户组 +edi1.text.startTime=开始时间 +edi1.text.endTime=结束时间 +edi1.text.targetPath=文件目的路径 +edi1.text.checkValue=文件校验值 +edi1.text.loopFlag=定时任务 +edi1.message.untimed=非定时任务 +edi1.message.timed=定时任务 +edi1.text.loopStartDate=定时起始时间 +edi1.text.loopEndDate=定时结束时间 +edi1.text.loopDelay=循环周期 +edi1.text.filterKeyword=过滤关键词 + +#examineDefaultsInfo2.jsp页面 +edi2.text.title=添加默认值信息 +edi2.text.title=默认值配置 +edi2.text.systemName=业务系统 +edi2.message.selectDefault=请选择 +edi2.text.missionType=任务类型 +edi2.text.nodeGroup=节点组 +edi2.text.missionTypeName=任务类型名称 +edi2.text.viewLevel=查看等级 +edi2.text.userGroup=用户组 +edi2.text.startTime=开始时间 +edi2.text.endTime=结束时间 +edi2.text.targetPath=文件目的路径 +edi2.text.checkValue=文件校验值 +edi2.text.loopFlag=定时任务 +edi2.message.untimed=非定时任务 +edi2.message.timed=定时任务 +edi2.text.loopStartDate=定时起始时间 +edi2.text.loopEndDate=定时结束时间 +edi2.text.loopDelay=循环周期 +edi2.text.filterKeyword=过滤关键词 + +#updateDefaultsInfo.jsp +udi.message.title=修改用户信息 +udi.text.deptname=部门名称 +udi.message.deptname=请选择上级部门 +udi.text.title=修改部门信息 +udi.text.deptlayer=部门级别 +udi.text.deptlayer.generalTeam=总队 +udi.text.deptlayer.detachment=支队 +udi.text.deptlayer.team=队 +udi.text.upperlayer=上级部门 +udi.message.default=请选择 +udi.message.upperlayer=请选择 + + +#WebRoot目录下 +#page目录下 +#mission目录下 +#smipleMission目录下 +####################################################### +#addMissionInfo.jsp页面 +ami.message.selectSystem=请选择业务系统 +ami.message.selectMK=请选择模块 +ami.text.upFile=升级文件 +ami.message.filePath=请选择配置文件 +ami.message.sets=请选择配置项 +ami.text.title=系统模块升级 +ami.text.systemName=业务系统 +ami.message.selectDefault=请选择 +ami.text.module=模块 +ami.text.deployedNodeGroup=部署的节点组 +ami.message.selectMK10=日志处理模块 +ami.message.selectMK11=系统检测模块 +ami.message.selectMK12=冗余清理模块 +ami.message.selectMK13=库表备份模块 +ami.message.selectUpFile=选择升级文件 +ami.text.checkSets=配置正确性验证 +ami.text.filePath=选择配置文件 +ami.text.sets=配置项 +ami.message.passback=回传网卡 +ami.message.flyer=传单 +ami.message.presetInfo=预置信息 +ami.message.testNetwork=测试网络 +ami.text.filterFlag=结果过滤 +ami.message.yes=是 +ami.message.no=否 + +#examineMissionInfo1.jsp页面 +emi1.message.title=添加用户信息 +emi1.text.title=查看结果 +emi1.text.missionName=任务名称 +emi1.text.createTime=创建时间 +emi1.text.missionState=任务状态 +emi1.text.viewLevel=查看级别 +emi1.text.addUser=创建用户 +emi1.text.userGroup=用户组 +emi1.text.nodeGroup=节点组 +emi1.text.targetPath=目的路径 +emi1.text.missionComments=任务描述 +emi1.text.nodeIp=节点IP +emi1.text.state=状态 +emi1.text.returnValue=返回值 +emi1.text.success=成功 +emi1.text.testA=测试性能A +emi1.text.faild=失败 +emi1.text.testB=测试性能B + +#examineMissionInfo2.jsp页面 +emi2.message.title=添加用户信息 +emi2.text.title=查看结果 +emi2.text.missionName=任务名称 +emi2.text.createTime=创建时间 +emi2.text.missionState=任务状态 +emi2.text.viewLevel=查看级别 +emi2.text.addUser=创建用户 +emi2.text.userGroup=用户组 +emi2.text.nodeGroup=节点组 +emi2.text.isFilter=是否对结果过滤 +emi2.text.filterValue=过滤内容 +emi2.text.missionComments=任务描述 +emi2.text.startTime=起始时间 +emi2.text.endTime=结束时间 +emi2.text.cycle=周期 +emi2.text.sets=配置内容 +emi2.text.nodeNum=节点数量 +emi2.text.nodeList=节点列表 +emi2.text.exportNode=节点导出 +emi2.text.context1=内容1 +emi2.text.nodes=节点 +emi2.text.faildCause=失败原因 +emi2.text.unkownException=未知异常 +emi2.text.runtimeError=运行时错误 +emi2.text.connectNodeFaild=节点连接失败 + +#missionInfoList.jsp页面 +msil.message.title=部门信息管理 +msil.message.success=操作成功! +msil.message.faild=操作失败! +msil.text.missionName=任务名称 +msil.text.username=任务创建人 +msil.text.createDate=创建时间 +msil.text.to=至 +msil.text.missionState=任务状态 +msil.message.selectDefault=请选择 +msil.text.systemName=业务系统 +msil.text.nodeGroup=节点组 +msil.text.viewLevel=查看权限 +msil.text.index=序号 +msil.text.opration=操作 +msil.message.missionType1=模块 +msil.message.missionType0=节点组 +msil.message.updateRecord=模块 +msil.message.changeState=暂停 +msil.message.viewRecord=查看结果 +msil.message.missionType10=日志处理模块 +msil.message.missionType11=系统检测模块 +msil.message.missionType12=冗余清理模块 +msil.message.missionType13=库表备份模块 +msil.message.publisher=发布人查看 +msil.message.publisherGroup=发布人所在组查看 +msil.message.allInSys=系统内全部人员查看 +msil.message.noRecord=没有记录 + +#WebRoot目录下 +#page目录下 +#pluginInfo目录下 +####################################################### +#addPluginInfo.jsp页面 +api.message.title=添加工具信息 +api.message.name=名称不能为空。 +api.message.myFile=工具不能为空,请选择。 +api.button.back=返回 +api.text.title=添加工具信息 +api.text.name=工具名称 +api.text.myFile=工具 +api.text.des=工具描述 +api.button.submit=提交 +api.button.reset=重置 + +#pluginInfoList.jsp页面 +pil.message.title=工具管理 +pil.message.selectOne=请选择一行记录! +pil.message.delPlugin=确定删除工具信息吗? +pil.message.index=序号 +pil.text.name=工具名称 +pil.text.fileName=文件名 +pil.text.des=工具说明 +pil.text.createUsername=创建人 +pil.text.createTime=创建时间 +pil.text.updateUsername=最后更新人 +pil.text.udateTime=最后更新时间 +pil.text.noRecord=没有记录 + +#updatePluginInfo.jsp页面 +upi.message.title=修改工具信息 +upi.message.name=名称不能为空。 +upi.button.back=返回 +upi.text.title=修改工具信息 +upi.message.titleInfo=不选择工具文件,即为不对工具文件进行更新 +upi.text.name=工具名称 +upi.text.myFile=工具 +upi.text.des=工具描述 +upi.text.download=点击下载 +upi.text.delete=删除 +upi.button.update=修改 +upi.button.reset=重置 + + +#WebRoot目录下 +#page目录下 +#show目录下 +#nodeBox目录下 +####################################################### +#addBoxInfo.jsp页面 +abi.message.title=添加机柜 +abi.text.boxUType=机柜U位 +abi.message.ispn=机柜编号已存在,请重新输入! +abi.message.faild=操作异常! +abi.text.roomIspn=机房编号 +abi.text.roomRowPosition=机房行号 +abi.text.roomColPosition=机房列号 +abi.text.descinfo=机柜描述 +abi.message.ispn1=机柜编号存在非法字符,请重新输入! +abi.message.selectDefault=请选择 +abi.button.back=返回 +abi.text.title=机柜基本信息 +abi.text.ispn=编号 +abi.text.U=U 位 +abi.text.des=描述 +abi.text.submit=提交 +abi.text.reset=重置 + +#boxInfoList.jsp页面 +bil.message.title=机柜设置信息 +bil.message.success=操作成功! +bil.message.faild=操作失败! +bil.message.selectOne=请选择一行记录! +bil.message.delete=确定删除设置信息吗? +bil.message.inputInfo=输入为特殊字符,请重新输入! +bil.message.selectImportFile=请选择导入的文件 +bil.message.selectFileType=请选择正确的导入文件类型 +bil.message.sureToImport=导入机柜,你确定导入吗? +bil.message.warning=机柜操作已完成,是否继续维护数据? +bil.message.hint=提示 +bil.text.nodeBoxTable=机柜编号 +bil.message.nodeBoxTable=请输入机柜编号 +bil.button.downloadExample=下载模板 +bil.text.importXls=导入excel +bil.button.importXls=导入 +bil.button.showDiv=导出 +bil.button.add=新增 +bil.button.update=修改 +bil.button.delete=刪除 +bil.button.back=返回 +bil.text.index=序号 +bil.text.descinfo=机柜描述 +bil.text.roomIspn=所属机房编号 +bil.text.noRecord=没有记录 +bil.button.exportCurrentPage=导出当前页数据 +bil.button.exportAllData=导出全部数据 +bil.text.closeWindow=关闭窗口 + +#showImportError.jsp +sie.text.title=报错信息 +sie.text.index=编号 +sie.text.U=U 位 +sie.text.roomIspn=机房编号 +sie.text.roomRowPosition=机房行号 +sie.text.roomColPosition=机房列号 +sie.text.errorInfo=报错信息 + +#updateBoxInfo.jsp页面 +ubi.message.title=修改机柜信息 +ubi.text.boxUType=机柜U位 +ubi.message.faild=操作异常! +ubi.text.ispn=机柜编号 +ubi.text.descinfo=机柜描述 +ubi.text.roomIspn=机房编号 +ubi.text.roomRowPosition=机房行号 +ubi.text.roomColPosition=机房列号 +ubi.message.inputInfo=机柜编号存在非法字符,请重新输入! +ubi.message.selectDefault=请选择 +ubi.button.back=返回 +ubi.text.title=机柜基本信息 +ubi.text.index=编号 +ubi.text.U=U 位 +ubi.text.desc=描述 +ubi.button.submit=提交 +ubi.button.reset=重置 + + +#WebRoot目录下 +#page目录下 +#show目录下 +#nodeGroup目录下 +####################################################### +#configTopo.jsp页面 +ct.message.title=逻辑拓扑图配置 +ct.text.save=保 存 +ct.text.sets=配置 +ct.message.srcNodeGroup=源节点组不能为空 +ct.message.descNodeGroup=目标节点组不能为空 +ct.message.lineOffset=连线偏移量为数字 +ct.message.lineDirection=连线方向不能为空 +ct.message.srcLinePostion=源连线位置不能为空 +ct.message.descLinePostion=目标连线位置不能为空 +ct.message.nodeLock=失败节点继续升级 节点组及节点不可修改 +ct.text.srcNodeGroup=源节点组 +ct.button.select=选择 +ct.text.descNodeGroup=目标节点组 +ct.text.lineOffset=连线偏移量 +ct.text.lineDirection=连线方向 +ct.message.lineDirectionDefault=请选择连线方向 +ct.message.lineDirection1=单向 +ct.message.lineDirection2=双向 +ct.text.lineNumber=连线条数 +ct.message.lineNumberDefault=根据位置自动算取 +ct.text.srcLinePostion=源连线位置 +ct.message.srcLinePostionDefault=请选择源连线位置 +ct.message.srcLinePostionUp=上 +ct.message.srcLinePostionDown=下 +ct.message.srcLinePostionLeft=左 +ct.message.srcLinePostionRight=右 +ct.text.descLinePostion=目标连线位置 +ct.message.descLinePostionDefault=请选择源连线位置 +ct.message.descLinePostionUp=上 +ct.message.descLinePostionDown=下 +ct.message.descLinePostionLeft=左 +ct.message.descLinePostionRight=右 +ct.button.ok=确定 + +#showTopo.jsp页面 +st.message.title=展示图 +st.nodeList.title=监测数据 +st.nodeBox.title=机柜 +st.text.nodeIp=节点IP: +st.text.nodeName=节点名称 +st.text.nodeUType=节点U位 +st.text.nodeBeginUType=起始U位 +st.text.monitorData=监测数据 +st.text.U=U位 +st.text.policy=紧急告警 +st.message.frameInfo=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#WebRoot目录下 +#page目录下 +#show目录下 +#nodeRoom目录下 +####################################################### +#addRoomInfo.jsp页面 +ari.message.title=添加机房 +ari.text.roomIspn=机房编号 +ari.text.roomRows=机房行数 +ari.text.roomCols=机房列数 +ari.message.roomRows=机房列数需小于等于 +ari.message.roomIspn=机房编号存在非法字符,请重新输入! +ari.message.MkformError=记录已存在,请重新输入! +ari.message.MkformException=操作异常! +ari.button.back=返回 +ari.text.title=机房基本信息 +ari.text.index=编号 +ari.text.rows=行数 +ari.text.cols=列数 +ari.text.roomDesc=描述 +ari.button.submit=提交 +ari.button.reset=重置 + +#roomInfoList.jsp页面 +ril.message.title=机房信息 +ril.message.success=操作成功! +ril.message.faild=操作失败! +ril.message.selectOne=请选择一行记录! +ril.message.delete=确定删除设置信息吗? +ril.message.inputInfo=输入为特殊字符,请重新输入! +ril.message.selectImportFile=请选择导入的文件 +ril.message.selectCorrectFile=请选择正确的导入文件类型 +ril.message.sureToImport=导入机房,你确定导入吗? +ril.message.warning=机房操作已完成,是否继续维护数据? +ril.message.hint=提示 +ril.text.rIspn=机房编号 +ril.message.rIspn=请输入机房编号 +ril.button.downloadExample=下载模板 +ril.text.importXls=导入excel +ril.button.import=导入 +ril.button.export=导出 +ril.button.boxmanager=机柜管理 +ril.text.index=序号 +ril.text.roomRows=机房行数 +ril.text.roomCols=机房列数 +ril.text.roomDesc=机房描述 +ril.text.noRecord=没有记录 +ril.button.exportCurrentXls=导出当前页数据 +ril.button.exportAllXls=导出全部数据 +ril.text.closeWindow=关闭窗口 + +#updateRoomInfo.jsp页面 +uri.message.title=修改机房信息 +uri.message.mkFormError=记录已存在,请重新输入! +uri.message.mkFormException=操作异常! +uri.text.roomIspn=机房编号 +uri.text.roomRows=机房行数 +uri.text.roomCols=机房列数 +uri.message.roomRows=机房行数需小于等于 +uri.message.roomCols=机房列数需小于等于 +uri.message.roomIspn=机房编号存在非法字符,请重新输入! +uri.button.back=返回 +uri.text.title=机房基本信息 +uri.text.index=编号 +uri.text.rows=行数 +uri.text.cols=列数 +uri.text.rommDesc=描述 +uri.button.submit=提交 +uri.button.reset=重置 + + +#WebRoot目录下 +#page目录下 +#show目录下 +########################################################## +#editMap.jsp页面 +em.message.title=展示图 +em.message.saveSets=保存当前机柜设置吗? +em.message.spanTable=此节点组下此机柜还未维护节点 +em.button.ok=确定 +em.button.cancle=取消 +em.text.find=搜索机柜 +em.message.find=请输入机柜编号 +em.text.spanName=名称 +em.text.spanUType=节点厚度(U位) +em.message.board=请选择图标进行关联操作! +em.message.nodeBox=关联节点1 +em.text.ispn=编号: +em.message.iconBox=请先保存 +em.message.dragDisable=禁止拖入除节点以外的其他元素 +em.message.boxExists=机柜已存在,请选择其他机柜拖入 +em.message.nodeTable=你在往桌面上拖拽什么东东~ +em.message.dragBoxDisable=禁止将机柜拖入此机柜中 +em.message.dragNodeDisable=此格子中已经有节点禁止继续拖入 +em.message.tooBigToBox=节点厚度过大,机柜此U位无法放下此节点 +em.message.tooBigToBox1=节点厚度过大,机柜此U位无法放下 +em.menu.save=保存 +em.menu.reset=重置 +em.menu.link=关联 +em.menu.unLink=删除节点 +em.menu.changeImg=修改图片 +em.menu.openBox=打开机柜 +em.menu.openTopology=打开页面 + +#flexTopo.jsp页面 +ft.message.title=节点机状态展示图 +ft.message.flashContent=未安装flash播放器10.0.0+,请点击下载并安装后,再访问页面! +ft.message.flashUrl=点击下载flash播放器 +ft.message.noJsOrFlash=禁用了JavaScript,或者使用的浏览器对JavaScript支持不足,或者未安装flash播放器10.0.0+! + +#show3DRoom.jsp页面 +sr.message.title=显示3D机房 +sr.message.isFirst=已经是第一个节点组 +sr.message.isLast=已经是最后一个节点组 +sr.message.frame=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#showMap.jsp页面 +sm.message.title=展示图 +sm.message.loading=正在为您打开页面,请稍后 +sm.button.ok=确定 +sm.button.cancle=取消 +sm.message.data=请选择图标进行关联操作! +sm.message.actionInfo=关联节点1 +sm.menu.save=保存 +sm.menu.reset=重置 +sm.menu.unLink=删除关联 +sm.menu.link=关联 +sm.menu.unNode=删除节点 +sm.menu.changeImg=修改图片 +sm.menu.openTopology=打开页面 + +#showNode.jsp页面 +sn.message.title=显示节点组关系 +sn.message.content=内容显示 + +#showNodeRoom.jsp +snr.message.title=显示节点组关系 +snr.text.nodeBox=机柜 +snr.text.alarmInfo=告警信息 +snr.text.titleTtext.nodeGroup=节点组 +snr.text.titleTtext.roomId=机房编号 +snr.message.boxTitle1 =不存在该节点组下的节点 +snr.message.boxTitle2=存在该节点组下的节点 +snr.message.boxTitle3=存在该节点组下的节点且异常 +snr.message.title.row=行 +snr.message.title.column=列 +snr.message.room=机房 +snr.message.nodeTableTitle.nodeIp=节点IP +snr.message.nodeTableTitle.nodeName=节点名称 +snr.message.nodeTableTitle.nodeU=节点U位 +snr.message.nodeTableTitle.startU=起始U位 +snr.message.UBit=U位 +snr.message.frame=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#showTopology.jsp页面 +st.message.loading=正在为您打开页面,请稍后... +st.message.spanTable=此节点组下此机柜还未维护节点 +st.text.spanName2=名称 +st.text.spanUType2=节点厚度(U位) +st.text.getBox=查看机柜 +st.text.getChildNg=查看子节点组 + +#showTopologySub.jsp页面 +sts.message.title=展示图 +sts.message.spanTable=此节点组下此机柜还未维护节点 +sts.button.ok=确定 +sts.button.cancle=取消 +sts.text.spanName2=名称 +sts.text.spanUType2=节点厚度(U位) +sts.menu.save=保存 +sts.menu.reset=重置 +sts.menu.changeImg=修改图片 +sts.menu.getBox=查看机柜 +sts.menu.getChildNg=查看子节点组 +sts.menu.openTopology=打开页面 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#brandManage目录下 +######################################################## +#addBrandInfo.jsp页面 +abi.message.addBrandInfoTitle=添加品牌信息 +abi.text.brandName=品牌名称 +abi.text.addBrandTitle=添加品牌 +abi.text.brandOid=品牌OID +abi.text.brandDesc=品牌描述 +abi.button.submit=提交 +abi.button.reset=重置 + + +#brandInfoList.jsp页面 +bril.message.title=品牌管理 +bril.message.success=操作成功! +bril.message.faild=操作失败! +bril.message.selectOne=请选择一行记录! +bril.message.delete=确定删除设置信息吗? +bril.text.brandName=品牌名称 +bril.text.index=序号 +bril.text.brandDesc=品牌描述 +bril.text.brandOid=品牌OID +bril.text.noRecord=没有记录 + +#detailBrandInfo.jsp页面 +dbi.message.title=添加品牌信息 +dbi.text.title=查看品牌 +dbi.text.brandName=品牌名称 +dbi.text.brandOid=品牌OID +dbi.text.brandDesc=品牌描述 +dbi.button.back=返回 + +#updateBrandInfo.jsp页面 +ubi.message.addBrandInfoTitle=添加品牌信息 +ubi.text.brandName=品牌名称 +ubi.text.title=修改品牌 +ubi.text.brandOid=品牌OID +ubi.text.brandDesc=品牌描述 + + + +#WebRoot目录下 +#page目录下 +#system目录下 +#deptManage目录下 +############################################################### +#deptInfoList.jsp页面 +dept.message.title=部门信息 +dept.text.deptname=部门名称 +dept.message.deptname=部门名称存在特殊字符,请重新输入 +dept.message.deptname1=此部门名称已经存在 +dept.text.deptMenu=部门菜单 +dept.text.deptInfo=部门信息 +dept.text.state=状态 +dept.message.valid=有效 +dept.message.invalid=无效 +dept.button.add=新增 +dept.button.update=修改 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#deviceManage目录下 +################################################################## +#addBatchDevTypeInfo.jsp页面 +abdti.message.title=批量添加端口设备型号信息 +abdti.text.deviceRandCode=所属品牌 +abdti.text.pid=父设备型号 +abdti.message.showIndexEnd1=请输入编号开始值 +abdti.message.showIndexEnd2=编号开始值,请输入数字 +abdti.message.showIndexEnd3=请输入编号结束值 +abdti.message.showIndexEnd4=编号结束值,请输入数字 +abdti.message.figureFill=文件类型不对,请上传以下类型图片 +abdti.message.selectDefault=请选择 +abdti.button.back=返回 +abdti.text.title=批量添加端口设备 +abdti.text.showIndexRule=编号规则 +abdti.message.showIndexRule.all=全部 +abdti.message.showIndexRule.odd=奇数 +abdti.message.showIndexRule.even=偶数 +abdti.text.showIndexStart=编号范围 +abdti.text.figureFill=设备图片 +abdti.text.nameFormat=名称格式 +abdti.text.nameFormatInfo=[Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置 +abdti.text.diTableName=监测信息表 +abdti.text.indexFiled=连接字段 +abdti.text.statusFiled=状态字段 +abdti.text.statusSymbols=异常比较符 +abdti.text.statusValue=异常比较值 +abdti.text.deviceDesc=设备描述 +abdti.text.autoAddDeviceID=自动在描述结尾添加设备编号 +abdti.button.submit=提交 +abdti.button.reset=重置 + +#addDevBrandInfo.jsp页面 +adbi.message.title=添加品牌信息 +adbi.text.deviceRandCode=品牌编号 +adbi.text.deviceRandName=品牌名称 +adbi.text.title=添加品牌 +adbi.text.deviceBrandDesc=品牌描述 +adbi.button.submit=提交 +adbi.button.reset=重置 + +#addDevTypeInfo.jsp页面 +adti.message.title=添加设备型号信息 +adti.text.deviceRandCode=所属品牌 +adti.text.deviceTypeCode=设备型号 +adti.message.maxDeviceNum=请输入数字 +adti.message.showIndex1=请输入编号 +adti.message.showIndex2=请输入数字 +adti.message.figureFill=文件类型不对,请上传以下类型图片 +adti.message.selectDefault=请选择 +adti.button.back=返回 +adti.text.title=添加设备型号 +adti.text.maxDeviceNum=最大叠加数 +adti.text.pid=父设备型号 +adti.message.pid=新增端口、电源、风扇等使用(新增机框时不选) +adti.text.canConfigPid=可配父设备 +adti.message.canConfigPid=新增板卡时使用(新增机框时不选) +adti.text.index=编号 +adti.text.figureFill=设备图片 +adti.text.diTableName=监测信息表 +adti.text.indexFiled=连接字段 +adti.text.statusFiled=状态字段 +adti.text.statusSymbols=异常比较符 +adti.text.statusValue=异常比较值 +adti.text.deviceDesc=设备描述 +adti.button.add=提交 +adti.button.reset=重置 + +#addPosDevTypeInfo.jsp页面 +apdti.message.title=添加设备型号信息 +apdti.message.showIndexEnd1=请输入编号开始值 +apdti.message.showIndexEnd2=编号开始值,请输入数字 +apdti.message.showIndexEnd3=请输入编号结束值 +apdti.message.showIndexEnd4=编号结束值,请输入数字 +apdti.button.back=返回 +apdti.text.title=添加槽位设备 +apdti.text.deviceTypeCode=父设备型号 +apdti.text.deviceRandCode=所属品牌 +apdti.text.showIndexStart=编号范围 +apdti.text.deviceDesc=设备描述 +apdti.text.autoAddDeviceID=自动在描述结尾添加设备编号 +apdti.button.add=提交 +apdti.button.reset=重置 + +#confDevPos.jsp页面 +cdp.message.title=JS拖拽DIV +cdp.text.deviceTypeCode=设备型号 +cdp.text.confDevCode=子设备 +cdp.text.bkwz=选择对应的板卡 +cdp.button.select=选择 +cdp.text.setComments.config=配置说明 +cdp.text.setComments.selectSubDevice=1. 选择需要配置的子设备 +cdp.text.setComments.configPosition=2. 在父设备上用鼠标拖拽,为子设备配置位置及大小(可多次拖拽) +cdp.text.shortcut=快捷键 +cdp.text.or=或者 +cdp.text.changeSubDevice=切换子设备 +cdp.text.movePosition=移动选中区域的位置 +cdp.text.setHeigh=调整选中区域高度 +cdp.text.setWiedth=调整选中区域宽度 +cdp.button.add=提交 +cdp.button.back=返回 + +#detailBrandInfo.jsp页面 +dtbi.message.title=添加品牌信息 +dtbi.text.title=查看品牌 +dtbi.text.brandName=品牌名称 +dtbi.text.brandOid=品牌OID +dtbi.text.brandDesc=品牌描述 +dtbi.button.back=返回 + +#detailDevTypeInfo.jsp页面 +ddti.message.title=设备型号详细信息 +ddti.button.back=返回 +ddti.text.title=设备型号详细信息 +ddti.text.deviceRandCode=所属品牌 +ddti.text.deviceTypeCode=设备型号 +ddti.text.maxDeviceNum=最大叠加数 +ddti.text.pid=父设备型号 +ddti.text.index=编号 +ddti.text.figureFill=设备图片 +ddti.text.nameFormat=端口名称格式 +ddti.text.diTableName=监测信息表 +ddti.text.indexFiled=连接字段 +ddti.text.statusFiled=状态字段 +ddti.text.statusSymbols=异常比较符 +ddti.text.statusValue=异常比较值 +ddti.text.deviceDesc=设备描述 + +#deviceBrandInfoList.jsp页面 +dbil.message.title=设备品牌管理 +dbil.message.selectOne=请选择一行记录! +dbil.message.delete=确定删除品牌信息吗? +dbil.message.selectImportFile=请选择导入的文件 +dbil.message.selectCorrectFile=请选择正确的导入文件类型 +dbil.message.sureToImport=导入品牌,你确定导入吗? +dbil.text.brandName=品牌名称 +dbil.button.downloadExample=下载模板 +dbil.text.importXls=导入excel +dbil.buton.importXls=导入 +dbil.buton.exportXls=导出 +dbil.text.index=序号 +dbil.text.deviceRandCode=品牌编号 +dbil.text.deviceRandName=品牌名称 +dbil.text.deviceBrandDesc=品牌描述 +dbil.text.addTime=创建时间 +dbil.text.noRecord=没有记录 +dbil.button.exportCurrentPage=导出当前页数据 +dbil.button.exportAllData=导出全部数据 +dbil.text.closeWindow=关闭窗口 + + +#deviceTypeInfoList.jsp页面 +dtil.message.title=设备型号管理 +dtil.message.selectOne=请选择一行记录! +dtil.message.delete=确定删除设备信息吗? +dtil.message.selectDefault=请选择 +dtil.message.selectImportFile=请选择导入的文件 +dtil.message.selectCorrectFile=请选择正确的导入文件类型 +dtil.message.sureToImport=导入品牌,你确定导入吗? +dtil.message.noDataExport=当前列表无数据导出! +dtil.message.inputInfo=输入为特殊字符,请重新输入! +dtil.text.devTypeCode=设备型号 +dtil.text.devRandCode=所属品牌 +dtil.text.parDev=父设备 +dtil.button.export=导出 +dtil.button.add=新增 +dtil.button.toAddBatchDevType=批量新增端口 +dtil.button.update=修改 +dtil.button.delete=删除 +dtil.text.index=序号 +dtil.text.deviceDesc=设备描述 +dtil.text.parDevCode=父设备型号 +dtil.text.addTime=创建时间 +dtil.text.opration=操作 +dtil.text.detailDev=详细 +dtil.text.toAddPosDevType=新增槽位 +dtil.text.toConfDevPos=位置配置 +dtil.text.noRecord=没有记录 +dtil.button.exportCurrentPage=导出当前页数据 +dtil.button.exportAllDate=导出全部数据 +dtil.text.closeWindow=关闭窗口 + +#deviceTypeInfoListChild.jsp页面 +dtilc.text.detailDev=详细 +dtilc.text.toAddPosDevType=新增槽位 +dtilc.text.toConfDevPos=位置配置 + +#selectBanKa.jsp页面 +sbk.text.selectAll=全选 +sbk.text.selectBK=选择对应的板卡 +sbk.button.submit=提交 +sbk.button.close=关闭 + +#updateDevBrandInfo.jsp页面 +udbi.message.title=修改设备品牌信息 +udbi.text.deviceRandCode=品牌编号 +udbi.button.back=返回 +udbi.text.title=修改设备品牌 +udbi.text.deviceRandName=品牌名称 +udbi.text.deviceBrandDesc=品牌描述 +udbi.button.update=提交 +udbi.button.reset=重置 + +#updateDevTypeInfo.jsp页面 +udti.message.title=修改设备型号信息 +udti.text.deviceRandCode=所属品牌 +udti.text.deviceTypeCode=设备型号 +udti.message.maxDeviceNum=请输入数字 +udti.message.showIndex1=请输入编号 +udti.message.showIndex2=请输入数字 +udti.message.figureFill=文件类型不对,请上传以下类型图片 +udti.message.deviceTypeCode=设备型号已存在 +udti.message.faild=操作异常! +udti.message.selectDefault=请选择 +udti.button.back=返回 +udti.text.title=修改设备型号 +udti.text.maxDeviceNum=最大叠加数 +udti.text.pid=父设备型号 +udti.text.showIndex=编号 +udti.text.figureFill=设备图片 +udti.text.nameFormat=端口名称格式 +udti.text.nameFormatInfo=[Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置 +udti.text.diTableName=监测信息表 +udti.text.indexFiled=连接字段 +udti.text.statusFiled=状态字段 +udti.text.tableStatusValue=异常比较符 +udti.text.statusValue=异常比较值 +udti.text.deviceDesc=设备描述 +udti.button.update=提交 +udti.button.reset=重置 + +#WebRoot目录下 +#page目录下 +#system目录下 +#dictionary +################################################################ +#addDictionary.jsp页面 +ad.message.title=添加数据字典 +ad.message.dictTypeNameExists=字典类型名称已存在,请重新输入! +ad.message.identifierExists=字典标识已存在,请重新输入! +ad.message.faild=操作异常! +ad.text.sn=显示序号 +ad.text.typeName=字典类型名称 +ad.text.typeIdentity=字典标识 +ad.button.back=返回 +ad.text.title=新增类型数据字典 +ad.text.typeDesc=描述 +ad.button.add=提交 +ad.button.reset=重置 + +#addDictionarySource.jsp页面 +ads.message.title=添加数据字典源数据 +ads.text.typeCode=类型代码 +ads.text.typeValue=类型名称 +ads.text.showNum=显示序号 +ads.text.delayTime=延时时间 +ads.text.MkformError=类型代码或类型名称已存在,请重新输入! +ads.text.MkformException=操作异常! +ads.button.back=返回 +ads.text.title=新增类型数据字典源数据 +ads.text.delayTime1=延时时间(分钟) +ads.button.add=提交 +ads.button.reset=重置 + +#deteDataConSetList.jsp页面 +ddcsl.message.title=监测数据列表过滤条件 +ddcsl.text.index=序号 +ddcsl.text.menuName=菜单名称 +ddcsl.text.policeEmergent=紧急状态 +ddcsl.text.policeLevel=非紧急告警级别 +ddcsl.text.opration=操作 +ddcsl.text.editInfo=修改信息 +ddcsl.text.noRecord=没有记录 + +#dictionaryInfoList.jsp +dict.message.title=数据字典 +dict.text.index=序号 +dict.text.typeName=字典类型名称 +dict.text.typeDesc=字典类型描述 +dict.text.showNum=显示序号 +dict.text.typeState=状态 +dict.text.opration=操作 +dict.message.typeState0=启用 +dict.message.typeState1=停用 +dict.text.update=修改信息 +dict.text.noRecord=没有记录 + +#dictionarySourceList.jsp页面 +dsl.message.title=数据字典源数据 +dsl.button.add=新增 +dsl.button.back=返回 +dsl.text.index=序号 +dsl.text.typeCode=类型代码 +dsl.text.typeValue=类型名称 +dsl.text.showNum=显示序号 +dsl.text.typeState=状态 +dsl.text.opration=操作 +dsl.message.typeState0=启用 +dsl.message.typeState1=停用 +dsl.text.update=修改信息 +dsl.text.noRecord=没有记录 + +#updateDetDataConSet.jsp页面 +uddc.message.title=修改监测数据列表过滤条件 +uddc.button.back=返回 +uddc.text.title=修改监测数据过滤设置 +uddc.text.menuName=菜单名称 +uddc.text.policeEmergent=是否紧急 +uddc.message.emergent=紧急 +uddc.message.nonEmergent=非紧急 +uddc.text.policeLevel=告警级别 +uddc.message.policeLevel1=1级 +uddc.message.policeLevel2=2级 +uddc.message.policeLevel3=3级 +uddc.message.policeLevel4=4级 +uddc.message.policeLevel5=5级 +uddc.text.remark=备注 +uddc.text.selectNull=不选任何项,列表不进行过滤 +uddc.button.submit=提交 +uddc.button.reset=重置 + +#updateDictionary.jsp页面 +ud.message.title=修改OID字典 +ud.message.MkformError=字典类型名称已存在,请重新输入! +ud.message.MkformException=操作异常! +ud.text.showNum=显示序号 +ud.text.typeName=字典类型名称 +ud.text.typeIdentity=字典标识 +ud.buttone.back=返回 +ud.text.title=修改类型数据字典 +ud.text.typeState=状态 +ud.message.enable=启用 +ud.message.disable=停用 +ud.text.typeDesc=描述 +ud.buttone.submit=提交 +ud.buttone.reset=重置 + +#updateDictionarySource.jsp页面 +uds.message.title=修改类型字典源数据 +uds.message.MkformError=类型代码或类型名称已存在,请重新输入! +uds.message.MkformException=操作异常! +uds.text.typeCode=类型代码 +uds.text.typeValue=类型名称 +uds.text.showNum=显示序号 +uds.text.delayTime=延时时间 +uds.buttone.back=返回 +uds.text.title=修改类型数据字典 +uds.text.typeState=状态 +uds.message.enable=启用 +uds.message.disable=停用 +uds.text.delayTime1=延时时间(分钟) +uds.buttone.submit=提交 +uds.buttone.reset=重置 + +#WebRoot目录下 +#page目录下 +#system目录下 +#nmsError目录下 +################################################################ +#errorInfoDetail.jsp +eid.message.title=节点信息 +eid.text.title=系统告警信息 +eid.text.errorName=异常类型 +eid.text.errorCode=异常标示 +eid.text.errortIp=异常产生IP +eid.text.errortGetip=异常提供IP +eid.text.errorTime=异常产生时间 +eid.text.errorState=当前状态 +eid.message.resolved=已解决 +eid.message.unresolved=未解决 +eid.message.recovered=已恢复 +eid.text.yhmc=解决人 +eid.text.stateUpdateTime=解决时间 +eid.button.back=返回 + +#nmsErrorInfoList.jsp页面 +neil.message.title=异常信息列表 +neil.message.checkState0=请选择至少一行异常信息! +neil.message.checkState1=包含已解决的异常,请重新选择! +neil.message.checkState2=包含未解决的异常,请重新选择! +neil.message.inputInfo=输入为特殊字符,请重新输入! +neil.text.errorName=异常类型 +neil.message.errorName=请输入服务器名称 +neil.text.errorIp=异常IP +neil.message.errorIp=服务器IP +neil.text.eiState=处理状态 +neil.message.all=全部 +neil.message.resolved=已解决 +neil.message.unresolved=未解决 +neil.button.checkStateOK=已解决 +neil.text.index=序号 +neil.text.eventDesc=事件描述 +neil.text.happendTime=发生时间 +neil.text.state=状态 +neil.text.uploadIp=上报IP +neil.text.newTime=最新时间 +neil.text.handleName=处理员 +neil.text.operation=操作 +neil.message.recovered=已恢复 +neil.text.showRecord=查看详情 +neil.text.noRecord=没有记录 + + + +#WebRoot目录下 +#page目录下 +#system目录下 +#nmstaskmanager目录下 +#addConverse目录下 +############################################################# +#addConverseNmsTaskInfo.jsp页面 +acnti.message.title=添加任务信息 +acnti.message.missionName=请输入任务名称 +acnti.message.jdz=请选择节点组 +acnti.message.nodeIp=所选节点组内无有效的节点 +acnti.message.usergroupid=请选择用户组 +acnti.message.maxWaitTime=等待时间 +acnti.text.cover=覆盖目录 +acnti.text.source=备份目录 +acnti.text.startupFile=启动文件 +acnti.text.pidFile=PID文件 +acnti.text.backup=需要备份的文件 +acnti.text.backupTo=备份到的路径 +acnti.message.missionDesc=任务描述字数不能大于100 +acnti.message.notNull=不能为空 +acnti.message.mlmc=请选择命令名称 +acnti.message.nodeLock=指定结果节点逆向操作 节点组及节点不可修改 +acnti.button.back=返回 +acnti.text.title=逆向任务添加 +acnti.text.missionType=任务类型 +acnti.text.upgrade=升级部署 +acnti.text.systemIdName=业务系统 +acnti.text.missionName=任务名称 +acnti.text.nodeGroup=节  点  组 +acnti.button.select=选择 +acnti.text.nodeIp=节点IP +acnti.text.viewLevel=查看权限 +acnti.message.publisher=发布人查看 +acnti.message.publisherGroup=发布人所在组查看 +acnti.message.allInSys=系统内全部人员查看 +acnti.text.usergroup=用  户  组 +acnti.message.selectUsergroupDefault=请选择用户组 +acnti.text.upgradeTime=升级时间 +acnti.text.parentMissionId=原任务标识 +acnti.text.commandName=命令名称 +acnti.text.commandDesc=命令内容    
或  参  数 +acnti.text.addOperation=添加操作 +acnti.text.missionDesc=任务描述 +acnti.text.users=联系人 +acnti.message.selectAll=全选 +acnti.button.submit=提交 +acnti.button.reset=重置 + +#converseTaskTemplate.jsp页面 +ctt.text.recovery=恢复 +ctt.text.recoverySets=添加恢复参数 +ctt.text.backup=备份 +ctt.text.backupSets=添加备份参数 +ctt.text.delete=删除 +ctt.text.startupFile=启动文件或命令 +ctt.text.pidFile=PID文件 +ctt.text.username=属主 +ctt.text.execParams=启动参数 +ctt.message.execParams=多个参数以分号分隔 +ctt.text.maxWaitTime=等待时间 +ctt.message.maxWaitTime=秒(为空则默认等待3秒) +ctt.text.backupFile=需要备份的文件 +ctt.text.compression=压缩标识 +ctt.text.absolutePath=绝对路径 +ctt.text.relativePath=相对路径 +ctt.text.backupTo=备份到的路径 +ctt.message.backupTo=备份路径请填写相对路径 +ctt.text.exceptFile=排除文件 +ctt.message.exceptFile=多个文件以分号分隔 +ctt.text.source=源文件或目录 +ctt.text.decompression=解压标识 +ctt.text.recoveryFile=恢复文件或目录 +ctt.text.deleteFile=删除文件 +ctt.message.deleteFile=多个文件以分号分隔 + +#missionCmdPara6ForNewConverse.jsp页面 +mcpfnc.text.coverPath=覆盖目录 +mcpfnc.text.username=属主 +mcpfnc.text.recovery=恢复 +mcpfnc.text.sourcePath=源文件或目录 +mcpfnc.text.decompression=解压标识 +mcpfnc.text.recoveryFile=恢复文件或目录 +mcpfnc.text.absolutePath=绝对路径 +mcpfnc.text.relativePath=相对路径 +mcpfnc.text.deleteFile=删除文件 +mcpfnc.message.deleteFile=多个文件以分号分隔 +mcpfnc.message.sepParam=多个参数以分号分隔 +mcpfnc.text.delete=删除 +mcpfnc.text.backup=备份 +mcpfnc.text.backupSets=添加备份参数 +mcpfnc.text.startupFile=启动文件或命令 +mcpfnc.text.pidFile=PID文件 +mcpfnc.text.startupParam=启动参数 +mcpfnc.text.maxWaitTime=等待时间 +mcpfnc.text.recoverySets=添加恢复参数 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#nmstaskmanager目录下 +#addSimilar目录下 +############################################################# +#addConverseSimilarNmsTaskInfo.jsp页面 +acsnti.message.title=添加任务信息 +acsnti.message.missionName=请输入任务名称 +acsnti.message.selectMissionType=请选择业务类型 +acsnti.message.jdz=请选择节点组 +acsnti.message.nodeIp=所选节点组内无有效的节点 +acsnti.message.usergroupid=请选择用户组 +acsnti.text.maxWaitTime=等待时间 +acsnti.text.coverPath=覆盖目录 +acsnti.text.sourcePath=备份目录 +acsnti.text.startupFile=启动文件 +acsnti.text.pidFile=PID文件 +acsnti.text.backupFile=需要备份的文件 +acsnti.text.backupTo=备份到的路径 +acsnti.message.missionDesc=任务描述字数不能大于100 +acsnti.message.notNull=不能为空 +acsnti.message.mlmc=请选择命令名称 +acsnti.message.nodeLock=失败节点继续升级 节点组及节点不可修改 +acsnti.button.back=返回 +acsnti.text.title=逆向相似任务添加 +acsnti.text.missionType=任务类型 +acsnti.text.upgrade=升级部署 +acsnti.text.systemName=业务系统 +acsnti.text.missionName=任务名称 +acsnti.text.nodeGroups=节  点  组 +acsnti.button.select=选择 +acsnti.text.nodeIp=节点IP +acsnti.text.viewLevel=查看权限 +acsnti.message.publisher=发布人查看 +acsnti.message.publisherGroup=发布人所在组查看 +acsnti.message.allInSys=系统内全部人员查看 +acsnti.text.usergroup=用  户  组 +acsnti.text.selectUserGroup=请选择用户组 +acsnti.text.upgrade_date=升级时间 +acsnti.text.parentMissionId=原任务标识 +acsnti.text.commandEName=命令名称 +acsnti.text.commandComments=命令内容    
或  参  数 +acsnti.text.addOperation=添加操作 +acsnti.text.missionDesc=任务描述 +acsnti.text.users=联系人 +acsnti.message.selectAll=全选 +acsnti.button.submit=提交 +acsnti.button.reset=重置 + + +#addSimilarNmsTaskInfo.jsp页面 +asnti.message.title=添加任务信息 +asnti.message.missionName=请输入任务名称 +asnti.message.systemType=请选择业务类型 +asnti.message.jdz=请选择节点组 +asnti.message.noUsedNode=所选节点组内无有效的节点 +asnti.message.usergroupid=请选择用户组 +asnti.message.pushFile=推送文件 +asnti.message.pushTarget=推送目的地 +asnti.text.maxWaitTime=最大等待时间 +asnti.text.commandEName=请选择命令名称 +asnti.text.cycle=周期 +asnti.text.startTime=开始时间 +asnti.text.endTime=结束时间 +asnti.message.TimeInfo1=周期结束时间应大于等于起始时间! +asnti.message.TimeInfo2=周期结束时间应大于当前时间! +asnti.message.returnPath=请输入回传文件 +asnti.text.backupFile=需要备份的文件 +asnti.text.backupTo=备份到的路径 +asnti.text.pidFile=PID文件 +asnti.text.source=源文件或目录 +asnti.text.coverFile=覆盖目录 +asnti.text.execCmd=执行文件或命令 +asnti.text.execResult=执行结果文件 +asnti.text.missionName=命令名称 +asnti.text.mlmc=请选择命令名称 +asnti.text.maxWaitTime1=等待时间 +asnti.text.coverPath=覆盖目录 +asnti.text.startupFile=启动文件 +asnti.message.nodeLock=失败节点继续升级 节点组及节点不可修改 +asnti.text.title=相似任务添加 +asnti.text.missionType=任务类型 +asnti.message.missionType1=文件推送 +asnti.message.missionType4=命令执行 +asnti.message.missionType6=升级部署 +asnti.text.systemIdName=业务系统 +asnti.text.missionName=任务名称 +asnti.text.nodeGroup=节  点  组 +asnti.text.charsTooLong=任务描述字数不能大于100 +asnti.text.isNotNull=不能为空 +asnti.button.select=选择 +asnti.text.nodeIp=节点IP +asnti.text.viewLevel=查看权限 +asnti.message.publisher=发布人查看 +asnti.message.publisherGroup=发布人所在组查看 +asnti.message.allInSys=系统内全部人员查看 +asnti.text.usergroup=用  户  组 +asnti.message.usergroupDefault=请选择用户组 +asnti.text.upgradeDate=升级时间 +asnti.text.commandType=命令类型 +asnti.button.back=返回 +asnti.message.commandType1=NC原生支持命令 +asnti.message.commandType2=可执行命令 +asnti.message.selectCommandNameDefault=请选择命令名称 +asnti.text.commandDesc=命令内容    
或  参  数 +asnti.text.addPushFile=添加推送文件 +asnti.message.addPushFile=文件的总大小须小于100MB +asnti.text.addOperation=添加操作 +asnti.text.loopFlag=周期任务 +asnti.text.minute=分钟 +asnti.message.timed=是 +asnti.message.untimed=否 +asnti.text.missionDesc=任务描述 +asnti.text.users=联系人 +asnti.text.selectAll=全选 +asnti.button.submit=提交 +asnti.button.reset=重置 + +#missionCmdPara1ForNewSimilar.jsp页面 +mcpfns1.text.filePath=路径 +mcpfns1.message.filePath=单个文件,zip、gz压缩包 +mcpfns1.text.delete=删除 +mcpfns1.text.destPath=推送目的地 +mcpfns1.text.isCover=覆盖 +mcpfns1.message.isCoverY=是 +mcpfns1.message.isCoverN=否 +mcpfns1.text.username=属主 +mcpfns1.text.permisson=文件权限 +mcpfns1.text.groupName=属群 + +#missionCmdPara4ForNewSimilar.jsp页面 +mcpfns4.text.backupFile=需要备份的文件 +mcpfns4.text.backupTo=备份到的路径 +mcpfns4.message.backupTo=请填写相对路径 +mcpfns4.text.compression=压缩标识 +mcpfns4.text.absolutePath=绝对路径 +mcpfns4.text.relativePath=相对路径 +mcpfns4.text.exceptFile=排除文件 +mcpfns4.message.exceptFile=多个文件以分号分隔 +mcpfns4.text.delete=删除 +mcpfns4.text.startFileOrexecCmd=启动文件或命令 +mcpfns4.text.forceExec=强制执行 +mcpfns4.message.Y=是 +mcpfns4.message.N=否 +mcpfns4.text.execResult=执行结果文件 +mcpfns4.text.residentFlag=常驻内存 +mcpfns4.text.maxWaitTime=最大等待时间 +mcpfns4.text.returnFlag=回传标识 +mcpfns4.text.username=属主 +mcpfns4.text.returnPath=回传文件 +mcpfns4.text.execParams=启动参数 +mcpfns4.message.execParams=多个参数以分号分隔 +mcpfns4.text.execCmd=执行命令 +mcpfns4.text.source=源文件或目录 +mcpfns4.text.decompression=解压标识 +mcpfns4.text.coverPath=覆盖目录 +mcpfns4.text.isCreateCover=创建标识 +mcpfns4.message.isCreateCoverY=创建 +mcpfns4.message.isCreateCoverN=不创建 +mcpfns4.text.deleteFile=删除文件 +mcpfns4.message.deleteFile=多个文件以分号分隔 + +#missionCmdPara6ForNewConverseSimilar.jsp页面 +mcpfncs.text.coverPath=覆盖目录 +mcpfncs.text.username=属主 +mcpfncs.text.recovery=恢复 +mcpfncs.text.source=源文件或目录 +mcpfncs.text.decompression=解压标识 +mcpfncs.text.absolutePath=绝对路径 +mcpfncs.text.relativePath=相对路径 +mcpfncs.text.recoveryPath=恢复文件或目录 +mcpfncs.text.deleteFile=删除文件 +mcpfncs.message.deleteFile=多个文件以分号分隔 +mcpfncs.text.delete=删除 +mcpfncs.text.backup=备份 +mcpfncs.text.backupFiles=需要备份的文件 +mcpfncs.text.compression=压缩标识 +mcpfncs.text.backupTo=备份到的路径 +mcpfncs.message.backupTo=备份路径请填写相对路径 +mcpfncs.text.exceptFile=排除文件 +mcpfncs.message.exceptFile=多个文件以分号分隔 +mcpfncs.text.startupFile=启动文件或命令 +mcpfncs.text.pidFile=PID文件 +mcpfncs.text.execParams=启动参数 +mcpfncs.message.execParams=多个参数以分号分隔 +mcpfncs.message.maxWaitTime=等待时间 +mcpfncs.text.recoveryFile=恢复文件或目录 +mcpfncs.text.recoverySets=添加恢复参数 +mcpfncs.text.addBackupSets=添加备份参数 +mcpfncs.message.maxWaitTime=秒(为空则默认等待3秒) + +#missionCmdPara6ForNewSimilar.jsp页面 +mcpfns6.text.path=路径 +mcpfns6.message.path=单个文件,zip、gz压缩包 +mcpfns6.text.delete=删除 +mcpfns6.text.coverPath=覆盖目录 +mcpfns6.text.isCreateCover=创建标识 +mcpfns6.message.isCreateCoverY=创建 +mcpfns6.message.isCreateCoverN=不创建 +mcpfns6.text.username=属主 +mcpfns6.text.decompression=解压标识 +mcpfns6.text.absolutePath=绝对路径 +mcpfns6.text.relativePath=相对路径 +mcpfns6.text.groupName=属群 +mcpfns6.text.deleteFile=删除文件 +mcpfns6.message.deleteFile=多个文件以分号分隔 +mcpfns6.text.permisson=文件权限 +mcpfns6.text.backup=备份 +mcpfns6.text.backupFiles=需要备份的文件 +mcpfns6.text.compression=压缩标识 +mcpfns6.text.backupTo=备份到的路径 +mcpfns6.message.backupTo=备份路径请填写相对路径 +mcpfns6.text.exceptFile=排除文件 +mcpfns6.message.exceptFile=多个文件以分号分隔 +mcpfns6.text.startupFile=启动文件或命令 +mcpfns6.text.pidFile=PID文件 +mcpfns6.text.forceExec=强制执行 +mcpfns6.message.Y=是 +mcpfns6.message.N=否 +mcpfns6.text.execParams=启动参数 +mcpfns6.message.execParams=多个参数以分号分隔 +mcpfns6.text.maxWaitTime=等待时间 +mcpfns6.text.addBackupSets=添加备份参数 +mcpfns6.text.backupFile=需要备份的文件 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#nmstaskmanager目录下 +#detail目录下 +################################################################### +#converseMissionCmdPara6.jsp页面 +cmcp.text.coverPath=覆盖目录 +cmcp.text.username=属主 +cmcp.text.pidFile=PID文件 +cmcp.text.startupFile=启动文件或命令 +cmcp.text.execParams=启动参数 +cmcp.text.maxWaitTime=等待时间 +cmcp.text.second=秒 +cmcp.text.backups=备份 +cmcp.text.backupFile=需要备份的文件 +cmcp.text.compression=压缩标识 +cmcp.text.absolutePath=绝对路径 +cmcp.text.relativePath=相对路径 +cmcp.text.backupTo=备份到的路径 +cmcp.text.exceptFile=排除文件 +cmcp.text.recovery=恢复 +cmcp.text.source=源文件或目录 +cmcp.text.decompression=解压标识 +cmcp.text.coverFile=恢复文件或目录 +cmcp.text.deleteFile=删除文件 + + +#converseMissionDetail.jsp页面 +cmd.message.title=升级部署-逆向任务结果查看 +cmd.button.back=返回 +cmd.text.title=升级部署-逆向任务结果查看 +cmd.text.missionName=任务名称 +cmd.text.missionType=任务类型 +cmd.text.upgrade=升级部署-逆向任务 +cmd.text.systemIdName=业务系统 +cmd.text.nodeGroup=节点组 +cmd.text.excuNode=执行节点 +cmd.text.addUser=创建用户 +cmd.text.viewLevel=查看权限 +cmd.message.publisher=发布人查看 +cmd.message.publisherGroup=发布人所在组查看 +cmd.message.allInSys=系统内全部人员查看 +cmd.text.groupIdName=用户组 +cmd.text.commandName=命令名称 +cmd.text.startTime=升级时间 +cmd.text.missionId=任务标识 +cmd.text.parentMissionId=原任务标识 +cmd.text.commandDesc=命令内容或参数 +cmd.text.missionComments=任务描述 +cmd.text.runningComments=执行描述 + +#missionCmdPara1.jsp页面 +mcp1.text.fileName=推送文件 +mcp1.text.isCover=覆盖 +mcp1.message.Y=是 +mcp1.message.N=否 +mcp1.text.destPath=推送目的地 +mcp1.text.username=属主 +mcp1.text.permisson=文件权限 +mcp1.text.groupName=属群 + +#missionCmdPara4.jsp页面 +mcp4.text.backup=需要备份的文件 +mcp4.text.backupTo=备份到的路径 +mcp4.text.compression=压缩标识 +mcp4.text.absolutePath=绝对路径 +mcp4.text.relativePath=相对路径 +mcp4.text.exceptFile=排除文件 +mcp4.text.startFileOrExecCmd=启动文件或命令 +mcp4.text.forceExec=强制执行 +mcp4.message.Y=是 +mcp4.message.N=否 +mcp4.text.username=属主 +mcp4.text.residentFlag=常驻内存 +mcp4.text.execResult=执行结果文件 +mcp4.text.returnFlag=回传标识 +mcp4.text.maxWaitTime=最大等待时间 +mcp4.text.second=秒 +mcp4.text.returnPath=回传文件 +mcp4.text.execParams=启动参数 +mcp4.text.execCmd=执行命令 +mcp4.text.source=源文件或目录 +mcp4.text.decompression=解压标识 +mcp4.text.cover=覆盖目录 +mcp4.text.isCreateCover=创建标识 +mcp4.message.isCreateCoverY=创建 +mcp4.message.isCreateCoverN=不创建 +mcp4.text.deleteFile=删除文件 +mcp4.text.pidFile=PID文件 + +#missionCmdPara6.jsp页面 +mcp6.text.fileName=源文件 +mcp6.text.cover=覆盖目录 +mcp6.text.isCreateCover=创建标识 +mcp6.message.isCreateCoverY=创建 +mcp6.message.isCreateCoverN=不创建 +mcp6.text.permisson=文件权限 +mcp6.text.username=属主 +mcp6.text.decompression=解压标识 +mcp6.text.absolutePath=绝对路径 +mcp6.text.relativePath=相对路径 +mcp6.text.groupName=属群 +mcp6.text.deleteFile=删除文件 +mcp6.text.backup=备份 +mcp6.text.needBackupFile=需要备份的文件 +mcp6.text.backupTo=备份到的路径 +mcp6.text.compression=压缩标识 +mcp6.text.exceptFile=排除文件 +mcp6.text.startupFile=启动文件或命令 +mcp6.text.pidFile=PID文件 +mcp6.text.forceExec=强制执行 +mcp6.message.Y=是 +mcp6.message.N=否 +mcp6.text.maxWaitTime=等待时间 +mcp6.text.second=秒 +mcp6.text.execParams=启动参数 + +#missionstateparameter1.jsp页面 +mspm1.message.title=文件推送详细结果 +mspm1.button.back=返回 +mspm1.text.title=推送文件结果查看 +mspm1.text.missionName=任务名称 +mspm1.text.missionType=任务类型 +mspm1.message.missionType1=文件推送 +mspm1.message.missionType2=非流文本数据获取 +mspm1.text.systemIdName=业务系统 +mspm1.text.nodeListName=节点组 +mspm1.text.excNode=执行节点 +mspm1.text.fileName=推送文件 +mspm1.text.viewLevel=查看权限 +mspm1.message.publisher=发布人查看 +mspm1.message.publisherGroup=发布人所在组查看 +mspm1.message.allInSys=系统内全部人员查看 +mspm1.text.groupIdName=用户组 +mspm1.text.addUser=创建用户 +mspm1.text.contentParam=内容参数 +mspm1.text.missionDesc=任务描述 +mspm1.text.runningDesc=执行描述 + +#missionstateparameter2.jsp页面 +mspm2.message.title=非流文本数据获取结果查看 +mspm2.text.title=非流文本数据获取结果查看 +mspm2.text.missionName=任务名称 +mspm2.text.missionType=任务类型 +mspm2.message.missionType1=文件推送 +mspm2.message.missionType2=非流文本数据获取 +mspm2.text.systemIdName=业务系统 +mspm2.text.filePath=文件 +mspm2.text.missionDesc=任务描述 +mspm2.text.viewLevel=查看权限 +mspm2.message.publisher=发布人查看 +mspm2.message.publisherGroup=发布人所在组查看 +mspm2.message.allInSys=系统内全部人员查看 +mspm2.message.user=用户 +mspm2.message.filterCode=过滤关键词 +mspm2.text.startTime=起始时间 +mspm2.text.endTime=结束时间 +mspm2.text.startFlag=起始标志 +mspm2.text.endFlag=结束标志 +mspm2.text.totalChart=总体比例图 +mspm2.text.lineChart=折线趋势图 +mspm2.text.columnarChart=柱状统计图 +mspm2.text.browerInfo=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 +mspm2.text.nodeIp=节点IP +mspm2.text.returnResult=执行结果 +mspm2.text.result=结果原因 +mspm2.message.success=成功 +mspm2.message.faile=失败 +mspm2.button.exportFaildNode=失败节点导出 +mspm2.text.select=请选择 + +#missionstateparameter3.jsp页面 +mspm3.message.title=非流文本数据获取结果查看 +mspm3.text.title=非流文本数据获取结果查看 +mspm3.text.missionName=任务名称 +mspm3.text.missionType=任务类型 +mspm3.message.filePush=文件推送 +mspm3.message.getNonStream=非流文本数据获取 +mspm3.message.getStream=流文本数据获取 +mspm3.message.commandExcute=命令执行 +mspm3.message.shellRegist=shell注册 +mspm3.text.systemIdName=业务系统 +mspm3.text.filePath=文件 +mspm3.text.missionDesc=任务描述 +mspm3.text.viewLevel=查看权限 +mspm3.message.publisher=发布人查看 +mspm3.message.publisherGroup=发布人所在组查看 +mspm3.message.allInSys=系统内全部人员可看 +mspm3.text.user=用户 +mspm3.text.filterKeyword=过滤关键词 +mspm3.text.startTime=起始时间 +mspm3.text.endTime=终止时间 +mspm3.text.filterType=过滤类型 +mspm3.message.noFilter=不过滤 +mspm3.message.hitReturn=命中数据返回 +mspm3.message.hitDrop=命中丢弃 +mspm3.text.loopFlag=是否定时任务 +mspm3.message.Y=是 +mspm3.message.N=否 +mspm3.text.startTime1=开始时间 +mspm3.text.endTime1=结束时间 +mspm3.text.totalChart=总体比例图 +mspm3.text.lineChart=折线趋势图 +mspm3.text.columnarChart=柱状统计图 +mspm3.text.browerInfo=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 +mspm3.text.nodeIp=节点IP +mspm3.text.returnResult=执行结果 +mspm3.text.result=结果原因 +mspm3.message.success=成功 +mspm3.message.failed=失败 +mspm3.button.exportFaildNode=失败节点导出 +mspm3.button.selectDefault=请选择 + +#missionstateparameter4.jsp页面 +mspm4.message.title=命令执行-任务结果查看 +mspm4.button.back=返回 +mspm4.text.title=命令执行-任务结果查看 +mspm4.text.missionName=任务名称 +mspm4.text.missionType=任务类型 +mspm4.message.filePush=文件推送 +mspm4.message.getNonStream=非流文本数据获取 +mspm4.message.getStream=流文本数据获取 +mspm4.message.commandExcute=命令执行 +mspm4.message.shellRegist=shell注册 +mspm4.message.upgrade=升级部署 +mspm4.text.systemIdName=业务系统 +mspm4.text.nodeListName=节点组 +mspm4.text.excuNode=执行节点 +mspm4.text.addUser=创建用户 +mspm4.text.viewLevel=查看权限 +mspm4.message.publisher=发布人查看 +mspm4.message.publisherGroup=发布人所在组查看 +mspm4.message.allInSys=系统内全部人员查看 +mspm4.text.groupIdName=用户组 +mspm4.text.missionId=任务标识 +mspm4.text.commandType=命令类型 +mspm4.message.nativeCommand=Agent原生支持命令 +mspm4.message.script=脚本 +mspm4.message.shellCommand=shell命令 +mspm4.text.commandName=命令名称 +mspm4.text.loopFlag=周期任务 +mspm4.message.Y=是 +mspm4.message.N=否 +mspm4.text.loopDelay=周期 +mspm4.text.minute=分钟 +mspm4.text.startTime=起始时间 +mspm4.text.endTime=结束时间 +mspm4.text.commandDesc=命令内容    
或参数 +mspm4.text.missionDesc=任务描述 +mspm4.text.autoDesc=执行描述 + +#missionstateparameter5.jsp页面 +mspm5.message.title=非流文本数据获取结果查看 +mspm5.text.title=非流文本数据获取结果查看 +mspm5.text.missionName=任务名称 +mspm5.text.missionType=任务类型 +mspm5.message.filePush=文件推送 +mspm5.message.getNonStream=非流文本数据获取 +mspm5.message.getStream=流文本数据获取 +mspm5.message.commandExcute=命令执行 +mspm5.message.shellRegist=shell注册 +mspm5.text.systemIdName=业务系统 +mspm5.text.commandFlag=调用标志 +mspm5.text.missionDesc=任务描述 +mspm5.text.viewLevel=查看权限 +mspm5.message.publisher=发布人查看 +mspm5.message.publisherGroup=发布人所在组查看 +mspm5.message.allInSys=系统内全部人员可看 +mspm5.text.userIdName=用户 +mspm5.text.shellPath=脚本路径 +mspm5.text.totalChart=总体比例图 +mspm5.text.lineChart=折线趋势图 +mspm5.text.columnarChart=柱状统计图 +mspm5.text.browerInfo=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 +mspm5.text.nodeIp=节点IP +mspm5.text.returnResult=执行结果 +mspm5.text.result=结果原因 +mspm5.message.success=成功 +mspm5.message.failed=失败 +mspm5.button.exportFaildNode=失败节点导出 +mspm5.text.select=请选择 + +#missionstateparameter6.jsp页面 +mspm6.message.title=升级部署-任务结果查看 +mspm6.button.back=返回 +mspm6.text.title=升级部署-任务结果查看 +mspm6.text.missionName=任务名称 +mspm6.text.missionType=任务类型 +mspm6.message.filePush=文件推送 +mspm6.message.getNonStream=非流文本数据获取 +mspm6.message.getStream=流文本数据获取 +mspm6.message.commandExcute=命令执行 +mspm6.message.shellRegist=shell注册 +mspm6.message.upgrade=升级部署 +mspm6.text.systemIdName=业务系统 +mspm6.text.nodeListName=节点组 +mspm6.text.excuNode=执行节点 +mspm6.text.addUser=创建用户 +mspm6.text.viewLevel=查看权限 +mspm6.message.publisher=发布人查看 +mspm6.message.publisherGroup=发布人所在组查看 +mspm6.message.allInSys=系统内全部人员查看 +mspm6.text.groupIdName=用户组 +mspm6.text.missionId=任务标识 +mspm6.text.sourceFile=源文件 +mspm6.text.commandName=命令名称 +mspm6.text.startTime=升级时间 +mspm6.text.commandDesc=命令内容或参数 +mspm6.text.missionDesc=任务描述 +mspm6.text.autoDesc=执行描述 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#nmstaskmanager目录下 +############################################################# +#addFailureNodeTaskInfo.jsp页面 +afnti.message.title=失败节点再次执行 +afnti.message.missionName1=请输入任务名称 +afnti.message.missionName2=任务名称存在特殊字符,请重新输入 +afnti.message.nodeList=请选择节点组 +afnti.message.operationType=请选择业务类型 +afnti.message.userGroup=请选择用户组 +afnti.message.isNotNull=均不能为空 +afnti.text.title=失败节点再次执行 +afnti.text.missionName=任务名称 +afnti.text.editCommandSets=修改命令参数 +afnti.text.nodeGroup=节  点  组 +afnti.button.select=选择 +afnti.text.nodeIp=节点IP +afnti.text.viewLevel=查看权限 +afnti.message.publisher=发布人查看 +afnti.message.publisherGroup=发布人所在组查看 +afnti.message.allInSys=系统内全部人员查看 +afnti.text.usergroup=用  户  组 +afnti.message.userGroupDefault=请选择用户组 +afnti.text.missionDesc=任务描述 +afnti.text.users=联系人 +afnti.message.selectAll=全选 +afnti.buttone.add=提交 +afnti.buttone.reset=重置 +afnti.buttone.back=返回 + +#addnmstaskInfo.jsp页面 +anti.message.title=添加任务信息 +anti.message.missionName=请输入任务名称 +anti.message.jdz=请选择节点组 +anti.message.nodeIp=所选节点组内无有效的节点 +anti.message.systemId=请选择业务类型 +anti.message.usergroupid=请选择用户组 +anti.message.pushFile=推送文件 +anti.message.pushDest=推送目的地 +anti.message.maxWaitTime=最大等待时间 +anti.message.commandEName=请选择命令名称 +anti.text.cycle=周期 +anti.text.startTime=开始时间 +anti.text.endTime=结束时间 +anti.message.timeInfo1=周期结束时间应大于等于起始时间! +anti.message.timeInfo2=周期结束时间应大于当前时间! +anti.message.returnPath=请输入回传文件 +anti.text.backup=需要备份的文件 +anti.text.backupTo=备份到的路径 +anti.text.pidFile=PID文件 +anti.text.source=源文件或目录 +anti.text.cover=覆盖目录 +anti.text.execCmd=执行文件或命令 +anti.text.execResult=执行结果文件 +anti.message.waitTime=等待时间 +anti.text.pushFile=推送文件 +anti.text.startupFile=启动文件 +anti.message.missionDesc=任务描述字数不能大于100 +anti.message.isNotNull=不能为空 +anti.message.fileIsNotExists=文件不存在! +anti.message.fileIsTooBig=推送文件总大小超过100M,请重新选择要推送的文件! +anti.message.mlmc=请选择命令名称 +anti.message.nodeLock=失败节点继续升级 节点组及节点不可修改 +anti.button.back=返回 +anti.text.title=任务添加 +anti.text.missionType=任务类型 +anti.message.filePush=文件推送 +anti.message.commandExcute=命令执行 +anti.message.upgrade=升级部署 +anti.text.systemName=业务系统 +anti.text.missionName=任务名称 +anti.text.nodeGroup=节  点  组 +anti.button.select=选择 +anti.text.select=节点IP +anti.text.viewLevel=查看权限 +anti.message.publisher=发布人查看 +anti.message.publisherGroup=发布人所在组查看 +anti.message.allInSys=系统内全部人员查看 +anti.text.usergroup=用  户  组 +anti.message.userGroupDefault=请选择用户组 +anti.text.upgradeDate=升级时间 +anti.text.commandType=命令类型 +anti.message.commandType1=NC原生支持命令 +anti.message.commandType2=可执行命令 +anti.text.commandexeName=命令名称 +anti.message.commandNameSelect=请选择命令名称 +anti.text.commandDesc=命令内容    
或  参  数 +anti.text.addPushFile=添加推送文件 +anti.message.addPushFile=文件的总大小须小于100MB +anti.text.addOperation=添加操作 +anti.text.loopFlag=周期任务 +anti.message.timed=是 +anti.message.untimed=否 +anti.text.minute=分钟 +anti.text.missionDesc=任务描述 +anti.text.user=联系人 +anti.text.selectAll=全选 +anti.button.submit=提交 +anti.button.reset=重置 + +#editMissionViewLevel.jsp +emvl.message.title=修改任务信息 +emvl.message.missionName1=请输入任务名称 +emvl.message.missionName2=任务名称存在特殊字符,请重新输入 +emvl.message.usergroupid=请选择用户组 +emvl.text.title=任务信息修改 +emvl.text.missionName=任务名称 +emvl.text.viewLevel=查看权限 +emvl.message.publisher=发布人查看 +emvl.message.publisherGroup=发布人所在组查看 +emvl.message.allInSys=系统内全部人员查看 +emvl.message.unlimited=全局 +emvl.text.usergroup=用  户  组 +emvl.text.usergroupDefault=请选择用户组 +emvl.button.submit=提交 +emvl.button.reset=重置 +emvl.button.back=返回 + +#editnmstaskInfoparameter1.jsp +entip1.message.title=添加任务信息 +entip1.message.nodegroupidDefault=请选择节点组 +entip1.message.detectFileDefault=选择监测文件 +entip1.message.missionName=请输入任务名称 +entip1.message.operationType=请选择业务类型 +entip1.message.usergroupid=请选择用户组 +entip1.message.sourcePath=请选择源文件 +entip1.message.targetPath=请输入目的地 +entip1.message.selectFile=请选择文件 +entip1.text.title=修改任务信息 +entip1.text.missionName=任务名称 +entip1.text.missionType=任务类型 +entip1.text.filePush=文件推送 +entip1.text.selectSystem=选择业务系统 +entip1.message.selectSystem=请选择业务系统 +entip1.text.pushNodeGroup=推送节点组 +entip1.text.pushMissionDesc=推送任务描述 +entip1.text.viewLevel=查看权限 +entip1.text.publisher=发布人查看 +entip1.text.publisherGroup=发布人所在组查看 +entip1.text.allInSys=发布人所在组查看 +entip1.text.userGroup=用户组 +entip1.text.sourcePath=源文件 +entip1.text.targetPath=目的地 + +#editnmstaskInfoparameter2.jsp页面 +entip2.message.title=添加任务信息 +entip2.message.nodegroupid=请选择节点组 +entip2.message.monfenfuenfefef=选择监测文件 +entip2.message.missionName=请输入任务名称 +entip2.message.missionType=请选择业务类型 +entip2.message.userGroup=请选择用户组 +entip2.message.sourcePath=请选择源文件 +entip2.message.targetPath=请输入目的地 +entip2.message.file=请选择文件 +entip2.text.addMissionInfo=添加任务信息 +entip2.text.missionName=任务名称 +entip2.text.missionType=任务类型 +entip2.text.getDate=非流文本数据获取 +entip2.text.System=选择业务系统 +entip2.text.selectSystem=请选择业务系统 +entip2.text.groupId=非流节点组 +entip2.text.missionDesc=非流任务描述 +entip2.text.viewLevel=查看权限 +entip2.message.publisher=发布人查看 +entip2.message.publisherGroup=发布人所在组查看 +entip2.message.allInSys=系统内全部人员可看 +entip2.text.userGroup=用户组 +entip2.text.loopFlag=是否定时任务 +entip2.message.Y=是 +entip2.message.N=否 +entip2.text.cycle=周期(单位分钟) +entip2.text.minute=分钟 +entip2.text.selectFile=选文件 +entip2.text.filterKeyword=过滤关键词 +entip2.text.startFlag=起始标志 +entip2.text.endFlag=结束标志 + +#missionResultBarChart.jsp页面 +mrbc.message.title=任务执行结果图 +mrbc.text.resultChart=定时任务执行结果趋势图 +mrbc.message.success=成功 +mrbc.message.failed=失败 +mrbc.message.underDelivery=下发中 +mrbc.message.deliveredSuccess=任务下发成功 +mrbc.message.processStop=进程停用成功 +mrbc.message.fileBackup=文件备份成功 +mrbc.message.fileUpdate=文件更新成功 +mrbc.message.commandSuccess=命令执行成功 +mrbc.message.commandFailed=命令执行失败 +mrbc.message.withDraw=准备撤销 +mrbc.message.undo=撤销中 +mrbc.message.undoComplete=撤销完成 + +#missionResultLineChart.jsp页面 +mrlc.message.title=任务执行结果图 +mrlc.text.xAxis=轮次 +mrlc.message.success=成功 +mrlc.message.failed=失败 +mrlc.message.underDelivery=下发中 +mrlc.message.deliveredSuccess=任务下发成功 +mrlc.message.processStop=进程停用成功 +mrlc.message.fileBackup=文件备份成功 +mrlc.message.fileUpdate=文件更新成功 +mrlc.message.commandSuccess=命令执行成功 +mrlc.message.commandFailed=命令执行失败 +mrlc.message.withDraw=准备撤销 +mrlc.message.undo=撤销中 +mrlc.message.undoComplete=撤销完成 +mrlc.text.firstTd=上一页 +mrlc.text.lastTd=下一页 + + + +#missionResultList.jsp页面 +mrl.message.title=命令执行-任务结果查看 +mrl.message.judgmentFails=请选择一行失败结果! +mrl.message.isUpdate=所选任务类型非升级部署,不可逆向 +mrl.message.isConverse=所选任务为逆向任务,不可再逆向 +mrl.message.finished=所选任务尚未完成,不可逆向 +mrl.message.haveBackUp=所选任务无备份,不可逆向 +mrl.message.hasSpecialChar=输入为特殊字符,请重新输入! +mrl.message.batchDownLoadFile=当前选择没有文件可以下载! +mrl.message.selectOne=请至少选择一条记录! +mrl.text.missionType=任务类型 +mrl.message.missionType1=文件推送 +mrl.message.missionType4=命令执行 +mrl.message.missionType6=升级部署 +mrl.text.missionName=任务名称 +mrl.text.cycle=周期 +mrl.text.result=任务结果 +mrl.message.resultStateDefault=全部 +mrl.message.success=成功 +mrl.message.failed=失败 +mrl.message.underDelivery=下发中 +mrl.message.deliveredSuccess=任务下发成功 +mrl.message.processStop=进程停用成功 +mrl.message.fileBackup=文件备份成功 +mrl.message.fileUpdate=文件更新成功 +mrl.message.commandSuccess=命令执行成功 +mrl.message.commandFailed=命令执行失败 +mrl.message.withDraw=准备撤销 +mrl.message.undo=撤销中 +mrl.message.undoComplete=撤销完成 +mrl.text.ipNode=节点IP +mrl.message.ipNode=请输入节点IP地址 +mrl.button.judgmentFails=判定失败 +mrl.button.updateFailedNodes=失败节点再次执行 +mrl.button.reverseSuccessNodes=成功节点逆向 +mrl.button.reverseFaildNodes=失败节点逆向 +mrl.button.reverseAllNodes=全部逆向 +mrl.button.exportXLS=查询结果导出 +mrl.button.batchDownLoadFile=批量下载回传文件 +mrl.button.back=返回 +mrl.text.nodeIp=节点IP +mrl.text.returnResult=执行结果 +mrl.text.resultCause=结果原因 +mrl.text.backFile=回传文件 +mrl.message.decisionFailed=判定失败 + +#missionResultListChild.jsp页面 +mrlchild.message.success=成功 +mrlchild.message.failed=失败 +mrlchild.message.underDelivery=下发中 +mrlchild.message.deliveredSuccess=任务下发成功 +mrlchild.message.processStop=进程停用成功 +mrlchild.message.fileBackup=文件备份成功 +mrlchild.message.fileUpdate=文件更新成功 +mrlchild.message.commandSuccess=命令执行成功 +mrlchild.message.commandFailed=命令执行失败 +mrlchild.message.withDraw=准备撤销 +mrlchild.message.undo=撤销中 +mrlchild.message.undoComplete=撤销完成 +mrlchild.message.decisionFailed=判定失败 + +#missionResultPieChart.jsp页面 +mrpc.message.title=文件推送详细结果 +mrlchild.message.resultState01=所有 +mrlchild.message.rightTree=右侧列表显示 +mrlchild.message.rightTree.node=的节点 +mrlchild.text.resultChart=结果比例图 +mrlchild.text.cycleChart=最近周期结果比例图 +mrlchild.text.totalChart=总体比例 + +#missionResultsStatistics.jsp页面 +mrs.message.title=命令执行-任务结果查看 +mrs.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 +mrs.button.exportXls=失败结果导出 +mrs.button.back=返回 +mrs.message.filePush=文件推送 +mrs.message.getNonStream=非流文本数据获取 +mrs.message.getStream=流文本数据获取 +mrs.message.commandExec=命令执行 +mrs.message.shellRegist=shell注册 +mrs.message.upgradeDeployment=升级部署 +mrs.text.loopFlag=周期任务 +mrs.text.resultView=任务结果查看 +mrs.text.pie=任务状态图 +mrs.text.line=折线趋势图 +mrs.text.data=周期统计表 +mrs.text.column=柱状统计图 + +#missionResultsStatisticsList.jsp页面 +mrsl.message.title=NMS任务查询 +mrsl.text.loopInterval=周期区间 +mrsl.text.to=至 +mrsl.text.cycle=周期 +mrsl.text.successNum=成功数 +mrsl.text.filedNum=失败数 +mrsl.text.downNum=未下发数 +mrsl.text.upNum=未上报数 +mrsl.text.totalNum=总计 +mrsl.text.searchResults=第 +mrsl.text.searchResults.cycle=周期 +mrsl.text.noResult=暂无结果 + +#missionResultsStatisticsListChild.jsp页面 +mrslc.text.searchResults=第 +mrslc.text.searchResults.cycle=周期 +mrslc.text.noResult=暂无结果 + +#nmstaskInfoList.jsp页面 +ntil.message.title=NMS任务查询 +ntil.message.success=操作成功! +ntil.message.faild=操作失败! +ntil.message.selectOne=请选择一行记录! +ntil.message.isUpdate=所选任务类型非升级部署,不可逆向 +ntil.message.isConverse=所选任务为逆向任务,不可再逆向 +ntil.message.finished=所选任务尚未完成,不可逆向 +ntil.message.haveBackUp=所选任务无备份,不可逆向 +ntil.message.toSelect=请至少选择一行记录! +ntil.message.isLoopFlag=包含非周期任务,请重新选择! +ntil.message.taskComplete=包含已完成或未能执行的任务,请重新选择! +ntil.message.taskInEffect=包含生效的任务,请重新选择! +ntil.message.taskNotCancelled=该任务还未完成撤销,无法再次启用 +ntil.message.operateCautiously=请谨慎使用该操作,任务一旦撤销,只有在任务完成撤销后,才能再次启用该任务!请再次确认是否停用该任务! +ntil.message.disabledTask=包含停用的任务,请重新选择! +ntil.message.inputInfo=输入为特殊字符,请重新输入! +ntil.message.warning=任务操作已完成,是否继续维护数据? +ntil.message.hint=提示 +ntil.text.missionName=任务名称 +ntil.message.missionName=请输入任务名称 +ntil.text.loopFlag=是否周期任务 +ntil.text.selectDefault=请选择 +ntil.message.timed=周期任务 +ntil.message.untimed=非周期任务 +ntil.text.missionState=任务状态 +ntil.message.missionCreated=任务已创建 +ntil.message.missionExec=任务已开始执行 +ntil.message.missionComplete=任务已完成 +ntil.message.execFailed=任务未能执行 +ntil.message.revocation=周期任务准备撤销 +ntil.message.cancellation=周期任务执行撤销 +ntil.message.cancelled=周期任务完成撤销 +ntil.text.missionType=任务类型 +ntil.message.missionType1=文件推送 +ntil.message.missionType4=命令执行 +ntil.message.missionType6=升级部署 +ntil.text.operation=操作 +ntil.text.isLoop=是否周期任务 +ntil.text.missionStateDesc=任务状态描述 +ntil.text.systemId=业务系统 +ntil.text.userGroup=用户组 +ntil.text.viewLevel=查看权限 +ntil.text.user=创建人 +ntil.text.createTime=创建时间 +ntil.text.resultView=结果查看 +ntil.text.updateInfo=修改信息 +ntil.message.missionType2=非流文本数据获取 +ntil.message.missionType3=流文本数据获取 +ntil.message.missionType5=注册 +ntil.message.Y=是 +ntil.message.N=否 +ntil.message.allSuccess=全部成功 +ntil.message.partiallySuccess=部分成功 +ntil.message.allFailed=全部失败 +ntil.message.publisher=发布人查看 +ntil.message.publisherGroup=发布人所在组查看 +ntil.message.allInSys=系统内全部人员查看 +ntil.message.noRecord=没有记录 +ntil.button.exportCurrentPage=导出当前页数据 +ntil.button.exportAllData=导出全部数据 +ntil.button.closeWindow=关闭窗口 +ntil.button.clickToShowInfo=点击查看任务信息 + +#nmstaskInfoListChild.jsp页面 +ntilc.text.resultView=结果查看 +ntilc.text.updateInfo=修改信息 +ntilc.message.filePush=文件推送 +ntilc.message.getNonStream=非流文本数据获取 +ntilc.message.getStream=流文本数据获取 +ntilc.message.commandExec=命令执行 +ntilc.message.shellRegist=shell注册 +ntilc.message.upgradeDeployment=升级部署 +ntilc.message.missionCreated=任务已创建 +ntilc.message.taskExec=任务已开始执行 +ntilc.message.completed=已完成 +ntilc.message.allSuccess=全部成功 +ntilc.message.partiallySuccess=部分成功 +ntilc.message.allFailed=全部失败 +ntilc.message.teskFailedExec=任务未能执行 +ntilc.message.revocation=周期任务准备撤销 +ntilc.message.cancellation=周期任务执行撤销 +ntilc.message.cancelled=周期任务完成撤销 +ntilc.message.publisher=发布人查看 +ntilc.message.publisherGroup=发布人所在组查看 +ntilc.message.allInSys=系统内全部人员查看 +ntilc.message.Y=是 +ntilc.message.N=否 + +#nmstaskInfoListParent.jsp页面 +ntilp.message.title=NMS任务查询 +ntilp.message.success=操作成功! +ntilp.message.faild=操作失败! +ntilp.message.selectOne=请选择一行记录! +ntilp.message.isUpdate=所选任务类型非升级部署,不可逆向 +ntilp.message.isConverse=所选任务为逆向任务,不可再逆向 +ntilp.message.finished=所选任务尚未完成,不可逆向 +ntilp.message.haveBackUp=所选任务无备份,不可逆向 +ntilp.message.isLoopFlag=包含非周期任务,请重新选择! +ntilp.message.isOperation1=包含已完成或未能执行的任务,请重新选择! +ntilp.message.isOperation2=包含生效的任务,请重新选择! +ntilp.message.isOperation3=该任务还未完成撤销,无法再次启用 +ntilp.message.disabledTask=包含停用的任务,请重新选择! +ntilp.message.isOperation4=请谨慎使用该操作,任务一旦撤销,只有在任务完成撤销后,才能再次启用该任务!请再次确认是否停用该任务! +ntilp.message.inputInfo=输入为特殊字符,请重新输入! +ntilp.message.warning=任务操作已完成,是否继续维护数据? +ntilp.message.hint=提示 +ntilp.message.operation=操作 +ntilp.text.missionName=任务名称 +ntilp.message.missionName=请输入任务名称 +ntilp.text.loopFlag=是否周期任务 +ntilp.message.messageDefault=请选择 +ntilp.message.timed=周期任务 +ntilp.message.untimed=非周期任务 +ntilp.text.missionState=任务状态 +ntilp.message.missionState1=任务已创建 +ntilp.message.missionState2=任务已开始执行 +ntilp.message.missionState3=已完成 +ntilp.message.missionState4=任务未能执行 +ntilp.message.missionState5=周期任务准备撤销 +ntilp.message.missionState6=周期任务执行撤销 +ntilp.message.missionState7=周期任务完成撤销 +ntilp.text.missionType=任务类型 +ntilp.message.missionType1=文件推送 +ntilp.message.missionType4=命令执行 +ntilp.message.missionType6=升级部署 +ntilp.button.exportXls=导出 +ntilp.text.missionStateDesc=任务状态描述 +ntilp.text.systemId=业务系统 +ntilp.text.userGroup=用户组 +ntilp.text.viewLevel=查看权限 +ntilp.text.createUser=创建人 +ntilp.text.createTime=创建时间 +ntilp.text.resultView=结果查看 +ntilp.text.updateInfo=修改信息 +ntilp.message.missionType2=非流文本数据获取 +ntilp.message.missionType3=流文本数据获取 +ntilp.message.missionType5=注册 +ntilp.message.Y=是 +ntilp.message.N=否 +ntilp.message.missionState30=全部成功 +ntilp.message.missionState32=部分成功 +ntilp.message.missionState31=全部失败 +ntilp.message.publisher=发布人查看 +ntilp.message.publisherGroup=发布人所在组查看 +ntilp.message.allInSys=系统内全部人员查看 +ntilp.text.noRecord=没有记录 +ntilp.button.expordCurrentPage=导出当前页数据 +ntilp.button.expordAllData=导出全部数据 +ntilp.text.closeWindow=关闭窗口 + +#taskTemplate.jsp页面 +tt.text.path=路径 +tt.message.path=单个文件,zip、gz压缩包 +tt.text.delete=删除 +tt.text.destPath=推送目的地 +tt.text.isCover=覆盖 +tt.message.Y=是 +tt.message.N=否 +tt.text.username=属主 +tt.text.groupName=属群 +tt.text.permisson=文件权限 +tt.text.coverPath=覆盖目录 +tt.text.isCreateCover=创建标识 +tt.message.isCreateCoverY=创建 +tt.message.isCreateCoverN=不创建 +tt.text.decompression=解压标识 +tt.text.absolutePath=绝对路径 +tt.text.relativePath=相对路径 +tt.text.deleteFile=删除文件 +tt.message.deleteFile=多个文件以分号分隔 +tt.text.backup=备份 +tt.message.addBackup=添加备份参数 +tt.text.pidFile=PID文件 +tt.text.forceExec=强制执行 +tt.text.execParams=启动参数 +tt.message.execParams=多个参数以分号分隔 +tt.text.maxWaitTime=等待时间 +tt.message.maxWaitTime=秒(为空则默认等待3秒) +tt.text.backupFile=需要备份的文件 +tt.text.compression=压缩标识 +tt.text.backupTo=备份到的路径 +tt.text.exceptFile=排除文件 +tt.message.exceptFile=多个文件以分号分隔 +tt.message.backupTo= 请填写相对路径 +tt.text.execCmd=启动文件或命令 +tt.text.execResult=执行结果文件 +tt.text.residentFlag=常驻内存 +tt.text.maxWaitTime1=最大等待时间 +tt.text.returnFlag=回传标识 +tt.text.backFile=回传文件 +tt.text.source=源文件或目录 +tt.text.execcommand=执行命令 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#snmpDetectTypeManage目录下 +############################################################# +#addSnmpDetectTypeInfo.jsp页面 +asdti.message.title=添加SNMP监测项 +asdti.text.sortName=SNMP监测类别名称 +asdti.text.title=添加SNMP监测项 +asdti.text.sortDesc=SNMP监测类别描述 +asdti.text.submit=提交 +asdti.text.reset=重置 +asdti.text.back=返回 + +#detailSnmpDetectTypeInfo.jsp页面 +dsdti.text.title=查看SNMP监测项 +dsdti.text.sortName=SNMP监测类别名称 +dsdti.text.sortDesc=SNMP监测类别描述 + +#snmpDetectTypeInfoList.jsp页面 +sdtil.message.title=SNMP监测项管理 +sdtil.message.success=操作成功! +sdtil.message.faild=操作失败! +sdtil.message.selectOne=请选择一行记录! +sdtil.message.delete=确定删除设置信息吗? +sdtil.text.sortName=SNMP监测类别名称 +sdtil.text.index=序号 +sdtil.text.sortTypeDesc=SNMP监测类别描述 +sdtil.text.noRecord=没有记录 + +#updateSnmpDetectTypeInfo.jsp页面 +usdti.message.title=修改SNMP监测项 +usdti.text.title=修改SNMP监测项 +usdti.text.sortName=SNMP监测类别名称 +usdti.text.sortTypeDesc=SNMP监测类别描述 +usdti.text.submit=提交 +usdti.text.reset=重置 +usdti.text.back=返回 + + +#WebRoot目录下 +#page目录下 +#system目录下 +#toolManage目录下 +############################################################# +#downLoadTools.jsp页面 +dlt.message.title=修改用户信息 +dlt.text.title=工具下载 +dlt.text.toolName=工具名称 +dlt.text.operation=操作 + +#WebRoot目录下 +#page目录下 +#system目录下 +#usergroup目录下 +#giveGrouppermission目录下 +############################################################# +#addgroupinfo.jsp页面 +agi.message.title=添加用户组信息信息 +agi.message.jsFormError=用户组已存在,请重新输入! +agi.message.jsFormException=操作异常! +agi.text.jsmc=用户组名称 +agi.message.jsmc=用户组名称存在特殊字符,请重新输入 +agi.message.sys=请为该用户组选择系统! +agi.button.back=返回 +agi.text.title=新增用户组信息 +agi.text.jsms=用户组描述 +agi.text.state=状态 +agi.text.using=有效 +agi.text.selectSys=选择可访问系统 +agi.text.systemList=业务系统列表 +agi.button.submit=提交 +agi.button.reset=重置 + +#geivegroupperm.jsp页面 +ggrp.message.title=修改用户组信息 +ggrp.message.jsFormError=用户组已存在,请重新输入! +ggrp.message.jsFormException=操作异常! +ggrp.text.jsmc=用户组名称 +ggrp.message.jsmc=用户组名称存在特殊字符,请重新输入 +ggrp.message.sys=请为该用户组选择系统! +ggrp.button.back=返回 +ggrp.text.title=修改用户组信息 +ggrp.text.userGroup=用户组名称 +ggrp.message.userGroupDesc=用户组描述 +ggrp.text.state=状态 +ggrp.message.state0=有效 +ggrp.message.state1=无效 +ggrp.text.systemId=选择可访问系统 +ggrp.text.systemList=业务系统列表 +ggrp.button.submit=提交 +ggrp.button.reset=重置 + + +#groupInfoList.jsp页面 +gil.message.title=用户组信息列表 +gil.message.success=操作成功! +gil.message.faild=操作失败! +gil.message.inputInfo=输入为特殊字符,请重新输入! +gil.message.importFile=请选择导入的文件 +gil.message.importCorrectFile=请选择正确的导入文件类型 +gil.message.sureToImport=导入用户组,你确定导入吗? +gil.message.warning=用户组操作已完成,是否继续维护数据? +gil.message.hint=提示 +gil.text.userGroup=用户组名称 +gil.button.downloadExample=下载模板 +gil.text.importXls=导入excel +gil.button.importXls=导入 +gil.button.showDiv=导出 +gil.text.index=序号 +gil.text.userGroupDesc=用户组描述 +gil.text.state=状态 +gil.text.operation=操作 +gil.message.state0=有效 +gil.message.state1=无效 +gil.text.updateInfo=修改信息 +gil.text.noRecord=没有记录 +gil.button.exportCurrentPage=导出当前页数据 +gil.button.exportAllData=导出全部数据 +gil.button.closeWindow=关闭窗口 + +#viewgrouppermission.jsp页面 +vgp.message.title=查看用户组信息 +vgp.button.back=返回 +vgp.text.title=用户组基本信息 +vgp.text.userGroup=用户组名称 +vgp.text.state=状态 +vgp.message.state0=有效 +vgp.message.state1=无效 +vgp.text.userGroupDesc=用户组描述 +vgp.text.systemId=可访问系统 +vgp.message.systemId=NMS业务系统 +vgp.text.userGroupInfo=用户组下的所有用户信息 +bgp.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + + +#viewgrouppermissionForGuide.jsp页面 +vgpmfg.message.title=查看用户组信息 +vgpmfg.button.back=返回 +vgpmfg.text.title=用户组基本信息 +vgpmfg.text.usergroup=用户组名称 +vgpmfg.text.state=状态 +vgpmfg.message.state0=有效 +vgpmfg.message.state1=无效 +vgpmfg.text.userGroupDesc=用户组描述 +vgpmfg.text.systemId=可访问系统 +vgpmfg.message.systemId=NMS业务系统 +vgpmfg.text.userGroupInfo=用户组下的所有用户信息 +vgpmfg.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + + +#WebRoot目录下 +#page目录下 +#system目录下 +##################################################################### +#addDeptInfo.jsp页面 +adepti.message.title=添加用户信息 +adepti.text.deptname=部门名称 +adepti.message.deptname=请选择上级部门 +adepti.message.deptnameExists=此部门名称已经存在 +adepti.text.title=添加部门信息 +adepti.text.upperlayer=上级部门 +adepti.message.selectDefault=请选择 +adepti.text.deptlayer=部门级别 +adepti.message.deptlayer0=总队 +adepti.message.deptlayer1=支队 +adepti.message.deptlayer2=队 +adepti.button.submit=提交 +adepti.button.reset=重置 +adepti.button.back=返回 + +#addErrorInfo.jsp页面 +aei.message.title=添加故障库 +aei.text.troubleCode=故障代码 +aei.text.troubleInfo=故障名称 +aei.message.selectSystem=请选择系统 +aei.message.MkformError=故障代码已存在,请重新输入! +aei.message.MkformException=操作异常! +aei.button.back=返回 +aei.text.title=新增故障库信息 +aei.text.systeId=业务系统 +aei.message.systeId=请选择业务系统 +aei.text.troubleDescr=故障描述 +aei.button.submit=提交 +aei.button.reset=重置 + + +#addJsInfo.jsp页面 +aji.message.title=添加角色信息 +aji.text.jsmc=角色名称 +aji.message.jsmc=角色名称存在特殊字符,请重新输入 +aji.message.mk=请为该角色选择模块! +aji.message.jsmcInput=此角色名称已经存在,请重新输入 +aji.button.back=返回 +aji.text.title=新增角色信息 +aji.text.jsms=角色描述 +aji.text.state=状态 +aji.text.using=有效 +aji.message.selectMk=选择可访问模块 +aji.message.mkMenu=模块菜单 +aji.button.submit=提交 +aji.button.reset=重置 + +#addMkInfo.jsp页面 +amki.message.title=添加模块功能信息 +amki.text.mkjbxx=模块基本信息 +amki.text.mkmc=模块名称 +amki.text.mkurl=模块路径 +amki.text.mkms=模块描述 +amki.text.state=状态 +amki.message.state0=有效 +amki.message.state1=无效 + +#addUser.jsp页面 +au.message.title=添加用户信息 +au.message.yhbh1=用户名已存在! +au.text.yhbh=用户名 +au.message.hasSpecialChar=用户名存在特殊字符,请重新输入 +au.message.hasZH=用户名不能包括中文,请重新输入 +au.message.onlyNumber=用户名不能为纯数字 +au.message.cannotHasZH=字符和数字混合,不能包括中文 +au.text.yhmc=真实姓名 +au.message.email=E-mail格式不正确,请重新输入! +au.message.js=请至少选择一个角色! +au.message.yhz=请至少选择一个用户组! +au.message.bm=请至少选择一个部门! +au.button.back=返回 +au.text.title=新增用户信息 +au.text.yhjbxx=用户基本信息 +au.text.state=状态 +au.text.using=有效 +au.text.reciveEmail=接收邮件 +au.message.Y=是 +au.message.N=否 +au.text.xzjs=选择角色 +au.text.select=选择 +au.text.selectUser=用户角色 +au.text.selectUserGroup=选择用户组 +au.text.userGroup=用户组 +au.text.selectDept=选择部门 +au.message.deptMenu=部门菜单 +au.button.submit=提交 +au.button.reset=重置 +au.text.language=语言 + +#addUserInfo.jsp页面 +aui.message.title=添加用户信息 +aui.text.yhmc=真实姓名 +aui.text.yhbh=用户名 +aui.text.yhmm=用户密码 +aui.text.confirm=确认密码 +aui.message.email=E-mail格式不正确,请重新输入! +aui.message.jsbh=请至少选择一个角色! +aui.message.deptid=请至少选择一个部门! +aui.message.confirm=密码和确认密码不同,请重新输入! +aui.message.inputInfo=输入为特殊字符,请重新输入! +aui.text.title=添加用户信息 +aui.text.baseInfo=用户基本信息 +aui.text.selectDept=选择部门 +aui.text.select=选择 +aui.text.dept=部门名称 +aui.text.selectJs=选择角色 +aui.text.jsbh=角色编号 +aui.text.jsmc=角色名称 +aui.text.state=状态 +aui.message.state0=有效 +aui.message.state1=已注销 +aui.text.selectUserGroup=选择用户组 +aui.text.userGroupId=用户组编号 +aui.text.userGroup=用户组名称 +aui.button.submit=提交 +aui.button.reset=重置 +aui.button.back=返回 + +#configJsMKGnInfo.jsp页面 +cjsmkgi.message.title=角色权限配置 +cjsmkgi.text.baseInfo=角色基本信息 +cjsmkgi.text.jsbh=角色编号 +cjsmkgi.text.jsmc=角色名称 +cjsmkgi.text.state=状态 +cjsmkgi.message.state0=有效 +cjsmkgi.message.state1=已注销 +cjsmkgi.text.mkpromission=选择模块权限 +cjsmkgi.message.openAll=全部打开 +cjsmkgi.message.closeAll=全部关闭 +cjsmkgi.text.mkList=模块信息列表 + +#deptInfoList.jsp页面 +deptil.message.title=部门信息管理 +deptil.message.success=操作成功! +deptil.message.faild=操作失败! +deptil.message.inputInfo=输入为特殊字符,请重新输入! +deptil.message.deptname=请输入部门名称 +deptil.text.deptname=部门名称 +deptil.button.add=新增 +deptil.text.index=序号 +deptil.text.deptLevel=部门级别 +deptil.text.option=操作 +deptil.message.deptlayer0=总队 +deptil.message.deptlayer1=支队 +deptil.message.deptlayer2=队 +deptil.text.update=修改 +deptil.text.noRecord=没有记录 + +#errorInfoList.jsp页面 +eil.message.title=故障库 +eil.button.add=新增 +eil.text.index=序号 +eil.text.troubleCode=故障代码 +eil.text.troubleInfo=故障名称 +eil.text.troubleDescr=故障描述 +eil.text.systemName=系统名称 +eil.text.createUser=创建者 +eil.text.createDate=创建时间 +eil.text.lastUpUser=修改者 +eil.text.lastUpDate=修改时间 +eil.text.state=状态 +eil.text.operation=操作 +eil.message.state0=有效 +eil.message.state1=无效 +eil.text.updateInfo=修改信息 +eil.text.noRecord=没有记录 + +#fourceModifyUserPwd.jsp页面 +fmup.message.title=修改用户密码 +fmup.text.yhmm=用户密码 +fmup.text.confirm=确认密码 +fmup.message.confirm=密码和确认密码不同,请重新输入! +fmup.text.title=修改密码信息 +fmup.text.yhmc=用户名称 +fmup.message.yhmm=密码长度至少为8位 +fmup.button.submit=提交 +fmup.button.reset=重置 +fmup.button.back=返回 + +#jsInfoList.jsp页面 +jsil.message.title=角色信息 +jsil.message.seccess=操作成功! +jsil.message.faild=操作失败! +jsil.message.inputInfo=输入为特殊字符,请重新输入! +jsil.text.jsmc=角色名称 +jsil.message.jsmc=请输入角色名称 +jsil.button.add=新增 +jsil.text.index=序号 +jsil.text.jsms=角色描述 +jsil.text.state=状态 +jsil.text.option=操作 +jsil.message.state0=有效 +jsil.message.state1=无效 +jsil.text.updateInfo=修改信息 +jsil.text.noRecord=没有记录 + +#mkInfoList.jsp页面 +mil.message.mktitle=模块信息 +mil.message.seccess=操作成功! +mil.message.faild=操作失败! +mil.message.pid=没有选中的记录,添加的将是一级菜单,确定添加吗? +mil.message.selectOne=请选择一条记录! +mil.message.inputInfo=输入为特殊字符,请重新输入! +mil.text.mkmc=模块名称 +mil.message.mkmc=请输入模块名称 +mil.text.mkms=模块描述 +mil.message.mkms=请输入模块描述 +mil.text.index=序号 +mil.text.mkid=模块编号 +mil.text.mkurl=模块路径 +mil.text.state=状态 +mil.text.option=操作 +mil.message.state0=有效 +mil.message.state1=已注销 +mil.text.update=修改 + +#showImportUserError.jsp页面 +siue.message.title=错误信息页面 +siue.text.title=报错信息 +siue.text.yhbh=用户名 +siue.text.yhmc=真实姓名 +siue.text.showError=报错信息 +siue.text.back=返回 + + +#updateDeptInfo.jsp页面 +udept.message.title=修改用户信息 +udept.text.deptname=部门名称 +udept.message.deptname=请选择上级部门 +udept.message.deptnameExists=此部门名称已经存在 +udept.text.title=修改部门信 +udept.text.deptlayer=部门级别 +udept.text.upperlayer=上级部门 +udept.message.selectDefault=请选择 +udept.button.submit=提交 +udept.button.reset=重置 +udept.button.back=返回 + +#updateErrorInfo.jsp页面 +uei.message.title=添加故障库 +uei.text.troubleInfo=故障名称 +uei.message.systemId=请选择系统 +uei.button.back=返回 +uei.text.title=修改故障库信息 +uei.text.troubleCode=故障代码 +uei.text.systemId=业务系统 +uei.message.system=请选择业务系统 +uei.text.troubleDescr=故障描述 +uei.text.troubleState=状态 +uei.message.troubleState0=有效 +uei.message.troubleState1=无效 +uei.button.submit=提交 +uei.button.reset=重置 + + +#updateJsInfo.jsp页面 +ujsi.message.title=修改角色信息 +ujsi.text.jsmc=角色名称 +ujsi.message.jsmc=角色名称存在特殊字符,请重新输入 +ujsi.message.mk=请为该角色选择模块! +ujsi.message.jsExists=此角色名称已经存在 +ujsi.button.back=返回 +ujsi.text.title=修改角色信息 +ujsi.text.jsms=角色描述 +ujsi.text.state=状态 +ujsi.message.state0=有效 +ujsi.message.state1=无效 +ujsi.text.selectMk=选择可访问模块 +ujsi.text.mkMenu=模块菜单 +ujsi.button.submit=提交 +ujsi.button.reset=重置 + + +#updateMkInfo.jsp页面 +umki.message.title=修改模块功能信息 +umki.text.title=模块基本信息 +umki.text.mkid=模块编号 +umki.text.mkmc=模块名称 +umki.text.mkurl=模块路径 +umki.text.mkms=模块描述 +umki.text.state=状态 +umki.message.state0=有效 +umki.message.state1=无效 + +#updateSelfInfo.jsp页面 +usi.message.title=修改个人信息 +usi.message.success=操作成功! +usi.message.faild=操作失败! +usi.message.email=E-mail格式不正确,请重新输入! +usi.message.emailInput=请输入邮箱 +usi.text.yhmm=用户密码 +usi.text.confirm=确认密码 +usi.message.confirm=密码和确认密码不同,请重新输入! +usi.text.title=修改个人信息 +usi.text.yhmc=用户名 +usi.text.userRole=用户角色 +usi.text.userDept=用户部门 +usi.text.emailRecive=接收邮件 +usi.message.Y=是 +usi.message.N=否 +usi.text.isUpdatePwd=是否修改密码 +usi.button.submit=提交 +usi.button.reset=重置 + +#updateUser.jsp页面 +uu.message.title=修改用户信息 +uu.text.yhmc=真实姓名 +uu.message.yhmc=真实姓名存在特殊字符,请重新输入 +uu.message.email=E-mail格式不正确,请重新输入 +uu.message.js=请至少选择一个角色! +uu.message.yhz=请至少选择一个用户组! +uu.message.bm=请至少选择一个部门! +uu.button.back=返回 +uu.text.title=修改用户信息 +uu.text.baseInfo=用户基本信息 +uu.text.yhbh=用户名 +uu.text.state=状态 +uu.message.state0=有效 +uu.message.state1=无效 +uu.text.isReceiveEmail=接收邮件 +uu.message.isReceiveEmail0=是 +uu.message.isReceiveEmail1=否 +uu.text.role=选择角色 +uu.message.select=选择 +uu.message.userRole=用户角色 +uu.text.selectUserGroup=选择用户组 +uu.text.userGroup=用户组 +uu.text.selectDept=选择部门 +uu.text.deptMenu=部门菜单 +uu.text.submit=提交 +uu.text.reset=重置 + +#updateUserInfo.jsp页面 +uui.message.title=修改用户信息 +uui.text.yhmc=真实姓名 +uui.message.selectRole=请至少选择一个角色! +uui.message.deptid=请至少选择一个部门! +uui.text.title=修改用户信息 +uui.text.baseInfo=用户基本信息 +uui.text.yhbh=用户名 +uui.text.state=状态 +uui.message.state0=有效 +uui.message.state1=无效 +uui.text.selectDept=选择部门 +uui.message.select=选择 +uui.text.deptName=部门名称 +uui.text.selectRole=选择角色 +uui.text.roleId=角色编号 +uui.text.roleName=角色名称 +uui.message.registed=已注销 +uui.text.selectUserGroup=选择用户组 +uui.text.userGroupId=用户组编号 +uui.text.userGroup=用户组名称 +uui.text.submit=提交 +uui.text.reset=重置 +uui.text.back=返回 + +#updateUserPassword.jsp页面 +uup.message.title=修改用户密码 +uup.text.yhmm=用户密码 +uup.text.confirm=确认密码 +uup.message.confirm=密码和确认密码不同,请重新输入! +uup.message.yhmc=用户名称 +uup.button.back=返回 +uup.text.title=修改密码信息 +uup.message.password=密码长度至少为8位 +uup.text.submit=提交 +uup.text.reset=重置 + +#usersInfoList.jsp页面 +uil.message.title=用户信息管理 +uil.message.success=操作成功 +uil.message.faild=操作失败! +uil.message.inputInfo=输入为特殊字符,请重新输入! +uil.message.myFile1=请选择导入的文件 +uil.message.myFile2=请选择正确的导入文件类型 +uil.message.myFile3=确定导入吗? +uil.button.downloadExample=下载模板 +uil.text.importUser=导入用户 +uil.button.importXls=导入 +uil.button.add=新增 +uil.text.yhbh=用户名 +uil.message.yhbh=请输入用户名 +uil.text.yhmc=真实姓名 +uil.message.yhmc=请输入真实姓名 +uil.text.index=序号 +uil.text.role=用户角色 +uil.text.dept=用户部门 +uil.text.createDate=创建时间 +uil.text.state=状态 +uil.text.option=操作 +uil.text.updateRecord=修改信息 +uil.text.updatePassword=修改密码 +uil.text.noRecord=没有记录 + + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +#guide目录下 +##################################################################### +#configGuide.jsp页面 +cg.message.title=添加节点信息 +cg.text.userGroup=用户组 +cg.text.room=机房 +cg.text.box=机柜 +cg.text.nodes=节点组/节点 +cg.text.indecate=做任务请到5,做数据监测请到6 +cg.text.mission=任务 +cg.text.decateType=检测类别 +cg.text.decateDate=监测数据 +cg.text.decateSets=监测设置 +cg.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + + +#guideIndex.jsp页面 +gi.message.title=向导设置页 +gi.text.title=NMS向导设置流程图 + + +#monitorConfig.jsp页面 +mc.message.title=添加节点信息 +mc.message.nodeGroupId=请选择节点组 +mc.message.sureNodeExists=确定有您需要的节点 +mc.message.toAddNode=请为节点组添加节点 +mc.text.userGroup=用户组 +mc.text.room=机房 +mc.text.box=机柜 +mc.text.nodeGroup=节点组 +mc.text.node=节点 +mc.text.decateType=检测类别 +mc.text.decateDate=监测数据 +mc.text.decateSets=监测设置 +mc.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#taskConfig.jsp页面 +tc.message.title=添加节点信息 +tc.message.nodeGroupId=请选择节点组 +tc.message.sureNodeExists=确定有您需要的节点 +tc.message.toAddNode=请为节点组添加节点 +tc.text.userGroup=用户组 +tc.text.room=机房 +tc.text.box=机柜 +tc.text.nodeGroup=节点组 +tc.text.node=节点 +tc.text.mission=任务 +tc.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +#node目录下 +##################################################################### +#addNodeInfo.jsp页面 +ani.message.title=添加节点信息 +ani.text.nodeIp=节点IP +ani.text.nodeName=节点名称 +ani.text.title=新增节点信息 +ani.text.nodeType=节点类型 +ani.message.computer=计算机 +ani.text.nodeUType=节点厚度(U位) +ani.text.nodeDesc=节点描述 +ani.text.nodeState=节点状态 +ani.message.nodeState0=正常 +ani.message.nodeState1=停用 +ani.text.snmpVersion=SNMP版本 +ani.text.submit=提交 +ani.text.reset=重置 +ani.text.back=返回 + +#nodeInfoList.jsp页面 +nil.message.title=节点信息 +nil.message.success=操作成功! +nil.message.faild=操作失败! +nil.message.importFile=请选择导入的文件 +nil.message.importCorrectFile=请选择正确的导入文件类型 +nil.message.sureToImport=确定导入吗? +nil.message.inputInfo=输入为特殊字符,请重新输入! +nil.text.nodeName=节点名称 +nil.message.nodeName=请输入节点名称 +nil.text.nodeDesc=节点描述 +nil.message.nodeDesc=请输入节点描述 +nil.text.importXls=导入excel +nil.button.importXls=导入 +nil.button.add=新增 +nil.button.downloadExample=下载模板 +nil.button.back=返回 +nil.text.index=序号 +nil.text.option=操作 +nil.text.nodeIp=节点IP +nil.text.systemId=所属系统 +nil.text.nodeGroup=所属节点组 +nil.text.createDate=创建时间 +nil.text.update=修改 +nil.text.stop=停用 +nil.text.start=启用 +nil.text.noRecord=没有记录 + +#showImportError.jsp页面 +sierr.message.title=错误信息页面 +sierr.text.title=报错信息 +sierr.text.nodeIp=节点IP +sierr.text.nodeName=节点名称 +sierr.text.nodeDesc=节点描述 +sierr.text.nodeType=节点类型 +sierr.text.nodeState=节点状态 +sierr.text.showError=报错信息 +sierr.button.back=返回 + +#updateNodeInfo.jsp页面 +uni.message.title=修改节点信息 +uni.text.nodeIp=节点IP +uni.text.nodeName=节点名称 +uni.text.title=修改节点信息 +uni.text.nodeType=节点类型 +uni.message.computer=计算机 +uni.message.nodeUType=节点厚度(U位) +uni.text.nodeDesc=节点描述 +uni.text.nodeState=节点状态 +uni.message.nodeState0=正常 +uni.message.nodeState1=停用 +uni.text.snmpVersion=SNMP版本 +uni.text.submit=提交 +uni.text.reset=重置 +uni.text.back=返回 + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +#nodegroup目录下 +##################################################################### +#addNodegroupInfo.jsp页面 +angi.message.title=添加节点组信息 +angi.text.groupName=组名称 +angi.text.systemId=业务系统 +angi.message.noGroupBelong=您不属于任一用户组,无权限新增该类节点组! +angi.message.groupSelect=请选择用户组! +angi.text.title=节点组基本信息 +angi.text.groupType=组类型 +angi.message.groupType0=常态 +angi.message.groupType1=临时 +angi.message.systemId=请选择业务系统 +angi.text.isValid=是否生效 +angi.message.valid=生效 +angi.message.invalid=失效 +angi.text.viewLevel=查看权限 +angi.message.publisher=发布人查看 +angi.message.publisherGroup=发布人所在组查看 +angi.message.allInSys=系统内全部人员查看 +angi.text.usergroup=用户组 +angi.message.usergroup=请选择用户组 +angi.text.groupDesc=组描述 +angi.text.submit=提交 +angi.text.reset=重置 +angi.text.back=返回 + +#detailNodegroupInfo.jsp页面 +dngi.message.title=查看节点组信息 +dngi.text.title=节点组基本信息 +dngi.text.groupName=组名称 +dngi.text.groupType=组类型 +dngi.message.groupType0=常态 +dngi.message.groupType1=临时 +dngi.text.viewLevel=查看权限 +dngi.message.publisher=发布人查看 +dngi.message.publisherGroup=发布人所在组查看 +dngi.message.allInSys=系统内全部人员查看 +dngi.text.isValid=是否生效 +dngi.message.valid=生效 +dngi.message.invalid=失效 +dngi.text.systemId=所属系统 +dngi.text.createTime=添加时间 +dngi.text.userGroupIdName=所属用户组 +dngi.text.groupDesc=组描述 +dngi.text.nodeList=节点组下的所有节点信息 +dngi.text.index=序号 +dngi.text.nodeIp=节点IP +dngi.text.nodeName=节点名称 +dngi.text.nodeDesc=节点描述 +dngi.text.nodeState=节点状态 +dngi.message.nodeState0=正常 +dngi.message.nodeState1=停用 +dngi.text.noRecord=没有记录 +dngi.text.back=返回 + +#nodegroupInfoList.jsp页面 +ngil.message.title=节点组下节点管理信息 +ngil.message.success=操作成功! +ngil.message.faild=操作失败! +ngil.message.updateNodeGroup=请选择一行记录! +ngil.message.SelectOne=请至少选择一行记录! +ngil.message.includeUnusingNode=包含已失效的节点组,请重新选择! +ngil.message.startNodeGroup=包含生效的节点组,请重新选择! +ngil.message.inputInfo=输入为特殊字符,请重新输入! +ngil.text.groupName=节点组名称 +ngil.message.groupName=请输入节点组名称 +ngil.text.index=序号 +ngil.text.nodeGroup=节点组 +ngil.text.nodeGroupType=组类型 +ngil.text.viewLevel=查看权限 +ngil.text.createTime=创建时间 +ngil.text.state=状态 +ngil.message.nodeGroupType0=常态 +ngil.message.nodeGroupType1=临时 +ngil.message.publisher=发布人查看 +ngil.message.publisherGroup=发布人所在组查看 +ngil.message.allInSys=系统内全部人员查看 +ngil.message.isValid0=生效 +ngil.message.isValid1=失效 +ngil.text.noRecord=没有记录 + +#updateNodegroupInfo.jsp页面 +ungi.message.title=修改节点组信息 +ungi.text.groupName=组名称 +ungi.text.systemId=业务系统 +ungi.message.noGroupBelong=您不属于任一用户组,无权限修改该类节点组! +ungi.message.selectGroup=请选择用户组! +ungi.text.title=节点组基本信息 +ungi.text.groupType=组类型 +ungi.message.groupType0=常态 +ungi.message.groupType1=临时 +ungi.message.systemId=请选择业务系统 +ungi.text.isValid=是否生效 +ungi.message.valid=生效 +ungi.message.invalid=失效 +ungi.text.viewLevel=查看权限 +ungi.message.publisher=发布人查看 +ungi.message.publisherGroup=发布人所在组查看 +ungi.message.allInSys=系统内全部人员查看 +ungi.text.usergroup=用户组 +ungi.message.usergroup=请选择用户组 +ungi.text.groupDesc=组描述 +ungi.button.submit=提交 +ungi.button.reset=重置 +ungi.button.back=返回 + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +#nodeGroupManage目录下 +#node目录下 +##################################################################### +#addNodeInfo.jsp页面 +addNodeInfo.message.title=添加节点信息 +addNodeInfo.text.nodeIp=节点IP +addNodeInfo.text.nodeMac=节点MAC +addNodeInfo.text.nNa=节点名称 +addNodeInfo.text.nodeBoxIspn=机柜编号 +addNodeInfo.text.nodeUType=节点厚度(U位) +addNodeInfo.text.nodeBeginUType=机柜起始U位 +addNodeInfo.message.nodeBeginUType=请选择网元类型 +addNodeInfo.message.nodeGroup=该节点组存在相同的IP +addNodeInfo.message.nodeIp=节点IP已存在 +addNodeInfo.message.selectDefault=请选择 +addNodeInfo.message.nodeUType=节点厚度(U位),请输入数字! +addNodeInfo.button.back=返回 +addNodeInfo.text.title=新增节点信息 +addNodeInfo.text.nodeType=节点类型 +addNodeInfo.message.nodeType0=服务器 +addNodeInfo.message.nodeType1=网元 +addNodeInfo.text.networElementType=网元类型 +addNodeInfo.text.nodeUserName=用户名 +addNodeInfo.text.nodePassword=密码 +addNodeInfo.message.nodeBoxIspn=请输入机柜编号 +addNodeInfo.text.snmpVersion=SNMP版本 +addNodeInfo.text.nodeIpInfo=节点IP信息 +addNodeInfo.text.nodeDesc=节点描述 +addNodeInfo.button.submit=提交 +addNodeInfo.button.reset=重置 + +#detailNodeInfo.jsp页面 +dni.message.title=节点信息 +dni.message.nodeType0=未采集到相关数据 +dni.message.nodeType1=该节点为交换机暂无数据 +dni.button.back=返回 +dni.text.title=节点系统信息 +dni.text.hostName=主机名称 +dni.text.operateSystem=操作系统 +dni.text.cpuCnt=CPU数量 +dni.text.cpuMhz=CPU主频(MHz) +dni.text.memorySize=内存大小(GB) +dni.text.diskSize=硬盘大小(GB) +dni.text.swapSize=SWAP大小 +dni.text.netCnt=网卡个数 +dni.text.dataCheckTime=信息采集时间 +dni.text.dataArriveTime=信息入库时间 +dni.text.diskInfo=硬盘详细信息 +dni.message.noDataGetFromDisk=未采集到硬盘数据 +dni.text.index=序号 +dni.text.diskRang=硬盘分区 +dni.text.rangSize=分区大小(G) +dni.text.netInfo=网卡详细信息 +dni.message.noDataGetFromNet=未采集到网卡数据 +dni.text.netName=网卡名称 +dni.text.netState=网卡状态 +dni.text.netSpeed=网卡带宽(单位: Mbps) +dni.text.netSubmask=子网掩码 +dni.text.netGateway=网关 +dni.text.netMac=MAC地址 + + +#nodeInfoList.jsp页面 +nodeInfo.message.title=节点信息 +nodeInfo.message.success=操作成功! +nodeInfo.message.faild=操作失败! +nodeInfo.message.selectFile=请选择导入的文件 +nodeInfo.message.selectFileType=请选择正确的导入文件类型 +nodeInfo.message.isImport=导入节点,你确定导入吗? +nodeInfo.message.inputInfo=输入为特殊字符,请重新输入! +nodeInfo.message.warning=节点操作已完成,是否继续维护数据? +nodeInfo.message.hint=提示 +nodeInfo.button.downloadExample=下载模板 +nodeInfo.text.importXls=导入excel +nodeInfo.button.importXls=导入 +nodeInfo.button.showDiv=导出 +nodeInfo.button.back=返回 +nodeInfo.button.add=新增 +nodeInfo.text.nodeIp=节点IP +nodeInfo.message.nodeIp=请输入节点IP +nodeInfo.text.nodeName=节点名称 +nodeInfo.message.nodeName=请输入节点名称 +nodeInfo.text.index=序号 +nodeInfo.text.nodeType=节点类型 +nodeInfo.text.nodeHight=节点高度 +nodeInfo.text.systemId=所属系统 +nodeInfo.text.nodeGroup=所属节点组 +nodeInfo.text.createTime=创建时间 +nodeInfo.text.operation=操作 +nodeInfo.message.specialDevice=网元:专用设备 +nodeInfo.message.diskArray=网元:盘阵 +nodeInfo.message.blockRouter=网元:封堵路由器 +nodeInfo.message.netElements=其他网元 +nodeInfo.text.server=服务器 +nodeInfo.text.updateInfo=修改信息 +nodeInfo.message.downline=下线 +nodeInfo.message.online=上线 +nodeInfo.text.systemInfo=系统信息 +nodeInfo.text.downline=下线 +nodeInfo.text.online=上线 +nodeInfo.text.noRecord=没有记录 +nodeInfo.button.emportCurrentXls=导出当前页数据 +nodeInfo.button.emportAllXls=导出全部数据 +nodeInfo.text.closeWindow=关闭窗口 + +#nodeInfoListIn.jsp页面 +nili.message.title=节点信息 +nili.message.inputInfo=输入为特殊字符,请重新输入! +nili.text.nodeState=在线状态 +nili.message.selectDefault=请选择 +nili.message.downline=下线 +nili.message.online=上线 +nili.text.nodeIp=节点IP +nili.message.nodeIp=请输入节点IP +nili.text.nodeName=节点名称 +nili.message.nodeName=请输入节点名称 +nili.text.index=序号 +nili.text.nodeType=节点类型 +nili.text.nodeHight=节点高度 +nili.text.systemId=所属系统 +nili.text.nodeGroup=所属节点组 +nili.text.createTime=创建时间 +nili.message.specialDevice=网元:专用设备 +nili.message.diskArray=网元:盘阵 +nili.message.blockRouter=网元:封堵路由器 +nili.message.netElements=其他网元 +nili.text.server=服务器 +nili.text.noRecord=没有记录 + +#showImportError.jsp页面 +showErr.message.title=错误信息页面 +showErr.text.title=报错信息 +showErr.text.nodeIp=节点IP +showErr.text.nodeName=节点名称 +showErr.text.nodeDesc=节点描述 +showErr.text.nodeType=节点类型 +showErr.text.nodeState=节点状态 +showErr.text.showError=报错信息 +showErr.button.back=返回 + +#updateNodeInfo.jsp页面 +updatenode.message.title=修改节点信息 +updatenode.text.nodeIp=节点IP +updatenode.text.nodeMac=节点MAC +updatenode.text.nNa=节点名称 +updatenode.text.nodeBoxIspn=机柜编号 +updatenode.text.nodeUType=节点厚度(U位) +updatenode.text.nodeBeginUType=机柜起始U位 +updatenode.message.nodeBeginUType=请选择网元类型 +updatenode.message.selectDefault=请选择 +updatenode.message.nodeUType=节点厚度(U位),请输入数字! +updatenode.message.nodeIsExists=节点IP已存在 +updatenode.message.nodeRepeat=该节点组存在相同的IP +updatenode.buttone.back=返回 +updatenode.text.title=修改节点信息 +updatenode.text.nodeType=节点类型 +updatenode.message.nodeType0=服务器 +updatenode.message.nodeType1=网元 +updatenode.text.networElementType=网元类型 +updatenode.text.nodeUsername=用户名 +updatenode.text.nodePassword=密码 +updatenode.message.nodeBoxIspn=请输入机柜编号 +updatenode.text.snmpVersion=SNMP版本 +updatenode.text.nodeIpInfo=节点IP信息 +updatenode.text.nodeDesc=节点描述 +updatenode.text.nodeState=节点状态 +updatenode.message.online=上线 +updatenode.message.downline=下线 +updatenode.button.submit=提交 +updatenode.button.reset=重置 + +#nodegroupInfoList.jsp页面 +nginfo.message.title=节点组信息 +nginfo.message.success=操作成功! +nginfo.message.faild=操作失败! +nginfo.message.groupInfo=节点组信息 +nginfo.message.nodeGroupId=请在菜单中选择一项要修改的节点组! +nginfo.message.editGroupInfo=修改节点组信息 +nginfo.message.addGroupInfo=新增节点组信息 +nginfo.message.selectParent=请在菜单中选择一项作为父节点组! +nginfo.message.addSubNode=新增子节点组信息 +nginfo.text.addSubNode=组名称 +nginfo.message.inputGroupName=组名称存在特殊字符,请重新输入 +nginfo.text.systemId=业务系统 +nginfo.message.startNodeGroup1=请至少选择一行记录! +nginfo.message.startNodeGroup2=包含生效的节点组,请重新选择! +nginfo.message.startNodeGroup3=试图启用其父级节点组无效的节点组,故无法启动,请重新选择! +nginfo.message.warning=是否同时启用其子节点组? +nginfo.message.hint=提示 +nginfo.message.nodeManage1=请选择一行记录! +nginfo.message.nodeManage2=所选记录为非叶子节点组! +nginfo.message.nodeManageInDetail1=请选择一行记录! +nginfo.message.nodeManageInDetail2=所选记录为非叶子节点组! +nginfo.error.selectFile=请选择导入的文件 +nginfo.error.selectFileType=请选择正确的导入文件类型 +nginfo.error.isImport=导入节点组,你确定导入吗? +nginfo.message.warning1=节点组操作已完成,是否继续维护数据? +nginfo.button.downloadExample=下载模板 +nginfo.text.importXls=导入excel +nginfo.button.importXls=导入 +nginfo.button.showDiv=导出 +nginfo.text.nodeGroup=节点组 +nginfo.text.ShowStopNGroup=显示下线节点组 +nginfo.text.nodeGroupInfo=节点组信息 +nginfo.message.nodeGroupList=节点组列表 +nginfo.button.addSubNodeGroup=新增子节点组 +nginfo.button.update=修改 +nginfo.button.mngNode=节点管理 +nginfo.text.title=新增节点组信息 +nginfo.text.groupName=组名称 +nginfo.text.groupType=组类型 +nginfo.message.groupType0=常态 +nginfo.message.groupType1=临时 +nginfo.message.systemId=请选择业务系统 +nginfo.text.isValid=是否生效 +nginfo.message.isValid1=生效 +nginfo.message.isValid0=失效 +nginfo.text.groupDesc=组描述 +nginfo.button.submit=提交 +nginfo.button.reset=重置 +nginfo.button.back=返回 +nginfo.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 + +#toSelectNodeAndNodeGroup.jsp页面 +tsnang.message.title=节点组信息 +tsnang.message.netElement=此监测类别设置不能针对网元 +tsnang.text.netElement=网元 +tsnang.text.server=服务器 +tsnang.message.selectOne=请至少选择一行记录! +tsnang.message.selectNodeGroup=请至少选择一个含有节点的节点组! +tsnang.message.muchNode=选中的节点过多,操作无法继续 +tsnang.message.onlyServer=任务新增只能针对服务器 +tsnang.message.noRecord=没有记录 +tsnang.text.selectNodeGroup=节点组选择 +tsnang.text.setDisabled=按节点组 +tsnang.text.setNoDisabled=按节点 +tsnang.text.index=序号 +tsnang.text.nodeGroup=节点组 +tsnang.text.nodeIp=节点IP +tsnang.text.nodeType=类型 +tsnang.text.selectAll=全选 +tsnang.text.reverse=反选 +tsnang.text.operateSystem=操作系统 +tsnang.text.noRecord=没有记录 +tsnang.message.dcControlIp=下列节点未包含在DC分管IP中 +tsnang.message.nodeName=节点名称 +tsnang.button.submit=提交 +tsnang.button.close=关闭 + +#toSelectNodeGroup.jsp页面 +tsng.message.title=节点组信息 +tsng.message.selectOne=请至少选择一行记录! +tsng.button.select=选择 +tsng.button.close=关闭 +tsng.button.nodeGroup=节点组选择 + + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +#server目录下 +##################################################################### +#addServerInfo.jsp页面 +asi.message.title=添加服务器信息 +asi.message.hasIp=服务器名称或IP已存在,不可重复,请修改 +asi.message.faild=操作异常! +asi.text.serverName=服务器名称 +asi.text.serverDesc=服务器描述 +asi.text.serverIp=服务器IP +asi.message.serverName=服务器名称存在特殊字符,请重新输入 +asi.text.startIP=起始IP +asi.text.endIP=结束IP +asi.message.ipRang=起始IP应不大于结束IP +asi.message.delete=删除 +asi.message.ipRepeat=存在IP交叉重复 +asi.message.ipRepeat.and=与 +asi.message.ipRepeat.with=与 +asi.button.back=返回 +asi.text.title=新增服务器信息 +asi.text.configIp=配置分管IP +asi.message.configIp=配置IP +asi.message.getIp=已分配IP +asi.button.add=添加 +asi.message.state0=状态:有效 +asi.message.state1=状态:无效 +asi.button.submit=提交 +asi.button.reset=重置 + +#detailServerInfo.jsp页面 +dsi.message.title=添加业务系统信息 +dsi.button.back=返回 +dsi.text.title=服务器信息 +dsi.text.serverName=服务器名称 +dsi.text.serverDesc=服务器描述 +dsi.text.serverIp=服务器IP +dsi.text.serverState=服务器状态 +dsi.message.serverState0=启用 +dsi.message.serverState1=停用 +dsi.text.configIp=配置分管IP + +#serverInfoList.jsp页面 +serverinfo.message.title=DataController管理 +serverinfo.message.success=操作成功! +serverinfo.message.faild=操作失败! +serverinfo.message.selectOne=请选择一行记录! +serverinfo.message.includeStop=包含已停用的业务系统,请重新选择! +serverinfo.message.includeStart=包含已启用的业务系统,请重新选择! +serverinfo.message.inputInfo=输入为特殊字符,请重新输入! +serverinfo.message.selectFile=请选择导入的文件 +serverinfo.message.selectFileType=请选择正确的导入文件类型 +serverinfo.message.isImport=导入DC,你确定导入吗? +serverinfo.message.selectFile1=请选择导入的文件 +serverinfo.message.selectFileType1=请选择正确的导入文件类型 +serverinfo.message.isImport1=导入节点,你确定导入吗? +serverinfo.text.serverName=服务器名称 +serverinfo.message.serverName=请输入服务器名称 +serverinfo.text.serverIp=服务器IP +serverinfo.message.serverIp=服务器IP +serverinfo.button.downloadExample=下载模板 +serverinfo.text.importXls=导入excel +serverinfo.button.importXls=导入 +serverinfo.button.showDiv=导出 +serverinfo.text.index=序号 +serverinfo.text.createTime=创建时间 +serverinfo.text.isOnline=是否在线 +serverinfo.text.configIp=配置分管IP +serverinfo.message.Y=是 +serverinfo.message.N=否 +serverinfo.button.downloadExampleUpdate=下载模板 +serverinfo.button.showDiv1=导入 +serverinfo.button.emportXlsUpdate=导出 +serverinfo.text.noRecord=没有记录 +serverinfo.button.emportCurrentXls=导出当前页数据 +serverinfo.button.emportAllXls=导出全部数据 +serverinfo.text.closeWindow=关闭窗口 +serverinfo.button.importXlsAdd=增量导入 +serverinfo.button.importXlsAll=全量导入 + +#updateServerInfo.jsp页面 +upserver.message.title=修改服务器信息 +upserver.message.repeat=服务器名称或IP已存在,不可重复,请修改 +upserver.message.faild=操作异常! +upserver.text.serverName=服务器名称 +upserver.text.serverDesc=服务器描述 +upserver.message.serverName=服务器名称存在特殊字符,请重新输入 +upserver.text.serverIp=服务器IP +upserver.text.startIP=起始IP +upserver.text.endIP=结束IP +upserver.message.ipInfo=起始IP应不大于结束IP +upserver.message.delete=删除 +upserver.message.ipRepeat=存在IP交叉重复 +upserver.message.ipRepeat.and=与 +upserver.message.ipRepeat.with=与 +upserver.button.back=返回 +upserver.text.title=修改服务器信息 +upserver.text.serverState=服务器状态 +upserver.text.configIp=配置分管IP +upserver.message.configIp=配置IP +upserver.message.hasip=已分配IP +upserver.button.add=添加 +upserver.message.state0=状态:有效 +upserver.message.state1=状态:无效 +upserver.button.submit=提交 +upserver.button.reset=重置 + + +#WebRoot目录下 +#page目录下 +#systemManage目录下 +##################################################################### +#addSystemInfo.jsp页面 +addsysinfo.message.title=添加业务系统信息 +addsysinfo.message.sysExists=系统已存在,请重新输入! +addsysinfo.message.faild=操作异常! +addsysinfo.text.systemName=系统名称 +addsysinfo.text.systemDesc=系统描述 +addsysinfo.text.systemIp=注册IP +addsysinfo.text.systemPort=注册端口 +addsysinfo.message.systemName=系统名称存在特殊字符,请重新输入 +addsysinfo.button.back=返回 +addsysinfo.text.title=新增业务系统信息 +addsysinfo.text.isMaster=主控/子系统 +addsysinfo.text.master=主控系统 +addsysinfo.text.slave=子系统 +addsysinfo.text.isOnline=是否在线 +addsysinfo.message.Y=是 +addsysinfo.text.selectUserGroup=选择用户组 +addsysinfo.text.userGroupList=用户组列表 +addsysinfo.text.submit=提交 +addsysinfo.text.reset=重置 + +#detailSystemInfo.jsp页面 +detailsys.message.title=网络管理系统 +detailsys.button.back=返回 +detailsys.text.title=业务系统基本信息 +detailsys.text.systemName=系统名称 +detailsys.text.systemDesc=系统描述 +detailsys.text.systemCreatetime=添加时间 +detailsys.text.systemState=系统状态 +detailsys.message.systemState0=启用 +detailsys.message.systemState1=停用 +detailsys.text.isMaster=(主控/子)系统 +addsysinfo.text.sysUserGroup=业务系统下的用户组 +addsysinfo.text.openAll=打开所有 +addsysinfo.text.closeAll=关闭所有 +addsysinfo.message.showTipMsg=用户组:有权限操作本业务系统的相关功能的用户集合,同一用户组的用户拥有该用户组的所有权限。一个用户组可以属于多个业务系统,一个业务系统也可以包含多个用户组。 +addsysinfo.message.brower=浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。 +addsysinfo.message.showTipMsg2=节点组:业务系统的各个组成节点按功能、地域等一定的特点进行分组,每个节点组包含N个节点。每个节点可以属于多个节点组,但是一个节点组不可属于多个系统。 + +#groupNodeList.jsp页面 +gnl.message.title=节点组下的节点信息 +gnl.text.index=序号 +gnl.text.nodeIp=节点IP +gnl.text.nodeName=节点名称 +gnl.text.nodeDesc=节点描述 +gnl.text.createTime=添加时间 +gnl.text.nodeState=节点状态 +gnl.message.nodeState0=正常 +gnl.message.nodeState1=停用 +gnl.text.noRecord=没有记录 + +#groupUserList.jsp页面 +gul.message.title=用户组下的用户信息 +gul.text.index=序号 +gul.text.userId=用户编号 +gul.text.username=用户名称 +gul.text.createTime=创建时间 +gul.text.isVaild=是否有效 +gul.message.isVaild0=有效 +gul.message.isVaild1=无效 +gul.text.noRecord=没有记录 + +#groupUserListForGuide.jsp页面 +gulfg.message.title=用户组下的用户信息 +gulfg.text.index=序号 +gulfg.text.userId=用户编号 +gulfg.text.username=用户名称 +gulfg.text.createTime=创建时间 +gulfg.text.isVaild=是否有效 +gulfg.message.isVaild0=有效 +gulfg.message.isVaild1=无效 +gulfg.text.noRecord=没有记录 + +#systemInfoList.jsp页面 +sysinfolist.message.title=业务系统管理 +sysinfolist.message.success=操作成功! +sysinfolist.message.faild=操作失败! +sysinfolist.message.selectOne=请选择一行记录! +sysinfolist.message.includeStop=包含已停用的业务系统,请重新选择! +sysinfolist.message.includeStart=包含已启用的业务系统,请重新选择! +sysinfolist.message.inputInfo=输入为特殊字符,请重新输入! +sysinfolist.message.warning=业务系统操作已完成,是否继续维护数据? +sysinfolist.message.hint=提示 +sysinfolist.text.systemName=系统名称 +sysinfolist.message.systemName=请输入系统名称 +sysinfolist.text.systemDesc=系统描述 +sysinfolist.message.systemDesc=请输入系统描述 +sysinfolist.text.index=序号 +sysinfolist.text.isMaster=主控/子系统 +sysinfolist.text.createTime=创建时间 +sysinfolist.text.isOnline=是否在线 +sysinfolist.text.master=主控系统 +sysinfolist.text.slave=子系统 +sysinfolist.message.Y=是 +sysinfolist.message.N=否 +sysinfolist.text.noRecord=没有记录 + + +#updateSystemInfo.jsp页面 +upsysinfo.message.title=修改业务系统信息 +upsysinfo.message.repeat=系统已存在,请重新输入! +upsysinfo.message.faild=操作异常! +upsysinfo.text.systemName=系统名称 +upsysinfo.text.systemDesc=系统描述 +upsysinfo.message.systemName=系统名称存在特殊字符,请重新输入 +upsysinfo.button.back=返回 +upsysinfo.text.title=修改业务系统信息 +upsysinfo.text.isMaster=主控/子系统 +upsysinfo.text.master=主控系统 +upsysinfo.text.slave=子系统 +upsysinfo.text.isOnline=是否在线 +upsysinfo.message.Y=是 +upsysinfo.message.N=否 +upsysinfo.text.selectUser=选择用户组 +upsysinfo.message.selectUser=用户组列表 +upsysinfo.button.submit=提交 +upsysinfo.button.reset=重置 + + + +####################################sql######################################################################## + +#check_type_info +#Tue Apr 17 17:35:58 CST 2018 +check_type_info.memory.CHECK_TYPE_NAME1=内存监测 +check_type_info.systemdate.CHECK_TYPE_NAME1=时钟同步监测 +check_type_info.systeminfo.CHECK_TYPE_NAME1=系统基础信息 +check_type_info.dpSystem.CHECK_TYPE_NAME1=迪普 +check_type_info.dpSystemPowerEntry.CHECK_TYPE_NAME1=DP电源 +check_type_info.SNMP_TRAP.TABLE_DESC=snmp trap (snmp 主动告警信息表)预置 +check_type_info.process.TABLE_DESC=预设进程信息 +check_type_info.NMSClient.TABLE_DESC=Agent端监控服务是否启动监控任务表 +check_type_info.systeminfo.TABLE_DESC=服务器系统信息 +check_type_info.switchport.CHECK_TYPE_NAME1=交换机监测 +check_type_info.net.CHECK_TYPE_NAME1=网络情况监测 +check_type_info.SYSTEM.TABLE_DESC=获取目标主机基本xinxi +check_type_info.disk.CHECK_TYPE_NAME1=硬盘监测 +check_type_info.dpSystemStatus.CHECK_TYPE_NAME1=DP系统状态 +check_type_info.dpSystemFanEntry.CHECK_TYPE_NAME1=DP风扇 +check_type_info.SNMP_TRAP.CHECK_REMARK=snmp trap (snmp 主动告警信息表)预置表,不可修改 +check_type_info.NMSClient.CHECK_TYPE_NAME1=握手监测 +check_type_info.PING.CHECK_TYPE_NAME1=PING监测 +check_type_info.dpSlotEntry.CHECK_TYPE_NAME1=DP设备板槽 +check_type_info.cpu.CHECK_TYPE_NAME1=CPU监测 +check_type_info.dpBoardStatusEntry.CHECK_TYPE_NAME1=DP单板温度 +check_type_info.process.CHECK_TYPE_NAME1=进程监测 +#data_police_relation +#Tue Apr 17 17:37:19 CST 2018 +data_police_relation.2.POLICE_SHOW_INFO=服务节点NC不可用 +POLICE_UNIT=不可达 +#data_police_relation +#Mon May 28 16:17:02 CST 2018 +data_police_relation.100000.POLICE_SHOW_INFO=用户使用率超过 2% +#detection_set_info +#Tue Apr 17 17:38:53 CST 2018 +detection_set_info.nmsclient.PROCESS_IDEN_NAME=NC通讯监测 +detection_set_info.switchport.PROCESS_IDEN_NAME=交换机端口监测 +detection_set_info.net.PROCESS_IDEN_NAME=网络监测 +detection_set_info.systemdate.PROCESS_IDEN_NAME=时钟同步监测 +detection_set_info.memory.PROCESS_IDEN_NAME=内存监测 +detection_set_info.SYSTEM.PROCESS_IDEN_NAME=网元系统信息 +detection_set_info.servicessysinfo.PROCESS_IDEN_NAME=服务器系统信息 +detection_set_info.cpu.PROCESS_IDEN_NAME=CPU监测 +detection_set_info.DPPOWER.PROCESS_IDEN_NAME=DP电源1 +detection_set_info.DPFAN.PROCESS_IDEN_NAME=DP风扇 +detection_set_info.dpslotentry.PROCESS_IDEN_NAME=迪普设备板槽 +detection_set_info.disk.PROCESS_IDEN_NAME=磁盘监测 +#device_brand_info +#Tue Apr 17 17:40:30 CST 2018 +device_brand_info.ZTE.device_rand_name=中兴 +device_brand_info.DPtech.device_brand_desc=迪普 +device_brand_info.H3C.device_rand_name=华三 +device_brand_info.ZTE.device_brand_desc=中兴 +device_brand_info.HUAWEI.device_brand_desc=华为 +device_brand_info.HUAWEI.device_rand_name=华为 +device_brand_info.DPtech.device_rand_name=迪普分流设备 +device_brand_info.H3C.device_brand_desc=华三 +#device_type_info +#Tue Apr 17 17:40:30 CST 2018 +device_type_info.device_desc.DPX8000-A12=分流设备 +device_type_info.device_desc.MPUA=MPUA主控板在DPX8000系列产品中起主导作用,实现系统的初始化配置、管理以及控制报文的处理等。 +device_type_info.device_desc.PF4XPS8XGES-E=分流业务板(PF4XPS8XGES-E),插在业务槽位,提供4个XFP 10GE POS光接口,8个万兆以太网光接口(SFP+)。 +device_type_info.device_desc.8XGEP-D=接口板(8XGEP-D)插在业务槽位,提供8个XFP 10GE以太网光接口。 +device_type_info.device_desc.defaultSlot=默认槽位 +device_type_info.device_desc.slot=槽位 +device_type_info.device_desc.port=端口 +device_type_info.device_desc.boardDefaultPort=主控板默认端口 +device_type_info.device_desc.switch=交换机 +device_type_info.device_desc.switchPort=交换机端口 +device_type_info.device_desc.fanLight=风扇指示灯 +device_type_info.device_desc.fanLight1=风扇指示灯(暂时没用) +device_type_info.device_desc.sourceLight=电源指示灯 +device_type_info.device_desc.MPUA_SUB=虚拟的第三级设备(测试用) +device_type_info.device_desc.whiteBoard=空白版 +device_type_info.device_desc.ZXR10-T240G=中兴t240G +device_type_info.device_desc.ZXR10-T240G-BLANK=中兴空白板 +device_type_info.device_desc.BLANK=空白卡 +device_type_info.device_desc.control=控制卡 +device_type_info.device_desc.board=板卡 +device_type_info.device_desc.port=口 +device_type_info.device_desc.box=机框 +device_type_info.device_desc.controlBoard=控制板卡 +device_type_info.device_desc.SR6602=H3C SR6602封堵路由器 +device_type_info.device_desc.PF4XPS12XGES-4P12E=迪普可配板卡,4个POS口,12个GE口 +device_type_info.device_desc.controlSlot=主板槽位 +device_type_info.device_desc.10GBASE-R=分流业务板(10GBASE-R),插在业务槽位,提供48个tengige接口 +device_type_info.device_desc.N-MPUA=N-MPUA主控板在DPX19000系列产品中起主导作用,实现系统的初始化配置、管理以及控制报文的处理等。 + +#metadata +#Tue Apr 17 18:06:30 CST 2018 +metadata.SWAP_SIZE.filed_comments=SWAP大小(单位\: G) +metadata.sysContact.table_comments=获取目标主机基本信息 +metadata.OPERATE_SYSTEM.filed_comments=操作系统和发行版本 +metadata.dpSlotIsMain.filed_comments=设备板子是否为主板 +metadata.ifOutOctets.filed_comments=输出字节数 +metadata.TX_DROPPED.filed_comments=发送时丢弃的包数 +metadata.TX_ERRORS.filed_comments=发送数据包时的错误数 +metadata.ifInOctets.filed_comments=接收的字节 +metadata.CPU_USED_PERC.filed_comments=进程的CPU使用率 +metadata.ifPhysAddress.filed_comments=mac地址 +metadata.TOTAL_DISK_SIZE.filed_comments=磁盘总容量(G) +metadata.dpCpuRatio30s.filed_comments=30秒内CPU利用率 +metadata.CPU_CNT.filed_comments=CPU核数 +metadata.PRO_START_TIME.filed_comments=进程启动时间 +metadata.ifOutNUcastPkts_t1.filed_comments=非单向传输数据包 +metadata.ifOutDiscardsPerc.filed_comments=输出丢包率 +metadata.sysLocation.table_comments=获取目标主机基本信息 +metadata.dpSession.filed_comments=会话个数 +metadata.DISK_SIZE.filed_comments=硬盘总大小(单位\: G) +metadata.ifInOctets_t1.filed_comments=接收的字节 +metadata.Data_64_FLag.filed_comments=64位数据标识 +metadata.TX_DROP_PERC.filed_comments=发送丢包率 +metadata.dpCpuRatioAverage.filed_comments=CPU利用率平均值 +metadata.NET_CNT.filed_comments=逻辑网卡数量 +metadata.sysServices.table_comments=获取目标主机基本信息 +metadata.RX_PACKETS.filed_comments=接收的总包裹数 +metadata.dpCpuRatioPeak.filed_comments=CPU利用率峰值 +metadata.dpSlotStatus.filed_comments=设备槽的状态 +metadata.ifInDiscardsPerc.filed_comments=输入丢包率 +metadata.RX_BPS.filed_comments=输入bps(单位:bps) +metadata.dpMemRatio.filed_comments=内存利用率 +metadata.TX_ERRORS_PERC.filed_comments=发送错包率 +metadata.ifOutErrors.filed_comments=出站传输失败的数据包 +metadata.PACKETS_LOST_RATE.filed_comments=丢包率 +metadata.TIME_CONSUMING_MAX.filed_comments=最长耗时(单位毫秒) +metadata.ifLastChange.filed_comments=状态变更时间 +metadata.INOCTETSSPEED.filed_comments=输入速度 +metadata.WAIT_CPU_PERC.filed_comments=当前等待率(wa%) +metadata.ifInErrors.filed_comments=入站错误数据包 +metadata.OUTERRORSSCALE.filed_comments=输出错包率 +metadata.SYS_USED_CPU_PERC.filed_comments=系统使用率(sy%) +metadata.sysDescr.table_comments=获取目标主机基本信息 +metadata.dpMemRatioAverage.filed_comments=内存利用率平均值 +metadata.FREE_DISK_SIZE.filed_comments=磁盘空闲容量(G) +metadata.outPktsSpeed.filed_comments=发包速率 +metadata.ifOutQLen.filed_comments=输出信息包排列的长度(数据包内) +metadata.RX_PPS.filed_comments=输入pps(每秒接收包数) +metadata.ifAdminStatus.filed_comments=管理状态 +metadata.DETECT_DATE.filed_comments=监控机时间 +metadata.dpCpuTemperature.filed_comments=CPU温度 +metadata.ifInNUcastPkts.filed_comments=被承认的非单向传输数据包 +metadata.sysUpTime.table_comments=获取目标主机基本信息 +metadata.FREE_MEMORY_SIZE.filed_comments=空闲内存(freeG) +metadata.MEMORY_SIZE.filed_comments=内存大小(单位:G) +metadata.SEND_TIME.filed_comments=发送时间 +metadata.TX_BYTES.filed_comments=发送的总字节数 +metadata.ifHighSpeed.filed_comments=端口速率单位(Mbps) +metadata.dpMainboardTemperature.filed_comments=主板温度 +metadata.ifInUcastPkts.filed_comments=被承认的单向传输数据包 +metadata.DELAY_TIME.filed_comments=延迟时间 +metadata.dpCpuRatio.filed_comments=CPU利用率 +metadata.SEND_INFO.filed_comments=发送信息 +metadata.PACKETS_LOST.filed_comments=丢包个数 +metadata.USER_USED_CPU_PERC.filed_comments=用户使用率(us%) +metadata.NICE_PERC.filed_comments=用户空间进程CPU占用比(ni%) +metadata.ifType.filed_comments=端口类型 +metadata.PACKETS_RECEIVED.filed_comments=已接受包数 +metadata.DISK_ISWRITE.filed_comments=磁盘是否可写 +metadata.ifInNUcastPkts_t1.filed_comments=被承认的非单向传输数据包 +metadata.ifOutDiscards.filed_comments=出站被丢弃的数据包 +metadata.PACKETS_SEND.filed_comments=已发送包数 +metadata.dpMemRatioPeak.filed_comments=内存利用率峰值 +metadata.TX_BPS.filed_comments=输出bps(单位:bps) +metadata.ifOutOctets_t1.filed_comments=输出字节数 +metadata.RX_BYTES.filed_comments=接收到的总字节数 +metadata.NAME.filed_comments=网卡名称 +metadata.TOTAL_USED_PERC.filed_comments=总的使用率(%) +metadata.TIME_CONSUMING_AVER.filed_comments=平均耗时(单位毫秒) +metadata.MEM_USED_PERC.filed_comments=\ 进程的内存使用率 +metadata.TX_PACKETS.filed_comments=发送的总包裹数 +metadata.dpSlotDesc.filed_comments=设备热插拔板子的描述 +metadata.dpSlotPortNum.filed_comments=设备热插拔板子的端口数目 +metadata.SIZE_STOREDINPAGING_FILES.filed_comments=总交换空间(swaptotalG) +metadata.CPU_MHZ.filed_comments=主频 +metadata.USED_DISK_PERC.filed_comments=磁盘使用率(%) +metadata.PROC_PRIORITY.filed_comments=进程的优先级 +metadata.USED_MEMORY_PERC.filed_comments=内存使用率(%) +metadata.ifInUcastPkts_t1.filed_comments=被承认的单向传输数据包 +metadata.FREE_SPACE_INPAGING_FILES.filed_comments=可用交换空间(swapfreeG) +metadata.dpCpuRatio5min.filed_comments=300秒内CPU利用率 +metadata.dpSlotType.filed_comments=设备热插拔板子的类型 +metadata.RX_DROPPED.filed_comments=接收时丢弃的包数 +metadata.sysName.table_comments=获取目标主机基本信息 +metadata.OUTOCTETSSPEED.filed_comments=输出速度 +metadata.TOTAL_MEMORY_SIZE.filed_comments=总内存(totalG) +metadata.ifInUnknownProtos.filed_comments=入站不知名的数据包 +metadata.TIME_CONSUMING_MIN.filed_comments=最短耗时(单位毫秒) +metadata.RX_ERRORS.filed_comments=接收到的错误包数 +metadata.ifOutUcastPkts_t1.filed_comments=单向传输数据包 +metadata.ifOutUcastPkts.filed_comments=单向传输数据包 +metadata.INERRORSSCALE.filed_comments=输入错包率 +metadata.RX_ERRORS_PERC.filed_comments=接收错包率 +metadata.TX_PPS.filed_comments=输出pps(每秒发出包数) +metadata.TIME_DELAY.filed_comments=时间差(单位:分钟) +metadata.sysObjectID.table_comments=获取目标主机基本信息 +metadata.inPktsSpeed.filed_comments=收包速率 +metadata.FREE_CPU_PERC.filed_comments=当前空闲率(id%) +metadata.IS_IDENTICAL.filed_comments=是否可达 +metadata.ifOutNUcastPkts.filed_comments=非单向传输数据包 +metadata.USED_MEMORY_SIZE.filed_comments=已用内存(usedG) +metadata.HOST_NAME.filed_comments=主机名称 +metadata.ifSpecific.filed_comments=管理信息库(MIB)对端口详细的说明。 +metadata.SERVICE_DATE.filed_comments=服务机时间 +metadata.SPEED.filed_comments=带宽(单位:Mbps) +metadata.RETURN_TIME.filed_comments=返回时间 +metadata.dpSlotIndex.filed_comments=设备槽号 +metadata.ifSpeed.filed_comments=端口带宽 +metadata.ifDescr.filed_comments=描述 +metadata.DISK_RANGE.filed_comments=磁盘 +metadata.PROC_STATE.filed_comments=进程的状态 +metadata.RETURN_INFO.filed_comments=返回信息 +metadata.ifOperStatus.filed_comments=打开状态 +metadata.ifIndex.filed_comments=索引 +metadata.ifInDiscards.filed_comments=入站被丢弃的数据包 +metadata.dpSlotRunTimes.filed_comments=设备板子运行的时间 +metadata.RX_DROP_PERC.filed_comments=接收丢包率 +metadata.CPU_NAME.filed_comments=cpu标识 +#nms_error_code +#Tue Apr 17 18:07:46 CST 2018 +nms_error_code.DeamonNotExist.error_name=守护进程不存在 +nms_error_code.DCSocketRuntimeError.error_name=DC通讯过程中异常 +nms_error_code.DataResoveError.error_des=数据解析错误,适用于DC端各类信息解析异常情况 +nms_error_code.ProcessNotExist.error_name=进程不存在 +nms_error_code.CreateSocketError.error_des=创建通讯失败 +nms_error_code.DataCollectError.error_des=数据收集管理线程停止运行 +nms_error_code.NetWorkError.error_des=PING不通 +nms_error_code.SocketError.error_name=通讯失败 +nms_error_code.ProtListenerError.error_des=端口监听失败,适用于通讯服务端口监听和snmp服务端口监听失败情况 +nms_error_code.HandShakeError.error_name=通讯握手失败 +nms_error_code.DCSocketServerRuntimeError.error_name=DC通讯服务运行时异常 +nms_error_code.NetWorkError.error_name=网络不通 +nms_error_code.NCWorkError.error_name=NC工作异常 +nms_error_code.DCSocketServerStartError.error_name=DC通讯服务启动失败 +nms_error_code.ProtListenerError.error_name=端口监听失败 +nms_error_code.HandShakeError.error_des=通讯握手失败,适用于web与DC握手,DC与NC握手 +nms_error_code.SocketError.error_des=通讯过程中异常导致失败,适用于web、DC、NC 通讯线程异常情况 +nms_error_code.DCSocketServerStartError.error_des=DC端通讯服务启动失败 +nms_error_code.DataResoveError.error_name=数据解析错误 +nms_error_code.CreateSocketError.error_name=创建通讯失败 +nms_error_code.DCSocketServerRuntimeError.error_des=DC通讯服务运行时异常 +nms_error_code.DeamonNotExist.error_des=守护进程不存在,适用于NC守护进程未启动、DC守护进程未启动 +nms_error_code.DataCollectError.error_name=数据收集异常 +nms_error_code.ThreadRuntimeError.error_des=各程序代码执行异常,适用于Web、DC、NC、各部分程序线程执行错误 +nms_error_code.ProcessNotExist.error_des=目标进程不存在,用于Web、DC、NC、第三方监测线程、执行线程不存在等 +nms_error_code.DCSocketRuntimeError.error_des=DC端通讯内容异常的错误代码,用于基本通讯告警 +nms_error_code.ThreadRuntimeError.error_name=执行异常 +nms_error_code.NCWorkError.error_des=NC端异常 +#option_table +#Tue Apr 17 18:09:40 CST 2018 +option_table.3.type_value=5级告警 +option_table.20.type_value=数据状态异常,连续四次超过告警值 +option_table.11.type_value=不可写 +option_table.9.type_value=启用 +option_table.26.type_value=内存总大小 +option_table.25.type_code=数据状态异常,超过告警值 +option_table.4.type_value=2级告警 +option_table.21.type_value=网络异常 +option_table.12.type_value=紧急 +option_table.27.type_value=获取该节点系统时间失败 +option_table.26.type_code=内存总大小 +option_table.5.type_value=可达 +option_table.22.type_value=获取SNMP表出错 +option_table.21.type_code=网络异常 +option_table.13.type_value=正常 +option_table.17.type_value=盘阵 +option_table.6.type_value=1级告警 +option_table.23.type_value=未取到监测数据 +option_table.14.type_value=异常 +option_table.22.type_code=获取SNMP表出错 +option_table.18.type_value=封堵路由器 +option_table.1.type_value=非紧急 +option_table.7.type_value=3级告警 +option_table.24.type_value=超过 2 监测周期,未接收到监测结果信息 +option_table.15.type_value=下线 +option_table.20.type_code=数据状态异常,连续四次超过告警值 +option_table.23.type_code=未取到监测数据 +option_table.19.type_value=其他网元 +option_table.2.type_value=不可达 +option_table.10.type_value=可写 +option_table.8.type_value=4级告警 +option_table.25.type_value=数据状态异常,超过告警值 +option_table.16.type_value=专用设备 +option_table.24.type_code=超过 2 监测周期,未接收到监测结果信息 +option_table.27.type_code=获取该节点系统时间失败 +#order_table +#Tue Apr 17 18:10:55 CST 2018 +order_table.upgrade_kill_process.command_desc=停用进程,参数顺序:存放PID的文件1;存放PID的文件2; +order_table.upgrade_other.command_model={"fileName"\:"推送文件名",\r\n"cover"\:"覆盖目录(绝对路径):Linux系统且fileName指定的是压缩文件时,isAbs属性值设为Y,cover无效(默认根目录/)",\r\n"isCreateCover"\:"创建标识(Y创建,N不创建 ,默认为N,忽略大小写)",\r\n"isAbs"\:"如果fileName指定的是压缩文件,解压时按绝对路径还是相对路径(只针对Linux有效,Windows下只按进入覆盖目录解压):Y 在根目录下解压,此时覆盖目录为/;N 进入覆盖目录解压,默认为N,忽略大小写",\r\n"delete"\:[\r\n "删除目录1(若isAbs属性值为Y,写绝对路径;若isAbs属性值为N,写相对路径,默认是相对cover属性指定的目录下)",\r\n "删除目录2"\r\n],\r\n "backups"\:[\r\n {"backup"\:"要备份的文件或目录(绝对、相对路径都可,若是相对路径,默认相对cover属性指定的目录下)",\r\n "backupTo"\:"备份目的路径(写相对路径)",\r\n "isAbs"\:"指定备份文件压缩时,绝对路径还是相对路径(只针对Linux有效,Windows下只按进入备份路径压缩):Y 压缩时包含全路径,N 进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1(绝对或相对路径,若是相对路径,默认是相对backup属性指定的目录下)",\r\n "排除的文件或目录路径2"\r\n ]\r\n},\r\n {"backup"\:"要备份的文件或目录",\r\n \t"backupTo"\:"备份目的路径",\r\n \t "isAbs"\:"指定备份文件相对还是绝对压缩:Y 绝对压缩包含全路径,N 相对压缩进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1",\r\n "排除的文件或目录路径2"\r\n ]\r\n }\r\n],\r\n"startupFile"\:"启动文件全路径",\r\n"execParams"\:["启动参数1","启动参数2"],\r\n"forceExec"\:"强制执行(Y是,N否,默认N)",\r\n"pidFile"\:"Pid文件全路径",\r\n"maxWaitTime"\:"执行后获取PID文件的最大等待时间(单位:分钟),默认为0",\r\n"username"\:"属主",\r\n"groupName"\:"属群",\r\n"permisson"\:"文件权限"\r\n};\r\n +kill_process=停用进程 +order_table.upgrade_agent.command_desc=模板介绍 +order_table.upgrade_exec.command_model={"execCmd"\:"执行文件或命令",\r\n"execParams"\:["命令参数1","命令参数2"],\r\n"forceExec"\:"强制执行(Y是,N否,默认N)",\r\n"residentFlag"\:"常驻内存标识(Y是,N否,默认N)",\r\n"execResult"\:"存放执行结果标识的文件\:1、常驻内存的,写入PID,2、非常驻的,写执行结果:结果标识(0 成功 1 失败)|结果描述",\r\n"returnFlag"\:"回传标识(Y是,N否,默认N)",\r\n"returnPath"\:"回传路径(文件或目录)",\r\n"maxWaitTime"\:"最终结果获取最大等待时间(单位:分钟)",\r\n"username"\:"执行用户名"\r\n}; +single_exec=单次执行命令 +server=DC升级 +push_file=推送文件 +order_table.upgrade_recover.command_model={"source"\:"备份文件(绝对路径)",\r\n"cover"\:"恢复的目录(绝对路径):Linux系统且source是压缩文件时,isAbs属性值设为Y,cover无效(默认根目录/)",\r\n"isAbs"\:"如果source指定的是压缩文件,解压时按绝对路径还是相对路径(只针对Linux有效,Windows下只按进入恢复目录解压):Y 在根目录下解压,此时恢复目录为/,N 进入恢复目录解压,默认为N,忽略大小写",\r\n"delete"\:[\r\n "删除目录1(若isAbs属性值为Y,写绝对路径;若isAbs属性值为N,写相对路径,默认是相对cover属性指定的目录下)",\r\n "删除目录2"\r\n]\r\n}; +update=覆盖更新 +order_table.upgrade_server.command_desc=模板介绍 +order_table.upgrade_agent.command_model={"fileName"\:"推送文件名",\r\n"cover"\:"覆盖目录(相对、绝对路径都可,相对路径默认是相对Client部署目录下):Linux系统且fileName指定的是压缩文件时,isAbs属性值设为Y,cover无效(默认根目录/)",\r\n"isCreateCover"\:"创建标识(Y创建,N不创建 ,默认为N,忽略大小写)",\r\n"isAbs"\:"如果fileName指定的是压缩文件,解压时按绝对路径还是相对路径(只针对Linux有效,Windows下只按进入覆盖目录解压):Y 在根目录下解压,此时覆盖目录为/;N 进入覆盖目录解压,默认为N,忽略大小写",\r\n"delete"\:[\r\n "删除目录1(若isAbs属性值为Y,写绝对路径;若isAbs属性值为N,写相对路径,默认是相对cover属性指定的目录下)",\r\n "删除目录2"\r\n],\r\n "backups"\:[\r\n {"backup"\:"要备份的文件或目录(绝对、相对路径都可,若是相对路径,默认相对cover属性指定的目录下)",\r\n "backupTo"\:"备份目的路径(写相对路径)",\r\n "isAbs"\:"指定备份文件压缩时,绝对路径还是相对路径(只针对Linux有效,Windows下只按进入备份路径压缩):Y 压缩时包含全路径,N 进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1(绝对或相对路径,若是相对路径,默认是相对backup属性指定的目录下)",\r\n "排除的文件或目录路径2"\r\n ]\r\n},\r\n {"backup"\:"要备份的文件或目录",\r\n \t"backupTo"\:"备份目的路径",\r\n \t "isAbs"\:"指定备份文件相对还是绝对压缩:Y 绝对压缩包含全路径,N 相对压缩进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1",\r\n "排除的文件或目录路径2"\r\n ]\r\n }\r\n],\r\n"username"\:"属主",\r\n"groupName"\:"属群",\r\n"permisson"\:"文件权限"\r\n};\r\n +order_table.upgrade_other.command_desc=模板介绍 +order_table.upgrade_start.command_model={"execCmd"\:"执行文件或命令",\r\n"execParams"\:["命令参数1","命令参数2"],\r\n"forceExec"\:"强制执行(Y是,N否,默认N)",\r\n"residentFlag"\:"常驻内存标识(Y是,N否,默认N)",\r\n"execResult"\:"存放执行结果标识的文件\:1、常驻内存的,写PID文件,2、非常驻的,写执行结果文件,格式如下:结果标识(0 成功 1 失败)|结果描述",\r\n"returnFlag"\:"回传标识(Y是,N否,默认N)",\r\n"returnPath"\:"回传路径(文件或目录)",\r\n"maxWaitTime"\:"最终结果获取最大等待时间(单位:分钟)",\r\n"username"\:"执行用户名"\r\n}; +order_table.upgrade_exec.command_desc=可执行的命令(可带参数),以上作为一个参数的书写规规范 +order_table.upgrade_backup.command_model={"backup"\:"要备份的文件或目录(写绝对路径)",\r\n "backupTo"\:"备份路径(写相对路径)",\r\n "isAbs"\:"指定备份文件压缩时,绝对路径还是相对路径(只针对Linux有效,Windows下只按进入备份路径压缩):Y 压缩时包含全路径,N 进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径(可以是绝对路径,也可以是相对路径,如果是相对路径,默认是相对backup属性指定的目录下)"\r\n ]\r\n}; +other=第三方升级部署 +order_table.upgrade_backup.command_desc=备份,参数顺序:需要备份目录或文件;备份到的目录 +exec=可执行命令 +order_table.upgrade_start.command_desc=启动进程,参数顺序:存放进程ID的文件;启动命令 参数序列(参数序列与启动命令空格隔开);回传标识(Y是,N否);输出文件路径;常驻内存标识(Y是,N否) +order_table.upgrade_recover.command_desc=恢复,参数顺序:备份文件目录;要恢复的目录 +order_table.single_exec.command_desc=单次执行命令 +recover=恢复 +order_table.upgrade_update.command_desc=更新,即覆盖,参数顺序:升级文件;覆盖目录;是否创建目录(Y是,N否) +agent=NC升级 +order_table.push_file.command_desc=推送文件模板 +order_table.upgrade_server.command_model={"fileName"\:"推送文件名",\r\n"cover"\:"覆盖目录(绝对路径):Linux系统且fileName指定的是压缩文件时,isAbs属性值设为Y,cover无效(默认根目录/)",\r\n"isCreateCover"\:"创建标识(Y创建,N不创建 ,默认为N,忽略大小写)",\r\n"isAbs"\:"如果fileName指定的是压缩文件,解压时按绝对路径还是相对路径(只针对Linux有效,Windows下只按进入覆盖目录解压):Y 在根目录下解压,此时覆盖目录为/;N 进入覆盖目录解压,默认为N,忽略大小写",\r\n"delete"\:[\r\n "删除目录1(若isAbs属性值为Y,写绝对路径;若isAbs属性值为N,写相对路径,默认是相对cover属性指定的目录下)",\r\n "删除目录2"\r\n],\r\n "backups"\:[\r\n {"backup"\:"要备份的文件或目录(绝对、相对路径都可,若是相对路径,默认相对cover属性指定的目录下)",\r\n "backupTo"\:"备份目的路径(写相对路径)",\r\n "isAbs"\:"指定备份文件压缩时,绝对路径还是相对路径(只针对Linux有效,Windows下只按进入备份路径压缩):Y 压缩时包含全路径,N 进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1(绝对或相对路径,若是相对路径,默认是相对backup属性指定的目录下)",\r\n "排除的文件或目录路径2"\r\n ]\r\n},\r\n {"backup"\:"要备份的文件或目录",\r\n \t"backupTo"\:"备份目的路径",\r\n \t "isAbs"\:"指定备份文件相对还是绝对压缩:Y 绝对压缩包含全路径,N 相对压缩进入备份路径压缩,默认为N,忽略大小写",\r\n "except"\:[\r\n "排除的文件或目录路径1",\r\n "排除的文件或目录路径2"\r\n ]\r\n }\r\n],\r\n"startupFile"\:"启动文件全路径",\r\n"execParams"\:["启动参数1","启动参数2"],\r\n"forceExec"\:"强制执行(Y是,N否,默认N)",\r\n"pidFile"\:"Pid文件全路径",\r\n"maxWaitTime"\:"执行后获取PID文件的最大等待时间(单位:分钟),默认为0",\r\n"username"\:"属主",\r\n"groupName"\:"属群",\r\n"permisson"\:"文件权限"\r\n}; +order_table.push_file.command_model={"fileName"\:"推送文件名(与选择的文件名一一对应)",\r\n"destPath"\:"推送目的地",\r\n"isCover"\:"是否覆盖:Y是,N否 ,默认为N,忽略大小写",\r\n"username"\:"属主",\r\n"groupName"\:"属群",\r\n"permisson"\:"文件权限"\r\n}; +start=启动 +backup=备份 +order_table.upgrade_update.command_model={"source"\:"源目录或文件(绝对路径)",\r\n"cover"\:"覆盖目录(绝对路径):Linux系统且source是压缩文件时,isAbs属性值设为Y,cover无效(默认根目录/)",\r\n"isCreateCover"\:"创建覆盖目录标识(Y创建,N不创建 ,默认为N,忽略大小写)",\r\n"isAbs"\:"如果source指定的是压缩文件,解压时按绝对路径还是相对路径(只针对Linux有效,Windows下只按进入覆盖目录解压):Y 在根目录下解压,此时覆盖目录为/,N 进入覆盖目录解压,默认为N,忽略大小写",\r\n"delete"\:[\r\n "删除目录1(若isAbs属性值为Y,写绝对路径;若isAbs属性值为N,写相对路径,默认是相对cover属性指定的目录下)",\r\n "删除目录2"\r\n]\r\n}; +#order_table +#Mon May 28 16:25:52 CST 2018 +order_table.upgrade_recover.shell_path=命令名改为upgrade_restore +#plugin_info +#Tue Apr 17 18:12:07 CST 2018 +plugin_info.hh.file_name=1_新建 Microsoft Visio 绘图.vsdx +#set_det_data_con +#Tue Apr 17 18:13:03 CST 2018 +set_det_data_con.5.menu_name=报警信息 +set_det_data_con.2.menu_name=告警信息 +set_det_data_con.3.menu_name=异常服务器 +set_det_data_con.4.menu_name=异常网元 +set_det_data_con.1.menu_name=业务逻辑拓扑 +#tabledboperationrpt +#Tue Apr 17 18:13:03 CST 2018 +tabledboperationrpt.username=管理员 +#type_table +#Tue Apr 17 18:16:11 CST 2018 +type_table.9.type_desc=此项值启用,用于设置数据展示“状态信息”查询条件联想输入的检索关键字。 +type_table.3.type_name=告警信息显示的级别 +type_table.7.type_name=迪普风扇电源状态 +type_table.6.type_name=紧急程度 +type_table.1.type_desc=此项值启用,则NC报主动告警,停用则不报主动告警 +type_table.4.type_desc=emailflag\:0发送;1不发送; +type_table.2.type_name=是否可达 +type_table.5.type_name=网元节点分类 +type_table.9.type_name=数据监测状态信息 +type_table.3.type_desc=告警信息列表显示的告警级别(告警信息列表显示的均为紧急的告警) +type_table.6.type_desc=告警紧急程度 +type_table.1.type_name=NC是否报主动告警信息 +type_table.4.type_name=系统是否使用邮件 +type_table.8.type_name=硬盘是否可写 +type_table.2.type_desc=握手监测是否可达 +#xt_js_jbxx +#Tue Apr 17 18:17:01 CST 2018 +xt_js_jbxx.224.jsmc=配置管理人员 +xt_js_jbxx.1.jsms=具有系统管理等权限 +xt_js_jbxx.2.jsmc=开发人员 +xt_js_jbxx.225.jsmc=运维人员 +xt_js_jbxx.224.jsms=负责配置系统及业务相关的内容(针对运维) +xt_js_jbxx.3.jsmc=测试人员 +xt_js_jbxx.2.jsms=开发人员使用 +xt_js_jbxx.21.jsmc=查看人员 +xt_js_jbxx.225.jsms=负责数据的查看(针对运维) +xt_js_jbxx.3.jsms=测试人员使用 +xt_js_jbxx.1.jsmc=管理员 +xt_js_jbxx.21.jsms=只有查看信息权限 +#xt_mk_jbxx +#Tue Apr 17 18:20:41 CST 2018 +xt_mk_jbxx.361.mkmc=端口状态配置 +xt_mk_jbxx.303.mkmc=任务拷贝 +xt_mk_jbxx.381.mkmc=网元监测 +xt_mk_jbxx.313.mkmc=设置告警 +xt_mk_jbxx.543.mkms=新增插件 +xt_mk_jbxx.12.mkms=新增故障库 +xt_mk_jbxx.269.mkmc=监测配置 +xt_mk_jbxx.299.mkmc=上线 +xt_mk_jbxx.545.mkms=删除插件 +xt_mk_jbxx.421.mkmc=监测告警配置 +xt_mk_jbxx.307.mkmc=启用 +xt_mk_jbxx.14.mkms=新模块管理 +xt_mk_jbxx.279.mkmc=权限管理 +xt_mk_jbxx.441.mkmc=3D机房 +xt_mk_jbxx.461.mkmc=品牌管理 +xt_mk_jbxx.309.mkmc=修改 +xt_mk_jbxx.501.mkmc=告警信息 +xt_mk_jbxx.521.mkmc=监测过滤配置 +xt_mk_jbxx.10.mkmc=新增 +xt_mk_jbxx.14.mkmc=模块管理 +xt_mk_jbxx.16.mkmc=新增子模块 +xt_mk_jbxx.262.mkms=监测数据 +xt_mk_jbxx.274.mkms=节点组和节点维护 +xt_mk_jbxx.266.mkms=只是任务信息和执行状态和结果的查看。 +xt_mk_jbxx.276.mkms=DC管理范围 +xt_mk_jbxx.288.mkms=用户组管理界面 +xt_mk_jbxx.270.mkmc=类别配置 +xt_mk_jbxx.1.mkms=系统模块管理等 +xt_mk_jbxx.280.mkmc=部门配置 +xt_mk_jbxx.272.mkmc=特种设备配置 +xt_mk_jbxx.262.mkmc=服务器监测 +xt_mk_jbxx.282.mkmc=用户管理 +xt_mk_jbxx.274.mkmc=节点配置 +xt_mk_jbxx.264.mkmc=特种监测 +xt_mk_jbxx.310.mkmc=删除 +xt_mk_jbxx.284.mkmc=数据展示 +xt_mk_jbxx.266.mkmc=任务查看 +xt_mk_jbxx.542.mkms=对插件进行增删改查及下载功能 +xt_mk_jbxx.276.mkmc=DC范围配置 +xt_mk_jbxx.11.mkms=系统故障库 +xt_mk_jbxx.9.mkms=数据字典及参数配置功能 +xt_mk_jbxx.304.mkmc=新增逆向 +xt_mk_jbxx.288.mkmc=用户组配置 +xt_mk_jbxx.544.mkms=修改插件 +xt_mk_jbxx.306.mkmc=停用 +xt_mk_jbxx.13.mkms=修改故障库 +xt_mk_jbxx.1.mkmc=系统配置 +xt_mk_jbxx.546.mkms=下载插件 +xt_mk_jbxx.462.mkmc=设备管理 +xt_mk_jbxx.17.mkms=新增主模块 +xt_mk_jbxx.542.mkmc=工具管理 +xt_mk_jbxx.9.mkmc=参数配置 +xt_mk_jbxx.546.mkmc=下载附件 +xt_mk_jbxx.261.mkms=原告警数据 +xt_mk_jbxx.275.mkms=业务系统管理 +xt_mk_jbxx.285.mkms=拓扑图展示 +xt_mk_jbxx.267.mkms=配置管理 +xt_mk_jbxx.269.mkms=配置监测设置信息 +xt_mk_jbxx.289.mkms=新增用户组 +xt_mk_jbxx.271.mkmc=任务配置 +xt_mk_jbxx.261.mkmc=异常服务器 +xt_mk_jbxx.281.mkmc=角色配置 +xt_mk_jbxx.273.mkmc=机房配置 +xt_mk_jbxx.263.mkmc=异常网元 +xt_mk_jbxx.293.mkmc=下线 +xt_mk_jbxx.283.mkmc=修改个人信息 +xt_mk_jbxx.275.mkmc=业务系统配置 +xt_mk_jbxx.501.mkms=显示配置级别的告警信息,包括服务器和网元 +xt_mk_jbxx.521.mkms=为 业务逻辑拓扑、告警信息、异常服务器、异常网元、系统预警信息菜单 设置过滤条件(告警级别、是否紧急) +xt_mk_jbxx.541.mkms=管理插件的上传下载 +xt_mk_jbxx.285.mkmc=业务逻辑拓扑 + +#xt_mk_jbxx +#Mon May 28 11:27:21 CST 2018 +xt_mk_jbxx.221.mkmc=品牌管理 +xt_mk_jbxx.71.mkms=修改机房信息 +xt_mk_jbxx.39.mkms=多级节点组管理,树形显示 +xt_mk_jbxx.66.mkms=定时任务停用 +xt_mk_jbxx.22.mkms=用户组新增功能 +xt_mk_jbxx.33.mkms=节点组管理 +xt_mk_jbxx.28.mkmc=DataController管理 +xt_mk_jbxx.60.mkms=修改检测类别 +xt_mk_jbxx.278.mkmc=业务逻辑配置 +xt_mk_jbxx.39.mkmc=节点组管理 +xt_mk_jbxx.66.mkmc=停用 +xt_mk_jbxx.45.mkms=启用节点组 +xt_mk_jbxx.601.mkmc=测试子模块 +xt_mk_jbxx.33.mkmc=节点管理 +xt_mk_jbxx.72.mkms=删除机房信息 +xt_mk_jbxx.245.mkms=新增2 +xt_mk_jbxx.141.mkmc=节点组展示 +xt_mk_jbxx.267.mkmc=配置管理 +xt_mk_jbxx.67.mkms=定时任务启用 +xt_mk_jbxx.23.mkms=查看、操作所有业务系统 +xt_mk_jbxx.2.mkms=用户/用户组/角色权限配置 +xt_mk_jbxx.50.mkms=监测相关设置 +xt_mk_jbxx.34.mkms=新增节点组 +xt_mk_jbxx.581.mkms=拓扑图配置 +xt_mk_jbxx.245.mkmc=新增2 +xt_mk_jbxx.61.mkms=删除检测类型 +xt_mk_jbxx.201.mkmc=监测配置向导 +xt_mk_jbxx.46.mkms=OID字典管理 +xt_mk_jbxx.50.mkmc=监测设置管理 +xt_mk_jbxx.581.mkmc=拓扑图配置 +xt_mk_jbxx.18.mkmc=部门管理 +xt_mk_jbxx.57.mkms=汇总监测数据 +xt_mk_jbxx.268.mkmc=监测配置向导 +xt_mk_jbxx.79.mkmc=拓扑展示 +xt_mk_jbxx.68.mkms=新增逆向任务 +xt_mk_jbxx.121.mkms=网元图形化配置 +xt_mk_jbxx.40.mkms=新增子节点组 +xt_mk_jbxx.316.mkmc=任务配置向导 +xt_mk_jbxx.24.mkms=新增业务系统 +xt_mk_jbxx.51.mkms=新增监测设置 +xt_mk_jbxx.46.mkmc=OID字典管理 +xt_mk_jbxx.35.mkms=修改节点组 +xt_mk_jbxx.19.mkms=角色管理 +xt_mk_jbxx.73.mkmc=3D机房图 +xt_mk_jbxx.57.mkmc=监测数据 +xt_mk_jbxx.62.mkms=需要告警的数据 +xt_mk_jbxx.181.mkmc=任务配置向导 +xt_mk_jbxx.68.mkmc=新增逆向 +xt_mk_jbxx.121.mkmc=网元图形化配置 +xt_mk_jbxx.40.mkmc=新增子节点组 +xt_mk_jbxx.321.mkmc=异常设备 +xt_mk_jbxx.3.mkmc=业务系统 +xt_mk_jbxx.19.mkmc=角色管理 +xt_mk_jbxx.58.mkms=设置监测类别 +xt_mk_jbxx.62.mkmc=告警数据 +xt_mk_jbxx.69.mkms=拓扑 +xt_mk_jbxx.122.mkms=网元图形化配置 +xt_mk_jbxx.41.mkms=新增一级节点组 +xt_mk_jbxx.4.mkms=节点管理 +xt_mk_jbxx.241.mkms=设备管理 +xt_mk_jbxx.52.mkms=修改监测设置信息 +xt_mk_jbxx.36.mkms=节点管理 +xt_mk_jbxx.74.mkmc=拓扑图编辑 +xt_mk_jbxx.63.mkms=nms任务查询与处理 +xt_mk_jbxx.58.mkmc=监测类别管理 +xt_mk_jbxx.69.mkmc=机房管理 +xt_mk_jbxx.122.mkmc=网元图形化配置 +xt_mk_jbxx.41.mkmc=新增一级节点组 +xt_mk_jbxx.4.mkmc=节点管理 +xt_mk_jbxx.241.mkmc=设备管理 +xt_mk_jbxx.36.mkmc=节点管理 +xt_mk_jbxx.75.mkms=维护机柜信息 +xt_mk_jbxx.59.mkms=新增检测类型 +xt_mk_jbxx.63.mkmc=任务管理 +xt_mk_jbxx.286.mkmc=3D机房展示 +xt_mk_jbxx.42.mkms=修改节点组 +xt_mk_jbxx.431.mkms=新模块管理 +xt_mk_jbxx.26.mkms=停用业务系统 +xt_mk_jbxx.561.mkmc=品牌管理 +xt_mk_jbxx.242.mkms=新增设备型号 +xt_mk_jbxx.53.mkms=报警设置 +xt_mk_jbxx.37.mkms=停用节点组 +xt_mk_jbxx.80.mkms=上线监测设置 +xt_mk_jbxx.75.mkmc=机柜管理 +xt_mk_jbxx.64.mkms=新增相似任务 +xt_mk_jbxx.431.mkmc=新模块管理 +xt_mk_jbxx.5.mkmc=监测管理 +xt_mk_jbxx.53.mkmc=设置告警 +xt_mk_jbxx.265.mkms=展示各节点告警异常信息 +xt_mk_jbxx.161.mkmc=配置管理 +xt_mk_jbxx.64.mkmc=任务拷贝 +xt_mk_jbxx.43.mkms=节点管理 +xt_mk_jbxx.27.mkms=启用业务系统 +xt_mk_jbxx.6.mkms=NMS任务管理 +xt_mk_jbxx.70.mkms=新增机房 +xt_mk_jbxx.49.mkmc=网元监测信息 +xt_mk_jbxx.54.mkms=设置报警参数 +xt_mk_jbxx.38.mkms=启用节点组 +xt_mk_jbxx.481.mkmc=拓扑图配置 +xt_mk_jbxx.265.mkmc=告警信息 +xt_mk_jbxx.81.mkms=下线监测设置 +xt_mk_jbxx.21.mkms=用户组管理 +xt_mk_jbxx.43.mkmc=节点管理 +xt_mk_jbxx.6.mkmc=任务管理 +xt_mk_jbxx.54.mkmc=报警设置 +xt_mk_jbxx.277.mkmc=参数配置 +xt_mk_jbxx.541.mkmc=工具管理 +xt_mk_jbxx.21.mkmc=用户组管理 +xt_mk_jbxx.341.mkms=新增操作 +xt_mk_jbxx.44.mkms=停用节点组 +xt_mk_jbxx.28.mkms=NMS数据解析服务器信息管理 +xt_mk_jbxx.221.mkmc=品牌管理 + +#xt_yh_jbxx +#Tue Apr 17 18:21:57 CST 2018 +xt_yh_jbxx.admin.rigthmenuitems=系统管理, +xt_yh_jbxx.admin.yhmc=管理员 + + + + + +#####################################web java################################### + + +#DeptManageAction +DeptManageAction.update.success=操作成功 +DeptManageAction.update.faild=操作失败 +#CheckTypeSetAction +CheckTypeSetAction.downloadExample.title.monitorType=监测类别(必填) +CheckTypeSetAction.downloadExample.title.monitorTypeName=监测类别名称(必填) +CheckTypeSetAction.downloadExample.title.remark=备注 +CheckTypeSetAction.downloadExample.title.mapTable=对应数据库表(必填) +CheckTypeSetAction.downloadExample.title.tableDesc=表描述 +CheckTypeSetAction.downloadExample.title.viewPrivilage=查看权限(必填 1、发布人查看;2发布人所在组,需选择组;3系统内全部人员查看,当前业务系统内;4、无限制) +CheckTypeSetAction.downloadExample.title.userGroup=用户组 +CheckTypeSetAction.downloadExample.title.snmpMonitor=SNMP监控(必填 0:是;2:否;为0时请填写OID) +CheckTypeSetAction.downloadExample.sheet=监测类别管理信息表 +CheckTypeSetAction.downloadExample.errorInfo.line=行 +CheckTypeSetAction.downloadExample.errorInfo1=列节点监测类别不能为空 +CheckTypeSetAction.downloadExample.errorInfo2=列节点监测类别错误; +CheckTypeSetAction.downloadExample.errorInfo3=列节点监测类别名称不能为空; +CheckTypeSetAction.downloadExample.errorInfo4=列节点监测类别名称错误; +CheckTypeSetAction.downloadExample.errorInfo5=列节点备注超长; +CheckTypeSetAction.downloadExample.errorInfo6=列节点备注错误; +CheckTypeSetAction.downloadExample.errorInfo7=列节点对应数据库表不能为空; +CheckTypeSetAction.downloadExample.errorInfo8=列节点对应数据库表错误; +CheckTypeSetAction.downloadExample.errorInfo9=列节点表描述超长; +CheckTypeSetAction.downloadExample.errorInfo10=列节点表描述错误; +CheckTypeSetAction.downloadExample.errorInfo11=列节点查看权限不能为空; +CheckTypeSetAction.downloadExample.errorInfo12=列节点查看权限错误; +CheckTypeSetAction.downloadExample.errorInfo13=列节点用户组ID错误; +CheckTypeSetAction.downloadExample.errorInfo14=列节点SNMP监控不能为空; +CheckTypeSetAction.downloadExample.errorInfo15=列节点SNMP监控错误; +CheckTypeSetAction.downloadExample.errorInfo16=列节点OID错误; +CheckTypeSetAction.downloadExample.errorInfo17=列节点字段名不能为空 +CheckTypeSetAction.downloadExample.errorInfo18=列节点字段名错误; +CheckTypeSetAction.downloadExample.errorInfo19=列节点字段描述不能为空; +CheckTypeSetAction.downloadExample.errorInfo20=列节点字段描述错误; +CheckTypeSetAction.downloadExample.errorInfo21=列节点字段类型不能为空; +CheckTypeSetAction.downloadExample.errorInfo22=列节点字段类型错误; +CheckTypeSetAction.downloadExample.errorInfo23=行4列节点长度错误; +CheckTypeSetAction.downloadExample.errorInfo24=行5列节点是否用于统计不能为空; +CheckTypeSetAction.downloadExample.errorInfo25=行5列节点是否用于统计错误; +CheckTypeSetAction.downloadExample.errorInfo26=列节点表名不能为空; +CheckTypeSetAction.downloadExample.errorInfo27=列节点 表名错误; +CheckTypeSetAction.downloadExample.detecateType=监测类别 +CheckTypeSetAction.downloadExample.detecateTypeName=监测类别名称 +CheckTypeSetAction.downloadExample.remark=备注 +CheckTypeSetAction.downloadExample.tableMap=对应数据库表 +CheckTypeSetAction.downloadExample.tableDesc=表描述 +CheckTypeSetAction.downloadExample.viewLevel=查看权限 +CheckTypeSetAction.downloadExample.userGroup=用户组 +CheckTypeSetAction.downloadExample.snmpDetecat=SNMP监控 +CheckTypeSetAction.downloadExample.errorInfo=错误信息 +CheckTypeSetAction.downloadExample.fieldName=字段名 +CheckTypeSetAction.downloadExample.fieldDesc=字段描述 +CheckTypeSetAction.downloadExample.fieldType=字段类型 +CheckTypeSetAction.downloadExample.length=长度 +CheckTypeSetAction.downloadExample.isChart=是否用于统计 +CheckTypeSetAction.downloadExample.tableName=表名 +CheckTypeSetAction.downloadExample.errorTheme=监测数据表字段定义错误信息 +CheckTypeSetAction.downloadExample.success=操作成功 +CheckTypeSetAction.downloadExample.fileIsNull=选择的文件为空,请重新选择! +CheckTypeSetAction.downloadExample.detecateTypeIsNull=监测类别名称不存在; +CheckTypeSetAction.downloadExample.fieldExists=字段名已存在; +CheckTypeSetAction.downloadExample.number=数字 +CheckTypeSetAction.downloadExample.DATE=时间 +CheckTypeSetAction.downloadExample.text=文本 +CheckTypeSetAction.downloadExample.textInfo=当类型为文本时,必须填写长度 +CheckTypeSetAction.downloadExample.lenghtInfo=长度应为数字类型; +CheckTypeSetAction.downloadExample.filedTypeInfo=字段类型填写错误; +CheckTypeSetAction.downloadExample.Y=是 +CheckTypeSetAction.downloadExample.N=否 +CheckTypeSetAction.downloadExample.isCHartInfo=是否用于统计填写错误; +CheckTypeSetAction.downloadExample.oidIsNecessary=当前监测类别下OID必填; +CheckTypeSetAction.downloadExample.importInfo=该节点信息导入异常; +CheckTypeSetAction.downloadExample.detecateTypeNameRepeat=监控类别名称重复; +CheckTypeSetAction.downloadExample.detecateTypeRepeat=监控类别重复; +CheckTypeSetAction.downloadExample.tableExists=数据表已存在; +CheckTypeSetAction.downloadExample.viewLevelInfo=查看权限是2,则需要用户组必填; +CheckTypeSetAction.downloadExample.noUserGroup=用户组不存在 +CheckTypeSetAction.downloadExample.snmpDetecateInfo=SNMP监控为0时,OID必填; +CheckTypeSetAction.downloadExample.isSchedule=是否预置信息 +CheckTypeSetAction.downloadExample.creteState=是否SNMP监控 +CheckTypeSetAction.addCheckTypeSetInfo.detecateTypeNameRepeatInfo=监控类别名称重复,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.detecateTypeRepeatInfo=监控类别重复,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.tableExistsInfo=数据表已存在,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.classFileInfo=生成.class文件失败! +CheckTypeSetAction.addCheckTypeSetInfo.getObjectFaild=获取对象栏位失败! +CheckTypeSetAction.addCheckTypeSetInfo.saveFailed=保存失败! +CheckTypeSetAction.addCheckTypeSetInfo.editDetecateTypeInfo=编辑监测类别管理验证异常 +CheckTypeSetAction.addCheckTypeSetInfo.detecateNameAndTypeRepeat=监控类别名称和监控类别均重复,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.detecateNameRepeat=监控类别名称重复,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.detecateRepeat=监控类别重复,请重新输入! +CheckTypeSetAction.addCheckTypeSetInfo.tableExists=数据表已存在,禁止修改SNMP监控! +CheckTypeSetAction.addCheckTypeSetInfo.validateTable=验证表是否存在异常 +CheckTypeSetAction.addCheckTypeSetInfo.detecateSetsExists=该类别下已经存在监测设置,禁止删除! + +#DetectionSetAction +DetectionSetAction.downloadExample.title.setName=设置名称(必填) +DetectionSetAction.downloadExample.title.setId=设置标识(必填) +DetectionSetAction.downloadExample.title.monitorCategory=监测类别(必填) +DetectionSetAction.downloadExample.title.nodeGroupRange=节点组范围(例:1或1,2,3) +DetectionSetAction.downloadExample.title.nodeIpRange=节点IP范围(例:1或1,2,3) +DetectionSetAction.downloadExample.title.viewLevel=查看权限(必填 1、发布人查看;2发布人所在组,需选择组;3系统内全部人员查看,当前业务系统内;4、无限制) +DetectionSetAction.downloadExample.title.userGroup=创建者所在用户组 +DetectionSetAction.downloadExample.title.monitorFirstTime=监测首次执行时间(格式:2012-12-12 18:18:18) +DetectionSetAction.downloadExample.title.monitorDate=监测数据时间间隔(分钟)(必填 必须大于或等于5分钟) +DetectionSetAction.downloadExample.title.timeOut=超时时间(秒)(必填) +DetectionSetAction.downloadExample.title.attempt=尝试次数(必填) +DetectionSetAction.downloadExample.title.state=状态(1有效,0无效) +DetectionSetAction.downloadExample.title.startMode=启动方式(必填 0:手工启动 1:NC启动) +DetectionSetAction.downloadExample.title.startUpTime=控制启动时间(格式:2012-12-12 18:18:18) +DetectionSetAction.downloadExample.title.pidFile=进程PID文件 +DetectionSetAction.downloadExample.title.searcheKey=进程搜索关键字 +DetectionSetAction.downloadExample.title.startUpFile=启动文件路径 +DetectionSetAction.downloadExample.title.contact=联系人(例:1或1,2,3) +DetectionSetAction.downloadExample.sheet=监测类别管理信息表 +DetectionSetAction.downloadExample.errorInfo1=行1列节点设置名称不能为空; +DetectionSetAction.downloadExample.errorInfo2=行1列节点设置名称错误; +DetectionSetAction.downloadExample.errorInfo3=行2列节点设置标识不能为空; +DetectionSetAction.downloadExample.errorInfo4=行2列节点设置标识错误; +DetectionSetAction.downloadExample.errorInfo5=行3列节点监测类别不能为空; +DetectionSetAction.downloadExample.errorInfo6=行3列节点监测类别错误; +DetectionSetAction.downloadExample.errorInfo7=行4列节点节点组范围错误; +DetectionSetAction.downloadExample.errorInfo8=行5列节点节点范围错误; +DetectionSetAction.downloadExample.errorInfo9=行6列节点查看权限不能为空; +DetectionSetAction.downloadExample.errorInfo10=行6列节点查看权限错误; +DetectionSetAction.downloadExample.errorInfo11=行7列节点创建者所在用户组错误; +DetectionSetAction.downloadExample.errorInfo12=行8列节点监测首次执行时间格式错误; +DetectionSetAction.downloadExample.errorInfo13=行8列节点监测首次执行时间错误; +DetectionSetAction.downloadExample.errorInfo14=行9列节点监测数据时间间隔不能为空; +DetectionSetAction.downloadExample.errorInfo15=行9列节点监测数据时间间隔错误; +DetectionSetAction.downloadExample.errorInfo16=行10列节点超时时间不能为空; +DetectionSetAction.downloadExample.errorInfo17=行10列节点超时时间错误; +DetectionSetAction.downloadExample.errorInfo18=行11列节点尝试次数不能为空; +DetectionSetAction.downloadExample.errorInfo19=行11列节点尝试次数错误; +DetectionSetAction.downloadExample.errorInfo20=行12列节点状态错误; +DetectionSetAction.downloadExample.errorInfo21=行13列节点启动方式不能为空; +DetectionSetAction.downloadExample.errorInfo22=行13列节点启动方式错误; +DetectionSetAction.downloadExample.errorInfo23=行14列节点控制启动时间格式错误; +DetectionSetAction.downloadExample.errorInfo24=行14列节点控制启动时间错误; +DetectionSetAction.downloadExample.errorInfo25=行15列节点进程PID文件错误; +DetectionSetAction.downloadExample.errorInfo26=行16列节点进程搜索关键字错误; +DetectionSetAction.downloadExample.errorInfo27=行17列节点启动文件路径错误; +DetectionSetAction.downloadExample.errorInfo28=行18列节点联系人错误; +DetectionSetAction.downloadExample.setName=设置名称 +DetectionSetAction.downloadExample.setID=设置标识 +DetectionSetAction.downloadExample.detecateType=监测类别 +DetectionSetAction.downloadExample.nodeGroupRang=节点组范围 +DetectionSetAction.downloadExample.nodeRang=节点范围 +DetectionSetAction.downloadExample.viewLevel=查看权限 +DetectionSetAction.downloadExample.createUserGroup=创建者所在用户组 +DetectionSetAction.downloadExample.detecateStartTime=监测首次执行时间 +DetectionSetAction.downloadExample.detecateTimeInfo=监测数据时间间隔(分钟) +DetectionSetAction.downloadExample.outTime=超时时间(秒) +DetectionSetAction.downloadExample.tryTimes=尝试次数 +DetectionSetAction.downloadExample.state=状态 +DetectionSetAction.downloadExample.startWay=启动方式 +DetectionSetAction.downloadExample.controlStartTime=控制启动时间 +DetectionSetAction.downloadExample.processPidFile=进程PID文件 +DetectionSetAction.downloadExample.processSearchKey=进程搜索关键字 +DetectionSetAction.downloadExample.startupFilePath=启动文件路径 +DetectionSetAction.downloadExample.users=联系人 +DetectionSetAction.downloadExample.errorInfo=错误信息 +DetectionSetAction.downloadExample.faild=操作失败 +DetectionSetAction.downloadExample.fileIsNull=选择的文件为空,请重新选择! +DetectionSetAction.downloadExample.detecateTypeNameIsNull=监测类别名称不存在 +DetectionSetAction.downloadExample.nodeGroupNameFormat=节点组名称格式错误 +DetectionSetAction.downloadExample.nodeGroupNameIsNull.nodeGroupName=节点组名称 +DetectionSetAction.downloadExample.nodeGroupNameIsNull.notExit=不存在 +DetectionSetAction.downloadExample.nodeIpFormat=节点IP格式错误 +DetectionSetAction.downloadExample.nodeIpIsNull.nodeIp=节点IP +DetectionSetAction.downloadExample.usernameIsNull.username=用户名 +DetectionSetAction.downloadExample.detecateTypeIdIsNull=监测类别ID不存在 +DetectionSetAction.downloadExample.nodeRangRepeat=设置节点范围重复; +DetectionSetAction.downloadExample.nodegroupRangRepeat=设置节点组范围重复; +DetectionSetAction.downloadExample.setsRangRepeat=设置范围重复; +DetectionSetAction.downloadExample.setNameAndIdRepeat=设置名称重复和设置标识重复; +DetectionSetAction.downloadExample.setIdRepeat=设置标识重复 +DetectionSetAction.downloadExample.setNameRepeat=设置名称重复; +DetectionSetAction.downloadExample.detectionSetInfo1=当前监测类别和启动方式下,进程PID文件不能为空; +DetectionSetAction.downloadExample.detectionSetInfo2=当前监测类别和启动方式下,进程搜索关键字不能为空; +DetectionSetAction.downloadExample.detectionSetInfo3=当前监测类别和启动方式下,启动文件路径不能为空; +DetectionSetAction.downloadExample.detectionSetInfo4=当前监测类别和启动方式下,进程PID文件不能为空; +DetectionSetAction.downloadExample.detectionSetInfo5=当前监测类别和启动方式下,进程搜索关键字不能为空; +DetectionSetAction.downloadExample.usergroupCanBeNull=当前查看权限下用户组不能为空; +DetectionSetAction.downloadExample.userGroupNotExists=用户组不存在 +DetectionSetAction.downloadExample.timeSpaceInfo=监测数据时间间隔必须大于或等于5分钟; +DetectionSetAction.downloadExample.nodeInfoImportErr=该节点信息导入异常; +DetectionSetAction.downloadExample.handUp=手动启动 +DetectionSetAction.downloadExample.ncStartup=NC启动 +DetectionSetAction.downloadExample.Y=是 +DetectionSetAction.downloadExample.N=否 +DetectionSetAction.downloadExample.valid=有效 +DetectionSetAction.downloadExample.unvalid=无效 +DetectionSetAction.downloadExample.title1.nodeGroup=节点组 +DetectionSetAction.downloadExample.title1.nodeIp=节点IP +DetectionSetAction.downloadExample.title1.moniteType=监测类别名称 +DetectionSetAction.downloadExample.title1.moniteTime=监测间隔(分钟) +DetectionSetAction.downloadExample.title1.tryTimes=尝试次数 +DetectionSetAction.downloadExample.title1.outTime=超时时间(秒) +DetectionSetAction.downloadExample.title1.firstMoniteTime=首次监测时间 +DetectionSetAction.downloadExample.title1.setName=设置名称 +DetectionSetAction.downloadExample.title1.procPidFile=进程PID文件 +DetectionSetAction.downloadExample.title1.startupFilePath=启动文件路径 +DetectionSetAction.downloadExample.title1.startupWay=启动方式 +DetectionSetAction.downloadExample.title1.startupTime=控制启动时间 +DetectionSetAction.downloadExample.title1.isSchedule=是否预置信息 +DetectionSetAction.downloadExample.title1.state=状态 +DetectionSetAction.downloadExample.title1=监测设置管理信息表 +DetectionSetAction.downloadExample.success=操作成功 +DetectionSetAction.downloadExample.nodeId=节点ID +DetectionSetAction.downloadExample.nodeGroupId=节点组ID +DetectionSetAction.downloadExample.nodeRangRepeat2=设置节点范围重复, +DetectionSetAction.downloadExample.nodeGroupRangRepeat=设置节点组范围重复, +DetectionSetAction.downloadExample.rangRepeat=设置范围重复, +DetectionSetAction.downloadExample.nameRepeat=设置名称重复, +DetectionSetAction.downloadExample.nameAndIdRepeat=设置名称重复和设置标识重复, +DetectionSetAction.downloadExample.idRepeat=设置标识重复, +DetectionSetAction.downloadExample.reInput=请重新输入! +DetectionSetAction.downloadExample.scriptDownloadFaild=脚本下载失败 +DetectionSetAction.downloadExample.detecateConfigValidateFaild=修改监测配置校验异常 +DetectionSetAction.downloadExample.updateDetecationException=更新监测数据有效性 异常 +DetectionSetAction.downloadExample.seqIdException=根据节点id和节点组id,获得有效的seqId 异常 + +#DetectionWarningAction.java +DetectionWarningAction.emportCurrentXls.active=主动 +DetectionWarningAction.emportCurrentXls.passive=被动 +DetectionWarningAction.emportCurrentXls.title.hostName=主机名 +DetectionWarningAction.emportCurrentXls.title.monitorType=监测类别 +DetectionWarningAction.emportCurrentXls.title.setName=设置名称 +DetectionWarningAction.emportCurrentXls.title.monitorWay=监测方式 +DetectionWarningAction.emportCurrentXls.title.lastCheckTime=最近检查时间 +DetectionWarningAction.emportCurrentXls.title.duration=持续时间 +DetectionWarningAction.emportCurrentXls.title.attempt=尝试次数 +DetectionWarningAction.emportCurrentXls.title.alertLevel=预警级别 +DetectionWarningAction.emportCurrentXls.title.performanceData=性能数据 +DetectionWarningAction.emportCurrentXls.warningInfoTable=告警数据信息表 +DetectionWarningAction.emportCurrentXls.selectErrorTable=查询异常列表 异常 +DetectionWarningAction.emportCurrentXls.faild=操作失败 +DetectionWarningAction.emportCurrentXls.success=操作成功 +DetectionWarningAction.emportCurrentXls.getWarningInfo=获取告警信息列表显示告警级别 异常 +DetectionWarningAction.emportCurrentXls.getWarningFilteInfo=获取异常监测列表过滤配置 异常 +DetectionWarningAction.emportCurrentXls.selectWarningTable=查询异常列表 异常 +DetectionWarningAction.emportCurrentXls.selectDetecateType=查询监测类别信息 异常 +DetectionWarningAction.emportCurrentXls.state=状态 +DetectionWarningAction.emportCurrentXls.normal=正常 +DetectionWarningAction.emportCurrentXls.exception=异常 +DetectionWarningAction.emportCurrentXls.doFaild=执行失败 +DetectionWarningAction.emportCurrentXls.outWarningValue=超过告警值 +DetectionWarningAction.emportCurrentXls.day=天 +DetectionWarningAction.emportCurrentXls.hour=小时 +DetectionWarningAction.emportCurrentXls.minute=分 +DetectionWarningAction.emportCurrentXls.second=秒 +DetectionWarningAction.emportCurrentXls.flashWarning=动画告警 +DetectionWarningAction.emportCurrentXls.sysWarning=系统运行警告: +DetectionWarningAction.emportCurrentXls.policeEmergent=紧急警告: +DetectionWarningAction.emportCurrentXls.unpoliceEmergent1=非紧急 +DetectionWarningAction.emportCurrentXls.unpoliceEmergent2=级警告: + +#MetaDataSetAction.java +MetaDataSetAction.queryCheckTypeSource.faild=操作失败 +MetaDataSetAction.queryCheckTypeSource.success=操作成功 +MetaDataSetAction.queryCheckTypeSource.fieldExists=字段名已存在,请重新输入! +MetaDataSetAction.queryCheckTypeSource.transIdExists=该传输序号已存在,请重新输入! +MetaDataSetAction.queryCheckTypeSource.transIdIncoherence=传输序号不连贯,请重新输入! +MetaDataSetAction.queryCheckTypeSource.addDetecateType=添加监测类别管理校验异常 +MetaDataSetAction.queryCheckTypeSource.tableExists=数据表已存在 +MetaDataSetAction.queryCheckTypeSource.recordExists=记录已存在,请重新输入! +MetaDataSetAction.queryCheckTypeSource.editDisable=禁止修改,请停用该字段并以增加新字段的方式进行修改。 +MetaDataSetAction.queryCheckTypeSource.transIdExists=该传输序号已存在,请重新输入! +MetaDataSetAction.queryCheckTypeSource.inputTransId=请输入传输序号 +MetaDataSetAction.queryCheckTypeSource.updateTable=数据表已生成,禁止修改! +MetaDataSetAction.queryCheckTypeSource.addFiled1=请新增字段,填补传输序号的位置,传输序号= +MetaDataSetAction.queryCheckTypeSource.addFiled2=,或者修改其他传输序号,以使其连贯 +MetaDataSetAction.queryCheckTypeSource.repeatRecord=存在重复记录,请重新输入! +MetaDataSetAction.queryCheckTypeSource.validateRepeat=校验是否存在重复记录异常 +MetaDataSetAction.queryCheckTypeSource.getOidDict=获取OID字典失败! +MetaDataSetAction.queryCheckTypeSource.addSuccess=添加成功! +MetaDataSetAction.queryCheckTypeSource.addFaild=添加失败! +MetaDataSetAction.queryCheckTypeSource.addFieldIndexFaild=字段添加索引失败! +MetaDataSetAction.queryCheckTypeSource.pleaseAddField=请先添加字段! +MetaDataSetAction.queryCheckTypeSource.cantCreateTable=存在空字段名,无法生成表! +MetaDataSetAction.queryCheckTypeSource.filedToCreate=生成失败! + +#MonitorDataAction.java +MonitorDataAction.emportCurrentXlsAbnormalSet.exception=异常 +MonitorDataAction.emportCurrentXlsAbnormalSet.unnormal=不正常 +MonitorDataAction.emportCurrentXlsAbnormalSet.normal=正常 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.hostname=主机名 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.checkType=监测类别 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.setName=设置名称 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.state=状态 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.lastCheckTime=最近检查时间 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.duration=持续时间 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.attempt=尝试次数 +MonitorDataAction.emportCurrentXlsAbnormalSet.title.stateInfo=状态信息 +MonitorDataAction.emportCurrentXlsAbnormalSet.deviceException=异常设备信息表 +MonitorDataAction.emportCurrentXlsAbnormalSet.detecateData=监测数据信息表 +MonitorDataAction.emportCurrentXlsAbnormalSet.faild=操作失败 +MonitorDataAction.emportCurrentXlsAbnormalSet.success=操作成功 +MonitorDataAction.emportCurrentXlsAbnormalSet.cartogram=统计图 +MonitorDataAction.emportCurrentXlsAbnormalSet.avg=平均值 +MonitorDataAction.emportCurrentXlsAbnormalSet.moment= 瞬间值 +MonitorDataAction.emportCurrentXlsAbnormalSet.avgStr=平均值之和 +MonitorDataAction.emportCurrentXlsAbnormalSet.pointStr=瞬间值之和 +MonitorDataAction.emportCurrentXlsAbnormalSet.charStr=之和 +MonitorDataAction.emportCurrentXlsAbnormalSet.linkedStr=连接后的字符串 +MonitorDataAction.emportCurrentXlsAbnormalSet.state=状态 +MonitorDataAction.emportCurrentXlsAbnormalSet.doFaild=执行失败 +MonitorDataAction.emportCurrentXlsAbnormalSet.noTable=数据库表未创建! +MonitorDataAction.emportCurrentXlsAbnormalSet.outWarning=超过预警值 +MonitorDataAction.emportCurrentXlsAbnormalSet.shakehands=握手监测 +MonitorDataAction.emportCurrentXlsAbnormalSet.day=天 +MonitorDataAction.emportCurrentXlsAbnormalSet.hour=小时 +MonitorDataAction.emportCurrentXlsAbnormalSet.minute=分 +MonitorDataAction.emportCurrentXlsAbnormalSet.second=秒 +MonitorDataAction.emportCurrentXlsAbnormalSet.checkSetingsError=设置名称查看异常! + +#OidDictionaryAction.java +OidDictionaryAction.queryDictionary.queryDictFaild=查询数据字典信息失败! +OidDictionaryAction.queryDictionary.faild=操作失败 +OidDictionaryAction.queryDictionary.success=操作成功 +OidDictionaryAction.queryDictionary.oidExists=此OID字典已存在,请重新输入 +OidDictionaryAction.queryDictionary.addBoxFaild=添加机柜信息失败! +OidDictionaryAction.queryDictionary.openUpdateViewFaild=打开修改页面失败! +OidDictionaryAction.queryDictionary.recordExists=记录已存在,请重新输入! +OidDictionaryAction.queryDictionary.updateFaild=更新失败! + + +#PoliceSetAction.java +PoliceSetAction.queryPoliceSetInfo.faild=操作失败 +PoliceSetAction.queryPoliceSetInfo.success=操作成功 +PoliceSetAction.queryPoliceSetInfo.recordExists=记录已存在,请重新输入! + +#SwitchDetectionAction.java +SwitchDetectionAction.emportXls.noData=没有数据 +SwitchDetectionAction.emportXls.title.portName=端口名 +SwitchDetectionAction.emportXls.title.bandwidth=带宽(Mbps) +SwitchDetectionAction.emportXls.title.status=状态 +SwitchDetectionAction.emportXls.title.inputRate=输入速率(bps) +SwitchDetectionAction.emportXls.title.packetRate=收包速率(pps) +SwitchDetectionAction.emportXls.title.inputPacketLoss=输入丢包数 +SwitchDetectionAction.emportXls.title.inputErrNum=输入差错数 +SwitchDetectionAction.emportXls.title.ouputRate=输出速率(bps) +SwitchDetectionAction.emportXls.title.outPacketRate=发包速率(pps) +SwitchDetectionAction.emportXls.title.outputPacketLoss=输出丢包数 +SwitchDetectionAction.emportXls.title.outputErrNum=输出差错数 +SwitchDetectionAction.emportXls.title.lastCheckTime=最后监测时间 +SwitchDetectionAction.emportXls.nodeIp=节点IP: +SwitchDetectionAction.emportXls.portInfo=端口详细信息 +SwitchDetectionAction.emportXls.title1.checkType=监测类别 +SwitchDetectionAction.emportXls.title1.setName=设置名称 +SwitchDetectionAction.emportXls.title1.switchIp=交换机IP +SwitchDetectionAction.emportXls.title1.portNum=端口数 +SwitchDetectionAction.emportXls.title1.lastCheckTime=最新监测时间 +SwitchDetectionAction.emportXls.netDetecateInfo=网元监测信息表 +SwitchDetectionAction.emportXls.debugInfo1=端口数据计算抛弃数据 +SwitchDetectionAction.emportXls.debugInfo2=端口数据计算抛弃数据:时间 +SwitchDetectionAction.emportXls.debugInfo3=端口数据计算抛弃数据:输入包速度与输入字节速度计算式 +SwitchDetectionAction.emportXls.debugInfo4=端口数据计算抛弃数据:输入字节速度和带宽 +SwitchDetectionAction.emportXls.noPictore=此节点未配置相应图形! +SwitchDetectionAction.emportXls.operationRecord1=操作记录:统计当前节点有哪些监测 +SwitchDetectionAction.emportXls.operationRecord2=操作记录:开始更新node_figure_info监测信息。。。 +SwitchDetectionAction.emportXls.operationRecord3=操作记录:开始查询系统基础信息。。。 +SwitchDetectionAction.emportXls.operationRecord4=操作记录:开始查询节点{0}相关信息。。。 +SwitchDetectionAction.emportXls.operationRecord5=操作记录:开始生成svg文件。。。 +SwitchDetectionAction.emportXls.operationRecord6=操作记录:查询共有几个物理设备,得到设备总高度(或者宽度)。。。 +SwitchDetectionAction.emportXls.normal=正常 +SwitchDetectionAction.emportXls.exception=异常 +SwitchDetectionAction.emportXls.netDetecationException=网元监测信息图形展示 异常 +SwitchDetectionAction.emportXls.queryCurrentNode=查询当前节点的所有设备实例 +SwitchDetectionAction.emportXls.operationRecord7=操作记录:获取系统基础信息 +SwitchDetectionAction.emportXls.operationRecord8=操作记录:获取系统统计信息 +SwitchDetectionAction.emportXls.showError=网元监测信息图形化展示->查询系统基本信息 异常 +SwitchDetectionAction.emportXls.deviceError=网元图形化配置 初始化信息:seqId、设备类型、设备型号 查询 异常 +SwitchDetectionAction.emportXls.operationRecord9=操作记录:查询设备型号底图sql +SwitchDetectionAction.emportXls.noDevice=无对应设备型号! +SwitchDetectionAction.emportXls.operationRecord10=操作记录:查询设备的子设备sql +SwitchDetectionAction.emportXls.parentDeviceCode=父设备code +SwitchDetectionAction.emportXls.operationRecord11=操作记录:查询叠加时的槽位基数sql +SwitchDetectionAction.emportXls.operationRecord12=操作记录:查询设备的卡槽位置sql +SwitchDetectionAction.emportXls.subDeviceError=获取设备型号{0}的子设备 异常 +SwitchDetectionAction.emportXls.configSuccess=配置成功 +SwitchDetectionAction.emportXls.operationRecord13=操作记录:查询叶子设备(不重复)sql +SwitchDetectionAction.emportXls.viewSubDeviceError=查询界面配置设备的所有叶子设备 异常 +SwitchDetectionAction.emportXls.nodeFigureInfo=递归生成nodeFigureInfo记录 异常 +SwitchDetectionAction.emportXls.DeviceInfo=根据DeviceInfo生成nodeFigureInfo对象 异常 +SwitchDetectionAction.emportXls.seqId=根据seqId:{0}获取对应ip 异常 +SwitchDetectionAction.emportXls.operationRecord14=查询端口详细信息sql +SwitchDetectionAction.emportXls.queryPortError=查询端口详细信息 异常 +SwitchDetectionAction.emportXls.queryAllPortError=查询所有端口详细信息 异常 +SwitchDetectionAction.emportXls.detection_info=根据seqid及监测设置id,获取detection_info表的分区 异常 +SwitchDetectionAction.emportXls.outTimeError={0}操作记录:tableName={1},信息全部超时,未接收到监测信息{2} +SwitchDetectionAction.emportXls.dataCheckTime=操作记录:查询网元设备最新监测时间为:{0}操作记录:网元设备最新监测时间为 +SwitchDetectionAction.emportXls.operationRecord15=操作记录:查询节点的图形配置相关监测信息sql +SwitchDetectionAction.emportXls.operationRecord16=操作记录:查询网元设备最新监测时间为: +SwitchDetectionAction.emportXls.node_figure_info=更新node_figure_info表中的设备状态信息、监测时间(数字表示)及显示的图片 异常 +SwitchDetectionAction.emportXls.operationRecord17=操作记录:查询节点的图形配置相关监测信息sql +SwitchDetectionAction.emportXls.node_figure_info=更新node_figure_info表中的设备状态信息、监测时间(数字表示)及显示的图片 异常 +SwitchDetectionAction.emportXls.setIdError=通过监测设置id获取监测信息存放的表名 异常 +SwitchDetectionAction.emportXls.getSql=getLatestDetectTimeDigitalBySeqId获取最新监测sql +SwitchDetectionAction.emportXls.newDetecationInfo=通过seqId和表名,查询seqId的最新监测信息时间 异常 +SwitchDetectionAction.emportXls.getNewDetecationSql=getLatestCheckGapBySeqId获取分区sql获取最新监测sql +SwitchDetectionAction.emportXls.detecationTimeError=通过seqId和表名,查询seqId的最新监测信息的监测时间间隔 异常 +SwitchDetectionAction.emportXls.operationRecord18=操作记录:项目绝对路径为 +SwitchDetectionAction.emportXls.operationRecord19=操作记录:svg图片所在路径为: +SwitchDetectionAction.emportXls.operationRecord20=操作记录:生成svg文件的路径为: +SwitchDetectionAction.emportXls.operationRecord21=操作记录:已生成svg文件: +SwitchDetectionAction.emportXls.svgFileError=生成svg文件 异常 +SwitchDetectionAction.emportXls.netSpeed=带宽 +SwitchDetectionAction.emportXls.output=输出速度 +SwitchDetectionAction.emportXls.input=输入速度 +SwitchDetectionAction.emportXls.packout=发包速率 +SwitchDetectionAction.emportXls.packin=收包速率 +SwitchDetectionAction.emportXls.avgSpeed=平均速度 +SwitchDetectionAction.emportXls.pointSpeed=瞬时速度 +SwitchDetectionAction.emportXls.cartogram=统计图 +SwitchDetectionAction.emportXls.portLineChart=获取端口详细信息折线图 异常 + +#DownLoadFileAction.java +DownLoadFileAction.downloadDevPic.downloadFileIsnull=下载文件已转移或已删除! +DownLoadFileAction.downloadDevPic.noFile=文件不存在 +DownLoadFileAction.downloadDevPic.toDownload=文件不存在,请点击下载 +DownLoadFileAction.downloadDevPic.saveToD=并放于D:盘下 + +#FunctionManagerAction.java +FunctionManagerAction.updateMKInfo.success=操作成功 +FunctionManagerAction.updateMKInfo.faild=操作失败 + +#MissionParameterDefaultsAction.java +MissionParameterDefaultsAction.add.toAddView=跳转到添加页面 操作 +MissionParameterDefaultsAction.check.configExists=该参数配置已存在,请重新选择! +MissionParameterDefaultsAction.check.saveMissionInfo=保存 任务及参数信息操作 +MissionParameterDefaultsAction.check.stopMission=停用任务操作 +MissionParameterDefaultsAction.check.setingInfo=参数信息 + +#SimpleMissionAction.java +SimpleMissionAction.add.toAddView=跳转到添加页面 操作 +SimpleMissionAction.check.saveMissionInfo=保存 任务及参数信息操作 +SimpleMissionAction.check.missionTypeError=任务类型错误~ Error +SimpleMissionAction.check.stopMission=停用任务操作 +SimpleMissionAction.check.appUpdate=应用升级 +SimpleMissionAction.check.validateConfig=配置正确性验证 +SimpleMissionAction.check.saveSuccess=保存成功 +SimpleMissionAction.check.message1=请先设置当前系统下该任务的默认配置,再进行应用升级 +SimpleMissionAction.check.message2=请先设置当前系统下该任务的默认配置,再进行配置正确性验证 + +#NmsErrorInfoAction.java +NmsErrorInfoAction.query.queryFaild=查询失败,请重新操作 +NmsErrorInfoAction.query.noResultReturn=为查询到相关信息,请重新操作 +NmsErrorInfoAction.query.invalidId=数据ID无效,请重新操作 +NmsErrorInfoAction.query.getParamsFaild=获取参数失败,请重新操作 +NmsErrorInfoAction.query.faild=操作成功! + +#NmsTaskManagerAction.java +NmsTaskManagerAction.executeAction.nodeCheckInfo=已过滤失效节点(组) +NmsTaskManagerAction.executeAction.viewMission=查看任务 +NmsTaskManagerAction.executeAction.statistic=查看统计结果 +NmsTaskManagerAction.executeAction.statisticList=查看统计结果列表 +NmsTaskManagerAction.executeAction.statisticListChild=查看统计结果列表 +NmsTaskManagerAction.executeAction.pushFile=推送文件 +NmsTaskManagerAction.executeAction.getNotFlowData=非流文本数据获取 +NmsTaskManagerAction.executeAction.getFlowData=流文本数据获取 +NmsTaskManagerAction.executeAction.regist=注册 +NmsTaskManagerAction.executeAction.execCmd=命令执行 +NmsTaskManagerAction.executeAction.upgrade=升级部署 +NmsTaskManagerAction.executeAction.Y=是 +NmsTaskManagerAction.executeAction.N=否 +NmsTaskManagerAction.executeAction.missionHasCreate=任务已创建 +NmsTaskManagerAction.executeAction.missionStart=任务已开始执行 +NmsTaskManagerAction.executeAction.complete=已完成 +NmsTaskManagerAction.executeAction.missionUncomplete=任务未能执行 +NmsTaskManagerAction.executeAction.loopMissionPrepareRevoke=周期任务准备撤销 +NmsTaskManagerAction.executeAction.revokeLoopMission=周期任务执行撤销 +NmsTaskManagerAction.executeAction.revokeLoopMissionComplete=周期任务完成撤销 +NmsTaskManagerAction.executeAction.allSuccess=全部成功 +NmsTaskManagerAction.executeAction.allFaild=全部失败 +NmsTaskManagerAction.executeAction.someSUccess=部分成功 +NmsTaskManagerAction.executeAction.createUserCheck=发布人查看 +NmsTaskManagerAction.executeAction.createUserGroupCheck=发布人所在组查看 +NmsTaskManagerAction.executeAction.systemUser=系统内全部人员查看 +NmsTaskManagerAction.executeAction.title.missionName=任务名称 +NmsTaskManagerAction.executeAction.title.missionType=任务类型 +NmsTaskManagerAction.executeAction.title.isLoop=是否周期任务 +NmsTaskManagerAction.executeAction.title.missionState=任务状态 +NmsTaskManagerAction.executeAction.title.missionStateDesc=任务状态描述 +NmsTaskManagerAction.executeAction.title.system=业务系统 +NmsTaskManagerAction.executeAction.title.userGroup=用户组 +NmsTaskManagerAction.executeAction.title.viewPrivilige=查看权限 +NmsTaskManagerAction.executeAction.title.creater=创建人 +NmsTaskManagerAction.executeAction.title.createTime=创建时间 +NmsTaskManagerAction.executeAction.missionManageTable=任务管理信息表 +NmsTaskManagerAction.executeAction.noNode=无符合条件的节点,请重新操作! +NmsTaskManagerAction.executeAction.toJudgeFaild=判定失败 +NmsTaskManagerAction.executeAction.faild=操作失败 +NmsTaskManagerAction.executeAction.success=操作成功 +NmsTaskManagerAction.executeAction.sql1=update mission_state_table mst set mst.mission_state_desc = '共"+total+"个执行节点,
"+(total-ok-fail)+"个未执行,
"+(ok+fail)+"个已执行【成功"+ok+"个,失败"+fail+"个】' +NmsTaskManagerAction.executeAction.missionExec=任务执行通知 +NmsTaskManagerAction.executeAction.missionComplete=任务执行结束 +NmsTaskManagerAction.executeAction.missionRevokeComplete=任务撤销完成 +NmsTaskManagerAction.executeAction.validFaild=判定失败后,重新统计当前任务的状态,及任务状态描述(非周期) 异常 +NmsTaskManagerAction.executeAction.sql2=update mission_state_table mst set mst.mission_state_desc = '最新周期共"+total+"个执行节点,
"+(total-ok-fail)+"个未执行,
"+(ok+fail)+"个已执行【成功"+ok+"个,失败"+fail+"个】' where mst.mission_id +NmsTaskManagerAction.executeAction.validFaildLoop=判定失败后,重新统计当前任务的状态,及任务状态描述(周期) 异常 +NmsTaskManagerAction.executeAction.root=根节点 +NmsTaskManagerAction.executeAction.secondNode=二级节点 +NmsTaskManagerAction.executeAction.thirdNode=三级节点 +NmsTaskManagerAction.executeAction.missionStateError=任务状态异常! +NmsTaskManagerAction.executeAction.missionExpire=任务执行起止时间已过期,操作失败! +NmsTaskManagerAction.executeAction.miessionState=任务状态设置为 +NmsTaskManagerAction.executeAction.stop=停用 +NmsTaskManagerAction.executeAction.alive=启用 +NmsTaskManagerAction.executeAction.selectMission=请选择任务! +NmsTaskManagerAction.executeAction.checkResultFaild=查看结果失败 +NmsTaskManagerAction.executeAction.checkResultViewFaild=查看任务执行结果图失败! +NmsTaskManagerAction.executeAction.checkMissionResultFaild=任务结果查询失败 +NmsTaskManagerAction.executeAction.missionResultChart=任务结果统计列表异常! +NmsTaskManagerAction.executeAction.checkResultError=查看任务执行结果异常! +NmsTaskManagerAction.executeAction.missionName=任务名称 +NmsTaskManagerAction.executeAction.nodeIp=节点IP +NmsTaskManagerAction.executeAction.resultReturn=执行结果 +NmsTaskManagerAction.executeAction.resultCause=结果原因 +NmsTaskManagerAction.executeAction.all=全部 +NmsTaskManagerAction.executeAction.ok=成功 +NmsTaskManagerAction.executeAction.err=失败 +NmsTaskManagerAction.executeAction.validFaild=判定失败 +NmsTaskManagerAction.executeAction.lssue=下发中 +NmsTaskManagerAction.executeAction.lssueSuccess=下发成功 +NmsTaskManagerAction.executeAction.processStop=进程停用成功 +NmsTaskManagerAction.executeAction.fileBackup=文件备份成功 +NmsTaskManagerAction.executeAction.fileUpdate=文件更新成功 +NmsTaskManagerAction.executeAction.startSuccess=启动成功 +NmsTaskManagerAction.executeAction.startFaild=启动失败 +NmsTaskManagerAction.executeAction.unknowState=未知结果状态 +NmsTaskManagerAction.executeAction.noResultToExport=没有查询到结果信息,无需导出 +NmsTaskManagerAction.executeAction.filePush=文件推送 +NmsTaskManagerAction.executeAction.resultExport=结果导出 +NmsTaskManagerAction.executeAction.selectFileIsNotExists=所选择的目标文件已全部转移或已删除! +NmsTaskManagerAction.executeAction.missionLssueSuccess=任务下发成功 +NmsTaskManagerAction.executeAction.cmdExecSuccess=命令执行成功 +NmsTaskManagerAction.executeAction.cmdExecFaild=命令执行失败 +NmsTaskManagerAction.executeAction.prepareRevoke=准备撤销 +NmsTaskManagerAction.executeAction.revoke=撤销中 +NmsTaskManagerAction.executeAction.revokSuccess=撤销完成 +NmsTaskManagerAction.executeAction.noLinkInfo=未查到关联任务信息,请重新操作! +NmsTaskManagerAction.executeAction.cmdFormatErr=命令参数格式不正确 +NmsTaskManagerAction.executeAction.cmdFormatErrToDo=命令参数格式不正确!操作失败 +NmsTaskManagerAction.executeAction.fileName=附件名称 +NmsTaskManagerAction.executeAction.fileSize=附件大小 +NmsTaskManagerAction.executeAction.fileTotalSize=附件总大小 +NmsTaskManagerAction.executeAction.uploadOk=上传 ok +NmsTaskManagerAction.executeAction.addPushFile=请添加推送文件,否则无法创建任务! +NmsTaskManagerAction.executeAction.updateInfoFaild=任务查看修改信息失败 +NmsTaskManagerAction.executeAction.noCommandToExec=无对应命令参数 + +#NodeGroupManageAction.java +NodeGroupManageAction.downloadExample.title.nodeGroupName=节点组名称(必填) +NodeGroupManageAction.downloadExample.title.groupDesc=组描述 +NodeGroupManageAction.downloadExample.title.parentGroup=父级组(为空时默认为顶级节点) +NodeGroupManageAction.downloadExample.nodeGroupInfo=节点组信息表 +NodeGroupManageAction.downloadExample.errorInfo1=行1列节点节点组名称不能为空; +NodeGroupManageAction.downloadExample.errorInfo2=行1列节点节点组名称错误; +NodeGroupManageAction.downloadExample.errorInfo3=行2列节点组描述超长; +NodeGroupManageAction.downloadExample.errorInfo4=行3列节点父级组错误; +NodeGroupManageAction.downloadExample.nodeGroupName=节点组名称 +NodeGroupManageAction.downloadExample.groupDesc=组描述 +NodeGroupManageAction.downloadExample.parentGroupId=父级组id +NodeGroupManageAction.downloadExample.errorInfo=错误信息 +NodeGroupManageAction.downloadExample.faild=操作失败 +NodeGroupManageAction.downloadExample.success=操作成功 +NodeGroupManageAction.downloadExample.fileIsNull=选择的文件为空,请重新选择! +NodeGroupManageAction.downloadExample.subNodeList=此节点组已创建节点,不可创建子节点组; +NodeGroupManageAction.downloadExample.nodegroupTable=查看权限不能比其父级节点组大; +NodeGroupManageAction.downloadExample.nodeGroupExists=节点组已存在; +NodeGroupManageAction.downloadExample.nodeInfoExportErr=该节点信息导入异常; +NodeGroupManageAction.downloadExample.nodeGroupNameRequired=节点组名称(必填) +NodeGroupManageAction.downloadExample.parentGroup=父级组(为空时默认为顶级节点) +NodeGroupManageAction.downloadExample.nodeGroupIsExists=节点组已存在,请重新输入! +NodeGroupManageAction.downloadExample.viewLevleTooBig=查看权限不能比其父级节点组大,请重新输入! +NodeGroupManageAction.downloadExample.viewLevleTooSmall=查看权限不能比其子级节点组小,请重新输入! + +#NodeManageAction.java +NodeManageAction.addNodeInfo.boxHadNode=该节点的所选机柜位置已放有节点,请重新输入! +NodeManageAction.addNodeInfo.success=操作成功 +NodeManageAction.addNodeInfo.faild=操作失败 +NodeManageAction.addNodeInfo.nodeHadIp=该节点组下已经存在该IP,请重新输入! +NodeManageAction.addNodeInfo.title.nodeIp=节点IP(必填) +NodeManageAction.addNodeInfo.title.nodeMac=节点MAC(必填) +NodeManageAction.addNodeInfo.title.nodeName=节点名称(必填) +NodeManageAction.addNodeInfo.title.nodeType=节点类型(必填,0:服务器,1:网元(网元类型必填)) +NodeManageAction.addNodeInfo.title.netType=网元类型(1:专用设备,2:盘阵,3:封堵路由器,4:其他网元) +NodeManageAction.addNodeInfo.title.username=用户名 +NodeManageAction.addNodeInfo.title.pwd=密码 +NodeManageAction.addNodeInfo.title.uWidth=节点厚度U位(必填) +NodeManageAction.addNodeInfo.title.boxId=机柜编号(必填) +NodeManageAction.addNodeInfo.title.startU=机柜起始U位(必填) +NodeManageAction.addNodeInfo.title.snmpVersion=SNMP版本(必填,version2c=1 version3=3) +NodeManageAction.addNodeInfo.title.nodeState=节点状态(必填,0:正常,1:已删除或停用) +NodeManageAction.addNodeInfo.title.nodeIpInfo=节点IP信息 +NodeManageAction.addNodeInfo.title.nodeDesc=节点描述 +NodeManageAction.addNodeInfo.nodeTable=节点表 +NodeManageAction.addNodeInfo.errorInfo1=行1列不能为空; +NodeManageAction.addNodeInfo.errorInfo2=行1列的ip地址格式错误; +NodeManageAction.addNodeInfo.errorInfo3=行2列节点Mac不能为空; +NodeManageAction.addNodeInfo.errorInfo4=行2列节点Mac类型错误; +NodeManageAction.addNodeInfo.errorInfo5=行3列节点名称不能为空; +NodeManageAction.addNodeInfo.errorInfo6=行4列节点类型不能为空; +NodeManageAction.addNodeInfo.errorInfo7=行4列节点类型错误; +NodeManageAction.addNodeInfo.errorInfo8=行4列的节点类型格式错误; +NodeManageAction.addNodeInfo.errorInfo9=行5列的网元类型为1-4间的数字; +NodeManageAction.addNodeInfo.errorInfo10=行5列的网元类型格式错误; +NodeManageAction.addNodeInfo.errorInfo11=行5列的网元类型为1-4间的数字; +NodeManageAction.addNodeInfo.errorInfo12=行4列值为1时5列的网元类型为必填项; +NodeManageAction.addNodeInfo.errorInfo13=行8列节点U位不能为空; +NodeManageAction.addNodeInfo.errorInfo14=行8列节点U位错误; +NodeManageAction.addNodeInfo.errorInfo15=行8列节点U位类型错误; +NodeManageAction.addNodeInfo.errorInfo16=行9列机柜编号不能为空; +NodeManageAction.addNodeInfo.errorInfo17=行10列机柜起始U位不能为空; +NodeManageAction.addNodeInfo.errorInfo18=行10列机柜起始U位错误; +NodeManageAction.addNodeInfo.errorInfo19=行10列机柜起始U位类型错误; +NodeManageAction.addNodeInfo.errorInfo20=行11列SNMP版本不能为空; +NodeManageAction.addNodeInfo.errorInfo21=行11列SNMP版本错误; +NodeManageAction.addNodeInfo.errorInfo22=行12列节点状态不能为空; +NodeManageAction.addNodeInfo.errorInfo23=行12列节点状态错误; +NodeManageAction.addNodeInfo.selectFileIsNull=选择的文件为空,请重新选择! +NodeManageAction.addNodeInfo.noBoxWithNode=该节点所选机柜不存在 +NodeManageAction.addNodeInfo.spaceToSmall=该节点所选放置位置超出机柜可放置范围 +NodeManageAction.addNodeInfo.boxHadNodeDesc=该节点所选机柜位置已放有节点 +NodeManageAction.addNodeInfo.nodeHadIpDesc=该节点组下已经存在该IP +NodeManageAction.addNodeInfo.importFaild=该节点的节点组为空,导入失败 +NodeManageAction.addNodeInfo.nodeInfoImportFaild=该节点信息导入异常 +NodeManageAction.addNodeInfo.newNode=新节点 + +#BoxSetAction.java +BoxSetAction.queryBoxInfo.queryBoxFaild=查询机柜信息失败! +BoxSetAction.queryBoxInfo.boxManageAddValidate=机柜管理添加校验失败! +BoxSetAction.queryBoxInfo.success=操作成功 +BoxSetAction.queryBoxInfo.faild=操作失败 +BoxSetAction.queryBoxInfo.addBoxFaild=添加机柜信息失败! +BoxSetAction.queryBoxInfo.toUpdateViewFaild=打开修改页面失败! +BoxSetAction.queryBoxInfo.recordExists=记录已存在,请重新输入! +BoxSetAction.queryBoxInfo.boxManageUpdateFaild=机柜管理修改异常! +BoxSetAction.queryBoxInfo.boxIdExists=该机柜编号已存在,修改失败! +BoxSetAction.queryBoxInfo.hadUpdateNode=该机柜下已经维护节点,禁止减小U位! +BoxSetAction.queryBoxInfo.updateFaild=更新失败! +BoxSetAction.queryBoxInfo.hadUpdateNodeToDelete1=机柜 +BoxSetAction.queryBoxInfo.hadUpdateNodeToDelete2=下已经维护节点,禁止删除! +BoxSetAction.queryBoxInfo.deleteFaild=删除失败! +BoxSetAction.queryBoxInfo.title=编号(必填) +BoxSetAction.queryBoxInfo.title=U位(必填) +BoxSetAction.queryBoxInfo.title=机房编号(必填) +BoxSetAction.queryBoxInfo.title=机房行号(必填) +BoxSetAction.queryBoxInfo.title=机房列号(必填) +BoxSetAction.queryBoxInfo.title=描述(必填) +BoxSetAction.queryBoxInfo.boxBaseInfo=机柜基本信息表 +BoxSetAction.queryBoxInfo.errorInfo1=行1列节点编号不能为空; +BoxSetAction.queryBoxInfo.errorInfo2=行1列节点编号错误; +BoxSetAction.queryBoxInfo.errorInfo3=行2列节点U位不能为空; +BoxSetAction.queryBoxInfo.errorInfo4=行2列节点U位错误,必须为数字; +BoxSetAction.queryBoxInfo.errorInfo5=行3列节点机房编号不能为空; +BoxSetAction.queryBoxInfo.errorInfo6=行3列节点机房编号错误; +BoxSetAction.queryBoxInfo.errorInfo7=行4列节点机房行号不能为空; +BoxSetAction.queryBoxInfo.errorInfo8=行4列节点机房行号错误; +BoxSetAction.queryBoxInfo.errorInfo9=行5列节点机房列号不能为空; +BoxSetAction.queryBoxInfo.errorInfo10=行5列节点机房列号错误; +BoxSetAction.queryBoxInfo.errorInfo11=行6列节点描述不能为空; +BoxSetAction.queryBoxInfo.errorInfo12=行6列节点描述错误; +BoxSetAction.queryBoxInfo.fileIsNull=选择的文件为空,请重新选择! +BoxSetAction.queryBoxInfo.boxIdRepeat=该节点机柜编号已存在 +BoxSetAction.queryBoxInfo.noRoomExists=该节点所选机房不存在 +BoxSetAction.queryBoxInfo.roomPostionExists=该节点所选机房位置不存在 +BoxSetAction.queryBoxInfo.roomHadBox=该节点所选机房位置已存在机柜 +BoxSetAction.queryBoxInfo.nodeInfoErr=该节点信息导入异常 +BoxSetAction.queryBoxInfo.title1.boxId=机柜编号 +BoxSetAction.queryBoxInfo.title1.boxDesc=机柜描述 +BoxSetAction.queryBoxInfo.title1.roomId=所属机房编号 + +#NodeGroupPositionAction.java +NodeGroupPositionAction.saveConfigTopo.saveConfigInfoFaild=保存拓扑图配置信息失败 +NodeGroupPositionAction.saveConfigTopo.flowErrNode=流量异常的节点 +NodeGroupPositionAction.saveConfigTopo.room=机房 +NodeGroupPositionAction.saveConfigTopo.row=行 +NodeGroupPositionAction.saveConfigTopo.column=列 +NodeGroupPositionAction.saveConfigTopo.box=机柜 +NodeGroupPositionAction.saveConfigTopo.groupNoNode=节点组下暂未维护节点 + +#NodePositionAction.java +NodePositionAction.loadImgs.loadImgsFaild=loadImgs方法,加载‘修改’用图片失败 +NodePositionAction.ajaxDrawDateSource.ajaxDrawDateSourceFaild=ajaxDrawDateSource方法,获取数据出错 +NodePositionAction.getChildGroup.getChildGroupFaild=getChildGroup方法,获取子节点组出错 +NodePositionAction.initnodeBox.initnodeBoxFaild=initnodeBox方法,初始化机柜信息出错 +NodePositionAction.getWarningInfo.getWarningInfoFaild=getWarningInfo方法,获取告警数据出错 +NodePositionAction.getIconModules.systemId=系统ID +NodePositionAction.getIconModules.getIconModulesFaild=getIconModules方法,初始化桌面元素出错 +NodePositionAction.getBoxByGroup.getBoxByGroupFaild=getBoxByGroup方法,拓扑展示获取机柜出错 +NodePositionAction.isHaveWriningNodeInBox.isHaveWriningNodeInBoxFaild=isHaveWriningNodeInBox方法, 判断是否存在告警节点出错 +NodePositionAction.getBoxInfo.getBoxInfoFaild=getBoxInfo方法,获取所有机柜出错 +NodePositionAction.getLastLineSate.getLastLineSateFaild=getLastLineSate方法,刷新连线出错 +NodePositionAction.saveBoxInfo.saveBoxInfoFaild=saveBoxInfo方法,保存机柜信息出错 +NodePositionAction.updateNodes.updateNodesFaild=updateNodes方法,保存位置信息出错 +NodePositionAction.deleteNodes.deleteNodesFaild=deleteNodes方法,删除节点出错 +NodePositionAction.updateLines.updateLinesFaild=updateLines方法,更新连线出错 +NodePositionAction.deleteLatt.deleteLattFaild=deleteLatt方法,删除机柜内节点出错 + + +#RoomManageAction.java +RoomManageAction.downloadExample.title.roomId=机房编号(必填) +RoomManageAction.downloadExample.title.roomRows=机房行数(必填) +RoomManageAction.downloadExample.title.roomColumns=机房列数(必填) +RoomManageAction.downloadExample.title.rootDesc=机房描述 +RoomManageAction.downloadExample.roomInfoTable=机房信息表 +RoomManageAction.downloadExample.errorInfo1=行1列节点机房编号不能为空; +RoomManageAction.downloadExample.errorInfo2=行1列节点机房编号错误; +RoomManageAction.downloadExample.errorInfo3=行2列节点机房行数不能为空; +RoomManageAction.downloadExample.errorInfo4=行2列节点机房行数需小于等于; +RoomManageAction.downloadExample.errorInfo5=行2列节点机房行数错误; +RoomManageAction.downloadExample.errorInfo6=行3列节点机房列数不能为空; +RoomManageAction.downloadExample.errorInfo7=行3列节点机房列数需小于等于; +RoomManageAction.downloadExample.errorInfo8=行3列节点机房列数错误; +RoomManageAction.downloadExample.errorInfo9=行4列节点机房描述超长; +RoomManageAction.downloadExample.roomId=机房编号 +RoomManageAction.downloadExample.roomRows=机房行数 +RoomManageAction.downloadExample.roomColumns=机房列数 +RoomManageAction.downloadExample.roomDesc=机房描述 +RoomManageAction.downloadExample.errorInfo=错误信息 +RoomManageAction.downloadExample.success=操作成功 +RoomManageAction.downloadExample.faild=操作失败 +RoomManageAction.downloadExample.selectFileIsNull=选择的文件为空,请重新选择! +RoomManageAction.downloadExample.roomIdExists=该节点机房编号已存在; +RoomManageAction.downloadExample.nodeInfoImportErr=该节点信息导入异常; +RoomManageAction.downloadExample.title1={ "机房编号", "机房行数","机房列数","机房描述" } +RoomManageAction.downloadExample.queryRoomInfoErr=查询机房信息异常 +RoomManageAction.downloadExample.addRoomConfigErr=添加机房配置校验异常 +RoomManageAction.downloadExample.addRoomInfoErr=添加机房信息失败 +RoomManageAction.downloadExample.updateRoomErr=查询修改机房异常 +RoomManageAction.downloadExample.ajaxValidateErr=ajax查询验证机房编号异常 +RoomManageAction.downloadExample.changeRowsErr=该机房已经维护机柜,禁止减小行数! +RoomManageAction.downloadExample.changecolumnssErr=该机房已经维护机柜,禁止减小列数! +RoomManageAction.downloadExample.updateRoomInfoErr=更新机房信息失败 +RoomManageAction.downloadExample.deleteUnable1=机房 +RoomManageAction.downloadExample.deleteUnable2=已经维护机柜,禁止删除! +RoomManageAction.downloadExample.deleteRoomInfoErr=删除机房信息失败 + +#TopoShowAction.java +TopoShowAction.show3DRoom.alramInfo1=的告警信息 +TopoShowAction.show3DRoom.nodeNum=节点总数 +TopoShowAction.show3DRoom.normalNode=正常节点个数 +TopoShowAction.show3DRoom.abnormalNode=非正常节点个数 +TopoShowAction.show3DRoom.alramInfo3=节点组下还未维护节点 + +#PluginManageAction.java +PluginManageAction.downloadPlugin.targetFileIsNull=目标文件已转移或删除 +PluginManageAction.downloadPlugin.fileDownloadFaild=附件下载失败 +PluginManageAction.downloadPlugin.fileReadFaild=读取文件失败 +PluginManageAction.downloadPlugin.onlyOneToolToUse=每次只能下载一个工具 +PluginManageAction.downloadPlugin.success=操作成功 +PluginManageAction.downloadPlugin.faild=操作失败 +PluginManageAction.downloadPlugin.uploadFile={0}"文件上传到" {1} "成功 +PluginManageAction.downloadPlugin.noTools=未选择工具 +PluginManageAction.downloadPlugin.toolNameRepeat=工具名称已存在 +PluginManageAction.downloadPlugin.fileNameValidateFaild=文件名验证失败 + +#ServerManagerAction.java +ServerManagerAction.downloadExample.title.serverName=服务器名称(必填) +ServerManagerAction.downloadExample.title.serverIp=服务器IP(必填) +ServerManagerAction.downloadExample.title.serverDesc=服务器描述 +ServerManagerAction.downloadExample.serverInfoTable=服务器信息表 +ServerManagerAction.downloadExample.errorInfo1=行1列节点服务器名称不能为空; +ServerManagerAction.downloadExample.errorInfo2=行1列节点服务器名称错误; +ServerManagerAction.downloadExample.errorInfo3=行2列节点服务器IP不能为空; +ServerManagerAction.downloadExample.errorInfo4=行2列节点服务器IP格式错误; +ServerManagerAction.downloadExample.errorInfo5=行2列节点服务器IP错误; +ServerManagerAction.downloadExample.errorInfo6=行3列节点服务器描述超长; +ServerManagerAction.downloadExample.serverName=服务器名称 +ServerManagerAction.downloadExample.serverIp=服务器IP +ServerManagerAction.downloadExample.serverDesc=服务器描述 +ServerManagerAction.downloadExample.errorInfo=错误信息 +ServerManagerAction.downloadExample.success=操作成功 +ServerManagerAction.downloadExample.faild=操作失败 +ServerManagerAction.downloadExample.selectFileIsNull=选择的文件为空,请重新选择! +ServerManagerAction.downloadExample.serverNameExists=该节点服务器名称已存在; +ServerManagerAction.downloadExample.serverIpExists=该节点服务器IP已存在; +ServerManagerAction.downloadExample.nodeInfoImportErr=该节点信息导入异常; +ServerManagerAction.downloadExample.Y=是 +ServerManagerAction.downloadExample.N=否 +ServerManagerAction.downloadExample.title1.createTime=创建时间 +ServerManagerAction.downloadExample.title1.isOnline=是否在线 +ServerManagerAction.downloadExample.errorInfo7=行1列节点起始IP不能为空; +ServerManagerAction.downloadExample.errorInfo8=行1列节点起始IP格式错误; +ServerManagerAction.downloadExample.errorInfo9=行1列节点起始IP错误; +ServerManagerAction.downloadExample.errorInfo10=行2列节点结束IP不能为空; +ServerManagerAction.downloadExample.errorInfo11=行2列节点结束IP格式错误; +ServerManagerAction.downloadExample.errorInfo12=行2列节点结束IP错误; +ServerManagerAction.downloadExample.startIp=起始IP +ServerManagerAction.downloadExample.endIp=结束IP +ServerManagerAction.downloadExample.inputIpErr=起始ip不能大于结束ip +ServerManagerAction.downloadExample.serverIpRepeat=与服务器存在IP交叉重复 +ServerManagerAction.downloadExample.serverDetecateInfo=服务器监测IP信息 +ServerManagerAction.downloadExample.dataIdInvalid=数据ID无效,请重新操作 +ServerManagerAction.downloadExample.DcConfigErr=新增DC范围配置校验异常 +ServerManagerAction.downloadExample.addDcconfigErr=DC范围配置新增失败! +ServerManagerAction.downloadExample.updateDcconfigErr=修改DC范围配置校验异常 +ServerManagerAction.downloadExample.deleteSql=删除sql语句 +ServerManagerAction.downloadExample.addElement=新增元素 +ServerManagerAction.downloadExample.updateDCRangConfigErr=DC范围配置修改失败 + +#BrandManageAction.java +BrandManageAction.addBrand.success=操作成功 +BrandManageAction.addBrand.faild=操作失败 + +#DataDictionaryAction.java +DataDictionaryAction.queryDictionary.queryDictInfoErr=查询数据字典信息失败 +DataDictionaryAction.queryDictionary.warningLevel=级告警 +DataDictionaryAction.queryDictionary.emergent=紧急 +DataDictionaryAction.queryDictionary.nonEmergent=非紧急 +DataDictionaryAction.queryDictionary.selectDetecateDataListErr=查询监测数据列表过滤条件 失败 +DataDictionaryAction.queryDictionary.addDictValidateErr=新增数据字典校验异常 +DataDictionaryAction.queryDictionary.success=操作成功 +DataDictionaryAction.queryDictionary.faild=操作失败 +DataDictionaryAction.queryDictionary.addDictErr=添加数据字典失败 +DataDictionaryAction.queryDictionary.openUpdateViewErr=打开修改页面失败 +DataDictionaryAction.queryDictionary.openUpdateSourceViewErr=打开修改源数据页面失败 +DataDictionaryAction.queryDictionary.updateDictValidateErr=更新数据字典校验异常 +DataDictionaryAction.queryDictionary.NCwarning=NC端是否报主动告警 +DataDictionaryAction.queryDictionary.updateErr=更新失败 +DataDictionaryAction.queryDictionary.queryDictSourceInfoErr=查询数据字典源数据信息失败 +DataDictionaryAction.queryDictionary.getTypeDictErr=获取类别字典失败 +DataDictionaryAction.queryDictionary.addDictSourceErr=添加数据字典源数据失败 + +#DeviceBrandManageAction.java +DeviceBrandManageAction.downloadExampleType.title.deviceModel=设备型号(必填,设备的唯一标识) +DeviceBrandManageAction.downloadExampleType.title.brand=所属品牌(必填,对应品牌编号) +DeviceBrandManageAction.downloadExampleType.title.deviceDesc=设备描述 +DeviceBrandManageAction.downloadExampleType.title.postionNum=级别下位置序号 +DeviceBrandManageAction.downloadExampleType.title.parentModel=父设备型号(为空默认为顶级设备) +DeviceBrandManageAction.downloadExampleType.title.picType=图片类型 +DeviceBrandManageAction.downloadExampleType.title.X=X坐标 +DeviceBrandManageAction.downloadExampleType.title.Y=Y坐标 +DeviceBrandManageAction.downloadExampleType.title.width=宽 +DeviceBrandManageAction.downloadExampleType.title.heigh=高 +DeviceBrandManageAction.downloadExampleType.title.color=边颜色 +DeviceBrandManageAction.downloadExampleType.title.lineWidth=边宽 +DeviceBrandManageAction.downloadExampleType.title.picName=图片名称(必填) +DeviceBrandManageAction.downloadExampleType.title.nameFormate=名称格式([Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置) +DeviceBrandManageAction.downloadExampleType.title.monitorType=监测类别表 +DeviceBrandManageAction.downloadExampleType.title.linkField=连接字段 +DeviceBrandManageAction.downloadExampleType.title.stateField=状态字段 +DeviceBrandManageAction.downloadExampleType.title.character=异常比较符(>,<,=) +DeviceBrandManageAction.downloadExampleType.title.value=异常比较值 +DeviceBrandManageAction.downloadExampleType.title.picLevel=图形级别 +DeviceBrandManageAction.downloadExampleType.title.isLinked=是否有链接(1是,0否) +DeviceBrandManageAction.downloadExampleType.title.isLeaf=是否叶子设备(必填,1是,0否) +DeviceBrandManageAction.downloadExampleType.title.maxConn=设备最大叠加数(整形数值,默认为1) +DeviceBrandManageAction.downloadExampleType.title1.brandCode=设备品牌代码(必填) +DeviceBrandManageAction.downloadExampleType.title1.deviceModel=设备型号(必填) +DeviceBrandManageAction.downloadExampleType.title1.parentDevice=可配父设备(必填) +DeviceBrandManageAction.downloadExampleType.deviceManageInfoTable=设备管理信息表 +DeviceBrandManageAction.downloadExampleType.deviceManageInfo=设备管理信息 +DeviceBrandManageAction.downloadExampleType.brandLinkInfo=品牌型号关联信息 +DeviceBrandManageAction.downloadExampleType.errorInfo1=行1列节点设备型号不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo2=行1列节点设备型号错误; +DeviceBrandManageAction.downloadExampleType.errorInfo3=行2列节点所属品牌不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo4=行2列节点所属品牌错误; +DeviceBrandManageAction.downloadExampleType.errorInfo5=行3列节点设备描述错误; +DeviceBrandManageAction.downloadExampleType.errorInfo6=行4列级别下位置序号错误; +DeviceBrandManageAction.downloadExampleType.errorInfo7=行5列节点父设备型号错误; +DeviceBrandManageAction.downloadExampleType.errorInfo8=行6列节点图片类型错误; +DeviceBrandManageAction.downloadExampleType.errorInfo9=行7列节点X坐标错误; +DeviceBrandManageAction.downloadExampleType.errorInfo10=行8列节点Y坐标错误; +DeviceBrandManageAction.downloadExampleType.errorInfo11=行9列节点宽错误; +DeviceBrandManageAction.downloadExampleType.errorInfo12=行10列节点高错误; +DeviceBrandManageAction.downloadExampleType.errorInfo13=行11列节点边颜色错误; +DeviceBrandManageAction.downloadExampleType.errorInfo14=行12列节点边宽错误; +DeviceBrandManageAction.downloadExampleType.errorInfo15=行13列节点图片名称不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo16=行13列节点图片名称错误; +DeviceBrandManageAction.downloadExampleType.errorInfo17=行14列节点名称格式错误; +DeviceBrandManageAction.downloadExampleType.errorInfo18=行15列节点监测类别表错误; +DeviceBrandManageAction.downloadExampleType.errorInfo19=行16列节点连接字段错误; +DeviceBrandManageAction.downloadExampleType.errorInfo20=行17列节点状态字段错误; +DeviceBrandManageAction.downloadExampleType.errorInfo21=行18列节点异常比较符错误; +DeviceBrandManageAction.downloadExampleType.errorInfo22=行21列节点是否有链接错误; +DeviceBrandManageAction.downloadExampleType.errorInfo23=行20列节点图形级别错误; +DeviceBrandManageAction.downloadExampleType.errorInfo24=行22列节点是否叶子设备不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo25=行22列节点是否叶子设备错误; +DeviceBrandManageAction.downloadExampleType.errorInfo26=行23列节点设备最大叠加数错误; +DeviceBrandManageAction.downloadExampleType.errorInfo27=行1列节点设备品牌代码不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo28=行1列节点设备品牌代码错误; +DeviceBrandManageAction.downloadExampleType.errorInfo29=行3列节点可配父设备不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo30=行3列节点可配父设备错误; +DeviceBrandManageAction.downloadExampleType.errorInfo31=行2列节点设备型号不能为空; +DeviceBrandManageAction.downloadExampleType.errorInfo32=行2列节点设备型号错误; +DeviceBrandManageAction.downloadExampleType.errorInfo33=行19列节点异常比较值错误; +DeviceBrandManageAction.downloadExampleType.deviceType=设备型号 +DeviceBrandManageAction.downloadExampleType.brandBelong=所属品牌 +DeviceBrandManageAction.downloadExampleType.deviceDesc=设备描述 +DeviceBrandManageAction.downloadExampleType.positionId=级别下位置序号 +DeviceBrandManageAction.downloadExampleType.parentDeviceType=父设备型号 +DeviceBrandManageAction.downloadExampleType.pictureType=图片类型 +DeviceBrandManageAction.downloadExampleType.XHeight=X坐标 +DeviceBrandManageAction.downloadExampleType.YWeith=Y坐标 +DeviceBrandManageAction.downloadExampleType.weith=宽 +DeviceBrandManageAction.downloadExampleType.height=高 +DeviceBrandManageAction.downloadExampleType.lineColor=边颜色 +DeviceBrandManageAction.downloadExampleType.lineWeith=边宽 +DeviceBrandManageAction.downloadExampleType.pictureName=图片名称 +DeviceBrandManageAction.downloadExampleType.nameFormat=名称格式 +DeviceBrandManageAction.downloadExampleType.detecateTypeTable=监测类别表 +DeviceBrandManageAction.downloadExampleType.lineColor=监测类别表 +DeviceBrandManageAction.downloadExampleType.linkField=连接字段 +DeviceBrandManageAction.downloadExampleType.stateField=状态字段 +DeviceBrandManageAction.downloadExampleType.exceptionCompare=异常比较符 +DeviceBrandManageAction.downloadExampleType.exceptionCompareValue=异常比较值 +DeviceBrandManageAction.downloadExampleType.pictureLevel=图形级别 +DeviceBrandManageAction.downloadExampleType.isLinked=是否有链接 +DeviceBrandManageAction.downloadExampleType.isLeafDevice=是否叶子设备 +DeviceBrandManageAction.downloadExampleType.maxNum=设备最大叠加数 +DeviceBrandManageAction.downloadExampleType.errorInfo=错误信息 +DeviceBrandManageAction.downloadExampleType.deviceBrandCode=设备品牌代码 +DeviceBrandManageAction.downloadExampleType.deviceBrand=设备型号 +DeviceBrandManageAction.downloadExampleType.parentDevice=可配父设备 +DeviceBrandManageAction.downloadExampleType.brandLinkInfo=品牌型号关联错误信息 +DeviceBrandManageAction.downloadExampleType.success=操作成功 +DeviceBrandManageAction.downloadExampleType.faild=操作失败 +DeviceBrandManageAction.downloadExampleType.selectFileIsNull=选择的文件为空,请重新选择 +DeviceBrandManageAction.downloadExampleType.slotDeviceInputErr=槽位设备填写错误 +DeviceBrandManageAction.downloadExampleType.currentDetecateTypeNotExists=当前监测类别表不存在 +DeviceBrandManageAction.downloadExampleType.exceptionValidateErr=异常比较符填写错误 +DeviceBrandManageAction.downloadExampleType.parentDeviceBrandIsNull=父设备型号不存在 +DeviceBrandManageAction.downloadExampleType.nodeInfoImportErr=该节点信息导入异常 +DeviceBrandManageAction.downloadExampleType.deviceBrandCodeNotExists=设备品牌代码不存在 +DeviceBrandManageAction.downloadExampleType.deviceBrandNotExists=设备型号不存在 +DeviceBrandManageAction.downloadExampleType.parentDeviceNotExists=可配父设备不存在 +DeviceBrandManageAction.downloadExampleType.exceptionValidateErr1=下无 +DeviceBrandManageAction.downloadExampleType.exceptionValidateErr2=设备 +DeviceBrandManageAction.downloadExampleType.mapExists=板卡主机架对应关系已存在 +DeviceBrandManageAction.emportCurrentXlsType.exportResultNotExists=导出结果不存在 +DeviceBrandManageAction.emportCurrentXlsType.title={ "设备型号", "所属品牌","设备描述","父设备型号","创建时间"} +DeviceBrandManageAction.emportCurrentXlsType.title.createTime=创建时间 +DeviceBrandManageAction.emportCurrentXlsType.title1={ "设备品牌代码", "设备型号","可配子设备"} +DeviceBrandManageAction.emportCurrentXlsType.title1.subDevice=可配子设备 +DeviceBrandManageAction.downloadExample.title.brandCode=品牌编号(必填) +DeviceBrandManageAction.downloadExample.title.brandName=品牌名称(必填) +DeviceBrandManageAction.downloadExample.title.brandDesc=品牌描述 +DeviceBrandManageAction.downloadExample.brandManageTable=品牌管理信息表 +DeviceBrandManageAction.importXls.errorInfo=行1列节点品牌编号不能为空; +DeviceBrandManageAction.importXls.errorInfo=行1列节点品牌编号错误; +DeviceBrandManageAction.importXls.errorInfo=行2列节点品牌名称不能为空; +DeviceBrandManageAction.importXls.errorInfo=行2列节点品牌名称错误; +DeviceBrandManageAction.importXls.errorInfo=行3列节点品牌描述错误; +DeviceBrandManageAction.importXls.brandID=品牌编号 +DeviceBrandManageAction.importXls.brandName=品牌名称 +DeviceBrandManageAction.importXls.brandDesc=品牌描述 +DeviceBrandManageAction.importXls.errorInfo=错误信息 +DeviceBrandManageAction.importXls.success=操作成功 +DeviceBrandManageAction.importXls.faild=操作失败 +DeviceBrandManageAction.importXls.selectFileIsNull=选择的文件为空,请重新选择! +DeviceBrandManageAction.importXls.brandIdExists=品牌编号已存在 +DeviceBrandManageAction.importXls.brandNameExists=品牌名称已存在 +DeviceBrandManageAction.emportCurrentXls.title.brandId=品牌编号 +DeviceBrandManageAction.emportCurrentXls.title.brandName=品牌名称 +DeviceBrandManageAction.emportCurrentXls.title.brandDesc=品牌描述 +DeviceBrandManageAction.emportCurrentXls.title.createTime=创建时间 +DeviceBrandManageAction.emportCurrentXls.brandManageInfoTable=品牌管理信息表 +DeviceBrandManageAction.emportCurrentXls.brandIdIsNotNull=品牌编号不能为空 +DeviceBrandManageAction.emportCurrentXls.brandCodeIsNotNull=品牌编码不能为空 +DeviceBrandManageAction.emportCurrentXls.brandDeleteDisable=所选品牌下已有型号,无法删除 +DeviceBrandManageAction.toConfDevPos.operationRecord1=操作记录:查询设备底图sql +DeviceBrandManageAction.toConfDevPos.operationRecord2=操作记录:查询设备的子设备(用于配置设备位置)sql +DeviceBrandManageAction.toConfDevPos.subDeviceErr=获取设备(id={0})的子设备 异常 +DeviceBrandManageAction.toConfDevPos.deviceBrandIsNotNull=设备型号不能为空 +DeviceBrandManageAction.downloadExampleType1.title1.mainFrameModel=主机架型号(必填,设备的唯一标识) +DeviceBrandManageAction.downloadExampleType1.title1.brand=所属品牌(必填,对应品牌编号) +DeviceBrandManageAction.downloadExampleType1.title1.deviceDesc=设备描述 +DeviceBrandManageAction.downloadExampleType1.title1.positionNum=级别下位置序号 +DeviceBrandManageAction.downloadExampleType1.title1.picType=图片类型 +DeviceBrandManageAction.downloadExampleType1.title1.X=X坐标 +DeviceBrandManageAction.downloadExampleType1.title1.Y=Y坐标 +DeviceBrandManageAction.downloadExampleType1.title1.width=宽 +DeviceBrandManageAction.downloadExampleType1.title1.high=高 +DeviceBrandManageAction.downloadExampleType1.title1.lineColor=边颜色 +DeviceBrandManageAction.downloadExampleType1.title1.lineWidth=边宽 +DeviceBrandManageAction.downloadExampleType1.title1.picName=图片名称(必填) +DeviceBrandManageAction.downloadExampleType1.title1.nameFormat=名称格式([Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置) +DeviceBrandManageAction.downloadExampleType1.title1.monitorTypeTab=监测类别表 +DeviceBrandManageAction.downloadExampleType1.title1.picLevel=图形级别 +DeviceBrandManageAction.downloadExampleType1.title1=设备最大叠加数(整形数值,默认为1) +DeviceBrandManageAction.downloadExampleType1.title2.boardSlot=板槽型号(必填,设备的唯一标识) +DeviceBrandManageAction.downloadExampleType1.title2.brand=所属品牌(必填,对应品牌编号) +DeviceBrandManageAction.downloadExampleType1.title2.deviceDesc=设备描述 +DeviceBrandManageAction.downloadExampleType1.title2.positionNum=级别下位置序号 +DeviceBrandManageAction.downloadExampleType1.title2.parentDevice=父设备型号(主机架为空) +DeviceBrandManageAction.downloadExampleType1.title2.picType=图片类型 +DeviceBrandManageAction.downloadExampleType1.title2.X=X坐标 +DeviceBrandManageAction.downloadExampleType1.title2.Y=Y坐标 +DeviceBrandManageAction.downloadExampleType1.title2.width=宽 +DeviceBrandManageAction.downloadExampleType1.title2.high=高 +DeviceBrandManageAction.downloadExampleType1.title2.lineColor=边颜色 +DeviceBrandManageAction.downloadExampleType1.title2.lineWidth=边宽 +DeviceBrandManageAction.downloadExampleType1.title2.picName=图片名称(必填) +DeviceBrandManageAction.downloadExampleType1.title2.nameFormat=名称格式([Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置) +DeviceBrandManageAction.downloadExampleType1.title2.picLevel=图形级别 +DeviceBrandManageAction.downloadExampleType1.title2.isLeaf=是否叶子设备(必填,1是,0否) +DeviceBrandManageAction.downloadExampleType1.title3.bordModel=板卡型号(必填,设备的唯一标识) +DeviceBrandManageAction.downloadExampleType1.title3.brand=所属品牌(必填,对应品牌编号) +DeviceBrandManageAction.downloadExampleType1.title3.brand=设备描述 +DeviceBrandManageAction.downloadExampleType1.title3.picType=图片类型 +DeviceBrandManageAction.downloadExampleType1.title3.X=X坐标 +DeviceBrandManageAction.downloadExampleType1.title3.Y=Y坐标 +DeviceBrandManageAction.downloadExampleType1.title3.width=宽 +DeviceBrandManageAction.downloadExampleType1.title3.high=高 +DeviceBrandManageAction.downloadExampleType1.title3.lineColor=边颜色 +DeviceBrandManageAction.downloadExampleType1.title3.lineWidth=边宽 +DeviceBrandManageAction.downloadExampleType1.title3.picName=图片名称(必填) +DeviceBrandManageAction.downloadExampleType1.title3.picLevel=图形级别 +DeviceBrandManageAction.downloadExampleType1.title3.isLeaf=是否叶子设备(必填,1是,0否) +DeviceBrandManageAction.downloadExampleType1.title4.portModel=端口型号(必填,设备的唯一标识) +DeviceBrandManageAction.downloadExampleType1.title4.brand=所属品牌(必填,对应品牌编号) +DeviceBrandManageAction.downloadExampleType1.title4.deviceDesc=设备描述 +DeviceBrandManageAction.downloadExampleType1.title4.positionNum=级别下位置序号 +DeviceBrandManageAction.downloadExampleType1.title4.parentDevice=父设备型号(主机架为空) +DeviceBrandManageAction.downloadExampleType1.title4.picType=图片类型 +DeviceBrandManageAction.downloadExampleType1.title4.X=X坐标 +DeviceBrandManageAction.downloadExampleType1.title4.Y=Y坐标 +DeviceBrandManageAction.downloadExampleType1.title4.width=宽 +DeviceBrandManageAction.downloadExampleType1.title4.high=高 +DeviceBrandManageAction.downloadExampleType1.title4.lineColor=边颜色 +DeviceBrandManageAction.downloadExampleType1.title4.lineWidth=边宽 +DeviceBrandManageAction.downloadExampleType1.title4.picName=图片名称(必填) +DeviceBrandManageAction.downloadExampleType1.title4.nameFormat=名称格式([Y]:代表设备本身在父设备的位置,[X]:代表父设备在祖父设备的位置) +DeviceBrandManageAction.downloadExampleType1.title4.monitorTypeTab=监测类别表 +DeviceBrandManageAction.downloadExampleType1.title4.linkField=连接字段 +DeviceBrandManageAction.downloadExampleType1.title4.stateField=状态字段 +DeviceBrandManageAction.downloadExampleType1.title4.charactor=异常比较符(>,<,=) +DeviceBrandManageAction.downloadExampleType1.title4.value=异常比较值 +DeviceBrandManageAction.downloadExampleType1.title4.picLevel=图形级别 +DeviceBrandManageAction.downloadExampleType1.title4.isLink=是否有链接(1是,0否) +DeviceBrandManageAction.downloadExampleType1.title4.isLeaf=是否叶子设备(必填,1是,0否) +DeviceBrandManageAction.downloadExampleType1.title4.maxNum=设备最大叠加数(整形数值,默认为1) +DeviceBrandManageAction.downloadExampleType1.title5.deviceBrandCode=设备品牌代码(必填) +DeviceBrandManageAction.downloadExampleType1.title5.mainFrame=可配主机架(必填) +DeviceBrandManageAction.downloadExampleType1.title5.bordModel=板卡型号(必填) +DeviceBrandManageAction.downloadExampleType1.title6.deviceBrandCode=设备品牌代码(必填) +DeviceBrandManageAction.downloadExampleType1.title6.bordSlot=槽位型号(必填) +DeviceBrandManageAction.downloadExampleType1.title6.bordModel=板卡型号(必填) +DeviceBrandManageAction.downloadExampleType1.title6.mainFrame=主机架型号(必填) +DeviceBrandManageAction.downloadExampleType1.sheetNames.brand=品牌 +DeviceBrandManageAction.downloadExampleType1.sheetNames.mainFrame=主机架 +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordSlot=板槽 +DeviceBrandManageAction.downloadExampleType1.sheetNames.bord=板卡 +DeviceBrandManageAction.downloadExampleType1.sheetNames.port=端口 +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordMainRelation=板卡主机架关系 +DeviceBrandManageAction.downloadExampleType1.sheetNames.bordSlotRelation=板卡板槽关系 +DeviceBrandManageAction.downloadExampleType1.slotExample=板槽示例数据 +DeviceBrandManageAction.downloadExampleType1.brandRecord=品牌设备登记表 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo1.before=行1列节点 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo1.after=型号不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo2.before=行1列节点 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo2.after=型号错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo3=行2列节点所属品牌不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo4=行2列节点所属品牌错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo5=行3列节点设备描述错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo6=行4列级别下位置序号错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo7=行5列节点图片类型错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo8=行6列节点X坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo9=行7列节点Y坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo10=行8列节点宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo11=行9列节点高错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo12=行10列节点边颜色错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo13=行11列节点边宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo14=行12列节点图片名称不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo15=行12列节点图片名称错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo16=行13列节点名称格式错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo17=行14列节点监测类别表错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo18=行15列节点图形级别错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo19=行16列节点设备最大叠加数错误; +DeviceBrandManageAction.saveDevicesByExcel.brand=型号 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo20=行5列节点父设备不存在 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo21=行5列节点父设备型号错误 +DeviceBrandManageAction.saveDevicesByExcel.errorInfo22=行6列节点图片类型错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo23=行7列节点X坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo24=行8列节点Y坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo25=行9列节点宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo26=行10列节点高错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo27=行11列节点边颜色错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo28=行12列节点边宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo29=行13列节点图片名称不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo30=行13列节点图片名称错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo31=行14列节点名称格式错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo32=行4列节点图片类型错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo33=行5列节点X坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo34=行6列节点Y坐标错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo35=行7列节点宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo36=行8列节点高错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo37=行9列节点边颜色错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo38=行10列节点边宽错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo39=行11列节点图片名称不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo40=行11列节点图片名称错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo41=行12列节点图形级别错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo42=行13列节点是否叶子设备错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo43=行15列节点监测类别表错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo44=行20列节点图形级别错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo45=行22列节点是否叶子设备错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo46=行23列节点设备最大叠加数错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo47=行16列节点连接字段错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo48=行17列节点状态字段错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo49=行18列节点异常比较符错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo50=行19列节点异常比较值错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo51=行15列节点图形级别错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo52=行21列节点是否有链接错误; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo53=行22列节点是否叶子设备不能为空; +DeviceBrandManageAction.saveDevicesByExcel.errorInfo54=行16列节点是否叶子设备错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo1=行1列节点品牌编号不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo2=行3列节点品牌描述错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo3=行1列节点品牌编号错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo4=行2列节点品牌名称不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo5=行2列节点品牌名称错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo6=行2列节点设备型号不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo7=行2列节点设备型号错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo8=行3列节点可配父设备不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo9=行3列节点可配父设备错误; +DeviceBrandManageAction.impDevicesByExcel.deviceBrandCode=设备品牌代码 +DeviceBrandManageAction.impDevicesByExcel.kepeizhujijia=可配主机架 +DeviceBrandManageAction.impDevicesByExcel.boardBrand=板卡型号 +DeviceBrandManageAction.impDevicesByExcel.errorInfo10=行1列节点设备品牌代码不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo11=行1列节点设备品牌代码错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo12=行2列节点槽位型号不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo13=行2列节点槽位型号错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo14=行3列节点板卡型号不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo15=行3列节点板卡型号错误; +DeviceBrandManageAction.impDevicesByExcel.errorInfo16=行4列节点主机架型号不能为空; +DeviceBrandManageAction.impDevicesByExcel.errorInfo17=行4列节点主机架型号错误; +DeviceBrandManageAction.impDevicesByExcel.slotBrand=槽位型号 +DeviceBrandManageAction.impDevicesByExcel.mainFrameModel=主机架型号 +DeviceBrandManageAction.impDevicesByExcel.errorTheme1=主机架型号录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.errorTheme2=板槽型号录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.errorTheme3=板卡型号录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.errorTheme4=端口型号录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.errorTheme5=主机架板卡关联录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.errorTheme6=板卡板槽关联录入错误信息 +DeviceBrandManageAction.impDevicesByExcel.slotBrandIsNull=板槽型号不存在 +DeviceBrandManageAction.impDevicesByExcel.boardBrandIsNull=板卡型号不存在 +DeviceBrandManageAction.impDevicesByExcel.zjjBrandIsNull=主机架型号不存在 +DeviceBrandManageAction.impDevicesByExcel.zjjbdy=主机架型号,板槽型号不对应 +DeviceBrandManageAction.impDevicesByExcel.brandZjjSoltBdy=设备品牌,主机架型号,板卡型号不对应 +DeviceBrandManageAction.impDevicesByExcel.slotBoardMapExists=板卡板槽对应关系已存在 +DeviceBrandManageAction.impDevicesByExcel.deviceBrandExists=设备型号已存在 +DeviceBrandManageAction.impDevicesByExcel.pictureUploadFaild=设备图片上传失败 +DeviceBrandManageAction.impDevicesByExcel.deleteSubDevice=所选设备型号下有子设备,请先删除子设备 +DeviceBrandManageAction.impDevicesByExcel.deviceManageValidateFaild=设备管理验证失败 + + +#GuideManageAction.java +GuideManageAction.getUserMk.systemManage=业务系统管理 +GuideManageAction.getUserMk.usergroupManage=用户组管理 +GuideManageAction.getUserMk.roomManage=机房管理 +GuideManageAction.getUserMk.boxManage=机柜管理 +GuideManageAction.getUserMk.nodegroupManage=节点组管理 +GuideManageAction.getUserMk.missionManage=任务管理 +GuideManageAction.getUserMk.detecateTypeManage=监测类别设置 +GuideManageAction.getUserMk.detecateSetsManage=监测设置 + +#NodeGroupManageAction.java +NodeGroupManageAction.openAddNodeGroupInfo.faild=操作失败 +NodeGroupManageAction.addNodeGroupInfo.nodeGroupExists=节点组已存在,请重新输入! +NodeGroupManageAction.startNodeGroupInfo.faild=操作成功 + +#NodeManageAction.java +NodeManageAction.addNodeInfo.nodeTypeInvalid=该节点的类型或U位与已存在的不一致,请重新输入! +NodeManageAction.addNodeInfo.nodeGroupHadIp=该节点组下已经存在该IP,请重新输入! +NodeManageAction.downloadExample.title.nodeIp=节点IP +NodeManageAction.downloadExample.title.nodeName=节点名称 +NodeManageAction.downloadExample.title.nodeDesc=节点描述 +NodeManageAction.downloadExample.title.nodeType=节点类型(0 计算机) +NodeManageAction.downloadExample.title.nodeState=节点状态(0 正常、1 已删除或停用) +NodeManageAction.downloadExample.nodeTable=节点表 +NodeManageAction.downloadExample.line=行 +NodeManageAction.downloadExample.errorInfo1=列不能为空 +NodeManageAction.downloadExample.errorInfo2=行1列的ip地址格式错误; +NodeManageAction.downloadExample.errorInfo3=行4列节点类型错误 +NodeManageAction.downloadExample.errorInfo4=行4列的节点类型格式错误; +NodeManageAction.downloadExample.errorInfo5=行5列节点状态错误 +NodeManageAction.downloadExample.selectFileIsNull=选择的文件为空,请重新选择! +NodeManageAction.downloadExample.nodegroupHadIp=该节点组下已经存在该IP +NodeManageAction.downloadExample.nodeGroupIsNull=该节点的节点组为空,导入失败 +NodeManageAction.downloadExample.nodeInfoImportErr=该节点信息导入异常 + +#SnmpDetectManageAction.java +SnmpDetectManageAction.addSnmpDetectType.success=操作成功 +SnmpDetectManageAction.addSnmpDetectType.faild=操作失败 + +#SysErrorManageAction.java +SysErrorManageAction.addErrorInfo.success=操作成功 +SysErrorManageAction.addErrorInfo.faild=操作失败 + +#SysPopedomManageAction.java +SysPopedomManageAction.addJsInfo.success=操作成功 +SysPopedomManageAction.addJsInfo.faild=操作失败 +SysPopedomManageAction.addJsInfo.emailTo=邮件 To +SysPopedomManageAction.addJsInfo.nmsInitPwd=NMS系统初始密码 +SysPopedomManageAction.addJsInfo.sendMsg.username=您好!您的网络管理系统用户名: +SysPopedomManageAction.addJsInfo.sendMsg.password=;初始密码: +SysPopedomManageAction.addJsInfo.sendMsg.password2=您好!您的初始密码是 +SysPopedomManageAction.addJsInfo.sendMsg.toChangePwd=。为了保证您的密码安全,请及时登录系统更改初始密码! +SysPopedomManageAction.addJsInfo.errorInfo1=行1列不能为空; +SysPopedomManageAction.addJsInfo.errorInfo6=行2列不能为空; +SysPopedomManageAction.addJsInfo.errorInfo7=行4列不能为空; +SysPopedomManageAction.addJsInfo.errorInfo2=行1列的用户名为纯数字; +SysPopedomManageAction.addJsInfo.errorInfo3=行1列的用户名为中文; +SysPopedomManageAction.addJsInfo.errorInfo4=行2列真实姓名不能为空; +SysPopedomManageAction.addJsInfo.errorInfo5=行4列的Email格式错误; +SysPopedomManageAction.addJsInfo.selectFileIsNull=选择的文件为空,请重新选择! +SysPopedomManageAction.addJsInfo.title.username=用户名(必填) +SysPopedomManageAction.addJsInfo.title.realName=真实姓名(必填) +SysPopedomManageAction.addJsInfo.title.email=Email(必填) +SysPopedomManageAction.addJsInfo.userTable=用户表 +SysPopedomManageAction.addJsInfo.exists=已存在 +SysPopedomManageAction.addJsInfo.userInfoImportErr=该用户信息导入异常 +SysPopedomManageAction.addJsInfo.errorInfo1= +SysPopedomManageAction.addJsInfo.errorInfo1= + + +#SystemManageAction.java +SystemManageAction.ajaxCheck.addSysValidateErr=添加业务系统配置校验异常 +SystemManageAction.ajaxCheck.faild=操作失败 +SystemManageAction.ajaxCheck.success=操作成功 +SystemManageAction.ajaxCheck.sysConfigValidateFaild=校验业务系统配置失败 +SystemManageAction.ajaxCheck.invalid=无效 +SystemManageAction.ajaxCheck.user=用户 + +#UserGroupPerssionAction.java +UserGroupPerssionAction.downloadExample.title.userGroup=用户组名称(必填) +UserGroupPerssionAction.downloadExample.title.userGroupDesc=用户组描述 +UserGroupPerssionAction.downloadExample.title.system=可访问系统(必填) +UserGroupPerssionAction.downloadExample.usergroupTable=用户组信息表 +UserGroupPerssionAction.downloadExample.errorInfo1=行1列节点用户组名称不能为空 +UserGroupPerssionAction.downloadExample.errorInfo2=行1列节点用户组名称错误 +UserGroupPerssionAction.downloadExample.errorInfo3=行2列节点用户组描述超长 +UserGroupPerssionAction.downloadExample.errorInfo4=行3列节点可访问系统不能为空 +UserGroupPerssionAction.downloadExample.errorInfo5=行3列节点可访问系统错误 +UserGroupPerssionAction.downloadExample.usergroupName=用户组名称 +UserGroupPerssionAction.downloadExample.usergroupDesc=用户组描述 +UserGroupPerssionAction.downloadExample.system=可访问系统 +UserGroupPerssionAction.downloadExample.errorInfo=错误信息 +UserGroupPerssionAction.downloadExample.faild=操作失败 +UserGroupPerssionAction.downloadExample.success=操作成功 +UserGroupPerssionAction.downloadExample.selectFileIsNull=选择的文件为空,请重新选择! +UserGroupPerssionAction.downloadExample.systemIsNull=该节点可访问系统不存在 +UserGroupPerssionAction.downloadExample.hasPermission=该节点用户组名称已有当前可访问系统权限 +UserGroupPerssionAction.downloadExample.nodeInfoImportErr=该节点信息导入异常 +UserGroupPerssionAction.downloadExample.valid=有效 +UserGroupPerssionAction.downloadExample.invalid=无效 +UserGroupPerssionAction.downloadExample.state=状态 +UserGroupPerssionAction.downloadExample.addUsergroupValidateErr=添加用户组配置校验失败 +UserGroupPerssionAction.downloadExample.updateUsergroupValidateErr=修改用户组校验异常 +UserGroupPerssionAction.giveGroupPerssions.faild=失败 + +#LoginAction.java +LoginAction.login.userLocked=此用户已被停用 +LoginAction.login.deptLocked=此用户所在部门已被停用,禁止登录 +LoginAction.login.outtime=sessionold已经过期 +LoginAction.login.success=成功 +LoginAction.login.in=登入 +LoginAction.login.noPermission=该用户名没有有效权限 +LoginAction.login.unpredictableErr=不可预知错误 +LoginAction.login.usernameOrPwdErr=用户名或密码错误 +LoginAction.checkPwdState.userIsNotExists=此用户不存在或已无效 +LoginAction.checkPwdState.userInfoErr=此用户信息异常! +LoginAction.checkPwdState.faild=操作失败 +LoginAction.checkPwdState.success=操作成功 +LoginAction.checkPwdState.selectSys=请重新选择登陆的业务系统! +LoginAction.checkPwdState.out=登出 +LoginAction.checkPwdState.sessionNoInfo=从session中没有取得人员信息 +LoginAction.checkPwdState.sessionOutTime=session可能已过期 + +#SnmpAction.java +SnmpAction.insertFiled.insertDataSrcErr=插入数据源失败! +SnmpAction.insertFiled.getPositionErr=获取栏位失败! +SnmpAction.insertFiled.loadMibErr=加载mib失败! + +#GenJavaCodeTool.java +GenJavaCodeTool.genJavaCode.nodeInfoErr=此OID对应的节点信息有误,请核对OID +GenJavaCodeTool.genJavaCode.cannotFind=没有找到此OID的mib定义 +GenJavaCodeTool.genJavaCode.createBeanErr=生成javaBean失败! + +#FileUtil.java +FileUtil.getAllMibFileNames.noMibFile=mib文件不存在,请先导入mib库 +FileUtil.getAllMibFileNames.getMibNameErr=获取mib文件名出错! +FileUtil.getAllMibFileNames.createClassErr=创建class文件出错! + +#AutoRegisterForNMSWeb.java +AutoRegisterForNMSWeb.checkOrRegisterNMSWeb.newWeb=新Web + +#AutoRunForSocketServerServlet.java +AutoRunForSocketServerServlet.contextInitialized.sslConn=SSL通讯 + +#DCHandShakeManagerThread.java +DCHandShakeManagerThread.run.DcThread=DC心跳监测管理线程 + +#DetectDatasTimeoutAlarmThread.java +DetectDatasTimeoutAlarmThread.run.threadName=监测数据超时告警线程 + +#MailingManagerThread.java +MailingManagerThread.run.threadName=邮件发送管理线程 +MailingManagerThread.run.noField=缺少参数 + +#MailingThread.java +MailingThread.call.threadName=邮件发送线程 + +#EmailTypeConstants.java +EmailTypeConstants.content.DESC_DETECTION_INFO_RECOVER=监测信息恢复 +EmailTypeConstants.content.DESC_DETECTION_INFO_EXCEPTION=监测信息异常 +EmailTypeConstants.content.DESC_DETECTION_INFO_TIMEOUT=监测信息超时 +EmailTypeConstants.content.DESC_ALARM_INFO_EXCEPTION=主动告警异常 +EmailTypeConstants.content.DESC_ALARM_INFO_RECOVER=主动告警恢复 +EmailTypeConstants.content.DESC_TASK_NODE_RESULT_ERROR=节点结果失败 +EmailTypeConstants.content.DESC_TASK_STATE_CHANGE=任务状态变更 +EmailTypeConstants.content.DESC_SYSTEM_RUNNING_EXCEPTION=系统运行异常 +EmailTypeConstants.content.DESC_SYSTEM_RUNNING_RECOVER=系统运行恢复 + +#TaskResources.java CommonResources.java +TaskResources.contents.ms_1=已创建 +TaskResources.contents.ms_2=进行中 +TaskResources.contents.ms_3=已完成 +TaskResources.contents.ms_30=全部成功 +TaskResources.contents.ms_31=全部失败 +TaskResources.contents.ms_32=部分成功 +TaskResources.contents.ms_4=未能执行 +TaskResources.contents.ms_5=撤销准备 +TaskResources.contents.ms_6=撤销开始 +TaskResources.contents.ms_7=撤销完成 +TaskResources.contents.mt_1=推送文件 +TaskResources.contents.mt_4=命令执行 +TaskResources.contents.mt_6=升级部署 +TaskResources.contents.loop_0=非周期任务 +TaskResources.contents.loop_1=周期任务 +TaskResources.contents.ec_1=任务开始下发 +TaskResources.contents.ec_4=任务开始下发 +TaskResources.contents.ec_6=任务开始下发 + +#EmailService.java +EmailService.sendEmailNew.threadName=邮件发送线程 +EmailService.sendEmailNew.subjectDesc=NMS系统邮件 +EmailService.sendEmailNew.emergencyNotice=紧急通知 +EmailService.sendEmailNew.noEmergencyNotice=非紧急通知 +EmailService.sendEmailNew.msgType=消息类型 +EmailService.sendEmailNew.msgDesc=消息描述 +EmailService.sendEmailNew.eventIp=事件IP +EmailService.sendEmailNew.time=时间 +EmailService.sendEmailNew.msgContent=消息内容 +EmailService.sendEmailNew.isLoop=周期任务 +EmailService.sendEmailNew.no=否 +EmailService.sendEmailNew.yes=是 +EmailService.sendEmailNew.scheduleTime=计划执行时间 +EmailService.sendEmailNew.missionState=任务状态 +EmailService.sendEmailNew.nodeGroup=节点组 +EmailService.sendEmailNew.node=节点 + +#SSLClient.java +SSLClient.toDo.threadName=通信线程 + +Constants +Constants.xmlFile.sysConfig=系统配置 +Constants.xmlFile.userInf=用户信息管理 +Constants.xmlFile.userPrivilege=用户权限管理 +Constants.xmlFile.mkManage=模块管理 +Constants.xmlFile.jsManage=角色管理 +Constants.xmlFile.businessConfig=业务配置 +Constants.xmlFile.letterInfoConfig=来函信息配置 +Constants.xmlFile.htmlInfoConfig=网页信息配置 +Constants.xmlFile.emailInfoConfig=邮件信息配置 +Constants.xmlFile.webEmailInfoConfig=网页邮件信息配置 +Constants.xmlFile.communicateConfig=即时通信息配置 +Constants.xmlFile.msnInfoConfig=MSN信息配置 +Constants.xmlFile.yahooMsgInfoConfig=YahooMSG信息配置 +Constants.xmlFile.feixinInfoConfig=飞信信息配置 +Constants.xmlFile.sinaUCInfoConfig=新浪UC信息配置 +Constants.xmlFile.telnetInfoConfig=TELNET信息配置 +Constants.xmlFile.ftpInfoConfig=FTP信息配置 +Constants.xmlFile.ipInfoConfig=IP信息配置 +Constants.xmlFile.srcReportInfoConfig=原始报文信息配置 +Constants.xmlFile.tcpInfoConfig=TCP信息配置 +Constants.xmlFile.udpInfoConfig=UDP信息配置 +Constants.xmlFile.busnessConfigGuide=业务配置向导 +Constants.xmlFile.configState=配置状态查看 +Constants.xmlFile.businessCheck=业务审核 +Constants.xmlFile.letterInfoCheck=来函信息审核 +Constants.xmlFile.webInfoCheck=网页信息审核 +Constants.xmlFile.emailInfoCheck=邮件信息审核 +Constants.xmlFile.webEmailInfoCheck=网页邮件信息审核 +Constants.xmlFile.communicateInfoCheck=即时通信息审核 +Constants.xmlFile.msnInfoCheck=MSN信息审核 +Constants.xmlFile.yahooMsgInfoCheck=YahooMSG信息审核 +Constants.xmlFile.feixinInfoCheck=飞信信息审核 +Constants.xmlFile.sinaUCInfoCheck=新浪UC信息审核 +Constants.xmlFile.telnetInfoCheck=TELNET信息审核 +Constants.xmlFile.ftpInfoCheck=FTP信息审核 +Constants.xmlFile.srcReportInfoCheck=原始报文信息审核 +Constants.xmlFile.ipInfoCheck=IP信息审核 +Constants.xmlFile.tcpInfoCheck=TCP信息审核 +Constants.xmlFile.udpInfoCheck=UDP信息审核 +Constants.xmlFile.businessResult=业务结果 +Constants.xmlFile.businessResultView=业务结果查看 +Constants.xmlFile.hotport=热点关注 +Constants.xmlFile.mission=专项任务 +Constants.xmlFile.operateCheck=操作审计 +Constants.xmlFile.userOperateLog=用户操作日志 +Constants.xmlFile.reportView=报表查看 +Constants.xmlFile.businessReportView=业务报表查看 +Constants.xmlFile.monitorInfo1=超过 +Constants.xmlFile.monitorInfo2= 监测周期,未接收到监测结果信息 + +#HibernateGeneralDaoImpl.java +HibernateGeneralDaoImpl.findByProperty.parmIsNotNull=属性名称不能为空! +HibernateGeneralDaoImpl.findByProperty.sortFieldIsNotNull=排序字段不能为空! +HibernateGeneralDaoImpl.findByProperty.sortNameIsNotNull=序列名称不能为空 + +#OracleToMysql.java +OracleToMysql.trans.sqlIsNotNull=sql语句不能为空 +OracleToMysql.trans.noFormatMap=没有mysql格式化映射 + +#CommonService.java +CommonService.sendEmailForMission.missionName=任务名称 +CommonService.sendEmailForMission.missionType=任务类型 +CommonService.sendEmailForMission.loopMission=周期任务 +CommonService.sendEmailForMission.no=否 +CommonService.sendEmailForMission.yes=是 +CommonService.sendEmailForMission.missions=任务状态 +CommonService.sendEmailForMission.planTime=计划执行时间 +CommonService.sendEmailForMission.nodeGroup=节点组 +CommonService.sendEmailForMission.node=节点 + +#BaseAction.java +BaseAction.logout.susscess=成功 +BaseAction.logout.logout=登出 +BaseAction.exportXls.date=日期\\名称 +BaseAction.exportXls.num=数目 +BaseAction.exportXls.fileNotExists=目标文件已转移或已删除! + +#DateUtil.java +DateUtil.converDatetoWeekArray.sun=日 +DateUtil.converDatetoWeekArray.mon=一 +DateUtil.converDatetoWeekArray.tues=二 +DateUtil.converDatetoWeekArray.wed=三 +DateUtil.converDatetoWeekArray.thur=四 +DateUtil.converDatetoWeekArray.fri=五 +DateUtil.converDatetoWeekArray.sat=六 +DateUtil.converDatetoWeekArray.before=前 + +#ExportUtils.java +ExportUtils.exportExcel2Sheet.singleSheet=单个sheet数据量过大 +ExportUtils.exportExcel2Sheet.rowDataErr=行数据为数组类型,没有找到下标为: +ExportUtils.exportExcel2Sheet.rowData=的数据! +ExportUtils.exportExcel2Sheet.shouldBeIndex=行数据为数组类型,字段数组应为对应下标! +ExportUtils.exportExcel2Sheet.IOException=IO处理出现异常: +ExportUtils.exportExcel2Sheet.exportException=导出处理出现异常: +ExportUtils.exportExcel2Sheet.noDataExport=没有可导出数据! +ExportUtils.exportExcel2Sheet.data=数据 +ExportUtils.exportExcel2Sheet.mouldi=模板 +ExportUtils.exportExcel2Sheet.tableField=监测数据表字段定义 +ExportUtils.exportExcel2Sheet.fieldName=字段名(必填) +ExportUtils.exportExcel2Sheet.fieldDesc=字段描述(必填) +ExportUtils.exportExcel2Sheet.fieldType=字段类型(必填)(数字,时间,文本) +ExportUtils.exportExcel2Sheet.length=长度(文本类型请填写此项) +ExportUtils.exportExcel2Sheet.isChart=是否用于统计(必填)(是,否) +ExportUtils.exportExcel2Sheet.monitorTypeName=监测类别名称(必填) +ExportUtils.exportExcel2Sheet.tableName=表名(必填) +ExportUtils.exportExcel2Sheet.moreThanZero=每页数据必须大于0 +ExportUtils.exportExcel2Sheet.outZoom=数据超出导出范围! +ExportUtils.exportExcel2Sheet.get=获取 +ExportUtils.exportExcel2Sheet.fieldErr=字段属性错误: + +#Graph.java +Graph.createTimeXYCharShow.noData=无对应的数据,请重新查询。 +Graph.createTimeXYCharShow.noData2=无对应的数据 + +#StringUtil.java +StringUtil.getTableCodeMap.PROTOCOL=协议名称 +StringUtil.getTableCodeMap.SERVER_IP=服务器IP +StringUtil.getTableCodeMap.CLIENT_IP=客户方IP +StringUtil.getTableCodeMap.SERVER_PORT=服务器端口 +StringUtil.getTableCodeMap.CLIENT_PORT=客户方端口 +StringUtil.getTableCodeMap.PROXY=代理信息 +StringUtil.getTableCodeMap.USER=用户 +StringUtil.getTableCodeMap.PASS=登录口令 +StringUtil.getTableCodeMap.URL=网址 +StringUtil.getTableCodeMap.FROM=源信息 +StringUtil.getTableCodeMap.TO=目的信息 +StringUtil.getTableCodeMap.SUBJECT=主题内容 +StringUtil.getTableCodeMap.CALLER=主叫电话号码 +StringUtil.getTableCodeMap.CALLEE=被叫电话号码 +StringUtil.getTableCodeMap.IPP_ENCODING=编码方式 +StringUtil.getTableCodeMap.IPP_DATATYPE=结果数据格式 +StringUtil.getTableCodeMap.IPP_RECOG_RESULT=说话人ID列表 +StringUtil.getTableCodeMap.SMS_SRC_CENTER=源短信中心 +StringUtil.getTableCodeMap.SMS_DST_CENTER=目的短信中心 +StringUtil.getTableCodeMap.count=查询结果数量 + +#ThreadService.java +ThreadService.detectDatasTimeoutCheck.count=该节点为服务器节点,不适用于该检测类别 +ThreadService.detectDatasTimeoutCheck.timeout=获取监测数据超时 +ThreadService.detectDatasTimeoutCheck.ips=多IP + +client.Sysconfig.init=缺少配置文件,程序无法执行!\n请先执行参数配置程序进行配置 +client.Sysconfig.error=错误 + +client.AlarmThread.processExists=进程存在,但 +client.AlarmThread.loopMission1=定时任务“ +client.AlarmThread.loopMission2=”不存在 +client.AlarmThread.state=此状态持续了 +client.AlarmThread.times=次 +client.AlarmThread.dataFileNotExists1=数据文件目录“ +client.AlarmThread.dataFileNotExists2=”不存在 +client.AlarmThread.dataSize=监测数据文件大小为0 +client.AlarmThread.noDetecateData=未取到监测数据 + +client.StartPluginRun.startupDetecate=启动三方监测 +client.StartPluginRun.startupDetecateErr1=三方监测程序启动失败,请检查进程启动文件“ +client.StartPluginRun.startupDetecateErr1.isTrue=”是否设置正确! +client.StartPluginRun.startupDetecateErr2=启动三方监测异常,监测脚本下发未完成! +client.StartPluginRun.startupDetecateErr3=启动三方监测异常,监测脚本执行错误! +client.ServerCollectData.transFile=回传成功 + +client.SSLServer.sendMsg=任务参数不全,找不到任务结果 +client.SSLServer.noResult=任务结果不存在 +client.SSLServer.success=成功,详细信息如下 +client.SSLServer.fail=失败,详细信息如下 +client.SSLServer.lssueSuccess=下发成功,详细信息如下 +client.SSLServer.lssueSuccess1=下发成功 +client.SSLServer.missionRevokeSuccess=任务已撤消完成 +client.SSLServer.ncCommunicateException=NC通讯线程异常 + +client.AgentCommand.execFail=执行失败 +client.AgentCommand.execFailDesc1=执行失败:命令参数为空 +client.AgentCommand.execFailDesc2=执行失败,不存在该命令 +client.AgentCommand.execFailDesc3=执行失败:命令参数不正确 +client.AgentCommand.execFailDesc4=执行失败:出现异常,详细信息请查看日志 +client.AgentCommand.execFailDesc5=执行失败:当前Agent版本为最新 +client.AgentCommand.execFailDesc6=执行失败:恢复参数为空 +client.AgentCommand.destDesc=恢复目录 +client.AgentCommand.srcDesc=恢复源文件 +client.AgentCommand.destDesc=更新目录 +client.AgentCommand.srcDesc=升级文件 +client.AgentCommand.execFailDesc7=为空 +client.AgentCommand.execFailDesc8=不存在 +client.AgentCommand.execFailDesc9=执行失败:属主不正确 +client.AgentCommand.coverRestart=正在覆盖并重启Agent +client.AgentCommand.upgradeFail=升级失败 +client.AgentCommand.restartFail=重启失败,手工启动成功 +client.AgentCommand.execFailDesc10=执行失败:出现异常 +client.AgentCommand.execFailDesc10.showDetail=详细信息请查看日志 +client.AgentCommand.execFailDesc11=执行失败:参数为空 +client.AgentCommand.execFailDesc12=执行失败:当前Server版本为最新 +client.AgentCommand.execFailDesc13=执行失败:属主不正确 +client.AgentCommand.execFailDesc14=执行失败:升级文件名为空 +client.AgentCommand.execFailDesc15=执行失败:升级文件 +client.AgentCommand.execFailDesc16=执行失败:覆盖目录为空 +client.AgentCommand.execFailDesc17=执行失败:覆盖目录不存在 +client.AgentCommand.DCupdate=DC升级请求 +client.AgentCommand.fail=失败 +client.AgentCommand.execFailDesc18=执行失败:出现异常 +client.AgentCommand.backupSuccess1=备份成功:未指定备份参数,不需要备份 +client.AgentCommand.backupFail1=备份失败,需要备份的文件属性为空 +client.AgentCommand.backup=备份 +client.AgentCommand.backupFail2=失败,需要备份的文件不存在 +client.AgentCommand.backupSuccess2=成功,需要备份的文件目录为空,不用进行备份 +client.AgentCommand.backupSuccess3=成功,备份文件 +client.AgentCommand.backupFail3=失败 +client.AgentCommand.backupFail4=失败,备份到的目录 +client.AgentCommand.readonly=只读 +client.AgentCommand.backupSuccess4=成功,已存在该版本备份,不用备份--备份文件 +client.AgentCommand.backupSuccess5=备份成功,详情信息如下 +client.AgentCommand.backupFail5=备份失败,详情信息如下 +client.AgentCommand.backupFail6=备份失败:出现异常 +client.AgentCommand.coverSuccess1=覆盖成功:未指定参数,不需要覆盖 +client.AgentCommand.coverFail1=覆盖 +client.AgentCommand.coverFail1=失败,源文件为空 +client.AgentCommand.coverFail2=失败,源文件不存在 +client.AgentCommand.coverFail3=失败,覆盖目录为空 +client.AgentCommand.coverFail4=失败:覆盖目录不存在 +client.AgentCommand.coverFail5=失败:覆盖目录 +client.AgentCommand.coverFail5.sameDir=和源目录相同! +client.AgentCommand.coverSuccess2=成功 +client.AgentCommand.coverSuccess2.to=到 +client.AgentCommand.coverFail6=失败 +client.AgentCommand.coverFail7=失败:要覆盖的目录只读-- +client.AgentCommand.coverSuccess3=覆盖成功,详情信息如下 +client.AgentCommand.coverFail8=覆盖失败,详情信息如下 +client.AgentCommand.coverFail9=覆盖失败:出现异常 +client.AgentCommand.killProcFail1=停用进程失败:未指定PID文件参数 +client.AgentCommand.killProcSuccess1=停用成功,进程PID文件为空 +client.AgentCommand.deactivate=停用 +client.AgentCommand.killProcSuccess2=成功,进程PID文件找不到 +client.AgentCommand.killProcSuccess3=成功:进程原本不存在 +client.AgentCommand.killProcSuccess4=成功 +client.AgentCommand.killProcFail2=失败, 进程存在,请查看是否有守护进程 +client.AgentCommand.killProcSuccess5=停用进程成功,详情信息如下 +client.AgentCommand.killProcFail3=停用进程失败,详情信息如下 +client.AgentCommand.killProcFail4=停用进程失败:出现异常 +client.AgentCommand.startCmdSuccess1=执行成功:未指定内容,不需要执行 +client.AgentCommand.startCmdFail1=失败,执行命令为空 +client.AgentCommand.startCmdFail2=失败,结果文件为空 +client.AgentCommand.startCmdFail3=失败,用户名不正确 +client.AgentCommand.startCmdSuccess2=成功,进程原本存在,不用执行 +client.AgentCommand.startCmdSuccess3=成功 +client.AgentCommand.startCmdFail4=失败,PID为空 +client.AgentCommand.startCmdFail5=失败,PID +client.AgentCommand.startCmdFail6=失败,进程PID文件 +client.AgentCommand.success=成功 +client.AgentCommand.fail=失败 +client.AgentCommand.exec=执行 +client.AgentCommand.startCmdFail7=失败,结果文件中未写入结果标识 +client.AgentCommand.startCmdFail8=失败,结果文件 +client.AgentCommand.startCmdSuccess4=执行成功,详细信息如下 +client.AgentCommand.startCmdFail9=执行失败,详细信息如下 +client.AgentCommand.startCmdFail10=执行失败:出现异常 +client.AgentCommand.singleCmdSuccess1=执行成功:未指定内容,不需要执行 +client.AgentCommand.singleCmdFail1=失败,执行命令为空 +client.AgentCommand.singleCmdFail2=失败,用户名不正确 +client.AgentCommand.singleCmdFail3=失败 +client.AgentCommand.singleCmdFail4=失败, 超时 +client.AgentCommand.singleCmdFail5=失败, 线程被打断 +client.AgentCommand.singleCmdSuccess2=执行成功,详细信息如下 +client.AgentCommand.singleCmdFail6=执行失败,详细信息如下 +client.AgentCommand.singleCmdFail7=执行失败:出现异常 +client.AgentCommand.deleteSuccess=删除 +client.AgentCommand.deleteFail=删除 +client.AgentCommand.deleteFail.noFile=文件不存在 + +client.LoopTaskThread.loopTaskOuttime=本周期任务执行超时 + +client.TaskReqHandle.sendInfoFormatErr=发送内容格式不正确 +client.TaskReqHandle.pushFileParamIsNull=文件推送参数为空 +client.TaskReqHandle.pushFileNameParamIsNull=推送文件名参数为空 +client.TaskReqHandle.userGroupErr=推送文件的属主或属群不正确 +client.TaskReqHandle.pushFileNotExists=推送临时文件不存在,请检查推送文件名称与参数文件名是否一致 +client.TaskReqHandle.successPush=成功推送到 +client.TaskReqHandle.pushFail=推送失败 +client.TaskReqHandle.pushParamErr=文件推送参数不正确 +client.TaskReqHandle.reciveFileErr=接收推送文件异常 +client.TaskReqHandle.sourceOrTargetIsNull=源文件或目标文件为空 + +client.TaskResultOper.restart=重启成功 + +client.TaskReturnHandle.backpass=回传 +client.TaskReturnHandle.backFail1=失败,回传文件路径值为空 +client.TaskReturnHandle.backFail2=失败,回传文件不存在 + +client.ProcessUtil.processPid=进程PID +client.ProcessUtil.notExists=不存在 +client.ProcessUtil.pidFile=PID文件 +client.ProcessUtil.pidFieldNull=PID文件字段为空 +client.ProcessUtil.searchKey=进程搜索关键字 +client.ProcessUtil.noProcess=未找到进程 +client.ProcessUtil.findTooMuch=找到多个进程,请提供精确查找进程的关键字 + +client.Utils.bit=位 + +client.NmsClient.ncCommunicatePortErr=NC通讯端口启动异常,NC程序终止 +client.NmsClient.ncDeamonStartFail=NC守护进程启动失败 +client.NmsClient.ncDeamonStartException=NC守护进程启动异常 + +client.SystemInfo.memerySize=内存总大小 +client.SystemInfo.core=核 +client.SystemInfo.mhz=主频 +client.SystemInfo.currentUsed=现使用 +client.SystemInfo.spaceRemain=剩余 +client.SystemInfo.shiyonglv=使用率 +client.SystemInfo.size=大小 +client.SystemInfo.used1=已用 +client.SystemInfo.disk=磁盘 +client.SystemInfo.readOnly=只读 +client.SystemInfo.diskSize=磁盘总大小 +client.SystemInfo.zongShiYongLv=总的使用率100% +client.SystemInfo.zone=分区 +client.SystemInfo.used2=已使用 +client.SystemInfo.disable=不可用 +client.SystemInfo.netSpeed=带宽 +client.SystemInfo.input=输入 +client.SystemInfo.insert=个逻辑网卡 +client.SystemInfo.getSysTimeErr=获取DataController系统时间失败 +client.SystemInfo.message.core=核 +client.SystemInfo.message.memery=GB的内存 +client.SystemInfo.message.disk=GB的硬盘 +client.SystemInfo.message.netcard=个逻辑网卡 +client.SystemInfo.outputTest=测试硬盘是否可写,现在开始写入文件\n + +client.GetInfoRun.totalAlarmInfo1=数据状态恢复正常 +client.GetInfoRun.totalAlarmInfo2=数据状态异常,超过告警值 +client.GetInfoRun.totalAlarmInfo3=数据状态异常,连续四次超过告警值 +client.GetInfoRun.processNotExists=进程不存在 +client.GetInfoRun.isDiskWriteAble=磁盘是否可写 +client.GetInfoRun.diskUsed=磁盘使用率(%) +client.GetInfoRun.warning=个磁盘使用率超过 +client.GetInfoRun.ZongShiYongLv=总的使用率(%) +client.GetInfoRun.cpuShiyonglv=个CPU的使用率占 +client.GetInfoRun.warningValue=告警值 +client.GetInfoRun.normal=正常 +client.GetInfoRun.writeAble=可写 +client.GetInfoRun.abnormal=不正常 +client.GetInfoRun.gt=大于 +client.GetInfoRun.lt=小于 +client.GetInfoRun.eq=等于 +client.GetInfoRun.out=超过 +client.GetInfoRun.in=未超过 +client.GetInfoRun.notEquels=不等于 + +client.NewPluginResultMerge.detecateData=监测数据未生成 +client.NewPluginResultMerge.formatErr=监测数据未生成或数据格式错误 +client.NewPluginResultMerge.totalAlarmInfo1=数据状态恢复正常 +client.NewPluginResultMerge.totalAlarmInfo2=数据状态异常,超过告警值 +client.NewPluginResultMerge.totalAlarmInfo3=数据状态异常,连续四次超过告警值 +client.NewPluginResultMerge.warningValue=告警值 +client.NewPluginResultMerge.abnormal=不正常 +client.NewPluginResultMerge.normal=正常 +client.NewPluginResultMerge.gt=大于 +client.NewPluginResultMerge.lt=小于 +client.NewPluginResultMerge.eq=等于 +client.NewPluginResultMerge.out=超过 +client.NewPluginResultMerge.in=未超过 + + +server.Common.revokeFail=撤销通讯失败,超过最大尝试次数,等待客户端请求 +server.Common.missionLssueFail=任务下发失败,通讯中断,且超过最大尝试次数 +server.Common.createConnectionFail=任务下发失败,建立通讯失败 +server.Common.nmsShakeHandBegin=开始 +server.Common.nmsShakeHand=NMSClient握手 +server.Common.nmsShakeHandSuccess=成功 +server.Common.nmsShakeHandFail= 失败 +server.Common.sshLogin=SSH 登录用户名或密码错误 +server.Common.sshConnectionFail=SSH 连接失败 +server.Common.netErr=网络异常 + +server.CommonResources.ms_1=已创建 +server.CommonResources.ms_2=进行中 +server.CommonResources.ms_3=已完成 +server.CommonResources.ms_30=全部成功 +server.CommonResources.ms_31=全部失败 +server.CommonResources.ms_32=部分成功 +server.CommonResources.ms_4=未能执行 +server.CommonResources.ms_5=撤销准备 +server.CommonResources.ms_6=撤销开始 +server.CommonResources.ms_7=撤销完成 +server.CommonResources.mt_1=推送文件 +server.CommonResources.mt_4=命令执行 +server.CommonResources.mt_6=升级部署 +server.CommonResources.loop_0=非周期任务 +server.CommonResources.loop_1=周期任务 +server.CommonResources.ec_1=任务开始下发 + +server.Config.initConfig=未找到参数配文件!\n请运行 +server.Config.initConfig.init=初始化参数配置 +server.Config.error=错误 + +server.Constants.NO_DETECTDATA_STATUS_INFO=数据收集超时,未获取监测数据 +server.Constants.ERROR_DESC_DATA_COLLECT=数据收集管理线程停止运行 +server.Constants.ERROR_DESC_DATA_COLLECT_NO_RUN=数据收集管理线程未启动 +server.Constants.defaultNodeGroup=默认节点组 + +server.EmailTypeConstants.DESC_DETECTION_INFO_RECOVER=监测信息恢复 +server.EmailTypeConstants.DESC_DETECTION_INFO_EXCEPTION=监测信息异常 +server.EmailTypeConstants.DESC_DETECTION_INFO_TIMEOUT=监测信息超时 +server.EmailTypeConstants.DESC_ALARM_INFO_EXCEPTION=主动告警异常 +server.EmailTypeConstants.DESC_ALARM_INFO_RECOVER=主动告警恢复 +server.EmailTypeConstants.DESC_TASK_NODE_RESULT_ERROR=节点结果失败 +server.EmailTypeConstants.DESC_TASK_STATE_CHANGE=任务状态变更 +server.EmailTypeConstants.DESC_SYSTEM_RUNNING_EXCEPTION=系统运行异常 +server.EmailTypeConstants.DESC_SYSTEM_RUNNING_RECOVER=系统运行恢复 + +server.MissionConstants.ERROR_TASK_PARAMS=参数错误,任务无法执行 +server.MissionConstants.ERROR_TASK_NO_FILE=无推送文件,任务无法执行 +server.MissionConstants.ERROR_TASK_NO_USED_NODE=无有效服务器节点,任务无法执行 +server.MissionConstants.ERROR_TASK_RUND_NO_USED_NODE=无有效服务器节点,当前周期无法执行 +server.MissionConstants.WARN_TASK_UN_MANAGEMENT_NODE=存在DC管理外节点 +server.MissionConstants.NOTICE_TASK_RUNNING=任务开始执行 +server.MissionConstants.ERROR_RESULT_NOT_SERVER=该节点不是服务器 +server.MissionConstants.ERROR_RESULT_UN_MANAGEMENT_NODE=该节点不在DC管理范围内 +server.MissionConstants.ERROR_RESULT_FILE_DOWNLOAD_FAIL=DC文件下载失败 +server.MissionConstants.ERROR_RESULT_EXEC_TIMEOUT=周期任务执行超时,结果置为失败 + +server.ChangeService.exception1=IP为 {0} 的DataController信息 数据库中不存在,请检查网络设置或进行人工DataController配置 +server.ChangeService.exception2=IP为 {0} 的DataController的IP段信息 数据库中不存在 请进行人工配置 +server.ChangeService.exception3=IP为 {0} 的DataController信息 查询异常 无法查询出ID + +server.CommonService.exception1=IP为 {0} 的DataController信息 数据库中不存在,请检查网络设置或进行人工DataController配置 +server.CommonService.exception2=IP为 {0} 的DataController的IP段信息 数据库中不存在 请进行人工配置 +server.CommonService.exception3=IP为 {0} 的DataController信息 查询异常 无法查询出ID +server.CommonService.resultInfo1=新IP被占用,更新失败 +server.CommonService.resultInfo2=更新成功 +server.CommonService.pInfo1=告警恢复 监测内容 +server.CommonService.pInfo2=告警级别 +server.CommonService.monitorContent= 监测内容 +server.CommonService.errorInfo1=位置{0}数据 节点seqId(物理主机标识)不能为空 +server.CommonService.errorInfo2=位置{0}数据 节点seqId(物理主机标识)不是正整数 +server.CommonService.errorInfo3=位置{0}数据 监测设置ID不能为空 +server.CommonService.errorInfo4=位置{0}数据 监测设置ID不是整数(可以为0,默认的系统基础信息的设置就为0) +server.CommonService.errorInfo5=位置{0}数据 监测类别不能为空 +server.CommonService.errorInfo6=位置{0}数据 “"+startTime+"” 监测服务启动时间须为整形数 +server.CommonService.errorInfo7=位置{0}数据 监测服务启动时间不能为空 +server.CommonService.errorInfo8=位置{0}数据 “{1}” 检测时延(秒)须为整形数 +server.CommonService.errorInfo9=位置{0}数据 “{1}” 本次检测时间须为整形数 +server.CommonService.errorInfo10=位置{0}数据 本次检测时间不能为空 +server.CommonService.errorInfo11=位置{0}数据 “{1}” 尝试次数须为整形数 +server.CommonService.errorInfo12=位置{0}数据 尝试次数不能为空 +server.CommonService.errorInfo13=位置{0}数据 “{1}” 下次计划监测时间须为整形数 +server.CommonService.errorInfo14=位置{0}数据 尝试次数不能为空 +server.CommonService.errorInfo15=位置{0}数据 “{1}” 执行状态须为整形数 +server.CommonService.errorInfo16=位置{0}数据 执行状态不能为空 +server.CommonService.exception4=NUMBER数据格式错误! +server.CommonService.exception5=VARCHAR2数据格式错误! +server.CommonService.errorInfo17=表字段集合信息解析失败 +server.CommonService.errorInfo18=字段取值 +server.CommonService.errorInfo19=发生错误;异常数据行 +server.CommonService.dsinfo1=$@$端口 +server.CommonService.dsinfo1,exception=异常(配置状态与实际状态不符) +server.CommonService.dsinfo2=$@$端口 +server.CommonService.dsinfo2.exception=异常(流量为0) +server.CommonService.for=为 +server.CommonService.policyLevel=报警级别 +server.CommonService.saveDefault=存放自动注册的新节点信息的默认节点组 +server.CommonService.errorInfo20=位置{0}数据 节点seqId(物理主机标识)不能为空 +server.CommonService.errorInfo21=位置{0}数据 节点seqId(物理主机标识)不是正整数 +server.CommonService.errorInfo22=位置{0}数据 监测设置ID不能为空 +server.CommonService.errorInfo23=位置{0}数据 监测设置ID不是整数(包括0) +server.CommonService.errorInfo24=位置{0}数据 监测类别不能为空 +server.CommonService.errorInfo25=位置{0}数据 “{1}” 监测服务启动时间须为整形数 +server.CommonService.errorInfo26=位置{0}数据 监测服务启动时间不能为空 +server.CommonService.errorInfo27=位置{0}数据 “{1}” 检测时延(秒)须为整形数 +server.CommonService.errorInfo28=位置{0}数据 “{1}” 本次检测时间须为整形数 +server.CommonService.errorInfo29=位置{0}数据 本次检测时间不能为空 +server.CommonService.errorInfo30=位置{0}数据 “{1}” 尝试次数须为整形数 +server.CommonService.errorInfo31=位置{0}数据 尝试次数不能为空 +server.CommonService.errorInfo32=位置{0}数据 “{1}” 下次计划监测时间须为整形数 +server.CommonService.errorInfo33=位置{0}数据 尝试次数不能为空 +server.CommonService.errorInfo34=位置{0}数据 “{1}” 执行状态须为整形数 +server.CommonService.errorInfo35=位置{0}数据 执行状态不能为空 + +server.EmailService.loopMission=周期任务 +server.EmailService.plantime=计划执行时间 +server.EmailService.yes=是 +server.EmailService.no=否 +server.EmailService.missionState=任务状态 +server.EmailService.nodegroup=节点组 +server.EmailService.node=节点 + +server.UpgradeService.created=已创建 +server.UpgradeService.exec=正在执行 +server.UpgradeService.finish=已完成 +server.UpgradeService.missionName=任务名称 +server.UpgradeService.createTime=创建时间 +server.UpgradeService.missionState=任务状态 +server.UpgradeService.sql.complate=任务执行完成:共 +server.UpgradeService.sql.executeNode=个执行节点,成功 +server.UpgradeService.sql.failed=个,失败 +server.UpgradeService.sql.total=共 +server.UpgradeService.sql.executeNode2=个执行节点 +server.UpgradeService.sql.unexecute=个未执行 +server.UpgradeService.sql.execute=个已执行 +server.UpgradeService.sql.success=成功 +server.UpgradeService.sql.cycle=最新周期共 +server.UpgradeService.sql.revoke=任务撤销完成 +server.UpgradeService.sql.executed=任务撤销完成 +server.UpgradeService.missionExec=任务执行通知 +server.UpgradeService.missionEnd=任务执行结束 +server.UpgradeService.coldStart=设备冷启动 +server.UpgradeService.hotStart=设备热启动 +server.UpgradeService.interClose=接口关闭 +server.UpgradeService.interUsed=接口启用 +server.UpgradeService.snmp=SNMP认证失败 +server.UpgradeService.egp=EGP邻居丢失 +server.UpgradeService.exception=未被定义的SNMPTRAP类型! +server.UpgradeService.trap=trap信息 + +server.NoDetectDataCollectManagerThread.network=网络异常 +server.NoDetectDataCollectManagerThread.start=开始 +server.NoDetectDataCollectManagerThread.shakehand=NMSClient握手 +server.NoDetectDataCollectManagerThread.faild=失败 + +server.DetecDataResoveThread.alarmInfo1=监测执行失败 +server.DetecDataResoveThread.alarmInfo1=监测恢复正常 + +server.ReturnFileReaderThread.fnInfo=回传成功 + +server.InitRunningMissionThread.outEndTime=已超过任务结束时间 任务执行结束 +server.InitRunningMissionThread.missionFail=任务执行失败 + +server.LoadNewMissionThread.missionLssue=任务下发通知 +server.LoadNewMissionThread.missionLssueStart=任务下发开始 +server.LoadNewMissionThread.missionInitFail=任务初始化失败 +server.LoadNewMissionThread.errorInfo1=命令执行任务参数为空,任务无法执行 +server.LoadNewMissionThread.errorInfo2=已超过任务结束时间 任务未能执行 +server.LoadNewMissionThread.loopMissionState=周期任务状态 +server.LoadNewMissionThread.errorInfo3=周期任务轮次初始化异常,任务无法执行 +server.LoadNewMissionThread.missionRevoke=任务撤销通知 +server.LoadNewMissionThread.missionRevokeStart=任务撤销开始执行 +server.LoadNewMissionThread.missionExecFail=任务执行失败 +server.LoadNewMissionThread.errorInfo4=升级部署任务参数为空,任务无法执行 +server.LoadNewMissionThread.missionStart=任务执行开始 + +server.MissionPollingThread.noParam=任务参数为空,任务无法执行 +server.MissionPollingThread.missionFail=任务执行失败 +server.MissionPollingThread.outEndTime=已超过任务结束时间 任务已完成 +server.MissionPollingThread.loopMissionState=周期任务状态 +server.MissionPollingThread.missionExec=任务执行开始 +server.MissionPollingThread.missionExecNotice=任务执行通知 +server.MissionPollingThread.missionRevokeNotice=任务执行通知 +server.MissionPollingThread.missionRevoke=任务撤销开始 + +server.MissionResultManagerThread.desc=描述 + +server.MonitorUtil.warnValue=告警值 +server.MonitorUtil.abnormal=不正常 +server.MonitorUtil.normal=正常 +server.MonitorUtil.gt=大于 +server.MonitorUtil.lt=小于 +server.MonitorUtil.eq=等于 +server.MonitorUtil.out=超过 +server.MonitorUtil.in=未超过 +server.MonitorUtil.notEquels=不等于 + +server.NMSClientForSNMPThread.begin=开始 +server.NMSClientForSNMPThread.snmpShake=SNMP握手 +server.NMSClientForSNMPThread.success=成功 +server.NMSClientForSNMPThread.fail=失败 +server.NMSClientForSNMPThread.netErr=网络异常 + +server.NMSClientForSocketThread.nmsShake=NMSClient握手 + +server.PingThread.ping=目标主机ping失败 + +server.SystemDateThread.getSysTimeFail=获取该节点系统时间失败 + +server.SSLServerManager.exception=通讯服务端口绑定失败,且超过最大次数,启动失败 + +server.ConnectionOracle.getConnection=获取数据库连接失败 + +server.SNMP4JUtils.Exception1=为非基本节点 +server.SNMP4JUtils.response=响应结果为空 +server.SNMP4JUtils.Exception2=错误信息 +server.SNMP4JUtils.Exception3=获取SNMP表出错 +server.SNMP4JUtils.Exception4=获取SNMP表出现异常 + +server.ZipUtil.exception1=压缩目录或文件不存在 +server.ZipUtil.exception2=压缩文件列表为空 + +server.DataController.showMsg=通讯服务启动失败!\n请确定程序是否未启动或检查服务端口 +server.DataController.isExists=未被占用! +server.DataController.error=错误 + +##########################oam################################ + +procInfoList.text.uploadTar=请上传tar文件,并确认包含绝对路径 +procInfoList.text.format=格式正确,请确认包含绝对路径 +procInfoList.text.bordCardNull=板卡不能为空 +procInfoList.text.processNull=进程不能为空 +procInfoList.text.bordCard=板卡 +procInfoList.text.process=进程 +procInfoList.text.updateFile=升级文件 +procInfoList.text.updateSuccess=更新成功 +procInfoList.text.updateFaild=更新失败 +procInfoList.text.bordName=板卡名称 +procInfoList.text.procName=进程名称 +procInfoList.text.proceNo=进程号 +procInfoList.text.procStartTime=进程启动时间 +procInfoList.text.cpuUsage=CPU占用率 +procInfoList.text.memeryUsage=内存占用率 +procInfoList.text.procState=进程状态 +procInfoList.text.ok=正常 +procInfoList.text.no=异常 +procInfoList.text.strengthened=系统是否加固 +procInfoList.text.optimized=系统是否优化 +procInfoList.text.sysname=系统名称 +procInfoList.text.serviceName=服务名称 +procInfoList.text.serviceState=服务状态 + +processReset.text.result=未保存重置镜像,重置失败! +processReset.text.confirm=确认重置吗?此过程具有一定危险性且不可逆! +reset.success=重置成功 +reset.failed=重置失败 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gloam/WebRoot/img/action.png b/gloam/WebRoot/img/action.png new file mode 100644 index 0000000..88e0fd2 Binary files /dev/null and b/gloam/WebRoot/img/action.png differ diff --git a/gloam/WebRoot/img/glyphicons.svg b/gloam/WebRoot/img/glyphicons.svg new file mode 100644 index 0000000..a05dbd2 --- /dev/null +++ b/gloam/WebRoot/img/glyphicons.svg @@ -0,0 +1,4157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gloam/WebRoot/img/glyphicons_halflings-white.svg b/gloam/WebRoot/img/glyphicons_halflings-white.svg new file mode 100644 index 0000000..f8c1d59 --- /dev/null +++ b/gloam/WebRoot/img/glyphicons_halflings-white.svg @@ -0,0 +1,1007 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gloam/WebRoot/img/glyphicons_halflings.svg b/gloam/WebRoot/img/glyphicons_halflings.svg new file mode 100644 index 0000000..4f3690d --- /dev/null +++ b/gloam/WebRoot/img/glyphicons_halflings.svg @@ -0,0 +1,1010 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gloam/WebRoot/img/logo.png b/gloam/WebRoot/img/logo.png new file mode 100644 index 0000000..6ca68c0 Binary files /dev/null and b/gloam/WebRoot/img/logo.png differ diff --git a/gloam/WebRoot/img/no.gif b/gloam/WebRoot/img/no.gif new file mode 100644 index 0000000..8947bcb Binary files /dev/null and b/gloam/WebRoot/img/no.gif differ diff --git a/gloam/WebRoot/img/route/ADC-A016-BACK.png b/gloam/WebRoot/img/route/ADC-A016-BACK.png new file mode 100644 index 0000000..26298de Binary files /dev/null and b/gloam/WebRoot/img/route/ADC-A016-BACK.png differ diff --git a/gloam/WebRoot/img/route/ADC-A016-FRONT.png b/gloam/WebRoot/img/route/ADC-A016-FRONT.png new file mode 100644 index 0000000..36b05fc Binary files /dev/null and b/gloam/WebRoot/img/route/ADC-A016-FRONT.png differ diff --git a/gloam/WebRoot/img/route/ASEM-T102-BACK.png b/gloam/WebRoot/img/route/ASEM-T102-BACK.png new file mode 100644 index 0000000..70e10d0 Binary files /dev/null and b/gloam/WebRoot/img/route/ASEM-T102-BACK.png differ diff --git a/gloam/WebRoot/img/route/ASEM-T102-FRONT.png b/gloam/WebRoot/img/route/ASEM-T102-FRONT.png new file mode 100644 index 0000000..b1ab59b Binary files /dev/null and b/gloam/WebRoot/img/route/ASEM-T102-FRONT.png differ diff --git a/gloam/WebRoot/img/sidebar-toggler.jpg b/gloam/WebRoot/img/sidebar-toggler.jpg new file mode 100644 index 0000000..2d87fc0 Binary files /dev/null and b/gloam/WebRoot/img/sidebar-toggler.jpg differ diff --git a/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.png b/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.png differ diff --git a/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.svg b/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.svg new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/gloam/WebRoot/img/ui-icons_cd0a0a_256x240.svg differ diff --git a/gloam/WebRoot/img/yes.gif b/gloam/WebRoot/img/yes.gif new file mode 100644 index 0000000..5a666b0 Binary files /dev/null and b/gloam/WebRoot/img/yes.gif differ diff --git a/gloam/WebRoot/js/DT_bootstrap.js b/gloam/WebRoot/js/DT_bootstrap.js new file mode 100644 index 0000000..0f562e5 --- /dev/null +++ b/gloam/WebRoot/js/DT_bootstrap.js @@ -0,0 +1,145 @@ +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p><'span6'l>>", + "sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + } +} ); + + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bootstrap": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + + $(nPaging).addClass('pagination').append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + } +} ); + + +/* + * TableTools Bootstrap compatibility + * Required TableTools 2.1+ + */ +if ( $.fn.DataTable.TableTools ) { + // Set the classes that TableTools uses to something suitable for Bootstrap + $.extend( true, $.fn.DataTable.TableTools.classes, { + "container": "DTTT btn-group", + "buttons": { + "normal": "btn", + "disabled": "disabled" + }, + "collection": { + "container": "DTTT_dropdown dropdown-menu", + "buttons": { + "normal": "", + "disabled": "disabled" + } + }, + "print": { + "info": "DTTT_print_info modal" + }, + "select": { + "row": "active" + } + } ); + + // Have the collection use a bootstrap compatible dropdown + $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { + "collection": { + "container": "ul", + "button": "li", + "liner": "a" + } + } ); +} \ No newline at end of file diff --git a/gloam/WebRoot/js/My97DatePicker/WdatePicker.js b/gloam/WebRoot/js/My97DatePicker/WdatePicker.js new file mode 100644 index 0000000..b38bcc8 --- /dev/null +++ b/gloam/WebRoot/js/My97DatePicker/WdatePicker.js @@ -0,0 +1,50 @@ +/* + * My97 DatePicker 4.8 + * License: http://www.my97.net/license.asp + */ +var $dp,WdatePicker;(function(){var l={ +$langList:[ +{name:"en_US",charset:"UTF-8"}, +{name:"zh_CN",charset:"UTF-8"} +], +$skinList:[ +{name:"default",charset:"UTF-8"}, +{name:"simple",charset:"UTF-8"}], +$wdate:true, +$crossFrame:false, +$preLoad:false, +$dpPath:"", +doubleCalendar:false, +enableKeyboard:true, +enableInputMask:true, +autoUpdateOnChanged:null, +weekMethod:"MSExcel", +position:{}, +lang:"auto", +skin:"default", +dateFmt:"yyyy-MM-dd", +realDateFmt:"yyyy-MM-dd", +realTimeFmt:"HH:mm:ss", +realFullFmt:"%Date %Time", +minDate:"0001-01-01 00:00:00", +maxDate:"9999-12-31 23:59:59", +minTime:"00:00:00", +maxTime:"23:59:59", +startDate:"", +alwaysUseStartDate:false, +yearOffset:1911, +firstDayOfWeek:0, +isShowWeek:false, +highLineWeekDay:true, +isShowClear:true, +isShowToday:true, +isShowOK:true, +isShowOthers:true, +readOnly:false, +errDealMode:0, +autoPickDate:null, +qsEnabled:true, +autoShowQS:false, +hmsMenuCfg:{H:[1,6],m:[5,6],s:[15,4]}, + +opposite:false,specialDates:null,specialDays:null,disabledDates:null,disabledDays:null,onpicking:null,onpicked:null,onclearing:null,oncleared:null,ychanging:null,ychanged:null,Mchanging:null,Mchanged:null,dchanging:null,dchanged:null,Hchanging:null,Hchanged:null,mchanging:null,mchanged:null,schanging:null,schanged:null,eCont:null,vel:null,elProp:"",errMsg:"",quickSel:[],has:{},getRealLang:function(){var d=l.$langList;for(var e=0;e0?1:0;var K=new Date(this.dt.y,this.dt.M,0).getDate();this.dt.d=Math.min(K+M,this.dt.d)}}}}if(this.dt.refresh()){return this.dt}}return""},show:function(){var K=E[z].getElementsByTagName("div"),J=100000;for(var e=0;eJ){J=L}}this.dd.style.zIndex=J+2;r(this.dd,"block");r(this.dd.firstChild,"")},unbind:function(e){e=this.$(e);if(e.initcfg){t(e,"onclick",function(){g(e.initcfg)});t(e,"onfocus",function(){g(e.initcfg)})}},hide:function(){r(this.dd,"none")},attachEvent:k};for(var d in w){E.$dp[d]=w[d]}$dp=E.$dp}function k(I,J,w,d){if(I.addEventListener){var e=J.replace(/on/,"");w._ieEmuEventHandler=function(K){return w(K)};I.addEventListener(e,w._ieEmuEventHandler,d)}else{I.attachEvent(J,w)}}function t(w,I,e){if(w.removeEventListener){var d=I.replace(/on/,"");e._ieEmuEventHandler=function(J){return e(J)};w.removeEventListener(d,e._ieEmuEventHandler,false)}else{w.detachEvent(I,e)}}function C(w,e,d){if(typeof w!=typeof e){return false}if(typeof w=="object"){if(!d){for(var I in w){if(typeof e[I]=="undefined"){return false}if(!C(w[I],e[I],true)){return false}}}return true}else{if(typeof w=="function"&&typeof e=="function"){return w.toString()==e.toString()}else{return w==e}}}function q(){var I,w,d=n[z][H]("script");for(var e=0;e0){I=I.substring(0,w+1)}if(I){break}}return I}function m(w,I,J){var d=n[z][H]("HEAD").item(0),e=n[z].createElement("link");if(d){e.href=w;e.rel="stylesheet";e.type="text/css";if(I){e.title=I}if(J){e.charset=J}d.appendChild(e)}}function p(I){I=I||E;var L=0,d=0;while(I!=E){var N=I.parent[z][H]("iframe");for(var J=0;JI.scrollTop||d.scrollLeft>I.scrollLeft))?d:I;return{top:J.scrollTop,left:J.scrollLeft}}function s(d){try{var w=d?(d.srcElement||d.target):null;if($dp.cal&&!$dp.eCont&&$dp.dd&&w!=$dp.el&&$dp.dd.style.display=="block"){$dp.cal.close()}}catch(d){}}function A(){$dp.status=2}var G,j;function g(M,d){if(!$dp){return}b();var J={};for(var L in M){J[L]=M[L]}for(var L in l){if(L.substring(0,1)!="$"&&J[L]===undefined){J[L]=l[L]}}if(d){if(!w()){j=j||setInterval(function(){if(E[z].readyState=="complete"){clearInterval(j)}g(null,true)},50);return}if($dp.status==0){$dp.status=1;J.el=i;a(J,true)}else{return}}else{if(J.eCont){J.eCont=$dp.$(J.eCont);J.el=i;J.autoPickDate=true;J.qsEnabled=false;a(J)}else{if(l.$preLoad&&$dp.status!=2){return}var I=N();if(n.event===I||I){J.srcEl=I.srcElement||I.target;I.cancelBubble=true}J.el=J.el=$dp.$(J.el||J.srcEl);if(J.el==null){alert("WdatePicker:el is null!\nexample:onclick=\"WdatePicker({el:this})\"");return;}try{if(!J.el||J.el.My97Mark===true||J.el.disabled||($dp.dd&&r($dp.dd)!="none"&&$dp.dd.style.left!="-970px")){if(J.el.My97Mark){J.el.My97Mark=false}return}}catch(K){}if(I&&J.el.nodeType==1&&!C(J.el.initcfg,M)){$dp.unbind(J.el);k(J.el,I.type=="focus"?"onclick":"onfocus",function(){g(M)});J.el.initcfg=M}a(J)}}function w(){if(h&&E!=n&&E[z].readyState!="complete"){return false}return true}function N(){if(f){try{func=N.caller;while(func!=null){var O=func.arguments[0];if(O&&(O+"").indexOf("Event")>=0){return O}func=func.caller}}catch(P){}return null}return event}}function c(e,d){return e.currentStyle?e.currentStyle[d]:document.defaultView.getComputedStyle(e,false)[d]}function r(e,d){if(e){if(d!=null){e.style.display=d}else{return c(e,"display")}}}function a(e,d){var K=e.el?e.el.nodeName:"INPUT";if(d||e.eCont||new RegExp(/input|textarea|div|span|p|a/ig).test(K)){e.elProp=K=="INPUT"?"value":"innerHTML"}else{return}if(e.lang=="auto"){e.lang=h?navigator.browserLanguage.toLowerCase():navigator.language.toLowerCase()}if(!e.eCont){for(var J in e){$dp[J]=e[J]}}if(!$dp.dd||e.eCont||($dp.dd&&(e.getRealLang().name!=$dp.dd.lang||e.skin!=$dp.dd.skin))){if(e.eCont){w(e.eCont,e)}else{$dp.dd=E[z].createElement("DIV");$dp.dd.style.cssText="position:absolute";E[z].body.appendChild($dp.dd);w($dp.dd,e);if(d){$dp.dd.style.left=$dp.dd.style.top="-970px"}else{$dp.show();I($dp)}}}else{if($dp.cal){$dp.show();$dp.cal.init();if(!$dp.eCont){I($dp)}}}function w(V,P){var O=E[z].domain,S=false,M='';V.innerHTML=M;var L=l.$langList,U=l.$skinList,T;try{T=V.lastChild.contentWindow[z]}catch(Q){S=true;V.removeChild(V.lastChild);var N=E[z].createElement("iframe");N.hideFocus=true;N.frameBorder=0;N.scrolling="no";N.src="javascript:(function(){var d=document;d.open();d.domain='"+O+"';})()";V.appendChild(N);setTimeout(function(){T=V.lastChild.contentWindow[z];R()},97);return}R();function R(){var Y=P.getRealLang();V.lang=Y.name;V.skin=P.skin;var X=[" + + + + diff --git a/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.css b/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.css new file mode 100644 index 0000000..798b81e --- /dev/null +++ b/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.css @@ -0,0 +1,1176 @@ +/*! jQuery UI - v1.11.4 - 2018-08-24 +* http://jqueryui.com +* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ + font-size: 100%; +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + overflow: hidden; + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: none; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + position: relative; + margin: 0; + padding: 3px 1em 3px .4em; + cursor: pointer; + min-height: 0; /* support: IE7 */ + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + filter: alpha(opacity=25); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 22px; +} +.ui-spinner-button { + width: 16px; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top: none; + border-bottom: none; + border-right: none; +} +/* vertically center icon */ +.ui-spinner .ui-icon { + position: absolute; + margin-top: -8px; + top: 50%; + left: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/* TR overrides */ +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position: -65px -16px; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited { + color: #2b2b2b; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-default .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + margin: 0px 0 0 0px; + padding: 5px; + background: #666666; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ + border-radius: 8px; +} diff --git a/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.js b/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.js new file mode 100644 index 0000000..eafba87 --- /dev/null +++ b/gloam/WebRoot/js/jquery-ui-1.11.4/jquery-ui.js @@ -0,0 +1,15972 @@ +/*! jQuery UI - v1.11.4 - 2018-08-24 +* http://jqueryui.com +* Includes: core.js, widget.js, mouse.js, position.js, draggable.js, droppable.js, resizable.js, selectable.js, sortable.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, menu.js, progressbar.js, slider.js, spinner.js, tabs.js, tooltip.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-slide.js, effect-transfer.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Core 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/ui-core/ + */ + + +// $.ui might exist from components with no dependencies, e.g., $.ui.position +$.ui = $.ui || {}; + +$.extend( $.ui, { + version: "1.11.4", + + keyCode: { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 + } +}); + +// plugins +$.fn.extend({ + scrollParent: function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); + }).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; + }, + + uniqueId: (function() { + var uuid = 0; + + return function() { + return this.each(function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + }); + }; + })(), + + removeUniqueId: function() { + return this.each(function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + }); + } +}); + +// selectors +function focusable( element, isTabIndexNotNaN ) { + var map, mapName, img, + nodeName = element.nodeName.toLowerCase(); + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; + return !!img && visible( img ); + } + return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? + !element.disabled : + "a" === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN) && + // the element and all of its ancestors must be visible + visible( element ); +} + +function visible( element ) { + return $.expr.filters.visible( element ) && + !$( element ).parents().addBack().filter(function() { + return $.css( this, "visibility" ) === "hidden"; + }).length; +} + +$.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo(function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + }) : + // support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + isTabIndexNaN = isNaN( tabIndex ); + return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); + } +}); + +// support: jQuery <1.8 +if ( !$( "" ).outerWidth( 1 ).jquery ) { + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; + }); +} + +// support: jQuery <1.8 +if ( !$.fn.addBack ) { + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) +if ( $( "" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { + $.fn.removeData = (function( removeData ) { + return function( key ) { + if ( arguments.length ) { + return removeData.call( this, $.camelCase( key ) ); + } else { + return removeData.call( this ); + } + }; + })( $.fn.removeData ); +} + +// deprecated +$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +$.fn.extend({ + focus: (function( orig ) { + return function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + orig.apply( this, arguments ); + }; + })( $.fn.focus ), + + disableSelection: (function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.bind( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }; + })(), + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
+ value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + } +}); + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +$.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + +/*! + * jQuery UI Mouse 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/mouse/ + */ + + +var mouseHandled = false; +$( document ).mouseup( function() { + mouseHandled = false; +}); + +var mouse = $.widget("ui.mouse", { + version: "1.11.4", + options: { + cancel: "input,textarea,button,select,option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .bind("mousedown." + this.widgetName, function(event) { + return that._mouseDown(event); + }) + .bind("click." + this.widgetName, function(event) { + if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { + $.removeData(event.target, that.widgetName + ".preventClickEvent"); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind("." + this.widgetName); + if ( this._mouseMoveDelegate ) { + this.document + .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate) + .unbind("mouseup." + this.widgetName, this._mouseUpDelegate); + } + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = (event.which === 1), + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + that.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { + $.removeData(event.target, this.widgetName + ".preventClickEvent"); + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return that._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return that._mouseUp(event); + }; + + this.document + .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .bind( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { + return this._mouseUp(event); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + return this._mouseUp( event ); + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + this.document + .unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .unbind( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target === this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + ".preventClickEvent", true); + } + + this._mouseStop(event); + } + + mouseHandled = false; + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(/* event */) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(/* event */) {}, + _mouseDrag: function(/* event */) {}, + _mouseStop: function(/* event */) {}, + _mouseCapture: function(/* event */) { return true; } +}); + + +/*! + * jQuery UI Position 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +(function() { + +$.ui = $.ui || {}; + +var cachedScrollbarWidth, supportsOffsetFractions, + max = Math.max, + abs = Math.abs, + round = Math.round, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function getDimensions( elem ) { + var raw = elem[0]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( $.isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" ), + innerDiv = div.children()[0]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[0].clientWidth; + } + + div.remove(); + + return (cachedScrollbarWidth = w1 - w2); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[0] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: withinElement.offset() || { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + + // support: jQuery 1.6.x + // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows + width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), + height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[0].preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + // clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each(function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + // if the browser doesn't support fractions, then round for consistent results + if ( !supportsOffsetFractions ) { + position.left = round( position.left ); + position.top = round( position.top ); + } + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + }); + } + }); + + if ( options.using ) { + // adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // element is wider than within + if ( data.collisionWidth > outerWidth ) { + // element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; + position.left += overLeft - newOverRight; + // element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + // element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + // too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + // too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + // adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // element is taller than within + if ( data.collisionHeight > outerHeight ) { + // element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; + position.top += overTop - newOverBottom; + // element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + // element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + // too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + // too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + // adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +// fraction support test +(function() { + var testElement, testElementParent, testElementStyle, offsetLeft, i, + body = document.getElementsByTagName( "body" )[ 0 ], + div = document.createElement( "div" ); + + //Create a "fake body" for testing based on method used in jQuery.support + testElement = document.createElement( body ? "div" : "body" ); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if ( body ) { + $.extend( testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for ( i in testElementStyle ) { + testElement.style[ i ] = testElementStyle[ i ]; + } + testElement.appendChild( div ); + testElementParent = body || document.documentElement; + testElementParent.insertBefore( testElement, testElementParent.firstChild ); + + div.style.cssText = "position: absolute; left: 10.7432222px;"; + + offsetLeft = $( div ).offset().left; + supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; + + testElement.innerHTML = ""; + testElementParent.removeChild( testElement ); +})(); + +})(); + +var position = $.ui.position; + + +/*! + * jQuery UI Draggable 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/draggable/ + */ + + +$.widget("ui.draggable", $.ui.mouse, { + version: "1.11.4", + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false, + + // callbacks + drag: null, + start: null, + stop: null + }, + _create: function() { + + if ( this.options.helper === "original" ) { + this._setPositionRelative(); + } + if (this.options.addClasses){ + this.element.addClass("ui-draggable"); + } + if (this.options.disabled){ + this.element.addClass("ui-draggable-disabled"); + } + this._setHandleClassName(); + + this._mouseInit(); + }, + + _setOption: function( key, value ) { + this._super( key, value ); + if ( key === "handle" ) { + this._removeHandleClassName(); + this._setHandleClassName(); + } + }, + + _destroy: function() { + if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { + this.destroyOnClear = true; + return; + } + this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); + this._removeHandleClassName(); + this._mouseDestroy(); + }, + + _mouseCapture: function(event) { + var o = this.options; + + this._blurActiveElement( event ); + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { + return false; + } + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) { + return false; + } + + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); + + return true; + + }, + + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map(function() { + var iframe = $( this ); + + return $( "
" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + }); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var document = this.document[ 0 ]; + + // Only need to blur if the event occurred on the draggable itself, see #10527 + if ( !this.handleElement.is( event.target ) ) { + return; + } + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an ';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){s=e.find(".layui-layer-input"),s.focus(),"function"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
    '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
  • '+(t[0].content||"no content")+"
  • ";i'+(t[i].content||"no content")+"";return a}()+"
",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
'+(u.length>1?'':"")+'
'+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/gloam/WebRoot/js/loading.js b/gloam/WebRoot/js/loading.js new file mode 100644 index 0000000..2e4a30b --- /dev/null +++ b/gloam/WebRoot/js/loading.js @@ -0,0 +1,162 @@ +//未曾遗忘的青春 +//github https://github.com/IFmiss/loading +//显示Loading +(function($){ + $.fn.loading = function(options){ + var $this = $(this); + var _this = this; + return this.each(function(){ + var loadingPosition =''; + var defaultProp = { + direction: 'column', //方向,column纵向 row 横向 + animateIn: 'fadeInNoTransform', //进入类型 + title: '请稍等...', //显示什么内容 + name: 'loadingName', //loading的data-name的属性值 用于删除loading需要的参数 + type: 'origin', //pic origin + discription: '这是一个描述', //loading的描述 + titleColor: 'rgba(255,255,255,0.7)', //title文本颜色 + discColor: 'rgba(255,255,255,0.7)', //disc文本颜色 + loadingWidth: 260, //中间的背景宽度width + loadingBg: 'rgba(0, 0, 0, 0.6)', //中间的背景色 + borderRadius: 12, //中间的背景色的borderRadius + loadingMaskBg: 'transparent', //背景遮罩层颜色 + zIndex: 1000001, //层级 + + // 这是圆形旋转的loading样式 + originDivWidth: 60, //loadingDiv的width + originDivHeight: 60, //loadingDiv的Height + + originWidth: 8, //小圆点width + originHeight: 8, //小圆点Height + originBg: '#fefefe', //小圆点背景色 + smallLoading: false, //显示小的loading + + // 这是图片的样式 (pic) + imgSrc: 'http://www.daiwei.org/index/images/logo/dw.png', //默认的图片地址 + imgDivWidth: 80, //imgDiv的width + imgDivHeight: 80, //imgDiv的Height + + flexCenter: false, //是否用flex布局让loading-div垂直水平居中 + flexDirection: 'row', //row column flex的方向 横向 和 纵向 + mustRelative: false, //$this是否规定relative + }; + + + var opt = $.extend(defaultProp,options || {}); + + //根据用户是针对body还是元素 设置对应的定位方式 + if($this.selector == 'body'){ + $('body,html').css({ + overflow:'hidden', + }); + loadingPosition = 'fixed'; + }else if(opt.mustRelative){ + $this.css({ + position:'relative', + }); + loadingPosition = 'absolute'; + }else{ + loadingPosition = 'absolute'; + } + + defaultProp._showOriginLoading = function(){ + var smallLoadingMargin = opt.smallLoading ? 0 : '-10px'; + if(opt.direction == 'row'){smallLoadingMargin='-6px'} + + //悬浮层 + _this.cpt_loading_mask = $('
').css({ + 'background':opt.loadingMaskBg, + 'z-index':opt.zIndex, + 'position':loadingPosition, + }).appendTo($this); + + //中间的显示层 + _this.div_loading = $('
').css({ + 'background':opt.loadingBg, + 'width':opt.loadingWidth, + 'height':opt.loadingHeight, + '-webkit-border-radius':opt.borderRadius, + '-moz-border-radius':opt.borderRadius, + 'border-radius':opt.borderRadius, + }).appendTo(_this.cpt_loading_mask); + + if(opt.flexCenter){ + _this.div_loading.css({ + "display": "-webkit-flex", + "display": "flex", + "-webkit-flex-direction":opt.flexDirection, + "flex-direction":opt.flexDirection, + "-webkit-align-items": "center", + "align-items": "center", + "-webkit-justify-content": "center", + "justify-content":"center", + }); + } + + //loading标题 + _this.loading_title = $('

').css({ + color:opt.titleColor, + }).html(opt.title).appendTo(_this.div_loading); + + //loading中间的内容 可以是图片或者转动的小圆球 + _this.loading = $('
').css({ + 'width':opt.originDivWidth, + 'height':opt.originDivHeight, + }).appendTo(_this.div_loading); + + //描述 + _this.loading_discription = $('

').css({ + color:opt.discColor, + }).html(opt.discription).appendTo(_this.div_loading); + + if(opt.type == 'origin'){ + _this.loadingOrigin = $('
').appendTo(_this.loading); + _this.loadingOrigin.children().css({ + "margin-top":smallLoadingMargin, + "margin-left":smallLoadingMargin, + "width":opt.originWidth, + "height":opt.originHeight, + "background":opt.originBg, + }); + } + + if(opt.type == 'pic'){ + _this.loadingPic = $('loading').appendTo(_this.loading); + } + + + //关闭事件冒泡 和默认的事件 + _this.cpt_loading_mask.on('touchstart touchend touchmove click',function(e){ + e.stopPropagation(); + e.preventDefault(); + }); + }; + defaultProp._createLoading = function(){ + //不能生成两个loading data-name 一样的loading + if($(".cpt-loading-mask[data-name="+opt.name+"]").length > 0){ + // console.error('loading mask cant has same date-name('+opt.name+'), you cant set "date-name" prop when you create it'); + return + } + + defaultProp._showOriginLoading(); + }; + defaultProp._createLoading(); + }); + } + +})(jQuery) + +//关闭Loading +function removeLoading(loadingName){ + var loadingName = loadingName || ''; + $('body,html').css({ + overflow:'auto', + }); + + if(loadingName == ''){ + $(".cpt-loading-mask").remove(); + }else{ + var name = loadingName || 'loadingName'; + $(".cpt-loading-mask[data-name="+name+"]").remove(); + } +} \ No newline at end of file diff --git a/gloam/WebRoot/js/lockTableHeader.js b/gloam/WebRoot/js/lockTableHeader.js new file mode 100644 index 0000000..95ebc4a --- /dev/null +++ b/gloam/WebRoot/js/lockTableHeader.js @@ -0,0 +1,479 @@ + var headerFloating = true; // 是否实现表头浮动标识 true 实现 ;flase 不实现 默认 实现 + var headerMinRows = 1; // 表头航标 默认 1行 + var headerOnResize = true; // 窗口大小变化时 同步表头浮动 默认实现 + var floatingDivId = 'tableHeaderDiv'; // 表头divId + var defaultDataListId = null; // + var defaultIframeWindowId = null; + + /* 是否实现表头浮动 + **/ + function initHeaderFloating(flag){ + headerFloating = flag; + } + + /* 浮动表头行数 + **/ + function initHeaderMinRows(num){ + headerMinRows = num; + } + + /* 浮动表头 同步窗口大小的变动 + **/ + function initHeaderOnResize(flag){ + headerOnResize = flag; + } + + /* 获取指定iframeId的window dom对象和层数 + **/ + function getIframeWindow(iframeId){ + var maxSize = 5; // 循环最大次数限制 防止死循环 + var findFlag = false; // 查找标识 + + // 获取 I3 window dom对象 + var windowObj = window; // I3的window dom对象 + var parentSize = 1; // iframe 所在的层数 当前window层为I3的 1 为子层 2 为子子层,3 为子子子层 + + // iframeId 无效 查找失败 数据重置 windowObj 为 当前window i 为0层 即无iframe + if(iframeId == '' || iframeId == null){ + windowObj = window; + parentSize = 0; + return {windowObj:windowObj,parentSize:parentSize}; + } + + + //循环获取父窗口的 window dom对象 + //如果获取到I3 即能 I3window 及 层次(i) + for(parentSize;parentSizetr:lt(10)").clone(true)); + + /* 计算表头行数rowsSize 格式化克隆表(同步表头列宽、清理非表头数据、事件同步) + **/ + var headerTop = $tableOrg.position().top; // 表头上边距 + var headerLeft = $tableOrg.position().left; // 表头左边距 + var headerHeight = 0; // 表头高度 + var headerWidht = $tableOrg.width(); // 表头宽度 + var rowsSize = headerRows; // 表头行数 + + var maxColHeight = 0; // 表头单行高 + var row=0,col=0; // 行标 列标 + var $colDataOrg = null; // 原行TD数据 + var $colDataClone = null; // 克隆表行TD数据 + //行列两层嵌套循环,对应设定克隆表列宽 + //计算表头行数rowsSize、表头高度headerHeight + for(row;rowrowsSize-row){ // 判断表头行数 + rowsSize = rowsSize + $cellOrg.attr('rowspan')-1; // 更新表头行数 + } + //获取 浮动表头 单行高度 + if($cellOrg.height()>maxColHeight){ // 判断单行行高 + maxColHeight = $cellOrg.height(); + } + } + + headerHeight += maxColHeight; // 行高累加 + maxColHeight = 0; // 单行行高 重置 + col =0; // 列 重置 + } + + // 删除 克隆表 非表头数据 + var $tableCloneRows = $tableClone.find('tr'); + for(var m = rowsSize; m < $tableCloneRows.length;m++){ + $tableCloneRows.eq(m).remove(); + } + + /* 获取 I3 window dom对象 + **/ + var wObj = getIframeWindow(iframeId); // 获取Iframe window信息 + var windowObj = wObj.windowObj; // I3的window dom对象 一下简称‘I3window’ + var parentSize = wObj.parentSize; // iframe 所在的层数 当前window层为I3的 1 为子层 2 为子子层,3 为子子子层 + + /** + * 实现div表头固定 + **/ + + //检查 表头是否已存在 删除已存在的 以备添加新表头 + var obj = window.document.getElementById(floatingDivId); // 获取 I3window 中的 floatingDivId 删除-更新 该div + if (obj) {//若存在 删除 + $(obj).remove(); //删除 div + } + + //div 位置 固定 固定位置和宽高 px值 + var divT = 0; // div top + var divL = ($tableOrg.position().left); // div left + var divR = ($tableOrg.position().left+headerWidht); // div right + var divH = headerHeight; // div height + var divW = headerWidht; // div width + //alert($tableOrg.position().left); + //生成表头div + var headerDiv = window.document.createElement("div");//创建一个div + var $headerDiv = $(headerDiv); + $headerDiv.css("top", divT+'px'); //显示的Y轴到上边框距离 + $headerDiv.css("left", divL+'px'); //显示的X轴到左边框距离 + $headerDiv.css("width", divW+'px'); //宽度 + $headerDiv.css("height", divH+'px'); //高度 + +// $headerDiv.css('border','1px'); //边框宽度 + $headerDiv.css("z-index", "20"); //div层 第20层 保证该层不被挤用 + $headerDiv.css('position','absolute'); //相对于窗口的位置固定 影响 top left的值 +// $headerDiv.css('position','fixed'); //相对于页面的位置固定 影响 top left的值 IE不好使 + $headerDiv.css('display','inline'); //inline的形式显示 + $headerDiv.css("overflow", "hidden"); //内容被剪裁,隐藏 +// $headerDiv.css('overflow','visible'); //内容不被剪裁,显示 + + + headerDiv.appendChild($tableClone[0]); // 将克隆的表头添加到div中 + $headerDiv.attr("id", floatingDivId); // 为div设置Id 为 floatingDivId + $headerDiv.insertBefore($('body table',window.document).first()); // 将div加入页面中 + + //获取当前 iframe 在全窗口位置 + var iframePosition = getIframePositionInWindowObj(parentSize); + var iframeTop = iframePosition.top; // iframe 上边距 + var iframeLeft = iframePosition.left; // iframe 左边距 + //alert(iframeTop+" "+iframeLeft); + + //iframe 已得到 tableHeader已得到 + //判断表头是否需要显示 + if(($(windowObj).scrollTop() - iframeTop - headerTop)< 0){ + if($headerDiv.css("display") != 'none'){ + $headerDiv.css("display",'none'); + } + $headerDiv.css('top',headerTop+'px'); + }else{ + if($headerDiv.css("display") == 'none'){ + $headerDiv.css("display",'inline'); + } + $headerDiv.css('top',($(windowObj).scrollTop() - iframeTop)+'px'); + if(($(windowObj).scrollTop() - iframeTop - headerTop)> ($tableOrg.height())){ + $headerDiv.css("display",'none'); + $headerDiv.css('top',(headerTop + $tableOrg.height())+'px'); + } + } + + /** + * 添加滚动条监听事件 + **/ + $(windowObj.window).scroll(function(){ + + //alert(($(windowObj).scrollTop() - tableHeaderH)); + //当 滚动条滚动 偏移 大于 表头所在像素位置时,显示浮动表头div + if(($(windowObj).scrollTop() - iframeTop - headerTop) < 0){ + //判断 表头div是否是隐藏状态,若否设置为隐藏 + if($(headerDiv).css("display") != 'none'){ + //将div设置为隐藏 none + $(headerDiv).css("display",'none'); + } + //重新固定 将表头固定到列表表头位置 + $(headerDiv).css('top',headerTop+'px'); + }else{ + //判断 表头div是否是显示状态,若否设置为显示 + if($headerDiv.css("display") == 'none'){ + //将div设置为显示 inline + $headerDiv.css('display','inline'); + } + //重新固定 表头div的垂直方向位置(位置范围为本层window.document scorllHeight) + $headerDiv.css('top',($(windowObj).scrollTop() - iframeTop)+'px'); + if(($(windowObj).scrollTop() - iframeTop - headerTop)> ($tableOrg.height())){ + $headerDiv.css("display",'none'); + $headerDiv.css('top',(headerTop + $tableOrg.height())+'px'); + } + } + }); + + /* 为父添加窗口大小更改触发事件 + **/ + if(headerOnResize){ + $("#"+tableId).resize(function(){ + + $tableOrg = $("#"+tableId); + $tableClone = $("#"+tableCloneId); + + //重设置header高度值 + headerTop = $tableOrg.position().top; // 表头上边距 + headerLeft = $tableOrg.position().left; // 表头左边距 + headerHeight = 0; // 表头高度 + headerWidht = $tableOrg.width(); // 表头宽度 + maxColHeight = 0; // 表头单行高 + + /**获取表头,并设定列宽 + **/ + var row=0,col=0; //行标 列标 + var rowsSize=headerMinRows; //表头行数 + + var $colDataOrg = null; //原行TD数据 + var $colDataClone = null; //克隆表行TD数据 + + /**重设置表头列宽 + * 计算表头行数rowsSize + **/ + for(row;rowrowsSize-row){ //判断表头行数 + rowsSize = rowsSize + $cellOrg.attr('rowspan')-1; //更新表头行数 + } + //获取 浮动表头 单行高度 + if($cellOrg.height()>maxColHeight){ // 判断单行行高 + maxColHeight = $cellOrg.height(); + } + } + headerHeight += maxColHeight; // 行高累加 + maxColHeight = 0; // 单行行高 重置 + col =0; //列 重置 + } + + //获取当前 iframe 在全窗口位置 + iframePosition = getIframePositionInWindowObj(parentSize); + iframeTop = iframePosition.top; // iframe 上边距 + iframeLeft = iframePosition.left; // iframe 左边距 + //alert(iframeTop+" "+iframeLeft); + + //重设置headerdiv参数 + divT = 0; // div top + divL = ($tableOrg.position().left); // div left + divR = ($tableOrg.position().left+headerWidht); // div right + divH = headerHeight; // div height + divW = headerWidht; // div width + //alert($tableOrg.position().left); + $headerDiv.css("top", '0px'); //宽度 + $headerDiv.css("top", divT+'px'); //显示的Y轴到上边框距离 + $headerDiv.css("left", divL+'px'); //显示的X轴到左边框距离 + $headerDiv.css("width", divW+'px'); //宽度 + $headerDiv.css("height", divH+'px'); //高度 + //判断表头是否需要显示 + if(($(windowObj).scrollTop() - iframeTop - headerTop)< 0){ + if($headerDiv.css("display") != 'none'){ + $headerDiv.css("display",'none'); + } + $headerDiv.css('top',headerTop+'px'); + }else{ + if($headerDiv.css("display") == 'none'){ + $headerDiv.css("display",'inline'); + } + $headerDiv.css('top',($(windowObj).scrollTop() - iframeTop)+'px'); + + if(($(windowObj).scrollTop() - iframeTop - headerTop)> ($tableOrg.height())){ + $headerDiv.css("display",'none'); + $headerDiv.css('top',(headerTop + $tableOrg.height())+'px'); + } + } + }); + + $(windowObj).resize(function(){ + + $tableOrg = $("#"+tableId); + $tableClone = $("#"+tableCloneId); + + //重设置header高度值 + headerTop = $tableOrg.position().top; // 表头上边距 + headerLeft = $tableOrg.position().left; // 表头左边距 + headerHeight = 0; // 表头高度 + headerWidht = $tableOrg.width(); // 表头宽度 + maxColHeight = 0; // 表头单行高 + + /**获取表头,并设定列宽 + **/ + var row=0,col=0; //行标 列标 + var rowsSize=headerMinRows; //表头行数 + + var $colDataOrg = null; //原行TD数据 + var $colDataClone = null; //克隆表行TD数据 + + /**重设置表头列宽 + * 计算表头行数rowsSize + **/ + for(row;rowrowsSize-row){ //判断表头行数 + rowsSize = rowsSize + $cellOrg.attr('rowspan')-1; //更新表头行数 + } + //获取 浮动表头 单行高度 + if($cellOrg.height()>maxColHeight){ // 判断单行行高 + maxColHeight = $cellOrg.height(); + } + } + headerHeight += maxColHeight; // 行高累加 + maxColHeight = 0; // 单行行高 重置 + col =0; //列 重置 + } + + //获取当前 iframe 在全窗口位置 + iframePosition = getIframePositionInWindowObj(parentSize); + iframeTop = iframePosition.top; // iframe 上边距 + iframeLeft = iframePosition.left; // iframe 左边距 + //alert(iframeTop+" "+iframeLeft); + + //重设置headerdiv参数 + divT = 0; // div top + divL = ($tableOrg.position().left); // div left + divR = ($tableOrg.position().left+headerWidht); // div right + divH = headerHeight; // div height + divW = headerWidht; // div width + //alert($tableOrg.position().left); + $headerDiv.css("top", '0px'); //宽度 + $headerDiv.css("top", divT+'px'); //显示的Y轴到上边框距离 + $headerDiv.css("left", divL+'px'); //显示的X轴到左边框距离 + $headerDiv.css("width", divW+'px'); //宽度 + $headerDiv.css("height", divH+'px'); //高度 + //判断表头是否需要显示 + if(($(windowObj).scrollTop() - iframeTop - headerTop)< 0){ + if($headerDiv.css("display") != 'none'){ + $headerDiv.css("display",'none'); + } + $headerDiv.css('top',headerTop+'px'); + }else{ + if($headerDiv.css("display") == 'none'){ + $headerDiv.css("display",'inline'); + } + $headerDiv.css('top',($(windowObj).scrollTop() - iframeTop)+'px'); + + if(($(windowObj).scrollTop() - iframeTop - headerTop)> ($tableOrg.height())){ + $headerDiv.css("display",'none'); + $headerDiv.css('top',(headerTop + $tableOrg.height())+'px'); + } + } + }); + } + } + //初始化浮动表头参数 + //iframeId:框架最外层IframeId 本工程中为I3 + //dataListId: 数据列表的Id + function initTableHeaderFloatParam(iframeId,dataListId){ + defaultIframeWindowId = iframeId; + defaultDataListId = dataListId; + return ; + } + //初始化浮动表头 + function headerFloatReset(){ + tableHeaderNavigator(defaultIframeWindowId,defaultDataListId); + return ; + } + //初始化浮动表头 + //iframeId:框架最外层IframeId 本工程中为I3 + //dataListId: 数据列表的Id + function initTableHeaderFloat(iframeId,dataListId){ + defaultIframeWindowId = iframeId; + defaultDataListId = dataListId; + tableHeaderNavigator(defaultIframeWindowId,defaultDataListId); + return ; + } \ No newline at end of file diff --git a/gloam/WebRoot/js/menu.js b/gloam/WebRoot/js/menu.js new file mode 100644 index 0000000..177614c --- /dev/null +++ b/gloam/WebRoot/js/menu.js @@ -0,0 +1,219 @@ + +var highlightcolor = "#c1ebff"; +//此处clickcolor只能用win系统颜色代码才能成功,如果用#xxxxxx的代码就不行 +var clickcolor = "#D9D8D8"; +var colorT = "#000000"; +var nochangeIndex = null; +function submenu(menuId) { + //alert("menuIdt" + menuId); + var parentNodes = new Array(); + var i = 0; + var img = document.getElementById("image" + menuId); + //alert("menuIdt" + menuId); + //当前所点节点元素 + var currentDiv = document.getElementById(menuId); + //判断当前菜单是否打开 + if (isOpen(currentDiv)) { + //alert("current menu is open"); + //关闭当前菜单 + closeMenu(currentDiv, img); + } else { + //alert("current menu is closed"); + //得到所有的table的元素 + var trNum = document.getElementsByTagName("span"); + //alert("trNum.lengtht"+trNum.length); + //将所有菜单都关闭 + closeAll(); + //alert("all menu are closed"); + //得到当前节点的父节点集合 + getParentNode(currentDiv, "SPAN", parentNodes, i); + //alert("parentNodest" + parentNodes.length); + //如果有父节点 打开父菜单 + if (parentNodes.length > 0) { + for (var j = 0; j < parentNodes.length; j++) { + var parentDiv = document.getElementById(parentNodes[j]); + //if (parentDiv.id != "root") { + var parentImg = document.getElementById("image" + parentDiv.id); + openMenu(parentDiv, parentImg); + //} + } + } + //打开点击的菜单 + openMenu(currentDiv, img); + } +} + +//根据子节点找到对应的父节点trId +function getParentNode(currentNode, condition, parentNodes, i) { + var parentNodeTemp = currentNode.parentNode; + //alert("parentNodeTemp.nodeNamet" + parentNodeTemp.nodeName); + if (parentNodeTemp.nodeName != "UL") { + if (parentNodeTemp.nodeName == condition) { + //alert(i + "===parentNodeTemp.idt" + parentNodeTemp.id); + parentNodes[i] = parentNodeTemp.id; + //alert("parentNodeIdt" + parentNodeTemp.id); + i += 1; + } + getParentNode(parentNodeTemp, condition, parentNodes, i); + }else if(parentNodeTemp.nodeName == "div"){ + return; + } +} +//打开菜单 +function openMenu(currentDiv, img) { + //alert(currentDiv.style.display); + //alert(currentDiv.id); + //document.getElementById("402").style.display=""; + currentDiv.style.display = "block"; + //alert(currentDiv.style.display); + if (img != null) { + img.src = "images/tree/open_image.gif"; + } +} +//关闭菜单 +function closeMenu(currentDiv, img) { + currentDiv.style.display = "none"; + if (img != null) { + img.src = "images/tree/close_image.gif"; + } +} +//关闭所有菜单 +function closeAll() { + var trNum = document.getElementsByTagName("span"); + //alert("trNumt" + trNum.length); + for (var i = 1; i < trNum.length; i++) { + var div = document.getElementsByTagName("span")[i]; + //alert(i + "=t" + div.id); + if ("" != div.id && null != div.id && "show"!=div.id) { + var imgId = "image" + div.id; + var imgTemp = document.getElementById(imgId); + closeMenu(div, imgTemp); + } + } +} +//判断当前菜单是否打开 +function isOpen(currentDiv) { +//alert(currentDiv+"::::"+currentDiv.style.display); + if (currentDiv.style.display == "" || currentDiv.style.display == "block") { + return true; + } + return false; +} +function mouseoverEvent() { + source = event.srcElement; + if (source.tagName == "li" || source.tagName == "div") { + return; + } + while (source.tagName != "li") { + source = source.parentElement; + } + source = source.parentElement; + cs = source.children; +//alert(cs.length); + if (cs[0].style.backgroundColor != highlightcolor && source.id != "nc" && cs[0].style.backgroundColor != clickcolor) { + for (i = 0; i < cs.length; i++) { + if (cs[i].style != null) { + cs[i].style.backgroundColor = highlightcolor; + } + } + } +} +function mouseoutEvent() { + //alert("changeback"); + source = event.srcElement; + if (source.tagName == "li" || source.tagName == "div") { + return; + } + while (source.tagName != "li") { + source = source.parentElement; + } + source = source.parentElement; + if (nochangeIndex != null) { + var trElement = document.getElementById("tr" + nochangeIndex); + if (trElement == source) { + return; + } + } + if (event.fromElement.contains(event.toElement) || source.contains(event.toElement) || source.id == "nc") { + return; + } + if (event.toElement != source && cs[0].style.backgroundColor != clickcolor) { +//source.style.backgroundColor=originalcolor + } + for (i = 0; i < cs.length; i++) { + //alert("1"); + if (cs[i].style != null && cs[i].style.backgroundColor != clickcolor) { + cs[i].style.backgroundColor = "#FFFFFF"; + } + } +} +function clickLinkEvent() { + //alert("click"); + //revertBgColor(); + //设置当前点中行的宽度为最大值 + //var tableMax=document.getElementById("root"); + //var widthMax=tableMax.width; + //alert("widthMaxt"+widthMax); + source = event.srcElement; + //alert("tagName1t" + source.tagName); + if ( source == "" ||source.tagName == "span" || source.tagName == "ul" || source.tagName == "IMG") { + return; + } + while (source.tagName != "li") {//alert("source.tagName!=li:"+source.parentElement.tagName); + //alert("source.tagName!=TD"); + source = source.parentElement; + //alert("source.tagName="+source.tagName); + } + //TR + source = source.parentElement; + cs = source.children; + //source.style.pixelLeft=document.body.clientLeft; + //alert("cs.lengtht" + cs.length); + //设置点击的行的颜色 + //source.width=widthMax; + if (source.id != "nc" && cs[0].style.background != clickcolor) { + // alert("change color begin"); + for (i = 0; i < cs.length; i++) { + //alert("dfd"); + if(cs[i].style.backgroundColor!=clickcolor) + { + cs[i].style.backgroundColor = clickcolor; + } + } + //alert("change color end"); + } +} +//判断td中是否存在table +function tableIsExistInTr(trObj) { + var tds = trObj.children; + for (var i = 0; i < tds.length; i++) { + if (tds[i].tagName == "li") { + var tdcs = tds[i].children; + //alert(tdcs.length); + for (var j = 0; j < tdcs.length; j++) { + if (tdcs[j].tagName == "div") { + //alert(trObj.id); + return true; + } + } + } + } + return false; +} +//将所有的行的背景色设置为#FFFFFF +function revertBgColor() { + var trObjs = document.getElementsByTagName("li"); + //alert(trObjs.length); + for (var i = 0; i < trObjs.length; i++) { + var trTemp = trObjs[i]; + // alert(trTemp.style.display); + if (trTemp.style.display == "") { + var trcs = trTemp.children; + //alert(trcs.length); + for (var j = 0; j < trcs.length; j++) { + trcs[j].style.backgroundColor = "#FFFFFF"; + } + } + } +} + diff --git a/gloam/WebRoot/js/modernizr.js b/gloam/WebRoot/js/modernizr.js new file mode 100644 index 0000000..fda8d71 --- /dev/null +++ b/gloam/WebRoot/js/modernizr.js @@ -0,0 +1,4 @@ +/* Modernizr 2.6.1 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-inlinesvg-shiv-cssclasses-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes + */ +;window.Modernizr=function(a,b,c){function B(a){j.cssText=a}function C(a,b){return B(m.join(a+";")+(b||""))}function D(a,b){return typeof a===b}function E(a,b){return!!~(""+a).indexOf(b)}function F(a,b){for(var d in a){var e=a[d];if(!E(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function G(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:D(f,"function")?f.bind(d||b):f}return!1}function H(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return D(b,"string")||D(b,"undefined")?F(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),G(e,b,c))}var d="2.6.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v=u.slice,w,x=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["­",'"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),z={}.hasOwnProperty,A;!D(z,"undefined")&&!D(z.call,"undefined")?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e}),r.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==q.svg};for(var I in r)A(r,I)&&(w=I.toLowerCase(),e[w]=r[I](),u.push((e[w]?"":"no-")+w));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},B(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.hasEvent=y,e.testProp=function(a){return F([a])},e.testAllProps=H,e.testStyles=x,e.prefixed=function(a,b,c){return b?H(a,b,c):H(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+u.join(" "):""),e}(this,this.document); \ No newline at end of file diff --git a/gloam/WebRoot/js/object.js b/gloam/WebRoot/js/object.js new file mode 100644 index 0000000..d4d68b7 --- /dev/null +++ b/gloam/WebRoot/js/object.js @@ -0,0 +1,712 @@ +/* +* author:wangxl +* time:2007-09-14 +* 对象类createSelectObject(下拉菜单对象) +*/ + +//创建下拉菜单对象 +function createSelectObject(name){ + this.name = name; + this.xmlDoc; + this.xmlObj; + this.nodes; +} + //第一种方法定义 + + //加载xml +createSelectObject.prototype.loadXML = function(url){ + xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + xmlDoc.async=false; + xmlDoc.load(url); + xmlObj=xmlDoc.documentElement; + nodes = xmlDoc.documentElement.childNodes; + } + //得到结果集列表 + createSelectObject.prototype.getNodesList = function(){ + return nodes; + } + + //删除所有下拉菜单中所有节点 + createSelectObject.prototype.removeAll = function(){ + obj = document.getElementById(this.name); + for(var i=obj.options.length-1;i>=0;i--){ + obj.remove(i); + } + //document.getElementById(this.name).innerHTML=""; + } + + //添加所有选项//等于父编号的 + createSelectObject.prototype.addItems = function(selectObj,items,nodeid,nodename,nodepid,nodepvalue){ + if(nodepid==null||nodepid==""){ + for (i=0;i=0; i--){ + if (str.charCodeAt(i, 10)!=32 && str.charCodeAt(i, 10)!=160 && str.charCodeAt(i, 10)!=10 && str.charCodeAt(i, 10)!=13) break; + } + return str.substr(0, i+1); + } + + /**(A22) + * 方法:trimAll(); + * 说明:删除字符串首尾部空格、回车、分隔字符; + * 返回:Strig 字符串; + * 参数:str String,需要处理的字符串; + */ + Operation.prototype.trimAll = function (str){ + str=this.getValidStr(str); + str=this.ltrimAll(str); + str=this.rtrimAll(str); + return str; + } + + /**(A05) + * 方法:getValidStr(); + * 说明:确定获得的字符串为有效字符串; + * 返回:Strig 字符串; + * 参数:str String,需要处理的字符串; + */ + Operation.prototype.getValidStr = function (str){ + str+=""; + if (str=="undefined" || str=="null") + return ""; + else + return str; + } +//-----------------------常用函数操作类end +//------------------------创建排序对象 ------start +/* +* 常用三种类型转换(int float date string): +* sValue 要转换的值 +* sDataType 要转换的值的类型 +*/ +function convert(sValue, sDataType) { + sValue = new Operation().trimAll(sValue);//转型前取出前后空格 + switch (sDataType) { + case "int"://整型 + return parseInt(sValue); + case "float"://浮点型 + return parseFloat(sValue); + case "date"://日期型 + return new Date(Date.parse(sValue)); + default://任何其他类型返回字符串 + return sValue.toString(); + } +} +/* +* 创建比较函数方法,这里采了闭包的方式,生成的比较函数根据所比较的列编号 +* 与列数组类型不同而不同。 +* iCol 要进行比较的列编号 +* sDataType 列数据类型 +*/ +function generateCompareTRs(iCol, sDataType) { + /*真真的比较函数,供数组的sort方法调用,oTR1 oTR2两个参数由sort方法传进来 + oTR1为比较的第一行,oTR2为比较的第二行*/ + return function compareTRs(oTR1, oTR2) { + var vValue1 = convert(" ",sDataType); + var vValue2 = convert(" ",sDataType); + //判断单元格是否有值,有值的情况下才赋值,否则为空 + if(oTR1){ + if(oTR1.cells[iCol]){ + vValue1 = convert(oTR1.cells[iCol].innerText, sDataType); + //vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType); + } + } + //判断单元格是否有值,有值的情况下才赋值,否则为空 + if(oTR2){ + if(oTR2.cells[iCol]){ + vValue2 = convert(oTR2.cells[iCol].innerText, sDataType); + //vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType); + } + } + //按升序比较,如果是日期类型时会自动调用其valueOf方法返date 的毫秒再进行比较 + if (vValue1 < vValue2) { + return -1; + } else { + if (vValue1 > vValue2) { + return 1; + } else { + return 0; + } + } + }; +} +/* +* 表格比较,由HTML点击事件调用 +* sTableID 要比较的表格id +* iCol 要较的表格的列的编号 +* sDataType 列的数据类型 +*/ +function sortTable(sTableID, iCol, sDataType) { + + //获取表格对象 + var oTable = document.getElementById(sTableID); + //获取表格体 + var oTBody = oTable.tBodies[0]; + //获取表格体中所有行 + var colDataRows = oTBody.rows; + //存储所有表格行,借且于数组来进行排序处理 + var aTRs = new Array; + + //把所有的行存储到数组里 + for (var i = 0; i < colDataRows.length; i++) { + aTRs[i] = colDataRows[i]; + } + /*sortCol为表格的扩展属性,标示最后是根据哪列来进行排序的。 + 如果要传进来的列与上次排序的列是同一列时,直接对数组进行 + reverse反序操作,这样排序的速度会更快*/ + if (oTable.sortCol == iCol) { + aTRs.reverse(); + } else { + //如果是第一次排序,则调用排序算法进行排序 + aTRs.sort(generateCompareTRs(iCol, sDataType)); + } + + //创建文档碎片,这样不用一个一个把行添加到表格对象中,而是一次就可以了 + var oFragment = document.createDocumentFragment(); + for (var i = 0; i < aTRs.length; i++) { + oFragment.appendChild(aTRs[i]); + } + + //把所排序的行重样追加到表格对象中,注:这里没有单独先删除表格排序前的行 + //因为如果追加的行是一样的话,appendChild操作会先自动删除后再添加。 + oTBody.appendChild(oFragment); + oTable.sortCol = iCol; +} + +//------------------------创建排序对象 -----end + + +/**//* +** ================================================================================================== +** 类名:CLASS_MSN_MESSAGE +** 功能:提供类似MSN消息框 +** 示例: + --------------------------------------------------------------------------------------------------- + + var MSG = new CLASS_MSN_MESSAGE("gg",200,120,"短消息提示:","您有1封消息","今天请我吃饭哈"); + MSG.show(); + + --------------------------------------------------------------------------------------------------- + + +/**//* +* 消息构造 +*/ +function CLASS_MSN_MESSAGE(id,width,height,caption,title,message,url,target,action){ + this.id = id; + this.title = title; + this.caption= caption; + this.message= message; + this.target = target; + this.action = action; + this.width = width?width:200; + this.height = height?height:120; + this.timeout= 150; + this.speed = 20; + this.step = 1; + this.right = screen.width -1; + this.bottom = screen.height; + this.left = this.right - this.width; + this.top = this.bottom - this.height; + this.timer = 0; + this.pause = false; + this.close = false; + this.autoHide = true; + this.url = url; +} + +/**//* +* 隐藏消息方法 +*/ +CLASS_MSN_MESSAGE.prototype.hide = function(){ + if(this.onunload()){ + + var offset = this.height>this.bottom-this.top?this.height:this.bottom-this.top; + var me = this; + + if(this.timer){ + window.clearInterval(me.timer); + } + + var fun = function(){ + if(me.pause==false||me.close){ + var x = me.left; + var y = 0; + var width = me.width; + var height = 0; + if(me.offset){ + height = me.offset; + } + + y = me.bottom - height; + + if(y>=me.bottom){ + window.clearInterval(me.timer); + me.Pop.hide(); + } else { + me.offset = me.offset - me.step; + } + me.Pop.show(x,y,width,height); + } + } + + this.timer = window.setInterval(fun,this.speed) + } +} + +/**//* +* 消息卸载事件,可以重写 +*/ +CLASS_MSN_MESSAGE.prototype.onunload = function() { + return true; +} +/**//* +* 消息命令事件,要实现自己的连接,请重写它 +* +*/ +CLASS_MSN_MESSAGE.prototype.oncommand = function(){ + //this.close = true; + this.hide(); + window.parent.mainFrame.location = this.url; + +} +/**//* +* 消息显示方法 +*/ +CLASS_MSN_MESSAGE.prototype.show = function(){ + + var oPopup = window.createPopup(); //IE5.5+ + + this.Pop = oPopup; + + var w = this.width; + var h = this.height; + + var str = "
" + str += "" + str += "" + str += "" + str += "" + str += "" + str += "" + str += "" + str += "" + str += "" + str += "
" + this.caption + "" + str += "×
" + str += "
" + this.title + "

" + str += "" + str += "
" + str += "
" + str += "
" + + oPopup.document.body.innerHTML = str; + + + this.offset = 0; + var me = this; + + oPopup.document.body.onmouseover = function(){me.pause=true;} + oPopup.document.body.onmouseout = function(){me.pause=false;} + + var fun = function(){ + var x = me.left; + var y = 0; + var width = me.width; + var height = me.height; + + if(me.offset>me.height){ + height = me.height; + } else { + height = me.offset; + } + + y = me.bottom - me.offset; + if(y<=me.top){ + me.timeout--; + if(me.timeout==0){ + window.clearInterval(me.timer); + if(me.autoHide){ + me.hide(); + } + } + } else { + me.offset = me.offset + me.step; + } + me.Pop.show(x,y,width,height); + + } + + this.timer = window.setInterval(fun,this.speed) + + + + var btClose = oPopup.document.getElementById("btSysClose"); + + btClose.onclick = function(){ + me.close = true; + me.hide(); + } + + var btCommand = oPopup.document.getElementById("btCommand"); + btCommand.onclick = function(){ + me.oncommand(); + } + var ommand = oPopup.document.getElementById("ommand"); + ommand.onclick = function(){ + //this.close = true; + me.hide(); + window.open(ommand.href); + } +} +/**//* +** 设置速度方法 +**/ +CLASS_MSN_MESSAGE.prototype.speed = function(s){ + var t = 20; + try { + t = praseInt(s); + } catch(e){} + this.speed = t; +} +/**//* +** 设置步长方法 +**/ +CLASS_MSN_MESSAGE.prototype.step = function(s){ + var t = 1; + try { + t = praseInt(s); + } catch(e){} + this.step = t; +} + +CLASS_MSN_MESSAGE.prototype.rect = function(left,right,top,bottom){ + try { + this.left = left !=null?left:this.right-this.width; + this.right = right !=null?right:this.left +this.width; + this.bottom = bottom!=null?(bottom>screen.height?screen.height:bottom):screen.height; + this.top = top !=null?top:this.bottom - this.height; + } catch(e){} +} \ No newline at end of file diff --git a/gloam/WebRoot/js/onmouse.js b/gloam/WebRoot/js/onmouse.js new file mode 100644 index 0000000..a1f4f39 --- /dev/null +++ b/gloam/WebRoot/js/onmouse.js @@ -0,0 +1,555 @@ +var highlightcolor='#8D94A5'; +//此处clickcolor只能用win系统颜色代码才能成功,如果用#xxxxxx的代码就不行, +var clickcolor='#8D94A5'; +function changeto(){ + //source=event.srcElement; + //if (source.tagName=="TR"||source.tagName=="TABLE") return; + //while(source.tagName!="TD") + // source=source.parentElement; + //source=source.parentElement; + //cs = source.children; + //alert(cs.length); + //if (cs[1].style.backgroundColor!=highlightcolor&&source.id!="nc"&&cs[1].style.backgroundColor!=clickcolor) + //for(i=0;i 0){ + if(how == "edit") + return selectedCount > 1 ? false : true; + else if(how == 'remove') + return true; + else if(how == 'exportXls') + return true; + }else{ + return false; + } +} +//判断是否进行提交操作 +function isOperation(checkName,flagValue){ + var yxbzValue ; + var yxbz; + var flag = false; + var checks = document.getElementsByTagName("input"); + for(i = 0 ; i <= checks.length ; i++ ){ + if(checks[i]){ + if(checks[i].name == checkName){ + if(checks[i].checked) + { + yxbz='yxbz'+checks[i].value; + yxbzValue = document.getElementById(yxbz).value; + if(yxbzValue==flagValue){ + flag=true; + } + } + } + } + } + return flag; +} + +//判断是否进行提交操作 +function isGroup(checkName){ + var yxbzValue ; + var yxbz; + var flag = false; + var checks = document.getElementsByTagName("input"); + for(i = 0 ; i <= checks.length ; i++ ){ + if(checks[i]){ + if(checks[i].name == checkName){ + if(checks[i].checked) + { + yxbz='group'+checks[i].value; + yxbzValue = document.getElementById(yxbz).value; + //alert(yxbzValue); + if(yxbzValue!=null&&yxbzValue!=''){ + flag = true; + } + } + } + } + } + //alert(flag); + return flag; +} + + +function $id(tid,type,show){// id 类型 alter的消息 + //2013-1-30 hyx add ---start + if(document.getElementById(tid)==null) { + return true; + } + //2013-1-30 hyx add ---end + if(type != 'ip1'){ + $("#"+tid).next().html('*'); + }else{ + $("#"+tid).next().html(''); + } + + var name=document.getElementById(tid).value; + if($.trim(name)==''&& type=="xz"){ + $("#"+tid).next().html('请选择'+show); + return false; + } + + if($.trim(name)==''&& type!="remark"){ + $("#"+tid).next().html('请输入'+show); + return false; + } + + if(type=='sz'){ + if(name.replace(/[\d+]/ig,"").length>0){ + //alert(show+'请输入数字') + $("#"+tid).next().html(show+'请输入数字'); + return false; + } + } + + if(type=='flsz'){ + if(name.replace(/^[1-9]\d*$/,"").length>0){ + //alert(show+'请输入数字') + $("#"+tid).next().html(show+'请输入非零数字'); + return false; + } + } + + + if(type=='port'){ + if(name.replace(/[\d+]/ig,"").length>0){ + //alert(show+'请输入数字') + $("#"+tid).next().html(show+'请输入数字'); + return false; + } + if(name<0){ + //alert(show+'不能小于零') + $("#"+tid).next().html(show+'不能小于零'); + return false; + } + if(name>65535){ + //alert(show+'不能大于65535') + $("#"+tid).next().html(show+'不能大于65535'); + return false; + } + } + + if(type=='ip'|| type=='ip1'){ + var arr=name.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/); + if(arr==null){ + //alert("输入"+show+"不符合要求"); + $("#"+tid).next().html('输入'+show+'不符合要求'); + return false; + } + for(i=1;i255){ + //alert("输入"+show+"不符合要求"); + $("#"+tid).next().html('输入'+show+'不符合要求'); + return false; + } + } + } + + if(type=='remark'){ + if(name.length>500){ + //alert(show+'不能大于五百个字符') + $("#"+tid).next().html(show+'不能大于五百个字符'); + return false; + } + } + +// if(name.length>0){ +// $("#"+tid).val(name); +// } + return true; +} + function fixTableHeader(gv,scrollHeight) + { + //var gvn=$(gv).clone(true).removeAttr("id"); + var gvn = $(gv). + $(gvn).find("tr:not(:first)").remove(); + $(gv).before(gvn); + $(gv).find("tr:first").remove(); + $(gv).wrap("
"); + } + + (function($){ + //内部变量 + var tableId,windowId; + var iWindowObjs = new Array(); //iframe的窗口数组 + var iWinOffset = new Array(); //窗口的 + //属性 + var defaults ={ + 'lockFlag': true, // 是否实现表头浮动标识 true 实现 ;flase 不实现 默认 实现 + 'resize' : true, // 窗口大小变化时 同步表头浮动 默认实现 + 'minRows' : 1, // 表头行数 默认 1行 + 'headerDiv' : 'clone_header_div', // 存放表头的div + 'cloneHeader' : 'clone_header' // 克隆表头 + }; + //初始化参数 + $.fn.initHeader = function(winId,lockFlag,resize,minRows,headerDiv,cloneHeader){ + tableId = $(this).attr("id"); //列表ID + windowId = winId; //窗口ID + defaults.lockFlag = ( lockFlag != null && lockFlag != '' ? lockFlag : defaults.lockFlag ); + defaults.resize = ( resize != null && resize != '' ? resize : defaults.resize ); + defaults.minRows = ( minRows != null && minRows != '' ? minRows : defaults.minRows ); + defaults.headerDiv = ( headerDiv != null && headerDiv != '' ? headerDiv : defaults.headerDiv ); + defaults.cloneHeader = ( cloneHeader != null && cloneHeader != '' ? cloneHeader : defaults.cloneHeader ); + return $(this); + } + + $.fn.floatHeaderDiv = function(){ + var $tableOrg = $(this); + var $cloneHeader = $(this).clone(true); //克隆表 + + $cloneHeader.width($(this).width()); //宽同步 + $cloneHeader.attr("boder",0); + $cloneHeader.attr("id",defaults.cloneHeader); + //行列两层嵌套循环,对应设定克隆表列宽 + //计算表头行数defaults.minRows + $cloneHeader.find("tr").each(function(row,domEle){ // 克隆表 行循环 + if(rowdefaults.minRows-row){ + defaults.minRows = defaults.minRows + $cellOrg.attr('rowspan')-1; + } + }); + }else{ + $(domEle).remove(); //删除克隆表的无意义数据 + } + }); + + //检查 表头是否已存在 删除已存在的 以备添加新表头 + if($("#"+defaults.headerDiv).length > 0)$("#"+defaults.headerDiv).remove(); + //创建表头div + var tableOrgPosition = $(this).position(); + var $headerDiv = $("
"); + $headerDiv.css("top",tableOrgPosition.top+'px').css("left", tableOrgPosition.left+'px') //显示的X轴到左边框距离 + .css("width", $cloneHeader.outerWidth(true)+'px').css("height", $cloneHeader.outerHeight(true)+'px') //高度 + .attr("id", defaults.headerDiv); // 为div设置Id 为 headerId + $headerDiv.append($cloneHeader); // 将克隆的表头添加到div中 + $headerDiv.insertBefore($('body table',window.document).first()); // 将div加入页面中 + + //同步列表宽度 + $(this).parent().scroll(function(){ + var $divArray = $(this).closest("div"); + if($divArray.size()>0){ + var divO = $divArray[0]; + if(tableOrgPosition.top < divO.scrollTop){ + $headerDiv.css('top',$(divO).position().top+'px'); + $headerDiv.css('display','inline'); + }else{ + $headerDiv.css('display','none'); + } + } + + + }); + + //$(this).resize(function(){ + // if(defaults.resize){ + // if($headerDiv.width() != $(this).width()){ + // var $tableOrg = $(this); + // var $cloneHeader = $("#"+defaults.cloneHeader); //表头 + // $cloneHeader.find("tr").each(function(row,domEle){ // 克隆表 行循环 + // $colDataOrg = $tableOrg.find("tr").eq(row).children(); // 原数据表 取第row行数据 + // //alert($(domEle).children().size()+" " +$colDataOrg.size()); + // $(domEle).children().each(function(col){ // 克隆表 列循环 + // $cellOrg = $colDataOrg.eq(col); + // $(this).width($cellOrg.width()); //设置对应列宽 + // $(this).height($cellOrg.height()); + // }); + // }); + // //获取当前 iframe 在全窗口位置 + // $headerDiv.css("left", $tableOrg.position().left+'px'); //显示的X轴到左边框距离 + // $headerDiv.css("width", $tableOrg.width()+'px'); //宽度 + // + // $("#"+defaults.cloneHeader).css("left", $tableOrg.position().left+'px'); //显示的X轴到左边框距离 + // $("#"+defaults.cloneHeader).css("width", $tableOrg.width()+'px'); //宽度 + // //判断表头是否需要显示 + // //var headerTop = $(this).position().top; + // } + // } + //}); + return $headerDiv; + } + })(jQuery) + + +function checkEmail(str){ + var reg=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ ; + return reg.test(str); + } + +//检查是否包含特殊字符 +function containSpecial( s ) +{ + var containSpecial = RegExp(/[(\s)(、)(\ )(\~)(\!)(\@)(\#)(\$)(¥)(\%)(;)(:)(“)(”)(\^)(\&)(\*)(\()(\))(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(。)(\/)(\<)(\>)(\?)(\)]+/); + return ( containSpecial.test(s) ); +} + +//检查是否包含特殊字符 +function checkStrNoDian( s ) +{ + var containSpecial = RegExp(/[(\s)(、)(\ )(\~)(\!)(\@)(\#)(\$)(¥)(\%)(;)(:)(“)(”)(\^)(\&)(\*)(\()(\))(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(。)(\/)(\<)(\>)(\?)(\)]+/); + return ( containSpecial.test(s) ); +} + +//检查是否包含特殊字符 可以包含中间空格 . _ +function checkSpecial( s ) +{ + var containSpecial = RegExp(/[(、)(\~)(\!)(\@)(\#)(\$)(¥)(\%)(;)(:)(“)(”)(\^)(\&)(\*)(\()(\))(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(。)(\/)(\<)(\>)(\?)(\)]+/); + return ( containSpecial.test($.trim(s))); +} + + +//层覆盖 +function coverDiv(){ + var msgw,msgh,bordercolor; + msgw=400;//提示窗口的宽度 + msgh=100;//提示窗口的高度 + titleheight=25 //提示窗口标题高度 + bordercolor="#336699";//提示窗口的边框颜色 + titlecolor="#99CCFF";//提示窗口的标题颜色 + + var sWidth,sHeight; + sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度 + + if(document.body.offsetHeightspanToWinRightWidth) { + spanX = tmpLeftVal; + } + + if(instanceDiv!=null && instanceDiv!='undefined') { + instanceDiv.style.left = spanX; + instanceDiv.style.top = spanY; + instanceDiv.style.width = spanRealWidth;//宽度为当前鼠标的位置到最右边窗口的距离 + instanceDiv.style.zIndex = 1000; + } + + //$("#infoTipSpan").html(showContent); + //$("#infoTipSpan").show(); + $("#"+showContentSpanId).show(); + } + + function hideTitle(showContentSpanId) { + //$("#infoTipSpan").text(''); + //$("#infoTipSpan").hide(); + $("#"+showContentSpanId).hide(); + } + \ No newline at end of file diff --git a/gloam/WebRoot/js/perfect-scrollbar.js b/gloam/WebRoot/js/perfect-scrollbar.js new file mode 100644 index 0000000..41e5c92 --- /dev/null +++ b/gloam/WebRoot/js/perfect-scrollbar.js @@ -0,0 +1,1324 @@ +/*! + * perfect-scrollbar v1.4.0 + * (c) 2018 Hyunje Jun + * @license MIT + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.PerfectScrollbar = factory()); +}(this, (function () { 'use strict'; + +function get(element) { + return getComputedStyle(element); +} + +function set(element, obj) { + for (var key in obj) { + var val = obj[key]; + if (typeof val === 'number') { + val = val + "px"; + } + element.style[key] = val; + } + return element; +} + +function div(className) { + var div = document.createElement('div'); + div.className = className; + return div; +} + +var elMatches = + typeof Element !== 'undefined' && + (Element.prototype.matches || + Element.prototype.webkitMatchesSelector || + Element.prototype.mozMatchesSelector || + Element.prototype.msMatchesSelector); + +function matches(element, query) { + if (!elMatches) { + throw new Error('No element matching method supported'); + } + + return elMatches.call(element, query); +} + +function remove(element) { + if (element.remove) { + element.remove(); + } else { + if (element.parentNode) { + element.parentNode.removeChild(element); + } + } +} + +function queryChildren(element, selector) { + return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); } + ); +} + +var cls = { + main: 'ps', + element: { + thumb: function (x) { return ("ps__thumb-" + x); }, + rail: function (x) { return ("ps__rail-" + x); }, + consuming: 'ps__child--consume', + }, + state: { + focus: 'ps--focus', + clicking: 'ps--clicking', + active: function (x) { return ("ps--active-" + x); }, + scrolling: function (x) { return ("ps--scrolling-" + x); }, + }, +}; + +/* + * Helper methods + */ +var scrollingClassTimeout = { x: null, y: null }; + +function addScrollingClass(i, x) { + var classList = i.element.classList; + var className = cls.state.scrolling(x); + + if (classList.contains(className)) { + clearTimeout(scrollingClassTimeout[x]); + } else { + classList.add(className); + } +} + +function removeScrollingClass(i, x) { + scrollingClassTimeout[x] = setTimeout( + function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); }, + i.settings.scrollingThreshold + ); +} + +function setScrollingClassInstantly(i, x) { + addScrollingClass(i, x); + removeScrollingClass(i, x); +} + +var EventElement = function EventElement(element) { + this.element = element; + this.handlers = {}; +}; + +var prototypeAccessors = { isEmpty: { configurable: true } }; + +EventElement.prototype.bind = function bind (eventName, handler) { + if (typeof this.handlers[eventName] === 'undefined') { + this.handlers[eventName] = []; + } + this.handlers[eventName].push(handler); + this.element.addEventListener(eventName, handler, false); +}; + +EventElement.prototype.unbind = function unbind (eventName, target) { + var this$1 = this; + + this.handlers[eventName] = this.handlers[eventName].filter(function (handler) { + if (target && handler !== target) { + return true; + } + this$1.element.removeEventListener(eventName, handler, false); + return false; + }); +}; + +EventElement.prototype.unbindAll = function unbindAll () { + var this$1 = this; + + for (var name in this$1.handlers) { + this$1.unbind(name); + } +}; + +prototypeAccessors.isEmpty.get = function () { + var this$1 = this; + + return Object.keys(this.handlers).every( + function (key) { return this$1.handlers[key].length === 0; } + ); +}; + +Object.defineProperties( EventElement.prototype, prototypeAccessors ); + +var EventManager = function EventManager() { + this.eventElements = []; +}; + +EventManager.prototype.eventElement = function eventElement (element) { + var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0]; + if (!ee) { + ee = new EventElement(element); + this.eventElements.push(ee); + } + return ee; +}; + +EventManager.prototype.bind = function bind (element, eventName, handler) { + this.eventElement(element).bind(eventName, handler); +}; + +EventManager.prototype.unbind = function unbind (element, eventName, handler) { + var ee = this.eventElement(element); + ee.unbind(eventName, handler); + + if (ee.isEmpty) { + // remove + this.eventElements.splice(this.eventElements.indexOf(ee), 1); + } +}; + +EventManager.prototype.unbindAll = function unbindAll () { + this.eventElements.forEach(function (e) { return e.unbindAll(); }); + this.eventElements = []; +}; + +EventManager.prototype.once = function once (element, eventName, handler) { + var ee = this.eventElement(element); + var onceHandler = function (evt) { + ee.unbind(eventName, onceHandler); + handler(evt); + }; + ee.bind(eventName, onceHandler); +}; + +function createEvent(name) { + if (typeof window.CustomEvent === 'function') { + return new CustomEvent(name); + } else { + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(name, false, false, undefined); + return evt; + } +} + +var processScrollDiff = function( + i, + axis, + diff, + useScrollingClass, + forceFireReachEvent +) { + if ( useScrollingClass === void 0 ) useScrollingClass = true; + if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; + + var fields; + if (axis === 'top') { + fields = [ + 'contentHeight', + 'containerHeight', + 'scrollTop', + 'y', + 'up', + 'down' ]; + } else if (axis === 'left') { + fields = [ + 'contentWidth', + 'containerWidth', + 'scrollLeft', + 'x', + 'left', + 'right' ]; + } else { + throw new Error('A proper axis should be provided'); + } + + processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent); +}; + +function processScrollDiff$1( + i, + diff, + ref, + useScrollingClass, + forceFireReachEvent +) { + var contentHeight = ref[0]; + var containerHeight = ref[1]; + var scrollTop = ref[2]; + var y = ref[3]; + var up = ref[4]; + var down = ref[5]; + if ( useScrollingClass === void 0 ) useScrollingClass = true; + if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; + + var element = i.element; + + // reset reach + i.reach[y] = null; + + // 1 for subpixel rounding + if (element[scrollTop] < 1) { + i.reach[y] = 'start'; + } + + // 1 for subpixel rounding + if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) { + i.reach[y] = 'end'; + } + + if (diff) { + element.dispatchEvent(createEvent(("ps-scroll-" + y))); + + if (diff < 0) { + element.dispatchEvent(createEvent(("ps-scroll-" + up))); + } else if (diff > 0) { + element.dispatchEvent(createEvent(("ps-scroll-" + down))); + } + + if (useScrollingClass) { + setScrollingClassInstantly(i, y); + } + } + + if (i.reach[y] && (diff || forceFireReachEvent)) { + element.dispatchEvent(createEvent(("ps-" + y + "-reach-" + (i.reach[y])))); + } +} + +function toInt(x) { + return parseInt(x, 10) || 0; +} + +function isEditable(el) { + return ( + matches(el, 'input,[contenteditable]') || + matches(el, 'select,[contenteditable]') || + matches(el, 'textarea,[contenteditable]') || + matches(el, 'button,[contenteditable]') + ); +} + +function outerWidth(element) { + var styles = get(element); + return ( + toInt(styles.width) + + toInt(styles.paddingLeft) + + toInt(styles.paddingRight) + + toInt(styles.borderLeftWidth) + + toInt(styles.borderRightWidth) + ); +} + +var env = { + isWebKit: + typeof document !== 'undefined' && + 'WebkitAppearance' in document.documentElement.style, + supportsTouch: + typeof window !== 'undefined' && + ('ontouchstart' in window || + (window.DocumentTouch && document instanceof window.DocumentTouch)), + supportsIePointer: + typeof navigator !== 'undefined' && navigator.msMaxTouchPoints, + isChrome: + typeof navigator !== 'undefined' && + /Chrome/i.test(navigator && navigator.userAgent), +}; + +var updateGeometry = function(i) { + var element = i.element; + var roundedScrollTop = Math.floor(element.scrollTop); + + i.containerWidth = element.clientWidth; + i.containerHeight = element.clientHeight; + i.contentWidth = element.scrollWidth; + i.contentHeight = element.scrollHeight; + + if (!element.contains(i.scrollbarXRail)) { + // clean up and append + queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); } + ); + element.appendChild(i.scrollbarXRail); + } + if (!element.contains(i.scrollbarYRail)) { + // clean up and append + queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); } + ); + element.appendChild(i.scrollbarYRail); + } + + if ( + !i.settings.suppressScrollX && + i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth + ) { + i.scrollbarXActive = true; + i.railXWidth = i.containerWidth - i.railXMarginWidth; + i.railXRatio = i.containerWidth / i.railXWidth; + i.scrollbarXWidth = getThumbSize( + i, + toInt(i.railXWidth * i.containerWidth / i.contentWidth) + ); + i.scrollbarXLeft = toInt( + (i.negativeScrollAdjustment + element.scrollLeft) * + (i.railXWidth - i.scrollbarXWidth) / + (i.contentWidth - i.containerWidth) + ); + } else { + i.scrollbarXActive = false; + } + + if ( + !i.settings.suppressScrollY && + i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight + ) { + i.scrollbarYActive = true; + i.railYHeight = i.containerHeight - i.railYMarginHeight; + i.railYRatio = i.containerHeight / i.railYHeight; + i.scrollbarYHeight = getThumbSize( + i, + toInt(i.railYHeight * i.containerHeight / i.contentHeight) + ); + i.scrollbarYTop = toInt( + roundedScrollTop * + (i.railYHeight - i.scrollbarYHeight) / + (i.contentHeight - i.containerHeight) + ); + } else { + i.scrollbarYActive = false; + } + + if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) { + i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth; + } + if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) { + i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight; + } + + updateCss(element, i); + + if (i.scrollbarXActive) { + element.classList.add(cls.state.active('x')); + } else { + element.classList.remove(cls.state.active('x')); + i.scrollbarXWidth = 0; + i.scrollbarXLeft = 0; + element.scrollLeft = 0; + } + if (i.scrollbarYActive) { + element.classList.add(cls.state.active('y')); + } else { + element.classList.remove(cls.state.active('y')); + i.scrollbarYHeight = 0; + i.scrollbarYTop = 0; + element.scrollTop = 0; + } +}; + +function getThumbSize(i, thumbSize) { + if (i.settings.minScrollbarLength) { + thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength); + } + if (i.settings.maxScrollbarLength) { + thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength); + } + return thumbSize; +} + +function updateCss(element, i) { + var xRailOffset = { width: i.railXWidth }; + var roundedScrollTop = Math.floor(element.scrollTop); + + if (i.isRtl) { + xRailOffset.left = + i.negativeScrollAdjustment + + element.scrollLeft + + i.containerWidth - + i.contentWidth; + } else { + xRailOffset.left = element.scrollLeft; + } + if (i.isScrollbarXUsingBottom) { + xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop; + } else { + xRailOffset.top = i.scrollbarXTop + roundedScrollTop; + } + set(i.scrollbarXRail, xRailOffset); + + var yRailOffset = { top: roundedScrollTop, height: i.railYHeight }; + if (i.isScrollbarYUsingRight) { + if (i.isRtl) { + yRailOffset.right = + i.contentWidth - + (i.negativeScrollAdjustment + element.scrollLeft) - + i.scrollbarYRight - + i.scrollbarYOuterWidth; + } else { + yRailOffset.right = i.scrollbarYRight - element.scrollLeft; + } + } else { + if (i.isRtl) { + yRailOffset.left = + i.negativeScrollAdjustment + + element.scrollLeft + + i.containerWidth * 2 - + i.contentWidth - + i.scrollbarYLeft - + i.scrollbarYOuterWidth; + } else { + yRailOffset.left = i.scrollbarYLeft + element.scrollLeft; + } + } + set(i.scrollbarYRail, yRailOffset); + + set(i.scrollbarX, { + left: i.scrollbarXLeft, + width: i.scrollbarXWidth - i.railBorderXWidth, + }); + set(i.scrollbarY, { + top: i.scrollbarYTop, + height: i.scrollbarYHeight - i.railBorderYWidth, + }); +} + +var clickRail = function(i) { + i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); }); + i.event.bind(i.scrollbarYRail, 'mousedown', function (e) { + var positionTop = + e.pageY - + window.pageYOffset - + i.scrollbarYRail.getBoundingClientRect().top; + var direction = positionTop > i.scrollbarYTop ? 1 : -1; + + i.element.scrollTop += direction * i.containerHeight; + updateGeometry(i); + + e.stopPropagation(); + }); + + i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); }); + i.event.bind(i.scrollbarXRail, 'mousedown', function (e) { + var positionLeft = + e.pageX - + window.pageXOffset - + i.scrollbarXRail.getBoundingClientRect().left; + var direction = positionLeft > i.scrollbarXLeft ? 1 : -1; + + i.element.scrollLeft += direction * i.containerWidth; + updateGeometry(i); + + e.stopPropagation(); + }); +}; + +var dragThumb = function(i) { + bindMouseScrollHandler(i, [ + 'containerWidth', + 'contentWidth', + 'pageX', + 'railXWidth', + 'scrollbarX', + 'scrollbarXWidth', + 'scrollLeft', + 'x', + 'scrollbarXRail' ]); + bindMouseScrollHandler(i, [ + 'containerHeight', + 'contentHeight', + 'pageY', + 'railYHeight', + 'scrollbarY', + 'scrollbarYHeight', + 'scrollTop', + 'y', + 'scrollbarYRail' ]); +}; + +function bindMouseScrollHandler( + i, + ref +) { + var containerHeight = ref[0]; + var contentHeight = ref[1]; + var pageY = ref[2]; + var railYHeight = ref[3]; + var scrollbarY = ref[4]; + var scrollbarYHeight = ref[5]; + var scrollTop = ref[6]; + var y = ref[7]; + var scrollbarYRail = ref[8]; + + var element = i.element; + + var startingScrollTop = null; + var startingMousePageY = null; + var scrollBy = null; + + function mouseMoveHandler(e) { + element[scrollTop] = + startingScrollTop + scrollBy * (e[pageY] - startingMousePageY); + addScrollingClass(i, y); + updateGeometry(i); + + e.stopPropagation(); + e.preventDefault(); + } + + function mouseUpHandler() { + removeScrollingClass(i, y); + i[scrollbarYRail].classList.remove(cls.state.clicking); + i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler); + } + + i.event.bind(i[scrollbarY], 'mousedown', function (e) { + startingScrollTop = element[scrollTop]; + startingMousePageY = e[pageY]; + scrollBy = + (i[contentHeight] - i[containerHeight]) / + (i[railYHeight] - i[scrollbarYHeight]); + + i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler); + i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler); + + i[scrollbarYRail].classList.add(cls.state.clicking); + + e.stopPropagation(); + e.preventDefault(); + }); +} + +var keyboard = function(i) { + var element = i.element; + + var elementHovered = function () { return matches(element, ':hover'); }; + var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); }; + + function shouldPreventDefault(deltaX, deltaY) { + var scrollTop = Math.floor(element.scrollTop); + if (deltaX === 0) { + if (!i.scrollbarYActive) { + return false; + } + if ( + (scrollTop === 0 && deltaY > 0) || + (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0) + ) { + return !i.settings.wheelPropagation; + } + } + + var scrollLeft = element.scrollLeft; + if (deltaY === 0) { + if (!i.scrollbarXActive) { + return false; + } + if ( + (scrollLeft === 0 && deltaX < 0) || + (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0) + ) { + return !i.settings.wheelPropagation; + } + } + return true; + } + + i.event.bind(i.ownerDocument, 'keydown', function (e) { + if ( + (e.isDefaultPrevented && e.isDefaultPrevented()) || + e.defaultPrevented + ) { + return; + } + + if (!elementHovered() && !scrollbarFocused()) { + return; + } + + var activeElement = document.activeElement + ? document.activeElement + : i.ownerDocument.activeElement; + if (activeElement) { + if (activeElement.tagName === 'IFRAME') { + activeElement = activeElement.contentDocument.activeElement; + } else { + // go deeper if element is a webcomponent + while (activeElement.shadowRoot) { + activeElement = activeElement.shadowRoot.activeElement; + } + } + if (isEditable(activeElement)) { + return; + } + } + + var deltaX = 0; + var deltaY = 0; + + switch (e.which) { + case 37: // left + if (e.metaKey) { + deltaX = -i.contentWidth; + } else if (e.altKey) { + deltaX = -i.containerWidth; + } else { + deltaX = -30; + } + break; + case 38: // up + if (e.metaKey) { + deltaY = i.contentHeight; + } else if (e.altKey) { + deltaY = i.containerHeight; + } else { + deltaY = 30; + } + break; + case 39: // right + if (e.metaKey) { + deltaX = i.contentWidth; + } else if (e.altKey) { + deltaX = i.containerWidth; + } else { + deltaX = 30; + } + break; + case 40: // down + if (e.metaKey) { + deltaY = -i.contentHeight; + } else if (e.altKey) { + deltaY = -i.containerHeight; + } else { + deltaY = -30; + } + break; + case 32: // space bar + if (e.shiftKey) { + deltaY = i.containerHeight; + } else { + deltaY = -i.containerHeight; + } + break; + case 33: // page up + deltaY = i.containerHeight; + break; + case 34: // page down + deltaY = -i.containerHeight; + break; + case 36: // home + deltaY = i.contentHeight; + break; + case 35: // end + deltaY = -i.contentHeight; + break; + default: + return; + } + + if (i.settings.suppressScrollX && deltaX !== 0) { + return; + } + if (i.settings.suppressScrollY && deltaY !== 0) { + return; + } + + element.scrollTop -= deltaY; + element.scrollLeft += deltaX; + updateGeometry(i); + + if (shouldPreventDefault(deltaX, deltaY)) { + e.preventDefault(); + } + }); +}; + +var wheel = function(i) { + var element = i.element; + + function shouldPreventDefault(deltaX, deltaY) { + var roundedScrollTop = Math.floor(element.scrollTop); + var isTop = element.scrollTop === 0; + var isBottom = + roundedScrollTop + element.offsetHeight === element.scrollHeight; + var isLeft = element.scrollLeft === 0; + var isRight = + element.scrollLeft + element.offsetWidth === element.scrollWidth; + + var hitsBound; + + // pick axis with primary direction + if (Math.abs(deltaY) > Math.abs(deltaX)) { + hitsBound = isTop || isBottom; + } else { + hitsBound = isLeft || isRight; + } + + return hitsBound ? !i.settings.wheelPropagation : true; + } + + function getDeltaFromEvent(e) { + var deltaX = e.deltaX; + var deltaY = -1 * e.deltaY; + + if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') { + // OS X Safari + deltaX = -1 * e.wheelDeltaX / 6; + deltaY = e.wheelDeltaY / 6; + } + + if (e.deltaMode && e.deltaMode === 1) { + // Firefox in deltaMode 1: Line scrolling + deltaX *= 10; + deltaY *= 10; + } + + if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) { + // IE in some mouse drivers + deltaX = 0; + deltaY = e.wheelDelta; + } + + if (e.shiftKey) { + // reverse axis with shift key + return [-deltaY, -deltaX]; + } + return [deltaX, deltaY]; + } + + function shouldBeConsumedByChild(target, deltaX, deltaY) { + // FIXME: this is a workaround for + #end +
+
+
+ +
+
+
+ + + diff --git a/gloam/WebRoot/main.html b/gloam/WebRoot/main.html new file mode 100644 index 0000000..9a2a02c --- /dev/null +++ b/gloam/WebRoot/main.html @@ -0,0 +1,348 @@ + + + + + + + + + + + +网络流处理设备 + +#include("/common/header.html") + + + + + + + + + +
+
+ + + + + + + + + + +
+ + + +
+ +
+ + +
+
+ +
+

+ CEIEC All Rights Reserved , CEIEC © +

+
+ + + + + + diff --git a/gloam/WebRoot/process/processInfoList.html b/gloam/WebRoot/process/processInfoList.html new file mode 100644 index 0000000..9ef6f91 --- /dev/null +++ b/gloam/WebRoot/process/processInfoList.html @@ -0,0 +1,130 @@ + + + +#include("/common/header.html") + + + + +
+
+ + + +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + + + + #if(nodeList!=null && nodeList.size()>0) + #for(node:nodeList) + #set(boardCard="") + #for(key:node.keySet()) + #if(!key.equals('sort') && node.get(key).size()!=0) + + + + #set(boardCard=key) + #end + #end + #for(proc:node.get(boardCard)) + + + + + + + + + + #end + #end + #else + + + + #end + +
+ i18n_procInfoList.text.bordName_n81i + + i18n_procInfoList.text.procName_n81i + + i18n_procInfoList.text.proceNo_n81i + + i18n_procInfoList.text.procStartTime_n81i + + i18n_procInfoList.text.cpuUsage_n81i(%) + + i18n_procInfoList.text.memeryUsage_n81i(%) + + i18n_procInfoList.text.procState_n81i +
+ #(key) +
+ #(proc["procName"]) + + #(proc["pid"]) + + #(proc["startTime"]) + + #(proc["cpu"]) + + #(proc["memery"]) + + #if(proc["status"]==1) + i18n_procInfoList.text.ok_n81i + #else + i18n_procInfoList.text.no_n81i + #end +
+ i18n_ctsil.message.noRecord_n81i +
+ +
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/process/processReset.html b/gloam/WebRoot/process/processReset.html new file mode 100644 index 0000000..1d66123 --- /dev/null +++ b/gloam/WebRoot/process/processReset.html @@ -0,0 +1,157 @@ + + + +#include("/common/header.html") + + + + + + +
+
+ + + +
+
+
+
+

+ +

+
+
+ + + + + + + + + + #if(result!=null && result.size()>0) + #set(boardCard="") + #for(key:result.keySet()) + #if(result.get(key).size()!=0) + + + + #end + #set(boardCard=key) + + #for(proc:result.get(boardCard)) + + + + + #end + #end + #else + + + + #end + +
+ i18n_procInfoList.text.bordName_n81i + + i18n_procInfoList.text.procName_n81i + + i18n_middle1.text.operation_n81i +
+ #(key) +
+ #(proc.name) + + + #----# +
i18n_actsi.button.reset_n81i
+
+ i18n_ctsil.message.noRecord_n81i +
+ +
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/process/serviceInfoList.html b/gloam/WebRoot/process/serviceInfoList.html new file mode 100644 index 0000000..3af7502 --- /dev/null +++ b/gloam/WebRoot/process/serviceInfoList.html @@ -0,0 +1,147 @@ + + + +#include("/common/header.html") + + + + +
+
+ + + +
+
+
+
+

+ +

+
+
+ + + + + + + + + + + + + +
+ i18n_procInfoList.text.strengthened_n81i + + i18n_procInfoList.text.optimized_n81i +
+ + + +
+ +
+
+
+
+
+
+
+
+

+ +

+
+
+ + + + + + + + + + + #if(osInfoList!=null && osInfoList.size()!=0) + #for(osInfo:osInfoList) + #set(osName="") + #for(key:osInfo.keySet()) + #if(!key.equals('sort') && osInfo.get(key).size()!=0) + + + + #set(osName=key) + #end + #end + #for(serviceInfo:osInfo.get(osName)) + + + + + #end + #end + #else + + + + #end + +
+ i18n_procInfoList.text.sysname_n81i + + i18n_procInfoList.text.serviceName_n81i + + i18n_procInfoList.text.serviceState_n81i +
+ #(key) +
+ #(serviceInfo.serviceName) + + #if(serviceInfo.status==1) + i18n_procInfoList.text.ok_n81i + #else + i18n_procInfoList.text.no_n81i + #end +
+ i18n_ctsil.message.noRecord_n81i +
+ +
+
+
+
+
+
+
+ + diff --git a/gloam/WebRoot/process/updateProcess.html b/gloam/WebRoot/process/updateProcess.html new file mode 100644 index 0000000..caa3618 --- /dev/null +++ b/gloam/WebRoot/process/updateProcess.html @@ -0,0 +1,195 @@ + + + +#include("/common/header.html") + + + + + + + +
+
+ + + +
+
+
+
+

+ +

+
+
+
+ + + + + + + + + + + + + + + +
+
+ +
+ + +
+
+
+
+ +
+ + +
+
+
+
+ +
+ + + *i18n_procInfoList.text.uploadTar_n81i +
+
+
+
+ + + #if(resultState!=null) + #if(resultState==1) + *i18n_procInfoList.text.updateSuccess_n81i + #else + *i18n_procInfoList.text.updateFaild_n81i + #end + #end +
+
+
+
+
+
+
+
+
+ + + diff --git a/gloam/WebRoot/route/016route.html b/gloam/WebRoot/route/016route.html new file mode 100644 index 0000000..f99621b --- /dev/null +++ b/gloam/WebRoot/route/016route.html @@ -0,0 +1,323 @@ + + + + + +#(_res.get("route.config")) + + + + +#include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + #else + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + #else + #end + + +
+
+
+ +
+
+ + +
+ + #for(systemRouteConfigData:systemRouteConfigs) + #if(session.tabTag) + #if(session.tabTag==systemRouteConfigData.key) +
+ #else +
+ #end + #else + #if(for.index==0) +
+ #else +
+ #end + #end + + + + + + + + + + + + + + #for(systemRouteConfig:systemRouteConfigData.value) + + + + + + + + #end + +
IpMaskGatewayInterfaceHandle
#(systemRouteConfig.destination_ip)#(systemRouteConfig.ip_mask)#(systemRouteConfig.gateway)#(systemRouteConfig.r_interface) + + + +
+
+ #end +
+
+
+
+ + + + + + + diff --git a/gloam/WebRoot/route/102route.html b/gloam/WebRoot/route/102route.html new file mode 100644 index 0000000..7fd0361 --- /dev/null +++ b/gloam/WebRoot/route/102route.html @@ -0,0 +1,280 @@ + + + + + + #(_res.get("route.config")) + + + + + #include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + + #else + + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + + #else + + #end + +
+
+
+

#(_res.get("route.config"))

+ +
+
+ + + + + + + + + + + + + #for(systemRouteConfigMap:systemRouteConfigs) + #for(systemRouteConfig:systemRouteConfigMap.value) + + + + + + + + + #end + #end + +
#(_res.get('destination.ip'))#(_res.get('mask'))#(_res.get('gateway'))#(_res.get('interface'))#(_res.get('handle'))
#(systemRouteConfig.destination_ip)#(systemRouteConfig.ip_mask)#(systemRouteConfig.gateway)#(systemRouteConfig.r_interface) + + + +
+
+
+
+ + + + + + + + diff --git a/gloam/WebRoot/route/route.html b/gloam/WebRoot/route/route.html new file mode 100644 index 0000000..1570fb7 --- /dev/null +++ b/gloam/WebRoot/route/route.html @@ -0,0 +1,491 @@ + + + + + +#(_res.get("route.config")) + + + + + +#include("/common/header.html") + + #if(session.successMessage!=null&&session.successMessage!="") + #else + #end + + #if(session.errorMessage!=null&&session.errorMessage!="") + #else + #end + + +
+ #----# +
+ #for(x : nodeDatas) + #if(session.tabTag) + #if(session.tabTag == x.key) + #set(class="tab tab-active") + #else + #set(class="tab") + #end + #else + #if(for.index==0) + #set(class="tab tab-active") + #else + #set(class="tab") + #end + #end +
#(x.value.name)
+ #end +
+
+ +
+ + #for(systemRouteConfigData:systemRouteConfigs) + #if(session.tabTag) + #if(session.tabTag==systemRouteConfigData.key) +
+ #else +
+ #end + #else + #if(for.index==0) +
+ #else +
+ #end + #end + + + + + + + + + + + + + + #for(systemRouteConfig:systemRouteConfigData.value) + + + + + + + + #end + +
IpMaskGatewayInterfaceHandle
#(systemRouteConfig.destination_ip)#(systemRouteConfig.ip_mask)#(systemRouteConfig.gateway)#(systemRouteConfig.r_interface) + + + +
+
+ #end +
+
+ + +#----# +
+
+ + + + + + + + + + + +
+
+ + + + diff --git a/gloam/WebRoot/welcome.html b/gloam/WebRoot/welcome.html new file mode 100644 index 0000000..21b43ce --- /dev/null +++ b/gloam/WebRoot/welcome.html @@ -0,0 +1,610 @@ + + + +#include("/common/header.html") + + + + + + + + + +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/gloam/conf/config.properties b/gloam/conf/config.properties new file mode 100644 index 0000000..eb257e4 --- /dev/null +++ b/gloam/conf/config.properties @@ -0,0 +1,70 @@ +#数据库连接 +#jdbcUrl = jdbc:sqlite:/home/wwr/oam2.db +#jdbcUrl = jdbc:sqlite:D:\\Workspaces\\wwrWork\\gloam\\db\\oam.db +jdbcUrl = jdbc:sqlite:D:\\oam1.db +#jdbcUrl = jdbc:sqlite://10.0.6.103/sqlite/oam.db +user = +password = +devMode = true + +# 定时删除日志时间 +delete_logtime = 7 + +#项目名称 +project_name = OAM + +# 设备名称 +#equipment_name = ADC-A016 +equipment_name = ASEM-T102 + +#静态资源地址 +webRootPath=WebRoot + +#端口号 +port=8989 + +#项目路径 +projectPath=/ + +#项目部署服务器地址 +serverInstallPositionIp=192.168.178.128 + + +#服务器 +serversCount=1 +serverInfo1.ip=192.168.178.128 +serverInfo1.network=eth0 +#serversCount=2 +#serverInfo1.ip=192.168.178.128 +#serverInfo1.network=eth0 +#serverInfo2.ip=192.168.178.129 +#serverInfo2.network=eth0 + + +#解析入库线程执行间隔, ms +detect_data_parse_interval=20000 + +#设备信息数据根目录 +detect_data_root_path=d:/gl/ +#定时清理超过天数的监测结果文件 ms 7*24*3600*1000 (超过7天的文件) +cron_delete_resultFile_cycle=604800000 + +#定时任务设置 +cron4j=clearFile +clearFile.cron=0 0 * * * +clearFile.class=com.nis.gloam.task.ClearFile +clearFile.enable=true + +#监测间隔时间 s +monitor_interval=300 +#welcome页展示最近多少分钟的数据 +welcome_time=120 + +#进程信息获取脚本目录 +process_info_scriptPath=/home/wwr/expect.exp + +#系统配置命令 +device_config_scriptCmd=device_config + +#进程更新文件上传目录 +process_upload_path=/home/wwr/gloam/upload diff --git a/gloam/conf/i18n_en_US.properties b/gloam/conf/i18n_en_US.properties new file mode 100644 index 0000000..c6c84f3 --- /dev/null +++ b/gloam/conf/i18n_en_US.properties @@ -0,0 +1,121 @@ +msg=International +admin.common.choice = Choice +admin.common.close = Close +admin.common.delete = Delete +admin.common.determine = Determine +admin.common.edit = The editor +admin.common.export = Export +system.config = NIC Set +audit.log = Audit Log +sign.in = Sign In +sign.out = Sign Out +welcome.page = WELCOME +page.up = Page Up +page.down = Page Down +total = Total +page = Page +creater = Creator +create.time = Create Time +cpuuser.usage = CPU Monitor: User Usage Rate\uff08us%\uff09 +cpuuser = User Usage Rate\uff08us%\uff09 +memory.usage = Memory Monitor: Memory Utilization Rate\uff08us%\uff09 +memory = Memory Utilization Rate\uff08us%\uff09 +disk.usage = Disk Monitor: Disk Usage \uff08us%\uff09 +disk = Disk Usage \uff08us%\uff09 +netdata.usage = Netdata Monitor: Number Of Network Card Packets +netdata = Number Of Network Card Packets +ip = IP +uri = URI +request.way = Request Way +log.message = Log Message +home.page = Home Page +exit.system = Exit +login = Login +exit = Exit +explain = Explain +route.config = Route Config +route.modify = Route Modify +config.modify = Config Modify +monitor = Equipment Monitoring +monitor.card = Card Name +monitor.type = Monitoring Category +monitor.setting = Setting Name +monitor.status = Status +monitor.check = Status Recent Check Time +monitor.information = Status Information +monitor.performacedata = Performace Data +monitor.checktime = Check Time +monitor.nextchecktime = Next Check Time +monitor.arriveTime = Update Time +save.changes = Save +reset = Reset +reboot = Reboot +shutdown = Shutdown +handle.success = Handle Success +handle.error = Error ! Please try again later +software.type = Software Type +software.release = Software Release +gateway = Gateway +mask = Mask +destination.ip = Destination Ip +interface = Interface +mac = MAC +account = Account +password = Password +power = Power +remove = Remove +cancel = Cancel +remove.message = Are you sure remove? +modify = Modify +create = Create +error.message = Please check again! +handle = Handle +signError = Other account login +loginTimeOut = Time out please login again +waitInfo = Please waiting +modify.message = Are you sure modify? +node.ip = Node IP +normal = Normal +abnormal = Abnormal +monitor.error = Monitor Error +monitor.data.details = Monitoring Data Details +monitor.data = Monitoring Data +serviceConfig = Business Software Setup +showProcess = Show Process +device.config = Device Settings +os.Config = OS Settings +software.config = Software Configuration +software.update = Business Software Upgrade +other.business = Third Party Business Plug-in Management +net.config = The Network Configuration +device.operate = Equipment Operation +hardware.info = Hardware Information +base.info = The Basic Information +hardware.config = The Hardware Configuration +snmp = Information Management + +startTime = Start Time +endTime = End Time +chart.submit = Submit +chart.oneMore = Please choose at least one option +os.Config = OS Settings +startTime = Start Time +endTime = End Time +chart.submit = Submit +chart.oneMore = Please choose at least one option + +softConfig.key = Key +softConfig.error = Getting value exception,please check +value = Value +description = Description +softConfig.update = update + +column = The column +isRequired = is required +confirm.update = Comfirm the change? + +goback = back + +processReset = Reset Process +500 = 500 Internal Server Error +404 = 404 Not found diff --git a/gloam/conf/i18n_zh_CN.properties b/gloam/conf/i18n_zh_CN.properties new file mode 100644 index 0000000..cf75d64 --- /dev/null +++ b/gloam/conf/i18n_zh_CN.properties @@ -0,0 +1,117 @@ +msg=\u56fd\u9645\u5316 +admin.common.choice = \u9009\u62e9 +admin.common.close = \u5173\u95ed +admin.common.delete = \u5220\u9664 +admin.common.determine = \u786e\u5b9a +admin.common.edit = \u7f16\u8f91 +admin.common.export = \u5bfc\u51fa +system.config = \u7cfb\u7edf\u914d\u7f6e +audit.log = \u5ba1\u8ba1\u65e5\u5fd7 +sign.in = \u767b\u5f55 +sign.out = \u9000\u51fa +welcome.page = \u6b22\u8fce\u4f7f\u7528 +page.up = \u4e0a\u9875 +page.down = \u4e0b\u9875 +total = \u5171 +page = \u9875 +creater = \u521b\u5efa\u4eba +create.time = \u521b\u5efa\u65f6\u95f4 +cpuuser.usage = CPU\u76d1\u6d4b\uff1a\u7528\u6237\u4f7f\u7528\u7387\uff08us%\uff09 +cpuuser = \u7528\u6237\u4f7f\u7528\u7387\uff08us%\uff09 +memory.usage = \u5185\u5B58\u76d1\u6d4b\uff1a\u5185\u5b58\u4f7f\u7528\u7387\uff08us%\uff09 +memory = \u5185\u5b58\u4f7f\u7528\u7387\uff08us%\uff09 +disk.usage = \u786C\u76D8\u76d1\u6d4b\uff1a\u78c1\u76d8\u4f7f\u7528\u7387\uff08us%\uff09 +disk = \u78c1\u76d8\u4f7f\u7528\u7387\uff08us%\uff09 +netdata.usage = \u7F51\u5361\u76d1\u6d4b\uff1a\u7f51\u5361\u6536\u53d1\u5305\u6570 +netdata = \u7f51\u5361\u6536\u53d1\u5305\u6570 +ip = IP +uri = URI +request.way = \u8bf7\u6c42\u65b9\u5f0f +log.message = \u65e5\u5fd7\u4fe1\u606f +home.page = \u9996\u9875 +exit.system = \u9000\u51fa\u7cfb\u7edf +login = \u767b\u5f55 +exit = \u9000\u51fa +explain = \u8bf4\u660e +route.config = \u8def\u7531\u914d\u7f6e +route.modify = \u4fee\u6539\u8def\u7531 +config.modify = \u4fee\u6539\u914d\u7f6e +monitor = \u8bbe\u5907\u76d1\u6d4b +monitor.card = \u677f\u5361\u540d\u79f0 +monitor.type = \u76d1\u6d4b\u7c7b\u522b +monitor.setting = \u8bbe\u7f6e\u540d\u79f0 +monitor.status = \u72b6\u6001 +monitor.check = \u6700\u8fd1\u68c0\u67e5\u65f6\u95f4 +monitor.information = \u72b6\u6001\u4fe1\u606f +monitor.performacedata = \u6027\u80FD\u6570\u636E +monitor.checktime = \u76D1\u6D4B\u65F6\u95F4 +monitor.nextchecktime = \u4E0B\u6B21\u76D1\u6D4B\u65F6\u95F4 +monitor.arriveTime = \u66F4\u65B0\u65F6\u95F4 +save.changes = \u4fdd\u5b58 +reset = \u91cd\u7f6e +reboot = \u91cd\u542f +shutdown = \u5173\u673a +handle.success = \u64cd\u4f5c\u6210\u529f +handle.error = \u64cd\u4f5c\u5931\u8d25\uff0c\u8BF7\u7a0d\u5019\u91cd\u8bd5 +software.type = \u8f6f\u4ef6\u7c7b\u578b +software.release = \u8f6f\u4ef6\u7248\u672c +mask = \u63a9\u7801 +gateway = \u7f51\u5173 +destination.ip = \u76ee\u7684\u7f51\u7edcIp +interface = \u63a5\u53e3 +mac = MAC +account = \u7528\u6237\u540d +password = \u5bc6\u7801 +power = \u7535\u6e90 +remove = \u5220\u9664 +cancel = \u53d6\u6d88 +remove.message = \u786e\u8ba4\u5220\u9664\uff1f +modify = \u4fee\u6539 +create = \u65b0\u589e +error.message = \u8bf7\u4fee\u6539\u4e0d\u6b63\u786e\u4fe1\u606f +handle = \u64cd\u4f5c +signError = \u8d26\u53f7\u5728\u522b\u5904\u767b\u5f55 +loginTimeOut = \u8fde\u63a5\u8d85\u65f6 \u8bf7\u91cd\u65b0\u767b\u5f55 +waitInfo = \u8bf7\u7b49\u5f85 +modify.message = \u786e\u5b9a\u4fee\u6539\uff1f +node.ip = \u8282\u70B9IP +normal = \u6B63\u5E38 +abnormal = \u5F02\u5E38 +monitor.error = \u76D1\u6D4B\u9519\u8BEF +monitor.data.details = \u76D1\u63A7\u6570\u636E\u8BE6\u7EC6\u4FE1\u606F +monitor.data = \u76D1\u6D4B\u6570\u636E +serviceConfig = \u4e1a\u52a1\u8f6f\u4ef6\u8bbe\u7f6e +showProcess = \u8fdb\u7a0b\u663e\u793a +device.config = \u8bbe\u5907\u8bbe\u7f6e + +os.Config = OS\u8bbe\u7f6e +software.config = \u8f6f\u4ef6\u914d\u7f6e +software.update = \u4e1a\u52a1\u8f6f\u4ef6\u5347\u7ea7 +other.business = \u7b2c\u4e09\u65b9\u4e1a\u52a1\u63d2\u4ef6\u7ba1\u7406 +net.config = \u7f51\u7edc\u914d\u7f6e +device.operate = \u8bbe\u5907\u64cd\u4f5c +hardware.info = \u786c\u4ef6\u4fe1\u606f +base.info = \u57fa\u672c\u4fe1\u606f +hardware.config = \u786c\u4ef6\u914d\u7f6e +snmp = \u4fe1\u606f\u7ba1\u7406 + +startTime = \u5F00\u59CB\u65F6\u95F4 +endTime = \u7ED3\u675F\u65F6\u95F4 +chart.submit = \u786E\u5B9A +chart.oneMore = \u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u9879 + +softConfig.key = \u5C5E\u6027\u540D +softConfig.error = \u53D6\u503C\u5F02\u5E38\uFF0C\u8BF7\u68C0\u67E5 +value = \u503C +description = \u63CF\u8FF0 +softConfig.update = \u66F4\u6539 + +column = \u5B57\u6BB5 +isRequired = \u662F\u5FC5\u586B\u9879 +confirm.update = \u786E\u8BA4\u4FEE\u6539\u5417\uFF1F + +processReset = \u91cd\u7f6e\u8fdb\u7a0b +goback = \u8FD4\u56DE + +500 = 500 \u5185\u90E8\u670D\u52A1\u9519\u8BEF +404 = 404 \u672A\u627E\u5230\u9875\u9762 \ No newline at end of file diff --git a/gloam/conf/log4j.properties b/gloam/conf/log4j.properties new file mode 100644 index 0000000..b58d6a9 --- /dev/null +++ b/gloam/conf/log4j.properties @@ -0,0 +1,13 @@ +log4j.rootLogger=DEBUG, stdout, file +#log4j.rootLogger=ERROR, stdout, file +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +#log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n +log4j.appender.stdout.layout.ConversionPattern=%d %p (%F:%L) [%t] - <%m>%n + +# Output to the File +#log4j.appender.file=org.apache.log4j.DailyRollingFileAppender +#log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log' +#log4j.appender.file.File=./jfinal_demo.log +#log4j.appender.file.layout=org.apache.log4j.PatternLayout +#log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n \ No newline at end of file diff --git a/gloam/db/oam.db b/gloam/db/oam.db new file mode 100644 index 0000000..7ff1f2c Binary files /dev/null and b/gloam/db/oam.db differ diff --git a/gloam/src/com/nis/gloam/config/BaseConfig.java b/gloam/src/com/nis/gloam/config/BaseConfig.java new file mode 100644 index 0000000..d136a4c --- /dev/null +++ b/gloam/src/com/nis/gloam/config/BaseConfig.java @@ -0,0 +1,178 @@ +package com.nis.gloam.config; +import com.jfinal.config.Constants; +import com.jfinal.config.Handlers; +import com.jfinal.config.Interceptors; +import com.jfinal.config.JFinalConfig; +import com.jfinal.config.Plugins; +import com.jfinal.config.Routes; +import com.jfinal.ext.handler.ContextPathHandler; +import com.jfinal.ext.interceptor.SessionInViewInterceptor; +import com.jfinal.i18n.I18nInterceptor; +import com.jfinal.kit.Prop; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.cron4j.Cron4jPlugin; +import com.jfinal.plugin.druid.DruidPlugin; +import com.jfinal.render.ViewType; +import com.jfinal.template.Engine; +import com.nis.gloam.controller.AuditLogController; +import com.nis.gloam.controller.ConfigController; +import com.nis.gloam.controller.DetectionInfoNewController; +import com.nis.gloam.controller.DeviceController; +import com.nis.gloam.controller.LoginController; +import com.nis.gloam.controller.MainController; +import com.nis.gloam.controller.ProcessController; +import com.nis.gloam.controller.RouteController; +import com.nis.gloam.controller.SoftConfigController; +import com.nis.gloam.controller.WelcomeController; +import com.nis.gloam.entity.ConfigInfo; +import com.nis.gloam.entity.DetectInfoCpu; +import com.nis.gloam.entity.DetectInfoDisk; +import com.nis.gloam.entity.DetectInfoMemory; +import com.nis.gloam.entity.DetectInfoNetdata; +import com.nis.gloam.entity.DetectionInfo; +import com.nis.gloam.entity.DeviceInfo; +import com.nis.gloam.entity.Metadata; +import com.nis.gloam.entity.DetectionInfoNew; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ProcessInfo; +import com.nis.gloam.entity.SysLog; +import com.nis.gloam.entity.SysMenu; +import com.nis.gloam.entity.SysUser; +import com.nis.gloam.entity.SystemRouteConfig; +import com.nis.gloam.entity.SystemService; +import com.nis.gloam.interceptor.CookieInViewInterceptor; +import com.nis.gloam.interceptor.LoginInterceptor; +import com.nis.gloam.interceptor.OperateLogInterceptor; +import com.nis.gloam.task.DetectDataFileReadTask; + +import java.util.Timer; + +import org.apache.log4j.Logger; + + +public class BaseConfig extends JFinalConfig{ + + private static Logger logger = Logger.getLogger(BaseConfig.class); + + /** + * 配置基本JFinal常量 + */ + @Override + public void configConstant(Constants me) { + PropKit.use("config.properties"); + + // 配置是否在控制台 打印输出 可在配置文件内进行动态更改 + me.setDevMode(PropKit.getBoolean("devMode", false)); + me.setViewType(ViewType.JFINAL_TEMPLATE); + // 配置国际化 + me.setI18nDefaultBaseName("i18n"); + me.setBaseUploadPath(PropKit.get("process_upload_path")); + me.setError404View("/error/404.html"); + me.setError500View("/error/500.html"); + } + + /** + * 配置页面路由 + */ + @Override + public void configRoute(Routes me) { + // 设置视图渲染路径 + me.add("/", LoginController.class,"/login"); + me.add("/main", MainController.class,"/main"); + me.add("/welcome",WelcomeController.class,"/welcome"); + me.add("/auditlog",AuditLogController.class,"/auditlog"); + me.add("/config",ConfigController.class,"/config"); + me.add("/route",RouteController.class,"/route"); + me.add("/monitor",DetectionInfoNewController.class,"/monitor"); + me.add("/detect",DetectionInfoNewController.class,"/detect"); + me.add("/process",ProcessController.class,"/process"); + me.add("/device",DeviceController.class,"/device"); + me.add("/softConfig",SoftConfigController.class,"/config"); + } + + @Override + public void configEngine(Engine me) { + me.addSharedFunction("/common/page.html"); + + } + + @Override + public void configPlugin(Plugins me) { + // 加载少量必要配置,随后可用PropKit.get(...)获取值 + Prop cron = PropKit.use("config.properties"); + me.add(new Cron4jPlugin(cron)); + + + Prop config = PropKit.use("config.properties"); + + DruidPlugin dp = new DruidPlugin(config.get("jdbcUrl"), + config.get("user"), + config.get("password")); + //设置sqlite驱动程序 + dp.setDriverClass("org.sqlite.JDBC"); + me.add(dp); + ActiveRecordPlugin arp = new ActiveRecordPlugin(dp); + me.add(arp); + //表映射 + arp.addMapping("sys_user", SysUser.class); + arp.addMapping("sys_menu", SysMenu.class); + arp.addMapping("sys_log", SysLog.class); + arp.addMapping("node_table", NodeTable.class); + arp.addMapping("detect_info_cpu", DetectInfoCpu.class); + arp.addMapping("detect_info_disk", DetectInfoDisk.class); + arp.addMapping("detect_info_memory", DetectInfoMemory.class); + arp.addMapping("detect_info_netdata", DetectInfoNetdata.class); + arp.addMapping("detection_info_new", DetectionInfoNew.class); + arp.addMapping("device_info","device_id", DeviceInfo.class); + arp.addMapping("system_route_config","config_id", SystemRouteConfig.class); + arp.addMapping("detection_info", DetectionInfo.class); + arp.addMapping("detect_info_cpu", DetectInfoCpu.class); + arp.addMapping("detect_info_memory", DetectInfoMemory.class); + arp.addMapping("detect_info_disk", DetectInfoDisk.class); + arp.addMapping("detect_info_netdata", DetectInfoNetdata.class); + arp.addMapping("process_info", ProcessInfo.class); + arp.addMapping("system_service", SystemService.class); + arp.addMapping("metadata", Metadata.class); + arp.addMapping("config_info", ConfigInfo.class); + } + + @Override + public void configInterceptor(Interceptors me) { + //设置未登录拦截器 拦截受限资源 + me.add(new LoginInterceptor()); + //设置国际化拦截器 扫描配置文件并且加载 + me.add(new I18nInterceptor()); + //设置session作用域拦截器以便能在前段页面获取值 + me.add(new SessionInViewInterceptor()); + me.add(new CookieInViewInterceptor()); + //设置视图层全栈拦截器 + me.addGlobalActionInterceptor(new OperateLogInterceptor()); + } + + @Override + public void configHandler(Handlers me) { + me.add(new ContextPathHandler("basePath")); + } + + @Override + public void afterJFinalStart(){ + /*Timer timer = new Timer(); + LogTimerTask logTimerTask = new LogTimerTask(timer); + timer.schedule(logTimerTask, 60000);*/ + Timer timer = new Timer(); + timer.schedule(new DetectDataFileReadTask(timer), 2000); + logger.info("文件定时读取任务启动"); + +// Common.shellExcutePool.submit(new Runnable() { +// @Override +// public void run() { +// long start=System.currentTimeMillis(); +// LinuxUtil.initBlack(); +// long end=System.currentTimeMillis(); +// logger.info("初始化黑名单完成,用时:"+(end-start)/1000+"s"); +// } +// }); + + } +} diff --git a/gloam/src/com/nis/gloam/controller/AuditLogController.java b/gloam/src/com/nis/gloam/controller/AuditLogController.java new file mode 100644 index 0000000..e2199f3 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/AuditLogController.java @@ -0,0 +1,14 @@ +package com.nis.gloam.controller; + +import com.jfinal.core.Controller; +import com.nis.gloam.service.AuditLogService; + +public class AuditLogController extends Controller{ + /** + * 日志界面 + */ + public void index(){ + setAttr("auditLog", AuditLogService.auditLogService.paginate(getParaToInt(0, 1), getParaToInt(1, 10))); + render("/auditlog/auditlog-index.html"); + } +} diff --git a/gloam/src/com/nis/gloam/controller/ConfigController.java b/gloam/src/com/nis/gloam/controller/ConfigController.java new file mode 100644 index 0000000..7bf3db9 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/ConfigController.java @@ -0,0 +1,303 @@ +package com.nis.gloam.controller; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.jfinal.aop.Duang; +import com.jfinal.core.Controller; +import com.jfinal.kit.Prop; +import com.jfinal.kit.PropKit; +import com.jfinal.kit.StrKit; +import com.nis.gloam.entity.DeviceInfo; +import com.nis.gloam.entity.DeviceInfoBean; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ServerInfoDto; +import com.nis.gloam.service.DeviceInfoService; +import com.nis.gloam.service.NodeTableService; +import com.nis.gloam.util.LinuxUtil; +import com.nis.gloam.util.PropertiesUtil; +import com.nis.gloam.util.ServerUtil; +import com.alibaba.fastjson.*; +import com.jcraft.jsch.JSchException; + +public class ConfigController extends Controller { + + private Logger logger = Logger.getLogger(ConfigController.class); + + /** + * 配置界面 + */ + public void index() { + + // 数据库获取所有通信服务器信息 + List serverDtos = NodeTableService.nodeTableService.getAllNode(); + + Map> datas = null; + Map nodeDatas = new LinkedHashMap(); + if (serverDtos != null && serverDtos.size() > 0) { + datas = new LinkedHashMap>(); + for (NodeTable serverDto : serverDtos) { + String ip = serverDto.getStr("ip"); + String user = serverDto.getStr("user"); + String pwd = serverDto.getStr("pwd"); + nodeDatas.put(ip, serverDto); + logger.info(" serverDto ==========" + serverDto.get("ip")); + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"7\","); + sb.append("\"ip\":\"" + serverDto.get("ip") + "\""); + sb.append("}]"); + logger.info("query config request para --" + sb.toString()); + Map result = new HashMap<>(); + LinuxUtil safeProcessUtil = Duang.duang(LinuxUtil.class); + if ((Integer) serverDto.get("isMaster") == 1) { + result = safeProcessUtil.execShellSafe("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, ip, user, pwd, "2", sb.toString()); + } + logger.info("query config response map" + com.alibaba.fastjson.JSON.toJSONString(result)); + + String jsonStr = (String) result.get("in"); + if (StrKit.notNull(jsonStr) && !jsonStr.trim().isEmpty()) { + int exit = (Integer) result.get("exitStatus"); + logger.info("query config response info --" + result); + logger.info("query config response exit :" + exit); + // 下行json串为测试数据 + // String jsonStr="[{\"DEVICE\": \"eth1\", \"IPV6INIT\": + // \"yes\", \"USERCTL\": \"no\", \"DNS1\": \"10.0.1.41\", + // \"IPADDR\": \"10.0.1.27\", \"PEERDNS\": \"yes\", + // \"ONBOOT\": \"yes\", \"BROADCAST\": \"10.10.1.255\", + // \"NM_CONTROLLED\": \"no\", \"NETMASK\": + // \"255.255.255.0\", \"BOOTPROTO\": \"none\", \"HWADDR\": + // \"00:0C:29:13:5D:74\", \"IPV6ADDR\": + // \"FD55:faaf:e1ab:1B0D:10:14:24:106/64\", \"TYPE\": + // \"Ethernet\", \"GATEWAY\": \"10.0.1.1\"}, + // {\"NM_CONTROLLED\": \"no\", \"IPV6INIT\": \"yes\", + // \"USERCTL\": \"no\", \"DNS1\": \"10.0.1.41\", \"IPADDR\": + // \"10.0.1.27\", \"PEERDNS\": \"yes\", \"GATEWAY\": + // \"10.0.1.1\", \"BROADCAST\": \"10.10.1.255\", \"HWADDR\": + // \"00:0C:29:13:5D:74\", \"NETMASK\": \"255.255.255.0\", + // \"BOOTPROTO\": \"none\", \"DEVICE\": \"eth:0\", + // \"IPV6ADDR\": \"FD55:faaf:e1ab:1B0D:10:14:24:106/64\", + // \"TYPE\": \"Ethernet\", \"ONBOOT\": \"yes\"}, + // {\"DEVICE\": \"eth0\", \"UUID\": + // \"1d6aff90-3abf-46e5-81b4-7f1be7a822f4\", \"IPADDR\": + // \"192.168.178.129\", \"ONBOOT\": \"yes\", + // \"NM_CONTROLLED\": \"yes\", \"NETMASK\": + // \"255.255.255.0\", \"BOOTPROTO\": \"static\", \"HWADDR\": + // \"00:50:56:27:65:59\", \"TYPE\": \"Ethernet\", + // \"GATEWAY\": \"192.168.178.1\"}, {\"NM_CONTROLLED\": + // \"no\", \"IPV6INIT\": \"yes\", \"USERCTL\": \"no\", + // \"DNS1\": \"10.0.1.41\", \"IPADDR\": \"10.0.1.27\", + // \"PEERDNS\": \"yes\", \"GATEWAY\": \"10.0.1.1\", + // \"BROADCAST\": \"10.10.1.255\", \"HWADDR\": + // \"00:0C:29:13:5D:74\", \"NETMASK\": \"255.255.255.0\", + // \"BOOTPROTO\": \"none\", \"DEVICE\": \"eth:1\", + // \"IPV6ADDR\": \"FD55:faaf:e1ab:1B0D:10:14:24:106/64\", + // \"TYPE\": \"Ethernet\", \"ONBOOT\": \"yes\"}]"; + List parseArray = JSON.parseArray(jsonStr, DeviceInfoBean.class); + if (parseArray != null && parseArray.size() > 0) { + Collections.sort(parseArray, new Comparator() { + + @Override + public int compare(DeviceInfoBean o1, DeviceInfoBean o2) { + if (o1 != null && o2 != null && o1.getManageName() != null + && o2.getManageName() != null) { + return o1.getManageName().compareTo(o2.getManageName()); + } else { + return 0; + } + } + + }); + } + parseArray.get(0).setTableServerName(serverDto.get("name")); + for (DeviceInfoBean i : parseArray) { + logger.info("i =================" + i.getManageAddr()); + if (i.getManageAddr().equals(serverDto.get("ip"))) { + logger.info("匹配上通信ip信息"); + i.setMasterFlag(1); + i.setNodeTableId(serverDto.get("id")); + } else { + i.setMasterFlag(0); + } + } + datas.put(serverDto.get("ip"), parseArray); + } else { + datas.put(serverDto.get("ip"), null); + } + } + } + setAttr("nodeDatas", nodeDatas); + setAttr("deviceInfos", datas); + render("/config/config.html"); + } + + /** + * 修改配置信息 + */ + public void modifyConfig() { + String scriptPath = PropKit.get("process_info_scriptPath"); + // 将前台请求数据 转换成json + String[] paraValues = getParaValues("count"); + // 保存通信服务器的IP以便后面修改 + String ip = getPara("ip"); + String temp = ip; + // 保存将修改的通信服务器数据库表的ID字段信息 + Integer tableId = null; + // 组装页面传递过来的参数 + List params = new ArrayList(); + for (int i = 0; i < paraValues.length; i++) { + DeviceInfoBean data = new DeviceInfoBean(); + data.setManageAddr(getPara("deviceInfo" + i + ".manageAddr")); + data.setManageGateway(getPara("deviceInfo" + i + ".manageGateway")); + data.setManageMac(getPara("deviceInfo" + i + ".manageMac")); + data.setManageMask(getPara("deviceInfo" + i + ".manageMask")); + data.setManageName(getPara("deviceInfo" + i + ".manageName")); + if (Integer.parseInt(getPara("deviceInfo" + i + ".masterFlag")) == 1) { + ip = getPara("deviceInfo" + i + ".manageAddr"); + tableId = Integer.parseInt(getPara("deviceInfo" + i + ".nodeTableId")); + logger.info("modifyConfig ip=======" + ip + " tableId==========" + tableId); + } + params.add(data); + } + String pythonParam = JSON.toJSONString(params); + // 修改数据库完成后 修改设备数据 + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"6\","); + sb.append("\"ip\":\"" + getPara("ip") + "\","); + sb.append("\"request\":" + pythonParam + ""); + sb.append("}]"); + logger.info("modifyConfig request para --" + sb.toString()); + Map result = new HashMap<>();; + LinuxUtil safeProcessUtil = Duang.duang(LinuxUtil.class); + NodeTable nodeTable = NodeTableService.nodeTableService.getNodeTableByIp(getPara("ip")); + String user = nodeTable.getStr("user"); + String pwd = nodeTable.getStr("pwd"); + if ((Integer) nodeTable.get("isMaster") == 1) { + result = safeProcessUtil.execShellSafe("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(temp, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, temp, user, pwd, "2", sb.toString()); + } + // 修改数据库的通信服务器地址信息 + try { + String execLinuxCmd = LinuxUtil.execLinuxCmd("ping -c 3 " + ip); + if (execLinuxCmd.contains("ttl") && execLinuxCmd.contains("time")) { + NodeTable modifyData = new NodeTable(); + modifyData.set("ip", ip); + modifyData.set("id", tableId); + NodeTableService.nodeTableService.modifyNodeTable(modifyData); + logger.info("modifyConfig :" + result); + } + } catch (Exception e) { + logger.error("ping faild"); + } + + // 修改设备信息采集脚本的配置文件 + if (!ip.equals(temp)) { + File collectorConfig = new File(PropKit.get("detect_data_root_path") + File.separator + "config"); + if (collectorConfig.isFile()) { + Prop use = PropKit.use(collectorConfig); + + boolean flag = true; + for (int i = 1; flag; i++) { + String ipInfo = use.get("ip" + i); + if (StrKit.notBlank(ipInfo)) { + if (ipInfo.contains(temp)) { + String[] infoArray = ipInfo.split(","); + ipInfo = ip + "," + infoArray[1] + "," + infoArray[2]; + PropertiesUtil.setConfig(collectorConfig.getAbsolutePath(), "ip" + i, ipInfo); + break; + } + } + } + } + } + + if (result != null) { + int exit = (Integer) result.get("exitStatus"); + logger.info("modifyConfig exit :" + exit); + // 操作结果标记 + if (exit == 0 || exit == -1) { + setSessionAttr("successMessage", "handle.success"); + setAttr("success", "success"); + } else { + setSessionAttr("errorMessage", "handle.error"); + setAttr("error", "error"); + } + } + setSessionAttr("tabTag", ip); + renderJson(); + } + + /** + * 重启设备 + */ + public void rebootConfig() { + // 数据库获取所有通信服务器信息 + List serverDtos = NodeTableService.nodeTableService.getAllNode(); + for (NodeTable node : serverDtos) { + if (node.getInt("isMaster") == 0) { + try { + LinuxUtil.remoteExec(node.getStr("ip"), node.getStr("user"), node.getStr("pwd"), "reboot"); + } catch (JSchException e) { + logger.error("reboot error:" + node.getStr("ip"), e); + } + } + } + try { + LinuxUtil.execLinuxCmd("reboot"); + } catch (Exception e) { + logger.error("reboot error", e); + } + redirect("/main/showMain"); + } + + /** + * 关闭设备 + */ + public void shutDownConfig() { + // 数据库获取所有通信服务器信息 + List serverDtos = NodeTableService.nodeTableService.getAllNode(); + for (NodeTable node : serverDtos) { + if (node.getInt("isMaster") == 0) { + try { + LinuxUtil.remoteExec(node.getStr("ip"), node.getStr("user"), node.getStr("pwd"), "shutdown -h now"); + } catch (JSchException e) { + logger.error("shutdown error:" + node.getStr("ip"), e); + } + } + } + try { + LinuxUtil.execLinuxCmd("shutdown -h now"); + } catch (Exception e) { + logger.error("shutdown error", e); + } + redirect("/main/showMain"); + } +} diff --git a/gloam/src/com/nis/gloam/controller/DetectionInfoNewController.java b/gloam/src/com/nis/gloam/controller/DetectionInfoNewController.java new file mode 100644 index 0000000..b54b681 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/DetectionInfoNewController.java @@ -0,0 +1,349 @@ +package com.nis.gloam.controller; + + + +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.jfinal.core.Controller; +import com.jfinal.json.Json; +import com.jfinal.plugin.activerecord.Page; +import com.nis.gloam.entity.DetectionInfo; +import com.nis.gloam.entity.DetectionInfoNew; +import com.nis.gloam.entity.Metadata; +import com.nis.gloam.service.DeviceInfoNewService; +import com.nis.gloam.util.Common; +import com.nis.gloam.util.DateUtil; + +public class DetectionInfoNewController extends Controller{ + + public void index(){ + List detect= DeviceInfoNewService.deviceInfoNewService.paginate(); + List nodeNum= DeviceInfoNewService.deviceInfoNewService.getNodeNum(); + setAttr("monitor", detect); + setAttr("nodeNum", nodeNum); + render("/detection/detectionInfoNew-index.html"); + } + + public void monitorTypeDetail() { + String seqId = getPara("seqId"); + String detectionSetInfoId = getPara("detectionSetInfoId"); + String checkTypeId = getPara("checkTypeId"); + + List monitorTypeBaseInfo = DeviceInfoNewService.deviceInfoNewService.getMonitorTypeBaseInfo(seqId, detectionSetInfoId); + if (monitorTypeBaseInfo != null && monitorTypeBaseInfo.size() > 0) { + setAttr("base", monitorTypeBaseInfo.get(0)); + + Long detectionInfoId = monitorTypeBaseInfo.get(0).getLong("detectionInfoId"); + List monitorTypeDetailInfo = DeviceInfoNewService.deviceInfoNewService.getMonitorTypeDetailInfo(detectionInfoId, checkTypeId); + if (monitorTypeDetailInfo.size() == 2) { + setAttr("columns", monitorTypeDetailInfo.get(0)); + setAttr("details", monitorTypeDetailInfo.get(1)); + } + } + + render("/detection/detectionInfoNew-typeDetail.html"); + } + + public void monitorSetDetail() { + Date now = new Date(); + String seqId = getPara("seqId"); + String detectionSetInfoId = getPara("detectionSetInfoId"); + setAttr("seqId", seqId); + setAttr("detectionSetInfoId", detectionSetInfoId); + String startTime = getPara("startTime"); + if (StringUtils.isBlank(startTime)) { + startTime = DateUtil.formatTime(now, "yyyy-MM-dd"); + } + setAttr("startTime", startTime); + + String endTime = getPara("endTime"); + if (StringUtils.isBlank(endTime)) { + setAttr("endTime", DateUtil.formatTime(now, "yyyy-MM-dd")); + try { + endTime = DateUtil.dateCalculate(now, "yyyy-MM-dd", 1); + } catch (ParseException e) {} + } else { + setAttr("endTime", new String(endTime)); + try { + endTime = DateUtil.dateCalculate(endTime, "yyyy-MM-dd", 1); + } catch (ParseException e) {} + } + + String paginateInfo = getPara("paginate"); + int pageNumber = 1; + int pageSize = 10; + if (!StringUtils.isBlank(paginateInfo)) { + String[] split = paginateInfo.split("-"); + pageNumber = Integer.valueOf(split[0]); + pageSize = Integer.valueOf(split[1]); + } + setAttr("pageSize", pageSize); + + Integer totalRow = DeviceInfoNewService.deviceInfoNewService.totalRow(seqId, detectionSetInfoId, startTime, endTime); + setAttr("totalRow", totalRow); + if (totalRow > 0) { + Page page = DeviceInfoNewService.deviceInfoNewService.paginate(pageNumber, pageSize, seqId, detectionSetInfoId, startTime, endTime); + setAttr("page", page); + } else { + setAttr("page", new Page()); + } + render("/detection/detectionInfoNew-setDetail.html"); + } + + public void chart() { + Date now = new Date(); + + String seqId = getPara("seqId"); + setAttr("seqId", seqId); + String checkTypeId = getPara("checkTypeId"); + setAttr("checkTypeId", checkTypeId); + String detectionSetInfoId = getPara("detectionSetInfoId"); + setAttr("detectionSetInfoId", detectionSetInfoId); + + String startTime = getPara("startTime"); + if (StringUtils.isBlank(startTime)) { + startTime = DateUtil.formatTime(now, "yyyy-MM-dd"); + } + setAttr("startTime", startTime); + + String endTime = getPara("endTime"); + if (StringUtils.isBlank(endTime)) { + setAttr("endTime", DateUtil.formatTime(now, "yyyy-MM-dd")); + try { + endTime = DateUtil.dateCalculate(now, "yyyy-MM-dd", 1); + } catch (ParseException e) {} + } else { + setAttr("endTime", new String(endTime)); + try { + endTime = DateUtil.dateCalculate(endTime, "yyyy-MM-dd", 1); + } catch (ParseException e) {} + } + + String ip = DeviceInfoNewService.deviceInfoNewService.getIpBySeqId(seqId); + + //获取需要展示的字段 + List metas = DeviceInfoNewService.deviceInfoNewService.getMetadatasByCheckTypeId(checkTypeId); + setAttr("columns", metas); + + Integer titleId = getParaToInt("titleId"); + String fieldName = ""; //折线图标题对应字段名 + String titleName = ""; //折线图标题对应国际化名 + String tableName = ""; + if (metas != null && metas.size() > 0) { + for (Metadata meta : metas) { + if (titleId == null) { + if (meta.get("chartState").equals("0")) { + titleId = (Integer)(meta.get("id")); + titleName = meta.getStr("fieldComments"); + fieldName = meta.getStr("fieldName"); + tableName = meta.getStr("tableName"); + break; + } + } else { + if (meta.getStr("id").equals(titleId + "")) { + titleId = (Integer)(meta.get("id")); + titleName = meta.get("fieldComments"); + fieldName = meta.getStr("fieldName"); + tableName = meta.getStr("tableName"); + break; + } + } + } + } + setAttr("fieldName", fieldName); + setAttr("titleId", titleId); //折线图标题对应meta的id + + List singleNames = DeviceInfoNewService.deviceInfoNewService.getSingleNames(detectionSetInfoId, seqId, metas); + List names = new ArrayList<>(); //重新排序后的singleNames + for (String singleName : singleNames) { + if("cpu".equals(singleName) || "/".equals(singleName)) { + names.add(0, singleName); + } else { + names.add(singleName); + } + } + setAttr("names", names); //所有单位名称,如cpu:cpu,cpu-0,cpu-1 + + List> datas = DeviceInfoNewService.deviceInfoNewService.getChartData(metas, tableName, seqId, detectionSetInfoId, startTime, endTime); //查得的数据 + + setAttr("datas", datas); + + String columnName = ""; + String[] checkedNames = getParaValues("checkedNames"); //cpu、disk页面选中的名称,如cpu-1, cpu-3 + String checkedName = getPara("checkedName"); //网卡页面选中的名称 + if (StringUtils.isBlank(checkedName) && tableName.toUpperCase().contains("NET")) { + checkedName = names.get(0); + } + setAttr("checkedName", checkedName); //网卡页面选中的名称 + + String renderName = ""; + + if (tableName.toUpperCase().contains("CPU")) { + columnName = "CPU_NAME"; + renderName = "/detection/chart-cpudisk.html"; + if (checkedNames == null || checkedNames.length == 0) { + checkedNames = new String[1]; + checkedNames[0] = "cpu"; + } + setAttr("checkedNames", Json.getJson().toJson(checkedNames)); + } else if (tableName.toUpperCase().contains("DISK")) { + columnName = "DISK_RANGE"; + renderName = "/detection/chart-cpudisk.html"; + if (checkedNames == null || checkedNames.length == 0) { + checkedNames = new String[1]; + checkedNames[0] = "/"; + } + setAttr("checkedNames", Json.getJson().toJson(checkedNames)); + } else if (tableName.toUpperCase().contains("NET")) { + columnName = "NAME"; + renderName = "/detection/chart-net.html"; + } else if (tableName.toUpperCase().contains("MEM")) { + renderName = "/detection/chart-mem.html"; + } + + Map titleInfo = new HashMap<>(); + titleInfo.put("xtitle", ip + " " + titleName); + titleInfo.put("ytitle", titleName); + + List result = new ArrayList(); + Map lines = new HashMap<>(); + result.add(titleInfo); + result.add(lines); + + if (datas != null && datas.size() > 0) { + List> _datas = new ArrayList<>(); //lines对象对应的数组 + if ("CPU_NAME".equals(columnName) || "DISK_RANGE".equals(columnName)) { + for (String cn : checkedNames) { + Map singleData = new HashMap<>(); //单条记录 + List _data = new ArrayList<>(); + singleData.put("name", cn); + for (int i = 0; i < datas.size(); i++) { //时间维度 + List di = datas.get(i); + for (int j = 0; j < di.size(); j++) { //遍历单个名称,如cpu-3,cpu-4 + DetectionInfo _pdi = di.get(j); + if (_pdi.getStr(columnName).equals(cn)) { + List d = new ArrayList(); + d.add(_pdi.getLong("dataCheckTimeDigital")); + if (StringUtils.isBlank(_pdi.get(fieldName).toString())) { + d.add(0); + } else { + d.add(_pdi.get(fieldName)); + } + _data.add(d); + break; + } + } + singleData.put("data", _data); + } + _datas.add(singleData); + } + } else if ("NAME".equals(columnName)) { // 网卡 + + // 判断是计算包数还是字节数,并获取用来计算平均速度的字段名 + String calFieldName = ""; + String calType = ""; //b 字节数, p 包数 + switch (fieldName) { + case "RX_BPS": + calFieldName = "RX_BYTES"; + calType = "b"; + break; + case "TX_BPS": + calFieldName = "TX_BYTES"; + calType = "b"; + break; + case "RX_PPS": + calFieldName = "RX_PACKETS"; + calType = "p"; + break; + case "TX_PPS": + calFieldName = "TX_PACKETS"; + calType = "p"; + break; + } + + Map data1 = new HashMap<>(); + Map data2 = new HashMap<>(); + data1.put("name", checkedName + " i18n_MonitorDataAction.emportCurrentXlsAbnormalSet.avg_n81i"); + List _data1 = new ArrayList<>(); + for (int i = 0; i < datas.size(); i++) { //时间维度 + List di = datas.get(i); + + for (int j = 0; j < di.size(); j++) { //遍历网卡名 + DetectionInfo _pdi = di.get(j); + if (_pdi.get("NAME").equals(checkedName)) { + List d1 = new ArrayList(); + d1.add(_pdi.getLong("dataCheckTimeDigital")); + DetectionInfo new_pdi; //同一个网卡下一个时间段的数据 + if (i < datas.size()-1) { + new_pdi = datas.get(i+1).get(j); + } else { + new_pdi = null; + } + Long avg = Common.avg(_pdi, new_pdi, calFieldName, calType); + if (avg == null && _data1.size() > 0) { + d1.add(_data1.get(_data1.size()-1).get(1).toString()); + } else if (avg != null){ + d1.add(avg); + } + _data1.add(d1); + } + } + } + data1.put("data", _data1); + + data2.put("name", "i18n_MonitorDataAction.emportCurrentXlsAbnormalSet.moment_n81i"); + List _data2 = new ArrayList<>(); + for (int i = 0; i < datas.size(); i++) { + List di = datas.get(i); + + for (int j = 0; j < di.size(); j++) { + DetectionInfo _pdi = di.get(j); + if (_pdi.get("NAME").equals(checkedName)) { + List d2 = new ArrayList<>(); + d2.add(_pdi.getLong("dataCheckTimeDigital")); + if (StringUtils.isBlank(_pdi.get(fieldName).toString())) { + d2.add(0); + } else { + d2.add(Double.parseDouble(_pdi.get(fieldName).toString())*8); + } + _data2.add(d2); + } + } + } + data2.put("data", _data2); + + _datas.add(data1); + _datas.add(data2); + } else { //mem + Map data = new HashMap<>(); + data.put("name", titleName); + List _data = new ArrayList<>(); + for (int i = 0; i < datas.size(); i++) { //时间维度 + DetectionInfo _pdi = datas.get(i).get(0); + List d = new ArrayList<>(); + d.add(_pdi.getLong("dataCheckTimeDigital")); + if (StringUtils.isBlank(_pdi.get(fieldName).toString())) { + d.add(0); + } else { + d.add(_pdi.get(fieldName)); + } + _data.add(d); + } + data.put("data", _data); + + _datas.add(data); + } + lines.put("lines", _datas); + } + setAttr("datas", Json.getJson().toJson(result)); + + render(renderName); + } +} diff --git a/gloam/src/com/nis/gloam/controller/DeviceController.java b/gloam/src/com/nis/gloam/controller/DeviceController.java new file mode 100644 index 0000000..6d1ac6a --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/DeviceController.java @@ -0,0 +1,105 @@ +package com.nis.gloam.controller; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Deque; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; + +import org.apache.log4j.Logger; + +import com.jfinal.core.Controller; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ProcessInfo; +import com.nis.gloam.entity.SystemService; +import com.nis.gloam.service.NodeTableService; +import com.nis.gloam.service.ProcessInfoService; +import com.nis.gloam.service.SystemServiceService; +import com.nis.gloam.util.Common; + +public class DeviceController extends Controller { + public void showServiceList(){ + Logger logger=Logger.getLogger(DeviceController.class); + + NodeTableService nodeService = new NodeTableService(); + Deque nodes = nodeService.getAllNodes(); + + SystemServiceService sss=new SystemServiceService(); + ProcessInfoService procService=new ProcessInfoService(); + + List> osInfoList=new ArrayList<>(); + + int size=nodes.size(); + try { + final CountDownLatch latch=new CountDownLatch(size); + for (int i=0;i serviceList=sss.findSystemServiceByNode(node); + Map osInfo=new HashMap<>(); + + List> serviceInfoList=new ArrayList<>(); + for (SystemService service : serviceList) { + + List processList=procService.findProcessBySystemService(service); + + List> procList = procService.checkProcessStatus(node, processList); + + boolean statusFlag=true; + + if(procList!=null&&procList.size()>0){ + for (Map proc: procList) {//检查进程状态,只要有一个不正常,则服务不正常 + Integer status = (Integer) proc.get("status"); + if(status==null||status !=1){ + statusFlag=false; + } + } + }else{ + statusFlag=false; + } + Map serviceInfo=new HashMap<>(); + serviceInfo.put("serviceName", service.getStr("name")); + if(statusFlag){ + serviceInfo.put("status", 1); + }else{ + serviceInfo.put("status", 0); + } + + serviceInfoList.add(serviceInfo); + } + osInfo.put(node.getStr("name"), serviceInfoList); + osInfo.put("sort", node.getInt("sort")); + osInfoList.add(osInfo); + latch.countDown(); + } + }); + + } + + latch.await(5L,TimeUnit.SECONDS); + } catch (Exception e) { + logger.warn("程序异常!"+e); + } + Collections.sort(osInfoList, new Comparator(){ + @Override + public int compare(Map m1, Map m2) { + if (Integer.parseInt(m1.get("sort").toString()) > Integer.parseInt(m2.get("sort").toString())) { + return 1; + } + if (Integer.parseInt(m1.get("sort").toString()) < Integer.parseInt(m2.get("sort").toString())) { + return -1; + } + return 0; + } + }); + setAttr("osInfoList", osInfoList); + render("/process/serviceInfoList.html"); + } +} diff --git a/gloam/src/com/nis/gloam/controller/LoginController.java b/gloam/src/com/nis/gloam/controller/LoginController.java new file mode 100644 index 0000000..0c43222 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/LoginController.java @@ -0,0 +1,52 @@ +package com.nis.gloam.controller; + + +import javax.servlet.http.HttpSession; + +import com.jfinal.aop.Before; +import com.jfinal.aop.Clear; +import com.jfinal.core.Controller; +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.SysUser; +import com.nis.gloam.interceptor.LoginInterceptor; +import com.nis.gloam.validator.LoginValidator; + +@Clear(LoginInterceptor.class) +public class LoginController extends Controller { + /** + * 登录界面 + */ + public void index() { + //判断用户之前是否登录 + HttpSession sessionAttr = getSessionAttr("loginFlag"); + if(sessionAttr==null) { + //获取设备名称 + PropKit.use("config.properties"); + String projectName = PropKit.get("project_name"); + setAttr("projectName", projectName); + String equipmentName = PropKit.get("equipment_name"); + setAttr("equipmentName", equipmentName); + render("/login.html"); + }else { + redirect("/main/showMain"); + } + + } + + /** + * 登录验证 + */ + @Before(LoginValidator.class) + public void login() { + redirect("/main/showMain"); + } + + /** + * 退出操作 + */ + public void exit(){ + removeSessionAttr("loginUser"); + removeSessionAttr("loginFlag"); + redirect("/"); + } +} \ No newline at end of file diff --git a/gloam/src/com/nis/gloam/controller/MainController.java b/gloam/src/com/nis/gloam/controller/MainController.java new file mode 100644 index 0000000..1560554 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/MainController.java @@ -0,0 +1,32 @@ +package com.nis.gloam.controller; + +import java.util.List; + +import com.jfinal.core.Controller; +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.SysMenu; +import com.nis.gloam.entity.SysUser; +import com.nis.gloam.service.SysMenuService; + +public class MainController extends Controller{ + /** + * 首页界面 + */ + public void showMain(){ + SysUser user = (SysUser)getSessionAttr("loginUser"); + //查询用户可以展示的页面信息 + List menus = SysMenuService.sysMenuService.queryMainMenu(user.get("id")); + setAttr("menus", menus); + //获取设备名称 + PropKit.use("config.properties"); + String projectName = PropKit.get("project_name"); + setAttr("projectName", projectName); + String equipmentName = PropKit.get("equipment_name"); + setAttr("equipmentName", equipmentName); + String locale = getCookie("_locale"); + String paramLocale = getPara("_locale"); + locale=paramLocale!=null?paramLocale:locale; + setAttr("_locale",locale!=null?locale:"zh_CN"); + render("/main.html"); + } +} diff --git a/gloam/src/com/nis/gloam/controller/ProcessController.java b/gloam/src/com/nis/gloam/controller/ProcessController.java new file mode 100644 index 0000000..0df2e72 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/ProcessController.java @@ -0,0 +1,232 @@ +package com.nis.gloam.controller; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.Deque; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; + +import com.jfinal.core.Controller; +import com.jfinal.kit.FileKit; +import com.jfinal.kit.JsonKit; +import com.jfinal.kit.PropKit; +import com.jfinal.kit.StrKit; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.DbKit; +import com.jfinal.plugin.activerecord.Record; +import com.jfinal.upload.UploadFile; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ProcessInfo; +import com.nis.gloam.service.NodeTableService; +import com.nis.gloam.service.ProcessInfoService; +import com.nis.gloam.util.Common; +import com.nis.gloam.util.DateUtil; +import com.nis.gloam.util.LinuxUtil; + +public class ProcessController extends Controller { + private Logger logger=Logger.getLogger(ProcessController.class); + public void showAllProcessInfo(){ + NodeTableService nodeService = new NodeTableService(); + Deque nodes = nodeService.getAllNodes(); + + /** + * processList List>>> + * --nodes Map>> String:板卡名称 + * --process List> String :进程名称 + * */ + List nodeList=new ArrayList<>(); + + ProcessInfoService procService =new ProcessInfoService(); + int size=nodes.size(); + try { + final CountDownLatch latch=new CountDownLatch(size); + for (int i=0;i(){ + @Override + public int compare(Map m1, Map m2) { + if (Integer.parseInt(m1.get("sort").toString()) > Integer.parseInt(m2.get("sort").toString())) { + return 1; + } + if (Integer.parseInt(m1.get("sort").toString()) < Integer.parseInt(m2.get("sort").toString())) { + return -1; + } + return 0; + } + }); + setAttr("nodeList", nodeList); + render("/process/processInfoList.html"); + } + + public void toUpdate(){ + NodeTableService nodeService = new NodeTableService(); + List nodes=nodeService.getAllNode(); + setAttr("nodes", nodes); + render("/process/updateProcess.html"); + } + + public void findProcessByNode(){ + String node = getPara("node"); + ProcessInfoService procService =new ProcessInfoService(); + + List procList=procService.findProcessByNodeId(node); + renderJson(procList); + } + + public void uploadFile(){ + try { + + String upLoadDir=PropKit.get("process_upload_path"); + Long currentTimeMillis = System.currentTimeMillis(); + + UploadFile uploadFile=this.getFile(); + + File file=uploadFile.getFile(); + String fileName = file.getName(); + + String[] split = fileName.split("\\."); + + File newFile=new File(upLoadDir+File.separator+split[0]+currentTimeMillis+"."+split[1]); + + file.renameTo(newFile); + + String path = newFile.getAbsolutePath(); + String processId = getPara("process"); + String nodeId=getPara("node"); + + NodeTable node = NodeTable.dao.findById(nodeId); + + Record record = Db.findById("process_info", processId); + record.set("update_file", path); + excuteUpdate(node,record); + + NodeTableService nodeService = new NodeTableService(); + List nodes=nodeService.getAllNode(); + setAttr("nodes", nodes); + + setAttr("resultState",record.getInt("update_result")); + render("/process/updateProcess.html"); + } catch (Exception e) { + logger.error(e); + } + + + } + + private void excuteUpdate(NodeTable node,Record process){ + String ip = node.getStr("ip"); + String user=node.getStr("user"); + String pwd=node.getStr("pwd"); + + String updateFile=process.getStr("update_file"); + + String scriptPath = process.getStr("restart_sh"); + + String uploadPath=process.getStr("upload_path"); + + try { + //String scpResult = LinuxUtil.execLinuxCmd("/home/wwr/expect_scp "+ip+" "+user+" "+pwd+" "+updateFile+" "+uploadPath); + LinuxUtil.remoteUpload(ip, user, pwd, updateFile, uploadPath); + //if(scpResult!=null&&scpResult.equals("successs")){ + //String updateResult = LinuxUtil.execLinuxCmd("/home/wwr/update.sh "+updateFile+" "+uploadPath); + File uploadF = new File(updateFile); + updateFile = uploadPath + File.separator + uploadF.getName(); + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, "tar -xf " + updateFile + " -C " + uploadPath); + if (remoteExec.get(1).toString().equals("0")) { + process.set("update_result", 1); + process.set("update_date", DateUtil.formatTime(new Date())); + logger.info("更新进程成功!"); + } else{ + process.set("update_result", 0); + process.set("update_date", DateUtil.formatTime(new Date())); + logger.error("更新进程失败!"); + } + LinuxUtil.remoteExec(ip, user, pwd, scriptPath); + LinuxUtil.remoteExec(ip, user, pwd, "rm -f " + updateFile); + /*if(StrKit.notBlank(updateResult)&&updateResult.equals("success")){ + /*}else{ + process.set("update_result", 0); + process.set("update_date", DateUtil.formatTime(new Date())); + logger.error("推送文件失败!"); + }*/ + + } catch (Exception e) { + process.set("update_result", 0); + process.set("update_date", DateUtil.formatTime(new Date())); + logger.error("更新进程失败!"+e); + } + Db.update("process_info", process); + } + + public void toReset(){ + NodeTableService nodeService=NodeTableService.nodeTableService; + List allNode = nodeService.getAllNode(); + ProcessInfoService procService = ProcessInfoService.processInfoService; + Map>> result=new HashMap<>(); + for (NodeTable node : allNode) { + List procList = procService.findProcessByNodeId(node.getStr("id")); + List> procs=new ArrayList<>(); + for (ProcessInfo proc : procList) { + Map data=new HashMap<>(); + data.put("procId",proc.getInt("id")+""); + data.put("name", proc.getStr("name")); + data.put("nodeId", node.getStr("id")); + procs.add(data); + } + result.put(node.getStr("name"), procs); + } + setAttr("result", result); + render("/process/processReset.html"); + + } + + public void resetProcess(){ + String procId = getPara("procId"); + String nodeId = getPara("nodeId"); + ProcessInfo proc = ProcessInfoService.processInfoService.findProcessById(procId); + String mirrorPath = proc.getStr("mirror_path"); + String result = ""; + if(StrKit.notBlank(mirrorPath)){ + NodeTableService nodeService = NodeTableService.nodeTableService; + NodeTable node = nodeService.getNodeTableById(nodeId); + result = ProcessInfoService.processInfoService.resetProcess(node, proc); + }else{ + result = "i18n_processReset.text.result_n81i"; + } + + renderJson("result", result); + } +} diff --git a/gloam/src/com/nis/gloam/controller/RouteController.java b/gloam/src/com/nis/gloam/controller/RouteController.java new file mode 100644 index 0000000..5f806fb --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/RouteController.java @@ -0,0 +1,289 @@ +package com.nis.gloam.controller; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.alibaba.fastjson.*; +import com.jcraft.jsch.JSchException; + +import org.apache.log4j.Logger; + +import com.alibaba.druid.util.StringUtils; +import com.jfinal.core.Controller; +import com.jfinal.json.FastJson; +import com.jfinal.kit.JsonKit; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.Record; +import com.nis.gloam.entity.DeviceInfo; +import com.nis.gloam.entity.DeviceInfoBean; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ServerInfoDto; +import com.nis.gloam.entity.SystemRouteConfig; +import com.nis.gloam.entity.SystemRouteConfigBean; +import com.nis.gloam.service.DeviceInfoService; +import com.nis.gloam.service.NodeTableService; +import com.nis.gloam.service.SystemRouteConfigService; +import com.nis.gloam.util.LinuxUtil; +import com.nis.gloam.util.ServerUtil; + +public class RouteController extends Controller { + private Logger logger = Logger.getLogger(RouteController.class); + + /** + * 路由初始化界面 + */ + @SuppressWarnings("unchecked") + public void index() { + // 数据库获取所有通信服务器信息 + List serverDtos = NodeTableService.nodeTableService.getAllNode(); + String scriptPath = PropKit.get("process_info_scriptPath"); + Map> datas = null; + Map nodeDatas = new LinkedHashMap(); + if (serverDtos != null && serverDtos.size() > 0) { + datas = new LinkedHashMap>(); + for (NodeTable serverDto : serverDtos) { + String ip = serverDto.getStr("ip"); + String user = serverDto.getStr("user"); + String pwd = serverDto.getStr("pwd"); + nodeDatas.put(ip, serverDto); + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"5\","); + sb.append("\"ip\":\"" + serverDto.get("ip") + "\""); + sb.append("}]"); + logger.info("query route request para --" + sb.toString()); + Map result = new HashMap(); + if ((Integer) serverDto.get("isMaster") == 1) { + result = LinuxUtil.execShell("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, ip, user, pwd, "2", sb.toString()); + } + logger.info("query route response map" + JSON.toJSONString(result)); + + String jsonStr = (String) result.get("in"); + int exit = (Integer) result.get("exitStatus"); + + logger.info("query route response info --" + result); + logger.info("query route response exit :" + exit); + if (!jsonStr.isEmpty()) { + List parseArray = JSON.parseArray(jsonStr, SystemRouteConfigBean.class); + logger.info("query result data to html ==============" + JSON.toJSONString(parseArray)); + datas.put(serverDto.get("ip"), parseArray); + } else { + datas.put(serverDto.get("ip"), null); + } + } + } + setAttr("systemRouteConfigs", datas); + setAttr("nodeDatas", nodeDatas); + logger.info("query route result-------------" + datas.toString()); + render("/route/route.html"); + } + + /** + * 修改路由设置 + */ + public void modifyRoute() { + PropKit.use("config.properties"); +// String scriptPath = PropKit.get("process_info_scriptPath"); + String ip = getPara("ip"); + NodeTable nodeTable = NodeTableService.nodeTableService.getNodeTableByIp(ip); + String user = nodeTable.getStr("user"); + String pwd = nodeTable.getStr("pwd"); + setSessionAttr("tabTag", getPara("ip")); + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"2\","); + sb.append("\"ip\":\"" + getPara("ip") + "\","); + sb.append("\"destination_ip\":\"" + getPara("destination_ip") + "\","); + sb.append("\"ip_mask\":\"" + getPara("ip_mask") + "\","); + sb.append("\"gateway\":\"" + getPara("gateway") + "\","); + sb.append("\"interface\":\"" + getPara("r_interface") + "\","); + sb.append("\"destination_ip_old\":\"" + getPara("destination_ip_old") + "\","); + sb.append("\"ip_mask_old\":\"" + getPara("ip_mask_old") + "\","); + sb.append("\"gateway_old\":\"" + getPara("gateway_old") + "\""); + sb.append("}]"); + logger.info("modify route request para --" + sb.toString()); + Map result = new HashMap(); + if ((Integer) nodeTable.get("isMaster") == 1) { + result = LinuxUtil.execShell("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, getPara("ip"), user, pwd, "2", sb.toString()); + } + int exit = (Integer) result.get("exitStatus"); + + logger.info("modify route response info --" + result); + logger.info("modify route response exit :" + exit); + if (exit == 0) { + setSessionAttr("successMessage", "handle.success"); + } else { + setSessionAttr("errorMessage", "handle.error"); + } + + redirect("/route"); + } + + /** + * 删除路由配置 + */ + public void removeRoute() { + PropKit.use("config.properties"); +// String scriptPath = PropKit.get("process_info_scriptPath"); + String ip = getPara("ip"); + NodeTable nodeTable = NodeTableService.nodeTableService.getNodeTableByIp(ip); + String user = nodeTable.getStr("user"); + String pwd = nodeTable.getStr("pwd"); + setSessionAttr("tabTag", getPara("ip")); + // 调用python脚本删除路由配置信息 + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"3\","); + sb.append("\"ip\":\"" + getPara("ip") + "\","); + sb.append("\"destination_ip\":\"" + getPara("destination_ip") + "\","); + sb.append("\"ip_mask\":\"" + getPara("ip_mask") + "\","); + sb.append("\"gateway\":\"" + getPara("gateway") + "\","); + sb.append("\"interface\":\"" + getPara("r_interface") + "\""); + sb.append("}]"); + logger.info("remove route request para --" + sb.toString()); + Map result = new HashMap(); + if ((Integer) nodeTable.get("isMaster") == 1) { + result = LinuxUtil.execShell("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, getPara("ip"), user, pwd, "2", sb.toString()); + } + logger.info("remove route response map" + JSON.toJSONString(result)); + + int exit = (Integer) result.get("exitStatus"); + + logger.info("remove route response info --" + result); + logger.info("remove route response exit :" + exit); + if (exit == 0) { + setSessionAttr("successMessage", "handle.success"); + } else { + setSessionAttr("errorMessage", "handle.error"); + } + redirect("/route"); + } + + /** + * 新增路由配置 + */ + public void newRoute() { + String ip = getPara("ip"); + NodeTable nodeTable = NodeTableService.nodeTableService.getNodeTableByIp(ip); + String user = nodeTable.getStr("user"); + String pwd = nodeTable.getStr("pwd"); + setSessionAttr("tabTag", getPara("ip")); + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"4\","); + sb.append("\"ip\":\"" + getPara("ip") + "\","); + sb.append("\"destination_ip\":\"" + getPara("destination_ip") + "\","); + sb.append("\"ip_mask\":\"" + getPara("ip_mask") + "\","); + sb.append("\"gateway\":\"" + getPara("gateway") + "\","); + sb.append("\"interface\":\"" + getPara("r_interface") + "\""); + sb.append("}]"); + logger.info("create route request para --" + sb.toString()); + Map result = new HashMap(); + if ((Integer) nodeTable.get("isMaster") == 1) { + result = LinuxUtil.execShell("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + //result = LinuxUtil.execLinuxExpect(scriptPath, getPara("ip"), user, pwd, "2", sb.toString()); + } + int exit = (Integer) result.get("exitStatus"); + + logger.info("create route response info --" + result); + logger.info("create route response exit :" + exit); + if (exit == 0) { + setSessionAttr("successMessage", "handle.success"); + } else { + setSessionAttr("errorMessage", "handle.error"); + } + redirect("/route"); + } + + /** + * 查询所有网卡名称 + */ + public void queryNetworkNames() { + String ip = getPara("ip"); + NodeTable nodeTable = NodeTableService.nodeTableService.getNodeTableByIp(ip); + String user = nodeTable.getStr("user"); + String pwd = nodeTable.getStr("pwd"); + StringBuffer sb = new StringBuffer("[{"); + sb.append("\"type\":\"1\","); + sb.append("\"ip\":\"" + getPara("ip") + "\""); + sb.append("}]"); + logger.info("queryRouteExist request para --" + sb.toString()); + Map result = new HashMap(); + if ((Integer) nodeTable.get("isMaster") == 1) { + result = LinuxUtil.execShell("device_config", sb.toString()); + } else { + String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'"; + try { + List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand); + String execResult = remoteExec.get(0).toString(); + result.put("in", execResult); + result.put("exitStatus", remoteExec.get(1)); + } catch (JSchException e) { + logger.error("远程命令执行失败:ip " + ip + "," + remoteCommand, e); + } + } + int exit = (Integer) result.get("exitStatus"); + + logger.info("queryRouteExist response info --" + result); + logger.info("queryRouteExist response exit :" + exit); + if (exit == 0) { + String str = (String) result.get("in"); + List networkNames = JSON.parseArray(str, String.class); + + List result22 = new ArrayList(); + for(String networkName:networkNames){ + result22.add(networkName.replace(":", "")); + } + + setAttr("networkNames", result22); + } else { + setAttr("error", "handle.error"); + } + renderJson(); + } +} diff --git a/gloam/src/com/nis/gloam/controller/SoftConfigController.java b/gloam/src/com/nis/gloam/controller/SoftConfigController.java new file mode 100644 index 0000000..15ff6eb --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/SoftConfigController.java @@ -0,0 +1,145 @@ +package com.nis.gloam.controller; + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import org.apache.log4j.Logger; + +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.SftpException; +import com.jfinal.core.Controller; +import com.jfinal.kit.PathKit; +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.ConfigInfo; +import com.nis.gloam.service.SoftConfigService; +import com.nis.gloam.util.IniUtil; +import com.nis.gloam.util.PropertiesUtil; +import com.nis.gloam.util.SSHUtil; + +/** + * @author cjs + * 软件配置 + */ +public class SoftConfigController extends Controller { + + private static Logger logger = Logger.getLogger(SoftConfigController.class); + + public void index() { + List allConfig = SoftConfigService.softConfigService.getAllConfig(); + Map> result = new HashMap<>(); + if (allConfig != null && allConfig.size() > 0) { + for (ConfigInfo ci : allConfig) { + String name = ci.get("name"); + if (result.containsKey(name)) { + result.get(name).add(ci); + } else { + List l = new ArrayList<>(); + l.add(ci); + result.put(name, l); + } + } + + if(result.size() > 0) { + SSHUtil sshUtil = null; + List errorNames = new ArrayList<>(); + try { + for (String name : result.keySet()) { + String dir = checkDir(name); //下载目录 + List configs = result.get(name); + try { + sshUtil = new SSHUtil(configs.get(0).getStr("ip"), configs.get(0).getStr("user"), configs.get(0).getStr("pwd")); + } catch (Exception e) { + logger.error("连接远程服务器失败:" + configs.get(0).getStr("ip"), e); + errorNames.add(name); + continue; + } + for (ConfigInfo ci : configs) { + String suf = ci.getInt("confType") == 1 ? ".ini" : ".properties"; + + Date tempDate = new Date(); + String recvFileName = tempDate.getTime() + ci.getStr("id") + suf; //临时文件名 + String recvFileAbPath = dir + File.separator + recvFileName; //临时文件全路径 + try { + sshUtil.download(ci.getStr("confFile"), recvFileAbPath); //下载 + String config = ""; + + if (ci.getInt("confType") == 1) { //ini + config = IniUtil.getConfig(recvFileAbPath, ci.getStr("confMark"), ci.getStr("confField")); + } else if (ci.getInt("confType") == 2) { + config = PropKit.use(new File(recvFileAbPath)).get(ci.getStr("confField")); + } + ci.put("confValue", config); + ci.put("tempName", recvFileName); + ci.put("error", 0); // error为1时表示取值异常 + } catch (Exception e) { + logger.error("读取配置文件失败:" + ci.getStr("ip") + ":" + ci.getStr("confFile"), e); + ci.put("error", 1); + continue; + } + } + } + // 把result中连接异常的机器去掉 + for (String errorName : errorNames) { + result.remove(errorName); + } + } catch (Exception e) { + logger.error("远程读取配置文件出错", e); + } finally { + if (sshUtil != null) { + sshUtil.close(); + } + } + } + } + setAttr("result", result); + render("/config/softConfig.html"); + } + + public void update() { + int status = 0; //0 失败 1 成功 + + Integer id = getParaToInt("id"); + String tempName = getPara("tempName"); + String confValue = getPara("confValue"); + + ConfigInfo ci = SoftConfigService.softConfigService.getById(id); + if (ci != null) { + String dir = checkDir(ci.getStr("name")); //文件所在目录 + String fileAbPath = dir + File.separator + tempName; + if (ci.getInt("confType") == 1) { //ini + status = IniUtil.setConfig(fileAbPath, ci.getStr("confMark"), ci.getStr("confField"), confValue); + } else if (ci.getInt("confType") == 2) { //prop + status = PropertiesUtil.setConfig(fileAbPath, ci.getStr("confField"), confValue); + } + if (status == 1) { + try { + SSHUtil sshUtil = new SSHUtil(ci.getStr("ip"), ci.getStr("user"), ci.getStr("pwd")); + sshUtil.upload(fileAbPath, ci.getStr("confFile")); + } catch (Exception e) { + logger.error("远程修改配置文件出错", e); + } + } + } + renderJson(status); + } + + /** + * @param name 设备名称 + * @return + */ + public static String checkDir(String name) { + String path = PathKit.getWebRootPath(); + File webRootPath = new File(path); + File rootPath = webRootPath.getParentFile(); + File remoteConfig = new File(rootPath.getAbsolutePath() + File.separator + "remote_config" + File.separator + name); + if (!remoteConfig.isDirectory()) { + remoteConfig.mkdirs(); + } + return remoteConfig.getAbsolutePath(); + } +} diff --git a/gloam/src/com/nis/gloam/controller/WelcomeController.java b/gloam/src/com/nis/gloam/controller/WelcomeController.java new file mode 100644 index 0000000..9db07c9 --- /dev/null +++ b/gloam/src/com/nis/gloam/controller/WelcomeController.java @@ -0,0 +1,27 @@ +package com.nis.gloam.controller; + +import java.util.List; + +import com.jfinal.core.Controller; +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.service.RouteHomeService; + +public class WelcomeController extends Controller{ + /** + * 首页面--欢迎页面 + */ + public void index(){ + //获取设备名称 + PropKit.use("config.properties"); + String equipmentName = PropKit.get("equipment_name"); + setAttr("equipmentName", equipmentName); + render("/welcome.html"); + } + + public void rateCharts(){ + List nodeTable=RouteHomeService.auditLogService.queryEcharts(); + renderJson(nodeTable); + } + +} diff --git a/gloam/src/com/nis/gloam/entity/ConfigInfo.java b/gloam/src/com/nis/gloam/entity/ConfigInfo.java new file mode 100644 index 0000000..555b834 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/ConfigInfo.java @@ -0,0 +1,10 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class ConfigInfo extends Model { + + private static final long serialVersionUID = -3076854552138880008L; + public static final ConfigInfo dao = new ConfigInfo().dao(); + +} diff --git a/gloam/src/com/nis/gloam/entity/DetectInfoCpu.java b/gloam/src/com/nis/gloam/entity/DetectInfoCpu.java new file mode 100644 index 0000000..4e63347 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectInfoCpu.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectInfoCpu extends Model{ + private static final long serialVersionUID = 4574541643536733074L; + public static final DetectInfoCpu dao=new DetectInfoCpu().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DetectInfoDisk.java b/gloam/src/com/nis/gloam/entity/DetectInfoDisk.java new file mode 100644 index 0000000..53ec94b --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectInfoDisk.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectInfoDisk extends Model{ + private static final long serialVersionUID = 571831238974099682L; + public static final DetectInfoDisk dao=new DetectInfoDisk().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DetectInfoMemory.java b/gloam/src/com/nis/gloam/entity/DetectInfoMemory.java new file mode 100644 index 0000000..363516b --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectInfoMemory.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectInfoMemory extends Model{ + private static final long serialVersionUID = 3555750974134678776L; + public static final DetectInfoMemory dao=new DetectInfoMemory().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DetectInfoNetdata.java b/gloam/src/com/nis/gloam/entity/DetectInfoNetdata.java new file mode 100644 index 0000000..57f133c --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectInfoNetdata.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectInfoNetdata extends Model{ + private static final long serialVersionUID = -9055170744791670773L; + public static final DetectInfoNetdata dao=new DetectInfoNetdata().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DetectionInfo.java b/gloam/src/com/nis/gloam/entity/DetectionInfo.java new file mode 100644 index 0000000..1196dfb --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectionInfo.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectionInfo extends Model{ + private static final long serialVersionUID = 7441259960622691434L; + public static final DetectionInfo dao=new DetectionInfo().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DetectionInfoNew.java b/gloam/src/com/nis/gloam/entity/DetectionInfoNew.java new file mode 100644 index 0000000..2149a16 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DetectionInfoNew.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DetectionInfoNew extends Model{ + private static final long serialVersionUID = 3269390093475737061L; + public static final DetectionInfoNew dao=new DetectionInfoNew().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DeviceInfo.java b/gloam/src/com/nis/gloam/entity/DeviceInfo.java new file mode 100644 index 0000000..307934e --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DeviceInfo.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class DeviceInfo extends Model{ + private static final long serialVersionUID = -8084958836030593634L; + public static final DeviceInfo dao=new DeviceInfo().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/DeviceInfoBean.java b/gloam/src/com/nis/gloam/entity/DeviceInfoBean.java new file mode 100644 index 0000000..94d33ef --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/DeviceInfoBean.java @@ -0,0 +1,77 @@ +package com.nis.gloam.entity; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; + +public class DeviceInfoBean implements Serializable{ + private String manageAddr; + private String manageMac; + private String manageMask; + private String manageGateway; + private String manageName; + private String tableServerName; + private Integer masterFlag; + private Integer nodeTableId; + @JSONField(name="IPADDR") + public String getManageAddr() { + return manageAddr; + } + @JSONField(name="IPADDR") + public void setManageAddr(String manageAddr) { + this.manageAddr = manageAddr; + } + @JSONField(name="HWADDR") + public String getManageMac() { + return manageMac; + } + @JSONField(name="HWADDR") + public void setManageMac(String manageMac) { + this.manageMac = manageMac; + } + @JSONField(name="NETMASK") + public String getManageMask() { + return manageMask; + } + @JSONField(name="NETMASK") + public void setManageMask(String manageMask) { + this.manageMask = manageMask; + } + @JSONField(name="GATEWAY") + public String getManageGateway() { + return manageGateway; + } + @JSONField(name="GATEWAY") + public void setManageGateway(String manageGateway) { + this.manageGateway = manageGateway; + } + @JSONField(name="DEVICE") + public String getManageName() { + return manageName; + } + @JSONField(name="DEVICE") + public void setManageName(String manageName) { + this.manageName = manageName; + } + @JSONField(serialize=false) + public String getTableServerName() { + return tableServerName; + } + public void setTableServerName(String tableServerName) { + this.tableServerName = tableServerName; + } + @JSONField(serialize=false) + public Integer getMasterFlag() { + return masterFlag; + } + public void setMasterFlag(Integer masterFlag) { + this.masterFlag = masterFlag; + } + @JSONField(serialize=false) + public Integer getNodeTableId() { + return nodeTableId; + } + public void setNodeTableId(Integer nodeTableId) { + this.nodeTableId = nodeTableId; + } +} diff --git a/gloam/src/com/nis/gloam/entity/Metadata.java b/gloam/src/com/nis/gloam/entity/Metadata.java new file mode 100644 index 0000000..3783789 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/Metadata.java @@ -0,0 +1,9 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class Metadata extends Model{ + + private static final long serialVersionUID = 9015008640513811859L; + public static final Metadata dao=new Metadata().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/NodeTable.java b/gloam/src/com/nis/gloam/entity/NodeTable.java new file mode 100644 index 0000000..fbb46f8 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/NodeTable.java @@ -0,0 +1,48 @@ +package com.nis.gloam.entity; + +import java.util.ArrayList; +import java.util.List; + +import com.alibaba.fastjson.annotation.JSONField; +import com.jfinal.plugin.activerecord.Model; + +public class NodeTable extends Model { + private static final long serialVersionUID = 327776596541469286L; + public static final NodeTable dao=new NodeTable().dao(); + + public List detectInfoCpu = new ArrayList(); + + public List detectInfoMemory = new ArrayList(); + + public List detectInfoDisk = new ArrayList(); + + @JSONField(serialize=false) + public List getDetectInfoCpu() { + return detectInfoCpu; + } + + public void setDetectInfoCpu(List detectInfoCpu) { + this.detectInfoCpu = detectInfoCpu; + } + @JSONField(serialize=false) + public List getDetectInfoMemory() { + return detectInfoMemory; + } + + public void setDetectInfoMemory(List detectInfoMemory) { + this.detectInfoMemory = detectInfoMemory; + } + @JSONField(serialize=false) + public List getDetectInfoDisk() { + return detectInfoDisk; + } + + public void setDetectInfoDisk(List detectInfoDisk) { + this.detectInfoDisk = detectInfoDisk; + } + + + + + +} diff --git a/gloam/src/com/nis/gloam/entity/ProcessInfo.java b/gloam/src/com/nis/gloam/entity/ProcessInfo.java new file mode 100644 index 0000000..82d584c --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/ProcessInfo.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class ProcessInfo extends Model{ + private static final long serialVersionUID = -9163885017858603256L; + public static final ProcessInfo dao=new ProcessInfo().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/ServerInfoDto.java b/gloam/src/com/nis/gloam/entity/ServerInfoDto.java new file mode 100644 index 0000000..11e3ffd --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/ServerInfoDto.java @@ -0,0 +1,35 @@ +package com.nis.gloam.entity; + +import java.io.Serializable; + +public class ServerInfoDto implements Serializable{ + private String ipKey; + private String networkKey; + private String ip; + private String network; + public String getIp() { + return ip; + } + public void setIp(String ip) { + this.ip = ip; + } + public String getNetwork() { + return network; + } + public void setNetwork(String network) { + this.network = network; + } + public String getIpKey() { + return ipKey; + } + public void setIpKey(String ipKey) { + this.ipKey = ipKey; + } + public String getNetworkKey() { + return networkKey; + } + public void setNetworkKey(String networkKey) { + this.networkKey = networkKey; + } + +} diff --git a/gloam/src/com/nis/gloam/entity/SysLog.java b/gloam/src/com/nis/gloam/entity/SysLog.java new file mode 100644 index 0000000..1bee33a --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SysLog.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class SysLog extends Model{ + private static final long serialVersionUID = 5403129976699822546L; + public static final SysLog dao= new SysLog().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/SysMenu.java b/gloam/src/com/nis/gloam/entity/SysMenu.java new file mode 100644 index 0000000..4a0444e --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SysMenu.java @@ -0,0 +1,24 @@ +package com.nis.gloam.entity; + +import java.util.ArrayList; +import java.util.List; + +import com.jfinal.plugin.activerecord.Model; + +public class SysMenu extends Model{ + private static final long serialVersionUID = 3466303374693308917L; + + public static final SysMenu dao= new SysMenu().dao(); + + private List childSysmenus=new ArrayList(); + + public List getChildSysmenus() { + return childSysmenus; + } + + public void setChildSysmenus(List childSysmenus) { + this.childSysmenus = childSysmenus; + } + + +} diff --git a/gloam/src/com/nis/gloam/entity/SysUser.java b/gloam/src/com/nis/gloam/entity/SysUser.java new file mode 100644 index 0000000..31817ec --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SysUser.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class SysUser extends Model{ + private static final long serialVersionUID = 931932070138653665L; + public static final SysUser dao= new SysUser().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/SystemRouteConfig.java b/gloam/src/com/nis/gloam/entity/SystemRouteConfig.java new file mode 100644 index 0000000..c706ee4 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SystemRouteConfig.java @@ -0,0 +1,8 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class SystemRouteConfig extends Model{ + private static final long serialVersionUID = 6250922791346203113L; + public static final SystemRouteConfig dao= new SystemRouteConfig().dao(); +} diff --git a/gloam/src/com/nis/gloam/entity/SystemRouteConfigBean.java b/gloam/src/com/nis/gloam/entity/SystemRouteConfigBean.java new file mode 100644 index 0000000..4f76191 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SystemRouteConfigBean.java @@ -0,0 +1,36 @@ +package com.nis.gloam.entity; + +import java.io.Serializable; + +public class SystemRouteConfigBean implements Serializable{ + private String destination_ip; + private String ip_mask; + private String gateway; + private String r_interface; + public String getDestination_ip() { + return destination_ip; + } + public void setDestination_ip(String destination_ip) { + this.destination_ip = destination_ip; + } + public String getIp_mask() { + return ip_mask; + } + public void setIp_mask(String ip_mask) { + this.ip_mask = ip_mask; + } + public String getGateway() { + return gateway; + } + public void setGateway(String gateway) { + this.gateway = gateway; + } + public String getR_interface() { + return r_interface; + } + public void setR_interface(String r_interface) { + this.r_interface = r_interface; + } + + +} diff --git a/gloam/src/com/nis/gloam/entity/SystemService.java b/gloam/src/com/nis/gloam/entity/SystemService.java new file mode 100644 index 0000000..318ae33 --- /dev/null +++ b/gloam/src/com/nis/gloam/entity/SystemService.java @@ -0,0 +1,9 @@ +package com.nis.gloam.entity; + +import com.jfinal.plugin.activerecord.Model; + +public class SystemService extends Model { + + private static final long serialVersionUID = 2310351832739443274L; + public static final SystemService dao=new SystemService().dao(); +} diff --git a/gloam/src/com/nis/gloam/filter/I18nFilter.java b/gloam/src/com/nis/gloam/filter/I18nFilter.java new file mode 100644 index 0000000..ae14669 --- /dev/null +++ b/gloam/src/com/nis/gloam/filter/I18nFilter.java @@ -0,0 +1,170 @@ +package com.nis.gloam.filter; + +import java.io.File; +import java.io.FileFilter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.jfinal.core.JFinalFilter; + + +/** + * i18n国际化filter使用 正则表达式 replace 替换 + * + * @author dell + * + */ +public class I18nFilter extends JFinalFilter { + private static final Logger logger = Logger.getLogger(I18nFilter.class); + + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) servletRequest; + HttpServletResponse response = (HttpServletResponse) servletResponse; + I18nResponseWrapper rw = new I18nResponseWrapper(response); + String lang = request.getParameter("_locale"); + Locale locale ; + if(StringUtils.isNotBlank(lang)){ + String[] split = lang.split("_"); + locale = new Locale(split[0],split[1]); + }else{ + locale = (Locale)request.getSession().getAttribute("_locale"); + if(locale == null){ + Cookie[] cookies = request.getCookies(); + if(cookies!=null&&cookies.length>0){ + for (Cookie cookie : cookies) { + if("_locale".equals(cookie.getName())){ + lang = cookie.getValue(); + String[] split = lang.split("_"); + locale = new Locale(split[0],split[1]); + } + } + }else{ + locale = MyI18n.defaultLang; + } + + } + } + request.getSession().setAttribute("_locale", locale); + Locale temp = locale; + chain.doFilter(servletRequest, rw); + if (rw.isTrans()) {// 字符流输出 + locale = (Locale)request.getSession().getAttribute("_locale"); + if(locale==null){ + locale=temp; + } + String content = rw.getContent(); + content = MyI18n.trans(content, locale); + // 输出转换后的内容 + response.setContentLength(content.getBytes("utf-8").length); + ServletOutputStream superOut = rw.getSuperOut(); + superOut.write(content.getBytes("utf-8")); + superOut.flush(); + } + } + + /** + * i18n 正则替换 + * + * @param content + * @param lang + * @return + */ + + + @Override + public void init(FilterConfig config) throws ServletException { + // 文本 content-type 类型 + MyI18n.TRANS_CONTENT_TYPE.add("application/xml"); + MyI18n.TRANS_CONTENT_TYPE.add("application/json"); + String dl = config.getInitParameter("defaultLang"); + String reg = config.getInitParameter("i18nRegex"); + if(StringUtils.isNotBlank(dl)){ + String[] split = dl.split("_"); + if(split.length>1){ + MyI18n.defaultLang = new Locale(split[0],split[1]); + }else{ + MyI18n.defaultLang = new Locale(dl); + } + }else{ + MyI18n.defaultLang = new Locale("en","US"); + } + + if(StringUtils.isNotBlank(reg)){ + MyI18n.i18nRegex = Pattern.compile(reg); + }else{ + MyI18n.i18nRegex = Pattern.compile("i18n_([\\w\\.]+?)_n81i",Pattern.CASE_INSENSITIVE);//默认正则匹配规则 + } + // 初始化加载 国际化 资源文件 + String i18nFile = config.getInitParameter("i18nFile"); + String i18nFileCharset = config.getInitParameter("i18nFileCharset"); + logger.debug("i18nFile: " + i18nFile); + if (StringUtils.isNotBlank(i18nFile)) { + String parentPath = i18nFile.substring(0, i18nFile.lastIndexOf("/")); + final String fileStart = i18nFile.substring(i18nFile.lastIndexOf("/")+1); + if (!i18nFile.trim().startsWith("/")) {// 绝对路径 + ServletContext sc = config.getServletContext(); + String path = sc.getRealPath("/"); + parentPath = path +File.separator+ parentPath; + } + File pf = new File(parentPath); + if (pf.exists() && pf.isDirectory()) { + File[] listFiles = pf.listFiles(new FileFilter() { + public boolean accept(File pathname) { + return pathname.getName().startsWith(fileStart); + } + }); + if (listFiles != null) { + for (File f : listFiles) { + String filename = f.getName(); + if(filename.indexOf(".")>0){ + filename = filename.substring(0,filename.indexOf(".")); + } + String[] split = filename.split("_"); + if (split.length > 2) { + Locale locale = new Locale(split[1], split[2]); + try { + Properties prop = MyI18n.loadProp(f,i18nFileCharset); + MyI18n.langDict.put(locale, prop); + } catch (Exception e) { + e.printStackTrace(); + logger.error("filename : " + filename, e); + } + } else { + logger.warn("i18n file naming is wrong," + filename); + } + } + } + } + } + } + + @Override + public void destroy() { + + } +} diff --git a/gloam/src/com/nis/gloam/filter/I18nResponseWrapper.java b/gloam/src/com/nis/gloam/filter/I18nResponseWrapper.java new file mode 100644 index 0000000..bcd8efc --- /dev/null +++ b/gloam/src/com/nis/gloam/filter/I18nResponseWrapper.java @@ -0,0 +1,117 @@ +package com.nis.gloam.filter; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; + +public class I18nResponseWrapper extends HttpServletResponseWrapper{ + + private ServletOutputStream superOut; + private ByteArrayOutputStream bos; + //private StringBuilder content; + private PrintWriter myWriter; + private ServletOutputStream myOut; + private boolean trans = false;//是否开启 响应内容缓存 + + public I18nResponseWrapper(HttpServletResponse response) { + super(response); + //content = new StringBuilder(); + bos = new ByteArrayOutputStream(); + } + + @Override + public void reset() { + super.reset(); + bos.reset(); + //content.setLength(0);//清空缓存 + } + + @Override + public void setContentType(String type) { + super.setContentType(type); + if(type.startsWith("text") || MyI18n.TRANS_CONTENT_TYPE.contains(type)){ + trans = true; + }else{ + trans = false; + } + } + + public boolean isTrans() { + return trans; + } + + public void setTrans(boolean trans) { + this.trans = trans; + } + + public String getContent() { + if(myWriter != null){ + myWriter.flush(); + } + return bos.toString(); + } + + @Override + public ServletOutputStream getOutputStream() throws IOException { + if(myOut == null){ + myOut = new I18nOutputStream(getSuperOut()); + } + return myOut; + } + + public ServletOutputStream getSuperOut() throws IOException{ + if(superOut == null){ + superOut = super.getOutputStream(); + } + return superOut; + } + + + + @Override + public PrintWriter getWriter() throws IOException { + if(myWriter == null){ + myWriter = new I18nWriter(getOutputStream()); + trans = true; + } + return myWriter; + } + + + + class I18nWriter extends PrintWriter{ + public I18nWriter(OutputStream out) { + super(out,true); + } + } + + /** + * 重写 字节输出流 + * 当输出类型为 字符时,缓存输出内容 + * @author dell + * + */ + class I18nOutputStream extends ServletOutputStream{ + private ServletOutputStream out; + public I18nOutputStream(ServletOutputStream out) { + this.out = out; + } + + @Override + public void write(int b) throws IOException { + if(trans){//字符内容 + bos.write(b); + }else{ + out.write(b); + } + } + } + +} + + diff --git a/gloam/src/com/nis/gloam/filter/MyI18n.java b/gloam/src/com/nis/gloam/filter/MyI18n.java new file mode 100644 index 0000000..f6b27cc --- /dev/null +++ b/gloam/src/com/nis/gloam/filter/MyI18n.java @@ -0,0 +1,65 @@ +package com.nis.gloam.filter; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang.StringUtils; + +public class MyI18n { + + public static Locale defaultLang;// 默认 语言 + public static final Map langDict = new HashMap(); + public static final List TRANS_CONTENT_TYPE = new ArrayList();// 需要转换的 + public static Pattern i18nRegex; + + + + public static String trans(String content, Locale locale) { + Matcher matcher = MyI18n.i18nRegex.matcher(content); + Properties dict = MyI18n.langDict.get(locale); + StringBuffer sb = new StringBuffer(); + while(matcher.find()){ + String group = matcher.group(1); + String replacement = null; + if(dict != null){ + replacement = dict.getProperty(group); + } +// System.out.println(" replace : "+ group +" --> " + replacement); + matcher.appendReplacement(sb, replacement== null ? group : replacement); + } + matcher.appendTail(sb); + return sb.toString(); + } + + public static Properties loadProp(File file,String charset) throws FileNotFoundException, IOException{ + Properties pro = new Properties(); + InputStreamReader isr = null; + try { + isr = new InputStreamReader(new FileInputStream(file),StringUtils.isBlank(charset)?"UTF-8":charset); + pro.load(isr); + } finally { + if(isr != null){ + try { + isr.close(); + } catch (Exception e) { + } + } + } + return pro; + + } + +} diff --git a/gloam/src/com/nis/gloam/interceptor/CookieInViewInterceptor.java b/gloam/src/com/nis/gloam/interceptor/CookieInViewInterceptor.java new file mode 100644 index 0000000..fa3e35b --- /dev/null +++ b/gloam/src/com/nis/gloam/interceptor/CookieInViewInterceptor.java @@ -0,0 +1,16 @@ +package com.nis.gloam.interceptor; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import com.jfinal.core.Controller; + +public class CookieInViewInterceptor implements Interceptor{ + + @Override + public void intercept(Invocation inv) { + Controller c= inv.getController(); + c.setAttr("_locale", c.getCookie("_locale", "zh_CN")); + inv.invoke(); + } + +} diff --git a/gloam/src/com/nis/gloam/interceptor/LoginInterceptor.java b/gloam/src/com/nis/gloam/interceptor/LoginInterceptor.java new file mode 100644 index 0000000..2eae1dd --- /dev/null +++ b/gloam/src/com/nis/gloam/interceptor/LoginInterceptor.java @@ -0,0 +1,47 @@ +package com.nis.gloam.interceptor; + +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import com.nis.gloam.entity.SysUser; +import com.nis.gloam.util.SingleUserSignUtil; +/** + * 全局拦截器 防止未登录用户访问受限资源 + * @author Administrator + * + */ +public class LoginInterceptor implements Interceptor{ + + @Override + public void intercept(Invocation inv) { + HttpSession session = inv.getController().getSessionAttr("loginFlag"); + HttpSession nowSession = inv.getController().getSession(); + Map map = SingleUserSignUtil.getMap(); + HttpSession httpSession = map.get("admin"); + if(httpSession==null){ + inv.getController().redirect("/"); + }else if(session==null){ + try { + httpSession.getAttribute("timeput"); + nowSession.setAttribute("signError", "signError"); + } catch (Exception e) { + nowSession.setAttribute("signError", "loginTimeOut"); + } + inv.getController().redirect("/"); + }else if(session!=null){ + if(!nowSession.getId().equals(httpSession.getId())){ + nowSession.setAttribute("signError", "signError"); + session.removeAttribute("loginFlag"); + inv.getController().redirect("/"); + }else{ + inv.invoke(); + } + } + } +} + +/* +*/ \ No newline at end of file diff --git a/gloam/src/com/nis/gloam/interceptor/MethodTimeoutInterceptor.java b/gloam/src/com/nis/gloam/interceptor/MethodTimeoutInterceptor.java new file mode 100644 index 0000000..1d94c18 --- /dev/null +++ b/gloam/src/com/nis/gloam/interceptor/MethodTimeoutInterceptor.java @@ -0,0 +1,41 @@ +package com.nis.gloam.interceptor; + +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import org.apache.log4j.Logger; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; + +public class MethodTimeoutInterceptor implements Interceptor{ + private Logger logger=Logger.getLogger(this.getClass()); + + @Override + public void intercept(Invocation inv) { + final ExecutorService exec=Executors.newSingleThreadExecutor(); + Future future =null; + Callable call=new Callable(){ + @Override + public String call() throws Exception { + inv.invoke(); + return null; + } + }; + try { + future =exec.submit(call); + future.get(1000*30, TimeUnit.MILLISECONDS); + }catch (TimeoutException e) { + logger.info("method name : "+inv.getMethodName()+" response timeout "); + boolean cancelResult = future.cancel(true); + logger.info("method name kill result is "+cancelResult); + }catch(Exception e){ + e.printStackTrace(); + } + } + +} diff --git a/gloam/src/com/nis/gloam/interceptor/OperateLogInterceptor.java b/gloam/src/com/nis/gloam/interceptor/OperateLogInterceptor.java new file mode 100644 index 0000000..227a5e4 --- /dev/null +++ b/gloam/src/com/nis/gloam/interceptor/OperateLogInterceptor.java @@ -0,0 +1,39 @@ +package com.nis.gloam.interceptor; + +import java.util.List; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import com.nis.gloam.entity.SysMenu; +import com.nis.gloam.util.LogUtil; +/** + * action层全局拦截器 记录用户操作日志 + * @author Administrator + * + */ +public class OperateLogInterceptor implements Interceptor{ + + @Override + public void intercept(Invocation inv) { + try { + inv.invoke(); + List find = SysMenu.dao.find("select * from sys_menu where href=? and target=1",inv.getActionKey()); + if(find!=null&&find.size()>0){ + LogUtil.queryRequestInfo(inv,null); + } + //如果是用户退出操作删除session记录 + if(inv.getActionKey().equals("/exit")){ + inv.getController().removeSessionAttr("loginUser"); + } + } catch (Exception e) { + e.printStackTrace(); + List find = SysMenu.dao.find("select * from sys_menu where href=? and target=1",inv.getActionKey()); + if(find!=null&&find.size()>0){ + LogUtil.queryRequestInfo(inv,e); + } + inv.getController().setSessionAttr("errorMessage", "handle.error"); + inv.getController().redirect(inv.getControllerKey()); + } + } + +} diff --git a/gloam/src/com/nis/gloam/main/StartUp.java b/gloam/src/com/nis/gloam/main/StartUp.java new file mode 100644 index 0000000..6c2b1fc --- /dev/null +++ b/gloam/src/com/nis/gloam/main/StartUp.java @@ -0,0 +1,39 @@ +package com.nis.gloam.main; + +import com.jfinal.core.JFinal; +import com.jfinal.kit.PathKit; +import com.jfinal.kit.PropKit; +import com.jfinal.kit.StrKit; +/** + * 程序启动 + * @author Administrator + * + */ +public class StartUp { + public static void main(String[] args) { + String baseBath = String.valueOf(StartUp.class.getProtectionDomain().getCodeSource().getLocation()); + String classPath, webRootPath, jarPath,projectPath; + int port=80; + if (StrKit.notBlank(baseBath) && baseBath.contains("file:/")) { + // 获取运行操作系统的运行方式 window和linux的细微区别 + boolean windows = System.getProperties().getProperty("os.name").contains("Windows"); + jarPath = (windows ? "" : "/") + baseBath.substring("file:/".length()); + classPath = (windows ? "" : "/") + jarPath.substring(0, jarPath.lastIndexOf("/")); + webRootPath = classPath; + // 这两步是核心指定 webapp目录和classpath目录 + PathKit.setWebRootPath(webRootPath); + PathKit.setRootClassPath(classPath); + //读取配置文件获取webRootPath路径 + PropKit.use("config.properties"); + webRootPath=PropKit.get("webRootPath"); + String portStr = PropKit.get("port"); + if(portStr!=null&&!portStr.isEmpty()){ + port=Integer.parseInt(portStr); + }; + projectPath=PropKit.get("projectPath"); + //启动项目 进行测试 + JFinal.start(webRootPath, port, projectPath,5); + } + + } +} diff --git a/gloam/src/com/nis/gloam/service/AuditLogService.java b/gloam/src/com/nis/gloam/service/AuditLogService.java new file mode 100644 index 0000000..edd3519 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/AuditLogService.java @@ -0,0 +1,12 @@ +package com.nis.gloam.service; + +import com.jfinal.plugin.activerecord.Page; +import com.nis.gloam.entity.SysLog; + +public class AuditLogService { + public static final AuditLogService auditLogService=new AuditLogService(); + + public Page paginate(int pageNumber, int pageSize) { + return SysLog.dao.paginate(pageNumber, pageSize, "select *", "from sys_log order by create_time desc"); + } +} diff --git a/gloam/src/com/nis/gloam/service/DetectionInfoService.java b/gloam/src/com/nis/gloam/service/DetectionInfoService.java new file mode 100644 index 0000000..4c6b7cd --- /dev/null +++ b/gloam/src/com/nis/gloam/service/DetectionInfoService.java @@ -0,0 +1,209 @@ +package com.nis.gloam.service; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import org.apache.log4j.Logger; + +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; +import com.nis.gloam.entity.DetectInfoCpu; +import com.nis.gloam.entity.DetectInfoDisk; +import com.nis.gloam.entity.DetectInfoMemory; +import com.nis.gloam.entity.DetectInfoNetdata; +import com.nis.gloam.entity.DetectionInfo; +import com.nis.gloam.entity.DetectionInfoNew; +import com.nis.gloam.util.DateUtil; +import com.nis.gloam.util.StringUtil; + +public class DetectionInfoService { + + private static Logger logger = Logger.getLogger(DetectionInfoService.class); + + public void saveDetectionInfo(final Object[] baseInfo, final List detailInfo, + final String type, final String ip) throws Exception { + Db.tx(Connection.TRANSACTION_SERIALIZABLE, new IAtom(){ + @Override + public boolean run() throws SQLException { + //detection_info + String id = StringUtil.computeId(((Long)baseInfo[6]).toString(), baseInfo[0].toString(), baseInfo[1].toString()); + + Timestamp nowTs = new Timestamp(new Date().getTime()); + + DetectionInfo detectionInfo = new DetectionInfo() + .set("ID", Long.parseLong(id)) + .set("NODE_IP", ip) + .set("SEQ_ID", baseInfo[0]) + .set("DETECTION_SET_INFO_ID", baseInfo[1]) + .set("CHECK_WAY", baseInfo[2]) + .set("START_TIME", DateUtil.formatTime((Long)baseInfo[4], "yyyy-MM-dd HH:mm:ss")) + .set("DELAY_TIME", baseInfo[5]) + .set("DATA_CHECK_TIME", DateUtil.formatTime((Long)baseInfo[6], "yyyy-MM-dd HH:mm:ss")) + .set("DATA_CHECK_TIME_DIGITAL", (Long)baseInfo[6]) + .set("CURRENT_TIMES", baseInfo[7]) + .set("NEXT_CHECK_TIME", DateUtil.formatTime((Long)baseInfo[8], "yyyy-MM-dd HH:mm:ss")) + .set("DETECTIONED_STATE", baseInfo[9]) + .set("DETECTION_STATE_INFO", baseInfo[10]) + .set("PERFORMACE_DATA", baseInfo[11]) + .set("DATA_ARRIVE_TIME", DateUtil.formatTime((Long)baseInfo[12], "yyyy-MM-dd HH:mm:ss")) + .set("DATA_ARRIVE_TIME_DIGITAL", (Long)baseInfo[12]) + .set("INSERT_DB_TIME", nowTs); + + boolean saveDetectionInfo = detectionInfo.save(); + + // 更新new表 + + boolean saveDetectionInfoNew = false; + if (saveDetectionInfo) { + String delSql = "DELETE from detection_info_new WHERE seq_id=? AND detection_set_info_id=?"; + Db.update(delSql, baseInfo[0], baseInfo[1]); + + DetectionInfoNew detectionInfoNew = new DetectionInfoNew() + .set("ID", Long.parseLong(id)) + .set("NODE_IP", detectionInfo.get("NODE_IP")) + .set("SEQ_ID", detectionInfo.get("SEQ_ID")) + .set("DETECTION_SET_INFO_ID", detectionInfo.get("DETECTION_SET_INFO_ID")) + .set("CHECK_WAY", detectionInfo.get("CHECK_WAY")) + .set("START_TIME", detectionInfo.get("START_TIME")) + .set("DELAY_TIME", detectionInfo.get("DELAY_TIME")) + .set("DATA_CHECK_TIME", detectionInfo.get("DATA_CHECK_TIME")) + .set("DATA_CHECK_TIME_DIGITAL", detectionInfo.get("DATA_CHECK_TIME_DIGITAL")) + .set("CURRENT_TIMES", detectionInfo.get("CURRENT_TIMES")) + .set("NEXT_CHECK_TIME", detectionInfo.get("NEXT_CHECK_TIME")) + .set("DETECTIONED_STATE", detectionInfo.get("DETECTIONED_STATE")) + .set("DETECTION_STATE_INFO", detectionInfo.get("DETECTION_STATE_INFO")) + .set("PERFORMACE_DATA", detectionInfo.get("PERFORMACE_DATA")) + .set("DATA_ARRIVE_TIME", detectionInfo.get("DATA_ARRIVE_TIME")) + .set("DATA_ARRIVE_TIME_DIGITAL", detectionInfo.get("DATA_ARRIVE_TIME_DIGITAL")) + .set("VALID", 1) + .set("DETECTION_INFO_ID", Long.parseLong(id)); + + saveDetectionInfoNew = detectionInfoNew.save(); + } + + //detail + if (saveDetectionInfoNew) { + boolean saveDetail = true; + if ("cpu".equals(type)) { + for (int i = 0; i < detailInfo.size(); i++) { + String[] detail = detailInfo.get(i); + DetectInfoCpu detectInfoCpu = new DetectInfoCpu() + .set("CPU_NAME", detail[3]) + .set("USER_USED_CPU_PERC", detail[4]) + .set("SYS_USED_CPU_PERC", detail[5]) + .set("WAIT_CPU_PERC", detail[6]) + .set("NICE_PERC", detail[7]) + .set("FREE_CPU_PERC", detail[8]) + .set("TOTAL_USED_PERC", detail[9]) + .set("CPU_MHZ", detail[10]) + .set("DETECTION_INFO_ID", id) + .set("DETECTIONED_STATE", 1) + .set("SEQ_ID", baseInfo[0]) + .set("DATA_CHECK_TIME", detectionInfo.get("DATA_CHECK_TIME")) + .set("DATA_ARRIVE_TIME", detectionInfo.get("DATA_ARRIVE_TIME")) + .set("DATA_CHECK_TIME_DIGITAL", detectionInfo.get("DATA_CHECK_TIME_DIGITAL")) + .set("DATA_ARRIVE_TIME_DIGITAL", detectionInfo.get("DATA_ARRIVE_TIME_DIGITAL")) + .set("DETECTION_SET_INFO_ID", baseInfo[1]); + boolean d = detectInfoCpu.save(); + if (!d) { + saveDetail = false; + break; + } + } + } else if ("mem".equals(type)) { + for (int i = 0; i < detailInfo.size(); i++) { + String[] detail = detailInfo.get(i); + DetectInfoMemory detailInfoMem = new DetectInfoMemory() + .set("SIZE_STOREDINPAGING_FILES", detail[3]) + .set("FREE_SPACE_INPAGING_FILES", detail[4]) + .set("TOTAL_MEMORY_SIZE", detail[5]) + .set("USED_MEMORY_SIZE", detail[6]) + .set("FREE_MEMORY_SIZE", detail[7]) + .set("USED_MEMORY_PERC", detail[8]) + .set("DETECTION_INFO_ID", id) + .set("DETECTIONED_STATE", 1) + .set("SEQ_ID", baseInfo[0]) + .set("DATA_CHECK_TIME", detectionInfo.get("DATA_CHECK_TIME")) + .set("DATA_ARRIVE_TIME", detectionInfo.get("DATA_ARRIVE_TIME")) + .set("DATA_CHECK_TIME_DIGITAL", detectionInfo.get("DATA_CHECK_TIME_DIGITAL")) + .set("DATA_ARRIVE_TIME_DIGITAL", detectionInfo.get("DATA_ARRIVE_TIME_DIGITAL")) + .set("DETECTION_SET_INFO_ID", baseInfo[1]); + boolean d = detailInfoMem.save(); + if (!d) { + saveDetail = false; + break; + } + } + } else if ("disk".equals(type)) { + for (int i = 0; i < detailInfo.size(); i++) { + String[] detail = detailInfo.get(i); + DetectInfoDisk detectInfoDisk = new DetectInfoDisk() + .set("DISK_RANGE", detail[3]) + .set("TOTAL_DISK_SIZE", detail[4]) + .set("FREE_DISK_SIZE", detail[5]) + .set("USED_DISK_PERC", detail[6]) + .set("DISK_ISWRITE", detail[7]) + .set("DETECTION_INFO_ID", id) + .set("DETECTIONED_STATE", 1) + .set("SEQ_ID", baseInfo[0]) + .set("DATA_CHECK_TIME", detectionInfo.get("DATA_CHECK_TIME")) + .set("DATA_ARRIVE_TIME", detectionInfo.get("DATA_ARRIVE_TIME")) + .set("DATA_CHECK_TIME_DIGITAL", detectionInfo.get("DATA_CHECK_TIME_DIGITAL")) + .set("DATA_ARRIVE_TIME_DIGITAL", detectionInfo.get("DATA_ARRIVE_TIME_DIGITAL")) + .set("DETECTION_SET_INFO_ID", baseInfo[1]); + boolean d = detectInfoDisk.save(); + if (!d) { + saveDetail = false; + break; + } + } + } else if ("net".equals(type)) { + for (int i = 0; i < detailInfo.size(); i++) { + String[] detail = detailInfo.get(i); + DetectInfoNetdata detectInfoNetdata = new DetectInfoNetdata() + .set("NAME", detail[3]) + .set("RX_PACKETS", detail[4]) + .set("TX_PACKETS", detail[5]) + .set("RX_BYTES", detail[6]) + .set("TX_BYTES", detail[7]) + .set("RX_ERRORS", detail[8]) + .set("TX_ERRORS", detail[9]) + .set("RX_DROPPED", detail[10]) + .set("TX_DROPPED", detail[11]) + .set("SPEED", detail[12]) + .set("RX_BPS", detail[13]) + .set("TX_BPS", detail[14]) + .set("RX_PPS", detail[15]) + .set("TX_PPS", detail[16]) + .set("RX_ERRORS_PERC", detail[17]) + .set("TX_ERRORS_PERC", detail[18]) + .set("RX_DROP_PERC", detail[19]) + .set("TX_DROP_PERC", detail[20]) + .set("DETECTION_INFO_ID", id) + .set("DETECTIONED_STATE", 1) + .set("SEQ_ID", baseInfo[0]) + .set("DATA_CHECK_TIME", detectionInfo.get("DATA_CHECK_TIME")) + .set("DATA_ARRIVE_TIME", detectionInfo.get("DATA_ARRIVE_TIME")) + .set("DATA_CHECK_TIME_DIGITAL", detectionInfo.get("DATA_CHECK_TIME_DIGITAL")) + .set("DATA_ARRIVE_TIME_DIGITAL", detectionInfo.get("DATA_ARRIVE_TIME_DIGITAL")) + .set("DETECTION_SET_INFO_ID", baseInfo[1]); + boolean d = detectInfoNetdata.save(); + if (!d) { + saveDetail = false; + break; + } + } + } + if (saveDetail) { + logger.info("成功存入" + type + "数据,ip:" + ip + ",detection_info_id:" + id + ",arrive_time:" + baseInfo[12]); + } + return saveDetail; + } + return false; + } + }); + } +} diff --git a/gloam/src/com/nis/gloam/service/DeviceInfoNewService.java b/gloam/src/com/nis/gloam/service/DeviceInfoNewService.java new file mode 100644 index 0000000..732ab43 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/DeviceInfoNewService.java @@ -0,0 +1,211 @@ +package com.nis.gloam.service; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang.StringUtils; + +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.activerecord.SqlPara; +import com.nis.gloam.entity.DetectionInfo; +import com.nis.gloam.entity.DetectionInfoNew; +import com.nis.gloam.entity.Metadata; + +public class DeviceInfoNewService { + public static final DeviceInfoNewService deviceInfoNewService=new DeviceInfoNewService(); + public List paginate() { + String sql="SELECT datetime(CURRENT_TIMESTAMP, 'localtime') as now, t.name as monitorCard,c.CHECK_TYPE_NAME1 as monitorType,s.PROCESS_IDEN_NAME as monitorSetting, n.DETECTIONED_STATE as monitorStatus," + + "n.DATA_CHECK_TIME as checkTime ,n.DETECTION_STATE_INFO as monitorInfo, n.SEQ_ID as seqId, n.DETECTION_SET_INFO_ID as detectionSetInfoId, c.ID as checkTypeId, n.DETECTION_INFO_ID as detectionInfoId " + + "FROM detection_info_new n " + +" LEFT JOIN node_table t ON t.id = n.SEQ_ID LEFT JOIN detection_set_info s ON n.DETECTION_SET_INFO_ID = s.ID " + + "LEFT JOIN check_type_info c ON c.id = s.CHECK_TYPE_ID where t.name is not null ORDER BY t.name ,c.CHECK_TYPE_NAME1"; + return DetectionInfoNew.dao.find(sql); + } + + public List getNodeNum(){ + String sql="SELECT t.name AS monitorCard,count(t.name) as num FROM detection_info_new n " + + "LEFT JOIN node_table t ON t.id = n.SEQ_ID LEFT JOIN detection_set_info s ON n.DETECTION_INFO_ID = s.ID " + +" LEFT JOIN check_type_info c ON c.id = s.CHECK_TYPE_ID WHERE t.name IS NOT NULL group by t.name ORDER BY t.name, c.CHECK_TYPE_NAME1"; + return DetectionInfoNew.dao.find(sql); + } + + public List getMonitorTypeBaseInfo(String seqId, String detectionSetInfoId) { + String sql = "select dsi.PROCESS_IDEN_NAME as monitorSetting, nt.IP as ip, (CASE t.DETECTIONED_STATE WHEN 1 THEN 'normal' WHEN 0 THEN 'abnormal' WHEN -1 THEN 'error' ELSE '' END ) monitorStatus, t.DATA_ARRIVE_TIME as arriveTime, t.DETECTION_INFO_ID as detectionInfoId, " + + "t.DETECTION_STATE_INFO as detectionStateInfo, t.PERFORMACE_DATA as performaceData, t.DATA_CHECK_TIME as checkTime, t.NEXT_CHECK_TIME as nextCheckTime " + + "from DETECTION_INFO_NEW t " + + "left join DETECTION_SET_INFO dsi on t.DETECTION_SET_INFO_ID=dsi.ID " + + "left join CHECK_TYPE_INFO cti on cti.ID=dsi.CHECK_TYPE_ID " + + "left join NODE_TABLE nt on nt.id=t.SEQ_ID " + + "where t.DETECTION_SET_INFO_ID=? and t.SEQ_ID=? "; + return DetectionInfoNew.dao.find(sql, detectionSetInfoId, seqId); + } + + public List getMonitorTypeDetailInfo(Long detectionInfoId, String checkTypeId) { + List result = new ArrayList(); + + String showColunmSql = "select m.TABLE_NAME as tableName, m.FILED_NAME as fieldName, m.FILED_COMMENTS as fieldComments from METADATA m where m.check_type_id=? and m.state=0"; + List metadatas = Metadata.dao.find(showColunmSql, checkTypeId); + + result.add(metadatas); + + String detailInfoSql = "select "; + if (metadatas != null && metadatas.size() > 0) { + String tableName = metadatas.get(0).get("tableName"); + for (Metadata metadata : metadatas) { + detailInfoSql += metadata.get("fieldName") + ","; + } + detailInfoSql += " (CASE DETECTIONED_STATE WHEN 1 THEN 'normal' WHEN 0 THEN 'abnormal' WHEN -1 THEN 'error' ELSE '' END ) detectioned_state"; + detailInfoSql += " FROM " + tableName + " WHERE detection_info_id=" + detectionInfoId; + detailInfoSql += " ORDER BY detection_info_id DESC"; + List details = Db.find(detailInfoSql); + result.add(details); + } + + return result; + } + + public Integer totalRow(String seqId, String detectionSetInfoId, String startTime, String endTime) { + SqlPara sqlPara = new SqlPara(); + sqlPara.addPara(detectionSetInfoId); + sqlPara.addPara(seqId); + + String sql = "SELECT nt.ip,cti.CHECK_TYPE_NAME1 as monitorType,dsi.PROCESS_IDEN_NAME as monitorSetting, di.DETECTIONED_STATE as monitorStatus, di.DATA_CHECK_TIME as checkTime, di.DETECTION_STATE_INFO as detectionStateInfo " + + "FROM detection_info di " + + "LEFT JOIN node_table nt ON di.SEQ_ID=nt.id " + + "LEFT JOIN detection_set_info dsi ON dsi.ID=di.DETECTION_SET_INFO_ID " + + "LEFT JOIN check_type_info cti ON dsi.CHECK_TYPE_ID=cti.ID " + + "WHERE di.DETECTION_SET_INFO_ID=? and di.SEQ_ID=? "; + if (StringUtils.isNotBlank(startTime)) { + sql += "AND di.DATA_CHECK_TIME>=? "; + sqlPara.addPara(startTime); + } + if (StringUtils.isNotBlank(endTime)) { + sql += "AND di.DATA_CHECK_TIME find = DetectionInfo.dao.find(sqlPara); + return find.size(); + } + + public Page paginate(int pageNumber, int pageSize, String seqId, String detectionSetInfoId, String startTime, String endTime) { + SqlPara sqlPara = new SqlPara(); + sqlPara.addPara(detectionSetInfoId); + sqlPara.addPara(seqId); + String sql = "SELECT nt.ip,cti.CHECK_TYPE_NAME1 as monitorType,dsi.PROCESS_IDEN_NAME as monitorSetting, di.DETECTIONED_STATE as monitorStatus, di.DATA_CHECK_TIME as checkTime, di.DETECTION_STATE_INFO as detectionStateInfo " + + "FROM detection_info di " + + "LEFT JOIN node_table nt ON di.SEQ_ID=nt.id " + + "LEFT JOIN detection_set_info dsi ON dsi.ID=di.DETECTION_SET_INFO_ID " + + "LEFT JOIN check_type_info cti ON dsi.CHECK_TYPE_ID=cti.ID " + + "WHERE di.DETECTION_SET_INFO_ID=? and di.SEQ_ID=? "; + if (StringUtils.isNotBlank(startTime)) { + sql += "AND di.DATA_CHECK_TIME>=? "; + sqlPara.addPara(startTime); + } + if (StringUtils.isNotBlank(endTime)) { + sql += "AND di.DATA_CHECK_TIME paginate = DetectionInfo.dao.paginate(pageNumber, pageSize, sqlPara); + return paginate; + } + + public List getMetadatasByCheckTypeId(String checkTypeId) { + String showColunmSql = "select m.id, m.TABLE_NAME as tableName, m.FILED_NAME as fieldName, m.state, m.FILED_COMMENTS as fieldComments, m.SORT_SIGN as sortSign, m.chart_state as chartState from METADATA m where m.check_type_id=? and m.state=0 ORDER BY m.show_num"; + return Metadata.dao.find(showColunmSql, checkTypeId); + } + + public List getSingleNames(String detectionSetInfoId, String seqId, List metas) { + if (metas != null && metas.size() > 0) { + String tableName = ""; + String nameColumnName = ""; //name的字段名,cpu是cpu_name,disk是disk_range,mem无,net是name + for (Metadata m : metas) { + if (m.getStr("state").equals("0") && m.getStr("sortSign").equals("0")) { + tableName = m.getStr("tableName"); + nameColumnName = m.getStr("fieldName"); + break; + } + } + if (StringUtils.isNotBlank(nameColumnName)) { + String sql = "select distinct(" + nameColumnName + ") from " + tableName + " where detection_set_info_id=? and seq_id=?"; + List find = Db.find(sql, detectionSetInfoId, seqId); + + if (find != null && find.size() > 0) { + List names = new ArrayList<>(); + for (Record r : find) { + names.add(r.getStr(nameColumnName)); + } + return names; + } + } + } + return new ArrayList(); + } + + public String getIpBySeqId(String seqId) { + String sql = "select ip from node_table where id=?"; + List find = Db.find(sql, seqId); + if (find != null && find.size() > 0) { + return find.get(0).getStr("ip"); + } + return null; + } + + public List> getChartData(List metadatas, String tableName, String seqId, String detectionSetInfoId, String startTime, String endTime) { + /* 查所有detectionInfoId*/ + SqlPara sqlPara2 = new SqlPara(); + String diiSql = "select ID,NODE_IP from detection_info where DETECTION_SET_INFO_ID=? and SEQ_ID=? "; + sqlPara2.addPara(detectionSetInfoId); + sqlPara2.addPara(seqId); + if (StringUtils.isNotBlank(startTime)) { + diiSql += "and DATA_CHECK_TIME>=? "; + sqlPara2.addPara(startTime); + } + if (StringUtils.isNotBlank(endTime)) { + diiSql += "and DATA_CHECK_TIME detections = DetectionInfo.dao.find(sqlPara2); + + /* 根据detectionInfoId查数据*/ + List> details = new ArrayList>(); + if (metadatas != null && metadatas.size() > 0) { + if (detections != null && detections.size() > 0) { + String ids = "("; + for (DetectionInfo detection : detections) { + ids += detection.get("ID") + ","; + } + ids += "0)"; + String sql = "select DATA_CHECK_TIME_DIGITAL as dataCheckTimeDigital, detection_info_id, "; + for (Metadata metadata : metadatas) { + if ("id".equals(metadata.get("fieldName"))) { + continue; + } + sql += metadata.get("fieldName") + ","; + } + sql += " (CASE DETECTIONED_STATE WHEN 1 THEN 'normal' WHEN 0 THEN 'abnormal' WHEN -1 THEN 'error' ELSE '' END ) detectioned_state, DATA_CHECK_TIME as dataCheckTime "; + sql += " FROM " + tableName + " WHERE detection_info_id in " + ids; + List detail = DetectionInfo.dao.find(sql); + + for (DetectionInfo detection : detections) { + List d = new ArrayList<>(); + for (DetectionInfo de : detail) { + if (de.get("DETECTION_INFO_ID").equals(detection.get("ID"))) { + d.add(de); + } + } + details.add(d); + } + } + } + return details; + } +} diff --git a/gloam/src/com/nis/gloam/service/DeviceInfoService.java b/gloam/src/com/nis/gloam/service/DeviceInfoService.java new file mode 100644 index 0000000..517db04 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/DeviceInfoService.java @@ -0,0 +1,18 @@ +package com.nis.gloam.service; + +import java.util.Date; +import java.util.List; + +import com.nis.gloam.entity.DeviceInfo; +import com.nis.gloam.util.DateUtil; + +public class DeviceInfoService { + public static final DeviceInfoService deviceInfoService=new DeviceInfoService(); + + + public List queryDeviceInfo(Integer vendorId){ + List deviceInfos = DeviceInfo.dao.find("select * from device_info where vendor_id=?",vendorId); + return deviceInfos; + } + +} diff --git a/gloam/src/com/nis/gloam/service/NodeTableService.java b/gloam/src/com/nis/gloam/service/NodeTableService.java new file mode 100644 index 0000000..b687ef4 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/NodeTableService.java @@ -0,0 +1,68 @@ +package com.nis.gloam.service; + +import java.util.Deque; +import org.apache.log4j.Logger; +import java.util.List; +import java.util.concurrent.LinkedBlockingDeque; + +import com.nis.gloam.entity.NodeTable; + +public class NodeTableService { + private Logger logger = Logger.getLogger(this.getClass()); + public static final NodeTableService nodeTableService=new NodeTableService(); + /** + * 查询所有的node + * @return + */ + public List getAllNode(){ + + return NodeTable.dao.find("select * from node_table"); + } + + /** + * 返回一个队列 + * @return + */ + public Deque getAllNodes(){ + Deque deque=new LinkedBlockingDeque(); + List nodes = NodeTable.dao.find("select * from node_table order by sort asc"); + deque.addAll(nodes); + return deque; + } + + /** + * 根据ip查询数据信息 + */ + public NodeTable getNodeTableByIp(String ip){ + List nodeTables = NodeTable.dao.find("select * from node_table where ip=?", ip); + if(nodeTables!=null&&nodeTables.size()>0){ + return nodeTables.get(0); + }else{ + return new NodeTable(); + } + } + + /** + * 根据ip查询数据信息 + */ + public NodeTable getNodeTableById(String id){ + List nodeTables = NodeTable.dao.find("select * from node_table where id=?", id); + if(nodeTables!=null&&nodeTables.size()>0){ + return nodeTables.get(0); + }else{ + return new NodeTable(); + } + } + + /** + * 修改数据库的ip信息 + * @param nodeTable + */ + public void modifyNodeTable(NodeTable nodeTable){ + NodeTable data = getNodeTableById(nodeTable.get("id").toString()); + logger.info("modifyConfigService data======="+data.toJson()); + data.set("ip", nodeTable.get("ip")); + logger.info("modifyConfigService data======="+data.toJson()); + data.update(); + } +} diff --git a/gloam/src/com/nis/gloam/service/ProcessInfoService.java b/gloam/src/com/nis/gloam/service/ProcessInfoService.java new file mode 100644 index 0000000..c1035c5 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/ProcessInfoService.java @@ -0,0 +1,254 @@ +package com.nis.gloam.service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.alibaba.druid.util.StringUtils; +import com.jcraft.jsch.JSchException; +import com.jfinal.kit.Prop; +import com.jfinal.kit.PropKit; +import com.jfinal.kit.StrKit; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.ProcessInfo; +import com.nis.gloam.entity.SystemService; +import com.nis.gloam.util.DateUtil; +import com.nis.gloam.util.LinuxUtil; + +public class ProcessInfoService { + private static Logger logger=Logger.getLogger(ProcessInfoService.class); + + public static ProcessInfoService processInfoService=new ProcessInfoService(); + /** + * 通过node对象查询该node下的所有进程 + * @param node + * @return + */ + public List getProcessList(NodeTable node) { + SystemServiceService sss = new SystemServiceService(); + List procList =null; + if(node!=null){ + List serviceList = sss.findSystemServiceByNode(node); + procList = findProcessByServiceList(serviceList); + } + return procList; + } + + /** + * 远程执行脚本,检查该node下 进程的状态 + * @param node + * @param procList + * @return + */ + public List> checkProcessStatus(NodeTable node, List procList) { + String ip = node.getStr("ip"); + String user = node.getStr("user"); + String pwd = node.getStr("pwd"); + List> results=new ArrayList<>(); + + //获取脚本路径 + String scriptPath = PropKit.get("process_info_scriptPath"); + logger.debug("scriptPath:"+scriptPath); + if(procList!=null && procList.size()>0 && !StringUtils.isEmpty(scriptPath)){ + + for (ProcessInfo processInfo : procList) { + Map proc=new HashMap<>(); + String pidFile = processInfo.getStr("PID_FILE"); + //进程搜索关键字,和pid_file 至少有一个,都有的情况下以pid_file为准 + String result=null; + if(!StringUtils.isEmpty(pidFile)){ + try { + String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+0+" "+pidFile; + //result = LinuxUtil.execLinuxExpect(cmd); + result = getResult(ip, user, pwd, pidFile); + } catch (Exception e) { + logger.error("执行脚本失败!"+e); + } + }else{ + String keyword=processInfo.getStr("keyword"); + try { + String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+1+" "+keyword; + result = LinuxUtil.execLinuxExpect(cmd); + } catch (Exception e) { + logger.error("执行脚本失败!"+e); + } + } + String []arr=resultSplit(result);//[status,startTime,pid,cpu,memery] + if(arr!=null){ + //status 0:进程不存在,1:进程存在,-1:多个进程,无法判断 + if(Integer.valueOf(arr[0])==1){ + proc.put("pid", arr[2]); + proc.put("status", 1); + proc.put("startTime", arr[1]); + proc.put("cpu", arr[3]); + proc.put("memery", arr[4]); + }else if(Integer.valueOf(arr[0])>1){ + proc.put("status", -1); + proc.put("startTime", null); + proc.put("cpu", null); + proc.put("memery", null); + }else{ + proc.put("status", 0); + proc.put("startTime", null); + proc.put("cpu", null); + proc.put("memery", null); + } + }else{ + proc.put("status", null); + proc.put("startTime", null); + proc.put("cpu", null); + proc.put("memery", null); + } + proc.put("procName", processInfo.getStr("name")); + results.add(proc); + } + + } + return results; + } + + /** + * 分割以 %#% 作为分隔符的字符串 用于分割脚本返回的数据 + * @param str + * @return + */ + public String[] resultSplit(String str){ + if(!StringUtils.isEmpty(str)){ + //str=str.substring(str.indexOf("%#%")+3,str.lastIndexOf("%#%")); + String[] split = str.split(","); + return split; + } + return null; + } + + /** + * 查询单个服务下的所有进程 + * @param service + * @return + */ + public List findProcessBySystemService( SystemService service) { + Integer serviceId=service.getInt("id"); + List procList = ProcessInfo.dao.find("select * from process_info where service_id= ?",serviceId); + return procList; + } + + + /** + * 通过node_table id 查询该节点下所有服务对应的进程 + * @param nodeId + * @return + */ + public List findProcessByNodeId(String nodeId) { + SystemServiceService sss = new SystemServiceService(); + NodeTable node = new NodeTable(); + if(StrKit.notBlank(nodeId)){ + node.set("id",Integer.parseInt(nodeId)); + } + + List serviceList = sss.findSystemServiceByNode(node); + return findProcessByServiceList(serviceList); + } + + + /** + * 通过服务列表,获取该列表下所有的进程 + * @param serviceList + * @return + */ + public List findProcessByServiceList(List serviceList) { + StringBuffer sb=new StringBuffer(); + if(serviceList!=null&&serviceList.size()>0){ + sb.append("("); + for (int i=0 ;i procList = ProcessInfo.dao.find("select * from process_info where service_id in "+sb.toString()); + return procList; + } + + return null; + } + + public ProcessInfo findProcessById(String procId) { + ProcessInfo processInfo = ProcessInfo.dao.findById(procId); + return processInfo; + } + + public static String getResult(String ip, String user, String pwd, String pidFile) { + String command = ""; + String result = ""; + try { + /*command = "cat " + pidFile; + String pid = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString(); + if (StrKit.notBlank(pid)) { + command = "ps -ef |grep " + pid + " |grep -v -e grep -e tail -e expect |wc -l"; + String status = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString(); + if ("1".equals(status)) { + command = "echo " + status + " && echo ',' && ps -ef |grep " + pid + " |grep -v -e grep -e tail -e expect | awk '{print $5}' && echo ',' && echo " + pid + " && echo ',' && ps aux |grep " + pid + " |grep -v -e grep -e tail -e expect | awk '{print $3}' && echo ',' && ps aux |grep " + pid + " |grep -v -e grep -e tail -e expect | awk '{print $4}'"; + result = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString(); + } + }*/ + command = "pid=`cat " + pidFile + "`;" + + "status=`ps -ef |grep $pid |grep -v -e grep -e tail -e expect |wc -l`;" + + "if [[ $status -eq '1' ]];then " + + "echo ${status},`ps -ef |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $5}'`,$pid,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $3}'`,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $4}'`;" + + "fi"; + result = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString(); + } catch (JSchException e) { + logger.error(e); + } + return result; + } + + public String resetProcess(NodeTable node, ProcessInfo proc) { + String ip = node.getStr("ip"); + String user = node.getStr("user"); + String pwd = node.getStr("pwd"); + String uploadPath = proc.getStr("upload_path"); + String scriptPath = PropKit.get("process_info_scriptPath"); + String mirrorPath = proc.getStr("mirror_path"); + String restartSh = proc.getStr("restart_sh"); + + try { + List reset = LinuxUtil.remoteExec(ip, user, pwd, "tar -xf " + mirrorPath + " -C " + uploadPath); + int resetState = Integer.parseInt(reset.get(1).toString()); + //String execResult = ProcessUtil.execLinuxExpect(scriptPath+" "+ip+" "+user+" "+pwd+" "+3+" "+mirrorPath); + //if(StrKit.notBlank(execResult)&&execResult.contains("%#%")){ + // execResult=execResult.substring(execResult.indexOf("%#%")+3,execResult.lastIndexOf("%#%")); + if (resetState == 0) { + List restart = LinuxUtil.remoteExec(ip, user, pwd, restartSh); + logger.info(restart.get(0)); + int restartState = Integer.parseInt(restart.get(1).toString()); + if (restartState == 0) { + logger.info("重置进程成功!"); + return "i18n_reset.success_n81i"; + } else { + logger.error("重置进程失败:restart失败"); + return "i18n_reset.failed_n81i"; + } + } else{ + logger.error("重置进程失败:解压mirror文件失败"); + return "i18n_reset.failed_n81i"; + } + } catch (Exception e) { + logger.error("重置进程失败!", e); + return "i18n_reset.failed_n81i"; + } + + } +} diff --git a/gloam/src/com/nis/gloam/service/RouteHomeService.java b/gloam/src/com/nis/gloam/service/RouteHomeService.java new file mode 100644 index 0000000..6f2a847 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/RouteHomeService.java @@ -0,0 +1,69 @@ +package com.nis.gloam.service; + +import java.util.Date; +import java.util.List; + +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.DetectInfoCpu; +import com.nis.gloam.entity.DetectInfoDisk; +import com.nis.gloam.entity.DetectInfoMemory; +import com.nis.gloam.entity.DetectInfoNetdata; +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.util.DateUtil; + +public class RouteHomeService { + public static final RouteHomeService auditLogService = new RouteHomeService(); + + public List queryEcharts() { + List nodeTable = NodeTable.dao.find("select n.id,n.name,n.ip from node_table n"); + if (nodeTable.size() > 0) { + String time = DateUtil.formatTime(new Date()); + Integer welcomeTime = PropKit.getInt("welcome_time"); + String dayTime = DateUtil.formatTime(new Date(new Date().getTime() - welcomeTime * 60 * 1000)); + for (int i = 0; i < nodeTable.size(); i++) { + NodeTable node = nodeTable.get(i); + if (node != null) { + int id = node.getInt("id"); + // 获取DetectInfoCpu用户使用率数据 + List detectInfoCpu = DetectInfoCpu.dao.find( + "select d.TOTAL_USED_PERC,d.DATA_CHECK_TIME,d.DATA_CHECK_TIME_DIGITAL from detect_info_cpu d where d.cpu_name='cpu' and d.SEQ_ID = ? and d.DATA_CHECK_TIME >= ? and d.DATA_CHECK_TIME <= ? ", + id, dayTime, time); + if (detectInfoCpu != null) { + if (detectInfoCpu.size() > 0) { + node.put("detectInfoCpu", detectInfoCpu); + } + } + // 获取DetectInfoMemory内存使用率数据 + List detectInfoMemory = DetectInfoMemory.dao.find( + "SELECT d.USED_MEMORY_PERC,d.DATA_CHECK_TIME,d.DATA_CHECK_TIME_DIGITAL FROM detect_info_memory d WHERE d.SEQ_ID = ? and d.DATA_CHECK_TIME >= ? AND d.DATA_CHECK_TIME <= ? ", + id, dayTime, time); + if (detectInfoMemory != null) { + if (detectInfoMemory.size() > 0) { + node.put("detectInfoMemory", detectInfoMemory); + } + } + // 获取DeteInfoDisk磁盘使用 + List detectInfoDisk = DetectInfoDisk.dao.find( + "SELECT d.USED_DISK_PERC,d.DATA_CHECK_TIME,d.DATA_CHECK_TIME_DIGITAL FROM detect_info_disk d WHERE d.DISK_RANGE='/' AND d.SEQ_ID = ? and d.DATA_CHECK_TIME >= ? AND d.DATA_CHECK_TIME <= ?", + id, dayTime, time); + if (detectInfoDisk != null) { + if (detectInfoDisk.size() > 0) { + node.put("detectInfoDisk", detectInfoDisk); + } + } + // 获取DetectInfoNetdata网卡数据 + List detectInfoNetdata = DetectInfoNetdata.dao.find( + "select sum(d.RX_PPS) as RX_PPS ,sum(d.TX_PPS) as TX_PPS ,d.DATA_CHECK_TIME,d.DATA_CHECK_TIME_DIGITAL from detect_info_netdata d where d.SEQ_ID= ? and d.DATA_CHECK_TIME >= ? AND d.DATA_CHECK_TIME <= ? GROUP BY d.DETECTION_INFO_ID ", + id, dayTime, time); + if (detectInfoNetdata != null) { + if (detectInfoNetdata.size() > 0) { + node.put("detectInfoNetdata", detectInfoNetdata); + } + } + } + } + } + return nodeTable; + } + +} diff --git a/gloam/src/com/nis/gloam/service/SoftConfigService.java b/gloam/src/com/nis/gloam/service/SoftConfigService.java new file mode 100644 index 0000000..ee4f3c2 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/SoftConfigService.java @@ -0,0 +1,34 @@ +package com.nis.gloam.service; + +import java.util.List; + +import org.apache.log4j.Logger; + +import com.nis.gloam.entity.ConfigInfo; + +public class SoftConfigService { + private static Logger logger = Logger.getLogger(SoftConfigService.class); + public static final SoftConfigService softConfigService = new SoftConfigService(); + + public List getAllConfig() { + String sql = "SELECT ci.id, ci.node_id as nodeId, ci.conf_file as confFile, ci.is_modify as isModify, " + + "ci.conf_type as confType, ci.conf_field as confField, ci.conf_mark as confMark, " + + "ci.user_field as userField, ci.user_tip as userTip, nt.name, nt.ip, nt.user, nt.pwd " + + "FROM config_info ci LEFT JOIN node_table nt ON ci.node_id=nt.id"; + List find = ConfigInfo.dao.find(sql); + return find; + } + + public ConfigInfo getById(Integer id) { + String sql = "SELECT ci.id, ci.node_id as nodeId, ci.conf_file as confFile, ci.is_modify as isModify, " + + "ci.conf_type as confType, ci.conf_field as confField, ci.conf_mark as confMark, " + + "ci.user_field as userField, ci.user_tip as userTip, nt.name, nt.ip, nt.user, nt.pwd " + + "FROM config_info ci LEFT JOIN node_table nt ON ci.node_id=nt.id " + + "WHERE ci.id=" + id; + List find = ConfigInfo.dao.find(sql); + if (find != null && find.size() > 0) { + return find.get(0); + } + return null; + } +} diff --git a/gloam/src/com/nis/gloam/service/SysMenuService.java b/gloam/src/com/nis/gloam/service/SysMenuService.java new file mode 100644 index 0000000..998dd1a --- /dev/null +++ b/gloam/src/com/nis/gloam/service/SysMenuService.java @@ -0,0 +1,40 @@ +package com.nis.gloam.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.nis.gloam.entity.SysMenu; + +public class SysMenuService { + public static final SysMenuService sysMenuService=new SysMenuService(); + + public List queryMainMenu(Integer userId){ + String sql="select sm.* from sys_user su,sys_user_menu sum,sys_menu sm where su.id=sum.user_id and sum.menu_id=sm.id and sm.is_show=1 and user_id=? order by sm.sort asc"; + List find = SysMenu.dao.find(sql,userId); + Map> childMap=new HashMap>(); + //处理获得的菜单数据 + for (SysMenu menu : find){ + if(!(Integer.parseInt((String)menu.get("parent_id"))==0)){ + List sysMenu = childMap.get((String)menu.get("parent_id")); + if(sysMenu==null){ + ArrayList childList = new ArrayList(); + childList.add(menu); + childMap.put(menu.get("parent_id"), childList); + }else{ + sysMenu.add(menu); + childMap.put(menu.get("parent_id"), sysMenu); + } + + } + } + for(SysMenu menu:find){ + if(Integer.parseInt((String)menu.get("parent_id"))==0){ + List list = childMap.get(menu.get("id")+""); + menu.setChildSysmenus(list); + } + } + return find; + } +} diff --git a/gloam/src/com/nis/gloam/service/SystemRouteConfigService.java b/gloam/src/com/nis/gloam/service/SystemRouteConfigService.java new file mode 100644 index 0000000..817d322 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/SystemRouteConfigService.java @@ -0,0 +1,28 @@ +package com.nis.gloam.service; + +import java.util.List; + +import com.nis.gloam.entity.SystemRouteConfig; + +public class SystemRouteConfigService { + public static final SystemRouteConfigService systemRouteConfigService=new SystemRouteConfigService(); + + public List querySystemRouteConfig(Integer vendorId){ + List systemRouteConfigs = SystemRouteConfig.dao.find("select * from system_route_config where vendor_id=?",vendorId); + return systemRouteConfigs; + } + + public void updateSystemRouteConfig(SystemRouteConfig data){ + data.update(); + } + + public void deleteSystemRouteConfig(String id){ + SystemRouteConfig.dao.deleteById(id); + } + + public void addSystemRouteConfig(SystemRouteConfig data){ + new SystemRouteConfig().set("destination_ip", data.get("destination_ip")) + .set("ip_mask",data.get("ip_mask")).set("gateway",data.get("gateway")) + .set("interface", data.get("interface")).set("vendor_id", data.get("vendor_id")).save(); + } +} diff --git a/gloam/src/com/nis/gloam/service/SystemServiceService.java b/gloam/src/com/nis/gloam/service/SystemServiceService.java new file mode 100644 index 0000000..b6b3f09 --- /dev/null +++ b/gloam/src/com/nis/gloam/service/SystemServiceService.java @@ -0,0 +1,16 @@ +package com.nis.gloam.service; + +import java.util.List; + +import com.nis.gloam.entity.NodeTable; +import com.nis.gloam.entity.SystemService; + +public class SystemServiceService { + + public List findSystemServiceByNode(NodeTable node) { + String sql="select * from system_service where node_id =? "; + List serviceList = SystemService.dao.find(sql, node.getInt("id")); + return serviceList; + } + +} diff --git a/gloam/src/com/nis/gloam/task/ClearFile.java b/gloam/src/com/nis/gloam/task/ClearFile.java new file mode 100644 index 0000000..3e5211e --- /dev/null +++ b/gloam/src/com/nis/gloam/task/ClearFile.java @@ -0,0 +1,57 @@ +package com.nis.gloam.task; + +import java.io.File; +import java.util.Date; + +import org.apache.log4j.Logger; + +import com.jfinal.kit.PathKit; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.cron4j.ITask; + +public class ClearFile implements ITask { + + private static Logger logger = Logger.getLogger(ClearFile.class); + + @Override + public void run() { + logger.info("文件定时清理任务启动"); + + long now = new Date().getTime(); + String rootDir = PropKit.get("detect_data_root_path"); + String resultRootDir = rootDir + File.separator + "nc_data"; + + File f = new File(resultRootDir); + if (f.isDirectory()) { + each(f, now); + } + + String path = PathKit.getWebRootPath(); + File webRootPath = new File(path); + File rootPath = webRootPath.getParentFile(); + File remoteConfig = new File(rootPath.getAbsolutePath() + File.separator + "remote_config"); + if (remoteConfig.isDirectory()) { + each(remoteConfig, now); + } + } + + @Override + public void stop() { + + } + + public void each(File resultRootDir, long now) { + File[] listFiles = resultRootDir.listFiles(); + for (int i = 0; i < listFiles.length; i++) { + if (listFiles[i].isDirectory()) { + each(listFiles[i], now); + } else { + long deleteCycle = PropKit.getLong("cron_delete_resultFile_cycle"); + long lastModified = listFiles[i].lastModified(); + if (now-lastModified > deleteCycle) { + listFiles[i].delete(); + } + } + } + } +} diff --git a/gloam/src/com/nis/gloam/task/DetectDataFileReadTask.java b/gloam/src/com/nis/gloam/task/DetectDataFileReadTask.java new file mode 100644 index 0000000..68e8a15 --- /dev/null +++ b/gloam/src/com/nis/gloam/task/DetectDataFileReadTask.java @@ -0,0 +1,120 @@ +/**设备信息结果文件读取*/ + +package com.nis.gloam.task; + +import java.io.File; +import java.util.Timer; +import java.util.TimerTask; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.jfinal.kit.PropKit; +import com.nis.gloam.util.SuffixFileCountFilter; + +public class DetectDataFileReadTask extends TimerTask { + + private static Logger logger = Logger.getLogger(DetectDataFileReadTask.class); + + private Timer timer; + + public DetectDataFileReadTask(Timer timer){ + this.timer = timer; + } + + @Override + public void run() { + Thread.currentThread().setName("文件读取线程"); + PropKit.use("config.properties"); + String p = PropKit.get("detect_data_root_path"); //根目录 + if (StringUtils.isBlank(p)) { + logger.error("设备信息根目录不存在,请检查配置文件:detect_data_root_path"); + restart(); + return; + } + + File detectDataRootPath = new File(p); + if (!detectDataRootPath.isDirectory()) { + logger.error("设备信息根目录不存在,请检查配置文件:detect_data_root_path"); + restart(); + return; + } + + File remoteResultPath = new File(p + "/remote_result"); + if (!remoteResultPath.isDirectory()) { + logger.error("设备信息结果目录 remote_result 不存在"); + restart(); + return; + } + + mkdir(p + "/nc_data/done/cpu/"); + mkdir(p + "/nc_data/done/net/"); + mkdir(p + "/nc_data/done/mem/"); + mkdir(p + "/nc_data/done/disk/"); + mkdir(p + "/nc_data/done/sys/"); + mkdir(p + "/nc_data/error/cpu/"); + mkdir(p + "/nc_data/error/net/"); + mkdir(p + "/nc_data/error/mem/"); + mkdir(p + "/nc_data/error/disk/"); + mkdir(p + "/nc_data/error/sys/"); + + File[] detectList = remoteResultPath.listFiles(); + if (detectList == null || detectList.length == 0) { + restart(); + return; + } else { + for (File detectResultPath : detectList) { + if (detectResultPath.isDirectory()) { + File[] detectResults = detectResultPath.listFiles(new SuffixFileCountFilter(".csv", 20)); + + if (detectResults == null || detectResults.length == 0) { + continue; + } else { + for (File detectResult : detectResults) { + logger.info("发现文件:" + detectResult.getAbsolutePath() + " 开始解析..."); + File resultDir = new File(p + "/done/" + detectResult.getParentFile().getName()); + if (!resultDir.isDirectory()) { + resultDir.mkdir(); + } + String ip = detectResult.getParentFile().getName(); + + File nFile = new File(detectResult.getAbsoluteFile() + ".doing"); + detectResult.renameTo(nFile); + + String call = new DetectDataParseThread(nFile, ip).call(); + if (call.contains("error")) { + logger.error("文件解析错误,已转存至:" + call); + } else { + logger.info("文件解析完毕,已转存至:" + call); + } + } + } + } + } + } + restart(); + return; + } + + public void restart() { + String t = PropKit.get("detect_data_parse_interval"); + long interval; + try { + interval = Long.parseLong(t); + if (interval < 1l) { + throw new NumberFormatException(); + } + timer.schedule(new DetectDataFileReadTask(timer), interval); + } catch (NumberFormatException e) { + logger.error("请检查配置文件:detect_data_parse_interval 是否是大于0的整数"); + restart(); + } + } + + public void mkdir(String p) { + File f = new File(p); + if (!f.isDirectory()) { + f.mkdirs(); + } + } +} diff --git a/gloam/src/com/nis/gloam/task/DetectDataParseThread.java b/gloam/src/com/nis/gloam/task/DetectDataParseThread.java new file mode 100644 index 0000000..e2796c2 --- /dev/null +++ b/gloam/src/com/nis/gloam/task/DetectDataParseThread.java @@ -0,0 +1,287 @@ +/**设备信息结果解析入库*/ + +package com.nis.gloam.task; + +import java.io.File; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.Callable; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.jfinal.kit.PropKit; +import com.nis.gloam.service.DetectionInfoService; +import com.nis.gloam.util.CSVUtils; +import com.nis.gloam.util.DateUtil; +import com.nis.gloam.util.StringUtil; + +public class DetectDataParseThread implements Callable { + private static Logger logger = Logger.getLogger(DetectDataParseThread.class); + private DetectionInfoService detectionInfoService = new DetectionInfoService(); + + private File file; + private String ip; + private String type; + private String threadName; + private String root = PropKit.get("detect_data_root_path"); //根目录 + private String now = DateUtil.formatTime(new Date(), "yyyyMMddHHmmssSSS"); + + public DetectDataParseThread(File file, String ip) { + String fileName = file.getName(); + + this.file = file; + this.ip = ip; + this.threadName = ip + "-" + fileName; + + if (fileName.startsWith("cpu")) { + this.type = "cpu"; + } else if (fileName.startsWith("mem")) { + this.type = "mem"; + } else if (fileName.startsWith("disk")) { + this.type = "disk"; + } else if (fileName.startsWith("net")) { + this.type = "net"; + } else if (fileName.startsWith("sys")) { + this.type = "sys"; + } + + } + + @Override + public String call() { + Thread.currentThread().setName(threadName); + + String normalPath = root + "/nc_data/done/" + type + "/" + ip + "/" + now + ".csv"; + String abnormalPath = root + "/nc_data/error/" + type + "/" + ip + "/" + now + ".csv"; + + try { + List allLineList = CSVUtils.csvFileParser(file, "UTF-8"); + if (allLineList.size() == 0) { + logger.error("该csv文件内容为空"); + return returnFileName(abnormalPath); + } + + /* 解析公共部分开始 */ + /** + * 公共部分解析格式: + * seqId, + * 监测设置ID, + * 监测类别, + * 进程名称(监测类别设置名称), + * 监测服务启动时间, + * 检测时延(秒), + * 本次检测时间, + * 尝试次数, + * 下次计划监测时间, + * 执行状态是否成功是否正常, + * 状态信息(描述信息), + * 性能数据 + **/ + String[] baseInfo = allLineList.get(0); //基础信息 + if (baseInfo.length != 12) { + logger.error("该csv文件内容格式不正确"); + return returnFileName(abnormalPath); + } + + if ("sys".equals(type)) { + logger.info("暂不解析sys结果"); + String p = root + "/nc_data/done/" + type + "/" + ip + "/"; + mkdir(p); + file.renameTo(new File(p + now + ".csv")); + return returnFileName(normalPath); + } + + /* 基本信息解析格式变量 */ + String seqId = null; //seqId + String setInfoId = null; //监测设置ID + String checkType = null; //监测类别 + String process = null; //进程名称(监测类别设置名称) + Long startTime = null; //监测服务启动时间 + Integer delayTime = null; //检测时延(秒) + Long checkTime = null; //本次检测时间 + Integer currentTimes = null; //尝试次数 + Long nextCheckTime = null; //下次计划监测时间 + int state = 1; //执行状态是否成功是否正常 + String dsinfo = null; //状态信息(描述信息) + String pdata = null; //性能数据 + + StringBuffer errorInfo= new StringBuffer(); //错误信息 + + //0--seqId + seqId = baseInfo[0]; + + if (StringUtils.isEmpty(seqId)) { + errorInfo.append("Location" + (0)+ "data node seqId (physical host ID) cannot be empty;"); + } else if(!StringUtil.isNumber(seqId)) { + errorInfo.append("Location" + (0) + "data node seqId (physical host ID) is not a positive integer:" + seqId); + } + + //1--监测设置ID + setInfoId = baseInfo[1]; + if (StringUtils.isEmpty(setInfoId)) { + errorInfo.append("Location" + (1) + "data Monitoring Settings ID cannot be emp;"); + }else if(!StringUtil.isNumber(setInfoId) && !"0".equals(setInfoId)){ + errorInfo.append("Location" + (1) + "Data Monitoring setting ID is not an integer (can be 0, the default system basic information is set to 0):" + setInfoId); + } + + //2--监测类别 + checkType = baseInfo[2]; + if(StringUtils.isEmpty(checkType)){ + errorInfo.append("Location" + (2) + "Data Monitoring Category cannot be empty;"); + } + + //3--进程名称(检查类别设置名称), + process = baseInfo[3]; + + //4--监测服务启动时间, + String startTimeStr = baseInfo[4]; + if(StringUtils.isNotEmpty(startTimeStr)){ + try { + startTime = Long.parseLong(startTimeStr); + } catch (Exception e) { + errorInfo.append("Location" + (4) + "data “" + startTime + "” monitoring service start time must be integer:" + startTime); + } + }else { + errorInfo.append("Location" + (4) + "data monitoring service startup time cannot be empty;"); + } + + //5--检测时延(秒), + String delayTimeStr = baseInfo[5]; + if (StringUtils.isNotEmpty(delayTimeStr)) { + try { + delayTime = Integer.parseInt(delayTimeStr); + } catch (Exception e) { + errorInfo.append("Location" + (5) + "data “" + delayTime + "” detection delay (seconds) must be integer:" + delayTime); + } + } + + //6--本次检测时间, + String checkTimeStr = baseInfo[6]; + if (StringUtils.isNotEmpty(checkTimeStr)) { + try { + checkTime = Long.parseLong(checkTimeStr); + } catch (Exception e) { + errorInfo.append("Location" + (6) + "data “" + checkTimeStr + "” the detection time must be integer:" + checkTime); + } + }else { + errorInfo.append("Location" + (6) + "data This test cannot be empty;"); + } + + //7--尝试次数, + String currentTimesSre = baseInfo[7]; + if (StringUtils.isNotEmpty(currentTimesSre)) { + try { + currentTimes = Integer.parseInt(currentTimesSre); + } catch (Exception e) { + errorInfo.append("Location" + (7) + "data “" + currentTimesSre + "” attempt must be an integer:" + currentTimes); + } + }else{ + errorInfo.append("Location" + (7) + "data attempt cannot be empty;"); + } + + //8--下次计划监测时间, + String nextCheckTimeStr = baseInfo[8]; + if (StringUtils.isNotEmpty(nextCheckTimeStr)) { + try { + nextCheckTime = Long.parseLong(nextCheckTimeStr); + } catch (Exception e) { + errorInfo.append("Location" + (8) + "data “" + nextCheckTimeStr + "” the next scheduled monitoring time must be integer:" + nextCheckTime); + } + }else{ + errorInfo.append("Location" + (8) + "data Attempt cannot be null;"); + } + + //9--执行状态是否成功,记录的状态是否正常(用于报警 -1执行失败 0不正常,1正常), + String stateStr = baseInfo[9]; + if (StringUtils.isNotEmpty(stateStr)) { + try { + state = Integer.parseInt(stateStr); + } catch (Exception e) { + errorInfo.append("Location" + (9) + "data “" + stateStr + "” execution state must be integer:" + state); + } + }else{ + errorInfo.append("Location" + (9) + "data Execution state cannot be empty;"); + } + + //10--状态信息(描述信息), + dsinfo = baseInfo[10]; + + //11--性能数据 + pdata = baseInfo[11]; + if (StringUtils.isNotEmpty(pdata)) { + pdata = pdata.replaceAll("
", "\n"); + } else {//界面异常信息列表的状态信息显示为性能数据,所以如果性能数据为空,则取状态信息 + pdata = dsinfo; + } + + if(errorInfo.length() != 0){ + logger.error(" First step -1: new format monitoring data parsing exceptions: seqId:" + seqId + ",setInfoId:" + setInfoId + ",checkType:" + checkType + " checkTime:" + new Date(Long.parseLong(checkTimeStr)) + " Analysis anomaly of monitoring data:" + errorInfo); + return returnFileName(abnormalPath); + } + + Date arriveTime = new Date(); + + Object[] baseInfoResult = new Object[18]; + baseInfoResult[0] = seqId; + baseInfoResult[1] = setInfoId; + baseInfoResult[2] = ""; + baseInfoResult[3] = process; + baseInfoResult[4] = startTime; + baseInfoResult[5] = delayTime; + baseInfoResult[6] = checkTime; + baseInfoResult[7] = currentTimes; + baseInfoResult[8] = nextCheckTime; + baseInfoResult[9] = state; + baseInfoResult[10] = dsinfo; + baseInfoResult[11] = pdata; + baseInfoResult[12] = arriveTime.getTime(); + + /* 解析公共部分结束 */ + + /* 解析detail部分开始 */ + + List detailInfo = new ArrayList(); + + for (int i = 2; i < allLineList.size(); i++) { + String[] detailResult = new String[40]; + for (int j = 3; j < allLineList.get(i).length; j++) { + String t = allLineList.get(i)[j]; + detailResult[j] = StringUtils.isBlank(t) ? "" : t; + } + detailInfo.add(detailResult); + } + + + /* 解析detail部分结束 */ + + try { + Thread.sleep(500); + detectionInfoService.saveDetectionInfo(baseInfoResult, detailInfo, type, ip); //存库 + return returnFileName(normalPath); + } catch (Exception e) { + logger.error("存入数据" + ip + " " + type + " 出错", e); + return returnFileName(abnormalPath); + } + } catch (Exception e) { + String returnFileName = returnFileName(abnormalPath); + logger.error("解析" + ip + " " + type + "文件出错,已转存至" + returnFileName, e); + return returnFileName; + } + } + + public String returnFileName(String fileString) { + File renameFile = new File(fileString); + file.renameTo(renameFile); + return renameFile.getAbsolutePath(); + } + + public static void mkdir(String p) { + File f = new File(p); + if (!f.isDirectory()) { + f.mkdirs(); + } + } +} diff --git a/gloam/src/com/nis/gloam/task/LogTimerTask.java b/gloam/src/com/nis/gloam/task/LogTimerTask.java new file mode 100644 index 0000000..5680bd8 --- /dev/null +++ b/gloam/src/com/nis/gloam/task/LogTimerTask.java @@ -0,0 +1,36 @@ +package com.nis.gloam.task; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Timer; +import java.util.TimerTask; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.Db; +/** + * 定时器 定时清除日志表中的数据 + * @author Administrator + * + */ +public class LogTimerTask extends TimerTask { + private Timer timer; + + public LogTimerTask(Timer timer){ + this.timer = timer; + } + @Override + public void run() { + PropKit.use("config.properties"); + int date = Integer.parseInt(PropKit.get("delete_logtime")); + Calendar calendar=new GregorianCalendar(); + calendar.setTime(new Date()); + calendar.add(calendar.DATE, -date); + Db.update("delete from sys_log where create_time datas, String charset){ + String [] datas0 = new String[0]; + return csvBytesPrinter(datas.toArray(datas0), charset); + } + + /** + * 解析CSV文件缓存 中的指定行 + */ + public static byte[] csvBytesPrinter(String[] datas, String charset){ + ExcelCSVPrinter ecsvp = null; + OutputStreamWriter osw = null; + ByteArrayOutputStream baos = null; + byte [] bts = null; + try { + baos = new ByteArrayOutputStream(); + //创建解析信息流 + if(StringUtils.isNotBlank(charset)){ + osw = new OutputStreamWriter(baos, charset); + ecsvp = new ExcelCSVPrinter(osw); + }else{ + ecsvp = new ExcelCSVPrinter(baos); + } + + ecsvp.changeDelimiter(','); + ecsvp.setAutoFlush(true); + ecsvp.writeln(datas); + osw.flush(); + bts = baos.toByteArray(); + } catch (IOException e) { + logger.error(e); + return null; + }finally { + try { + if(ecsvp!=null){ecsvp.close();ecsvp = null;} + if(baos!=null){baos.close();baos = null;} + if(osw!=null){osw.close();osw = null;} + } catch (IOException e) { + logger.error(e); + } + } + return bts; + } + + /** + * 解析CSV文件中的指定行 + * + */ + public static String[] csvFileParser(File file, String charset, int rowNum){ + //InputStream in = null; + InputStreamReader inputStreamReader = null; //字节流对象 + ExcelCSVParser csvParser = null; //CSV解析对象 + String[] currLine = null; + try { + //创建解析信息流 + inputStreamReader = new InputStreamReader(new FileInputStream(file),charset); + csvParser = new ExcelCSVParser(inputStreamReader); + while(true){ + currLine = csvParser.getLine(); + if(currLine == null){ + break; + } + if(rowNum == csvParser.getLastLineNumber()){ + break; + }else{ + currLine = null; + } + } + } catch (IOException e) { + logger.error(e); + return null; + }finally { + try { + if(csvParser!=null){csvParser.close();csvParser = null;} + if(inputStreamReader!=null){inputStreamReader.close();inputStreamReader = null;} + } catch (IOException e) { + logger.error(e); + } + } + + return currLine; + } + + /** + * 解析CSV文件的所有行 + * + */ + public static List csvFileParser(File file, String charset){ + InputStreamReader inputStreamReader = null; //字节流对象 + ExcelCSVParser csvParser = null; //CSV解析对象 + List allLineList = new ArrayList(); + try { + //创建解析信息流 + inputStreamReader = new InputStreamReader(new FileInputStream(file),charset); + csvParser = new ExcelCSVParser(inputStreamReader); + String[] currLine = null; + while((currLine=csvParser.getLine())!=null){ + allLineList.add(currLine); + } + } catch (IOException e) { + logger.error(e); + return null; + }finally { + try { + if(csvParser!=null){csvParser.close();csvParser = null;} + if(inputStreamReader!=null){inputStreamReader.close();inputStreamReader = null;} + } catch (IOException e) { + logger.error(e); + } + } + return allLineList; + } + +} diff --git a/gloam/src/com/nis/gloam/util/Common.java b/gloam/src/com/nis/gloam/util/Common.java new file mode 100644 index 0000000..dd40d23 --- /dev/null +++ b/gloam/src/com/nis/gloam/util/Common.java @@ -0,0 +1,37 @@ +package com.nis.gloam.util; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import com.nis.gloam.entity.DetectionInfo; + +public class Common { + public static final ExecutorService shellExcutePool=Executors.newFixedThreadPool(5); + + public static Long avg(DetectionInfo di, DetectionInfo newDi, String fieldName, String calType) { + if (newDi == null) { + return null; + } + + int d = 1; + if (calType.equals("b")) { + d = 8; + } else if (calType.equals("p")) { + d = 1; + } + + Long diT = di.getLong("dataCheckTimeDigital"); + Long newDiT = newDi.getLong("dataCheckTimeDigital"); + Long diF = di.getLong(fieldName); + Long newDiF = newDi.getLong(fieldName); + + Long f = newDiF-diF; + if (f < 0) { + f = 0-f; + } + if ((newDiT-diT)/1000 == 0) { + return 0l; + } + return f*d/((newDiT-diT)/1000); + } +} diff --git a/gloam/src/com/nis/gloam/util/DateUtil.java b/gloam/src/com/nis/gloam/util/DateUtil.java new file mode 100644 index 0000000..6041d8d --- /dev/null +++ b/gloam/src/com/nis/gloam/util/DateUtil.java @@ -0,0 +1,54 @@ +package com.nis.gloam.util; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +/** + * 时间类工具 + * @author Administrator + * + */ +public class DateUtil { + + public static String formatTime(Date date, String pattern){ + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + String time = sdf.format(date); + return time; + } + + public static Date formatString(String date, String pattern) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.parse(date); + } + + public static String formatTime(Date date){ + return formatTime(date, "yyyy-MM-dd HH:mm:ss"); + } + + /** + * @param date (yyyy-MM-dd HH:mm:ss) + * @return + * @throws ParseException + */ + public static Date formatString(String date) throws ParseException { + return formatString(date, "yyyy-MM-dd HH:mm:ss"); + } + + public static String formatTime(Long timeStamp, String pattern){ + return formatTime(new Date(timeStamp), pattern); + } + + public static Long formatStringToLong(String date, String pattern) throws ParseException { + return formatString(date, pattern).getTime(); + } + + public static String dateCalculate(String date, String pattern, Integer day) throws ParseException { + Date d = formatString(date, pattern); + return dateCalculate(d, pattern, day); + } + + public static String dateCalculate(Date date, String pattern, Integer day) throws ParseException { + long time = date.getTime() + day*24*60*60*1000; + return formatTime(time, pattern); + } +} diff --git a/gloam/src/com/nis/gloam/util/IniUtil.java b/gloam/src/com/nis/gloam/util/IniUtil.java new file mode 100644 index 0000000..ce142ad --- /dev/null +++ b/gloam/src/com/nis/gloam/util/IniUtil.java @@ -0,0 +1,68 @@ +package com.nis.gloam.util; + +import java.io.File; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.dtools.ini.BasicIniFile; +import org.dtools.ini.IniFile; +import org.dtools.ini.IniFileReader; +import org.dtools.ini.IniFileWriter; +import org.dtools.ini.IniItem; +import org.dtools.ini.IniSection; + +/** + * @author chenjinsong + * 对ini配置文件的读写 + */ +public class IniUtil { + + private static Logger logger = Logger.getLogger(IniUtil.class); + + private static String fileName = ""; + private static File file; + + public static String getConfig(String fileName, String section, String key) { + if (StringUtils.isBlank(IniUtil.fileName) || !IniUtil.fileName.equals(fileName)) { + IniUtil.fileName = fileName; + file = new File(fileName); + } + + IniFile iniFile = new BasicIniFile(); + IniFileReader ifr = new IniFileReader(iniFile, file); + try { + ifr.read(); + IniSection iniSection = iniFile.getSection(section); + IniItem iniItem = iniSection.getItem(key); + return iniItem.getValue(); + } catch (Exception e) { + logger.error("ini文件读取出错", e); + } + return null; + } + + public static int setConfig(String fileName, String section, String key, String value) { + int status = 0; + if (StringUtils.isBlank(IniUtil.fileName) || !IniUtil.fileName.equals(fileName)) { + IniUtil.fileName = fileName; + file = new File(fileName); + } + + IniFile iniFile = new BasicIniFile(); + IniFileReader ifr = new IniFileReader(iniFile, file); + IniFileWriter ifw = new IniFileWriter(iniFile, file); + try { + ifr.read(); + IniSection iniSection = iniFile.getSection(section); + IniItem iniItem = iniSection.getItem(key); + iniItem.setValue(value); + iniSection.addItem(iniItem); + iniFile.addSection(iniSection); + ifw.write(); + status = 1; + } catch (Exception e) { + logger.error("ini文件修改出错", e); + } + return status; + } +} diff --git a/gloam/src/com/nis/gloam/util/LinuxUtil.java b/gloam/src/com/nis/gloam/util/LinuxUtil.java new file mode 100644 index 0000000..b8da12e --- /dev/null +++ b/gloam/src/com/nis/gloam/util/LinuxUtil.java @@ -0,0 +1,333 @@ +package com.nis.gloam.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import org.apache.log4j.Logger; + +import com.nis.gloam.entity.DeviceInfoBean; +import com.nis.gloam.interceptor.MethodTimeoutInterceptor; +import com.alibaba.fastjson.JSON; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.SftpException; +import com.jfinal.aop.Before; +import com.jfinal.kit.StrKit; + + +public class LinuxUtil { + static Logger logger=Logger.getLogger(LinuxUtil.class); + private static String ip = null; + public static SSHUtil sshUtil = null; + + public static Map execShell(String shellName, + String... params) { + Map result = new HashMap(); + StringBuilder sb = new StringBuilder(); + sb.append(shellName); + for (String temp : params) { + sb.append(" '" + temp + "'"); + } + String cmdarray[] = new String[] { "/bin/sh", "-c", sb.toString() }; + BufferedReader br = null; + BufferedReader bre = null; + try { + Process exec = Runtime.getRuntime().exec(cmdarray); + exec.getInputStream(); + br = new BufferedReader( + new InputStreamReader(exec.getInputStream())); + bre = new BufferedReader(new InputStreamReader( + exec.getErrorStream())); + String s = null; + sb.setLength(0);//清空 + while ((s = br.readLine()) != null) { + sb.append(s); + } + result.put("in", sb.toString()); + sb.setLength(0);//清空 + while ((s = bre.readLine()) != null) { + sb.append(s); + } + result.put("error", sb.toString()); + int waitFor = exec.waitFor(); + result.put("exitStatus", waitFor); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (br != null) + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + if (bre != null) + try { + bre.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + @Before(MethodTimeoutInterceptor.class) + public Map execShellSafe(String shellName, + String... params) { + Map result = new HashMap(); + StringBuilder sb = new StringBuilder(); + sb.append(shellName); + for (String temp : params) { + sb.append(" '" + temp + "'"); + } + String cmdarray[] = new String[] { "/bin/sh", "-c", sb.toString() }; + BufferedReader br = null; + BufferedReader bre = null; + try { + Process exec = Runtime.getRuntime().exec(cmdarray); + exec.getInputStream(); + br = new BufferedReader( + new InputStreamReader(exec.getInputStream())); + bre = new BufferedReader(new InputStreamReader( + exec.getErrorStream())); + String s = null; + sb.setLength(0);//清空 + while ((s = br.readLine()) != null) { + sb.append(s); + } + result.put("in", sb.toString()); + sb.setLength(0);//清空 + while ((s = bre.readLine()) != null) { + sb.append(s); + } + result.put("error", sb.toString()); + int waitFor = exec.waitFor(); + result.put("exitStatus", waitFor); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (br != null) + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + if (bre != null) + try { + bre.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + /** + * Linux下执行命令 + * + * @param cmd + * 文件全路径或执行命令 + * @return + * @throws Exception + */ + public static String execLinuxCmd(String cmd) throws Exception { + BufferedReader bReader = null; + BufferedReader errorReader = null; + Process process = null; + try { + String[] shellCmd = new String[] { "/bin/bash", "-c", cmd }; + process = Runtime.getRuntime().exec(shellCmd); + process.getOutputStream().close(); + + bReader = new BufferedReader(new InputStreamReader(process.getInputStream())); + errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); + String line = null; + StringBuffer sb=new StringBuffer(); + while ((line = bReader.readLine()) != null) { + System.out.println("execLinuxCmd line--->" + line); + sb.append(line); + } + + StringBuffer errorSb = new StringBuffer(); + while ((line = errorReader.readLine()) != null) { + System.out.println("execLinuxCmd error line--->" + line); + errorSb.append(line + ","); + } + + if (errorSb.toString().length() > 0) { + errorSb.deleteCharAt(errorSb.length() - 1); + return errorSb.toString(); + } + return sb.toString(); + } catch (Exception e) { + throw e; + } finally { + try { + if (bReader != null) { + bReader.close(); + } + if (errorReader != null) { + errorReader.close(); + } + if (process != null) { + process.destroy(); + } + } catch (Exception e1) { + } + } + } + + public static String execLinuxExpect(String cmd) throws Exception { + BufferedReader bReader = null; + BufferedReader errorReader = null; + Process process = null; + try { + process = Runtime.getRuntime().exec(cmd); + process.waitFor(5L, TimeUnit.SECONDS); + while(process.isAlive()); + if(process.exitValue()!=0){ + return null; + } + process.getOutputStream().close(); + + bReader = new BufferedReader(new InputStreamReader(process.getInputStream())); + errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); + StringBuffer sb=new StringBuffer(); + String line = null; + while ((line = bReader.readLine()) != null) { + sb.append(line); + } + StringBuffer errorSb = new StringBuffer(); + while ((line = errorReader.readLine()) != null) { + logger.debug("execLinuxCmd error line--->" + line); + errorSb.append(line + ","); + } + + if (errorSb.toString().length() > 0) { + errorSb.deleteCharAt(errorSb.length() - 1); + return errorSb.toString(); + } + + + return sb.toString(); + } catch (Exception e) { + throw e; + } finally { + try { + if (bReader != null) { + bReader.close(); + } + if (errorReader != null) { + errorReader.close(); + } + if (process != null) { + process.destroy(); + } + } catch (Exception e1) { + } + } + } + public static Map execLinuxExpect(String shellName,String... params) { + + Map result = new HashMap(); + StringBuilder sb = new StringBuilder(); + sb.append(shellName); + for (String temp : params) { + sb.append(" " + temp ); + } + BufferedReader br = null; + BufferedReader bre = null; + try { + logger.debug("cmd : "+sb.toString()); + Process exec = Runtime.getRuntime().exec(sb.toString()); + if(exec.waitFor(5L, TimeUnit.SECONDS)){ + int exitValue = exec.exitValue(); + exec.getInputStream(); + br = new BufferedReader( + new InputStreamReader(exec.getInputStream())); + bre = new BufferedReader(new InputStreamReader( + exec.getErrorStream())); + String s = null; + sb.setLength(0);//清空 + while ((s = br.readLine()) != null) { + sb.append(s); + } + String inStr=sb.toString(); + if(StrKit.notBlank(inStr)&&inStr.contains("%#%")){ + inStr=inStr.substring(inStr.indexOf("%#%")+3,inStr.lastIndexOf("%#%")); + }else{ + inStr=""; + } + result.put("in", inStr); + sb.setLength(0);//清空 + while ((s = bre.readLine()) != null) { + sb.append(s); + } + result.put("error", sb.toString()); + result.put("exitStatus", exitValue); + }else{ + result.put("in", ""); + result.put("error", "exec expect Error"); + result.put("exitStatus", 0); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (br != null) + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + if (bre != null) + try { + bre.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return result; + } + + /** + * @param ip + * @param user + * @param password + * @param src 要下载的远程文件路径 + * @param dst 本地目的路径 + * @throws JSchException + * @throws SftpException + */ + public static void remoteDownload(String ip, String user, String password, String src, String dst) throws JSchException, SftpException { + if (!ip.equals(LinuxUtil.ip)) { + sshUtil = new SSHUtil(ip, user, password); + } + sshUtil.download(src, dst); + } + + public static void remoteUpload(String ip, String user, String password, String src, String dst) throws JSchException, SftpException { + if (!ip.equals(LinuxUtil.ip)) { + sshUtil = new SSHUtil(ip, user, password); + } + sshUtil.upload(src, dst); + } + + /** + * @param ip + * @param user + * @param password + * @param command + * @return 返回一个长度为2的list,第一个元素是命令执行结果,第二个元素是退出状态 + * @throws JSchException + */ + public static List remoteExec(String ip, String user, String password, String command) throws JSchException { + if (!ip.equals(LinuxUtil.ip)) { + sshUtil = new SSHUtil(ip, user, password); + } + return sshUtil.execute(command); + } +} diff --git a/gloam/src/com/nis/gloam/util/LogUtil.java b/gloam/src/com/nis/gloam/util/LogUtil.java new file mode 100644 index 0000000..c233986 --- /dev/null +++ b/gloam/src/com/nis/gloam/util/LogUtil.java @@ -0,0 +1,86 @@ +package com.nis.gloam.util; + +import java.util.Date; +import java.util.Enumeration; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import com.jfinal.aop.Invocation; +import com.jfinal.core.Controller; +import com.nis.gloam.entity.SysLog; +import com.nis.gloam.entity.SysMenu; +import com.nis.gloam.entity.SysUser; +/** + * 日志记录工具 + * @author Administrator + * + */ +public class LogUtil { + public static void queryRequestInfo(Invocation inv,Exception ex){ + Controller controller = inv.getController(); + //获取用户的请求URI + String actionKey = inv.getActionKey(); + //获取用户信息 + SysUser sysUser = (SysUser)controller.getSessionAttr("loginUser"); + if((actionKey.equals("/login") || actionKey.equals("/exit"))&&sysUser==null){ + return; + } + //获取用户的请求方式 + String requestMethod = controller.getRequest().getMethod(); + HttpServletRequest request = controller.getRequest(); + //获取操作用户的IP地址 + String remoteAddr = request.getRemoteAddr(); + //获取操作用户的请求参数 + Enumeration e = request.getParameterNames(); + StringBuilder sb=new StringBuilder(); + if (e.hasMoreElements()) { + sb.append("Parameter:"); + while (e.hasMoreElements()) { + String name = e.nextElement(); + //密码不存储到日志表 + if(name.equals("password")){ + continue; + } + String[] values = request.getParameterValues(name); + if (values.length == 1) { + sb.append(name).append("="); + if (values[0] != null && values[0].length() > 512) { + sb.append(values[0].substring(0, 512)).append("..."); + } else { + sb.append(values[0]); + } + } + else { + sb.append(name).append("[]={"); + for (int i=0; i 0) + sb.append(","); + sb.append(values[i]); + } + sb.append("}"); + } + sb.append(" "); + } + sb.append("\n"); + } + SysMenu menu=null; + List menus = SysMenu.dao.find("select * from sys_menu where href=?",actionKey); + if(menus.size()>0){ + menu=menus.get(0); + }else{ + menu=new SysMenu(); + } + new SysLog().set("create_time", new Date().getTime()).set("exception", ex==null?"":ex) + .set("create_by", (String)sysUser.get("login_name")==null?"":(String)sysUser.get("login_name")) + .set("method",requestMethod) + .set("params",sb.toString()) + .set("remote_addr",remoteAddr) + .set("request_uri", actionKey) + .set("title", menu.get("name")==null?"":menu.get("name")) + .set("user_agent", (String)sysUser.get("login_name")==null?"":(String)sysUser.get("login_name")) + .set("create_date", DateUtil.formatTime(new Date())) + .set("remarks", menu.get("remarks")==null?"":menu.get("remarks")) + .save(); + } +} diff --git a/gloam/src/com/nis/gloam/util/Md5.java b/gloam/src/com/nis/gloam/util/Md5.java new file mode 100644 index 0000000..63bc09c --- /dev/null +++ b/gloam/src/com/nis/gloam/util/Md5.java @@ -0,0 +1,26 @@ +package com.nis.gloam.util; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import sun.misc.BASE64Encoder; + + +public class Md5 { + /** + * 用于MD5加密 + * @param str + * @return + * @throws NoSuchAlgorithmException + * @throws UnsupportedEncodingException + */ + public static String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{ + //确定计算方法 + MessageDigest md5=MessageDigest.getInstance("MD5"); + BASE64Encoder base64en = new BASE64Encoder(); + //加密后的字符串 + String newstr=base64en.encode(md5.digest(("nis-oam"+str).getBytes("utf-8"))); + return newstr; + } +} diff --git a/gloam/src/com/nis/gloam/util/OrderProperties.java b/gloam/src/com/nis/gloam/util/OrderProperties.java new file mode 100644 index 0000000..8ca55f0 --- /dev/null +++ b/gloam/src/com/nis/gloam/util/OrderProperties.java @@ -0,0 +1,406 @@ +package com.nis.gloam.util; + +import java.io.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +/** + * Created by 31767 on 2017/8/8. + */ + +public class OrderProperties extends Properties { + private static final long serialVersionUID = 5011694856722313621L; + + private static final String keyValueSeparators = "=: \t\r\n\f"; + + private static final String strictKeyValueSeparators = "=:"; + + private static final String specialSaveChars = "=: \t\r\n\f#!"; + + private static final String whiteSpaceChars = " \t\r\n\f"; + + private PropertiesContext context = new PropertiesContext(); + + public PropertiesContext getContext() { + return context; + } + + public synchronized void load(InputStream inStream) throws IOException { + + BufferedReader in; + + in = new BufferedReader(new InputStreamReader(inStream, "8859_1")); + while (true) { + String line = in.readLine(); + String intactLine = line; + if (line == null) + return; + + if (line.length() > 0) { + + int len = line.length(); + int keyStart; + for (keyStart = 0; keyStart < len; keyStart++) + if (whiteSpaceChars.indexOf(line.charAt(keyStart)) == -1) + break; + + if (keyStart == len) + continue; + + char firstChar = line.charAt(keyStart); + + if ((firstChar != '#') && (firstChar != '!')) { + while (continueLine(line)) { + String nextLine = in.readLine(); + intactLine = intactLine + "\n" + nextLine; + if (nextLine == null) + nextLine = ""; + String loppedLine = line.substring(0, len - 1); + int startIndex; + for (startIndex = 0; startIndex < nextLine.length(); startIndex++) + if (whiteSpaceChars.indexOf(nextLine.charAt(startIndex)) == -1) + break; + nextLine = nextLine.substring(startIndex, nextLine.length()); + line = new String(loppedLine + nextLine); + len = line.length(); + } + + int separatorIndex; + for (separatorIndex = keyStart; separatorIndex < len; separatorIndex++) { + char currentChar = line.charAt(separatorIndex); + if (currentChar == '\\') + separatorIndex++; + else if (keyValueSeparators.indexOf(currentChar) != -1) + break; + } + + int valueIndex; + for (valueIndex = separatorIndex; valueIndex < len; valueIndex++) + if (whiteSpaceChars.indexOf(line.charAt(valueIndex)) == -1) + break; + + if (valueIndex < len) + if (strictKeyValueSeparators.indexOf(line.charAt(valueIndex)) != -1) + valueIndex++; + + while (valueIndex < len) { + if (whiteSpaceChars.indexOf(line.charAt(valueIndex)) == -1) + break; + valueIndex++; + } + String key = line.substring(keyStart, separatorIndex); + String value = (separatorIndex < len) ? line.substring(valueIndex, len) : ""; + + key = loadConvert(key); + value = loadConvert(value); + put(key, value, intactLine); + } else { + context.addCommentLine(intactLine); + } + } else { + context.addCommentLine(intactLine); + } + } + } + + + private String loadConvert(String theString) { + char aChar; + int len = theString.length(); + StringBuffer outBuffer = new StringBuffer(len); + + for (int x = 0; x < len;) { + aChar = theString.charAt(x++); + if (aChar == '\\') { + aChar = theString.charAt(x++); + if (aChar == 'u') { + // Read the xxxx + int value = 0; + for (int i = 0; i < 4; i++) { + aChar = theString.charAt(x++); + switch (aChar) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + value = (value << 4) + aChar - '0'; + break; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + value = (value << 4) + 10 + aChar - 'a'; + break; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + value = (value << 4) + 10 + aChar - 'A'; + break; + default: + throw new IllegalArgumentException("Malformed \\uxxxx encoding."); + } + } + outBuffer.append((char) value); + } else { + if (aChar == 't') + outBuffer.append('\t'); /* ibm@7211 */ + + else if (aChar == 'r') + outBuffer.append('\r'); /* ibm@7211 */ + else if (aChar == 'n') { + /* + * ibm@8897 do not convert a \n to a line.separator + * because on some platforms line.separator is a String + * of "\r\n". When a Properties class is saved as a file + * (store()) and then restored (load()) the restored + * input MUST be the same as the output (so that + * Properties.equals() works). + * + */ + outBuffer.append('\n'); /* ibm@8897 ibm@7211 */ + } else if (aChar == 'f') + outBuffer.append('\f'); /* ibm@7211 */ + else + /* ibm@7211 */ + outBuffer.append(aChar); /* ibm@7211 */ + } + } else + outBuffer.append(aChar); + } + return outBuffer.toString(); + } + + public synchronized void store(OutputStream out, String header) throws IOException { + BufferedWriter awriter; + awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1")); + if (header != null) + writeln(awriter, "#" + header); + List entrys = context.getCommentOrEntrys(); + for (Iterator iter = entrys.iterator(); iter.hasNext();) { + Object obj = iter.next(); + if (obj.toString() != null) { + writeln(awriter, obj.toString()); + } + } + awriter.flush(); + } + + private static void writeln(BufferedWriter bw, String s) throws IOException { + bw.write(s); + bw.newLine(); + } + + private boolean continueLine(String line) { + int slashCount = 0; + int index = line.length() - 1; + while ((index >= 0) && (line.charAt(index--) == '\\')) + slashCount++; + return (slashCount % 2 == 1); + } + + + private String saveConvert(String theString, boolean escapeSpace) { + int len = theString.length(); + StringBuffer outBuffer = new StringBuffer(len * 2); + + for (int x = 0; x < len; x++) { + char aChar = theString.charAt(x); + switch (aChar) { + case ' ': + if (x == 0 || escapeSpace) + outBuffer.append('\\'); + + outBuffer.append(' '); + break; + case '\\': + outBuffer.append('\\'); + outBuffer.append('\\'); + break; + case '\t': + outBuffer.append('\\'); + outBuffer.append('t'); + break; + case '\n': + outBuffer.append('\\'); + outBuffer.append('n'); + break; + case '\r': + outBuffer.append('\\'); + outBuffer.append('r'); + break; + case '\f': + outBuffer.append('\\'); + outBuffer.append('f'); + break; + default: + if ((aChar < 0x0020) || (aChar > 0x007e)) { + outBuffer.append('\\'); + outBuffer.append('u'); + outBuffer.append(toHex((aChar >> 12) & 0xF)); + outBuffer.append(toHex((aChar >> 8) & 0xF)); + outBuffer.append(toHex((aChar >> 4) & 0xF)); + outBuffer.append(toHex(aChar & 0xF)); + } else { + if (specialSaveChars.indexOf(aChar) != -1) + outBuffer.append('\\'); + outBuffer.append(aChar); + } + } + } + return outBuffer.toString(); + } + + /** + * Convert a nibble to a hex character + * + * @param nibble + * the nibble to convert. + */ + private static char toHex(int nibble) { + return hexDigit[(nibble & 0xF)]; + } + + /** A table of hex digits */ + private static final char[] hexDigit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', + 'F' }; + + public synchronized Object put(Object key, Object value) { + context.putOrUpdate(key.toString(), value.toString()); + return super.put(key, value); + } + + public synchronized Object put(Object key, Object value, String line) { + context.putOrUpdate(key.toString(), value.toString(), line); + return super.put(key, value); + } + + + public synchronized Object remove(Object key) { + context.remove(key.toString()); + return super.remove(key); + } + + class PropertiesContext { + private List commentOrEntrys = new ArrayList(); + + public List getCommentOrEntrys() { + return commentOrEntrys; + } + + public void addCommentLine(String line) { + commentOrEntrys.add(line); + } + + public void putOrUpdate(PropertyEntry pe) { + remove(pe.getKey()); + commentOrEntrys.add(pe); + } + + public void putOrUpdate(String key, String value, String line) { + PropertyEntry pe = new PropertyEntry(key, value, line); + remove(key); + commentOrEntrys.add(pe); + } + + public void putOrUpdate(String key, String value) { + PropertyEntry pe = new PropertyEntry(key, value); + int index = remove(key); + commentOrEntrys.add(index,pe); + } + + public int remove(String key) { + for (int index = 0; index < commentOrEntrys.size(); index++) { + Object obj = commentOrEntrys.get(index); + if (obj instanceof PropertyEntry) { + if (obj != null) { + if (key.equals(((PropertyEntry) obj).getKey())) { + commentOrEntrys.remove(obj); + return index; + } + } + } + } + return commentOrEntrys.size(); + } + + class PropertyEntry { + private String key; + + private String value; + + private String line; + + public String getLine() { + return line; + } + + public void setLine(String line) { + this.line = line; + } + + public PropertyEntry(String key, String value) { + this.key = key; + this.value = value; + } + + /** + * @param key + * @param value + * @param line + */ + public PropertyEntry(String key, String value, String line) { + this(key, value); + this.line = line; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String toString() { + if (line != null) { + return line; + } + if (key != null && value != null) { + String k = saveConvert(key, true); + String v = saveConvert(value, false); + return k + "=" + v; + } + return null; + } + } + } + + + public void addComment(String comment) { + if (comment != null) { + context.addCommentLine("#" + comment); + } + } + +} diff --git a/gloam/src/com/nis/gloam/util/PropertiesUtil.java b/gloam/src/com/nis/gloam/util/PropertiesUtil.java new file mode 100644 index 0000000..128c82f --- /dev/null +++ b/gloam/src/com/nis/gloam/util/PropertiesUtil.java @@ -0,0 +1,106 @@ +package com.nis.gloam.util; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URISyntaxException; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.jfinal.core.Const; +import com.jfinal.kit.LogKit; +import com.jfinal.kit.PathKit; +import com.jfinal.kit.PropKit; + +public class PropertiesUtil { + private static Logger logger = Logger.getLogger(PropertiesUtil.class); + private static OrderProperties OrderProperties=null; + public static void updateConfig(String fileName,String key,String value) { + if(OrderProperties==null) { + new PropertiesUtil(fileName); + } + OrderProperties.setProperty(key, value); + FileOutputStream fos = null; + try { + String path = PathKit.class.getClassLoader().getResource(fileName).toURI().getPath(); + fos = new FileOutputStream(path); + OrderProperties.store(fos, "Copyright (c) Boxcode Studio"); + PropKit.use(fileName).getProperties().setProperty(key, value); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }finally { + try { + // 关闭流 + if(fos!=null) { + fos.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + + public PropertiesUtil(String fileName) { + InputStream inputStream = null; + try { + inputStream = getClassLoader().getResourceAsStream(fileName); // properties.load(Prop.class.getResourceAsStream(fileName)); + if (inputStream == null) { + throw new IllegalArgumentException("Properties file not found in classpath: " + fileName); + } + OrderProperties = new OrderProperties(); + OrderProperties.load(new InputStreamReader(inputStream, Const.DEFAULT_ENCODING)); + } catch (IOException e) { + throw new RuntimeException("Error loading properties file.", e); + } + finally { + if (inputStream != null) try {inputStream.close();} catch (IOException e) {LogKit.error(e.getMessage(), e);} + } + } + + private ClassLoader getClassLoader() { + ClassLoader ret = Thread.currentThread().getContextClassLoader(); + return ret != null ? ret : getClass().getClassLoader(); + } + + + + + private static String fileName = ""; + private static File file; + + public static int setConfig(String fileName, String key, String value) { + int status = 0; + if (StringUtils.isBlank(PropertiesUtil.fileName) || !PropertiesUtil.fileName.equals(fileName)) { + PropertiesUtil.fileName = fileName; + file = new File(fileName); + } + + Properties p = PropKit.use(file).getProperties(); + p.setProperty(key, value); + + try { + FileOutputStream fos = new FileOutputStream(file); + p.store(fos, null); + status = 1; + } catch (FileNotFoundException e) { + logger.error("找不到指定配置文件:" + fileName, e); + } catch (IOException e) { + logger.error("配置文件更改出错:" + fileName, e); + } + return status; + } + +} diff --git a/gloam/src/com/nis/gloam/util/SSHUtil.java b/gloam/src/com/nis/gloam/util/SSHUtil.java new file mode 100644 index 0000000..fb53925 --- /dev/null +++ b/gloam/src/com/nis/gloam/util/SSHUtil.java @@ -0,0 +1,146 @@ +package com.nis.gloam.util; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + +import org.apache.commons.lang.StringUtils; + +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelExec; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.ChannelShell; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.SftpException; +import com.jcraft.jsch.UserInfo; + +/** + * @author chenjs 使用ssh操作远程服务器的工具类 + */ +public class SSHUtil { + + private ChannelSftp channelSftp; + private ChannelExec channelExec; + private Session session; + + /** + * @param ip + * @param user + * 登录名 + * @param password + * @throws JSchException + */ + public SSHUtil(String ip, String user, String password) throws JSchException { + session = new JSch().getSession(user, ip); + session.setPassword(password); + session.setTimeout(2000); + + Properties p = new Properties(); + p.put("StrictHostKeyChecking", "no"); + session.setConfig(p); + + session.connect(); + } + + /** + * 文件下载,同名文件会被覆盖 + * + * @param src + * 要下载的远程文件路径 + * @param dst + * 本地目的路径 + * @throws JSchException + * @throws SftpException + */ + public void download(String src, String dst) throws JSchException, SftpException { + channelSftp = (ChannelSftp) session.openChannel("sftp"); + channelSftp.connect(); + channelSftp.get(src, dst); + channelSftp.quit(); + } + + /** + * 上传文件,,同名文件会被覆盖 + * + * @param src + * 要上传的本地文件路径 + * @param dst + * 远程目的路径 + * @throws JSchException + * @throws SftpException + */ + public void upload(String src, String dst) throws JSchException, SftpException { + channelSftp = (ChannelSftp) session.openChannel("sftp"); + channelSftp.connect(); + channelSftp.put(src, dst); + channelSftp.quit(); + } + + /** + * 执行shell命令 + * + * @param command + * @return 返回一个长度为2的list,第一个元素是命令执行结果,第二个元素是退出状态 + */ + public List execute(final String command) { + List list = new ArrayList(); + int returnCode = 0; + String result = ""; + try { + // 打开通道,设置通道类型,和执行的命令 + channelExec = (ChannelExec) session.openChannel("exec"); + channelExec.setCommand(command); + + channelExec.setInputStream(null); + BufferedReader input = new BufferedReader(new InputStreamReader(channelExec.getInputStream())); + + channelExec.connect(); + + // 接收远程服务器执行命令的结果 + String line; + while ((line = input.readLine()) != null) { + result += line; + } + input.close(); + + // 得到returnCode + if (channelExec.isClosed()) { + returnCode = channelExec.getExitStatus(); + } + + // 关闭通道 + channelExec.disconnect(); + } catch (JSchException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + list.add(result); + list.add(returnCode); + return list; + } + + /** + * 关闭连接,工具使用结束后调用 + */ + public void close() { + if (session != null) { + session.disconnect(); + } + } + + public static void main(String[] args) throws Exception { + SSHUtil s = new SSHUtil("10.0.6.247", "root", "111111"); + List r = s.execute("echo $JAVA_HOME"); + System.out.println(r.get(0)); + System.out.println(r.get(1)); + s.close(); + } +} diff --git a/gloam/src/com/nis/gloam/util/ServerUtil.java b/gloam/src/com/nis/gloam/util/ServerUtil.java new file mode 100644 index 0000000..adceb9e --- /dev/null +++ b/gloam/src/com/nis/gloam/util/ServerUtil.java @@ -0,0 +1,68 @@ +package com.nis.gloam.util; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; + +import com.jfinal.kit.PropKit; +import com.nis.gloam.entity.ServerInfoDto; + +/** + * 服务器操作相关 以后会删除 + * @author Administrator + * + */ +public class ServerUtil { +private static Logger logger = Logger.getLogger(ServerUtil.class); + + /** + * 读取配置文件中服务器的信息 + * @return + */ + public static List queryServerInfos(){ + List serversInfos=new ArrayList(); + PropKit.use("config.properties"); + String serversCount = PropKit.get("serversCount"); + if(serversCount!=null&&!serversCount.isEmpty()){ + int count=0; + try { + count = Integer.parseInt(serversCount); + } catch (NumberFormatException e) { + logger.error("serverCount not a int check config again"); + e.printStackTrace(); + } + for(int i=1;i datas = queryServerInfos(); + if(datas.size()>0){ + for(ServerInfoDto data:datas){ + if(data.getIp().equals(value)){ + return data.getIpKey(); + } + } + return null; + }else{ + return null; + } + } +} diff --git a/gloam/src/com/nis/gloam/util/SingleUserSignUtil.java b/gloam/src/com/nis/gloam/util/SingleUserSignUtil.java new file mode 100644 index 0000000..7012dda --- /dev/null +++ b/gloam/src/com/nis/gloam/util/SingleUserSignUtil.java @@ -0,0 +1,29 @@ +package com.nis.gloam.util; + +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +/** + * 此工具类仅为了拦截器验证用户是否单一登录 + * 用map保存用户的session信息以及ip信息 + * @author Administrator + * + */ +public class SingleUserSignUtil { + private static Map map=new HashMap(); + + public static Map getMap() { + return map; + } + + public void addData(String key,HttpSession value){ + map.put(key, value); + } + + public HttpSession getData(String key){ + HttpSession object = map.get(key); + return object; + } +} diff --git a/gloam/src/com/nis/gloam/util/StringUtil.java b/gloam/src/com/nis/gloam/util/StringUtil.java new file mode 100644 index 0000000..c4c1fbe --- /dev/null +++ b/gloam/src/com/nis/gloam/util/StringUtil.java @@ -0,0 +1,220 @@ +package com.nis.gloam.util; + +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang.StringUtils; + +public class StringUtil { + + /** + * 获取字符串的长度,如果有中文,则每个中文字符记为2个长度 + * @param value 指定字符串 + * @return 指定字符串长度 + */ + public static int chineseLength(String value){ + int valueLen = 0; + String chinese = "[\u0391-\uFFE5]"; + /* 获取字段值的长度,如果含有中文字符,则每个中文字符按2个长度,否则为1*/ + for(int i = 0; i < value.length(); i++ ){ + //获取一个字符 + String temp = value.substring(i , i + 1); + //判断是否为中文字符 + if(temp.matches(chinese)){ + //中文字符长度为2 + valueLen += 2; + }else{ + //其他字符长度为1 + valueLen += 1; + } + } + return valueLen; + } + + /** + * 获取字符串的指定长度内容,如果有中文,则每个中文字符记为2个长度。 + * 如果开始和截取长度碰到半个汉字时:截取开始位置顺序往后推一个长度;截取字符串长度顺序往前一个长度;以保证汉字完整 + * @param value 指定字符串 + * @param getLength 截取开始位置 + * @param getLength 截取字符串长度 + * @return 截取字符串长度 + */ + public static String getChineseByLength(String value,int startPosion,int getLength){ + String retStr = ""; + int valueLen = 0; + int retLen = 0; + if(getLength<1){ + return retStr; + } + String chinese = "[\u0391-\uFFE5]"; + /* 获取字段值的长度,如果含有中文字符,则每个中文字符按2个长度,否则为1*/ + for(int i = 0; i < value.length(); i++ ){ + //获取一个字符 + String temp = value.substring(i , i + 1); + //判断是否为中文字符 + if(temp.matches(chinese)){ + //中文字符长度为2 + valueLen += 2; + if(valueLen > startPosion+1){ + if(retLen < getLength-1){ + retStr +=temp; + } + retLen += 2; + //retLen += StringUtil.chineseLength(retStr); + } + }else{ + //其他字符长度为1 + valueLen += 1; + + if(valueLen >= startPosion){ + if(retLen <= getLength){ + retStr +=temp; + } + retLen += 1; + //retLen += StringUtil.chineseLength(retStr); + } + } + } + return retStr; + } + + /** + * 将map中的key所对应的值用linkSymbol拼接,并在每个值的两边加mark,如'a','d','v' + * @param strGroup + * @param linkSymbol + * @param mark:添加到每一个值两边的,如单引号 + * @return + */ + public static String linkToString(String[] strGroup,String linkSymbol,String mark) { + + StringBuffer str = new StringBuffer(); + String linkedStr = ""; + for(String strTmp:strGroup) { + str.append(mark).append(strTmp).append(mark).append(linkSymbol); + } + if(str.toString().contains(linkSymbol)) { + linkedStr = str.substring(0, str.length()-linkSymbol.length()); + } + + System.out.println("连接后的字符串:" + linkedStr); + return linkedStr; + } + + /** + * 判断是否是一个中文汉字 + * + * @param c + * 字符 + * @return true表示是中文汉字,false表示是英文字母 + * @throws UnsupportedEncodingException + * 使用了JAVA不支持的编码格式 + */ + public static boolean isChineseChar(char c){ + // 如果字节数大于1,是汉字 + // 以这种方式区别英文字母和中文汉字并不是十分严谨,但在这个题目中,这样判断已经足够了 + try { + return String.valueOf(c).getBytes("GBK").length > 1; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 按字节截取字符串 + * + * @param orignal + * 原始字符串 + * @param count + * 截取位数 + * @return 截取后的字符串 + * @throws UnsupportedEncodingException + * 使用了JAVA不支持的编码格式 + */ + public static String substring(String orignal, int count) { + // 原始字符不为null,也不是空字符串 + if (null != orignal && !"".equals(orignal)) { + // 将原始字符串转换为GBK编码格式 + try { + orignal = new String(orignal.getBytes("GBK"), "GBK"); + System.out.println(orignal.getBytes("GBK").length); + if (count >= 0 && count < orignal.getBytes("GBK").length) { + StringBuffer buff = new StringBuffer(); + char c; + int subByteNum = 0; + for (int i = 0;subByteNum maxCount) { + return false; + } + if (f!= null && f.getName().endsWith(suffix)) { + currentCount++; + return true; + } + return false; + } + +} diff --git a/gloam/src/com/nis/gloam/validator/LoginValidator.java b/gloam/src/com/nis/gloam/validator/LoginValidator.java new file mode 100644 index 0000000..2f3b813 --- /dev/null +++ b/gloam/src/com/nis/gloam/validator/LoginValidator.java @@ -0,0 +1,74 @@ +package com.nis.gloam.validator; + +import java.io.UnsupportedEncodingException; +import java.security.NoSuchAlgorithmException; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import com.jfinal.core.Controller; +import com.jfinal.kit.PropKit; +import com.jfinal.kit.StrKit; +import com.jfinal.validate.Validator; +import com.nis.gloam.entity.SysUser; +import com.nis.gloam.util.Md5; +import com.nis.gloam.util.SingleUserSignUtil; + +/** + * 登录验证器 + * @author Administrator + * + */ +public class LoginValidator extends Validator{ + + @Override + protected void validate(Controller c) { + List users = SysUser.dao.find("select * from sys_user where login_name=?",c.getPara("name")); + SysUser user = null; + if(users.size()>0){ + user=users.get(0); + } + if (StrKit.isBlank(controller.getPara("name"))) { + addError("nameMsg", "请输入用户名"); + }else if(StrKit.isBlank(controller.getPara("password"))) { + addError("passwordMsg", "请输入用密码"); + }else if(user==null||!user.getStr("login_name").equals(controller.getPara("name"))) { + addError("nameMsg", "用户名不存在"); + } else + try {if(!user.getStr("password").equals(Md5.EncoderByMd5(controller.getPara("password")))){ + addError("passwordMsg", "密码错误"); + }else{ + //验证器里已经在session里存储了用户登录信息 + c.setSessionAttr("loginUser", user); + c.setSessionAttr("loginFlag", c.getSession()); + Map map = SingleUserSignUtil.getMap(); + map.put("admin", c.getSession()); + } + } catch (NoSuchAlgorithmException e) { + System.out.println("MD5 解密异常~~~"); + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + System.out.println("MD5 解密异常~~~"); + e.printStackTrace(); + } + //删除用户超时或者被挤掉session数据 + if(c.getSession().getAttribute("signError")!=null){ + c.getSession().removeAttribute("signError"); + } + } + @Override + protected void handleError(Controller c) { + c.keepPara("name"); + c.keepPara("password"); + //获取设备名称 + PropKit.use("config.properties"); + String projectName = PropKit.get("project_name"); + c.setAttr("projectName", projectName); + String equipmentName = PropKit.get("equipment_name"); + c.setAttr("equipmentName", equipmentName); + c.render("/login.html"); + System.out.println("-----------用户验证完毕 验证出现问题 返回登录页面-------------"); + } + +} diff --git a/gloam_shell/device_config b/gloam_shell/device_config new file mode 100644 index 0000000..c28a93d --- /dev/null +++ b/gloam_shell/device_config @@ -0,0 +1,228 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +# created by zhangbin +from sys import argv +import json +import os +from pprint import pprint +import shutil + +def update_route(data): + list = [] + route_path = '/etc/sysconfig/static-routes' + requestOldParam = 'any net ' + data['destination_ip_old'] + ' netmask ' + data['ip_mask_old'] + ' gw ' + data['gateway_old'] + ' ' + \ + data['interface'] + result = os.popen( + 'route add -net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] + ' ' + + data['interface']) + result2 = os.popen( + 'route del -net ' + data['destination_ip_old'] + ' netmask ' + data['ip_mask_old'] + ' gw ' + data['gateway_old'] + ' ' + + data['interface']) + # 쳣ֹ + if (result != 0): + print(result) + return + if (result2 != 0): + print(result) + return + # ޸ļ·Ϣ + with open(route_path, 'r+') as f_route: + lines = f_route.readlines() + for line in reversed(lines): + if (requestOldParam in line): + list.append('any net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] + ' ' + \ + data['interface'] + '\n') + else: + list.append(line) + f_route.seek(0) + f_route.truncate() + f_route.writelines(list) + + +def new_route(data): + # · + result = os.popen( + 'route add -net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] +' '+data['interface']) + # 쳣ֹ + if (result != 0): + print(result) + return + route_path = '/etc/sysconfig/static-routes' + # ·Ϣӵļ + result = os.path.exists(route_path) + if (result == False): + with open(route_path, 'w') as f: + f.close() + with open(route_path, 'r+') as f: + strData = 'any net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] + ' ' + \ + data['interface'] + f.seek(0, 2) + f.write('\n' + strData) + + +def remove_route(data): + #ɾ·Ϣ + route_path = '/etc/sysconfig/static-routes' + list = [] + requestParam='any net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] + ' ' + data['interface'] + result = os.popen( + 'route del -net ' + data['destination_ip'] + ' netmask ' + data['ip_mask'] + ' gw ' + data['gateway'] + ' ' + + data['interface']) + # 쳣ֹ + if (result != 0): + print(result) + return + with open(route_path, 'r+')as f_route: + lines = f_route.readlines() + for line in lines: + if (not requestParam in line): + list.append(line) + f_route.seek(0) + f_route.truncate() + f_route.writelines(list) + + +# ת +def exchange_maskint(mask_int): + bin_arr = ['0' for i in range(32)] + for i in range(mask_int): + bin_arr[i] = '1' + tmpmask = [''.join(bin_arr[i * 8:i * 8 + 8]) for i in range(4)] + tmpmask = [str(int(tmpstr, 2)) for tmpstr in tmpmask] + return '.'.join(tmpmask) + + +# ȡ·ɵϢ +def query_route(): + path = '/etc/sysconfig/static-routes' + list = [] + if(os.path.exists(path)): + with open(path, 'a+') as f: + content=f.readlines() + for i in content: + if(not i.strip('\n')==''): + data=i.split(' ') + result = {} + result['destination_ip'] = data[2] + result['ip_mask'] = data[4] + result['gateway'] = data[6] + result['r_interface'] = data[7] + if(result): + list.append(result) + return list + + +# ȡ·ɵϢ +def query_single_route(data): # 洢list + path = '/etc/sysconfig/network-scripts/route-' + list = [] + with open(path + data, 'a+') as f: + content = f.readline() + a = content.split() + b = a[0].split('/') + result = {} + result['destination_ip'] = b[0] + result['ip_mask'] = exchange_maskint(int(b[1])) + result['gateway'] = a[2] + result['r_interface'] = a[4] + if(result): + list.append(result) + return list + + +# ȡõϢ +def query_all_config(): + path = '/etc/sysconfig/network-scripts/' + list = [] + for file in os.listdir(path): + if ('ifcfg-e' in file): + with open(path + file, 'a+') as f: + result = {} + content = f.readline() + while (content): + res = content.split('=') + result[res[0]] = res[1].rstrip('\n').rstrip() + content = f.readline() + if(result): + list.append(result) + return list +''' +def query_all_config(): + networknames=get_networkName() + path = '/etc/sysconfig/network-scripts/ifcfg-' + list = [] + for networkname in networknames: + with open(path + networkname, 'a+') as f: + result = {} + content = f.readline() + while (content): + res = content.split('=') + result[res[0]] = res[1].rstrip('\n').rstrip() + content = f.readline() + list.append(result) + return list +''' +#ȡ +def get_networkName(): + result = os.popen("ifconfig | awk '/^[a-z]/{print $1}'").readlines() + list = [] + for i in result: + if ((i.strip("\n")).strip(":") == 'lo'): + continue + list.append((i.strip("\n")).strip(":")) + return list + +# ޸Ϣ +def modify_config(data): + path = '/etc/sysconfig/network-scripts/' + path2 = '/tmp/' + # listΪN + list = data['request'] + for i in range(len(list)): + dic = {} + if (not (':' in list[i]['DEVICE'])): + with open(path + 'ifcfg-' + list[i]['DEVICE'], 'r+') as f: + for line in f: + (key, value) = line.strip().split('=') + dic[key] = value + dic['HWADDR'] = list[i]['HWADDR'] + dic['NETMASK'] = list[i]['NETMASK'] + dic['GATEWAY'] = list[i]['GATEWAY'] + dic['IPADDR'] = list[i]['IPADDR'] + list2 = [] + for key in dic: + list2.append(key + '=' + dic[key] + '\n') + with open(path2 + 'ifcfg-' + list[i]['DEVICE'], 'w+') as f2: + f2.writelines(list2) + + if (os.path.exists(path + 'ifcfg-' + list[i]['DEVICE'])): + os.remove(path + 'ifcfg-' + list[i]['DEVICE']) + shutil.move(path2 + 'ifcfg-' + list[i]['DEVICE'], path) + # ޸Ϣ + os.popen('service network restart') + + +if __name__ == '__main__': + path_manage = '/etc/sysconfig/network-scripts/ifcfg-unknown2' + data = json.loads(argv[1])[0] + if data['type'] == '1': + list=get_networkName() + if(list): + print(json.dumps(list)) + elif data['type'] == '2': + update_route(data) + elif data['type'] == '3': + remove_route(data) + elif data['type'] == '4': + new_route(data) + elif data['type'] == '5': + list = query_route() + if(list): + print(json.dumps(list)) + elif data['type'] == '6': + modify_config(data) + elif data['type'] == '7': + list = query_all_config() + if(list): + print(json.dumps(list)) + exit(0) diff --git a/gloam_shell/oam.sh b/gloam_shell/oam.sh new file mode 100644 index 0000000..7d6f997 --- /dev/null +++ b/gloam_shell/oam.sh @@ -0,0 +1,197 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Start/Stop Script for the DATACONTROLLER Server +# +# Environment Variable Prequisites +# +# DATACONTROLLER_HOME May point at your DATACONTROLLER "build" directory. +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` + +# Only set DATACONTROLLER_HOME if not already set +[ -z "$DATACONTROLLER_HOME" ] && DATACONTROLLER_HOME=`cd "$PRGDIR/.." ; pwd` +cd "$DATACONTROLLER_HOME"/shell + +if [ -z "$DATACONTROLLER_TMPDIR" ] ; then + DATACONTROLLER_TMPDIR="$DATACONTROLLER_HOME"/temp +fi +if [ ! -d $DATACONTROLLER_TMPDIR ] + then + mkdir $DATACONTROLLER_TMPDIR +fi + +# -------- check jdk +# check nmsjdk +# NMS_HOME=`cd "$DATACONTROLLER_HOME/.." ; pwd` +# cd "$DATACONTROLLER_HOME"/shell +# NMS_JDK="$NMS_HOME"/nmsjdk +# if [ ! -e "$NMS_JDK" ] +# then +# echo "$NMS_JDK not exist" +# exit 0 +#fi +# check java -version +#javaversion=`$NMS_JDK/bin/java -version 2>&1|grep "java version"` +#if [ ! -n "$javaversion" ] +# then +# echo "$NMS_JDK cannot use, please install" +# exit 0 +#fi + +# -------- set jdk path +export JAVA_HOME=$DATACONTROLLER_HOME/jre1.8.0_181 +export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar + + +temp=$CLASSPATH +#setting libs path +libs="$DATACONTROLLER_HOME"/lib/* +append(){ + temp=$temp":"$1 +} +for file in $libs; do + append $file +done +jars="$DATACONTROLLER_HOME"/bin/* +for file in $jars; do + append $file +done +export DC_CLASSPATH=$temp:.:$DATACONTROLLER_HOME/conf +export LD_LIBRARY_PATH=$DATACONTROLLERT_HOME/lib +export LANG=zh_CN.UTF-8 + +echo "Using DATACONTROLLER_HOME: $DATACONTROLLER_HOME" +echo "Using DATACONTROLLER_TMPDIR: $DATACONTROLLER_TMPDIR" +echo "Using JAVA_HOME: $JAVA_HOME" +echo "Using CLASSPATH: $DC_CLASSPATH" + +# ---- get jvm param +jvmconf_file=$DATACONTROLLER_HOME"/conf/jvm.conf" +if [ -f $jvmconf_file ] + then + XmsOpt=`sed -n '/-Xms/p' $jvmconf_file` + XmxOpt=`sed -n '/-Xmx/p' $jvmconf_file` + JAVA_OPTS="$XmsOpt $XmxOpt -XX:+UseParNewGC" +else + JAVA_OPTS="-Xms64m -Xmx256m -XX:+UseParNewGC" +fi +# ޸ij +program="com.nis.gloam.main.StartUp" +name="gloam" + +proc_id= + +writePid() +{ + ps aux|grep java|grep $program|grep -v grep|awk '{print $2}' > $DATACONTROLLER_TMPDIR/serverPid.temp +} +getPid() +{ + unset proc_id + proc_id=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'` +} + +if [ "$1" = "start" ] ; then + getPid + if [ -n "$proc_id" ] + then + echo "$name already running......" + else + nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $DC_CLASSPATH $program >./nohu.log 2>&1 & + sleep 3 + getPid + if [ -n "$proc_id" ] + then + echo "$name start success!!!!!" + writePid + else + echo "$name start error!!!!!" + fi + fi +elif [ "$1" = "stop" ]; then + getPid + if [ -n "$proc_id" ] + then + echo "$name is start, now kill......" + kill -15 $proc_id + sleep 3 + writePid + echo "$name kill ok !!!!!!!!!!!!!" + else + echo "$name is not start!!!!!!!!!!!" + fi +elif [ "$1" = "restart" ] ; then + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name is start, now restart......" >> $DATACONTROLLER_TMPDIR/job.log + count=1 + while [ $count -le 3 ] + do + sleep 1 + kill -15 $proc_id + sleep 1 + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop success!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + break + fi + count=$count+1 + done + + getPid + if [ -n "$proc_id" ] + then + sleep 1 + kill -9 $proc_id + getPid + if [ -n "$proc_id" ] + then + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name stop -9 error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + exit 1 + fi + fi + + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name is not start, now start......" >> $DATACONTROLLER_TMPDIR/job.log + fi + + #--------copy right, start proc + nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $DC_CLASSPATH $program >/dev/null & + sleep 3 + getPid + if [ -n "$proc_id" ] + then + writePid + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name restart success!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + else + echo "`date +%Y-%m-%d" "%H:%M:%S` :$name restart error!!!!!!!!!!" >> $DATACONTROLLER_TMPDIR/job.log + fi + +else + echo "Usage: oam.sh ( commands ... )" + echo "commands:" + echo " start Start $name" + echo " stop Stop $name" + echo " restart ReStart $name in a separate window" +fi + +cd - diff --git a/gloam_shell/remote_config b/gloam_shell/remote_config new file mode 100644 index 0000000..dcb49b5 --- /dev/null +++ b/gloam_shell/remote_config @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +# created by tanghao +from sys import argv +import json +import os +import shutil + + +def trans_list(data): + result='' + for i in range(len(data)): + if(isinstance(data[i],dict)): + result=trans_dic(data[i]) + return result + +def trans_dic(data): + count = len(data) - 1 + result='[{' + for key in data: + if (count == 0): + if(isinstance(data[key],list)): + methodResult=trans_list(data[key]) + result +='\\\"' + key + '\\\"' + ":" + methodResult + elif(isinstance(data[key],dict)): + methodResult =trans_dic(data[key]) + result += '\\\"' + key + '\\\"' + ":" + methodResult + else: + result += '\\\"' + key + '\\\"' + ":\\\"" + data[key] + "\\\"" + else: + result += '\\\"' + key + '\\\"' + ":\\\"" + data[key] + "\\\"," + count = count - 1 + result+='}]' + return result + +if __name__ == '__main__': + data = json.loads(argv[1])[0] + ip=data['ip'] + jsonStr=trans_dic(data) + result=os.system('ssh -o ConnectTimeout=3 '+ip+' \'device_config "'+jsonStr+'"\'') + exit(0) + diff --git a/gloam_shell/restart.sh b/gloam_shell/restart.sh new file mode 100644 index 0000000..292dffb --- /dev/null +++ b/gloam_shell/restart.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Retart Script for the DataController +# +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` +EXECUTABLE=oam.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" restart "$@" \ No newline at end of file diff --git a/gloam_shell/shutdown.sh b/gloam_shell/shutdown.sh new file mode 100644 index 0000000..c5cd943 --- /dev/null +++ b/gloam_shell/shutdown.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Stop Script for the NMS Server +# +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` +EXECUTABLE=oam.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" stop "$@" \ No newline at end of file diff --git a/gloam_shell/startup.sh b/gloam_shell/startup.sh new file mode 100644 index 0000000..e982b30 --- /dev/null +++ b/gloam_shell/startup.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# ----------------------------------------------------------------------------- +# Start/Stop Script for the NMSSERVER Server +# +# Environment Variable Prequisites +# +# NMSSERVER_HOME May point at your NMSSERVER "build" directory. +# ----------------------------------------------------------------------------- + +# resolve links - $0 may be a softlink +PRG="$0" + +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`/"$link" + fi +done + +PRGDIR=`dirname "$PRG"` + +EXECUTABLE=oam.sh + +if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then + echo "Cannot find $PRGDIR/$EXECUTABLE" + echo "This file is needed to run this program" + exit 1 +fi + +exec "$PRGDIR"/"$EXECUTABLE" start "$@" diff --git a/gloam_sql/oam.sql b/gloam_sql/oam.sql new file mode 100644 index 0000000..793a7b1 --- /dev/null +++ b/gloam_sql/oam.sql @@ -0,0 +1,192 @@ +/* +Navicat SQLite Data Transfer + +Source Server : oam +Source Server Version : 30714 +Source Host : :0 + +Target Server Type : SQLite +Target Server Version : 30714 +File Encoding : 65001 + +Date: 2018-07-09 09:14:03 +*/ + +/*首先需要创建一个空的 main.db文件!!!!!!!!*/ +PRAGMA foreign_keys = OFF; + +-- ---------------------------- +-- Table structure for device_info +-- ---------------------------- +DROP TABLE IF EXISTS "main"."device_info"; +CREATE TABLE "device_info" ( +"device_id" varchar(128) NOT NULL, +"vendor_id" INTEGER, +"vendor_name" varchar(128), +"device_made" varchar(3), +"device_type" varchar(3), +"soft_version" varchar(32), +"interface" varchar(1024), +"mem_total" INTEGER, +"cpu_info" varchar(1024), +"disk_info" varchar(1024), +"organs" varchar(64), +"commu_addr" varchar(16), +"commu_mac" varchar(18), +"commu_mask" varchar(16), +"commu_gateway" varchar(16), +"manage_addr" varchar(16), +"manage_mac" varchar(18), +"manage_mask" varchar(16), +"manage_gateway" varchar(16), +"center_ip1" varchar(16), +"center_ip2" varchar(16), +"manage_interface" varchar(18), +"commu_interface" varchar(18), +"insititue" varchar(18), +"address" varchar(128), +"address_code" varchar(10), +"contact" varchar(1024), +"memo" varchar(256), +"update_time" varchar(16), +"update_time_long" INTEGER, +PRIMARY KEY ("device_id" ASC) +); + +-- ---------------------------- +-- Records of device_info +-- ---------------------------- +INSERT INTO "main"."device_info" VALUES (1, 1, '设备名称', null, '测试类型5', 1.5, null, null, null, null, null, null, '', '', '', '192.168.11.11', '00:00:00:00:00:04', '255.255.255.0', '192.168.10.1', '', null, null, null, null, null, null, null, null, '2018-07-06 11:49:10', 1530848950757); + + +-- ---------------------------- +-- Table structure for system_route_config +-- ---------------------------- +DROP TABLE IF EXISTS "main"."system_route_config"; +CREATE TABLE "system_route_config" ( +"config_id" INTEGER NOT NULL, +"destination_ip" varchar(20), +"ip_mask" varchar(20), +"gateway" varchar(20), +"interface" varchar(20), +PRIMARY KEY ("config_id" ASC) +); + +-- ---------------------------- +-- Records of system_route_config +-- ---------------------------- +INSERT INTO "main"."system_route_config" VALUES (1, '192.168.10.34', '00:00:00:00:00:01', '255.255.255.0', 124); + +-- ---------------------------- +-- Table structure for sys_log +-- ---------------------------- +DROP TABLE IF EXISTS "main"."sys_log"; +CREATE TABLE "sys_log" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +"type" char(1) DEFAULT 1, +"title" varchar(255) DEFAULT "", +"create_by" varchar(64), +"create_date" TEXT, +"remote_addr" varchar(255), +"user_agent" varchar(255), +"request_uri" varchar(255), +"method" varchar(5), +"params" TEXT, +"exception" TEXT, +"create_time" INTEGER, +"remarks" TEXT +); + +-- ---------------------------- +-- Records of sys_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for sys_menu +-- ---------------------------- +DROP TABLE IF EXISTS "main"."sys_menu"; +CREATE TABLE "sys_menu" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +"parent_id" varchar(64) NOT NULL, +"parent_ids" varchar(2000) NOT NULL, +"name" varchar(100) NOT NULL, +"sort" decimal(10) NOT NULL, +"href" varchar(2000), +"target" varhcar(20), +"icon" varchar(100), +"is_show" char(1) NOT NULL, +"permission" varchar(200), +"create_by" varchar(64) NOT NULL, +"create_date" TEXT NOT NULL, +"update_by" varchar(64) NOT NULL, +"update_date" TEXT NOT NULL, +"remarks" varchar(255), +"del_flag" char(1) NOT NULL DEFAULT 0 +); + +-- ---------------------------- +-- Records of sys_menu +-- ---------------------------- +INSERT INTO "main"."sys_menu" VALUES (1, 0, 0, 'system.config', 1, '/config', '', null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', '', 0); +INSERT INTO "main"."sys_menu" VALUES (13, 0, 0, 'audit.log', 3, '/auditlog', null, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', null, 0); +INSERT INTO "main"."sys_menu" VALUES (14, 0, 0, 'sign.in', 1, '/login', 1, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'login', 0); +INSERT INTO "main"."sys_menu" VALUES (15, 0, 0, 'sign.out', 1, '/exit', 1, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'exit', 0); +INSERT INTO "main"."sys_menu" VALUES (16, 0, 0, 'route.config', 2, '/route', '', null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', '', 0); +INSERT INTO "main"."sys_menu" VALUES (17, 0, 0, 'route.modify', 1, '/route/modifyRoute', 1, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'route.modify', 0); +INSERT INTO "main"."sys_menu" VALUES (18, 0, 0, 'config.modify', 1, '/config/modifyConfig', 1, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'config.modify', 0); +INSERT INTO "main"."sys_menu" VALUES (19, 0, 0, 'reboot', 1, '/config/rebootConfig', '', null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'reboot', 0); +INSERT INTO "main"."sys_menu" VALUES (20, 0, 0, 'shutdown', 1, '/config/shutDownConfig', '', null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', 'shutdown', 0); +INSERT INTO "main"."sys_menu" VALUES (21, 0, 0, '', 1, '', null, null, 1, null, 'th', '2018年6月27日 09:15:12', 'th', '2018年6月27日 09:15:20', null, 0); + +-- ---------------------------- +-- Table structure for sys_user +-- ---------------------------- +DROP TABLE IF EXISTS "main"."sys_user"; +CREATE TABLE "sys_user" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +"company_id" varchar(64), +"office_id" varchar(64), +"room_no" varchar(64), +"login_name" varchar(100) NOT NULL, +"password" varchar(100) NOT NULL, +"no" varchar(100), +"name" varchar(100), +"email" varchar(200), +"phone" varchar(200), +"mobile" varchar(200), +"user_type" char(1), +"photo" varchar(1000), +"login_ip" varchar(100), +"login_date" TEXT, +"login_flag" varchar(64), +"create_by" varchar(64), +"create_date" TEXT, +"update_by" varchar(64), +"update_date" TEXT, +"remarks" varchar(255), +"del_flag" char(1) DEFAULT 0, +"qrcode" varchar(1000), +"sign" varchar(450) +); + +-- ---------------------------- +-- Records of sys_user +-- ---------------------------- +INSERT INTO "main"."sys_user" VALUES (2, null, null, 1, 'admin', '2DmsiahIc/WLZIMs0QIPFQ==', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0, null, null); + +-- ---------------------------- +-- Table structure for sys_user_menu +-- ---------------------------- +DROP TABLE IF EXISTS "main"."sys_user_menu"; +CREATE TABLE "sys_user_menu" ( +"user_id" varchar(64) NOT NULL, +"menu_id" varchar(64) NOT NULL, +primary key (`user_id`,`menu_id`) +); + +-- ---------------------------- +-- Records of sys_user_menu +-- ---------------------------- +INSERT INTO "main"."sys_user_menu" VALUES (2, 1); +INSERT INTO "main"."sys_user_menu" VALUES (2, 13); +INSERT INTO "main"."sys_user_menu" VALUES (2, 16); diff --git a/gloam_useinfo/oam使用手册.docx b/gloam_useinfo/oam使用手册.docx new file mode 100644 index 0000000..7083d70 Binary files /dev/null and b/gloam_useinfo/oam使用手册.docx differ diff --git a/gloam_useinfo/oam安装部署.docx b/gloam_useinfo/oam安装部署.docx new file mode 100644 index 0000000..438c6a1 Binary files /dev/null and b/gloam_useinfo/oam安装部署.docx differ