diff --git a/.checkstyle b/.checkstyle new file mode 100644 index 0000000..c559342 --- /dev/null +++ b/.checkstyle @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.gitignore b/.gitignore index 406c8ec..6fd7dc0 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ buildNumber.properties # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff +.idea/** .idea/**/workspace.xml .idea/**/tasks.xml .idea/**/usage.statistics.xml diff --git a/.pmd b/.pmd new file mode 100644 index 0000000..fa05070 --- /dev/null +++ b/.pmd @@ -0,0 +1,1258 @@ + + + false + .ruleset + + + CallSuperFirst + Android + + + CallSuperLast + Android + + + DoNotHardCodeSDCard + Android + + + AvoidBranchingStatementAsLastInLoop + Basic + + + AvoidDecimalLiteralsInBigDecimalConstructor + Basic + + + AvoidMultipleUnaryOperators + Basic + + + AvoidThreadGroup + Basic + + + AvoidUsingHardCodedIP + Basic + + + AvoidUsingOctalValues + Basic + + + BigIntegerInstantiation + Basic + + + BooleanInstantiation + Basic + + + BrokenNullCheck + Basic + + + CheckResultSet + Basic + + + CheckSkipResult + Basic + + + ClassCastExceptionWithToArray + Basic + + + DontCallThreadRun + Basic + + + DontUseFloatTypeForLoopIndices + Basic + + + DoubleCheckedLocking + Basic + + + ExtendsObject + Basic + + + ForLoopShouldBeWhileLoop + Basic + + + JumbledIncrementer + Basic + + + MisplacedNullCheck + Basic + + + OverrideBothEqualsAndHashcode + Basic + + + ReturnFromFinallyBlock + Basic + + + UnconditionalIfStatement + Basic + + + AssignmentInOperand + Basic Ecmascript + + + AvoidTrailingComma + Basic Ecmascript + + + ConsistentReturn + Basic Ecmascript + + + EqualComparison + Basic Ecmascript + + + GlobalVariable + Basic Ecmascript + + + InnaccurateNumericLiteral + Basic Ecmascript + + + ScopeForInVariable + Basic Ecmascript + + + UnreachableCode + Basic Ecmascript + + + UseBaseWithParseInt + Basic Ecmascript + + + DontNestJsfInJstlIteration + Basic JSF + + + DuplicateJspImports + Basic JSP + + + IframeMissingSrcAttribute + Basic JSP + + + JspEncoding + Basic JSP + + + NoClassAttribute + Basic JSP + + + NoHtmlComments + Basic JSP + + + NoInlineScript + Basic JSP + + + NoInlineStyleInformation + Basic JSP + + + NoJspForward + Basic JSP + + + NoLongScripts + Basic JSP + + + NoScriptlets + Basic JSP + + + NoUnsanitizedJSPExpression + Basic JSP + + + AvoidDeeplyNestedIfStmts + Basic Velocity + + + AvoidReassigningParameters + Basic Velocity + + + CollapsibleIfStatements + Basic Velocity + + + EmptyForeachStmt + Basic Velocity + + + EmptyIfStmt + Basic Velocity + + + ExcessiveTemplateLength + Basic Velocity + + + NoInlineJavaScript + Basic Velocity + + + NoInlineStyles + Basic Velocity + + + UnusedMacroParameter + Basic Velocity + + + MistypedCDATASection + Basic XML + + + ForLoopsMustUseBraces + Braces + + + IfElseStmtsMustUseBraces + Braces + + + IfStmtsMustUseBraces + Braces + + + WhileLoopsMustUseBraces + Braces + + + CloneMethodMustImplementCloneable + Clone Implementation + + + CloneThrowsCloneNotSupportedException + Clone Implementation + + + ProperCloneImplementation + Clone Implementation + + + CyclomaticComplexity + Code Size + + + ExcessiveClassLength + Code Size + + + ExcessiveMethodLength + Code Size + + + ExcessiveObjectLength + Code Size + + + ExcessivePackageBodyLength + Code Size + + + ExcessivePackageSpecificationLength + Code Size + + + ExcessiveParameterList + Code Size + + + ExcessivePublicCount + Code Size + + + ExcessiveTypeLength + Code Size + + + ModifiedCyclomaticComplexity + Code Size + + + NcssConstructorCount + Code Size + + + NcssMethodCount + Code Size + + + NcssObjectCount + Code Size + + + NcssTypeCount + Code Size + + + NPathComplexity + Code Size + + + StdCyclomaticComplexity + Code Size + + + TooManyFields + Code Size + + + TooManyMethods + Code Size + + + CommentContent + Comments + + + CommentRequired + Comments + + + CommentSize + Comments + + + AtLeastOneConstructor + Controversial + + + AvoidAccessibilityAlteration + Controversial + + + AvoidFinalLocalVariable + Controversial + + + AvoidLiteralsInIfCondition + Controversial + + + AvoidPrefixingMethodParameters + Controversial + + + AvoidUsingNativeCode + Controversial + + + AvoidUsingShortType + Controversial + + + AvoidUsingVolatile + Controversial + + + BooleanInversion + Controversial + + + CallSuperInConstructor + Controversial + + + DataflowAnomalyAnalysis + Controversial + + + DefaultPackage + Controversial + + + DoNotCallGarbageCollectionExplicitly + Controversial + + + DontImportSun + Controversial + + + NullAssignment + Controversial + + + OneDeclarationPerLine + Controversial + + + OnlyOneReturn + Controversial + + + SuspiciousOctalEscape + Controversial + + + UnnecessaryConstructor + Controversial + + + UseConcurrentHashMap + Controversial + + + UseObjectForClearerAPI + Controversial + + + CouplingBetweenObjects + Coupling + + + ExcessiveImports + Coupling + + + LawOfDemeter + Coupling + + + LooseCoupling + Coupling + + + LoosePackageCoupling + Coupling + + + AbstractClassWithoutAbstractMethod + Design + + + AbstractClassWithoutAnyMethod + Design + + + AccessorClassGeneration + Design + + + AssignmentToNonFinalStatic + Design + + + AvoidConstantsInterface + Design + + + AvoidInstanceofChecksInCatchClause + Design + + + AvoidProtectedFieldInFinalClass + Design + + + AvoidProtectedMethodInFinalClassNotExtending + Design + + + AvoidSynchronizedAtMethodLevel + Design + + + BadComparison + Design + + + ClassWithOnlyPrivateConstructorsShouldBeFinal + Design + + + CloseResource + Design + + + CompareObjectsWithEquals + Design + + + ConfusingTernary + Design + + + ConstructorCallsOverridableMethod + Design + + + DefaultLabelNotLastInSwitchStmt + Design + + + EmptyMethodInAbstractClassShouldBeAbstract + Design + + + EqualsNull + Design + + + FieldDeclarationsShouldBeAtStartOfClass + Design + + + FinalFieldCouldBeStatic + Design + + + GodClass + Design + + + IdempotentOperations + Design + + + ImmutableField + Design + + + InstantiationToGetClass + Design + + + LogicInversion + Design + + + MissingBreakInSwitch + Design + + + MissingStaticMethodInNonInstantiatableClass + Design + + + NonCaseLabelInSwitchStatement + Design + + + NonStaticInitializer + Design + + + NonThreadSafeSingleton + Design + + + OptimizableToArrayCall + Design + + + PositionLiteralsFirstInCaseInsensitiveComparisons + Design + + + PositionLiteralsFirstInComparisons + Design + + + PreserveStackTrace + Design + + + ReturnEmptyArrayRatherThanNull + Design + + + SimpleDateFormatNeedsLocale + Design + + + SimplifyBooleanExpressions + Design + + + SimplifyBooleanReturns + Design + + + SimplifyConditional + Design + + + SingularField + Design + + + SwitchDensity + Design + + + SwitchStmtsShouldHaveDefault + Design + + + TooFewBranchesForASwitchStatement + Design + + + UncommentedEmptyConstructor + Design + + + UncommentedEmptyMethodBody + Design + + + UnnecessaryLocalBeforeReturn + Design + + + UnsynchronizedStaticDateFormatter + Design + + + UseCollectionIsEmpty + Design + + + UseLocaleWithCaseConversions + Design + + + UseNotifyAllInsteadOfNotify + Design + + + UseUtilityClass + Design + + + UseVarargs + Design + + + EmptyCatchBlock + Empty Code + + + EmptyFinallyBlock + Empty Code + + + EmptyInitializer + Empty Code + + + EmptyStatementBlock + Empty Code + + + EmptyStatementNotInLoop + Empty Code + + + EmptyStaticInitializer + Empty Code + + + EmptySwitchStatements + Empty Code + + + EmptySynchronizedBlock + Empty Code + + + EmptyTryBlock + Empty Code + + + EmptyWhileStmt + Empty Code + + + AvoidCallingFinalize + Finalizer + + + EmptyFinalizer + Finalizer + + + FinalizeDoesNotCallSuperFinalize + Finalizer + + + FinalizeOnlyCallsSuperFinalize + Finalizer + + + FinalizeOverloaded + Finalizer + + + FinalizeShouldBeProtected + Finalizer + + + DontImportJavaLang + Import Statements + + + DuplicateImports + Import Statements + + + ImportFromSamePackage + Import Statements + + + TooManyStaticImports + Import Statements + + + UnnecessaryFullyQualifiedName + Import Statements + + + UnusedImports + Import Statements + + + DoNotCallSystemExit + J2EE + + + DoNotUseThreads + J2EE + + + LocalHomeNamingConvention + J2EE + + + LocalInterfaceSessionNamingConvention + J2EE + + + MDBAndSessionBeanNamingConvention + J2EE + + + RemoteInterfaceNamingConvention + J2EE + + + RemoteSessionInterfaceNamingConvention + J2EE + + + StaticEJBFieldShouldBeFinal + J2EE + + + UseProperClassLoader + J2EE + + + GuardDebugLogging + Jakarta Commons Logging + + + GuardLogStatement + Jakarta Commons Logging + + + ProperLogger + Jakarta Commons Logging + + + UseCorrectExceptionLogging + Jakarta Commons Logging + + + AvoidPrintStackTrace + Java Logging + + + GuardLogStatementJavaUtil + Java Logging + + + LoggerIsNotStaticFinal + Java Logging + + + MoreThanOneLogger + Java Logging + + + SystemPrintln + Java Logging + + + BeanMembersShouldSerialize + JavaBeans + + + MissingSerialVersionUID + JavaBeans + + + JUnitAssertionsShouldIncludeMessage + JUnit + + + JUnitSpelling + JUnit + + + JUnitStaticSuite + JUnit + + + JUnitTestContainsTooManyAsserts + JUnit + + + JUnitTestsShouldIncludeAssert + JUnit + + + SimplifyBooleanAssertion + JUnit + + + TestClassWithoutTestCases + JUnit + + + UnnecessaryBooleanAssertion + JUnit + + + UseAssertEqualsInsteadOfAssertTrue + JUnit + + + UseAssertNullInsteadOfAssertTrue + JUnit + + + UseAssertSameInsteadOfAssertTrue + JUnit + + + UseAssertTrueInsteadOfAssertEquals + JUnit + + + AvoidAssertAsIdentifier + Migration + + + AvoidEnumAsIdentifier + Migration + + + ByteInstantiation + Migration + + + IntegerInstantiation + Migration + + + JUnit4SuitesShouldUseSuiteAnnotation + Migration + + + JUnit4TestShouldUseAfterAnnotation + Migration + + + JUnit4TestShouldUseBeforeAnnotation + Migration + + + JUnit4TestShouldUseTestAnnotation + Migration + + + JUnitUseExpected + Migration + + + LongInstantiation + Migration + + + ReplaceEnumerationWithIterator + Migration + + + ReplaceHashtableWithMap + Migration + + + ReplaceVectorWithList + Migration + + + ShortInstantiation + Migration + + + AbstractNaming + Naming + + + AvoidDollarSigns + Naming + + + AvoidFieldNameMatchingMethodName + Naming + + + AvoidFieldNameMatchingTypeName + Naming + + + BooleanGetMethodName + Naming + + + ClassNamingConventions + Naming + + + GenericsNaming + Naming + + + LongVariable + Naming + + + MethodNamingConventions + Naming + + + MethodWithSameNameAsEnclosingClass + Naming + + + MisleadingVariableName + Naming + + + NoPackage + Naming + + + PackageCase + Naming + + + ShortClassName + Naming + + + ShortMethodName + Naming + + + ShortVariable + Naming + + + SuspiciousConstantFieldName + Naming + + + SuspiciousEqualsMethodName + Naming + + + SuspiciousHashcodeMethodName + Naming + + + VariableNamingConventions + Naming + + + AddEmptyString + Optimization + + + AvoidArrayLoops + Optimization + + + AvoidInstantiatingObjectsInLoops + Optimization + + + LocalVariableCouldBeFinal + Optimization + + + MethodArgumentCouldBeFinal + Optimization + + + PrematureDeclaration + Optimization + + + RedundantFieldInitializer + Optimization + + + SimplifyStartsWith + Optimization + + + UnnecessaryWrapperObjectCreation + Optimization + + + UseArrayListInsteadOfVector + Optimization + + + UseArraysAsList + Optimization + + + UseStringBufferForStringAppends + Optimization + + + TO_DATEWithoutDateFormat + PLSQL DATETIME + + + TO_DATE_TO_CHAR + PLSQL DATETIME + + + TO_TIMESTAMPWithoutDateFormat + PLSQL DATETIME + + + ArrayIsStoredDirectly + Security Code Guidelines + + + MethodReturnsInternalArray + Security Code Guidelines + + + AvoidCatchingGenericException + Strict Exceptions + + + AvoidCatchingNPE + Strict Exceptions + + + AvoidCatchingThrowable + Strict Exceptions + + + AvoidLosingExceptionInformation + Strict Exceptions + + + AvoidRethrowingException + Strict Exceptions + + + AvoidThrowingNewInstanceOfSameException + Strict Exceptions + + + AvoidThrowingNullPointerException + Strict Exceptions + + + AvoidThrowingRawExceptionTypes + Strict Exceptions + + + DoNotExtendJavaLangError + Strict Exceptions + + + DoNotThrowExceptionInFinally + Strict Exceptions + + + ExceptionAsFlowControl + Strict Exceptions + + + SignatureDeclareThrowsException + Strict Exceptions + + + AppendCharacterWithChar + String and StringBuffer + + + AvoidDuplicateLiterals + String and StringBuffer + + + AvoidStringBufferField + String and StringBuffer + + + ConsecutiveAppendsShouldReuse + String and StringBuffer + + + ConsecutiveLiteralAppends + String and StringBuffer + + + InefficientEmptyStringCheck + String and StringBuffer + + + InefficientStringBuffering + String and StringBuffer + + + InsufficientStringBufferDeclaration + String and StringBuffer + + + StringBufferInstantiationWithChar + String and StringBuffer + + + StringInstantiation + String and StringBuffer + + + StringToString + String and StringBuffer + + + UnnecessaryCaseChange + String and StringBuffer + + + UseEqualsToCompareStrings + String and StringBuffer + + + UseIndexOfChar + String and StringBuffer + + + UselessStringValueOf + String and StringBuffer + + + UseStringBufferLength + String and StringBuffer + + + TomKytesDespair + Tom Kyte's Despair + + + UnnecessaryBlock + Unnecessary + + + UnnecessaryConversionTemporary + Unnecessary + + + UnnecessaryFinalModifier + Unnecessary + + + UnnecessaryParentheses + Unnecessary + + + UnnecessaryReturn + Unnecessary + + + UnusedNullCheckInEquals + Unnecessary + + + UselessOperationOnImmutable + Unnecessary + + + UselessOverridingMethod + Unnecessary + + + UselessParentheses + Unnecessary + + + UnusedFormalParameter + Unused Code + + + UnusedLocalVariable + Unused Code + + + UnusedModifier + Unused Code + + + UnusedPrivateField + Unused Code + + + UnusedPrivateMethod + Unused Code + + + AvoidAxisNavigation + XPath in XSL + + + UseConcatOnce + XPath in XSL + + + false + true + true + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..a491e90 --- /dev/null +++ b/pom.xml @@ -0,0 +1,440 @@ + + + 4.0.0 + kcg + imis + war + 1.0.0 + http://maven.apache.org + + + 4.0.9.RELEASE + 3.5.0 + 3.0.5 + UTF-8 + UTF-8 + + + + + mvn2 + http://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + http://www.egovframe.go.kr/maven/ + + true + + + false + + + + + + + + + egovframework.rte + egovframework.rte.psl.dataaccess + ${egovframework.rte.version} + + + + egovframework.rte + egovframework.rte.ptl.mvc + ${egovframework.rte.version} + + + + egovframework.rte + egovframework.rte.fdl.property + ${egovframework.rte.version} + + + + egovframework.rte + egovframework.rte.fdl.excel + ${egovframework.rte.version} + + + + egovframework.rte + egovframework.rte.fdl.crypto + ${egovframework.rte.version} + + + + egovframework.rte + egovframework.rte.fdl.string + ${egovframework.rte.version} + + + slf4j-api + org.slf4j + + + + + + egovframework.rte + egovframework.rte.fdl.security + ${egovframework.rte.version} + + + slf4j-api + org.slf4j + + + + + + + + commons-dbcp + commons-dbcp + 1.3 + + + + org.aspectj + aspectjrt + 1.8.0 + + + + org.aspectj + aspectjweaver + 1.8.0 + + + + org.aspectj + aspectjtools + 1.8.0 + + + + + javax.validation + validation-api + 1.0.0.GA + + + + net.sf + log4jdbc3 + 1.1 + + + + + org.springmodules + spring-modules-validation + 0.9 + + + + commons-validator + commons-validator + 1.3.1 + + + + org.antlr + antlr + 3.0.1 + + + + + + + ojdbc + ojdbc + 14 + system + ${basedir}/src/main/webapp/WEB-INF/lib/ojdbc-14.jar + + + + + + + + org.springframework + spring-jdbc + ${spring.maven.artifact.version} + + + + mysql + mysql-connector-java + 5.0.2 + + + + + + javax.servlet + jstl + 1.2 + + + taglibs + standard + 1.1.2 + + + + javax.servlet + servlet-api + 2.5 + provided + + + + + + org.apache.tiles + tiles-extras + ${org.apache.tiles.version} + + + org.apache.tiles + tiles-jsp + ${org.apache.tiles.version} + + + org.apache.tiles + tiles-servlet + ${org.apache.tiles.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.8.3 + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + + + + com.ckeditor + ckeditor-java-core + 3.5.3 + + + + + commons-fileupload + commons-fileupload + 1.3.1 + + + + commons-io + commons-io + 2.5 + + + + junit + junit + 4.11 + test + + + + org.springframework + spring-test + ${spring.maven.artifact.version} + test + + + + + com.navercorp.lucy + lucy-xss-servlet + 2.0.0 + + + + + install + ${basedir}/target + imis + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.6 + 1.6 + UTF-8 + + + + org.codehaus.mojo + hibernate3-maven-plugin + 2.1 + + + + hbm2ddl + annotationconfiguration + + + + + + hsqldb + hsqldb + 1.8.0.7 + + + + + + org.codehaus.mojo + emma-maven-plugin + 1.0-alpha-1 + + + + org.apache.maven.plugins + maven-pmd-plugin + 2.4 + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + + + maven-compiler-plugin + + + [2.5.1,) + + + testCompile + compile + + + + + + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + false + true + once + xml + + **/Abstract*.java + **/*Suite.java + + + **/*Test.java + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.17 + + ${basedir}\src\main\resources\config\KGI_Checks.xml + + + + org.apache.maven.plugins + maven-compiler-plugin + + 7 + 7 + + + + + + ${basedir}/target/site + + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.4 + + + + org.apache.maven.plugins + maven-javadoc-plugin + + 128m + 512m + ${encoding} + ${encoding} + ${encoding} + -Xdoclint:none + + + + + maven-jxr-plugin + + ${encoding} + ${encoding} + true + apidocs + + + + + \ No newline at end of file diff --git a/src/main/java/kcg/imis/admin/vo/LogSearchVO.java b/src/main/java/kcg/imis/admin/vo/LogSearchVO.java new file mode 100644 index 0000000..31cb8c6 --- /dev/null +++ b/src/main/java/kcg/imis/admin/vo/LogSearchVO.java @@ -0,0 +1,90 @@ +package kcg.imis.admin.vo; + +import kcg.imis.cmmn.bbs.BaseSearchVO; + +public class LogSearchVO extends BaseSearchVO { + + public LogSearchVO() { + super(); + } + + private int type = 0; + private String sdate; + private String edate; + private String place1; + private String name; + private String order; + /** + * @return the type + */ + public int getType() { + return type; + } + /** + * @param type the type to set + */ + public void setType(int type) { + this.type = type; + } + /** + * @return the sdate + */ + public String getSdate() { + return sdate; + } + /** + * @param sdate the sdate to set + */ + public void setSdate(String sdate) { + this.sdate = sdate; + } + /** + * @return the edate + */ + public String getEdate() { + return edate; + } + /** + * @param edate the edate to set + */ + public void setEdate(String edate) { + this.edate = edate; + } + /** + * @return the place1 + */ + public String getPlace1() { + return place1; + } + /** + * @param place1 the place1 to set + */ + public void setPlace1(String place1) { + this.place1 = place1; + } + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the order + */ + public String getOrder() { + return order; + } + /** + * @param order the order to set + */ + public void setOrder(String order) { + this.order = order; + } + +} diff --git a/src/main/java/kcg/imis/admin/vo/LogVO.java b/src/main/java/kcg/imis/admin/vo/LogVO.java new file mode 100644 index 0000000..8d14954 --- /dev/null +++ b/src/main/java/kcg/imis/admin/vo/LogVO.java @@ -0,0 +1,123 @@ +package kcg.imis.admin.vo; + +public class LogVO { + + private int rnum; + private String userid; + private String regdate; + private String position; + private String name; + private String location1; + private String location2; + private String location3; + private String ip; + /** + * @return the seq + */ + public int getRnum() { + return rnum; + } + /** + * @param seq the seq to set + */ + public void setRnum(int rnum) { + this.rnum = rnum; + } + /** + * @return the userid + */ + public String getUserid() { + return userid; + } + /** + * @param userid the userid to set + */ + public void setUserid(String userid) { + this.userid = userid; + } + /** + * @return the regdate + */ + public String getRegdate() { + return regdate; + } + /** + * @param regdate the regdate to set + */ + public void setRegdate(String regdate) { + this.regdate = regdate; + } + /** + * @return the position + */ + public String getPosition() { + return position; + } + /** + * @param position the position to set + */ + public void setPosition(String position) { + this.position = position; + } + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the location1 + */ + public String getLocation1() { + return location1; + } + /** + * @param location1 the location1 to set + */ + public void setLocation1(String location1) { + this.location1 = location1; + } + /** + * @return the location2 + */ + public String getLocation2() { + return location2; + } + /** + * @param location2 the location2 to set + */ + public void setLocation2(String location2) { + this.location2 = location2; + } + /** + * @return the location3 + */ + public String getLocation3() { + return location3; + } + /** + * @param location3 the location3 to set + */ + public void setLocation3(String location3) { + this.location3 = location3; + } + /** + * @return the ip + */ + public String getIp() { + return ip; + } + /** + * @param ip the ip to set + */ + public void setIp(String ip) { + this.ip = ip; + } + +} diff --git a/src/main/java/kcg/imis/admin/web/AdminController.java b/src/main/java/kcg/imis/admin/web/AdminController.java new file mode 100644 index 0000000..06d9463 --- /dev/null +++ b/src/main/java/kcg/imis/admin/web/AdminController.java @@ -0,0 +1,397 @@ +package kcg.imis.admin.web; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.excel.ExcelExporter; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.member.service.MemberService; +import kcg.imis.member.vo.MemberSearchVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.moniter.service.MoniterService; +import kcg.imis.moniter.vo.MoniterSearchVO; +import kcg.imis.moniter.vo.MoniterVO; +import kcg.imis.sec.LoginSuccessHandler; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; +import kcg.imis.sec.mapper.SecurityMapper; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.session.SessionRegistry; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.support.SessionStatus; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * @FileName : AdminController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 18. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/admin") +public class AdminController { + + private static final Logger LOGGER = LoggerFactory.getLogger(AdminController.class); + + @Resource(name = "codeService") + CodeService codeService; + + @Resource(name = "memberService") + MemberService memberService; + + @Resource(name = "moniterService") + MoniterService moniterService; + + @RequestMapping(value = "/memberAuth.do") + public String reportSaveList(final MemberSearchVO searchVO, final Model model) throws Exception{ + + LoginUserVO user = UserUtil.getMemberInfo(); + + /* 페이징 처리 정보 */ + searchVO.setPageUnit(20); + searchVO.setPageSize(15); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + int totSearchCnt = memberService.getMemberListCnt(searchVO); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + HashMap result = memberService.getMemberListUserVo(searchVO); + model.addAttribute("head", result.get("head")); + model.addAttribute("section", result.get("section")); + model.addAttribute("resultList", result.get("resultList")); + model.addAttribute("loginUserVO", user); + + String targetPlace1 = searchVO.getPlace1(); + if (StringUtils.isBlank(targetPlace1)) { + targetPlace1 = user.getPlace1(); + } + model.addAttribute("targetPlace1", targetPlace1); + + List placeList = codeService.getCodeList(CommConstants.CODE_PLACE1, true); + model.addAttribute("placeList", placeList); + + return "admin/memberAuth.tiles"; + } + + /** + * 회원 권한을 설정한다. + * + * @param memberVO userid, usegrade 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping(value = "/memberAuth.json") + public HashMap memberAuth(final MemberVO memberVO) throws Exception { + HashMap results = new HashMap(); + int result = memberService.updateMemberAuth(memberVO); + results.put("result", result); + return results; + } + + /** + * 회원 견문권한을 설정한다. + * + * @param memberVO userid, usegrade 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping(value = "/memberRpt.json") + public HashMap memberRpt(final MemberVO memberVO) throws Exception { + HashMap results = new HashMap(); + int result = memberService.updateMemberRpt(memberVO); + results.put("result", result); + return results; + } + + + /** + * 회원 팀장 권한을 설정한다. + * + * @param memberVO userid 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping(value = "/updateSection.json") + public HashMap updateSection(final MemberVO memberVO) throws Exception { + HashMap results = new HashMap(); + int result = memberService.updateSection(memberVO); + results.put("result", result); + return results; + } + + /** + * 회원 담당관 권한을 설정한다. + * + * @param memberVO userid 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping(value = "/updateHead.json") + public HashMap updateHead(final MemberVO memberVO) throws Exception { + HashMap results = new HashMap(); + int result = memberService.updateHead(memberVO); + results.put("result", result); + return results; + } + + + @Autowired + private SessionRegistry sessionRegistry; + @Resource(name="securityMapper") + private SecurityMapper securityMapper; + @Resource(name="userService") + private UserDetailsService securityService; + @Resource(name="loginSuccessHandler") + private AuthenticationSuccessHandler successHandler; + + /** + * 사용자 접속을 해지한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @param model 모델 객체 + * @return 접속설정 정보 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/loginUser.do") + public void loginUser(final HttpServletRequest request, final HttpServletResponse response, final String userid) throws Exception { + Authentication authentication = null; + if (userid != null) { + authentication = login(userid); + } else { + authentication = UserUtil.getCurrentAuthentication(); + } + successHandler.onAuthenticationSuccess(request, response, authentication); + } + + /** + * 해당 아이디로 로그인한다. + * + * @param userid 로그인 대상 아이디 + * @return Authentication 인증정보객체 + * @throws Exception 기본 예외 처리 + */ + private final Authentication login(final String userid) { + Authentication auth = null; + try { + UserDetails user = securityService.loadUserByUsername(userid); + auth = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities()); + SecurityContextHolder.getContext().setAuthentication(auth); + } catch (Exception e) { + e.printStackTrace(); + } + return auth; + } + + @RequestMapping("/placeManage.do") + public String codeManage(final CodeVO codeVO, final Model model) throws Exception { + + if (codeVO.getCode() != null) { + model.addAttribute("code", codeService.getCode(CommConstants.CODE_PLACE1, codeVO.getCode())); + } + model.addAttribute("place1List", codeService.getCodeList(CommConstants.CODE_PLACE1)); + + return "admin/placeManage.tiles"; + } + + @RequestMapping("/memberList.do") + public String memberList(@ModelAttribute("memberSearchVO") final MemberSearchVO searchVO, final Model model) throws Exception { + try { + /* 페이징 처리 정보 */ + searchVO.setPageUnit(20); + searchVO.setPageSize(15); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + int totSearchCnt = memberService.getMemberListCnt(searchVO); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + /* 게시판 상단 페이지 및 게시물 정보 표현을 위한 데이터 */ + int totCnt = memberService.getMemberListAllCnt(searchVO); + model.addAttribute("totalCnt", totCnt); + + model.addAttribute("resultList", memberService.getMemberList(searchVO)); + model.addAttribute("place1List", codeService.getCodeList(CommConstants.CODE_PLACE1)); + } catch (Exception e) { + e.printStackTrace(); + } + + return "admin/memberList.tiles"; + + } + + @RequestMapping("/memberInfo.do") + public String memberInfo(final MemberVO memberVO, final Model model) throws Exception { + try { + model.addAttribute("memberVO", memberService.getMemberInfo(memberVO.getUserid())); + model.addAttribute("isAdmin", UserUtil.isAdmin()); + model.addAttribute("isSysAdmin", UserUtil.isSysAdmin()); + } catch (Exception e) { + e.printStackTrace(); + } + + return "admin/memberInfo.tiles"; + } + + @RequestMapping("/memberUpdateView.do") + public String memberUpdateView(final MemberVO memberVO, final Model model) throws Exception { + try { + model.addAttribute("code", codeService.getCodeList(null)); + model.addAttribute("memberVO", memberService.getMemberInfo(memberVO.getUserid())); + model.addAttribute("isAdmin", UserUtil.isAdmin()); + model.addAttribute("isSysAdmin", UserUtil.isSysAdmin()); + } catch (Exception e) { + e.printStackTrace(); + } + + return "admin/memberModify.tiles"; + } + @RequestMapping(value = {"/memberUpdate.do"}, method = RequestMethod.POST) + public String memberUpdate(@ModelAttribute("memberVO") final MemberVO memberVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + try { + memberService.updateUserInfo(memberVO); + } catch (Exception e) { + e.printStackTrace(); + } + + return "redirect:/admin/memberInfo.do?userid="+memberVO.getUserid(); + } + + // 20180503 신규회원가입 페이지 이동 부분 추가 + @RequestMapping("/memberNewList.do") + public String memberNewList(final MemberVO memberVO, final Model model) throws Exception { + + try { + model.addAttribute("code", codeService.getCodeList(null)); + //model.addAttribute("memberVO", memberService.getMemberInfo(memberVO.getUserid())); + //model.addAttribute("isAdmin", UserUtil.isAdmin()); + model.addAttribute("isSysAdmin", UserUtil.isSysAdmin()); + } catch (Exception e) { + e.printStackTrace(); + } + + return "admin/memberNewList.tiles"; + } + + // 20180503 신규회원가입 저장 부분 추가 + @RequestMapping(value = {"/memberNewSave.do"}, method = RequestMethod.POST) + public String memberNewSave(@ModelAttribute("memberVO") final MemberVO memberVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + try { + memberService.insertUserInfo(memberVO); + } catch (Exception e) { + e.printStackTrace(); + } + + return "redirect:/admin/memberInfo.do?userid="+memberVO.getUserid(); + } + + + @RequestMapping("/memberListExcel.do") + public String faMemberListExcel(@ModelAttribute("memberSearchVO") final MemberSearchVO searchVO, final Model model) throws Exception { + + String title = "경찰관리"; + + List memberList = memberService.getMemberListForExel(searchVO); + + LinkedHashMap header = new LinkedHashMap(); + header.put("place1Str", "소속"); + header.put("place2Str", "세부소속"); + header.put("dutyStr", "계급"); + header.put("name", "성명"); + header.put("userid", "아이디"); + header.put("usegradeStr", "등급"); + + model.addAttribute("excel", new ExcelExporter(header, memberList, title)); + model.addAttribute("filename", title); + + return "excelView"; + } + + + + @RequestMapping("/moniterManage.do") + public String moniterManage(final Model model) throws Exception { + try { + + model.addAttribute("isAdmin", UserUtil.isAdmin()); + model.addAttribute("isSysAdmin", UserUtil.isSysAdmin()); + } catch (Exception e) { + e.printStackTrace(); + } + + return "admin/moniterManage.tiles"; + } + + + @ResponseBody + @RequestMapping(value = "/moniterList.json") + public List> moniterList(@RequestParam(value="id", required=false) String id) throws Exception { + return moniterService.getMoniterTreeList(); + } + + @ResponseBody + @RequestMapping(value = "/saveMoniter.json") + public MoniterVO saveMoniter(MoniterVO vo) throws Exception { + return moniterService.saveMoniter(vo); + } + + @ResponseBody + @RequestMapping(value = "/deleteMoniter.json") + public int deleteMoniterTree(MoniterSearchVO vo) throws Exception { + return moniterService.deleteMoniterTree(vo); + } +} diff --git a/src/main/java/kcg/imis/board/aop/BoardPreventSqlInjectionAop.java b/src/main/java/kcg/imis/board/aop/BoardPreventSqlInjectionAop.java new file mode 100644 index 0000000..7a2598a --- /dev/null +++ b/src/main/java/kcg/imis/board/aop/BoardPreventSqlInjectionAop.java @@ -0,0 +1,46 @@ +package kcg.imis.board.aop; + +import java.lang.reflect.Field; + +import kcg.imis.cmmn.CommonsUtils; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; + +/** + * @FileName : BoardPreventSqlInjectionAop.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Aspect +@Component +public class BoardPreventSqlInjectionAop { + + // id를 필드로 가지고 있는 객체를 파라미터로 받는 메소드만 걸림 + @Before("execution(public * kcg.faics.board.service.impl.*Mapper.*(kcg.imis.board.vo.BoardSearchVO))" + + "|| execution(public * kcg.faics.board.service.impl.*Mapper.*(kcg.imis.board.vo.BoardVO))") + public void beforeTargetMethod(JoinPoint thisJoinPoint) { + Object[] signatureArgs = thisJoinPoint.getArgs(); + for (Object signatureArg: signatureArgs) { + + Class clz = signatureArg.getClass(); + try { + Field field = clz.getDeclaredField("id"); + field.setAccessible(true); + + String id = (String) field.get(signatureArg); + id = CommonsUtils.sqlInjectionFilter(id); + + field.set(signatureArg, id); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/kcg/imis/board/mapper/BoardMapper.java b/src/main/java/kcg/imis/board/mapper/BoardMapper.java new file mode 100644 index 0000000..339c16f --- /dev/null +++ b/src/main/java/kcg/imis/board/mapper/BoardMapper.java @@ -0,0 +1,181 @@ +package kcg.imis.board.mapper; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.board.vo.BoardSearchVO; +import kcg.imis.board.vo.BoardVO; +import kcg.imis.board.vo.SearchVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + + +/** + * + * @FileName : BoardMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("boardMapper") +public class BoardMapper extends EgovAbstractMapper { + + /** + * 게시판 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List selectBoardList(final BoardSearchVO searchVO) throws Exception { + return selectList("Board.selectBoardList", searchVO); + } + + + /** + * 검색 키워드에 따른 총 게시물 개수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + public int selectBoardListTotCnt(final BoardSearchVO searchVO) throws Exception { + return (Integer) selectOne("Board.selectBoardListTotCnt", searchVO); + } + + /** + * 전체 게시물 개수를 가져온다. + * @param searchVO + * + * @return 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectBoardTotalCnt(final BoardSearchVO searchVO) throws Exception { + return (Integer) selectOne("Board.selectBoardTotalCnt", searchVO); + } + + /** + * 답글 추가에 따른 group seq를 수정한다 + * + * @param boardVO BoardVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int updateGrpStep(final BoardVO boardVO) throws Exception { + return update("Board.updateGrpStep", boardVO); + } + + /** + * 이전게시물 번호 + * + * @param boardVO BoardVO 객체 + * @return 그룹에 해당되는 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectPrevSeq(final BoardVO boardVO) throws Exception { + return selectOne("Board.selectPrevSeq", boardVO); + } + + /** + * 다음게시물 번호 + * + * @param boardVO BoardVO 객체 + * @return 그룹에 해당되는 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectNextSeq(final BoardVO boardVO) throws Exception { + return selectOne("Board.selectNextSeq", boardVO); + } + + + /** + * 게시물을 추가한다. + * + * @param boardVO 게시판 내용 구성 객체 + * @return 글 총 갯수 + * @throws Exception 기본 예외 처리 + */ + public HashMap insertBoard(final BoardVO boardVO) throws Exception { + + HashMap map = new HashMap(); + + try { + insert("Board.insertBoard", boardVO); + map.put("bdIdx", boardVO.getBdIdx()); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + }; + + /** + * 선택한 게시물의 내용을 반환한다. + * + * @param boardVO 게시물 VO + * @return 선택한 게시물 내용 반환 + * @throws Exception 기본 예외 처리 + */ + public BoardVO selectBoard(final BoardVO boardVO) throws Exception { + return selectOne("Board.selectBoard", boardVO); + } + + /** + * 게시물을 DB에 업데이트 한다. + * + * @param boardVO 게시물 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int updateBoard(final BoardVO boardVO) throws Exception { + return update("Board.updateBoard", boardVO); + } + + /** + * 게시물을 삭제한다. + * + * @param boardVO 게시물 VO + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int deleteBoard(final BoardVO boardVO) throws Exception { + return delete("Board.deleteBoard", boardVO); + } + + /** + * 조회수 업데이트 + * @param boardVO + * @return + * @throws Exception + */ + public int hitBoard(final BoardVO boardVO) throws Exception { + return delete("Board.hitBoard", boardVO); + } + + /** + * 검색용 게시글 목록을 조회한다 + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List searchBoardList(final SearchVO searchVO) throws Exception { + return selectList("Board.searchBoardList", searchVO); + } + + /** + * 검색용 게시글 객수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + public int searchBoardCnt(SearchVO searchVO) throws Exception { + return (Integer) selectOne("Board.searchBoardCnt", searchVO); + } + + +} diff --git a/src/main/java/kcg/imis/board/service/BoardService.java b/src/main/java/kcg/imis/board/service/BoardService.java new file mode 100644 index 0000000..3f1bd35 --- /dev/null +++ b/src/main/java/kcg/imis/board/service/BoardService.java @@ -0,0 +1,33 @@ +/** + * BoardService.java + * @author 임새미 + * @since 2016. 10. 25. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 25. 임새미 최초생성 + * + */ +package kcg.imis.board.service; + +import java.util.Map; + +import kcg.imis.board.vo.BoardSearchVO; +import kcg.imis.board.vo.BoardVO; +import kcg.imis.board.vo.SearchVO; +import kcg.imis.cmmn.bbs.BaseBbsService; + +/** + * + * @FileName : BoardService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface BoardService extends BaseBbsService { + + Map searchBoard(SearchVO searchVO) throws Exception; + +} diff --git a/src/main/java/kcg/imis/board/service/BoardServiceImpl.java b/src/main/java/kcg/imis/board/service/BoardServiceImpl.java new file mode 100644 index 0000000..2299a79 --- /dev/null +++ b/src/main/java/kcg/imis/board/service/BoardServiceImpl.java @@ -0,0 +1,355 @@ +package kcg.imis.board.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.board.mapper.BoardMapper; +import kcg.imis.board.vo.BoardSearchVO; +import kcg.imis.board.vo.BoardVO; +import kcg.imis.board.vo.SearchVO; +import kcg.imis.cmmn.egov.file.EgovFileMngUtil; +import kcg.imis.cmmn.egov.vo.FileVO; +import kcg.imis.cmmn.file.FileUploadUtil; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +/** + * + * @FileName : BoardServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 16. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판 관련 서비스 객체 + */ +@Service("boardService") +public class BoardServiceImpl extends EgovAbstractServiceImpl implements BoardService { + + /** + * BoardMapper - 게시판 데이터처리에 관한 Mapper 클래스 + **/ + @Resource(name = "boardMapper") + private BoardMapper boardMapper; + + @Resource(name = "fileUploadUtil") + private FileUploadUtil fileUtil; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil egovFileUtil; + /** + * 게시판 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + @Override + public List selectList(final BoardSearchVO searchVO) throws Exception { + return boardMapper.selectBoardList(searchVO); + } + + /** + * 검색 키워드에 따른 총 게시물 개수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + @Override + public int selectListCnt(final BoardSearchVO searchVO) throws Exception { + return boardMapper.selectBoardListTotCnt(searchVO); + } + + /** + * 전체 게시물 개수를 가져온다. + * + * @return 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + @Override + public int selectTotalCnt(final BoardSearchVO searchVO) throws Exception { + return boardMapper.selectBoardTotalCnt(searchVO); + } + + + /** + * 선택한 게시물의 내용을 반환한다. + * + * @param bdSeq 게시판 + * @return 선택한 게시물 내용 반환 + * @throws Exception 기본 예외 처리 + */ + @Override + public BoardVO select(final BoardVO boardVO) throws Exception { + + boardMapper.hitBoard(boardVO); + BoardVO board = boardMapper.selectBoard(boardVO); + board.setPrevSeq(boardMapper.selectPrevSeq(board)); + board.setNextSeq(boardMapper.selectNextSeq(board)); + return board; + + } + + + /** + * 게시물을 추가한다. + * + * @param boardVO 게시판 내용 구성 객체 + * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + private HashMap insert(final BoardVO boardVO) throws Exception { + + HashMap map = new HashMap(); + + /* seq 및 insert 결과 */ + map = boardMapper.insertBoard(boardVO); + + int seq = (Integer) map.get("bdIdx"); + + if (seq > 0) { + boardVO.setBdIdx(seq); + } else { + throw new Exception(); + } + + return map; + } + + /** + * 게시물을 추가한다. + * + * @param boardVO 게시판 내용 구성 객체 + * @param fileMap 업로드 파일정보체 + * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0 + * @exception Exception 기본 예외 처리 + */ + @Override + @Transactional + public HashMap insert(final BoardVO boardVO, final Map fileMap) throws Exception { + + List fileList = egovFileUtil.parseFileInf(fileMap, "_", 0, "", "Globals.fileStorePath"); + + StringBuffer newFileNameSb = new StringBuffer(); + StringBuffer realFileNameSb = new StringBuffer(); + for(FileVO file : fileList){ + newFileNameSb.append(file.getStreFileNm()); + realFileNameSb.append(file.getOrignlFileNm()); + if (file == fileList.get(fileList.size() - 1)) continue; + newFileNameSb.append(";"); + realFileNameSb.append(";"); + } + + boardVO.setBdFileNames(realFileNameSb.toString()); + boardVO.setBdFiles(newFileNameSb.toString()); + + return insert(boardVO); + } + + + /** + * 게시물을 DB에 업데이트 한다. + * + * @param boardVO 게시물 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + private int updateBoard(final BoardVO boardVO) throws Exception { + return boardMapper.updateBoard(boardVO); + }; + + /** + * 게시물을 업데이트 한다. + * + * @param boardVO 게시물 VO + * @param fileMap MultipartFile형태의 파일정보 + * @param deleteFiles 삭제할 파일리스트 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + @Override + @Transactional + public HashMap update(final BoardVO boardVO, final Map fileMap, final String[] deleteFiles) throws Exception { + + HashMap map = new HashMap(); + int result = 0; + + //기존 업로드 파일 목록들 + List saveFileList = boardVO.getSaveFileNames(); + List orgFileList = boardVO.getOrgFileNames(); + + if(deleteFiles != null){ + for(String deleteFile : deleteFiles){ + int index = saveFileList.indexOf(deleteFile); + if(index > -1){ + saveFileList.remove(index); + orgFileList.remove(index); + } + } + } + + StringBuffer newSaveFileNameSb = new StringBuffer(); + StringBuffer newOrgFileNameSb = new StringBuffer(); + + for(String fileName : saveFileList){ + newSaveFileNameSb.append(fileName); + if (fileName.equals(saveFileList.get(saveFileList.size() - 1))) continue; + newSaveFileNameSb.append(";"); + } + + for(String fileName : orgFileList){ + newOrgFileNameSb.append(fileName); + if (fileName.equals(orgFileList.get(orgFileList.size() - 1))) continue; + newOrgFileNameSb.append(";"); + } + + //새로 업로드된 파일 목록들 + List fileList = egovFileUtil.parseFileInf(fileMap, "_", 0, "", "Globals.fileStorePath"); + + for(FileVO file : fileList){ + if(newSaveFileNameSb.length() > 0){ + newSaveFileNameSb.append(";"); + newOrgFileNameSb.append(";"); + } + + newSaveFileNameSb.append(file.getStreFileNm()); + newOrgFileNameSb.append(file.getOrignlFileNm()); + if (file == fileList.get(fileList.size() - 1)) continue; + newSaveFileNameSb.append(";"); + newOrgFileNameSb.append(";"); + } + + boardVO.setBdFiles(newSaveFileNameSb.toString()); + boardVO.setBdFileNames(newOrgFileNameSb.toString()); + + + result = this.updateBoard(boardVO); + + if (result != 1) { + throw new Exception(); + } else { + map.put("result", result); + map.put("bdIdx", boardVO.getBdIdx()); + } + + return map; + } + + + /** + * 게시물을 삭제한다. + * + * @param bdSeq 게시물 번호 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + @Transactional + @Override + public HashMap delete(final BoardVO boardVO) throws Exception { + + HashMap map = new HashMap(); + int result = 0; + + /* 삭제 후 처리를 위해 데이터 캐싱 */ + BoardVO delBoard = boardMapper.selectBoard(boardVO); + + result = boardMapper.deleteBoard(delBoard); + + if (result == 1) { + /* 이전 글, 다음 글의 이전/다음 시퀀스 재조정 */ + /*int prevSeq = boardVO.getPrevSeq(); + int nextSeq = boardVO.getNextSeq(); + if (prevSeq > 0) { + this.updatePrevNextSeq(BoardVOHandler.getBoardVO(boardVO.getId(), prevSeq), "N", nextSeq); + } + if (nextSeq > 0) { + this.updatePrevNextSeq(BoardVOHandler.getBoardVO(boardVO.getId(), nextSeq), "P", prevSeq); + }*/ + + /* 파일을 삭제한다. + boardFileService.deleteAndRemoveFiles(BoardVOHandler.getBFileVO(delBoard)); + + 댓글을 삭제한다. + boardCommentService.deleteAll(BoardVOHandler.getBCommentVO(delBoard));*/ + + map.put("result", result); + } else { + throw new Exception(); + } + + return map; + }; + + @Override + public List selectListAll(BoardSearchVO searchVO) throws Exception { + return null; + } + + @Override + public Map searchBoard(SearchVO searchVO) throws Exception { + + Map resultMap = new HashMap(); + + String[] bbsIds = {"confer", "dokdo", "image", "imo", "joint", "law", "notice", "state", "world01", "world02", "world03"}; + String[] bbsNames = {"국제회의", "독도·이어도", "이미지", "해적/IMO 등", "정보요청", "국제해양법 검토", "공지사항", "국제해양정세", "세계해양분쟁DB-해양치안기관", "세계해양분쟁DB-해양정책·동향", "세계해양분쟁DB-해양분쟁"}; + + int totalCnt = 0; + + List> list = new ArrayList>(); + for( int i = 0 ; i < bbsIds.length ; i ++){ + + Map board = new HashMap(); + + String bbsId = bbsIds[i]; + String bbsName = bbsNames[i]; + + searchVO.setSearchType("content"); + searchVO.setBbsId(bbsId);; + + List list1 = boardMapper.searchBoardList(searchVO); + int cnt1 = boardMapper.searchBoardCnt(searchVO); + + searchVO.setSearchType("subject"); + List list2 = boardMapper.searchBoardList(searchVO); + int cnt2 = boardMapper.searchBoardCnt(searchVO); + + searchVO.setSearchType("file"); + List list3 = boardMapper.searchBoardList(searchVO); + int cnt3 = boardMapper.searchBoardCnt(searchVO); + + searchVO.setSearchType("name"); + List list4 = boardMapper.searchBoardList(searchVO); + int cnt4 = boardMapper.searchBoardCnt(searchVO); + + int count = cnt1 + cnt2 + cnt3 + cnt4; + + board.put("contentList", list1); + board.put("subjectList", list2); + board.put("fileList", list3); + board.put("nameList", list4); + + board.put("cnt", count); + board.put("name", bbsName); + + list.add(board); + + totalCnt += count; + + } + + resultMap.put("list", list); + resultMap.put("totalCnt", totalCnt); + + return resultMap; + + } + + +} + diff --git a/src/main/java/kcg/imis/board/vo/BoardSearchVO.java b/src/main/java/kcg/imis/board/vo/BoardSearchVO.java new file mode 100644 index 0000000..67edc73 --- /dev/null +++ b/src/main/java/kcg/imis/board/vo/BoardSearchVO.java @@ -0,0 +1,154 @@ +/* + * Copyright 2014 MOPAS(Ministry of Public Administration and Security). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package kcg.imis.board.vo; + +import kcg.imis.cmmn.bbs.BaseSearchVO; + + +/** + * @FileName : BoardSearchVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판 검색 객체 + */ +public class BoardSearchVO extends BaseSearchVO { + + + @Override + public String toString() { + return "BoardSearchVO [bbsId=" + bbsId + ", category=" + category + ", ct=" + ct + ", bdNational=" + bdNational + ", pla1=" + pla1 + ", pla2=" + pla2 + ", userid=" + userid + + ", searchCondition=" + searchCondition + "]"; + } + + /** 테이블 이름 */ + private String bbsId = ""; + + /** 카테고리 이름 */ + private String category = " "; + + private String ct=""; + + private String bdNational; + + private String pla1; + + private String pla2; + + private String userid; + + // 20180528 게시판 내용 검색 부분 추가 + private String bdContent; + + public String getBdContent() { + return bdContent; + } + + public void setBdContent(String bdContent) { + this.bdContent = bdContent; + } + + /** 카테고리 이름 */ + private String searchCondition = ""; + + public BoardSearchVO() { + super(); + } + + /** + * 카테고리 아이디를 반환한다. + * @return 게시판 아이디 + */ + public String getCategory() { + return category; + } + + /** + * 카테고리 아이디를 설정한다. + * @param id 를 설정한다. + */ + public void setCategory(String category) { + if (category == null || category.equals("")) { + category = " "; + } + this.category = category; + } + + /** + * @return 검색 조건을 반환한다. + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * @param 검색 조건을 설정한다. + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getBbsId() { + return bbsId; + } + + public void setBbsId(String bbsId) { + this.bbsId = bbsId; + } + + public String getCt() { + return ct; + } + + public void setCt(String ct) { + this.ct = ct; + } + + public String getBdNational() { + return bdNational; + } + + public void setBdNational(String bdNational) { + this.bdNational = bdNational; + } + + public String getPla1() { + return pla1; + } + + public void setPla1(String pla1) { + this.pla1 = pla1; + } + + public String getPla2() { + return pla2; + } + + public void setPla2(String pla2) { + this.pla2 = pla2; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + +} + \ No newline at end of file diff --git a/src/main/java/kcg/imis/board/vo/BoardVO.java b/src/main/java/kcg/imis/board/vo/BoardVO.java new file mode 100644 index 0000000..a75f6d0 --- /dev/null +++ b/src/main/java/kcg/imis/board/vo/BoardVO.java @@ -0,0 +1,279 @@ +package kcg.imis.board.vo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +/** + * @FileName : BoardVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판 VO 객체 + */ +public class BoardVO { + + private Integer bdIdx; + private String bdYn; + private Integer bdIdxGrp = 0; + private String bbsId; + private String ctId; + private String bdPart; + private String bdSubject; + private String bdContent; + private String content; + private String bdFiles = ""; + private String bdFileNames = ""; + private String bdImgs = ""; + private String bdImgNames = ""; + private String grpIdx; + private String grpName; + private String usrIdx; + private String usrName; + private String bdIpaddr; + private Date bdRegdate; + private String bdViewAuth; + private String bdViewGrp; + private String bdClass = ""; + private String bdTel = ""; + private String bdObject = ""; + private String bdNational = ""; + private String bdTimelimit = ""; + private String bdEtc = ""; + private int bdCount = 0; + private String[] checkAuth; + private int prevSeq = 0; + private int nextSeq = 0; + + public String getBbsId() { + return bbsId; + } + public void setBbsId(String bbsId) { + this.bbsId = bbsId; + } + public String getCtId() { + return ctId; + } + public void setCtId(String ctId) { + this.ctId = ctId; + } + public String getBdPart() { + return bdPart; + } + public void setBdPart(String bdPart) { + this.bdPart = bdPart; + } + public String getBdSubject() { + return bdSubject; + } + public void setBdSubject(String bdSubject) { + this.bdSubject = bdSubject; + } + public String getBdContent() { + return bdContent; + } + public void setBdContent(String bdContent) { + this.bdContent = bdContent; + } + public String getBdFiles() { + return bdFiles; + } + public void setBdFiles(String bdFiles) { + this.bdFiles = bdFiles; + } + public String getBdFileNames() { + return bdFileNames; + } + public void setBdFileNames(String bdFileNames) { + this.bdFileNames = bdFileNames; + } + public String getBdImgNames() { + return bdImgNames; + } + public void setBdImgNames(String bdImgNames) { + this.bdImgNames = bdImgNames; + } + public String getGrpIdx() { + return grpIdx; + } + public void setGrpIdx(String grpIdx) { + this.grpIdx = grpIdx; + } + public String getGrpName() { + return grpName; + } + public void setGrpName(String grpName) { + this.grpName = grpName; + } + public String getUsrIdx() { + return usrIdx; + } + public void setUsrIdx(String usrIdx) { + this.usrIdx = usrIdx; + } + public String getUsrName() { + return usrName; + } + public void setUsrName(String usrName) { + this.usrName = usrName; + } + public String getBdIpaddr() { + return bdIpaddr; + } + public void setBdIpaddr(String bdIpaddr) { + this.bdIpaddr = bdIpaddr; + } + + public String getBdViewAuth() { + return bdViewAuth; + } + public void setBdViewAuth(String bdViewAuth) { + this.bdViewAuth = bdViewAuth; + } + public String getBdViewGrp() { + return bdViewGrp; + } + public void setBdViewGrp(String bdViewGrp) { + this.bdViewGrp = bdViewGrp; + } + public String getBdClass() { + return bdClass; + } + public void setBdClass(String bdClass) { + this.bdClass = bdClass; + } + public String getBdTel() { + return bdTel; + } + public void setBdTel(String bdTel) { + this.bdTel = bdTel; + } + public String getBdObject() { + return bdObject; + } + public void setBdObject(String bdObject) { + this.bdObject = bdObject; + } + public String getBdNational() { + return bdNational; + } + public void setBdNational(String bdNational) { + this.bdNational = bdNational; + } + public String getBdTimelimit() { + return bdTimelimit; + } + public void setBdTimelimit(String bdTimelimit) { + this.bdTimelimit = bdTimelimit; + } + public String getBdEtc() { + return bdEtc; + } + public void setBdEtc(String bdEtc) { + this.bdEtc = bdEtc; + } + public Integer getBdIdx() { + return bdIdx; + } + public void setBdIdx(Integer bdIdx) { + this.bdIdx = bdIdx; + } + public String getBdYn() { + return bdYn; + } + public void setBdYn(String bdYn) { + this.bdYn = bdYn; + } + public String[] getCheckAuth() { + return checkAuth; + } + public void setCheckAuth(String[] checkAuth) { + this.checkAuth = checkAuth; + } + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } + public int getBdIdxGrp() { + return bdIdxGrp; + } + public void setBdIdxGrp(int bdIdxGrp) { + this.bdIdxGrp = bdIdxGrp; + } + public Date getBdRegdate() { + return bdRegdate; + } + public void setBdRegdate(Date bdRegdate) { + this.bdRegdate = bdRegdate; + } + public String getBdImgs() { + return bdImgs; + } + + public void setBdImgs(String bdImgs) { + this.bdImgs = bdImgs; + } + public int getFileSize() { + if(bdFiles == null || "".equals(bdFiles)){ + return 0; + } + return bdFiles.split(";").length; + } + public int getImgSize() { + if(bdImgs == null || "".equals(bdImgs)){ + return 0; + } + return bdImgs.split(";").length; + } + + public List getOrgFileNames(){ + if(bdFileNames == null || "".equals(bdFileNames)){ + return new ArrayList(); + } + return new ArrayList(Arrays.asList(bdFileNames.split(";"))); + } + + public List getSaveFileNames(){ + if(bdFiles == null || "".equals(bdFiles)){ + return new ArrayList(); + } + return new ArrayList(Arrays.asList(bdFiles.split(";"))); + } + + public List getOrgImgNames(){ + if(bdImgNames == null || "".equals(bdImgNames)){ + return new ArrayList(); + } + return new ArrayList(Arrays.asList(bdImgNames.split(";"))); + } + + public List getSaveImgNames(){ + if(bdImgs == null || "".equals(bdImgs)){ + return new ArrayList(); + } + return new ArrayList(Arrays.asList( bdImgs.split(";"))); + } + + public int getPrevSeq() { + return prevSeq; + } + public void setPrevSeq(int prevSeq) { + this.prevSeq = prevSeq; + } + public int getNextSeq() { + return nextSeq; + } + public void setNextSeq(int nextSeq) { + this.nextSeq = nextSeq; + } + public int getBdCount() { + return bdCount; + } + public void setBdCount(int bdCount) { + this.bdCount = bdCount; + } +} diff --git a/src/main/java/kcg/imis/board/vo/SearchVO.java b/src/main/java/kcg/imis/board/vo/SearchVO.java new file mode 100644 index 0000000..717d735 --- /dev/null +++ b/src/main/java/kcg/imis/board/vo/SearchVO.java @@ -0,0 +1,49 @@ +package kcg.imis.board.vo; + +public class SearchVO { + + private String bbsId; + private String searchKeyWord; + private String searchType; + private String pla1; + private String pla2; + private String userid; + + public String getBbsId() { + return bbsId; + } + public void setBbsId(String bbsId) { + this.bbsId = bbsId; + } + public String getSearchKeyWord() { + return searchKeyWord; + } + public void setSearchKeyWord(String searchKeyWord) { + this.searchKeyWord = searchKeyWord; + } + public String getSearchType() { + return searchType; + } + public void setSearchType(String searchType) { + this.searchType = searchType; + } + public String getPla1() { + return pla1; + } + public void setPla1(String pla1) { + this.pla1 = pla1; + } + public String getPla2() { + return pla2; + } + public void setPla2(String pla2) { + this.pla2 = pla2; + } + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + +} diff --git a/src/main/java/kcg/imis/board/web/BoardController.java b/src/main/java/kcg/imis/board/web/BoardController.java new file mode 100644 index 0000000..121edb5 --- /dev/null +++ b/src/main/java/kcg/imis/board/web/BoardController.java @@ -0,0 +1,538 @@ +package kcg.imis.board.web; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.net.URLDecoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.board.service.BoardService; +import kcg.imis.board.vo.BoardSearchVO; +import kcg.imis.board.vo.BoardVO; +import kcg.imis.board.vo.SearchVO; +import kcg.imis.cmmn.file.FileResponser; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.util.FileCopyUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * @FileName : BoardController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판 컨트롤러 + */ +@Controller +@SessionAttributes(types = BoardVO.class) +@RequestMapping("/bbs") +public class BoardController { + + /** + * EgovPropertyService - properties값을 가져오는 인터페이스. + **/ + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * Validator - 유효성 검사. + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * BoardService - 게시판 데이터처리에 관한 인터페이스. + **/ + @Resource(name = "boardService") + private BoardService boardService; + + /** + * 게시판 목록 화면을 반환한다. + * + * @param req Request 객체 + * @param searchVO 검색, 페이지 정보 객체 + * @param model 모델 객체 + * @return 게시판 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/list.do") + public String boardList(final HttpServletRequest req, @ModelAttribute("searchVO") final BoardSearchVO searchVO, final Model model) throws Exception { + + try { + + LoginUserVO user = UserUtil.getMemberInfo(); + + + searchVO.setPla1(user.getPlace1()); + searchVO.setPla2(user.getPlace2()); + searchVO.setUserid(user.getUserid()); + // 20180528 검색기능 중에 내용 관련 부분 추가 + searchVO.setBdContent(user.getBdcontent()); + + /* 페이징 처리 정보 */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + int totSearchCnt = boardService.selectListCnt(searchVO); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + /* 게시판 리스트 */ + List boardList = boardService.selectList(searchVO); + model.addAttribute("resultList", boardList); + + /* 게시판 상단 페이지 및 게시물 정보 표현을 위한 데이터 */ + int totCnt = boardService.selectTotalCnt(searchVO); + model.addAttribute("totalCnt", totCnt); + + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + if("confer".equals(searchVO.getBbsId())){ + return "board/conferList.tiles"; + } + + return "board/boardList.tiles"; + + } + + /** + * 게시물의 내용을 확인하는 페이지를 반환한다. + * + * @param boardVO 게시판 VO + * @param model 모델 객체 + * @return 게시물 조회 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/view.do", method = RequestMethod.GET) + public String boardView(final BoardVO boardVO, final Model model) throws Exception { + + try { + /* 작성자와 조회자가 다른 경우 조회수 증가 */ + BoardVO board = boardService.select(boardVO); + + /* 게시판 내용 */ + model.addAttribute("boardVO", board); + + /* 세션 사용자 정보 */ + model.addAttribute("loginUserVO", UserUtil.getMemberInfo()); + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + if ("joint".equals(boardVO.getBbsId())) + return "board/jointView.tiles"; + + if ("confer".equals(boardVO.getBbsId())) + return "board/conferView.tiles"; + + return "board/boardView.tiles"; + } + + /** + * 게시물 추가 화면을 반환한다. + * searchVO + * @param model 모델 객체 + * @param boardVO 게시판 VO + * @return 게시물 조회 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/addView.do", method = RequestMethod.GET) + public String boardAddView(final Model model, @RequestParam("bbsId") String param) throws Exception { + + BoardVO modelAttr = new BoardVO(); + modelAttr.setBbsId(param); + + /* 게시물 입력 Form ModelAttribute */ + model.addAttribute("boardVO", modelAttr); + /* create or modify 플래그 */ + model.addAttribute("registerFlag", "create"); + + if ("joint".equals(param)) + return "board/jointAdd.tiles"; + if ("confer".equals(param)) + return "board/conferAdd.tiles"; + + return "board/boardAdd.tiles"; + + } + + /** + * 게시물을 추가한 후 추가한 게시물 화면으로 이동한다. + * + * @param multiRequest multpart타입의 요청 객체 + * @param boardVO 게시물 정보 객체 + * @param bindingResult 바인딩 객체 + * @param model 모델 객체 + * @param status 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/add.do", method = RequestMethod.POST) + public String boardAdd(final MultipartHttpServletRequest multiRequest, @ModelAttribute("boardVO") final BoardVO boardVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + HashMap map = new HashMap(); + + /* 인증된 사용자인지 확인 */ + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + try { + + if (bindingResult.hasErrors()) { + model.addAttribute("boardVO", boardVO); + return "board/boardAdd.tiles"; + } + + final Map fileMap = multiRequest.getFileMap(); + + /* 사용자 정보 입력 */ + LoginUserVO user = UserUtil.getMemberInfo(); + boardVO.setUsrIdx(user.getUserid()); + boardVO.setGrpIdx(user.getPlace1()); + boardVO.setBdIpaddr(multiRequest.getRemoteAddr()); + boardVO.setUsrName(user.getName()); + boardVO.setGrpName(user.getPlace1Str() + " " + user.getPlace2Str()); + + if("1".equals(boardVO.getBdViewAuth())){ + if(boardVO.getCheckAuth() != null && boardVO.getCheckAuth().length > 0){ + StringBuffer sb = new StringBuffer(); + for(String str : boardVO.getCheckAuth()){ + sb.append(str); + if(str.equals(boardVO.getCheckAuth()[boardVO.getCheckAuth().length -1])) continue; + sb.append(";"); + } + boardVO.setBdViewGrp(sb.toString()); + } + } + + map = boardService.insert(boardVO, fileMap); + + status.setComplete(); + + int bdIdx = (Integer) map.get("bdIdx"); + if ( bdIdx > 0) { + return "redirect:/bbs/list.do?bbsId=" + boardVO.getBbsId(); + } + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + } + + return "error/bizError"; + } + + /** + * 게시물을 추가한 후 추가한 게시물 화면으로 이동한다. + * + * @param boardVO 게시판VO 객체 + * @param model 모델 객체 + * @return 게시물 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/updateView.do", method = RequestMethod.POST) + public String updateView(final BoardVO boardVO, final Model model) throws Exception { + + BoardVO updateBoard = boardService.select(boardVO); + try { + /* 글 작성자와 세션 사용자의 아이디를 비교하여 본인여부를 판단한다 */ + if (updateBoard == null || !UserUtil.isEqualMember(updateBoard.getUsrIdx()) && !UserUtil.isAdmin()) { + return "redirect:/bbs/view.do?bdIdx=" + boardVO.getBdIdx() + "&bbsId=" + boardVO.getBbsId(); + } + + model.addAttribute("boardVO", updateBoard); + model.addAttribute("registerFlag", "modify"); + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + if ("joint".equals(boardVO.getBbsId())) + return "board/jointAdd.tiles"; + else + return "board/boardAdd.tiles"; + + } + + /** + * 게시물을 수정한다. + * + * @param multiRequest multpart타입의 요청 객체 + * @param boardVO 게시물 정보 객체 + * @param bindingResult 바인딩 객체 + * @param model 모델 객체 + * @param status 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/update.do", method = RequestMethod.POST) + public String update(final MultipartHttpServletRequest multiRequest, @ModelAttribute("boardVO") final BoardVO boardVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + try { + /* 글 작성자와 세션 사용자의 아이디를 비교하여 본인여부를 판단한다 */ + if (!UserUtil.isEqualMember(boardVO.getUsrIdx()) && !UserUtil.isSysAdmin()) { + return "redirect:/bbs/view.do?bdIdx=" + boardVO.getBdIdx() + "&bbsId=" + boardVO.getBbsId(); + } + + if (bindingResult.hasErrors()) { + model.addAttribute("boardVO", boardVO); + model.addAttribute("registerFlag", "modify"); + return "board/boardAdd.tiles"; + } + + HashMap map = new HashMap(); + + String[] deleteDocFiles = multiRequest.getParameterValues("deleteDocFile"); + final Map fileMap = multiRequest.getFileMap(); + map = boardService.update(boardVO, fileMap, deleteDocFiles); + + status.setComplete(); + + int bdIdx = (Integer) map.get("bdIdx"); + if ( bdIdx > 0) { + return "redirect:/bbs/list.do?bbsId=" + boardVO.getBbsId(); + } + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "redirect:/bbs/list.do?id=" + boardVO.getBbsId(); + } + + /** + * 게시물을 삭제한다. + * + * @param boardVO 게시판 VO + * @param model 모델 객체 + * @param status 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/delete.do", method = RequestMethod.POST) + public String delete(final BoardVO boardVO, final Model model, final SessionStatus status) throws Exception { + + try { + if (!UserUtil.isEqualMember(boardVO.getUsrIdx()) && !UserUtil.isSysAdmin()) { + return "redirect:/bbs/view.do?bdIdx=" + boardVO.getBdIdx() + "&bbsId=" + boardVO.getBbsId(); + } + + HashMap map = new HashMap(); + + map = boardService.delete(boardVO); + + status.setComplete(); + + if ((Integer) map.get("result") > 0) { + return "redirect:/bbs/list.do?bbsId=" + boardVO.getBbsId(); + } + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "redirect:/bbs/view.do?bdIdx=" + boardVO.getBdIdx() + "&bbsId=" + boardVO.getBbsId(); + } + + /** + * 게시물을 삭제한다. + * + * @param bdId 삭제할 게시판 ID + * @param deleteBoard 모델 객체 + * @param status 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/selectedDelete.do", method = RequestMethod.POST) + public String deleteSelected(@RequestParam("id") final String bdId, final int[] deleteBoard, final SessionStatus status) throws Exception { + /* 관리자만 가능 */ + if (UserUtil.isAdmin()) { + try { + /*BoardVO boardVO = BoardVOHandler.getBoardVO(bdId, 0); + if (deleteBoard != null) { + boardService.selectAndDelete(boardVO, deleteBoard); + }*/ + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + } + return "redirect:/bbs/list.do?id=" + bdId; + } + + /** + * 답글쓰기 화면을 반환한다. + * + * @param boardVO 게시판 VO + * @param model 모델 객체 + * @param status SessionStatus + * @return 답글쓰기 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/replyView.do", method = RequestMethod.POST) + public String replyView(BoardVO boardVO, final Model model, final SessionStatus status) throws Exception { + BoardVO replyVO = new BoardVO(); + replyVO.setBdIdx(boardVO.getBdIdx()); + replyVO.setBdIdxGrp(boardVO.getBdIdx()); + replyVO.setBbsId(boardVO.getBbsId()); + model.addAttribute("boardVO", replyVO); + model.addAttribute("registerFlag", "reply"); + return "board/boardAdd.tiles"; + } + + /** + * 답글을 등록하고 조회 화면을 반환한다. + * + * @param boardVO 게시물 VO + * @param bindingResult BindingResult + * @param model 모델 객체 + * @param status SessionStatus + * @param multiRequest MultipartHttpServletRequest + * @return 조회 화면 + */ + @RequestMapping(value = "/reply.do", method = RequestMethod.POST) + public String replyAdd(@ModelAttribute("boardVO") final BoardVO boardVO, + final BindingResult bindingResult, final Model model, final SessionStatus status, final MultipartHttpServletRequest multiRequest) { + + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + try { + if (bindingResult.hasErrors()) { + model.addAttribute("boardVO", boardVO); + return "board/boardAdd.tiles"; + } + + HashMap map = new HashMap(); + + final Map fileMap = multiRequest.getFileMap(); + + /* 사용자 정보 입력 */ + LoginUserVO user = UserUtil.getMemberInfo(); + boardVO.setUsrIdx(user.getUserid()); + boardVO.setGrpIdx(user.getPlace1()); + boardVO.setBdIpaddr(multiRequest.getRemoteAddr()); + boardVO.setUsrName(user.getName()); + boardVO.setGrpName(user.getPlace1Str() + " " + user.getPlace2Str()); + + map = boardService.insert(boardVO, fileMap); + + status.setComplete(); + + int bdIdx = (Integer) map.get("bdIdx"); + if ( bdIdx > 0) { + return "redirect:/bbs/list.do?bbsId=" + boardVO.getBbsId(); + } + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + } + + return "redirect:/bbs/list.do?id=" + boardVO.getBbsId(); + } + + + /** + * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다. + * + * @param boardFileVO 게시판 파일 VO + * @param request Request 객체 + * @param response Response 객체 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/download.do") + public void cvplFileDownload(@RequestParam("bdIdx") Integer bdIdx, @RequestParam("fileIdx") Integer fileIdx, final HttpServletRequest request, final HttpServletResponse response) throws Exception { + + + BoardVO paramVO = new BoardVO(); + paramVO.setBdIdx(bdIdx); + BoardVO boardVO = boardService.select(paramVO); + String orgfileName = boardVO.getOrgFileNames().get(fileIdx); + String saveFileName = boardVO.getSaveFileNames().get(fileIdx); + + String fileFullPath = propertiesService.getString("Globals.fileStorePath") + File.separator + "document" + File.separator + saveFileName ; + + + File file = new File(fileFullPath); + + + if (file.exists()) { + FileResponser.setResponse(file, orgfileName, request, response); + BufferedInputStream in = null; + try { + in = new BufferedInputStream(new FileInputStream(file)); + FileCopyUtils.copy(in, response.getOutputStream()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + + @RequestMapping(value = "/search.do") + public String search(final SearchVO searchVO, final Model model, final SessionStatus status) throws Exception { + + + LoginUserVO user = UserUtil.getMemberInfo(); + + searchVO.setPla1(user.getPlace1()); + searchVO.setPla2(user.getPlace2()); + searchVO.setUserid(user.getUserid()); + + model.addAttribute("searchKeyWord", searchVO.getSearchKeyWord()); + model.addAttribute("data", boardService.searchBoard(searchVO)); + + return "board/searchResult.tiles"; + } + +} diff --git a/src/main/java/kcg/imis/cmmn/CommConstants.java b/src/main/java/kcg/imis/cmmn/CommConstants.java new file mode 100644 index 0000000..dc3b7f8 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/CommConstants.java @@ -0,0 +1,24 @@ +package kcg.imis.cmmn; + +/** + * @FileName : CommConstants.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 공통 상수 객체 + */ +public class CommConstants { + + public static final String FILE_TYPE_DOC = "document"; + public static final String FILE_TYPE_IMG = "image"; + public static final String FILE_TYPE_REPORT = "report"; + + + public static final String CODE_PLACE1 = "PLA1"; + public static final String CODE_CATE1 = "CAT1"; + public static final String CODE_CATE2 = "CAT2"; + public static final String CODE_DUTY = "DUTY"; + + public static final String CODE_JUDGE = "DC05"; +} diff --git a/src/main/java/kcg/imis/cmmn/CommonsUtils.java b/src/main/java/kcg/imis/cmmn/CommonsUtils.java new file mode 100644 index 0000000..22bc3ec --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/CommonsUtils.java @@ -0,0 +1,92 @@ +package kcg.imis.cmmn; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; + +/** + * @FileName : CommConstants.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 공통 유틸 객체 +*/ +public class CommonsUtils { + + public static String sqlInjectionFilter(String str){ + Pattern evilChars = Pattern.compile("\\[\'-#()@;=*/+%\\]"); + str = evilChars.matcher(str).replaceAll(""); + + String lowerStr = str.toLowerCase(); + + if (lowerStr.contains("union") || lowerStr.contains("select") || lowerStr.contains("insert") || lowerStr.contains("drop") + || lowerStr.contains("update") || lowerStr.contains("delete") || lowerStr.contains("join") || lowerStr.contains("from") + || lowerStr.contains("where") || lowerStr.contains("substr") || lowerStr.contains("user_tables") || lowerStr.contains("user_tab_columns")) { + + str = lowerStr; + str = str.replaceAll("union", "q-union"); + str = str.replaceAll("select", "q-select"); + str = str.replaceAll("insert", "q-insert"); + str = str.replaceAll("drop", "q-drop"); + str = str.replaceAll("update", "q-update"); + str = str.replaceAll("delete", "q-delete"); + str = str.replaceAll("join", "q-join"); + str = str.replaceAll("from", "q-from"); + str = str.replaceAll("where", "q-where"); + str = str.replaceAll("substr", "q-substr"); + str = str.replaceAll("user_tables", "q-user_tables"); + str = str.replaceAll("user_tab_columns", "q-user_tab_columns"); + } + return str; + } + + public static HashMap getParameterMap(HttpServletRequest request){ + + @SuppressWarnings("unchecked") + Map paramMap = request.getParameterMap(); + HashMap newMap = new HashMap(); + + Set keySet = paramMap.keySet(); + Iterator it = keySet.iterator(); + while (it.hasNext()) { + String key = it.next(); + if (paramMap.get(key) instanceof String[]) { + newMap.put(key, ((String[]) paramMap.get(key))[0]); + } else { + newMap.put(key, paramMap.get(key)); + } + } + return newMap; + } + + /** + * 객체가 비어있는지 체크 + * + * @param s 체크할 객체 + * @return 비어있음:true + */ + public static boolean isEmpty(final Object s) { + if (s == null) { + return true; + } + if ((s instanceof String) && ((String.valueOf(s)).trim().length() == 0)) { + return true; + } + if (s instanceof Map) { + return ((Map)s).isEmpty(); + } + if (s instanceof List) { + return ((List)s).isEmpty(); + } + if (s instanceof Object[]) { + return (((Object[])s).length == 0); + } + return false; + } +} diff --git a/src/main/java/kcg/imis/cmmn/ImagePaginationRenderer.java b/src/main/java/kcg/imis/cmmn/ImagePaginationRenderer.java new file mode 100644 index 0000000..6118409 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ImagePaginationRenderer.java @@ -0,0 +1,68 @@ +/* + * Copyright 2008-2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package kcg.imis.cmmn; + +import javax.servlet.ServletContext; + +import org.springframework.web.context.ServletContextAware; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; + +/** + * @Class Name : ImagePaginationRenderer.java + * @Description : ImagePaginationRenderer Class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- --------- ------------------------------- + * @ 2009.03.16 최초생성 + * + * @author 개발프레임웍크 실행환경 개발팀 + * @since 2009. 03.16 + * @version 1.0 + * @see + * + * Copyright (C) by MOPAS All right reserved. + */ +public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware { + + private ServletContext servletContext; + + public ImagePaginationRenderer() { + // no-op + } + + /** + * PaginationRenderer + * + * @see 개발프레임웍크 실행환경 개발팀 + */ + public void initVariables() { + + firstPageLabel = "" + " "; + previousPageLabel = "" + " "; + currentPageLabel = "{0} "; + otherPageLabel = "{2} "; + nextPageLabel = "" + " "; + lastPageLabel = "" + " "; + } + + @Override + public void setServletContext(ServletContext servletContext) { + this.servletContext = servletContext; + initVariables(); + } +} diff --git a/src/main/java/kcg/imis/cmmn/MenuPosition.java b/src/main/java/kcg/imis/cmmn/MenuPosition.java new file mode 100644 index 0000000..59a6527 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/MenuPosition.java @@ -0,0 +1,22 @@ +package kcg.imis.cmmn; + +/** + * @FileName : MenuPosition.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 메뉴 위치 상수 객체 + */ +public final class MenuPosition { + /** + * 상단메뉴. (메인메뉴) + */ + public static final String TOP = "GNB"; + + /** + * 상단 보조메뉴. + */ + public static final String TOP_SUB = "SUB"; + +} diff --git a/src/main/java/kcg/imis/cmmn/aop/CommonAop.java b/src/main/java/kcg/imis/cmmn/aop/CommonAop.java new file mode 100644 index 0000000..c55b7f3 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/aop/CommonAop.java @@ -0,0 +1,160 @@ +package kcg.imis.cmmn.aop; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.cmmn.service.LogService; +import kcg.imis.cmmn.service.MenuService; +import kcg.imis.cmmn.vo.MenuVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.ui.Model; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +/** + * @FileName : CommonAop.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 공통AOP 객체 + */ +@Aspect +@Component +public class CommonAop { + + private static final Logger LOGGER = LoggerFactory.getLogger(CommonAop.class); + + @Resource(name = "menuService") + MenuService menuService; + + @Resource(name = "logService") + LogService logService; + + @Around("execution(* kcg.imis..*Controller.*(..))") + public Object menuGenerator(final ProceedingJoinPoint thisJoinPoint) throws Throwable { + + HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String[] excludeUrls = {"/loginView.do","/member/regist.json","/code/codeList.json", "/member/checkId.json"}; + String loginUrl = "/loginView.do"; + String url = req.getRequestURI(); + + for(String excludeUrl : excludeUrls){ + if(excludeUrl.endsWith(url)){ + return thisJoinPoint.proceed(); + } + } + + LoginUserVO loginUserVO = null; + try { + loginUserVO = UserUtil.getMemberInfo(); + } catch (Exception e) { + // 세션정보가 없을 경우 로그인 페이지로 이동. + if (loginUserVO == null) { + return "redirect:" + loginUrl; + } + } + try { + for (Object obj : thisJoinPoint.getArgs()) { + if (obj instanceof Model) { + Model model = (Model) obj; + + MenuVO menuVO = new MenuVO(); + menuVO.setRoleLevel(loginUserVO.getRolelevel()); + List mainMenuList = menuService.selectMainMenu(menuVO); + model.addAttribute("mainMenuList", mainMenuList); + model.addAttribute("topMenu", menuService.getTopMenu()); + HashMap menu = new HashMap(); + + String subStr = url.substring(1); + String boardId = ""; + String group = subStr.split("/")[0]; + String onlyUrl = subStr; + String qryCate = ""; + if (onlyUrl.indexOf("/") > -1) { + onlyUrl = subStr.substring(onlyUrl.indexOf("/")); + } else { + return thisJoinPoint.proceed(); + } + url = onlyUrl; + + if (req.getParameter("bbsId") != null) { + boardId = req.getParameter("bbsId"); + } + + if(req.getParameter("ct") != null && !req.getParameter("ct").equals("")){ + qryCate = "ct=" + req.getParameter("ct"); + model.addAttribute("worlddb", req.getParameter("ct")); + } + if(req.getParameter("seq") != null){ + qryCate = "seq=" + req.getParameter("seq"); + model.addAttribute("worlddb", req.getParameter("seq")); + } + menu.put("url", url); + menu.put("group", group); + menu.put("boardId", boardId); + menu.put("query", qryCate); + + EgovMap menuInfo = menuService.getMenuInfo(menu); + menuInfo.put("userId", loginUserVO.getUserid()); + model.addAttribute("menu", menuInfo); + + List subMenuList = menuService.getSubMenu(menuInfo); + + model.addAttribute("subMenu", subMenuList); + + ((BigDecimal) menuInfo.get("depth")).intValue(); + + List currAndHigherMenuList = menuService.selectListWithHigher(menuInfo.get("id").toString()); + model.addAttribute("currAndHigherMenuList", currAndHigherMenuList); + + addUserLog(req, menuInfo); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + Object proc = thisJoinPoint.proceed(); + return proc; + } + + + private void addUserLog(final HttpServletRequest req, EgovMap menu) { + + try { + LoginUserVO user = (LoginUserVO) req.getSession().getAttribute("userVO"); + HashMap paramMap = new HashMap(); + paramMap.put("userid", user.getUserid()); + paramMap.put("name", user.getName()); + paramMap.put("userip", req.getRemoteAddr()); + paramMap.put("place1", user.getPlace1()); + paramMap.put("place2", user.getPlace2()); + paramMap.put("position", user.getDuties()); + + paramMap.put("menuid", menu.get("id")); + paramMap.put("location", req.getRequestURI()); + + logService.insertUserLog(paramMap); + } catch (Exception e) { + LOGGER.error("fail log insert..............."); + LOGGER.error(e.getMessage()); + } + + } + +} diff --git a/src/main/java/kcg/imis/cmmn/bbs/BaseBbsService.java b/src/main/java/kcg/imis/cmmn/bbs/BaseBbsService.java new file mode 100644 index 0000000..d8f72a5 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/bbs/BaseBbsService.java @@ -0,0 +1,112 @@ +package kcg.imis.cmmn.bbs; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.web.multipart.MultipartFile; + +/** + * @FileName : BaseBbsService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 22. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 기본 게시판 인터페이스 + */ +public interface BaseBbsService { + /** + * 데이터 한 건을 반환한다. + * + * @param dataVO + * 조회할 VO (대부분 PK의 값으로 조회한다.) + * @return 데이터 한 건 + * @throws Exception + * 기본 예외 처리 + */ + DataT select(DataT dataVO) throws Exception; + + /** + * 페이징 처리없이 데이터 전체 목록을 반환한다. + * + * @param searchVO 검색정보 객체 + * @return 데이터 목록 + * @throws Exception 기본 예외 처리 + */ + List selectListAll(SearchT searchVO) throws Exception; + + /** + * 데이터 목록을 반환한다. + * + * @param searchVO + * 검색, 페이지 정보 객체 + * @return 데이터 목록 + * @throws Exception + * 기본 예외 처리 + */ + List selectList(SearchT searchVO) throws Exception; + + /** + * 데이터 목록 개수를 반환한다. + * + * @param searchVO + * 검색, 페이지 정보 객체 + * @return 데이터 목록 갯수 + * @throws Exception + * 기본 예외 처리 + */ + int selectListCnt(SearchT searchVO) throws Exception; + + /** + * 데이터 총 개수를 반환한다. + * + * @param searchVO + * 검색, 페이지 정보 객체 + * @return 데이터 총 개수 + * @throws Exception + * 기본 예외 처리 + */ + int selectTotalCnt(SearchT searchVO) throws Exception; + + /** + * 데이터를 입력한다. + * + * @param dataVO + * 입력할 VO + * @param fileMap + * 파일이 담긴 Map 객체 + * @return 맵 객체 { result: 1-성공 0-실패, idx: 등록된 게시물 idx } + * + * @throws Exception + * 기본 예외 처리 + */ + HashMap insert(DataT dataVO, + Map fileMap) throws Exception; + + /** + * 데이터를 수정한다. + * + * @param dataVO + * 수정할 VO + * @param fileMap + * 파일이 담긴 Map 객체 + * @param deleteFiles + * 삭제할 파일리스트 + * @return 맵 객체 { result: 1-성공 0-실패, idx: 수정된 게시물 idx } + * @throws Exception + * 기본 예외 처리 + */ + HashMap update(DataT dataVO, + Map fileMap, String[] deleteFiles) throws Exception; + + /** + * 데이터를 삭제한다. + * + * @param dataVO + * 삭제할 VO + * @return 맵 객체 { result: 1-성공 0-실패, idx: 삭제된 게시물 idx } + * @throws Exception + * 기본 예외 처리 + */ + HashMap delete(DataT dataVO) throws Exception; +} diff --git a/src/main/java/kcg/imis/cmmn/bbs/BaseFileVO.java b/src/main/java/kcg/imis/cmmn/bbs/BaseFileVO.java new file mode 100644 index 0000000..e7676d2 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/bbs/BaseFileVO.java @@ -0,0 +1,114 @@ +package kcg.imis.cmmn.bbs; + +/** + * + * @FileName : BaseFileVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판형 공용 첨부파일 VO. + */ +public class BaseFileVO { + /** + * 파일 번호. + */ + private int seq; + /** + * 파일 순서 번호. + */ + private int orders; + /** + * 파일 이름. + */ + private String orgName; + /** + * 파일 저장 이름. + */ + private String saveName; + /** + * 게시글 번호. + */ + private int parentSeq; + + /** + * 파일 번호를 반환한다. + * + * @return 파일 번호 + */ + public final int getSeq() { + return seq; + } + /** + * 파일 번호를 설정한다. + * + * @param seq 파일 번호 + */ + public final void setSeq(final int seq) { + this.seq = seq; + } + /** + * 파일 순서 번호를 반환한다. + * + * @return 파일 순서 번호 + */ + public final int getOrders() { + return orders; + } + /** + * 파일 순서 번호를 설정한다. + * + * @param order 파일 순서 번호 + */ + public final void setOrders(final int order) { + this.orders = order; + } + /** + * 파일 이름을 반환한다. + * + * @return 파일 이름 + */ + public final String getOrgName() { + return orgName; + } + /** + * 파일 이름을 설정한다. + * + * @param orgName 파일 이름 + */ + public final void setOrgName(final String orgName) { + this.orgName = orgName; + } + /** + * 파일 저장 이름을 반환한다. + * + * @return 파일 저장 이름 + */ + public final String getSaveName() { + return saveName; + } + /** + * 파일 저장 이름을 설정한다. + * + * @param saveName 파일 저장 이름 + */ + public final void setSaveName(final String saveName) { + this.saveName = saveName; + } + /** + * 게시글 번호를 반환한다. + * + * @return 게시글 번호 + */ + public final int getParentSeq() { + return parentSeq; + } + /** + * 게시글 번호를 설정한다. + * + * @param parentSeq 게시글 번호 + */ + public final void setParentSeq(final int parentSeq) { + this.parentSeq = parentSeq; + } +} diff --git a/src/main/java/kcg/imis/cmmn/bbs/BaseSearchVO.java b/src/main/java/kcg/imis/cmmn/bbs/BaseSearchVO.java new file mode 100644 index 0000000..e33e8ba --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/bbs/BaseSearchVO.java @@ -0,0 +1,198 @@ +package kcg.imis.cmmn.bbs; + +/** + * + * @FileName : BaseSearchVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 22. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 기본 게시판 검색 VO + */ +public class BaseSearchVO { + /** + * 현재 페이지. + */ + private int pageIndex = 1; + + /** + * 페이지 개수. + */ + private int pageUnit; // properties에서 설정 + + /** + * 페이지 사이즈. + */ + private int pageSize; // properties에서 설정 + + /** + * 시작 인덱스. + */ + private int firstIndex = 0; + + /** + * 끝 인덱스. + */ + private int lastIndex = 1; + + /** + * 페이지별 레코드 개수. + */ + private int recordCountPerPage = 10; + + /** + * 검색 키워드. + */ + private String searchKeyword = ""; + /** + * 검색 조건. + */ + private String searchCondition = ""; + + /** + * 현재 페이지를 반환한다. + * + * @return 현재 페이지 + */ + public final int getPageIndex() { + return pageIndex; + } + + /** + * 현재 페이지를 설정한다. + * + * @param pageIndex + * 현재 페이지 + */ + public final void setPageIndex(final int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * 페이지 개수를 반환한다. + * + * @return 페이지 개수 + */ + public final int getPageUnit() { + return pageUnit; + } + + /** + * 페이지 개수를 설정한다. + * + * @param pageUnit + * 페이지 개수 + */ + public final void setPageUnit(final int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * 페이지 사이즈를 반환한다. + * + * @return 페이지 사이즈 + */ + public final int getPageSize() { + return pageSize; + } + + /** + * 페이지 사이즈를 설정한다. + * + * @param pageSize + * 페이지 사이즈 + */ + public final void setPageSize(final int pageSize) { + this.pageSize = pageSize; + } + + /** + * 시작 인덱스를 반환한다. + * + * @return 시작 인덱스 + */ + public final int getFirstIndex() { + return firstIndex; + } + + /** + * 시작 인덱스를 설정한다. + * + * @param firstIndex + * 시작 인덱스 + */ + public final void setFirstIndex(final int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * 끝 인덱스를 반환한다. + * + * @return 끝 인덱스 + */ + public final int getLastIndex() { + return lastIndex; + } + + /** + * 끝 인덱스를 설정한다. + * + * @param lastIndex + * 끝 인덱스 + */ + public final void setLastIndex(final int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * 페이지별 레코드 수를 반환한다. + * + * @return 페이지별 레코드 수 + */ + public final int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * 페이지별 레코드 수를 설정한다. + * + * @param recordCountPerPage + * 페이지별 레코드 수 + */ + public final void setRecordCountPerPage(final int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + /** + * 검색 키워드를 반환한다. + * + * @return 검색 키워드 + */ + public final String getSearchKeyword() { + return searchKeyword; + } + + /** + * 검색 키워드를 설정한다. + * + * @param searchKeyword + * 검색 키워드 + */ + public final void setSearchKeyword(final String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * @return 검색 조건을 반환한다. + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * @param 검색 조건을 설정한다. + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } +} diff --git a/src/main/java/kcg/imis/cmmn/bbs/PageType.java b/src/main/java/kcg/imis/cmmn/bbs/PageType.java new file mode 100644 index 0000000..2750e0d --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/bbs/PageType.java @@ -0,0 +1,37 @@ +package kcg.imis.cmmn.bbs; + +/** + * + * @FileName : PageType.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 페이지 화면 구분. + */ +public enum PageType { + /** + * 목록화면. + */ + List, + /** + * 정보조회화면. + */ + View, + /** + * 입력화면. + */ + Add, + /** + * 수정화면. + */ + Upd, + /** + * 삭제화면. + */ + Del, + /** + * 통계현황화면. + */ + Stats +} diff --git a/src/main/java/kcg/imis/cmmn/ckeditor/CkFilter.java b/src/main/java/kcg/imis/cmmn/ckeditor/CkFilter.java new file mode 100644 index 0000000..bd40689 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ckeditor/CkFilter.java @@ -0,0 +1,104 @@ +/* + * CKEditor image upload module for Java. + * Copyright guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + */ +package kcg.imis.cmmn.ckeditor; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Filter class + * @author guavatak + * @since 2014.12.04 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.12.04	표준프레임워크	최초 적용 (패키지 변경 및 소스 정리)
+ * 
+ */ +public class CkFilter implements Filter { + private static final Log log = LogFactory.getLog(CkFilter.class); + + private static final String IMAGE_BASE_DIR_KEY = "ck.image.dir"; + private static final String IMAGE_BASE_URL_KEY = "ck.image.url"; + private static final String IMAGE_ALLOW_TYPE_KEY = "ck.image.type.allow"; + private static final String IMAGE_SAVE_CLASS_KEY = "ck.image.save.class"; + + private CkImageSaver ckImageSaver; + + public void init(FilterConfig filterConfig) throws ServletException { + String properties = filterConfig.getInitParameter("properties"); + InputStream inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(properties); + Properties props = new Properties(); + try { + props.load(inStream); + } catch (IOException e) { + log.error(e); + } + + String imageBaseDir = (String) props.get(IMAGE_BASE_DIR_KEY); + String imageDomain = (String) props.get(IMAGE_BASE_URL_KEY); + + String[] allowFileTypeArr = null; + String allowFileType = (String) props.get(IMAGE_ALLOW_TYPE_KEY); + if (StringUtils.isNotBlank(allowFileType)) { + allowFileTypeArr = StringUtils.split(allowFileType, ","); + } + + String saveManagerClass = (String) props.get(IMAGE_SAVE_CLASS_KEY); + + ckImageSaver = new CkImageSaver(imageBaseDir, imageDomain, allowFileTypeArr, saveManagerClass); + + } + + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) req; + HttpServletResponse response = (HttpServletResponse) res; + + if (request.getContentType() == null || request.getContentType().indexOf("multipart") == -1) { + // contentType 이 multipart 가 아니라면 스킵한다. + chain.doFilter(request, response); + } else { + ckImageSaver.saveAndReturnUrlToClient(request, response); + + } + } + + public void destroy() { + // no-op + } +} diff --git a/src/main/java/kcg/imis/cmmn/ckeditor/CkImageSaver.java b/src/main/java/kcg/imis/cmmn/ckeditor/CkImageSaver.java new file mode 100644 index 0000000..2da14c2 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ckeditor/CkImageSaver.java @@ -0,0 +1,158 @@ +/* + * CKEditor image upload module for Java. + * Copyright guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + */ +package kcg.imis.cmmn.ckeditor; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartRequest; + +/** + * Created by guava on 1/20/14. + * 이미지 저장 처리 클래스 + * @author guavatak + * @since 2014.12.04 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.12.04	표준프레임워크	최초 적용 (패키지 변경 및 소스 정리)
+ * 
+ */ +public class CkImageSaver { + private static final Log log = LogFactory.getLog(CkFilter.class); + + private static final String FUNC_NO = "CKEditorFuncNum"; + + private String imageBaseDir; + private String imageDomain; + private String[] allowFileTypeArr; + + private FileSaveManager fileSaveManager; + + public CkImageSaver(String imageBaseDir, String imageDomain, String[] allowFileTypeArr, String saveManagerClass) { + this.imageBaseDir = imageBaseDir; + if (imageBaseDir.endsWith("/")) { + StringUtils.removeEnd(imageBaseDir, "/"); + } + if (imageBaseDir.endsWith("\\")) { + StringUtils.removeEnd(imageBaseDir, "\\"); + } + + this.imageDomain = imageDomain; + if (imageDomain.endsWith("/")) { + StringUtils.removeEnd(imageDomain, "/"); + } + + this.allowFileTypeArr = allowFileTypeArr; + + if (StringUtils.isBlank(saveManagerClass)) { + fileSaveManager = new DefaultFileSaveManager(); + } else { + try { + Class klass = Class.forName(saveManagerClass); + fileSaveManager = (FileSaveManager) klass.newInstance(); + } catch (ClassNotFoundException e) { + log.error(e); + throw new RuntimeException(e); + } catch (InstantiationException e) { + log.error(e); + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + log.error(e); + throw new RuntimeException(e); + } + } + } + + /** + * ckEditor로부터 넘어온 파일을 저장한다. + * 원래 소스는 Request 내의 데이터를 FileItem으로 파싱하여 파일을 저장하였으나, + * 파싱하지 못하는 버그가 발생하여 MultipartRequest로 변형하였다. + * + * @param request Request 객체 + * @param response Response 객체 + * @throws IOException IO 예외처리 + */ + public void saveAndReturnUrlToClient(final HttpServletRequest request, final HttpServletResponse response) throws IOException { + // Parse the request + try { + MultipartRequest req = (MultipartRequest) request; + MultipartFile f = req.getFile("upload"); + + String errorMessage = null; + String relUrl = null; + + if (isAllowFileType(FilenameUtils.getName(f.getOriginalFilename()))) { + relUrl = fileSaveManager.saveFile(f, imageBaseDir, imageDomain); + + } else { + errorMessage = "Restricted Image Format"; + } + + StringBuffer sb = new StringBuffer(); + sb.append(""); + + response.setContentType("text/html"); + response.setHeader("Cache-Control", "no-cache"); + PrintWriter out = response.getWriter(); + + out.print(sb.toString()); + out.flush(); + out.close(); + + } catch (Exception e) { + log.error(e); + } + } + + protected boolean isAllowFileType(String fileName) { + boolean isAllow = false; + if (allowFileTypeArr != null && allowFileTypeArr.length > 0) { + for (String allowFileType : allowFileTypeArr) { + if (StringUtils.equalsIgnoreCase(allowFileType, StringUtils.substringAfterLast(fileName, "."))) { + isAllow = true; + break; + } + } + } else { + isAllow = true; + } + + return isAllow; + } +} diff --git a/src/main/java/kcg/imis/cmmn/ckeditor/DefaultFileSaveManager.java b/src/main/java/kcg/imis/cmmn/ckeditor/DefaultFileSaveManager.java new file mode 100644 index 0000000..20c5ae9 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ckeditor/DefaultFileSaveManager.java @@ -0,0 +1,94 @@ +/* + * CKEditor image upload module for Java. + * Copyright guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + */ +package kcg.imis.cmmn.ckeditor; + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +/** + * Created by guava on 1/20/14. + * 이미지 저장 처리 클래스 + * @author guavatak + * @since 2014.12.04 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.12.04	표준프레임워크	최초 적용 (패키지 변경 및 소스 정리)
+ * 
+ */ +public class DefaultFileSaveManager implements FileSaveManager { + + @Override + public String saveFile(FileItem fileItem, String imageBaseDir, String imageDomain) { + String originalFileName = FilenameUtils.getName(fileItem.getName()); + String relUrl; + // filename + String subDir = File.separator + DirectoryPathManager.getDirectoryPathByDateType(DirectoryPathManager.DIR_DATE_TYPE.DATE_POLICY_YYYY_MM); + String fileName = RandomStringUtils.randomAlphanumeric(20) + "." + StringUtils.lowerCase(StringUtils.substringAfterLast(originalFileName, ".")); + + File newFile = new File(imageBaseDir + subDir + fileName); + File fileToSave = DirectoryPathManager.getUniqueFile(newFile.getAbsoluteFile()); + + try { + FileUtils.writeByteArrayToFile(fileToSave, fileItem.get()); + } catch (IOException e) { + e.printStackTrace(); + } + + String savedFileName = FilenameUtils.getName(fileToSave.getAbsolutePath()); + relUrl = StringUtils.replace(subDir, "\\", "/") + savedFileName; + + return imageDomain + relUrl; + } + + @Override + public String saveFile(final MultipartFile file, final String imageBaseDir, final String imageDomain) { + String originalFileName = FilenameUtils.getName(file.getOriginalFilename()); + String relUrl; + // filename + String subDir = File.separator + DirectoryPathManager.getDirectoryPathByDateType(DirectoryPathManager.DIR_DATE_TYPE.DATE_POLICY_YYYY_MM); + String fileName = RandomStringUtils.randomAlphanumeric(20) + "." + StringUtils.lowerCase(StringUtils.substringAfterLast(originalFileName, ".")); + + File newFile = new File(imageBaseDir + subDir + fileName); + File fileToSave = DirectoryPathManager.getUniqueFile(newFile.getAbsoluteFile()); + + try { + FileUtils.writeByteArrayToFile(fileToSave, file.getBytes()); + } catch (IOException e) { + e.printStackTrace(); + } + + String savedFileName = FilenameUtils.getName(fileToSave.getAbsolutePath()); + relUrl = StringUtils.replace(subDir, "\\", "/") + savedFileName; + + return imageDomain + relUrl; + } +} diff --git a/src/main/java/kcg/imis/cmmn/ckeditor/DirectoryPathManager.java b/src/main/java/kcg/imis/cmmn/ckeditor/DirectoryPathManager.java new file mode 100644 index 0000000..c9e071c --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ckeditor/DirectoryPathManager.java @@ -0,0 +1,83 @@ +/* + * CKEditor image upload module for Java. + * Copyright guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + */ +package kcg.imis.cmmn.ckeditor; + +import java.io.File; +import java.util.Calendar; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; + +/** + * 이미지 저장 처리 클래스 + * @author guavatak + * @since 2014.12.04 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.12.04	표준프레임워크	최초 적용 (패키지 변경 및 소스 정리)
+ * 
+ */ +public class DirectoryPathManager { + public enum DIR_DATE_TYPE { + DATE_POLICY_YYYY_MM_DD, DATE_POLICY_YYYY_MM, DATE_POLICY_YYYY + }; + + /** + * 2012/12/22/ + * @param dateType + * @return + * @throws InvalidArgumentException + */ + public static String getDirectoryPathByDateType(DIR_DATE_TYPE policy) { + + Calendar calendar = Calendar.getInstance(); + StringBuffer sb = new StringBuffer(); + sb.append(calendar.get(Calendar.YEAR)).append(File.separator); + if (policy.ordinal() <= DIR_DATE_TYPE.DATE_POLICY_YYYY_MM.ordinal()) { + sb.append(StringUtils.leftPad(String.valueOf(calendar.get(Calendar.MONTH)), 2, '0')).append(File.separator); + } + if (policy.ordinal() <= DIR_DATE_TYPE.DATE_POLICY_YYYY_MM_DD.ordinal()) { + sb.append(StringUtils.leftPad(String.valueOf(calendar.get(Calendar.DATE)), 2, '0')).append(File.separator); + } + + return sb.toString(); + } + + public static File getUniqueFile(final File file) { + if (!file.exists()) + return file; + + File tmpFile = new File(file.getAbsolutePath()); + File parentDir = tmpFile.getParentFile(); + int count = 1; + String extension = FilenameUtils.getExtension(tmpFile.getName()); + String baseName = FilenameUtils.getBaseName(tmpFile.getName()); + do { + tmpFile = new File(parentDir, baseName + "_" + count++ + "_." + extension); + } while (tmpFile.exists()); + return tmpFile; + } + +} diff --git a/src/main/java/kcg/imis/cmmn/ckeditor/FileSaveManager.java b/src/main/java/kcg/imis/cmmn/ckeditor/FileSaveManager.java new file mode 100644 index 0000000..e6d98f1 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/ckeditor/FileSaveManager.java @@ -0,0 +1,63 @@ +/* + * CKEditor image upload module for Java. + * Copyright guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @author guavatak (https://github.com/guavatak/ckeditor-upload-filter-java) + */ +package kcg.imis.cmmn.ckeditor; + +import org.apache.commons.fileupload.FileItem; +import org.springframework.web.multipart.MultipartFile; + +/** + * Created by guava on 1/20/14. + * 이미지 저장 처리 클래스 + * @author guavatak + * @since 2014.12.04 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.12.04	표준프레임워크	최초 적용 (패키지 변경 및 소스 정리)
+ * 
+ */ +public interface FileSaveManager { + /** + * + * @param fileItem FileItem 객체 + * @param imageBaseDir 기본 이미지 저장 디렉토리. 이 디렉토리 아래로 모든 파일을 넣어도 되고, 폴더를 구분하여 넣어도 된다. 이 파라미터에는 마지막 디렉토리 구분자는 포함되지 않는다. + * @param imageDomain 이미지 태그에 들어갈 기본이 되는 URL. + * "http://image.my.com" 과 같은 도메인이 들어갈 수도 있고, "/ckimage" 같은 상대 경로가 들어갈 수도 있다. + * 이 파라미터는 생략해도 된다. + * @return 이미지 파일을 액세스 할 수 있는 URL 을 반환한다. 반환된 URL 은 ckeditor 에게 전달되어 즉시 사용자 브라우져에 이미지가 나타나게 된다. + */ + String saveFile(FileItem fileItem, String imageBaseDir, String imageDomain); + + /** + * + * @param file MultipartFile 객체 + * @param imageBaseDir 기본 이미지 저장 디렉토리. 이 디렉토리 아래로 모든 파일을 넣어도 되고, 폴더를 구분하여 넣어도 된다. 이 파라미터에는 마지막 디렉토리 구분자는 포함되지 않는다. + * @param imageDomain 이미지 태그에 들어갈 기본이 되는 URL. + * "http://image.my.com" 과 같은 도메인이 들어갈 수도 있고, "/ckimage" 같은 상대 경로가 들어갈 수도 있다. + * 이 파라미터는 생략해도 된다. + * @return 이미지 파일을 액세스 할 수 있는 URL 을 반환한다. 반환된 URL 은 ckeditor 에게 전달되어 즉시 사용자 브라우져에 이미지가 나타나게 된다. + */ + String saveFile(MultipartFile file, String imageBaseDir, String imageDomain); +} + diff --git a/src/main/java/kcg/imis/cmmn/egov/EgovBasicLogger.java b/src/main/java/kcg/imis/cmmn/egov/EgovBasicLogger.java new file mode 100644 index 0000000..c432e6c --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/EgovBasicLogger.java @@ -0,0 +1,83 @@ +package kcg.imis.cmmn.egov; + +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Utility class to support to logging information + * @author Vincent Han + * @since 2014.09.18 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.09.18	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class EgovBasicLogger { + private static final Level IGNORE_INFO_LEVEL = Level.OFF; + private static final Level DEBUG_INFO_LEVEL = Level.FINEST; + private static final Level INFO_INFO_LEVEL = Level.INFO; + + private static final Logger ignoreLogger = Logger.getLogger("ignore"); + private static final Logger debugLogger = Logger.getLogger("debug"); + private static final Logger infoLogger = Logger.getLogger("info"); + + /** + * 기록이나 처리가 불필요한 경우 사용. + * @param message + * @param exception + */ + public static void ignore(String message, Exception exception) { + if (exception == null) { + ignoreLogger.log(IGNORE_INFO_LEVEL, message); + } else { + ignoreLogger.log(IGNORE_INFO_LEVEL, message, exception); + } + } + + /** + * 기록이나 처리가 불필요한 경우 사용. + * @param message + * @param exception + */ + public static void ignore(String message) { + ignore(message, null); + } + + /** + * 디버그 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void debug(String message, Exception exception) { + if (exception == null) { + debugLogger.log(DEBUG_INFO_LEVEL, message); + } else { + debugLogger.log(DEBUG_INFO_LEVEL, message, exception); + } + } + + /** + * 디버그 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void debug(String message) { + debug(message, null); + } + + /** + * 일반적이 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void info(String message) { + infoLogger.log(INFO_INFO_LEVEL, message); + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/EgovProperties.java b/src/main/java/kcg/imis/cmmn/egov/EgovProperties.java new file mode 100644 index 0000000..c404e22 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/EgovProperties.java @@ -0,0 +1,220 @@ +package kcg.imis.cmmn.egov; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import kcg.imis.cmmn.egov.util.EgovWebUtil; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Class Name : EgovProperties.java + * Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로 + * 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 수 있도록 한다. + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.19 박지욱 최초 생성 + * 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가 + * 2014.10.13 이기하 Globals.properties 값이 null일 경우 오류처리 + * 2016.09.22 임새미 폴더 path값 변경 + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 01. 19 + * @version 1.0 + * @see + * + */ + +public class EgovProperties { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovProperties.class); + + //파일구분자 + final static String FILE_SEPARATOR = System.getProperty("file.separator"); + + //프로퍼티 파일의 물리적 위치 + //public static final String GLOBALS_PROPERTIES_FILE = System.getProperty("user.home") + FILE_SEPARATOR + "egovProps" +FILE_SEPARATOR + "globals.properties"; + + //public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath() + FILE_SEPARATOR+ ".." + FILE_SEPARATOR + ".." + FILE_SEPARATOR; + + public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("kcg")); + + public static final String GLOBALS_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "property" + FILE_SEPARATOR + "globals.properties"; + + /** + * 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용) + * @param keyName String + * @return String + */ + public static String getPathProperty(String keyName) { + String value = ""; + + LOGGER.debug("getPathProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName); + + FileInputStream fis = null; + try { + Properties props = new Properties(); + + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + props.load(new BufferedInputStream(fis)); + + value = props.getProperty(keyName).trim(); + value = RELATIVE_PATH_PREFIX + "property" + System.getProperty("file.separator") + value; + } catch (FileNotFoundException fne) { + LOGGER.debug("Property file not found.", fne); + throw new RuntimeException("Property file not found", fne); + } catch (IOException ioe) { + LOGGER.debug("Property file IO exception", ioe); + throw new RuntimeException("Property file IO exception", ioe); + } finally { + EgovResourceCloseHelper.close(fis); + } + + return value; + } + + /** + * 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.java 전용) + * @param keyName String + * @return String + */ + public static String getProperty(String keyName) { + String value = ""; + + LOGGER.debug("getProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName); + + FileInputStream fis = null; + try { + Properties props = new Properties(); + + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + + props.load(new BufferedInputStream(fis)); + if (props.getProperty(keyName) == null) { + return ""; + } + value = props.getProperty(keyName).trim(); + } catch (FileNotFoundException fne) { + LOGGER.debug("Property file not found.", fne); + throw new RuntimeException("Property file not found", fne); + } catch (IOException ioe) { + LOGGER.debug("Property file IO exception", ioe); + throw new RuntimeException("Property file IO exception", ioe); + } finally { + EgovResourceCloseHelper.close(fis); + } + + return value; + } + + /** + * 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다 + * @param fileName String + * @param key String + * @return String + */ + public static String getPathProperty(String fileName, String key) { + FileInputStream fis = null; + try { + Properties props = new Properties(); + + fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName)); + props.load(new BufferedInputStream(fis)); + fis.close(); + + String value = props.getProperty(key); + value = RELATIVE_PATH_PREFIX + "property" + System.getProperty("file.separator") + value; + + return value; + } catch (FileNotFoundException fne) { + LOGGER.debug("Property file not found.", fne); + throw new RuntimeException("Property file not found", fne); + } catch (IOException ioe) { + LOGGER.debug("Property file IO exception", ioe); + throw new RuntimeException("Property file IO exception", ioe); + } finally { + EgovResourceCloseHelper.close(fis); + } + } + + /** + * 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다 + * @param fileName String + * @param key String + * @return String + */ + public static String getProperty(String fileName, String key) { + FileInputStream fis = null; + try { + Properties props = new Properties(); + + fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName)); + props.load(new BufferedInputStream(fis)); + fis.close(); + + String value = props.getProperty(key); + + return value; + } catch (FileNotFoundException fne) { + LOGGER.debug("Property file not found.", fne); + throw new RuntimeException("Property file not found", fne); + } catch (IOException ioe) { + LOGGER.debug("Property file IO exception", ioe); + throw new RuntimeException("Property file IO exception", ioe); + } finally { + EgovResourceCloseHelper.close(fis); + } + } + + /** + * 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다. + * @param property String + * @return ArrayList + */ + public static ArrayList> loadPropertyFile(String property) { + + // key - value 형태로 된 배열 결과 + ArrayList> keyList = new ArrayList>(); + + String src = property.replace('\\', File.separatorChar).replace('/', File.separatorChar); + FileInputStream fis = null; + try { + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + Properties props = new Properties(); + fis = new FileInputStream(src); + props.load(new BufferedInputStream(fis)); + fis.close(); + + Enumeration plist = props.propertyNames(); + if (plist != null) { + while (plist.hasMoreElements()) { + Map map = new HashMap(); + String key = (String) plist.nextElement(); + map.put(key, props.getProperty(key)); + keyList.add(map); + } + } + } + } catch (IOException ex) { + LOGGER.debug("IO Exception", ex); + throw new RuntimeException(ex); + } finally { + EgovResourceCloseHelper.close(fis); + } + + return keyList; + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/EgovResourceCloseHelper.java b/src/main/java/kcg/imis/cmmn/egov/EgovResourceCloseHelper.java new file mode 100644 index 0000000..efe323c --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/EgovResourceCloseHelper.java @@ -0,0 +1,126 @@ +package kcg.imis.cmmn.egov; + +import java.io.Closeable; +import java.net.ServerSocket; +import java.net.Socket; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; +import java.sql.Wrapper; + +/** + * Utility class to support to close resources + * @author Vincent Han + * @since 2014.09.18 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.09.18	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class EgovResourceCloseHelper { + /** + * Resource close 처리. + * @param resources + */ + public static void close(Closeable ... resources) { + for (Closeable resource : resources) { + if (resource != null) { + try { + resource.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } + } + } + + /** + * JDBC 관련 resource 객체 close 처리 + * @param objects + */ + public static void closeDBObjects(Wrapper ... objects) { + for (Object object : objects) { + if (object != null) { + if (object instanceof ResultSet) { + try { + ((ResultSet)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else if (object instanceof Statement) { + try { + ((Statement)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else if (object instanceof Connection) { + try { + ((Connection)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else { + throw new IllegalArgumentException("Wrapper type is not found : " + object.toString()); + } + } + } + } + + /** + * Socket 관련 resource 객체 close 처리 + * @param objects + */ + public static void closeSocketObjects(Socket socket, ServerSocket server) { + if (socket != null) { + try { + socket.shutdownOutput(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); + } + + try { + socket.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + + if (server != null) { + try { + server.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + } + + /** + * Socket 관련 resource 객체 close 처리 + * + * @param sockets + */ + public static void closeSockets(Socket ... sockets) { + for (Socket socket : sockets) { + if (socket != null) { + try { + socket.shutdownOutput(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); + } + + try { + socket.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/cmmn/egov/file/EgovFileMngUtil.java b/src/main/java/kcg/imis/cmmn/egov/file/EgovFileMngUtil.java new file mode 100644 index 0000000..c3e659b --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/file/EgovFileMngUtil.java @@ -0,0 +1,570 @@ + +package kcg.imis.cmmn.egov.file; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.egov.util.EgovStringUtil; +import kcg.imis.cmmn.egov.util.EgovWebUtil; +import kcg.imis.cmmn.egov.vo.FileVO; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.property.EgovPropertyService; + +/** + * @Class Name : EgovFileMngUtil.java + * @Description : 메시지 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 ------- -------- --------------------------- + * 2009.02.13 이삼섭 최초 생성 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성 + * 2016.09.22 임새미 라인 83~85, 126~136 2016.10.21 하영지 동적으로 폴더를 생성하는 + * 경우가 있어서 폴더명 파라미터 추가parseFileInf Override, deleteFile Override + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 02. 13 + * @version 1.0 + * @see + * + */ +@Component("EgovFileMngUtil") +public class EgovFileMngUtil { + + public static final int BUFF_SIZE = 2048; + + @Resource(name = "propertiesService") + protected EgovPropertyService propertyService; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class); + + /** + * 파일이 존재하면 규칙에 의해 파일명을 수정한다. + *
+	 * 규칙 : {파일명}_{숫자}.{확장자}
+	 * 
+ * @param filePath 파일경로 + * @param fileNameExt (확장자를 포함한) 파일명 + * @return 파일명 + */ + public String makeNewFileName(final String filePath, final String fileNameExt) { + int idx = 0; + String fileExt = ""; + String fileName = ""; + String newFileName = ""; + String filePathName = filePath + fileNameExt; + String newFileNameExt = fileNameExt; + + if (!StringUtils.isBlank(filePathName)) { + fileExt = FilenameUtils.getExtension(fileNameExt); + fileName = FilenameUtils.getName(fileNameExt); + fileName = FilenameUtils.removeExtension(fileName); + newFileName = fileName; + while (true) { + File f = new File(filePathName); + if (f.isFile()) { + newFileName = String.format("%s_%d", fileName, ++idx); + filePathName = String.format("%s%s.%s", filePath, newFileName, fileExt); + } else { + break; + } + } + + newFileNameExt = newFileName; + if (!StringUtils.isBlank(fileExt)) { + newFileNameExt += "." + fileExt; + } + + } + + return newFileNameExt; + } + + /** + * 파일을 저장하고 저장된 파일정보 목록을 취득한다. + * @param files 파일객체 + * @param keyStr 구분 값 + * @param fileKeyParam 파일순번 + * @param atchFileId 파일ID + * @param storePath 저장경로 + * @return 저장된 파일정보 List + * @throws Exception 기본 예외 처리 + */ + public List parseFileInf(final Map files, final String keyStr, final int fileKeyParam, final String atchFileId, final String storePath) throws Exception { + return parseFileInf(files, keyStr, fileKeyParam, atchFileId, storePath, null); + } + + /** + * 첨부파일을 서버에 저장한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected void writeUploadedFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + String stordFilePathReal = (stordFilePath == null ? "" : stordFilePath).replaceAll("..", ""); + try { + stream = file.getInputStream(); + File cFile = new File(stordFilePathReal); + + if (!cFile.isDirectory()) { + boolean flag = cFile.mkdir(); + if (!flag) { + throw new IOException("Directory creation Failed "); + } + } + + bos = new FileOutputStream(stordFilePathReal + File.separator + newName); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } catch (FileNotFoundException fnfe) { + LOGGER.debug("fnfe: {}", fnfe); + } catch (IOException ioe) { + LOGGER.debug("ioe: {}", ioe); + } catch (Exception e) { + LOGGER.debug("e: {}", e); + } finally { + if (bos != null) { + try { + bos.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + if (stream != null) { + try { + stream.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + } + } + + /** + * 서버의 파일을 다운로드한다. + * + * @param request + * @param response + * @throws Exception + */ + public static void downFile(HttpServletRequest request, HttpServletResponse response) throws Exception { + + String downFileName = EgovStringUtil.isNullToString(request.getAttribute("downFile")).replaceAll("..", ""); + String orgFileName = EgovStringUtil.isNullToString(request.getAttribute("orgFileName")).replaceAll("..", ""); + + /* + * if ((String)request.getAttribute("downFile") == null) { downFileName + * = ""; } else { downFileName = + * EgovStringUtil.isNullToString(request.getAttribute("downFile")); } + */ + + /* + * if ((String)request.getAttribute("orgFileName") == null) { + * orgFileName = ""; } else { orgFileName = + * (String)request.getAttribute("orginFile"); } + */ + + File file = new File(downFileName); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFF_SIZE]; // buffer size 2K. + String fName = (new String(orgFileName.getBytes(), "UTF-8")).replaceAll("\r\n", ""); + response.setContentType("application/x-msdownload"); + response.setHeader("Content-Disposition:", "attachment; filename=" + fName); + response.setHeader("Content-Transfer-Encoding", "binary"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + if (outs != null) { + try { + outs.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + if (fin != null) { + try { + fin.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + } + } + + + /** + * 파일을 실제 물리적인 경로에 생성한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected static void writeFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + newName = EgovWebUtil.filePathBlackList(newName); + stordFilePath = EgovWebUtil.filePathBlackList(stordFilePath); + try { + stream = file.getInputStream(); + File cFile = new File(stordFilePath); + + if (!cFile.isDirectory()) { + cFile.mkdir(); + } + + bos = new FileOutputStream(stordFilePath + File.separator + newName); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } catch (FileNotFoundException fnfe) { + LOGGER.debug("fnfe: {}", fnfe); + } catch (IOException ioe) { + LOGGER.debug("ioe: {}", ioe); + } catch (Exception e) { + LOGGER.debug("e: {}", e); + } finally { + if (bos != null) { + try { + bos.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + if (stream != null) { + try { + stream.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + } + } + + /** + * 서버 파일에 대하여 다운로드를 처리한다. + * + * @param response + * @param streFileNm : 파일저장 경로가 포함된 형태 + * @param orignFileNm + * @throws Exception + */ + public void downFile(HttpServletResponse response, String streFileNm, String orignFileNm) throws Exception { + // String downFileName = + // EgovStringUtil.isNullToString(request.getAttribute("downFile")).replaceAll("..",""); + // String orgFileName = + // EgovStringUtil.isNullToString(request.getAttribute("orgFileName")).replaceAll("..",""); + String downFileName = EgovStringUtil.isNullToString(streFileNm).replaceAll("..", ""); + String orgFileName = EgovStringUtil.isNullToString(orignFileNm).replaceAll("..", ""); + + File file = new File(downFileName); + // log.debug(this.getClass().getName()+" downFile downFileName "+downFileName); + // log.debug(this.getClass().getName()+" downFile orgFileName "+orgFileName); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + // byte[] b = new byte[BUFF_SIZE]; //buffer size 2K. + int fSize = (int) file.length(); + if (fSize > 0) { + BufferedInputStream in = null; + + try { + in = new BufferedInputStream(new FileInputStream(file)); + + String mimetype = "text/html"; // "application/x-msdownload" + + response.setBufferSize(fSize); + response.setContentType(mimetype); + response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName); + response.setContentLength(fSize); + // response.setHeader("Content-Transfer-Encoding","binary"); + // response.setHeader("Pragma","no-cache"); + // response.setHeader("Expires","0"); + FileCopyUtils.copy(in, response.getOutputStream()); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + } + response.getOutputStream().flush(); + response.getOutputStream().close(); + } + + } + + /** + * 곹오컴포넌트 EgovFileTool 일부 발췌&변경 + *
+	 * Comment : 파일을 삭제한다.
+	 * 
+ * @param savedFile 삭제할 파일명 + * @param storePath 파일위치 + * @return 성공하면 삭제된 파일의 절대경로, 아니면블랭크 + */ + public String deleteFile(final String savedFile, final String storePath) { + if (StringUtils.isBlank(savedFile)) { + return ""; + } + + String storePathString = ""; + if (StringUtils.isBlank(storePath)) { + storePathString = propertyService.getString("Globals.fileStorePath"); + } else { + storePathString = propertyService.getString(storePath); + } + String fileDeletePath = storePathString + File.separator + savedFile; + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (fileDeletePath == null || fileDeletePath.equals("")) { + return ""; + } + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(fileDeletePath)); + if (file.isFile()) { + result = deletePath(file); + } else { + result = ""; + } + + return result; + } + + private String deletePath(File file) { + String result = ""; + if (file.exists()) { + result = file.getAbsolutePath(); + if (!file.delete()) { + result = ""; + } + } + return result; + } + + /** + * 파일을 저장하고 저장된 파일정보 목록을 취득한다. + * @param files 파일객체 + * @param keyStr 구분 값 + * @param fileKeyParam 파일순번 + * @param atchFileId 파일ID + * @param storePath저장경로 + * @param folderNm 폴더명 + * @return 저장된 파일정보 List + * @throws Exception 기본 예외 처리 + */ + public List parseFileInf(final Map files, final String keyStr, final int fileKeyParam, final String atchFileId, final String storePath, String folderNm) + throws Exception { + int fileKey = fileKeyParam; + + String baseStorePathString = ""; + String atchFileIdString = ""; + + if (StringUtils.isBlank(storePath)) { + baseStorePathString = propertyService.getString(storePath, "Globals.fileStorePath"); + } else { + baseStorePathString = propertyService.getString(storePath); + } + + + if (StringUtils.isBlank(atchFileId)) { + atchFileIdString = atchFileId; + } else { + atchFileIdString = atchFileId; + } + + List result = new ArrayList(); + if (files != null) { + Iterator> itr = files.entrySet().iterator(); + MultipartFile file; + String filePath = ""; + FileVO fvo; + while (itr.hasNext()) { + Entry entry = itr.next(); + file = entry.getValue(); + String storePathString = ""; + + if(folderNm != null){ + + String id = file.getName(); + if(id.startsWith(CommConstants.FILE_TYPE_IMG)) + folderNm = CommConstants.FILE_TYPE_IMG; + else if(id.startsWith(CommConstants.FILE_TYPE_DOC)) + folderNm = CommConstants.FILE_TYPE_DOC; + + storePathString = baseStorePathString + folderNm + File.separator; + + File saveFolder = new File(storePathString); + + if (!saveFolder.exists() || saveFolder.isFile()) { + saveFolder.mkdirs(); + } + } else { + + storePathString = baseStorePathString + CommConstants.FILE_TYPE_DOC + File.separator; + + File saveFolder = new File(storePathString); + + if (!saveFolder.exists() || saveFolder.isFile()) { + saveFolder.mkdirs(); + } + + } + + String orginFileName = file.getOriginalFilename(); + + // -------------------------------------- + // 원 파일명이 없는 경우 처리 + // (첨부가 되지 않은 input file type) + // -------------------------------------- + if ("".equals(orginFileName)) { + continue; + } + // //------------------------------------ + + int index = orginFileName.lastIndexOf("."); + String fileExt = orginFileName.substring(index + 1); + String newName = orginFileName; + // KeyStr이 없으면 원래 파일명을 사용한다. by KNM + if (!StringUtils.isBlank(keyStr)) { + newName = keyStr + EgovStringUtil.getTimeStamp() + fileKey; + } + + long fileSize = file.getSize(); + // 같은 경로에 파일이 존재하면 파일 명을 수정한다. + String tempFileName = makeNewFileName(storePathString, newName); + if (!newName.equalsIgnoreCase(tempFileName)) { + newName = tempFileName; + } + + if (StringUtils.isNotBlank(orginFileName)) { + filePath = storePathString + File.separator + newName; + file.transferTo(new File(filePath)); + } + + fvo = new FileVO(); + fvo.setFileExtsn(fileExt); + fvo.setFileStreCours(storePathString); + fvo.setFileMg(Long.toString(fileSize)); + fvo.setOrignlFileNm(orginFileName); + fvo.setStreFileNm(newName); + fvo.setAtchFileId(atchFileIdString); + fvo.setFileSn(entry.getKey()); + + writeFile(file, newName, storePathString); + result.add(fvo); + + fileKey++; + } + } + + return result; + } + + /** + * 공통컴포넌트 EgovFileTool 일부 발췌&변경 + * + *
+	 * Comment : 파일을 삭제한다.
+	 * 
+ * + * @param savedFile + * 삭제할 파일명 + * @param storePath + * 루트 디렉토리 + * @param folderNm + * 폴더명 + * @return 성공하면 삭제된 파일의 절대경로, 아니면블랭크 + */ + public String deleteFile(final String savedFile, final String storePath, final String folderNm) { + if (StringUtils.isBlank(savedFile)) { + return ""; + } + + String storePathString = ""; + if (StringUtils.isBlank(storePath)) { + storePathString = propertyService.getString("Globals.fileStorePath"); + } else { + storePathString = propertyService.getString(storePath); + } + + String fileDeletePath = storePathString + File.separator + folderNm + File.separator + savedFile; + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (fileDeletePath == null || fileDeletePath.equals("")) { + return ""; + } + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(fileDeletePath)); + if (file.isFile()) { + result = deletePath(file); + } else { + result = ""; + } + + return result; + } + +} diff --git a/src/main/java/kcg/imis/cmmn/egov/file/EgovFileUploadUtil.java b/src/main/java/kcg/imis/cmmn/egov/file/EgovFileUploadUtil.java new file mode 100644 index 0000000..48e2a94 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/file/EgovFileUploadUtil.java @@ -0,0 +1,86 @@ +package kcg.imis.cmmn.egov.file; + +import java.io.File; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.cmmn.egov.file.EgovFormBasedFileUtil; +import kcg.imis.cmmn.egov.file.EgovFormBasedFileVo; +import kcg.imis.cmmn.egov.util.EgovWebUtil; + +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +/** + * @Class Name : EgovFileUploadUtil.java + * @Description : Spring 기반 File Upload 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + */ +public class EgovFileUploadUtil extends EgovFormBasedFileUtil { + /** + * 파일을 Upload 처리한다. + * + * @param request + * @param where + * @param maxFileSize + * @return + * @throws Exception + */ + public static List uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception { + List list = new ArrayList(); + + MultipartHttpServletRequest mptRequest = (MultipartHttpServletRequest) request; + Iterator fileIter = mptRequest.getFileNames(); + + while (fileIter.hasNext()) { + MultipartFile mFile = mptRequest.getFile((String) fileIter.next()); + + EgovFormBasedFileVo vo = new EgovFormBasedFileVo(); + + String tmp = mFile.getOriginalFilename(); + + if (tmp.lastIndexOf("\\") >= 0) { + tmp = tmp.substring(tmp.lastIndexOf("\\") + 1); + } + + vo.setFileName(tmp); + vo.setContentType(mFile.getContentType()); + vo.setServerSubPath(getTodayString()); + vo.setPhysicalName(getPhysicalFileName()); + vo.setSize(mFile.getSize()); + + if (tmp.lastIndexOf(".") >= 0) { + vo.setPhysicalName(vo.getPhysicalName()); // 2012.11 KISA 보안조치 + } + + if (mFile.getSize() > 0) { + InputStream is = null; + + try { + is = mFile.getInputStream(); + saveFile(is, new File(EgovWebUtil.filePathBlackList(where + SEPERATOR + vo.getServerSubPath() + SEPERATOR + vo.getPhysicalName()))); + } finally { + if (is != null) { + is.close(); + } + } + list.add(vo); + } + } + + return list; + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileUtil.java b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileUtil.java new file mode 100644 index 0000000..a905075 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileUtil.java @@ -0,0 +1,283 @@ +package kcg.imis.cmmn.egov.file; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.cmmn.egov.EgovResourceCloseHelper; +import kcg.imis.cmmn.egov.util.EgovWebUtil; + +import org.apache.commons.fileupload.FileItemIterator; +import org.apache.commons.fileupload.FileItemStream; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.fileupload.util.Streams; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @Class Name : EgovFormBasedFileUtil.java + * @Description : Form-based File Upload 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + */ +public class EgovFormBasedFileUtil { + /** Buffer size */ + public static final int BUFFER_SIZE = 8192; + + public static final String SEPERATOR = File.separator; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovFormBasedFileUtil.class); + + /** + * 오늘 날짜 문자열 취득. + * ex) 20090101 + * @return + */ + public static String getTodayString() { + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); + + return format.format(new Date()); + } + + /** + * 물리적 파일명 생성. + * @return + */ + public static String getPhysicalFileName() { + return EgovFormBasedUUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); + } + + /** + * 파일명 변환. + * @param filename String + * @return + * @throws Exception + */ + protected static String convert(String filename) throws Exception { + //return java.net.URLEncoder.encode(filename, "utf-8"); + return filename; + } + + /** + * Stream으로부터 파일을 저장함. + * @param is InputStream + * @param file File + * @throws IOException + */ + public static long saveFile(InputStream is, File file) throws IOException { + // 디렉토리 생성 + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + + OutputStream os = null; + long size = 0L; + + try { + os = new FileOutputStream(file); + + int bytesRead = 0; + byte[] buffer = new byte[BUFFER_SIZE]; + + while ((bytesRead = is.read(buffer, 0, BUFFER_SIZE)) != -1) { + size += bytesRead; + os.write(buffer, 0, bytesRead); + } + } finally { + EgovResourceCloseHelper.close(os); + } + + return size; + } + + /** + * 파일을 Upload 처리한다. + * + * @param request + * @param where + * @param maxFileSize + * @return + * @throws Exception + */ + public static List uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception { + List list = new ArrayList(); + + // Check that we have a file upload request + boolean isMultipart = ServletFileUpload.isMultipartContent(request); + + if (isMultipart) { + // Create a new file upload handler + ServletFileUpload upload = new ServletFileUpload(); + upload.setFileSizeMax(maxFileSize); // SizeLimitExceededException + + // Parse the request + FileItemIterator iter = upload.getItemIterator(request); + while (iter.hasNext()) { + FileItemStream item = iter.next(); + String name = item.getFieldName(); + InputStream stream = item.openStream(); + if (item.isFormField()) { + LOGGER.info("Form field '{}' with value '{}' detected.", name, Streams.asString(stream)); + } else { + LOGGER.info("File field '{}' with file name '{}' detected.", name, item.getName()); + + if ("".equals(item.getName())) { + continue; + } + + // Process the input stream + EgovFormBasedFileVo vo = new EgovFormBasedFileVo(); + + String tmp = item.getName(); + + if (tmp.lastIndexOf("\\") >= 0) { + tmp = tmp.substring(tmp.lastIndexOf("\\") + 1); + } + + vo.setFileName(tmp); + vo.setContentType(item.getContentType()); + vo.setServerSubPath(getTodayString()); + vo.setPhysicalName(getPhysicalFileName()); + + if (tmp.lastIndexOf(".") >= 0) { + vo.setPhysicalName(vo.getPhysicalName() + tmp.substring(tmp.lastIndexOf("."))); + } + + long size = saveFile(stream, new File(EgovWebUtil.filePathBlackList(where) + SEPERATOR + vo.getServerSubPath() + SEPERATOR + vo.getPhysicalName())); + + vo.setSize(size); + + list.add(vo); + } + } + } else { + throw new IOException("form's 'enctype' attribute have to be 'multipart/form-data'"); + } + + return list; + } + + /** + * 파일을 Download 처리한다. + * + * @param response + * @param where + * @param serverSubPath + * @param physicalName + * @param original + * @throws Exception + */ + public static void downloadFile(HttpServletResponse response, String where, String serverSubPath, String physicalName, String original) throws Exception { + String downFileName = where + SEPERATOR + serverSubPath + SEPERATOR + physicalName; + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFFER_SIZE]; + + original = original.replaceAll("\r", "").replaceAll("\n", ""); + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + convert(original) + "\";"); + response.setHeader("Content-Transfer-Encoding", "binary"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + EgovResourceCloseHelper.close(outs, fin); + } + } + + /** + * 이미지에 대한 미리보기 기능을 제공한다. + * + * mimeType의 경우는 JSP 상에서 다음과 같이 얻을 수 있다. + * getServletConfig().getServletContext().getMimeType(name); + * + * @param response + * @param where + * @param serverSubPath + * @param physicalName + * @param mimeType + * @throws Exception + */ + public static void viewFile(HttpServletResponse response, String where, String serverSubPath, String physicalName, String mimeTypeParam) throws Exception { + String mimeType = mimeTypeParam; + String downFileName = where + SEPERATOR + serverSubPath + SEPERATOR + physicalName; + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFFER_SIZE]; + + if (mimeType == null) { + mimeType = "application/octet-stream;"; + } + + response.setContentType(EgovWebUtil.removeCRLF(mimeType)); + response.setHeader("Content-Disposition", "filename=image;"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + EgovResourceCloseHelper.close(outs, fin); + } + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileVo.java b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileVo.java new file mode 100644 index 0000000..b8e3cff --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedFileVo.java @@ -0,0 +1,104 @@ +package kcg.imis.cmmn.egov.file; + +import java.io.Serializable; + +/** + * @Class Name : EgovFormBasedFileVo.java + * @Description : Form-based File Upload VO + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + * + * Copyright (C) 2008 by MOPAS All right reserved. + */ +@SuppressWarnings("serial") +public class EgovFormBasedFileVo implements Serializable { + /** 파일명 */ + private String fileName = ""; + /** ContextType */ + private String contentType = ""; + /** 하위 디렉토리 지정 */ + private String serverSubPath = ""; + /** 물리적 파일명 */ + private String physicalName = ""; + /** 파일 사이즈 */ + private long size = 0L; + + /** + * fileName attribute를 리턴한다. + * @return the fileName + */ + public String getFileName() { + return fileName; + } + /** + * fileName attribute 값을 설정한다. + * @param fileName the fileName to set + */ + public void setFileName(String fileName) { + this.fileName = fileName; + } + /** + * contentType attribute를 리턴한다. + * @return the contentType + */ + public String getContentType() { + return contentType; + } + /** + * contentType attribute 값을 설정한다. + * @param contentType the contentType to set + */ + public void setContentType(String contentType) { + this.contentType = contentType; + } + /** + * serverSubPath attribute를 리턴한다. + * @return the serverSubPath + */ + public String getServerSubPath() { + return serverSubPath; + } + /** + * serverSubPath attribute 값을 설정한다. + * @param serverSubPath the serverSubPath to set + */ + public void setServerSubPath(String serverSubPath) { + this.serverSubPath = serverSubPath; + } + /** + * physicalName attribute를 리턴한다. + * @return the physicalName + */ + public String getPhysicalName() { + return physicalName; + } + /** + * physicalName attribute 값을 설정한다. + * @param physicalName the physicalName to set + */ + public void setPhysicalName(String physicalName) { + this.physicalName = physicalName; + } + /** + * size attribute를 리턴한다. + * @return the size + */ + public long getSize() { + return size; + } + /** + * size attribute 값을 설정한다. + * @param size the size to set + */ + public void setSize(long size) { + this.size = size; + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedUUID.java b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedUUID.java new file mode 100644 index 0000000..5f2b961 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/file/EgovFormBasedUUID.java @@ -0,0 +1,529 @@ +package kcg.imis.cmmn.egov.file; + +import java.io.Serializable; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +/** + * + * A class that represents an immutable universally unique identifier (UUID). A + * UUID represents a 128-bit value. + * + *

+ * There exist different variants of these global identifiers. The methods of + * this class are for manipulating the Leach-Salz variant, although the + * constructors allow the creation of any variant of UUID (described below). + * + *

+ * The layout of a variant 2 (Leach-Salz) UUID is as follows: + * + * The most significant long consists of the following unsigned fields: + * + *

+ *   0xFFFFFFFF00000000 time_low
+ *   0x00000000FFFF0000 time_mid
+ *   0x000000000000F000 version
+ *   0x0000000000000FFF time_hi
+ * 
+ * + * The least significant long consists of the following unsigned fields: + * + *
+ *   0xC000000000000000 variant
+ *   0x3FFF000000000000 clock_seq
+ *   0x0000FFFFFFFFFFFF node
+ * 
+ * + *

+ * The variant field contains a value which identifies the layout of the + * UUID. The bit layout described above is valid only for a + * UUID with a variant value of 2, which indicates the Leach-Salz + * variant. + * + *

+ * The version field holds a value that describes the type of this UUID. + * There are four different basic types of UUIDs: time-based, DCE security, + * name-based, and randomly generated UUIDs. These types have a version value of + * 1, 2, 3 and 4, respectively. + * + *

+ * For more information including algorithms used to create UUIDs, + * see the Internet-Draft UUIDs + * and GUIDs or the standards body definition at ISO/IEC 11578:1996. + * + * @version 1.14, 07/12/04 + * @since 1.5 + */ +@SuppressWarnings("serial") +public class EgovFormBasedUUID implements Serializable { + /* + * The most significant 64 bits of this UUID. + * + * @serial + */ + private final long mostSigBits; + + /* + * The least significant 64 bits of this UUID. + * + * @serial + */ + private final long leastSigBits; + + /* + * The version number associated with this UUID. Computed on demand. + */ + private transient int version = -1; + + /* + * The variant number associated with this UUID. Computed on demand. + */ + private transient int variant = -1; + + /* + * The timestamp associated with this UUID. Computed on demand. + */ + private transient volatile long timestamp = -1; + + /* + * The clock sequence associated with this UUID. Computed on demand. + */ + private transient int sequence = -1; + + /* + * The node number associated with this UUID. Computed on demand. + */ + private transient long node = -1; + + /* + * The hashcode of this UUID. Computed on demand. + */ + private transient int hashCode = -1; + + /* + * The random number generator used by this class to create random based + * UUIDs. + */ + private static volatile SecureRandom numberGenerator = null; + + // Constructors and Factories + + /* + * Private constructor which uses a byte array to construct the new UUID. + */ + private EgovFormBasedUUID(byte[] data) { + long msb = 0; + long lsb = 0; + for (int i = 0; i < 8; i++) + msb = (msb << 8) | (data[i] & 0xff); + for (int i = 8; i < 16; i++) + lsb = (lsb << 8) | (data[i] & 0xff); + this.mostSigBits = msb; + this.leastSigBits = lsb; + } + + /** + * Constructs a new UUID using the specified data. + * mostSigBits is used for the most significant 64 bits of the + * UUID and leastSigBits becomes the least significant + * 64 bits of the UUID. + * + * @param mostSigBits + * @param leastSigBits + */ + public EgovFormBasedUUID(long mostSigBits, long leastSigBits) { + this.mostSigBits = mostSigBits; + this.leastSigBits = leastSigBits; + } + + /** + * Static factory to retrieve a type 4 (pseudo randomly generated) UUID. + * + * The UUID is generated using a cryptographically strong + * pseudo random number generator. + * + * @return a randomly generated UUID. + */ + public static EgovFormBasedUUID randomUUID() { + SecureRandom ng = numberGenerator; + if (ng == null) { + numberGenerator = ng = new SecureRandom(); + } + + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + randomBytes[6] &= 0x0f; /* clear version */ + randomBytes[6] |= 0x40; /* set to version 4 */ + randomBytes[8] &= 0x3f; /* clear variant */ + randomBytes[8] |= 0x80; /* set to IETF variant */ + + return new EgovFormBasedUUID(randomBytes); + } + + /** + * Static factory to retrieve a type 3 (name based) UUID based on + * the specified byte array. + * + * @param name + * a byte array to be used to construct a UUID. + * @return a UUID generated from the specified array. + */ + public static EgovFormBasedUUID nameUUIDFromBytes(byte[] name) { + return null; + +/* + * 2106.11.18 김노민 + * FindBugs에서 Array index is out of bounds. 문제를 제시한다. + * 어차피 사용하지 않으니 해당 메소드를 수정하지 않고 모두 주석처리한다. + * + * + MessageDigest md; + try { + // 2011.10.10 보안점검 후속조치 암호화 알고리즘 변경(MD5 -> SHA-256) + //md = MessageDigest.getInstance("MD5"); + md = MessageDigest.getInstance("SHA-256"); + } catch (NoSuchAlgorithmException nsae) { + //throw new InternalError("MD5 not supported"); + throw new InternalError("SHA-256 not supported"); + } + // 2011.10.10 보안점검 후속조치 + if (md == null) { + throw new RuntimeException("MessageDigest is null!!"); + } + // 2014.09.20 보안점검 후속 조치 + // Random 방식의 salt 추가 + SecureRandom ng = new SecureRandom(); + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + + md.reset(); + md.update(randomBytes); + byte[] sha = md.digest(name); + + + byte[] md5Bytes = new byte[8]; + System.arraycopy(sha, 0, md5Bytes, 0, 8); + //2011.10.10 보안점검 후속조치 끝 + + md5Bytes[6] &= 0x0f; clear version + md5Bytes[6] |= 0x30; set to version 3 + md5Bytes[8] &= 0x3f; clear variant + md5Bytes[8] |= 0x80; set to IETF variant + + return new EgovFormBasedUUID(md5Bytes);*/ + } + + /** + * Creates a UUID from the string standard representation as + * described in the {@link #toString} method. + * + * @param name + * a string that specifies a UUID. + * @return a UUID with the specified value. + * @throws IllegalArgumentException + * if name does not conform to the string representation as + * described in {@link #toString}. + */ + public static EgovFormBasedUUID fromString(String name) { + String[] components = name.split("-"); + if (components.length != 5) + throw new IllegalArgumentException("Invalid UUID string: " + name); + for (int i = 0; i < 5; i++) + components[i] = "0x" + components[i]; + + long mostSigBits = Long.decode(components[0]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[1]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[2]).longValue(); + + long leastSigBits = Long.decode(components[3]).longValue(); + leastSigBits <<= 48; + leastSigBits |= Long.decode(components[4]).longValue(); + + return new EgovFormBasedUUID(mostSigBits, leastSigBits); + } + + // Field Accessor Methods + + /** + * Returns the least significant 64 bits of this UUID's 128 bit value. + * + * @return the least significant 64 bits of this UUID's 128 bit value. + */ + public long getLeastSignificantBits() { + return leastSigBits; + } + + /** + * Returns the most significant 64 bits of this UUID's 128 bit value. + * + * @return the most significant 64 bits of this UUID's 128 bit value. + */ + public long getMostSignificantBits() { + return mostSigBits; + } + + /** + * The version number associated with this UUID. The version + * number describes how this UUID was generated. + * + * The version number has the following meaning: + *

+ *

    + *
  • 1 Time-based UUID + *
  • 2 DCE security UUID + *
  • 3 Name-based UUID + *
  • 4 Randomly generated UUID + *
+ * + * @return the version number of this UUID. + */ + public int version() { + if (version < 0) { + // Version is bits masked by 0x000000000000F000 in MS long + version = (int) ((mostSigBits >> 12) & 0x0f); + } + return version; + } + + /** + * The variant number associated with this UUID. The variant + * number describes the layout of the UUID. + * + * The variant number has the following meaning: + *

+ *

    + *
  • 0 Reserved for NCS backward compatibility + *
  • 2 The Leach-Salz variant (used by this class) + *
  • 6 Reserved, Microsoft Corporation backward compatibility + *
  • 7 Reserved for future definition + *
+ * + * @return the variant number of this UUID. + */ + public int variant() { + if (variant < 0) { + // This field is composed of a varying number of bits + if ((leastSigBits >>> 63) == 0) { + variant = 0; + } else if ((leastSigBits >>> 62) == 2) { + variant = 2; + } else { + variant = (int) (leastSigBits >>> 61); + } + } + return variant; + } + + /** + * The timestamp value associated with this UUID. + * + *

+ * The 60 bit timestamp value is constructed from the time_low, time_mid, + * and time_hi fields of this UUID. The resulting timestamp is + * measured in 100-nanosecond units since midnight, October 15, 1582 UTC. + *

+ * + * The timestamp value is only meaningful in a time-based UUID, which has + * version type 1. If this UUID is not a time-based UUID then + * this method throws UnsupportedOperationException. + * + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public long timestamp() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + long result = timestamp; + if (result < 0) { + result = (mostSigBits & 0x0000000000000FFFL) << 48; + result |= ((mostSigBits >> 16) & 0xFFFFL) << 32; + result |= mostSigBits >>> 32; + timestamp = result; + } + return result; + } + + /** + * The clock sequence value associated with this UUID. + * + *

+ * The 14 bit clock sequence value is constructed from the clock sequence + * field of this UUID. The clock sequence field is used to guarantee + * temporal uniqueness in a time-based UUID. + *

+ * + * The clockSequence value is only meaningful in a time-based UUID, which + * has version type 1. If this UUID is not a time-based UUID then this + * method throws UnsupportedOperationException. + * + * @return the clock sequence of this UUID. + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public int clockSequence() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + if (sequence < 0) { + sequence = (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + } + return sequence; + } + + /** + * The node value associated with this UUID. + * + *

+ * The 48 bit node value is constructed from the node field of this UUID. + * This field is intended to hold the IEEE 802 address of the machine that + * generated this UUID to guarantee spatial uniqueness. + *

+ * + * The node value is only meaningful in a time-based UUID, which has version + * type 1. If this UUID is not a time-based UUID then this method throws + * UnsupportedOperationException. + * + * @return the node value of this UUID. + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public long node() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + if (node < 0) { + node = leastSigBits & 0x0000FFFFFFFFFFFFL; + } + return node; + } + + // Object Inherited Methods + + /** + * Returns a String object representing this + * UUID. + * + *

+ * The UUID string representation is as described by this BNF : + * + *

+     *    UUID                   = <time_low> "-" <time_mid> "-"
+     *                             <time_high_and_version> "-"
+     *                             <variant_and_sequence> "-"
+     *                             <node>
+     *    time_low               = 4*<hexOctet>
+     *    time_mid               = 2*<hexOctet>
+     *    time_high_and_version  = 2*<hexOctet>
+     *    variant_and_sequence   = 2*<hexOctet>
+     *    node                   = 6*<hexOctet>
+     *    hexOctet               = <hexDigit><hexDigit>
+     *    hexDigit               =
+     *          "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+     *          | "a" | "b" | "c" | "d" | "e" | "f"
+     *          | "A" | "B" | "C" | "D" | "E" | "F"
+     * 
+ * + * @return a string representation of this UUID. + */ + @Override + public String toString() { + return (digits(mostSigBits >> 32, 8) + "-" + + digits(mostSigBits >> 16, 4) + "-" + digits(mostSigBits, 4) + + "-" + digits(leastSigBits >> 48, 4) + "-" + digits( + leastSigBits, 12)); + } + + /** Returns val represented by the specified number of hex digits. */ + private static String digits(long val, int digits) { + long hi = 1L << (digits * 4); + return Long.toHexString(hi | (val & (hi - 1))).substring(1); + } + + /** + * Returns a hash code for this UUID. + * + * @return a hash code value for this UUID. + */ + @Override + public int hashCode() { + if (hashCode == -1) { + hashCode = (int) ((mostSigBits >> 32) ^ mostSigBits + ^ (leastSigBits >> 32) ^ leastSigBits); + } + return hashCode; + } + + /** + * Compares this object to the specified object. The result is true + * if and only if the argument is not null, is a UUID + * object, has the same variant, and contains the same value, bit for bit, + * as this UUID. + * + * @param obj + * the object to compare with. + * @return true if the objects are the same; + * false otherwise. + */ + @Override + public boolean equals(Object obj) { + // 보안 취약점 점검 지적사항 반영 시작 + if (obj == null) + return false; + // 보안 취약점 점검 지적사항 반영 시작 끝 + if (!(obj instanceof EgovFormBasedUUID)) + return false; + if (((EgovFormBasedUUID) obj).variant() != this.variant()) + return false; + EgovFormBasedUUID id = (EgovFormBasedUUID) obj; + return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + } + + // Comparison Operations + + /** + * Compares this UUID with the specified UUID. + * + *

+ * The first of two UUIDs follows the second if the most significant field + * in which the UUIDs differ is greater for the first UUID. + * + * @param val + * UUID to which this UUID is to be + * compared. + * @return -1, 0 or 1 as this UUID is less than, equal to, or + * greater than val. + */ + public int compareTo(EgovFormBasedUUID val) { + // The ordering is intentionally set up so that the UUIDs + // can simply be numerically compared as two numbers + return (this.mostSigBits < val.mostSigBits ? -1 + : (this.mostSigBits > val.mostSigBits ? 1 + : (this.leastSigBits < val.leastSigBits ? -1 + : (this.leastSigBits > val.leastSigBits ? 1 : 0)))); + } + + /** + * Reconstitute the UUID instance from a stream (that is, + * deserialize it). This is necessary to set the transient fields to their + * correct uninitialized value so they will be recomputed on demand. + */ + private void readObject(java.io.ObjectInputStream in) + throws java.io.IOException, ClassNotFoundException { + + in.defaultReadObject(); + + // Set "cached computation" fields to their initial values + version = -1; + variant = -1; + timestamp = -1; + sequence = -1; + node = -1; + hashCode = -1; + } +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilter.java b/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilter.java new file mode 100644 index 0000000..fb804e0 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilter.java @@ -0,0 +1,45 @@ +/* + * Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package kcg.imis.cmmn.egov.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public class HTMLTagFilter implements Filter{ + + @SuppressWarnings("unused") + private FilterConfig config; + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + + chain.doFilter(request, response); + } + + public void init(FilterConfig config) throws ServletException { + this.config = config; + } + + public void destroy() { + + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilterRequestWrapper.java b/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilterRequestWrapper.java new file mode 100644 index 0000000..f3f0567 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/filter/HTMLTagFilterRequestWrapper.java @@ -0,0 +1,109 @@ +/* + * Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package kcg.imis.cmmn.egov.filter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +public class HTMLTagFilterRequestWrapper extends HttpServletRequestWrapper { + + public HTMLTagFilterRequestWrapper(HttpServletRequest request) { + super(request); + } + + public String[] getParameterValues(String parameter) { + + String[] values = super.getParameterValues(parameter); + + if(values==null){ + return null; + } + + for (int i = 0; i < values.length; i++) { + if (values[i] != null) { + StringBuffer strBuff = new StringBuffer(); + for (int j = 0; j < values[i].length(); j++) { + char c = values[i].charAt(j); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + //case '&': + //strBuff.append("&"); + //break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + values[i] = strBuff.toString(); + } else { + values[i] = null; + } + } + + return values; + } + + public String getParameter(String parameter) { + + String value = super.getParameter(parameter); + + if(value==null){ + return null; + } + + StringBuffer strBuff = new StringBuffer(); + + for (int i = 0; i < value.length(); i++) { + char c = value.charAt(i); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + case '&': + strBuff.append("&"); + break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + + value = strBuff.toString(); + + return value; + } + +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/cmmn/egov/filter/RequestBodyXSSFilter.java b/src/main/java/kcg/imis/cmmn/egov/filter/RequestBodyXSSFilter.java new file mode 100644 index 0000000..592b56b --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/filter/RequestBodyXSSFilter.java @@ -0,0 +1,36 @@ +package kcg.imis.cmmn.egov.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class RequestBodyXSSFilter implements Filter { + + @Override + public void destroy() {} + @Override + public void init(FilterConfig filterConfig) throws ServletException { + // TODO Auto-generated method stub + + } + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest)request; + HttpServletResponse res = (HttpServletResponse)response; +// RequestWrapper requestWrapper = null; + try{ +// requestWrapper = new RequestWrapper(req); + }catch(Exception e){ + e.printStackTrace(); + } + chain.doFilter(req, res); + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/util/EgovStringUtil.java b/src/main/java/kcg/imis/cmmn/egov/util/EgovStringUtil.java new file mode 100644 index 0000000..613f932 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/util/EgovStringUtil.java @@ -0,0 +1,895 @@ +/** + * @Class Name : EgovStringUtil.java + * @Description : 문자열 데이터 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.13 박정규 최초 생성 + * 2009.02.13 이삼섭 내용 추가 + * + * @author 공통 서비스 개발팀 박정규 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + */ + +package kcg.imis.cmmn.egov.util; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the ";License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"; BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.security.SecureRandom; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Locale; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class EgovStringUtil { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovStringUtil.class); + + /** + * 빈 문자열 "". + */ + public static final String EMPTY = ""; + + /** + *

Padding을 할 수 있는 최대 수치

+ */ + // private static final int PAD_LIMIT = 8192; + /** + *

An array of Strings used for padding.

+ *

Used for efficient space padding. The length of each String expands as needed.

+ */ + /* + private static final String[] PADDING = new String[Character.MAX_VALUE]; + + static { + // space padding is most common, start with 64 chars + PADDING[32] = " "; + } + */ + + /** + * 문자열이 지정한 길이를 초과했을때 지정한길이에다가 해당 문자열을 붙여주는 메서드. + * @param source 원본 문자열 배열 + * @param output 더할문자열 + * @param slength 지정길이 + * @return 지정길이로 잘라서 더할분자열 합친 문자열 + */ + public static String cutString(String source, String output, int slength) { + String returnVal = null; + if (source != null) { + if (source.length() > slength) { + returnVal = source.substring(0, slength) + output; + } else + returnVal = source; + } + return returnVal; + } + + /** + * 문자열이 지정한 길이를 초과했을때 해당 문자열을 삭제하는 메서드 + * @param source 원본 문자열 배열 + * @param slength 지정길이 + * @return 지정길이로 잘라서 더할분자열 합친 문자열 + */ + public static String cutString(String source, int slength) { + String result = null; + if (source != null) { + if (source.length() > slength) { + result = source.substring(0, slength); + } else + result = source; + } + return result; + } + + /** + *

+ * String이 비었거나("") 혹은 null 인지 검증한다. + *

+ * + *
+	 *  StringUtil.isEmpty(null)      = true
+	 *  StringUtil.isEmpty("")        = true
+	 *  StringUtil.isEmpty(" ")       = false
+	 *  StringUtil.isEmpty("bob")     = false
+	 *  StringUtil.isEmpty("  bob  ") = false
+	 * 
+ * + * @param str - 체크 대상 스트링오브젝트이며 null을 허용함 + * @return true - 입력받은 String 이 빈 문자열 또는 null인 경우 + */ + public static boolean isEmpty(String str) { + return str == null || str.length() == 0; + } + + /** + *

기준 문자열에 포함된 모든 대상 문자(char)를 제거한다.

+ * + *
+	 * StringUtil.remove(null, *)       = null
+	 * StringUtil.remove("", *)         = ""
+	 * StringUtil.remove("queued", 'u') = "qeed"
+	 * StringUtil.remove("queued", 'z') = "queued"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @param remove 입력받는 문자열에서 제거할 대상 문자열 + * @return 제거대상 문자열이 제거된 입력문자열. 입력문자열이 null인 경우 출력문자열은 null + */ + public static String remove(String str, char remove) { + if (isEmpty(str) || str.indexOf(remove) == -1) { + return str; + } + char[] chars = str.toCharArray(); + int pos = 0; + for (int i = 0; i < chars.length; i++) { + if (chars[i] != remove) { + chars[pos++] = chars[i]; + } + } + return new String(chars, 0, pos); + } + + /** + *

문자열 내부의 콤마 character(,)를 모두 제거한다.

+ * + *
+	 * StringUtil.removeCommaChar(null)       = null
+	 * StringUtil.removeCommaChar("")         = ""
+	 * StringUtil.removeCommaChar("asdfg,qweqe") = "asdfgqweqe"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @return " , "가 제거된 입력문자열 + * 입력문자열이 null인 경우 출력문자열은 null + */ + public static String removeCommaChar(String str) { + return remove(str, ','); + } + + /** + *

문자열 내부의 마이너스 character(-)를 모두 제거한다.

+ * + *
+	 * StringUtil.removeMinusChar(null)       = null
+	 * StringUtil.removeMinusChar("")         = ""
+	 * StringUtil.removeMinusChar("a-sdfg-qweqe") = "asdfgqweqe"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @return " - "가 제거된 입력문자열 + * 입력문자열이 null인 경우 출력문자열은 null + */ + public static String removeMinusChar(String str) { + return remove(str, '-'); + } + + /** + * 원본 문자열의 포함된 특정 문자열을 새로운 문자열로 변환하는 메서드 + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 + */ + public static String replace(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + String srcStr = source; + + while (srcStr.indexOf(subject) >= 0) { + preStr = srcStr.substring(0, srcStr.indexOf(subject)); + nextStr = srcStr.substring(srcStr.indexOf(subject) + subject.length(), srcStr.length()); + srcStr = nextStr; + rtnStr.append(preStr).append(object); + } + rtnStr.append(nextStr); + return rtnStr.toString(); + } + + /** + * 원본 문자열의 포함된 특정 문자열 첫번째 한개만 새로운 문자열로 변환하는 메서드 + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 / source 특정문자열이 없는 경우 원본 문자열 + */ + public static String replaceOnce(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + if (source.indexOf(subject) >= 0) { + preStr = source.substring(0, source.indexOf(subject)); + nextStr = source.substring(source.indexOf(subject) + subject.length(), source.length()); + rtnStr.append(preStr).append(object).append(nextStr); + return rtnStr.toString(); + } else { + return source; + } + } + + /** + * subject에 포함된 각각의 문자를 object로 변환한다. + * + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 + */ + public static String replaceChar(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + String srcStr = source; + + char chA; + + for (int i = 0; i < subject.length(); i++) { + chA = subject.charAt(i); + + if (srcStr.indexOf(chA) >= 0) { + preStr = srcStr.substring(0, srcStr.indexOf(chA)); + nextStr = srcStr.substring(srcStr.indexOf(chA) + 1, srcStr.length()); + srcStr = rtnStr.append(preStr).append(object).append(nextStr).toString(); + } + } + + return srcStr; + } + + /** + *

strsearchStr의 시작(index) 위치를 반환.

+ * + *

입력값 중 null이 있을 경우 -1을 반환.

+ * + *
+	 * StringUtil.indexOf(null, *)          = -1
+	 * StringUtil.indexOf(*, null)          = -1
+	 * StringUtil.indexOf("", "")           = 0
+	 * StringUtil.indexOf("aabaabaa", "a")  = 0
+	 * StringUtil.indexOf("aabaabaa", "b")  = 2
+	 * StringUtil.indexOf("aabaabaa", "ab") = 1
+	 * StringUtil.indexOf("aabaabaa", "")   = 0
+	 * 
+ * + * @param str 검색 문자열 + * @param searchStr 검색 대상문자열 + * @return 검색 문자열 중 검색 대상문자열이 있는 시작 위치 검색대상 문자열이 없거나 null인 경우 -1 + */ + public static int indexOf(String str, String searchStr) { + if (str == null || searchStr == null) { + return -1; + } + return str.indexOf(searchStr); + } + + /** + *

오라클의 decode 함수와 동일한 기능을 가진 메서드이다. + * sourStrcompareStr의 값이 같으면 + * returStr을 반환하며, 다르면 defaultStr을 반환한다. + *

+ * + *
+	 * StringUtil.decode(null, null, "foo", "bar")= "foo"
+	 * StringUtil.decode("", null, "foo", "bar") = "bar"
+	 * StringUtil.decode(null, "", "foo", "bar") = "bar"
+	 * StringUtil.decode("하이", "하이", null, "bar") = null
+	 * StringUtil.decode("하이", "하이  ", "foo", null) = null
+	 * StringUtil.decode("하이", "하이", "foo", "bar") = "foo"
+	 * StringUtil.decode("하이", "하이  ", "foo", "bar") = "bar"
+	 * 
+ * + * @param sourceStr 비교할 문자열 + * @param compareStr 비교 대상 문자열 + * @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열 + * @param defaultStr sourceStr와 compareStr의 값이 다를 때 반환할 문자열 + * @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며, + *
다르면 defaultStr을 반환한다. + */ + public static String decode(String sourceStr, String compareStr, String returnStr, String defaultStr) { + if (sourceStr == null && compareStr == null) { + return returnStr; + } + + if (sourceStr == null && compareStr != null) { + return defaultStr; + } + + if (sourceStr != null && sourceStr.trim().equals(compareStr)) { + return returnStr; + } + + return defaultStr; + } + + /** + *

오라클의 decode 함수와 동일한 기능을 가진 메서드이다. + * sourStrcompareStr의 값이 같으면 + * returStr을 반환하며, 다르면 sourceStr을 반환한다. + *

+ * + *
+	 * StringUtil.decode(null, null, "foo") = "foo"
+	 * StringUtil.decode("", null, "foo") = ""
+	 * StringUtil.decode(null, "", "foo") = null
+	 * StringUtil.decode("하이", "하이", "foo") = "foo"
+	 * StringUtil.decode("하이", "하이 ", "foo") = "하이"
+	 * StringUtil.decode("하이", "바이", "foo") = "하이"
+	 * 
+ * + * @param sourceStr 비교할 문자열 + * @param compareStr 비교 대상 문자열 + * @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열 + * @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며, + *
다르면 sourceStr을 반환한다. + */ + public static String decode(String sourceStr, String compareStr, String returnStr) { + return decode(sourceStr, compareStr, returnStr, sourceStr); + } + + /** + * 객체가 null인지 확인하고 null인 경우 "" 로 바꾸는 메서드 + * @param object 원본 객체 + * @return resultVal 문자열 + */ + public static String isNullToString(Object object) { + String string = ""; + + if (object != null) { + string = object.toString().trim(); + } + + return string; + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static String nullConvert(Object src) { + //if (src != null && src.getClass().getName().equals("java.math.BigDecimal")) { + if (src != null && src instanceof java.math.BigDecimal) { + return ((BigDecimal) src).toString(); + } + + if (src == null || src.equals("null")) { + return ""; + } else { + return ((String) src).trim(); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static String nullConvert(String src) { + + if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) { + return ""; + } else { + return src.trim(); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 "0"로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 "0"로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(Object src) { + + if (src == null || src.equals("null")) { + return 0; + } else { + return Integer.parseInt(((String) src).trim()); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(String src) { + + if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) { + return 0; + } else { + return Integer.parseInt(src.trim()); + } + } + + /** + *

문자열에서 {@link Character#isWhitespace(char)}에 정의된 + * 모든 공백문자를 제거한다.

+ * + *
+	 * StringUtil.removeWhitespace(null)         = null
+	 * StringUtil.removeWhitespace("")           = ""
+	 * StringUtil.removeWhitespace("abc")        = "abc"
+	 * StringUtil.removeWhitespace("   ab  c  ") = "abc"
+	 * 
+ * + * @param str 공백문자가 제거도어야 할 문자열 + * @return the 공백문자가 제거된 문자열, null이 입력되면 null이 리턴 + */ + public static String removeWhitespace(String str) { + if (isEmpty(str)) { + return str; + } + int sz = str.length(); + char[] chs = new char[sz]; + int count = 0; + for (int i = 0; i < sz; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + chs[count++] = str.charAt(i); + } + } + if (count == sz) { + return str; + } + + return new String(chs, 0, count); + } + + /** + * Html 코드가 들어간 문서를 표시할때 태그에 손상없이 보이기 위한 메서드 + * + * @param strString + * @return HTML 태그를 치환한 문자열 + */ + public static String checkHtmlView(String strString) { + String strNew = ""; + + StringBuffer strTxt = new StringBuffer(""); + + char chrBuff; + int len = strString.length(); + + for (int i = 0; i < len; i++) { + chrBuff = (char) strString.charAt(i); + + switch (chrBuff) { + case '<': + strTxt.append("<"); + break; + case '>': + strTxt.append(">"); + break; + case '"': + strTxt.append("""); + break; + case 10: + strTxt.append("
"); + break; + case ' ': + strTxt.append(" "); + break; + //case '&' : + //strTxt.append("&"); + //break; + default: + strTxt.append(chrBuff); + } + } + + strNew = strTxt.toString(); + + return strNew; + } + + /** + * 문자열을 지정한 분리자에 의해 배열로 리턴하는 메서드. + * @param source 원본 문자열 + * @param separator 분리자 + * @return result 분리자로 나뉘어진 문자열 배열 + */ + public static String[] split(String source, String separator) throws NullPointerException { + String[] returnVal = null; + int cnt = 1; + + int index = source.indexOf(separator); + int index0 = 0; + while (index >= 0) { + cnt++; + index = source.indexOf(separator, index + 1); + } + returnVal = new String[cnt]; + cnt = 0; + index = source.indexOf(separator); + while (index >= 0) { + returnVal[cnt] = source.substring(index0, index); + index0 = index + 1; + index = source.indexOf(separator, index + 1); + cnt++; + } + returnVal[cnt] = source.substring(index0); + + return returnVal; + } + + /** + *

{@link String#toLowerCase()}를 이용하여 소문자로 변환한다.

+ * + *
+	 * StringUtil.lowerCase(null)  = null
+	 * StringUtil.lowerCase("")    = ""
+	 * StringUtil.lowerCase("aBc") = "abc"
+	 * 
+ * + * @param str 소문자로 변환되어야 할 문자열 + * @return 소문자로 변환된 문자열, null이 입력되면 null 리턴 + */ + public static String lowerCase(String str) { + if (str == null) { + return null; + } + + return str.toLowerCase(); + } + + /** + *

{@link String#toUpperCase()}를 이용하여 대문자로 변환한다.

+ * + *
+	 * StringUtil.upperCase(null)  = null
+	 * StringUtil.upperCase("")    = ""
+	 * StringUtil.upperCase("aBc") = "ABC"
+	 * 
+ * + * @param str 대문자로 변환되어야 할 문자열 + * @return 대문자로 변환된 문자열, null이 입력되면 null 리턴 + */ + public static String upperCase(String str) { + if (str == null) { + return null; + } + + return str.toUpperCase(); + } + + /** + *

입력된 String의 앞쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.stripStart(null, *)          = null
+	 * StringUtil.stripStart("", *)            = ""
+	 * StringUtil.stripStart("abc", "")        = "abc"
+	 * StringUtil.stripStart("abc", null)      = "abc"
+	 * StringUtil.stripStart("  abc", null)    = "abc"
+	 * StringUtil.stripStart("abc  ", null)    = "abc  "
+	 * StringUtil.stripStart(" abc ", null)    = "abc "
+	 * StringUtil.stripStart("yxabc  ", "xyz") = "abc  "
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String stripStart(String str, String stripChars) { + int strLen; + if (str == null || (strLen = str.length()) == 0) { + return str; + } + int start = 0; + if (stripChars == null) { + while ((start != strLen) && Character.isWhitespace(str.charAt(start))) { + start++; + } + } else if (stripChars.length() == 0) { + return str; + } else { + while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != -1)) { + start++; + } + } + + return str.substring(start); + } + + /** + *

입력된 String의 뒤쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.stripEnd(null, *)          = null
+	 * StringUtil.stripEnd("", *)            = ""
+	 * StringUtil.stripEnd("abc", "")        = "abc"
+	 * StringUtil.stripEnd("abc", null)      = "abc"
+	 * StringUtil.stripEnd("  abc", null)    = "  abc"
+	 * StringUtil.stripEnd("abc  ", null)    = "abc"
+	 * StringUtil.stripEnd(" abc ", null)    = " abc"
+	 * StringUtil.stripEnd("  abcyx", "xyz") = "  abc"
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String stripEnd(String str, String stripChars) { + int end; + if (str == null || (end = str.length()) == 0) { + return str; + } + + if (stripChars == null) { + while ((end != 0) && Character.isWhitespace(str.charAt(end - 1))) { + end--; + } + } else if (stripChars.length() == 0) { + return str; + } else { + while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != -1)) { + end--; + } + } + + return str.substring(0, end); + } + + /** + *

입력된 String의 앞, 뒤에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.strip(null, *)          = null
+	 * StringUtil.strip("", *)            = ""
+	 * StringUtil.strip("abc", null)      = "abc"
+	 * StringUtil.strip("  abc", null)    = "abc"
+	 * StringUtil.strip("abc  ", null)    = "abc"
+	 * StringUtil.strip(" abc ", null)    = "abc"
+	 * StringUtil.strip("  abcyx", "xyz") = "  abc"
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String strip(String str, String stripChars) { + if (isEmpty(str)) { + return str; + } + + String srcStr = str; + srcStr = stripStart(srcStr, stripChars); + + return stripEnd(srcStr, stripChars); + } + + /** + * 문자열을 지정한 분리자에 의해 지정된 길이의 배열로 리턴하는 메서드. + * @param source 원본 문자열 + * @param separator 분리자 + * @param arraylength 배열 길이 + * @return 분리자로 나뉘어진 문자열 배열 + */ + public static String[] split(String source, String separator, int arraylength) throws NullPointerException { + String[] returnVal = new String[arraylength]; + int cnt = 0; + int index0 = 0; + int index = source.indexOf(separator); + while (index >= 0 && cnt < (arraylength - 1)) { + returnVal[cnt] = source.substring(index0, index); + index0 = index + 1; + index = source.indexOf(separator, index + 1); + cnt++; + } + returnVal[cnt] = source.substring(index0); + if (cnt < (arraylength - 1)) { + for (int i = cnt + 1; i < arraylength; i++) { + returnVal[i] = ""; + } + } + + return returnVal; + } + + /** + * 문자열 A에서 Z사이의 랜덤 문자열을 구하는 기능을 제공 시작문자열과 종료문자열 사이의 랜덤 문자열을 구하는 기능 + * + * @param startChr + * - 첫 문자 + * @param endChr + * - 마지막문자 + * @return 랜덤문자 + * @exception MyException + * @see + */ + public static String getRandomStr(char startChr, char endChr) { + + int randomInt; + String randomStr = null; + + // 시작문자 및 종료문자를 아스키숫자로 변환한다. + int startInt = Integer.valueOf(startChr); + int endInt = Integer.valueOf(endChr); + + // 시작문자열이 종료문자열보가 클경우 + if (startInt > endInt) { + throw new IllegalArgumentException("Start String: " + startChr + " End String: " + endChr); + } + + // 랜덤 객체 생성 + SecureRandom rnd = new SecureRandom(); + + do { + // 시작문자 및 종료문자 중에서 랜덤 숫자를 발생시킨다. + randomInt = rnd.nextInt(endInt + 1); + } while (randomInt < startInt); // 입력받은 문자 'A'(65)보다 작으면 다시 랜덤 숫자 발생. + + // 랜덤 숫자를 문자로 변환 후 스트링으로 다시 변환 + randomStr = (char) randomInt + ""; + + // 랜덤문자열를 리턴 + return randomStr; + } + + /** + * 문자열을 다양한 문자셋(EUC-KR[KSC5601],UTF-8..)을 사용하여 인코딩하는 기능 역으로 디코딩하여 원래의 문자열을 + * 복원하는 기능을 제공함 String temp = new String(문자열.getBytes("바꾸기전 인코딩"),"바꿀 인코딩"); + * String temp = new String(문자열.getBytes("8859_1"),"KSC5601"); => UTF-8 에서 + * EUC-KR + * + * @param srcString + * - 문자열 + * @param srcCharsetNm + * - 원래 CharsetNm + * @param charsetNm + * - CharsetNm + * @return 인(디)코딩 문자열 + * @exception MyException + * @see + */ + public static String getEncdDcd(String srcString, String srcCharsetNm, String cnvrCharsetNm) { + + String rtnStr = null; + + if (srcString == null) + return null; + + try { + rtnStr = new String(srcString.getBytes(srcCharsetNm), cnvrCharsetNm); + } catch (UnsupportedEncodingException e) { + rtnStr = null; + } + + return rtnStr; + } + + /** + * 특수문자를 웹 브라우저에서 정상적으로 보이기 위해 특수문자를 처리('<' -> & lT)하는 기능이다 + * @param srcString - '<' + * @return 변환문자열('<' -> "<" + * @exception MyException + * @see + */ + public static String getSpclStrCnvr(String srcString) { + + String rtnStr = null; + + try { + StringBuffer strTxt = new StringBuffer(""); + + char chrBuff; + int len = srcString.length(); + + for (int i = 0; i < len; i++) { + chrBuff = (char) srcString.charAt(i); + + switch (chrBuff) { + case '<': + strTxt.append("<"); + break; + case '>': + strTxt.append(">"); + break; + case '&': + strTxt.append("&"); + break; + default: + strTxt.append(chrBuff); + } + } + + rtnStr = strTxt.toString(); + + } catch (Exception e) { + LOGGER.debug("{}", e); + } + + return rtnStr; + } + + /** + * 응용어플리케이션에서 고유값을 사용하기 위해 시스템에서17자리의TIMESTAMP값을 구하는 기능 + * + * @param + * @return Timestamp 값 + * @exception MyException + * @see + */ + public static String getTimeStamp() { + + String rtnStr = null; + + // 문자열로 변환하기 위한 패턴 설정(년도-월-일 시:분:초:초(자정이후 초)) + String pattern = "yyyyMMddhhmmssSSS"; + + SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA); + Timestamp ts = new Timestamp(System.currentTimeMillis()); + + rtnStr = sdfCurrent.format(ts.getTime()); + + return rtnStr; + } + + /** + * html의 특수문자를 표현하기 위해 + * + * @param srcString + * @return String + * @exception Exception + * @see + */ + public static String getHtmlStrCnvr(String srcString) { + + String tmpString = srcString; + + tmpString = tmpString.replaceAll("<", "<"); + tmpString = tmpString.replaceAll(">", ">"); + tmpString = tmpString.replaceAll("&", "&"); + tmpString = tmpString.replaceAll(" ", " "); + tmpString = tmpString.replaceAll("'", "\'"); + tmpString = tmpString.replaceAll(""", "\""); + + return tmpString; + + } + + /** + *

날짜 형식의 문자열 내부에 마이너스 character(-)를 추가한다.

+ * + *
+	 *   StringUtil.addMinusChar("20100901") = "2010-09-01"
+	 * 
+ * + * @param date 입력받는 문자열 + * @return " - "가 추가된 입력문자열 + */ + public static String addMinusChar(String date) { + if (date.length() == 8) + return date.substring(0, 4).concat("-").concat(date.substring(4, 6)).concat("-").concat(date.substring(6, 8)); + else + return ""; + } +} diff --git a/src/main/java/kcg/imis/cmmn/egov/util/EgovWebUtil.java b/src/main/java/kcg/imis/cmmn/egov/util/EgovWebUtil.java new file mode 100644 index 0000000..c521fc3 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/util/EgovWebUtil.java @@ -0,0 +1,111 @@ +package kcg.imis.cmmn.egov.util; + +import java.util.regex.Pattern; + +/** + * 교차접속 스크립트 공격 취약성 방지(파라미터 문자열 교체) + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    	--------    ---------------------------
+ *   2011.10.10  한성곤          최초 생성
+ *
+ * 
+ */ + +public class EgovWebUtil { + public static String clearXSSMinimum(String value) { + if (value == null || value.trim().equals("")) { + return ""; + } + + String returnValue = value; + + returnValue = returnValue.replaceAll("&", "&"); + returnValue = returnValue.replaceAll("<", "<"); + returnValue = returnValue.replaceAll(">", ">"); + returnValue = returnValue.replaceAll("\"", """); + returnValue = returnValue.replaceAll("\'", "'"); + returnValue = returnValue.replaceAll("[.]", "."); + returnValue = returnValue.replaceAll("%2E", "."); + returnValue = returnValue.replaceAll("%2F", "/"); + return returnValue; + } + + public static String clearXSSMaximum(String value) { + String returnValue = value; + returnValue = clearXSSMinimum(returnValue); + + returnValue = returnValue.replaceAll("%00", null); + + returnValue = returnValue.replaceAll("%", "%"); + + // \\. => . + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + returnValue = returnValue.replaceAll("\\./", ""); // ./ + returnValue = returnValue.replaceAll("%2F", ""); + + return returnValue; + } + + public static String filePathBlackList(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + returnValue = returnValue.replaceAll("\\.\\.", ""); // .. + + return returnValue; + } + + /** + * 행안부 보안취약점 점검 조치 방안. + * + * @param value + * @return + */ + public static String filePathReplaceAll(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("/", ""); + // Findbugs 수정 : replaceAll은 첫 번째 인자값을 정규식으로 취급하기때문에 역슬래쉬 1개를 표현하기 위해 4개를 입력해야 한다. + returnValue = returnValue.replaceAll("\\\\", ""); + returnValue = returnValue.replaceAll("\\.\\.", ""); // .. + returnValue = returnValue.replaceAll("&", ""); + + return returnValue; + } + + public static String filePathWhiteList(String value) { + return value; + } + + public static boolean isIPAddress(String str) { + Pattern ipPattern = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"); + + return ipPattern.matcher(str).matches(); + } + + public static String removeCRLF(String parameter) { + return parameter.replaceAll("\r", "").replaceAll("\n", ""); + } + + public static String removeSQLInjectionRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("%", "").replaceAll(";", "").replaceAll("-", "").replaceAll("\\+", "").replaceAll(",", ""); + } + + public static String removeOSCmdRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("[|]", "").replaceAll(";", ""); + } + +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/cmmn/egov/vo/FileVO.java b/src/main/java/kcg/imis/cmmn/egov/vo/FileVO.java new file mode 100644 index 0000000..890f6c7 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/egov/vo/FileVO.java @@ -0,0 +1,241 @@ +package kcg.imis.cmmn.egov.vo; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @Class Name : FileVO.java + * @Description : 파일정보 처리를 위한 VO 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 ------- ------- ------------------- 2009. 3. 25. + * 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +public class FileVO implements Serializable { + + /** + * serialVersion UID + */ + private static final long serialVersionUID = -287950405903719128L; + /** + * 첨부파일 아이디 + */ + public String atchFileId = ""; + /** + * 생성일자 + */ + public String creatDt = ""; + /** + * 파일내용 + */ + public String fileCn = ""; + /** + * 파일확장자 + */ + public String fileExtsn = ""; + /** + * 파일크기 + */ + public String fileMg = ""; + /** + * 파일연번 + */ + public String fileSn = ""; + /** + * 파일저장경로 + */ + public String fileStreCours = ""; + /** + * 원파일명 + */ + public String orignlFileNm = ""; + /** + * 저장파일명 + */ + public String streFileNm = ""; + + /** + * atchFileId attribute를 리턴한다. + * + * @return the atchFileId + */ + public String getAtchFileId() { + return atchFileId; + } + + /** + * atchFileId attribute 값을 설정한다. + * + * @param atchFileId + * the atchFileId to set + */ + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + /** + * creatDt attribute를 리턴한다. + * + * @return the creatDt + */ + public String getCreatDt() { + return creatDt; + } + + /** + * creatDt attribute 값을 설정한다. + * + * @param creatDt + * the creatDt to set + */ + public void setCreatDt(String creatDt) { + this.creatDt = creatDt; + } + + /** + * fileCn attribute를 리턴한다. + * + * @return the fileCn + */ + public String getFileCn() { + return fileCn; + } + + /** + * fileCn attribute 값을 설정한다. + * + * @param fileCn + * the fileCn to set + */ + public void setFileCn(String fileCn) { + this.fileCn = fileCn; + } + + /** + * fileExtsn attribute를 리턴한다. + * + * @return the fileExtsn + */ + public String getFileExtsn() { + return fileExtsn; + } + + /** + * fileExtsn attribute 값을 설정한다. + * + * @param fileExtsn + * the fileExtsn to set + */ + public void setFileExtsn(String fileExtsn) { + this.fileExtsn = fileExtsn; + } + + /** + * fileMg attribute를 리턴한다. + * + * @return the fileMg + */ + public String getFileMg() { + return fileMg; + } + + /** + * fileMg attribute 값을 설정한다. + * + * @param fileMg + * the fileMg to set + */ + public void setFileMg(String fileMg) { + this.fileMg = fileMg; + } + + /** + * fileSn attribute를 리턴한다. + * + * @return the fileSn + */ + public String getFileSn() { + return fileSn; + } + + /** + * fileSn attribute 값을 설정한다. + * + * @param fileSn + * the fileSn to set + */ + public void setFileSn(String fileSn) { + this.fileSn = fileSn; + } + + /** + * fileStreCours attribute를 리턴한다. + * + * @return the fileStreCours + */ + public String getFileStreCours() { + return fileStreCours; + } + + /** + * fileStreCours attribute 값을 설정한다. + * + * @param fileStreCours + * the fileStreCours to set + */ + public void setFileStreCours(String fileStreCours) { + this.fileStreCours = fileStreCours; + } + + /** + * orignlFileNm attribute를 리턴한다. + * + * @return the orignlFileNm + */ + public String getOrignlFileNm() { + return orignlFileNm; + } + + /** + * orignlFileNm attribute 값을 설정한다. + * + * @param orignlFileNm + * the orignlFileNm to set + */ + public void setOrignlFileNm(String orignlFileNm) { + this.orignlFileNm = orignlFileNm; + } + + /** + * streFileNm attribute를 리턴한다. + * + * @return the streFileNm + */ + public String getStreFileNm() { + return streFileNm; + } + + /** + * streFileNm attribute 값을 설정한다. + * + * @param streFileNm + * the streFileNm to set + */ + public void setStreFileNm(String streFileNm) { + this.streFileNm = streFileNm; + } + + @Override + public String toString() { + return "FileVO [atchFileId=" + atchFileId + ", creatDt=" + creatDt + ", fileCn=" + fileCn + ", fileExtsn=" + fileExtsn + ", fileMg=" + fileMg + ", fileSn=" + fileSn + ", fileStreCours=" + + fileStreCours + ", orignlFileNm=" + orignlFileNm + ", streFileNm=" + streFileNm + "]"; + } + +} diff --git a/src/main/java/kcg/imis/cmmn/excel/AbstractExcelExport.java b/src/main/java/kcg/imis/cmmn/excel/AbstractExcelExport.java new file mode 100644 index 0000000..4414bf0 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/excel/AbstractExcelExport.java @@ -0,0 +1,65 @@ +/** + * AbstractExcelGenerator.java + * @author 임새미 + * @since 2016. 10. 14. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 14. 임새미 최초생성 + * + */ +package kcg.imis.cmmn.excel; + +import java.util.Map; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * @FileName : AbstractExcelExport.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public abstract class AbstractExcelExport implements ExcelExport { + + /* 기본적으로 3번 라인이 시작라인 */ + protected int firstRow = 2; + protected String template = null; + + /* 파라미터 맵 */ + protected Map document = null; + + + /** + * 엑셀을 생성한다. + * + * @param document 엑셀 파일을 생성하기 위한 데이터셋 + * @return Workbook 객체 + */ + public abstract XSSFWorkbook makeExcel(XSSFWorkbook wb); + + /** + * 타이틀을 설정한다. + * + * @param 파라미터 파라미터설명 + */ + protected void setTitleRow(XSSFSheet sheet, XSSFCellStyle style, String title) { + + XSSFRow row = sheet.createRow(0); + XSSFCell cell = row.createCell(0); + + cell.setCellValue(title); + if (style != null) { + + } + cell.setCellStyle(style); + + } + +} diff --git a/src/main/java/kcg/imis/cmmn/excel/ExcelExport.java b/src/main/java/kcg/imis/cmmn/excel/ExcelExport.java new file mode 100644 index 0000000..f15439e --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/excel/ExcelExport.java @@ -0,0 +1,15 @@ +package kcg.imis.cmmn.excel; + +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * @FileName : ExcelExport.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface ExcelExport { + public abstract XSSFWorkbook makeExcel(XSSFWorkbook wb); +} diff --git a/src/main/java/kcg/imis/cmmn/excel/ExcelExporter.java b/src/main/java/kcg/imis/cmmn/excel/ExcelExporter.java new file mode 100644 index 0000000..48acf12 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/excel/ExcelExporter.java @@ -0,0 +1,132 @@ +package kcg.imis.cmmn.excel; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * 엑셀 변환 클래스. + * + * @author kimnomin + * + * @param 데이터 VO + */ +public class ExcelExporter extends AbstractExcelExport { + + /** + * 헤더 맵 객체. + * <해당 VO의 멤버변수명, 값> 형태 + * ex) {title: 제목} + * + * 해당 맵 객체에 입력된 순서대로 엑셀이 생성된다. + * + * !! 주의 !! 해당 맵 객체의 key가 데이터 VO의 멤버변수명과 동일해야 한다. + */ + private LinkedHashMap headers; + /** + * 데이터 VO List. + */ + private List list; + /** + * 엑셀 내 표현될 제목. + */ + private String title; + + /** + * 생성자. + * + * @param headers 헤더 맵 객체. + * @param list 데이터 VO List. + * @param title 엑셀 내 표현될 제목. + */ + public ExcelExporter(final LinkedHashMap headers, final List list, + final String title) { + super(); + this.headers = headers; + this.list = list; + this.title = title; + } + + @Override + public XSSFWorkbook makeExcel(final XSSFWorkbook wb) { + if (list.size() <= 0 || headers.size() <= 0) { + return null; + } + + XSSFSheet sheet = null; + XSSFRow row = null; + XSSFCell cell = null; + + ExcelStyle style = new ExcelStyle(wb); + sheet = wb.createSheet(title); + setTitleRow(sheet, style.titleStyle, title); + + Set keySet = headers.keySet(); + + // 헤더 + int loopIdx = 0; + row = sheet.createRow(firstRow); + cell = row.createCell(loopIdx); + cell.setCellValue("번호"); + cell.setCellStyle(style.headerStyle); + loopIdx++; + for (String key : keySet) { + cell = row.createCell(loopIdx); + cell.setCellValue(headers.get(key)); + cell.setCellStyle(style.headerStyle); + loopIdx++; + } + + // 값 + for (int i = 0; i < list.size(); i++) { + T t = list.get(i); + row = sheet.createRow(firstRow + 1 + i); + + loopIdx = 0; + cell = row.createCell(loopIdx); + cell.setCellValue(i + 1); + cell.setCellStyle(style.normalTextStyle); + loopIdx++; + for (String key : keySet) { + String value = ""; + + try { + if (t instanceof Map) { + Object o = ((Map) t).get(key); + if (o instanceof String) { + value = o.toString(); + } else if (o instanceof Integer || o instanceof Double) { + value = String.valueOf(o); + } else if (o instanceof BigDecimal) { + value = ((BigDecimal) o).toString(); + } + } else { + Field f = t.getClass().getDeclaredField(key); + f.setAccessible(true); + Object val = f.get(t); + if (val != null) { + value = val.toString(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + cell = row.createCell(loopIdx); + cell.setCellValue(value); + cell.setCellStyle(style.normalTextStyle); + loopIdx++; + } + } + + return wb; + } +} diff --git a/src/main/java/kcg/imis/cmmn/excel/ExcelStyle.java b/src/main/java/kcg/imis/cmmn/excel/ExcelStyle.java new file mode 100644 index 0000000..71375d4 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/excel/ExcelStyle.java @@ -0,0 +1,126 @@ +package kcg.imis.cmmn.excel; + +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.DataFormat; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFColor; +import org.apache.poi.xssf.usermodel.XSSFFont; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * @FileName : ExcelStyle.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ExcelStyle { + + private XSSFFont normalFont; + private XSSFFont boldFont; + private XSSFFont titleFont; + + private XSSFColor yellowColor = new XSSFColor(new java.awt.Color(255, 255, 238)); + private XSSFColor grayColor = new XSSFColor(new java.awt.Color(238, 238, 238)); + private XSSFColor cyanColor = new XSSFColor(new java.awt.Color(238, 255, 255)); + + private DataFormat numericFormat; + + public XSSFCellStyle titleStyle; + public XSSFCellStyle headerStyle; + public XSSFCellStyle firstRowTextStyle; + public XSSFCellStyle firstRowNumericStyle; + public XSSFCellStyle normalTextStyle; + public XSSFCellStyle normalLeftBoldTextStyle; + public XSSFCellStyle normalNumericStyle; + + + public ExcelStyle(XSSFWorkbook wb) { + defindeStyle(wb); + } + + private void defindeStyle(XSSFWorkbook wb) { + + numericFormat = wb.createDataFormat(); + + titleStyle = (XSSFCellStyle) wb.createCellStyle(); + headerStyle = (XSSFCellStyle) wb.createCellStyle(); + firstRowTextStyle = (XSSFCellStyle) wb.createCellStyle(); + firstRowNumericStyle = (XSSFCellStyle) wb.createCellStyle(); + normalTextStyle = (XSSFCellStyle) wb.createCellStyle(); + normalLeftBoldTextStyle = (XSSFCellStyle) wb.createCellStyle(); + normalNumericStyle = (XSSFCellStyle) wb.createCellStyle(); + + normalFont = (XSSFFont) wb.createFont(); + normalFont.setFontName("돋음"); + normalFont.setFontHeightInPoints((short) 9); + normalFont.setBoldweight(Font.BOLDWEIGHT_NORMAL); + + boldFont = (XSSFFont) wb.createFont(); + boldFont.setFontName("돋음"); + boldFont.setFontHeightInPoints((short) 9); + boldFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + + titleFont = (XSSFFont) wb.createFont(); + titleFont.setFontName("돋음"); + titleFont.setFontHeightInPoints((short) 12); + titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + + titleStyle.setFont(titleFont); + titleStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + + headerStyle.setAlignment(CellStyle.ALIGN_CENTER); + headerStyle.setFont(boldFont); + headerStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + headerStyle.setBorderTop(BorderStyle.HAIR); + headerStyle.setBorderLeft(BorderStyle.HAIR); + headerStyle.setBorderRight(BorderStyle.HAIR); + headerStyle.setBorderBottom(BorderStyle.HAIR); + headerStyle.setFillForegroundColor(grayColor); + headerStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); + + firstRowTextStyle.setAlignment(CellStyle.ALIGN_CENTER); + firstRowTextStyle.setFont(normalFont); + firstRowTextStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + firstRowTextStyle.setBorderTop(BorderStyle.HAIR); + firstRowTextStyle.setBorderLeft(BorderStyle.HAIR); + firstRowTextStyle.setBorderRight(BorderStyle.HAIR); + firstRowTextStyle.setBorderBottom(BorderStyle.HAIR); + firstRowTextStyle.setFillForegroundColor(yellowColor); + firstRowTextStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); + + firstRowNumericStyle.setAlignment(CellStyle.ALIGN_CENTER); + firstRowNumericStyle.setFont(normalFont); + firstRowNumericStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + firstRowNumericStyle.setBorderTop(BorderStyle.HAIR); + firstRowNumericStyle.setBorderLeft(BorderStyle.HAIR); + firstRowNumericStyle.setBorderRight(BorderStyle.HAIR); + firstRowNumericStyle.setBorderBottom(BorderStyle.HAIR); + firstRowNumericStyle.setFillForegroundColor(yellowColor); + firstRowNumericStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); + firstRowNumericStyle.setDataFormat(numericFormat.getFormat("#,###")); + + normalTextStyle.setAlignment(CellStyle.ALIGN_CENTER); + normalTextStyle.setFont(normalFont); + normalTextStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + normalTextStyle.setBorderTop(BorderStyle.HAIR); + normalTextStyle.setBorderLeft(BorderStyle.HAIR); + normalTextStyle.setBorderRight(BorderStyle.HAIR); + normalTextStyle.setBorderBottom(BorderStyle.HAIR); + + + normalNumericStyle.setAlignment(CellStyle.ALIGN_CENTER); + normalNumericStyle.setFont(normalFont); + normalNumericStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + normalNumericStyle.setBorderTop(BorderStyle.HAIR); + normalNumericStyle.setBorderLeft(BorderStyle.HAIR); + normalNumericStyle.setBorderRight(BorderStyle.HAIR); + normalNumericStyle.setBorderBottom(BorderStyle.HAIR); + normalNumericStyle.setDataFormat(numericFormat.getFormat("#,###")); + + } + +} diff --git a/src/main/java/kcg/imis/cmmn/excel/ExcelView.java b/src/main/java/kcg/imis/cmmn/excel/ExcelView.java new file mode 100644 index 0000000..0577006 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/excel/ExcelView.java @@ -0,0 +1,58 @@ +package kcg.imis.cmmn.excel; + +import java.net.URLEncoder; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import egovframework.rte.fdl.excel.util.AbstractPOIExcelView; + +/** + * @FileName : ExcelView.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ExcelView extends AbstractPOIExcelView { + + /** + * 엑셀파일을 다운로드한다. + * + * @param model Model객체 + * @param model Model객체 + * @param model Model객체 + * @param model Model객체 + */ + @Override + protected void buildExcelDocument(Map model, XSSFWorkbook wb, HttpServletRequest req, HttpServletResponse res) throws Exception { + + if(model.get("filename") != null){ + String userAgent = req.getHeader("User-Agent"); + String fileName = (String)model.get("filename"); + if(userAgent.indexOf("MSIE") > -1){ + fileName = URLEncoder.encode(fileName, "utf-8"); + }else{ + fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1"); + } + model.put("filename", fileName); + } + + ExcelExport export = (ExcelExport) model.get("excel"); + try { + export.makeExcel(wb); + } catch (Exception e) { + e.printStackTrace(); + XSSFSheet sheet = wb.createSheet("sheet1"); + XSSFCell cell = getCell(sheet, 0, 0); + setText(cell, "Error"); + } + + } +} diff --git a/src/main/java/kcg/imis/cmmn/file/FileResponser.java b/src/main/java/kcg/imis/cmmn/file/FileResponser.java new file mode 100644 index 0000000..4a95b0e --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/file/FileResponser.java @@ -0,0 +1,125 @@ +package kcg.imis.cmmn.file; + +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; + +import javax.activation.MimetypesFileTypeMap; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @FileName : FileResponser.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public final class FileResponser { + + /** + * 생성자. + */ + private FileResponser() { + + } + + /** + * 브라우저 구분을 반환한다. + * + * @param request + * HttpServletRequest 객체 + * @return 브라우저 구분 + */ + private static String getBrowser(final HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 + return "Trident"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } + + /** + * Disposition 지정하기. + * + * @param filename + * 파일명 + * @param request + * HttpServletRequest 객체 + * @param response + * HttpServletResponse 객체 + * @throws Exception + * 기본 예외 처리 + */ + private static void setDisposition(final String filename, + final HttpServletRequest request, final HttpServletResponse response) + throws Exception { + String browser = getBrowser(request); + + String dispositionPrefix = "inline; filename="; + String encodedFilename = null; + + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + // throw new RuntimeException("Not supported browser"); + throw new IOException("Not supported browser"); + } + + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + /** + * 파일 반환을 위해 Response 객체를 설정한다. + * + * @param file 파일 객체 + * @param fileOrgName 실제 파일명 + * @param request HttpServletRequest 객체 + * @param response HttpServletResponse 객체 + */ + public static void setResponse(final File file, + final String fileOrgName, + final HttpServletRequest request, final HttpServletResponse response) { + if (file == null || request == null || response == null) { + return; + } + + MimetypesFileTypeMap mimeUtil = new MimetypesFileTypeMap(); + String mimeType = mimeUtil.getContentType(fileOrgName); + response.setContentType(mimeType); + response.setContentLength((int) file.length()); + try { + setDisposition(fileOrgName, request, response); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/kcg/imis/cmmn/file/FileUploadUtil.java b/src/main/java/kcg/imis/cmmn/file/FileUploadUtil.java new file mode 100644 index 0000000..5225be0 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/file/FileUploadUtil.java @@ -0,0 +1,122 @@ +package kcg.imis.cmmn.file; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.egov.EgovResourceCloseHelper; +import kcg.imis.cmmn.egov.file.EgovFileMngUtil; +import kcg.imis.cmmn.egov.util.EgovStringUtil; +import kcg.imis.cmmn.egov.util.EgovWebUtil; + +import org.apache.commons.io.FilenameUtils; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.property.EgovPropertyService; +/** + * @FileName : FileUploadUtil.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Component("fileUploadUtil") +public class FileUploadUtil extends EgovFileMngUtil { + + /** + * 프로퍼티 서비스. + */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertyService; + + /** Buffer size */ + public static final int BUFFER_SIZE = 8192; + + /** + * 파일 분리 문자. + */ + public static final String SEPERATOR = File.separator; + + /** + * MultipartFile을 서버에 저장한다. + * + * @param mFile + * 파일 객체 + * @param path + * 파일이 저장될 경로 Global Property명 + * @return 저장된 파일명 + * @throws Exception + * 기본 예외 처리 + */ + public String uploadWithExt(final MultipartFile mFile, String path) throws Exception { + String storePathString = ""; + if ("".equals(path) || path == null) { + storePathString = propertyService.getString("Globals.fileStorePath"); + } else { + storePathString = propertyService.getString(path); + } + + String tmp = mFile.getOriginalFilename(); + + if (tmp.lastIndexOf("\\") >= 0) { + tmp = tmp.substring(tmp.lastIndexOf("\\") + 1); + } + + //String ext = "." + tmp.substring(tmp.lastIndexOf(".") + 1, tmp.length()).toLowerCase(); + String ext = FilenameUtils.getExtension(tmp); + String saveName = EgovStringUtil.getTimeStamp() + "." + ext; + saveName = super.makeNewFileName(storePathString, saveName); + //saveName = saveName.substring(0, saveName.length() - 3) + ext; + + if (mFile.getSize() > 0) { + InputStream is = null; + try { + is = mFile.getInputStream(); + saveFile(is, new File(EgovWebUtil.filePathBlackList(storePathString + saveName))); + } finally { + if (is != null) { + is.close(); + } + } + } + return saveName; + } + + /** + * Stream으로부터 파일을 저장함. + * @param is InputStream + * @param file File + * @throws IOException + */ + private long saveFile(final InputStream is, final File file) throws IOException { + // 디렉토리 생성 + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + + OutputStream os = null; + long size = 0L; + + try { + os = new FileOutputStream(file); + + int bytesRead = 0; + byte[] buffer = new byte[BUFFER_SIZE]; + + while ((bytesRead = is.read(buffer, 0, BUFFER_SIZE)) != -1) { + size += bytesRead; + os.write(buffer, 0, bytesRead); + } + } finally { + EgovResourceCloseHelper.close(os); + } + + return size; + } +} diff --git a/src/main/java/kcg/imis/cmmn/json/CustomObjectMapper.java b/src/main/java/kcg/imis/cmmn/json/CustomObjectMapper.java new file mode 100644 index 0000000..8704e42 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/json/CustomObjectMapper.java @@ -0,0 +1,27 @@ +/** + * + */ +package kcg.imis.cmmn.json; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider; + + +/** + * @FileName : CustomObjectMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class CustomObjectMapper extends ObjectMapper { + + private static final long serialVersionUID = 1L; + + public CustomObjectMapper() { + DefaultSerializerProvider.Impl sp = new DefaultSerializerProvider.Impl(); + sp.setNullValueSerializer(new NullSerializer()); + this.setSerializerProvider(sp); + } +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/cmmn/json/NullSerializer.java b/src/main/java/kcg/imis/cmmn/json/NullSerializer.java new file mode 100644 index 0000000..85fbb80 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/json/NullSerializer.java @@ -0,0 +1,27 @@ +/** + * + */ +package kcg.imis.cmmn.json; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + + +/** + * @FileName : NullSerializer.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class NullSerializer extends JsonSerializer { + @Override + public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + jsonGenerator.writeString(""); + } +} diff --git a/src/main/java/kcg/imis/cmmn/mapper/CodeMapper.java b/src/main/java/kcg/imis/cmmn/mapper/CodeMapper.java new file mode 100644 index 0000000..54d83c9 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/mapper/CodeMapper.java @@ -0,0 +1,88 @@ +package kcg.imis.cmmn.mapper; + +import java.util.List; + +import kcg.imis.cmmn.vo.CodeVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * + * @FileName : CodeMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("codeMapper") +public class CodeMapper extends EgovAbstractMapper { + + /** + * 코드 목록을 조회한다 + * @param group 그룹 코드 + * @return + * @throws Exception + */ + public List getCodeList(final String group) + throws Exception { + + CodeVO codeVO = new CodeVO(); + codeVO.setGroup(group); + + return selectList("Code.getCodeList", codeVO); + } + + /** + * 코드 상세 조회 한다 + * @param group + * @param code + * @return + * @throws Exception + */ + public CodeVO getCode(final String group, final String code) + throws Exception { + + CodeVO codeVO = new CodeVO(); + codeVO.setGroup(group); + codeVO.setCode(code); + + return selectOne("Code.getCode", codeVO); + } + + /** + * code를 수정한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int updateCode(final CodeVO codeVO) throws Exception { + return update("Code.updateCode", codeVO); + } + + /** + * code를 추가한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int insertCode(final CodeVO codeVO) throws Exception { + return insert("Code.insertCode", codeVO); + } + + /** + * code를 삭제한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int deleteCode(CodeVO codeVO) { + return delete("Code.deleteCode", codeVO); + } + +} diff --git a/src/main/java/kcg/imis/cmmn/mapper/LogMapper.java b/src/main/java/kcg/imis/cmmn/mapper/LogMapper.java new file mode 100644 index 0000000..c69a00f --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/mapper/LogMapper.java @@ -0,0 +1,47 @@ +package kcg.imis.cmmn.mapper; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.admin.vo.LogSearchVO; +import kcg.imis.admin.vo.LogVO; +import kcg.imis.sec.LoginUserVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : LogMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository +public class LogMapper extends EgovAbstractMapper { + + /** + * 사용자 로그를 추가한다. + * + * @param paramMap 파라미터 맵 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int insertUserLog(HashMap paramMap) { + return insert("Log.insertUserLog", paramMap); + } + + /** + * 설명 + * + * @param 파라미터 파라미터설명 + * @return 리턴값 설명 + * @throws Exception 기본 예외 처리 + */ + public int insertLoginLog(HashMap paramMap) { + return (Integer) insert("Log.insertLoginLog", paramMap); + } + +} diff --git a/src/main/java/kcg/imis/cmmn/mapper/MenuMapper.java b/src/main/java/kcg/imis/cmmn/mapper/MenuMapper.java new file mode 100644 index 0000000..397935b --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/mapper/MenuMapper.java @@ -0,0 +1,78 @@ +package kcg.imis.cmmn.mapper; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import kcg.imis.cmmn.vo.MenuVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Repository("menuMapper") +public class MenuMapper extends EgovAbstractMapper { + + /** + * 현재 메뉴와 상위메뉴 목록을 반환한다. + * + * @param menuVO + * 검색조건 VO + * @return 현재 메뉴를 포함한 상위메뉴 목록 + */ + public List selectMemuList(final MenuVO menuVO) { + return selectList("Menu.selectMemuList", menuVO); + } + + /** + * 게시판 메뉴에 대한 정보를 가져온다. + * + * @return 데이터 맵 + */ + public EgovMap getMenuInfo(final HashMap menu) { + return selectOne("Menu.getMenuInfo", menu); + } + + /** + * 설명 + * + * @param 파라미터 파라미터설명 + * @return 리턴값 설명 + * @throws Exception 기본 예외 처리 + */ + public EgovMap getMenuInfoById(String menuId) { + return selectOne("Menu.getMenuInfoById", menuId); + } + + /** + * 설명 + * + * @param 파라미터 파라미터설명 + * @return 리턴값 설명 + * @throws Exception 기본 예외 처리 + */ + public EgovMap getMenuInfoByParentId(Map paramMap) { + return selectOne("Menu.getMenuInfoByParentId", paramMap); + } + /** + * 서브 메뉴 (3depth) 조회 + * @param 파라미터 파라미터설명 + * @return 리턴값 설명 + * @throws Exception 기본 예외 처리 + */ + public List getSubMenu(EgovMap map) { + return selectList("Menu.getSubMenu", map); + } + + /** + * 탑 메뉴를 조회한다. + * @param 파라미터 파라미터설명 + * @return 리턴값 설명 + * @throws Exception 기본 예외 처리 + */ + public List getTopMenu(EgovMap map) { + return selectList("Menu.getTopMenu", map); + } + +} diff --git a/src/main/java/kcg/imis/cmmn/service/CodeService.java b/src/main/java/kcg/imis/cmmn/service/CodeService.java new file mode 100644 index 0000000..704bce5 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/CodeService.java @@ -0,0 +1,97 @@ +package kcg.imis.cmmn.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import kcg.imis.cmmn.vo.CodeVO; + +/** + * + * @FileName : CodeService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 코드 서비스 인터페이스 + */ +public interface CodeService { + + /** + * 소속 구조. + */ + Map PLACE_CATEGORY = new TreeMap(String.CASE_INSENSITIVE_ORDER) { + /** + * serialVersionUID. + */ + private static final long serialVersionUID = -8213220033671425747L; + + { + //서해본부 + put("PS92", new String[] { "PS05", "PS06", "PS07", "PS08", "PS09", "ps18" }); + //남해본부 + put("PS93", new String[] { "PS01", "PS09", "PS12", "PS13", "PS98" }); + //동해본부 + put("PS94", new String[] { "PS03", "PS04", "PS10", "PS11" }); + put("PS02", new String[] {}); + put("PS95", new String[] {}); + put("PS96", new String[] {}); + put("PS97", new String[] {}); + put("PS99", new String[] {}); + } + }; + + + /** + * 코드 목록 반환 + * @param group 코드 그룹 + * @return + * @throws Exception 기본 예외 처리 + */ + List getCodeList(String group) throws Exception; + + List getCodeList(String group, boolean includeAll) throws Exception; + + HashMap getCodeMap(String group) throws Exception; + /** + * 코드 상세 반환 + * @param group 코드 그룹 + * @param code 코드 + * @return + * @throws Exception 기본 예외 처리 + */ + CodeVO getCode(String group, String code) throws Exception; + + /** + * 코드를 수정 한다 CodeVO 객체 + * @param codeVO + * @return + * @throws Exception 기본 예외 처리 + */ + int updateCode(final CodeVO codeVO) throws Exception; + + /** + * code를 추가한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int insertCode(final CodeVO codeVO) throws Exception; + + /** + * code를 삭제한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int deleteCode(final CodeVO codeVO) throws Exception; + + public List getPlace1SubList(final String place1Code) throws Exception; + + public List getPlace1SubListWithMain(final String place1Code) throws Exception; + + public String getPlace1HighCode(final String place1Code) throws Exception; +} diff --git a/src/main/java/kcg/imis/cmmn/service/CodeServiceImpl.java b/src/main/java/kcg/imis/cmmn/service/CodeServiceImpl.java new file mode 100644 index 0000000..ecbc7b0 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/CodeServiceImpl.java @@ -0,0 +1,220 @@ +package kcg.imis.cmmn.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.mapper.CodeMapper; +import kcg.imis.cmmn.vo.CodeVO; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * + * @FileName : CodeServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 코드 서비스 객체 + */ +@Service("codeService") +public class CodeServiceImpl implements CodeService { + + final String LIST_ALL_VAL = ""; + final String LIST_ALL_STR = "전체"; + + /** + * CodeMapper. + */ + @Resource(name = "codeMapper") + private CodeMapper codeMapper; + + + public List getCodeList(final String group) throws Exception { + + List codeVOList = new ArrayList(); + + try { + codeVOList = codeMapper.getCodeList(group); + } catch (Exception e) { + e.printStackTrace(); + codeVOList = null; + } + + return codeVOList; + } + + public List getCodeList(final String group, boolean includeAll) throws Exception { + + List codeVOList = new ArrayList(); + + try { + codeVOList = codeMapper.getCodeList(group); + if (includeAll) { + codeVOList = addAll(codeVOList); + } + } catch (Exception e) { + e.printStackTrace(); + codeVOList = null; + } + + return codeVOList; + } + + public CodeVO getCode(final String group, final String code) throws Exception { + + CodeVO codeVOList = new CodeVO(); + + try { + codeVOList = codeMapper.getCode(group, code); + } catch (Exception e) { + e.printStackTrace(); + codeVOList = null; + } + + return codeVOList; + } + + public HashMap getCodeMap(final String group) throws Exception { + + try { + List codeVOList = new ArrayList(); + codeVOList = codeMapper.getCodeList(group); + return convertMap(codeVOList); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + } + /** + * code를 수정한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception + * 기본 예외 처리 + */ + + public int updateCode(final CodeVO codeVO) throws Exception { + return codeMapper.updateCode(codeVO); + } + + /** + * code를 추가한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception + * 기본 예외 처리 + */ + + public int insertCode(final CodeVO codeVO) throws Exception { + return codeMapper.insertCode(codeVO); + } + + /** + * code를 삭제한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 ` + * @throws Exception + * 기본 예외 처리 + */ + @Transactional + public int deleteCode(final CodeVO codeVO) throws Exception { + return codeMapper.deleteCode(codeVO); + } + + + @Override + public List getPlace1SubList(final String place1Code) throws Exception { + CodeVO code = new CodeVO(); + List codes = new ArrayList(); + try { + String[] subCodes = PLACE_CATEGORY.get(place1Code); + if (subCodes != null) { + for (int i = 0; i < subCodes.length; i++) { + code = getCode(CommConstants.CODE_PLACE1, subCodes[i]); + codes.add(code); + } + } + } catch (Exception e) { + e.printStackTrace(); + codes = null; + } + + return codes; + } + + @Override + public List getPlace1SubListWithMain(final String place1Code) throws Exception { + CodeVO code = new CodeVO(); + List codes = new ArrayList(); + try { + String[] subCodes = PLACE_CATEGORY.get(place1Code); + if (subCodes != null) { + code = getCode(CommConstants.CODE_PLACE1, place1Code); + codes.add(code); + + // 하위 기관 + for (int i = 0; i < subCodes.length; i++) { + code = getCode(CommConstants.CODE_PLACE1, subCodes[i]); + codes.add(code); + } + } + } catch (Exception e) { + e.printStackTrace(); + codes = null; + } + + return codes; + } + + @Override + public String getPlace1HighCode(final String place1Code) throws Exception { + for (Map.Entry entry : PLACE_CATEGORY.entrySet()) { + String key = entry.getKey(); + String[] values = entry.getValue(); + + for (String item : values) { + if (item.equalsIgnoreCase(place1Code)) { + return key; + } + } + } + return place1Code; + } + + /** + * 맵으로 변환 + * @param list 분류목록 + * @return ("코드명", "코드") 형식으로 리턴 + */ + private HashMap convertMap(final List list) { + HashMap map = new HashMap(); + for (CodeVO item : list) { + map.put(item.getCode(), item.getName()); + } + return map; + } + + + private List addAll(final List list) { + if (list != null) { + CodeVO allVO = new CodeVO(); + allVO.setCode(LIST_ALL_VAL); + allVO.setGroup(LIST_ALL_VAL); + allVO.setName(LIST_ALL_STR); + allVO.setShortName(LIST_ALL_STR); + list.add(0, allVO); + } + return list; + } +} diff --git a/src/main/java/kcg/imis/cmmn/service/LogService.java b/src/main/java/kcg/imis/cmmn/service/LogService.java new file mode 100644 index 0000000..59b52c4 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/LogService.java @@ -0,0 +1,35 @@ +package kcg.imis.cmmn.service; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.admin.vo.LogSearchVO; +import kcg.imis.admin.vo.LogVO; + +/** + * @FileName : LogService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface LogService { + + /** + * 사용자 로그 를 저장한다 + * @param paramMap + * @return + * @throws Exception + */ + public int insertUserLog(HashMap paramMap) throws Exception; + + /** + * 로그인 정보를 저장한다. + * @param paramMap + * @return + * @throws Exception + */ + public int insertLoginLog(HashMap paramMap) throws Exception; + +} diff --git a/src/main/java/kcg/imis/cmmn/service/LogServiceImpl.java b/src/main/java/kcg/imis/cmmn/service/LogServiceImpl.java new file mode 100644 index 0000000..b927a35 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/LogServiceImpl.java @@ -0,0 +1,41 @@ +package kcg.imis.cmmn.service; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.admin.vo.LogSearchVO; +import kcg.imis.admin.vo.LogVO; +import kcg.imis.cmmn.mapper.LogMapper; + +import org.springframework.stereotype.Service; + +/** + * @FileName : LogServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Service("logService") +public class LogServiceImpl implements LogService { + + @Resource(name="logMapper") + LogMapper logMapper; + + @Override + public int insertUserLog(HashMap paramMap) throws Exception { + return logMapper.insertUserLog(paramMap); + } + + + @Override + public int insertLoginLog(HashMap paramMap) throws Exception { + return logMapper.insertLoginLog(paramMap); + } + + +} diff --git a/src/main/java/kcg/imis/cmmn/service/MenuService.java b/src/main/java/kcg/imis/cmmn/service/MenuService.java new file mode 100644 index 0000000..b62a067 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/MenuService.java @@ -0,0 +1,43 @@ +package kcg.imis.cmmn.service; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.cmmn.vo.MenuVO; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +/** + * @FileName : MenuService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface MenuService { + + /** + * 현재 메뉴와 상위메뉴 목록을 반환한다. + * + * @param menuVO + * 검색조건 VO + * @return 현재 메뉴를 포함한 상위메뉴 목록 + */ + List selectMainMenu(MenuVO menuVO); + + + /** + * 게시판 메뉴에 대한 정보를 가져온다. + * + * @param menu + * 가져올 메뉴정보 + * @return 데이터 맵 + */ + EgovMap getMenuInfo(HashMap menu); + + List selectListWithHigher(String menuId); + + List getSubMenu(EgovMap map); + + List getTopMenu(); +} diff --git a/src/main/java/kcg/imis/cmmn/service/MenuServiceImpl.java b/src/main/java/kcg/imis/cmmn/service/MenuServiceImpl.java new file mode 100644 index 0000000..d32457e --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/service/MenuServiceImpl.java @@ -0,0 +1,126 @@ +package kcg.imis.cmmn.service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.MenuPosition; +import kcg.imis.cmmn.mapper.MenuMapper; +import kcg.imis.cmmn.vo.MenuVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Service("menuService") +public class MenuServiceImpl implements MenuService { + + /** + * MenuMapper - 메뉴 데이터처리에 관한 Mapper 클래스. + **/ + @Resource(name = "menuMapper") + private MenuMapper menuMapper; + + @Override + public List selectMainMenu(final MenuVO menuVO) { + + menuVO.setDepth(1); + menuVO.setMenuPosition(MenuPosition.TOP); + List list = menuMapper.selectMemuList(menuVO); + + menuVO.setDepth(2); + menuVO.setMenuPosition(MenuPosition.TOP); + List list2 = menuMapper.selectMemuList(menuVO); + for(MenuVO menuVo2 : list2){ + + Map paramMap = new HashMap(); + paramMap.put("roleLevel", menuVO.getRoleLevel()); + paramMap.put("id", menuVo2.getId()); + + if(menuVo2.getUrl() == null ||"".equals(menuVo2.getUri())){ + EgovMap map = menuMapper.getMenuInfoByParentId(paramMap); + if(map != null){ + menuVo2.setUrl(String.valueOf(map.get("url"))); + } + } + } + for(MenuVO menuVo : list){ + List dept2List = new ArrayList(); + for(MenuVO menuVo2 : list2){ + if(menuVo.getId() == menuVo2.getParent()){ + dept2List.add(menuVo2); + } + } + menuVo.setMenuList(dept2List); + } + + return list; + } + +/* @Override + public List selectTopSubMenuList(final MenuVO menuVO) { + menuVO.setDepth(0); + menuVO.setMenuPosition(MenuPosition.TOP_SUB); + return menuMapper.selectListWithConnectBy(menuVO); + } +*/ + /** + * 게시판 메뉴에 대한 정보를 가져온다. + * + * @return 데이터 맵 + */ + @Override + public EgovMap getMenuInfo(final HashMap menu) { + return menuMapper.getMenuInfo(menu); + } + + @Override + public List selectListWithHigher(final String menuId) { + + List resultList = new ArrayList(); + EgovMap currentMenu = menuMapper.getMenuInfoById(menuId); + resultList.add(currentMenu); + + int depth = ((BigDecimal)currentMenu.get("depth")).intValue(); + String parentId = String.valueOf(currentMenu.get("parent")); + for(int i = 1 ; i < depth ; i ++){ + EgovMap parentMenu = menuMapper.getMenuInfoById(parentId); + parentId = String.valueOf(parentMenu.get("parent")); + resultList.add(parentMenu); + } + Collections.reverse(resultList); + return resultList; + } + + /** + * 서브 메뉴에 대한 정보를 가져온다. + * + * @return 데이터 맵 + */ + @Override + public List getSubMenu(EgovMap map) { + + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + map.put("roleLevel", loginUserVO.getRolelevel()); + + List submenu = menuMapper.getSubMenu(map); + return submenu; + } + + @Override + public List getTopMenu() { + EgovMap map = new EgovMap(); + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + map.put("roleLevel", loginUserVO.getRolelevel()); + + List topmenu = menuMapper.getTopMenu(map); + return topmenu; + } +} diff --git a/src/main/java/kcg/imis/cmmn/vo/CodeVO.java b/src/main/java/kcg/imis/cmmn/vo/CodeVO.java new file mode 100644 index 0000000..a648ef3 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/vo/CodeVO.java @@ -0,0 +1,60 @@ +package kcg.imis.cmmn.vo; + +/** + * + * @FileName : CodeVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 코드VO 객체 + */ +public class CodeVO { + + private String group; + private String code; + private String name; + private String shortName; + private String order; + private String useYn; + + public String getGroup() { + return group; + } + public void setGroup(String group) { + this.group = group; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getShortName() { + return shortName; + } + public void setShortName(String shortName) { + this.shortName = shortName; + } + public String getOrder() { + return order; + } + public void setOrder(String order) { + this.order = order; + } + public String getUseYn() { + return useYn; + } + public void setUseYn(String useYn) { + this.useYn = useYn; + } + + + +} diff --git a/src/main/java/kcg/imis/cmmn/vo/MenuVO.java b/src/main/java/kcg/imis/cmmn/vo/MenuVO.java new file mode 100644 index 0000000..3994a35 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/vo/MenuVO.java @@ -0,0 +1,417 @@ +package kcg.imis.cmmn.vo; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + +/** + * @FileName : MenuVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class MenuVO { + + @Override + public String toString() { + return "MenuVO [menuList=" + menuList + ", id=" + id + ", name=" + name + ", engName=" + engName + ", parent=" + parent + ", depth=" + depth + ", url=" + url + ", uri=" + uri + + ", menuPosition=" + menuPosition + ", visible=" + visible + ", urlGroup=" + urlGroup + ", subVisible=" + subVisible + ", roleLevel=" + roleLevel + ", urlQuery=" + urlQuery + + ", boardId=" + boardId + ", windowTarget=" + windowTarget + ", subMenu=" + subMenu + ", userId=" + userId + ", userType=" + userType + "]"; + } + + private List menuList; + + /** + * 식별자. + */ + private int id; + /** + * 메뉴명. + */ + private String name; + /** + * 영어 메뉴명. + */ + private String engName; + /** + * 상위 메뉴 식별자. + */ + private int parent; + /** + * 메뉴 깊이. + */ + private int depth; + /** + * URL. + */ + private String url; + /** + * URI. (쿼리 포함) + */ + private String uri; + /** + * 메뉴 위치. + */ + private String menuPosition; + /** + * 사용여부. + */ + private String visible; + /** + * 메뉴 그룹. + */ + private String urlGroup; + /** + * 페이지 내 하위메뉴 표현여부. + */ + private String subVisible; + /** + * Role 레벨. + */ + private int roleLevel; + /** + * URL 호출시 사용할 GET 파라미터 문자열. + */ + private String urlQuery; + /** + * 게시판 ID. (공용뷰를 사용하는 페이지만 적용) + */ + private String boardId; + /** + * 메뉴를 조회할 윈도우창 대상(HTML A태그의 TARGET 속성). + */ + private String windowTarget; + /** + * 하위메뉴 목록. + */ + private List subMenu = new ArrayList(); + /** + * 사용자 ID. + */ + private String userId; + /** + * 사용자 구분. + */ + private int userType; + + /** + * @return the id + */ + public final int getId() { + return id; + } + + /** + * @param id + * the id to set + */ + public final void setId(final int id) { + this.id = id; + } + + /** + * @return the name + */ + public final String getName() { + return name; + } + + /** + * @param name + * the name to set + */ + public final void setName(final String name) { + this.name = name; + } + + /** + * @return the engName + */ + public final String getEngName() { + return engName; + } + + /** + * @param engName + * the engName to set + */ + public final void setEngName(final String engName) { + this.engName = engName; + } + + /** + * @return the parent + */ + public final int getParent() { + return parent; + } + + /** + * @param parent + * the parent to set + */ + public final void setParent(final int parent) { + this.parent = parent; + } + + /** + * @return the depth + */ + public final int getDepth() { + return depth; + } + + /** + * @param depth + * the depth to set + */ + public final void setDepth(final int depth) { + this.depth = depth; + } + + /** + * @return the url + */ + public final String getUrl() { + return url; + } + + /** + * @param url + * the url to set + */ + public final void setUrl(final String url) { + this.url = url; + this.makeUri(); + } + + /** + * @return the uri + */ + public final String getUri() { + return uri; + } + + /** + * Uri를 생성한다. + */ + public void makeUri() { + String uri = "#"; + String qry = ""; + if (StringUtils.isNotBlank((this.getUrl()))) { + uri = ""; + + if (StringUtils.isNotBlank((this.getUrlGroup()))) { + uri += this.getUrlGroup(); + } + uri += this.getUrl(); + + if (StringUtils.isNotBlank((this.getBoardId()))) { + qry = "?bbsId=" + this.getBoardId(); + } + if (StringUtils.isNotBlank((this.getUrlQuery()))) { + if (StringUtils.isBlank(qry)) { + qry += "?"; + } else { + qry += "&"; + } + qry += this.getUrlQuery(); + } + if (StringUtils.isNoneBlank(uri) && !"/".equals(uri.substring(0, 1))) { + uri = "/" + uri; + } + + uri += qry; + } + + this.setUri(uri); + } + + /** + * @param uri + * the uri to set + */ + public final void setUri(final String uri) { + this.uri = uri; + } + + /** + * @return the menuPosition + */ + public final String getMenuPosition() { + return menuPosition; + } + + /** + * @param menuPosition + * the menuPosition to set + */ + public final void setMenuPosition(final String menuPosition) { + this.menuPosition = menuPosition; + } + + /** + * @return the visible + */ + public final String getVisible() { + return visible; + } + + /** + * @param visible + * the visible to set + */ + public final void setVisible(final String visible) { + this.visible = visible; + } + + /** + * @return the urlGroup + */ + public final String getUrlGroup() { + return urlGroup; + } + + /** + * @param urlGroup + * the urlGroup to set + */ + public final void setUrlGroup(final String urlGroup) { + this.urlGroup = urlGroup; + this.makeUri(); + } + + /** + * @return the subVisible + */ + public final String getSubVisible() { + return subVisible; + } + + /** + * @param subVisible + * the subVisible to set + */ + public final void setSubVisible(final String subVisible) { + this.subVisible = subVisible; + } + + /** + * @return the roleLevel + */ + public final int getRoleLevel() { + return roleLevel; + } + + /** + * @param roleLevel + * the roleLevel to set + */ + public final void setRoleLevel(final int roleLevel) { + this.roleLevel = roleLevel; + } + + /** + * @return the windowTarget + */ + public final String getWindowTarget() { + return windowTarget; + } + + /** + * @param windowTarget + * the windowTarget to set + */ + public final void setWindowTarget(final String windowTarget) { + this.windowTarget = windowTarget; + } + + /** + * @return the subMenu + */ + public final List getSubMenu() { + return subMenu; + } + + /** + * @param subMenu + * the subMenu to set + */ + public final void setSubMenu(final List subMenu) { + this.subMenu = subMenu; + } + + /** + * @return the urlQuery + */ + public final String getUrlQuery() { + return urlQuery; + } + + /** + * @param urlQuery + * the urlQuery to set + */ + public final void setUrlQuery(final String urlQuery) { + this.urlQuery = urlQuery; + this.makeUri(); + } + + /** + * @return the boardId + */ + public final String getBoardId() { + return boardId; + } + + /** + * @param boardId + * the boardId to set + */ + public final void setBoardId(final String boardId) { + this.boardId = boardId; + this.makeUri(); + } + + /** + * @return the userId + */ + public final String getUserId() { + return userId; + } + + /** + * @param userId + * the userId to set + */ + public final void setUserId(final String userId) { + this.userId = userId; + } + + /** + * @return the userType + */ + public final int getUserType() { + return userType; + } + + /** + * @param userType + * the userType to set + */ + public final void setUserType(final int userType) { + this.userType = userType; + } + + public List getMenuList() { + return menuList; + } + + public void setMenuList(List menuList) { + this.menuList = menuList; + } + +} diff --git a/src/main/java/kcg/imis/cmmn/web/CodeController.java b/src/main/java/kcg/imis/cmmn/web/CodeController.java new file mode 100644 index 0000000..023a714 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/web/CodeController.java @@ -0,0 +1,92 @@ +package kcg.imis.cmmn.web; + +import java.util.HashMap; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.service.CodeServiceImpl; +import kcg.imis.cmmn.vo.CodeVO; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * + * @FileName : CodeController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 코드 컨트롤러 + */ +@Controller +@RequestMapping("/code") +public class CodeController { + + @Resource(name = "codeService") + private CodeServiceImpl codeService; + + /** + * 코드 리스트를 반환 + * + * @param codeVO 코드VO + * @return 소속 코드 리스트 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping("/codeList.json") + public HashMap codeList(final CodeVO codeVO) throws Exception { + HashMap result = new HashMap(); + result.put("data", codeService.getCodeList(codeVO.getGroup())); + return result; + } + + /** + * 코드를 반환 + * + * @param codeVO 코드VO + * @return 소속 코드 리스트 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping("/code.json") + public HashMap code(final CodeVO codeVO) throws Exception { + HashMap result = new HashMap(); + result.put("data", codeService.getCode(codeVO.getGroup(),codeVO.getCode())); + return result; + } + + @ResponseBody + @RequestMapping("/insert.json") + public HashMap insert(final CodeVO codeVO) throws Exception { + HashMap result = new HashMap(); + result.put("cnt", codeService.insertCode(codeVO)); + return result; + } + + @ResponseBody + @RequestMapping("/update.json") + public HashMap update(final CodeVO codeVO) throws Exception { + HashMap result = new HashMap(); + result.put("cnt", codeService.updateCode(codeVO)); + return result; + } + + /** + * 코드를 삭제한다. + * + * @param codeVO CodeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + @ResponseBody + @RequestMapping("/delete.json") + public HashMap deleteCode(final CodeVO codeVO) throws Exception { + HashMap resultMap = new HashMap(); + resultMap.put("cnt", codeService.deleteCode(codeVO)); + return resultMap; + } + + +} diff --git a/src/main/java/kcg/imis/cmmn/web/CommonController.java b/src/main/java/kcg/imis/cmmn/web/CommonController.java new file mode 100644 index 0000000..f7d8184 --- /dev/null +++ b/src/main/java/kcg/imis/cmmn/web/CommonController.java @@ -0,0 +1,171 @@ +package kcg.imis.cmmn.web; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.board.service.BoardService; +import kcg.imis.board.vo.BoardSearchVO; +import kcg.imis.board.vo.BoardVO; +import kcg.imis.cmmn.service.CodeServiceImpl; +import kcg.imis.notice.service.NoticeService; +import kcg.imis.notice.vo.NoticeVO; +import kcg.imis.report.service.ReportJudgeService; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; + + +/** + * @FileName : CommonController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@SessionAttributes(types = LoginUserVO.class) +public class CommonController { + + @Resource(name = "codeService") + private CodeServiceImpl codeService; + + @Resource(name = "reportJudgeService") + private ReportJudgeService judgeService; + + @Resource(name = "boardService") + private BoardService boardService; + + @Resource(name = "noticeService") + private NoticeService noticeService; + + + /** + * 로그인 화면으로 이동한다. 이미 로그인 되어 있을 경우, 메인페이지로 이동한다. + * + * @param request Request 객체 + * @param model Model 객체 + * @return 로그인된 사용자 - 메인페이지, 로그인되지 않은 사용자 - 로그인화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/loginView.do") + public String loginView(final HttpServletRequest request, final Model model) throws Exception { + + if (EgovUserDetailsHelper.isAuthenticated()) { + return "redirect:/main.do"; + } else { + String error = request.getParameter("error"); + model.addAttribute("login_error", error); + model.addAttribute("code", codeService.getCodeList(null)); + return "common/login"; + } + } + + /** + * 메인 화면으로 이동한다. + * + * @param request Request 객체 + * @param model Model 객체 + * @return 메인페이지 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/main.do") + public String actionMain(final HttpServletRequest request, final Model model) throws Exception { + if (EgovUserDetailsHelper.isAuthenticated()) { + BoardSearchVO searchVO = new BoardSearchVO(); + searchVO.setRecordCountPerPage(5); + + /* 내실적 조회 리스트 */ + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + ReportSearchVO reportSearchVO = new ReportSearchVO(); + reportSearchVO.setRecordCountPerPage(5); + reportSearchVO.setType(loginUserVO.getType()); + reportSearchVO.setUserid(loginUserVO.getUserid()); + + // 내 실적 조회 1년치 메인메뉴에서 + Calendar mon = Calendar.getInstance(); + mon.add(Calendar.MONTH, -12); + SimpleDateFormat stSdf = new SimpleDateFormat("yyyy-MM-dd"); + String stDate = stSdf.format(mon.getTime()); + + Date today = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd"); + String enDate = date.format(today); + + reportSearchVO.setDateStart(stDate); + reportSearchVO.setDateEnd(enDate); + reportSearchVO.setOrderCol("in_seq"); + reportSearchVO.setOrderAsc("DESC"); + List reportList = judgeService.selectMyList(reportSearchVO); + model.addAttribute("reportList", reportList); + + //내 실적 조회 최근 1달치 + mon = Calendar.getInstance(); + mon.add(Calendar.MONTH, -1); + stSdf = new SimpleDateFormat("yyyy-MM-dd"); + stDate = stSdf.format(mon.getTime()); + + today = new Date(); + date = new SimpleDateFormat("yyyy-MM-dd"); + enDate = date.format(today); + + /* 공지사항 리스트 */ + searchVO.setBbsId("notice"); + List noticeList = boardService.selectList(searchVO); + model.addAttribute("noticeList", noticeList); + + /* 국제회의 리스트 */ + searchVO.setBbsId("confer"); + List bbsList = boardService.selectList(searchVO); + model.addAttribute("conferList", bbsList); + + /* 해양정세리포트 리스트 */ + searchVO.setBbsId("report"); + List dataList = boardService.selectList(searchVO); + model.addAttribute("stateList", dataList); + + /* 공지팝업 목록 */ + List noticePopList = noticeService.selectNoticePopupList(); + model.addAttribute("noticePopList", noticePopList); + + return "main.tiles"; + } else { + return "common/login"; + } + } + + /** + * 권한이 없는 사용자가 접근시 권한제한 화면으로 이동한다. + * + * @return 권한없음 페이지 + * @exception Exception 기본 예외 처리 + */ + @RequestMapping("/accessDenied.do") + public String accessDenied() throws Exception { + return "error/EgovAccessDenied"; + } + + /** + * validator 매핑. + * + * @return 유효성 검사 코드 반환 + * @exception Exception 기본 예외 처리 + */ + @RequestMapping(value = "/validator.do") + public String validator() { + return "common/validator"; + } +} diff --git a/src/main/java/kcg/imis/comn/validator/KcgFieldChecks.java b/src/main/java/kcg/imis/comn/validator/KcgFieldChecks.java new file mode 100644 index 0000000..4a5f795 --- /dev/null +++ b/src/main/java/kcg/imis/comn/validator/KcgFieldChecks.java @@ -0,0 +1,194 @@ +package kcg.imis.comn.validator; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; + +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.commons.validator.Field; +import org.apache.commons.validator.GenericValidator; +import org.apache.commons.validator.ValidatorAction; +import org.apache.commons.validator.util.ValidatorUtils; +import org.apache.oro.text.perl.Perl5Util; +import org.springframework.validation.Errors; +import org.springframework.web.multipart.MultipartFile; +import org.springmodules.validation.commons.FieldChecks; + +/** + * @FileName : KcgFieldChecks.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class KcgFieldChecks extends FieldChecks { + /** + * sericalVersion UID. + */ + private static final long serialVersionUID = -2911390948016164140L; + + /** + * Log used by this class. + */ + private static final Log LOGGER = LogFactory.getLog(FieldChecks.class); + + /** + * 파일 확장자 체크. + * + * @param bean + * The bean validation is being performed on. + * @param va + * The ValidatorAction that is currently being + * performed. + * @param field + * field The Field object associated with the + * current field being validated. + * @param errors + * Errors The Errors object to add errors to if any + * validation errors occur. + * @return true Valid. false inValid. + */ + public static boolean validateFileExt(final Object bean, + final ValidatorAction va, final Field field, final Errors errors) { + + String value = extractValue(bean, field); + String extStr = field.getVarValue("ext"); + try { + String[] validExts; + String regexp = ""; + if (!GenericValidator.isBlankOrNull(extStr)) { + int loopIdx = 0; + validExts = extStr.split(","); + regexp = "\\.("; + for (String s : validExts) { + if (loopIdx > 0) { + regexp += "|"; + } + regexp += s; + loopIdx++; + } + regexp += ")$"; + } + + Perl5Util matcher = null; + try { + + matcher = new Perl5Util(); + } catch (Exception e) { + e.printStackTrace(); + } + if (value != null) { + boolean isValid = matcher.match("/" + regexp + "/i", value); + if (!GenericValidator.isBlankOrNull(value) && !isValid) { + FieldChecks.rejectValue(errors, field, va); + return false; + } else { + return true; + } + } else { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + KcgFieldChecks.LOGGER.error(e.getMessage(), e); + } + + return true; + } + + public static boolean validateStrRegex(final Object bean, + final ValidatorAction va, final Field field, final Errors errors) { + + String value = FieldChecks.extractValue(bean, field); + String idRegex = field.getVarValue("regex"); + + if (!value.matches(idRegex)) { + FieldChecks.rejectValue(errors, field, va); + return false; + } else { + return true; + } + } + + /** + * 객체 내 프로퍼티의 값을 추출하여 반환한다. + * + *
+	 * FieldCheck.extractValue 메소드 Override.
+	 * 
+ * + * @param bean + * 값을 추출할 대상 객체 + * @param field + * 실제 값을 추출할 대상 객체의 프로퍼티 + * @return bean.field가 갖고 있는 값 + */ + protected static String extractValue(final Object bean, final Field field) { + String value = null; + + if (bean == null) { + return null; + } else if (bean instanceof String) { + value = (String) bean; + } else { + value = getValueAsString(bean, field.getProperty()); + } + + return value; + } + + /** + * 객체 내 프로퍼티의 값을 추출하여 반환한다. + * + *
+	 * ValidatorUtils.getValueAsString 메소드 커스터 마이징.
+	 * 
+ * + * @param bean + * bean 값을 추출할 대상 객체 + * @param property + * 실제 값을 추출할 대상 객체의 프로퍼티 + * @return bean.field가 갖고 있는 값 + */ + public static String getValueAsString(final Object bean, final String property) { + Object value = null; + + try { + value = PropertyUtils.getProperty(bean, property); + + } catch (IllegalAccessException e) { + Log log = LogFactory.getLog(ValidatorUtils.class); + log.error(e.getMessage(), e); + } catch (InvocationTargetException e) { + Log log = LogFactory.getLog(ValidatorUtils.class); + log.error(e.getMessage(), e); + } catch (NoSuchMethodException e) { + Log log = LogFactory.getLog(ValidatorUtils.class); + log.error(e.getMessage(), e); + } + + if (value == null) { + return null; + } + + if (value instanceof String[]) { + return ((String[]) value).length > 0 ? value.toString() : ""; + + } else if (value instanceof Collection) { + return ((Collection) value).isEmpty() ? "" : value.toString(); + + } else if (value instanceof MultipartFile) { + MultipartFile file = (MultipartFile) value; + if (file.isEmpty()) { + return ""; + } else { + return file.getOriginalFilename(); + } + } else { + return value.toString(); + } + + } +} diff --git a/src/main/java/kcg/imis/etc/web/EtcMenuController.java b/src/main/java/kcg/imis/etc/web/EtcMenuController.java new file mode 100644 index 0000000..b0be1a0 --- /dev/null +++ b/src/main/java/kcg/imis/etc/web/EtcMenuController.java @@ -0,0 +1,40 @@ +package kcg.imis.etc.web; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @FileName : EtcMenuController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +public class EtcMenuController { + + /** + * 사이트맵. + * + * @return 사이트맵 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping("/sitemap.do") + public String sitemap() throws Exception { + return "etc/sitemap.tiles"; + } + + /** + * QnA. + * + * @return QnA 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping("/qna.do") + public String qna() throws Exception { + return "etc/qna"; + } +} diff --git a/src/main/java/kcg/imis/member/mapper/MemberMapper.java b/src/main/java/kcg/imis/member/mapper/MemberMapper.java new file mode 100644 index 0000000..9a56177 --- /dev/null +++ b/src/main/java/kcg/imis/member/mapper/MemberMapper.java @@ -0,0 +1,163 @@ +package kcg.imis.member.mapper; + +import java.util.List; + +import kcg.imis.member.vo.MemberSearchVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.sec.LoginUserVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : MemberMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 9. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("memberMapper") +public class MemberMapper extends EgovAbstractMapper { + + /** + * 회원 목록(no paging)을 반환한다. + * @param searchVO + * 검색정보 객체 + * @return 게시물 리스트 + * @throws Exception + * 기본 예외 처리 + */ + public List getMemberListAll(final MemberSearchVO searchVO) throws Exception { + return selectList("Member.getMemberListAll", searchVO); + } + + /** + * 회원 정보 상세 조회 + * @param userid + * @return + * @throws Exception + */ + public MemberVO getMemberInfo(String userid) throws Exception { + return selectOne("Member.getMemberInfo", userid); + } + + /** + * 담당관 정보 조회 + * @param userid + * @return + * @throws Exception + */ + public MemberVO getHeadMember() throws Exception { + return selectOne("Member.getHeadMember"); + } + + /** + * 팀장 정보조회 + * @param userid + * @return + * @throws Exception + */ + public MemberVO getSectionMember() throws Exception { + return selectOne("Member.getSectionMember"); + } + + /** + * 회원 목록 을 반환한다. + * @param searchVO 검색정보 객체 + * @return 게시물 리스트 + * @throws Exception + * 기본 예외 처리 + */ + public List getMemberList(final MemberSearchVO searchVO) throws Exception { + return selectList("Member.getMemberList", searchVO); + } + + /** + * 엑셀용 회원 목록 을 반환한다. + * @param searchVO + * @return + * @throws Exception + */ + public List getMemberListForExel(final MemberSearchVO searchVO) throws Exception { + return selectList("Member.getMemberListForExel", searchVO); + } + + /** + * 회원 목록 조회 + * @param searchVO + * @return + */ + public List getMemberListUserVO(MemberSearchVO searchVO) throws Exception { + return selectList("Member.getMemberListUserVO", searchVO); + } + + /** + * 회원목록 갯수 + * @param searchVO + * @return + */ + public int getMemberListCnt(MemberSearchVO searchVO) throws Exception { + return (Integer) selectOne("Member.getMemberListCnt", searchVO); + } + + /** + * 회원목록 전체 갯수 + * @param searchVO + * @return + */ + public int getMemberListAllCnt(MemberSearchVO searchVO) throws Exception { + return (Integer) selectOne("Member.getMemberListAllCnt", searchVO); + } + + /** + * 회원 등급 설정 + * @param vo + * @return + */ + public int updateUsrLv(MemberVO vo) throws Exception { + return update("Member.updateUsrLv", vo); + } + + /** + * 회원 견문권한 설정 + * @param vo + * @return + */ + public int updateRtpAuth(MemberVO vo) throws Exception { + return update("Member.updateRtpAuth", vo); + } + + /** + * 회원가입 + * @param vo + * @return + * @throws Exception + */ + public int insertUserInfo(MemberVO vo) throws Exception { + return update("Member.insertUserInfo", vo); + } + + /** + * 회원정보 수정 + * @param vo + * @return + * @throws Exception + */ + public int updateUserInfo(MemberVO vo) throws Exception { + return update("Member.updateUserInfo", vo); + } + + /** + * 회원아이다 중복체크 + * @param vo + * @return + * @throws Exception + */ + public int selectCheckId(String userid) throws Exception { + return selectOne("Member.selectCheckId", userid); + } + + +} diff --git a/src/main/java/kcg/imis/member/service/MemberService.java b/src/main/java/kcg/imis/member/service/MemberService.java new file mode 100644 index 0000000..345bf3a --- /dev/null +++ b/src/main/java/kcg/imis/member/service/MemberService.java @@ -0,0 +1,151 @@ +package kcg.imis.member.service; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.cmmn.bbs.BaseBbsService; +import kcg.imis.member.vo.MemberSearchVO; +import kcg.imis.member.vo.MemberVO; + +/** + * @FileName : MemberService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 9. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface MemberService { + + /** + * 회워 목록(no paging)읇 반환한다. + * + * @param searchVO + * 검색조건 VO + * @return 게시물 리스트 + * @throws Exception + * 기본 예외 처리 + */ + List getMemberListAll(MemberSearchVO searchVO) throws Exception; + + /** + * 회원 상세 정보 조회 + * @param searchVO + * @return + * @throws Exception + */ + MemberVO getMemberInfo(String userid) throws Exception; + + /** + * 팀장 정보 조회 + * @param userid + * @return + * @throws Exception + */ + MemberVO getHeadMember() throws Exception; + + /** + * 담당관 정보 조회 + * @param userid + * @return + * @throws Exception + */ + MemberVO getSectionMember() throws Exception; + + /** + * 회원 목록 조회 + * @param searchVO + * @return + * @throws Exception + */ + List getMemberList(MemberSearchVO searchVO) throws Exception; + + + /** + * 엑셀용 회원 목록 조회 + * @param searchVO + * @return + * @throws Exception + */ + List getMemberListForExel(final MemberSearchVO searchVO) throws Exception; + + /** + * 회원 목록 갯수 + * @param searchVO + * @return + * @throws Exception + */ + int getMemberListCnt(final MemberSearchVO searchVO) throws Exception; + + /** + * 회원 목록 전체 갯수 + * @param searchVO + * @return + * @throws Exception + */ + int getMemberListAllCnt(final MemberSearchVO searchVO) throws Exception; + + + + /** + * 회원 권한을 설정한다. + * + * @param memberVO userid, usegrade 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int updateMemberAuth(final MemberVO memberVO) throws Exception; + + /** + * 회원 견문권한을 설정한다. + * + * @param memberVO userid, usegrade 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int updateMemberRpt(final MemberVO memberVO) throws Exception; + /** + * 회원 팀장 권한을 설정한다. + * + * @param memberVO userid 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int updateSection(final MemberVO memberVO) throws Exception ; + + /** + * 회원 담당관 권한을 설정한다. + * + * @param memberVO userid 정보 + * @return 결과 : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + int updateHead(final MemberVO memberVO) throws Exception; + + + /** + * 회원가입 + * @param vo + * @return + * @throws Exception + */ + int insertUserInfo(MemberVO vo) throws Exception; + + /** + *회원정보수정 + * @param vo + * @return + * @throws Exception + */ + int updateUserInfo(MemberVO vo) throws Exception; + + /** + * 회원아이다 중복체크 + * @param vo + * @return + * @throws Exception + */ + int selectCheckId(String userid) throws Exception; + + HashMap getMemberListUserVo(final MemberSearchVO searchVO) throws Exception; +} diff --git a/src/main/java/kcg/imis/member/service/MemberServiceImpl.java b/src/main/java/kcg/imis/member/service/MemberServiceImpl.java new file mode 100644 index 0000000..86bb62b --- /dev/null +++ b/src/main/java/kcg/imis/member/service/MemberServiceImpl.java @@ -0,0 +1,175 @@ +/** + * AdminServiceImpl.java + * @author 임새미 + * @since 2016. 10. 28. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 28. 임새미 최초생성 + * + */ +package kcg.imis.member.service; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.member.mapper.MemberMapper; +import kcg.imis.member.vo.MemberSearchVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.sec.LoginUserVO; + +import org.springframework.stereotype.Service; + +/** + * 사용자 정보 비지니스로직. + * + * AdminServiceImpl.java + * @author 임새미 + * @since 2016. 10. 28. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 28. 임새미 최초생성 + * + */ +/** + * @author kimnomin + * + */ +@Service("memberService") +public class MemberServiceImpl implements MemberService { + + /** + * 사용자 Mapper 객체. + */ + @Resource(name = "memberMapper") + private MemberMapper memberMapper; + + @Override + public List getMemberListAll(MemberSearchVO searchVO) throws Exception { + return memberMapper.getMemberListAll(searchVO); + } + + @Override + public MemberVO getMemberInfo(String userid) throws Exception { + return memberMapper.getMemberInfo(userid); + } + + + @Override + public MemberVO getHeadMember() throws Exception { + return memberMapper.getHeadMember(); + } + + @Override + public MemberVO getSectionMember() throws Exception { + return memberMapper.getSectionMember(); + } + + + @Override + public HashMap getMemberListUserVo(final MemberSearchVO searchVO) throws Exception { + + MemberVO headVO = getHeadMember(); + MemberVO sectionVO = getSectionMember(); + + List userList = memberMapper.getMemberListUserVO(searchVO); + Iterator it = userList.iterator(); + while (it.hasNext()) { + LoginUserVO user = it.next(); + /* 담당관 */ + if (headVO != null) { + String head = headVO.getUserid(); + user.setAuthHead(head != null && head.equals(user.getUserid()) ? 1 : 0); + } + /* 팀장 */ + if (sectionVO != null) { + String section = sectionVO.getUserid(); + user.setAuthSection(section != null && section.equals(user.getUserid()) ? 1 : 0); + } + + } + + HashMap result = new HashMap(); + result.put("head", headVO); + result.put("section", sectionVO); + result.put("resultList", userList); + + return result; + } + + @Override + public List getMemberList(MemberSearchVO searchVO) throws Exception { + return memberMapper.getMemberList(searchVO); + } + + @Override + public int getMemberListCnt(final MemberSearchVO searchVO) throws Exception { + return memberMapper.getMemberListCnt(searchVO); + } + + @Override + public int getMemberListAllCnt(final MemberSearchVO searchVO) throws Exception { + return memberMapper.getMemberListAllCnt(searchVO); + } + @Override + public int updateMemberAuth(MemberVO memberVO) throws Exception { + return memberMapper.updateUsrLv(memberVO); + } + + @Override + public int updateMemberRpt(MemberVO memberVO) throws Exception { + return memberMapper.updateRtpAuth(memberVO); + } + + @Override + public int updateSection(MemberVO memberVO) throws Exception { + + MemberVO section = memberMapper.getSectionMember(); + + if(section != null){ + section.setUsegrade(6); + memberMapper.updateUsrLv(section); + } + // 20180517 권한관련 팀장4, 담당관3 수정 + memberVO.setUsegrade(4); + return memberMapper.updateUsrLv(memberVO); + } + + @Override + public int updateHead(MemberVO memberVO) throws Exception { + + MemberVO head = memberMapper.getHeadMember(); + if(head != null){ + head.setUsegrade(6); + memberMapper.updateUsrLv(head); + } + // 20180517 권한관련 팀장4, 담당관3 수정 + memberVO.setUsegrade(3); + return memberMapper.updateUsrLv(memberVO); + } + + @Override + public int insertUserInfo(MemberVO vo) throws Exception { + return memberMapper.insertUserInfo(vo); + } + + @Override + public int selectCheckId(String userid) throws Exception { + return memberMapper.selectCheckId(userid); + } + + @Override + public int updateUserInfo(MemberVO vo) throws Exception { + return memberMapper.updateUserInfo(vo); + } + + @Override + public List getMemberListForExel(MemberSearchVO searchVO) throws Exception { + return memberMapper.getMemberListForExel(searchVO); + } + +} diff --git a/src/main/java/kcg/imis/member/vo/Duty.java b/src/main/java/kcg/imis/member/vo/Duty.java new file mode 100644 index 0000000..7e082d2 --- /dev/null +++ b/src/main/java/kcg/imis/member/vo/Duty.java @@ -0,0 +1,25 @@ +package kcg.imis.member.vo; + +/** + * 직위. + * + * @author kimnomin + * + */ +public final class Duty { + /** + * 계장. + */ + public static final String SECTION = "03"; + /** + * 과장. + */ + public static final String HEAD = "04"; + + /** + * 생성자. + */ + private Duty() { + + } +} diff --git a/src/main/java/kcg/imis/member/vo/MemberSearchVO.java b/src/main/java/kcg/imis/member/vo/MemberSearchVO.java new file mode 100644 index 0000000..59a0dd7 --- /dev/null +++ b/src/main/java/kcg/imis/member/vo/MemberSearchVO.java @@ -0,0 +1,214 @@ +/** + * MemberSearchVO.java + * @author 임새미 + * @since 2016. 11. 2. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 11. 2. 임새미 최초생성 + * + */ +package kcg.imis.member.vo; + +import kcg.imis.cmmn.bbs.BaseSearchVO; + +/** + * + * @FileName : MemberSearchVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 9. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class MemberSearchVO extends BaseSearchVO { + + private int recordCountPerAuthPage = 20; + + private String userid; + private String place1; + private String position; + private String name; + private String usertype = UserType.FA; + private int ordertype; + private int ordercode; + private String orderkey; + + public MemberSearchVO() { + super(); + } + + /** + * @return the recordCountPerAuthPage + */ + public int getRecordCountPerAuthPage() { + return recordCountPerAuthPage; + } + + /** + * @param recordCountPerAuthPage the recordCountPerAuthPage to set + */ + public void setRecordCountPerAuthPage(int recordCountPerAuthPage) { + this.recordCountPerAuthPage = recordCountPerAuthPage; + } + + /** + * @return the userid + */ + public String getUserid() { + return userid; + } + + /** + * @param userid the userid to set + */ + public void setUserid(String userid) { + this.userid = userid; + } + + /** + * @return the place1 + */ + public String getPlace1() { + return place1; + } + + /** + * @param place1 the place1 to set + */ + public void setPlace1(String place1) { + this.place1 = place1; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the usertype + */ + public String getUsertype() { + return usertype; + } + + /** + * @param usertype the usertype to set + */ + public void setUsertype(String usertype) { + this.usertype = usertype; + } + + /** + * @return the orderkey + */ + public String getOrderkey() { + return orderkey; + } + + /** + * @param orderkey the orderkey to set + */ + public void setOrderkey(String orderkey) { + } + /** + * @return the ordercode + */ + public int getOrdercode() { + return ordercode; + } + + /** + * @param ordercode the ordercode to set + */ + public void setOrdercode(int ordercode) { + String key = ""; + this.ordercode = ordercode; + switch (ordercode) { + case 0: + key = "PLACE1"; + break; + case 1: + key = "PLACE2"; + break; + case 2: + key = "POSITION"; + break; + case 3: + key = "NAME"; + break; + case 4: + key = "USERID"; + break; + case 5: + key = "JOBTYPE"; + break; + case 6: + key = "USEGRADE"; + break; + case 7: + key = "TOTALEXCAREER"; + break; + case 8: + key = "DUTIES"; + break; + case 9: + key = "LOGINCHK"; + break; + case 10: + key = "CHKCNT"; + break; + case 11: + key = "INOUT"; + break; + case 12: + key = "NOWPOSITION"; + break; + case 13: + key = "NOWPLACE"; + break; + default: + key = ""; + break; + } + this.orderkey = key; + } + + /** + * @return the ordertype + */ + public int getOrdertype() { + return ordertype; + } + + /** + * @param ordertype the ordertype to set + */ + public void setOrdertype(int ordertype) { + this.ordertype = ordertype; + } + + /** + * @return the position + */ + public String getPosition() { + return position; + } + + /** + * @param position the position to set + */ + public void setPosition(String position) { + this.position = position; + } + +} diff --git a/src/main/java/kcg/imis/member/vo/MemberVO.java b/src/main/java/kcg/imis/member/vo/MemberVO.java new file mode 100644 index 0000000..af80da2 --- /dev/null +++ b/src/main/java/kcg/imis/member/vo/MemberVO.java @@ -0,0 +1,322 @@ +package kcg.imis.member.vo; + +import java.io.Serializable; + +/** + * + * @FileName : MemberVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 2. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class MemberVO implements Serializable { + + /** + * + */ + private static final long serialVersionUID = -7486836904063956439L; + + /** + * rnum. + */ + private int rnum; + + /** + * 사용자 ID. + */ + private String userid; + /** + * 비밀번호. + */ + private String passwd; + /** + * 비밀번호확인. + */ + private String passwd2; + /** + * 이름. + */ + private String name; + /** + * 소속1. + */ + private String place1; + /** + * 소속2. + */ + private String place2; + /** + * 계급. + */ + private String loginchk; + /** + * 직책(없음/반장/계장/과장). + */ + private String duties; + + /** + * 사용자 등급. + */ + private int usegrade; + + private String usegradeStr; + + /** + * 소속1 명칭. + */ + private String place1Str; + /** + * 소속2 명칭. + */ + private String place2Str; + /** + * 직급 명칭. + */ + private String dutyStr; + + /** + * 견문 권한 + */ + private int rptAuth; + + /** + * 권한 레벨. + */ + private int rolelevel; + + /** + * @return the rnum + */ + public int getRnum() { + return rnum; + } + + /** + * @param rnum the rnum to set + */ + public void setRnum(int rnum) { + this.rnum = rnum; + } + + /** + * @return the userid + */ + public String getUserid() { + return userid; + } + + /** + * @param userid the userid to set + */ + public void setUserid(String userid) { + this.userid = userid; + } + + /** + * @return the passwd + */ + public String getPasswd() { + return passwd; + } + + /** + * @param passwd the passwd to set + */ + public void setPasswd(String passwd) { + this.passwd = passwd; + } + + /** + * @return the passwd2 + */ + public String getPasswd2() { + return passwd2; + } + + /** + * @param passwd2 the passwd2 to set + */ + public void setPasswd2(String passwd2) { + this.passwd2 = passwd2; + } + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the place1 + */ + public String getPlace1() { + return place1; + } + + /** + * @param place1 the place1 to set + */ + public void setPlace1(String place1) { + this.place1 = place1; + } + + /** + * @return the place2 + */ + public String getPlace2() { + return place2; + } + + /** + * @param place2 the place2 to set + */ + public void setPlace2(String place2) { + this.place2 = place2; + } + + /** + * @return the loginchk + */ + public String getLoginchk() { + return loginchk; + } + + /** + * @param loginchk the loginchk to set + */ + public void setLoginchk(String loginchk) { + this.loginchk = loginchk; + } + + /** + * @return the duties + */ + public String getDuties() { + return duties; + } + + /** + * @param duties the duties to set + */ + public void setDuties(String duties) { + this.duties = duties; + } + + /** + * @return the usegrade + */ + public int getUsegrade() { + return usegrade; + } + + /** + * @param usegrade the usegrade to set + */ + public void setUsegrade(int usegrade) { + this.usegrade = usegrade; + + if(usegrade == 1){ + setUsegradeStr("관리자"); + }else if(usegrade == 2){ + setUsegradeStr("중간관리자"); + }else if(usegrade == 3){ + setUsegradeStr("국제협력관"); + }else if(usegrade == 4){ + setUsegradeStr("국제법규팀장"); + }else if(usegrade == 6){ + setUsegradeStr("사용자(쓰기)"); + }else{ + setUsegradeStr("사용중지"); + } + + } + + /** + * @return the place1Str + */ + public String getPlace1Str() { + return place1Str; + } + + /** + * @param place1Str the place1Str to set + */ + public void setPlace1Str(String place1Str) { + this.place1Str = place1Str; + } + + /** + * @return the place2Str + */ + public String getPlace2Str() { + return place2Str; + } + + /** + * @param place2Str the place2Str to set + */ + public void setPlace2Str(String place2Str) { + this.place2Str = place2Str; + } + + /** + * @return the dutyStr + */ + public String getDutyStr() { + return dutyStr; + } + + /** + * @param dutyStr the dutyStr to set + */ + public void setDutyStr(String dutyStr) { + this.dutyStr = dutyStr; + } + + /** + * @return the rptAuth + */ + public int getRptAuth() { + return rptAuth; + } + + /** + * @param rptAuth the rptAuth to set + */ + public void setRptAuth(int rptAuth) { + this.rptAuth = rptAuth; + } + + /** + * @return the rolelevel + */ + public int getRolelevel() { + return rolelevel; + } + + /** + * @param rolelevel the rolelevel to set + */ + public void setRolelevel(int rolelevel) { + this.rolelevel = rolelevel; + } + + public String getUsegradeStr() { + return usegradeStr; + } + + public void setUsegradeStr(String usegradeStr) { + this.usegradeStr = usegradeStr; + } + + +} diff --git a/src/main/java/kcg/imis/member/vo/UserType.java b/src/main/java/kcg/imis/member/vo/UserType.java new file mode 100644 index 0000000..4b71b98 --- /dev/null +++ b/src/main/java/kcg/imis/member/vo/UserType.java @@ -0,0 +1,24 @@ +package kcg.imis.member.vo; + +/** + * 사용자 구분. + * + * @author kimnomin + * + */ +public final class UserType { + /** + * 외사경찰. + */ + public static final String FA = "f"; + /** + * 일반경찰. + */ + public static final String CM = "g"; + + /** + * 생성자. + */ + private UserType() { + } +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/member/web/MemberController.java b/src/main/java/kcg/imis/member/web/MemberController.java new file mode 100644 index 0000000..b5e594e --- /dev/null +++ b/src/main/java/kcg/imis/member/web/MemberController.java @@ -0,0 +1,114 @@ +package kcg.imis.member.web; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.member.service.MemberService; +import kcg.imis.member.vo.MemberSearchVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.support.SessionStatus; + +import egovframework.rte.fdl.property.EgovPropertyService; + +/** + * @FileName : MemberController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 9. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/member") +public class MemberController { + + @Resource(name = "memberService") + MemberService memberService; + + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * 코드관련 정보 인터페이스. + */ + @Resource(name = "codeService") + private CodeService codeService; + + + @RequestMapping("/update.do") + public String memberUpdateView(final Model model) throws Exception { + try { + + LoginUserVO user = UserUtil.getMemberInfo(); + model.addAttribute("code", codeService.getCodeList(null)); + model.addAttribute("memberVO", memberService.getMemberInfo(user.getUserid())); + model.addAttribute("isAdmin", UserUtil.isAdmin()); + model.addAttribute("isSysAdmin", UserUtil.isSysAdmin()); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "member/update.tiles"; + } + + @RequestMapping(value = {"/memberUpdate.do"}, method = RequestMethod.POST) + public String memberUpdate(@ModelAttribute("memberVO") final MemberVO memberVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + try { + memberService.updateUserInfo(memberVO); + } catch (Exception e) { + e.printStackTrace(); + } + + return "redirect:/main.do"; + } + + + @ResponseBody + @RequestMapping(value = "/getMemberListAll.json") + public List getMemberListAll(final MemberSearchVO searchVO) throws Exception { + return memberService.getMemberListAll(searchVO); + } + + @ResponseBody + @RequestMapping("/regist.json") + public HashMap regist2(final MemberVO memberVO) throws Exception { + HashMap resultMap = new HashMap(); + try { + int result = memberService.insertUserInfo(memberVO); + resultMap.put("result", result); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + @ResponseBody + @RequestMapping("/checkId.json") + public HashMap checkId(final MemberVO memberVO) throws Exception { + HashMap resultMap = new HashMap(); + try { + int result = memberService.selectCheckId(memberVO.getUserid()); + resultMap.put("cnt", result); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + +} diff --git a/src/main/java/kcg/imis/moniter/mapper/MoniterMapper.java b/src/main/java/kcg/imis/moniter/mapper/MoniterMapper.java new file mode 100644 index 0000000..d8f734b --- /dev/null +++ b/src/main/java/kcg/imis/moniter/mapper/MoniterMapper.java @@ -0,0 +1,65 @@ +package kcg.imis.moniter.mapper; + +import java.util.List; +import java.util.Map; + +import kcg.imis.moniter.vo.MoniterSearchVO; +import kcg.imis.moniter.vo.MoniterVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : MoniterMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 13. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("moniterMapper") +public class MoniterMapper extends EgovAbstractMapper { + + /** + * 국가별 참고사이트 목록 조회 + * @param idx + * @return + * @throws Exception + */ + public List getMoniterList(final String idx) throws Exception { + return selectList("Moniter.getMoniterList", idx); + } + + /** + * 모니터링 시스템 목록 조회 + * @param vo + * @return + * @throws Exception + */ + public List> getMoniterList(final MoniterSearchVO vo) throws Exception { + return selectList("Moniter.getMoniterTree", vo); + } + + + public MoniterVO getMoniterInfo(final String idx) throws Exception { + return selectOne("Moniter.getMoniterInfo", idx); + } + + public int getMaxIdx() throws Exception { + return (Integer)selectOne("Moniter.getMaxIdx"); + } + + public int insertMoniterInfo(final MoniterVO vo) throws Exception { + return insert("Moniter.insertMoniterInfo", vo); + } + + public int updateMoniterInfo(final MoniterVO vo) throws Exception { + return update("Moniter.updateMoniterInfo", vo); + } + + public int deleteMoniterTree(final MoniterSearchVO vo) throws Exception { + return delete("Moniter.deleteMoniterTree", vo); + } + +} diff --git a/src/main/java/kcg/imis/moniter/service/MoniterService.java b/src/main/java/kcg/imis/moniter/service/MoniterService.java new file mode 100644 index 0000000..9a32bbd --- /dev/null +++ b/src/main/java/kcg/imis/moniter/service/MoniterService.java @@ -0,0 +1,20 @@ +package kcg.imis.moniter.service; + +import java.util.List; +import java.util.Map; + +import kcg.imis.moniter.vo.MoniterSearchVO; +import kcg.imis.moniter.vo.MoniterVO; + + +public interface MoniterService { + + List getMoniterList(String idx) throws Exception; + + List> getMoniterTreeList() throws Exception; + + MoniterVO saveMoniter(MoniterVO vo) throws Exception; + + int deleteMoniterTree(MoniterSearchVO vo) throws Exception; + +} diff --git a/src/main/java/kcg/imis/moniter/service/MoniterServiceImpl.java b/src/main/java/kcg/imis/moniter/service/MoniterServiceImpl.java new file mode 100644 index 0000000..f9b6ada --- /dev/null +++ b/src/main/java/kcg/imis/moniter/service/MoniterServiceImpl.java @@ -0,0 +1,174 @@ +/** + * AdminServiceImpl.java + * @author 임새미 + * @since 2016. 10. 28. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 28. 임새미 최초생성 + * + */ +package kcg.imis.moniter.service; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.moniter.mapper.MoniterMapper; +import kcg.imis.moniter.vo.MoniterSearchVO; +import kcg.imis.moniter.vo.MoniterVO; + +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +@Service("moniterService") +public class MoniterServiceImpl implements MoniterService { + + @Resource(name = "moniterMapper") + private MoniterMapper moniterMapper; + + @Override + public List getMoniterList(String idx) throws Exception { + + List list = moniterMapper.getMoniterList(idx); + + return list; + } + + @Override + public List> getMoniterTreeList() throws Exception { + + List> list1 = createMoniterTreeList(1); + + for (Map depth1 : list1) { + + List> list2 = createMoniterTreeList(depth1); + + for (Map depth2 : list2) { + + List> list3 = createMoniterTreeList(depth2); + + for (Map depth3 : list3) { + + List> list4 = createMoniterTreeList(depth3); + + for (Map depth4 : list4) { + + List> list5 = createMoniterTreeList(depth4); + + for (Map depth5 : list5) { + + List> list6 = createMoniterTreeList(depth5); + + for (Map depth6 : list6) { + depth6.put("state", "open"); + } + + if(list6.size() == 0){ + depth5.put("state", "open"); + } + depth5.put("children", list6); + + } + if(list5.size() == 0){ + depth4.put("state", "open"); + } + depth4.put("children", list5); + + } + if(list4.size() == 0){ + depth3.put("state", "open"); + } + depth3.put("children", list4); + + } + if(list3.size() == 0){ + depth2.put("state", "open"); + } + depth2.put("children", list3); + + } + if(list2.size() == 0){ + depth1.put("state", "open"); + } + depth1.put("children", list2); + + } + + return list1; + + } + + private List> createMoniterTreeList(int depth ) throws Exception { + + MoniterSearchVO vo = new MoniterSearchVO(); + vo.setDepth(depth); + + List> list1 = moniterMapper.getMoniterList(vo); + return list1; + } + + private List> createMoniterTreeList(Map moniter) throws Exception { + + MoniterSearchVO vo = new MoniterSearchVO(); + + int dep = Integer.parseInt(String.valueOf(moniter.get("depth"))) + 1; + String idx = String.valueOf(moniter.get("id")); + + vo.setDepth(dep); + vo.setIdx(idx); + + return moniterMapper.getMoniterList(vo); + } + + @Override + public MoniterVO saveMoniter(MoniterVO vo) throws Exception { + + String id = vo.getJmIdx(); + + int result = 0; + + if(!StringUtils.isEmpty(id)){ + result = moniterMapper.updateMoniterInfo(vo); + }else{ + //신규 + MoniterVO insertVo = moniterMapper.getMoniterInfo(vo.getParentId()); + int idx = moniterMapper.getMaxIdx(); + int depth = Integer.parseInt(insertVo.getJmDepth()) + 1; + if(depth == 2){ + insertVo.setJmDepth2Idx(String.valueOf(idx)); + } else if(depth == 3){ + insertVo.setJmDepth3Idx(String.valueOf(idx)); + } else if(depth == 4){ + insertVo.setJmDepth4Idx(String.valueOf(idx)); + } else if(depth == 5){ + insertVo.setJmDepth5Idx(String.valueOf(idx)); + } else if(depth == 6){ + insertVo.setJmDepth6Idx(String.valueOf(idx)); + } + + insertVo.setJmIdx(String.valueOf(idx)); + insertVo.setJmDepth(String.valueOf(depth)); + insertVo.setJmOrder(vo.getJmOrder()); + insertVo.setJmName(vo.getJmName()); + insertVo.setJmHref(vo.getJmHref()); + + result = moniterMapper.insertMoniterInfo(insertVo); + + id = String.valueOf(idx); + } + + if(result == 1){ + return moniterMapper.getMoniterInfo(id); + } + else{ + return new MoniterVO(); + } + } + + @Override + public int deleteMoniterTree(MoniterSearchVO vo) throws Exception { + return moniterMapper.deleteMoniterTree(vo); + } +} diff --git a/src/main/java/kcg/imis/moniter/vo/MoniterSearchVO.java b/src/main/java/kcg/imis/moniter/vo/MoniterSearchVO.java new file mode 100644 index 0000000..f039f93 --- /dev/null +++ b/src/main/java/kcg/imis/moniter/vo/MoniterSearchVO.java @@ -0,0 +1,22 @@ +package kcg.imis.moniter.vo; + + +public class MoniterSearchVO { + + private String idx; + private int depth; + + public String getIdx() { + return idx; + } + public void setIdx(String idx) { + this.idx = idx; + } + public int getDepth() { + return depth; + } + public void setDepth(int depth) { + this.depth = depth; + } + +} diff --git a/src/main/java/kcg/imis/moniter/vo/MoniterVO.java b/src/main/java/kcg/imis/moniter/vo/MoniterVO.java new file mode 100644 index 0000000..8b1ea9c --- /dev/null +++ b/src/main/java/kcg/imis/moniter/vo/MoniterVO.java @@ -0,0 +1,142 @@ +package kcg.imis.moniter.vo; + +import java.util.List; + +public class MoniterVO { + + @Override + public String toString() { + return "MoniterVO [jmIdx=" + jmIdx + ", jmDepth=" + jmDepth + ", jmDepth1Idx=" + jmDepth1Idx + ", jmDepth2Idx=" + jmDepth2Idx + ", jmDepth3Idx=" + jmDepth3Idx + ", jmDepth4Idx=" + jmDepth4Idx + + ", jmDepth5Idx=" + jmDepth5Idx + ", jmDepth6Idx=" + jmDepth6Idx + ", jmName=" + jmName + ", jmOrder=" + jmOrder + ", jmChild=" + jmChild + ", jmHref=" + jmHref + ", parentId=" + + parentId + ", monterList=" + monterList + "]"; + } + + private String jmIdx; + private String jmDepth; + private String jmDepth1Idx; + private String jmDepth2Idx; + private String jmDepth3Idx; + private String jmDepth4Idx; + private String jmDepth5Idx; + private String jmDepth6Idx; + private String jmName; + private String jmOrder; + private String jmChild; + private String jmHref; + private String parentId; + + private List monterList; + + public String getJmIdx() { + return jmIdx; + } + + public void setJmIdx(String jmIdx) { + this.jmIdx = jmIdx; + } + + public String getJmDepth() { + return jmDepth; + } + + public void setJmDepth(String jmDepth) { + this.jmDepth = jmDepth; + } + + public String getJmDepth1Idx() { + return jmDepth1Idx; + } + + public void setJmDepth1Idx(String jmDepth1Idx) { + this.jmDepth1Idx = jmDepth1Idx; + } + + public String getJmDepth2Idx() { + return jmDepth2Idx; + } + + public void setJmDepth2Idx(String jmDepth2Idx) { + this.jmDepth2Idx = jmDepth2Idx; + } + + public String getJmDepth3Idx() { + return jmDepth3Idx; + } + + public void setJmDepth3Idx(String jmDepth3Idx) { + this.jmDepth3Idx = jmDepth3Idx; + } + + public String getJmDepth4Idx() { + return jmDepth4Idx; + } + + public void setJmDepth4Idx(String jmDepth4Idx) { + this.jmDepth4Idx = jmDepth4Idx; + } + + public String getJmDepth5Idx() { + return jmDepth5Idx; + } + + public void setJmDepth5Idx(String jmDepth5Idx) { + this.jmDepth5Idx = jmDepth5Idx; + } + + public String getJmDepth6Idx() { + return jmDepth6Idx; + } + + public void setJmDepth6Idx(String jmDepth6Idx) { + this.jmDepth6Idx = jmDepth6Idx; + } + + public String getJmName() { + return jmName; + } + + public void setJmName(String jmName) { + this.jmName = jmName; + } + + public String getJmOrder() { + return jmOrder; + } + + public void setJmOrder(String jmOrder) { + this.jmOrder = jmOrder; + } + + public String getJmChild() { + return jmChild; + } + + public void setJmChild(String jmChild) { + this.jmChild = jmChild; + } + + public String getJmHref() { + return jmHref; + } + + public void setJmHref(String jmHref) { + this.jmHref = jmHref; + } + + public List getMonterList() { + return monterList; + } + + public void setMonterList(List monterList) { + this.monterList = monterList; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + +} diff --git a/src/main/java/kcg/imis/moniter/web/MoniterController.java b/src/main/java/kcg/imis/moniter/web/MoniterController.java new file mode 100644 index 0000000..6dd9355 --- /dev/null +++ b/src/main/java/kcg/imis/moniter/web/MoniterController.java @@ -0,0 +1,51 @@ +package kcg.imis.moniter.web; + +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.moniter.service.MoniterService; +import kcg.imis.moniter.vo.MoniterVO; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @FileName : MoniterController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 13. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/moniter") +public class MoniterController { + + @Resource(name = "moniterService") + MoniterService moniterService; + + @RequestMapping(value = "/list.do") + public String reportSaveList(@RequestParam(value="idx", required=false) String idx, final Model model) { + + try { + if(idx == null) idx = "1"; + model.addAttribute("data", moniterService.getMoniterList(idx)); + model.addAttribute("idx", idx); + } catch (Exception e) { + e.printStackTrace(); + } + + return "moniter/moniterList.tiles"; + } + + /*@ResponseBody + @RequestMapping(value = "/getMoniterList.json") + public List getMemberListAll(@RequestParam(value="idx", required=false) String idx) throws Exception { + return moniterService.getMemberList(idx); + }*/ + +} diff --git a/src/main/java/kcg/imis/nation/mapper/NationMapper.java b/src/main/java/kcg/imis/nation/mapper/NationMapper.java new file mode 100644 index 0000000..fada2de --- /dev/null +++ b/src/main/java/kcg/imis/nation/mapper/NationMapper.java @@ -0,0 +1,41 @@ +package kcg.imis.nation.mapper; + +import kcg.imis.nation.vo.NationVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + + +/** + * @FileName : NationMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 11. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("nationMapper") +public class NationMapper extends EgovAbstractMapper { + + /** + * 해양세력 정보 조회 + * @param naSeq + * @return + * @throws Exception + */ + public NationVO getNationInfo(final String naSeq) throws Exception { + return selectOne("Nation.getNationInfo", naSeq); + } + + /** + * 해양세력 정보 업데이트 + * @param nationVO + * @return + * @throws Exception + */ + public int updateNation(NationVO nationVO) throws Exception { + return update("Nation.updateNationInfo", nationVO); + } + +} diff --git a/src/main/java/kcg/imis/nation/service/NationService.java b/src/main/java/kcg/imis/nation/service/NationService.java new file mode 100644 index 0000000..d8262fe --- /dev/null +++ b/src/main/java/kcg/imis/nation/service/NationService.java @@ -0,0 +1,31 @@ +package kcg.imis.nation.service; + +import kcg.imis.nation.vo.NationVO; + +/** + * @FileName : NationService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 11. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface NationService { + + /** + * 해양 세력 정보 조회 + * @param naSeq + * @return + * @throws Exception + */ + NationVO getNationInfo(final String naSeq) throws Exception; + + /** + * 해양 세력 정보 업데이트 + * @param nationVO + * @return + * @throws Exception + */ + int updateNation(NationVO nationVO) throws Exception; + +} diff --git a/src/main/java/kcg/imis/nation/service/NationServiceImpl.java b/src/main/java/kcg/imis/nation/service/NationServiceImpl.java new file mode 100644 index 0000000..836afa1 --- /dev/null +++ b/src/main/java/kcg/imis/nation/service/NationServiceImpl.java @@ -0,0 +1,26 @@ +package kcg.imis.nation.service; + +import javax.annotation.Resource; + +import kcg.imis.nation.mapper.NationMapper; +import kcg.imis.nation.vo.NationVO; + +import org.springframework.stereotype.Service; + +@Service("nationService") +public class NationServiceImpl implements NationService { + + @Resource(name = "nationMapper") + private NationMapper nationMapper; + + @Override + public NationVO getNationInfo(String naSeq) throws Exception { + return nationMapper.getNationInfo(naSeq); + } + + @Override + public int updateNation(NationVO nationVO) throws Exception { + return nationMapper.updateNation(nationVO); + } + +} diff --git a/src/main/java/kcg/imis/nation/vo/NationVO.java b/src/main/java/kcg/imis/nation/vo/NationVO.java new file mode 100644 index 0000000..b078cb6 --- /dev/null +++ b/src/main/java/kcg/imis/nation/vo/NationVO.java @@ -0,0 +1,260 @@ +package kcg.imis.nation.vo; + +public class NationVO { + + private String naSeq; + private String naName; + private String naEngName; + private String naArea; + private String naOldArea; + private String naNisid; + private String naFlag; + private String naInfo1; + private String naInfo2; + private String naInfo3; + private String naInfo4; + private String naInfo5; + private String naInfo6; + private String naInfo7; + private String naData1; + private String naData2; + private String naData3; + private String naData4; + private String naData5; + private String naData6; + private String naData7; + private String naData8; + private String naData9; + private String naData10; + private String naData11; + private String naData12; + private String naData13; + private String naData14; + private String naData15; + private String naData16; + private String naData17; + private String naData18; + private String naData19; + private String naData20; + private String naData21; + private String naData22; + + public String getNaSeq() { + return naSeq; + } + public void setNaSeq(String naSeq) { + this.naSeq = naSeq; + } + public String getNaName() { + return naName; + } + public void setNaName(String naName) { + this.naName = naName; + } + public String getNaEngName() { + return naEngName; + } + public void setNaEngName(String naEngName) { + this.naEngName = naEngName; + } + public String getNaArea() { + return naArea; + } + public void setNaArea(String naArea) { + this.naArea = naArea; + } + public String getNaOldArea() { + return naOldArea; + } + public void setNaOldArea(String naOldArea) { + this.naOldArea = naOldArea; + } + public String getNaNisid() { + return naNisid; + } + public void setNaNisid(String naNisid) { + this.naNisid = naNisid; + } + public String getNaFlag() { + return naFlag; + } + public void setNaFlag(String naFlag) { + this.naFlag = naFlag; + } + public String getNaInfo1() { + return naInfo1; + } + public void setNaInfo1(String naInfo1) { + this.naInfo1 = naInfo1; + } + public String getNaInfo2() { + return naInfo2; + } + public void setNaInfo2(String naInfo2) { + this.naInfo2 = naInfo2; + } + public String getNaInfo3() { + return naInfo3; + } + public void setNaInfo3(String naInfo3) { + this.naInfo3 = naInfo3; + } + public String getNaInfo4() { + return naInfo4; + } + public void setNaInfo4(String naInfo4) { + this.naInfo4 = naInfo4; + } + public String getNaInfo5() { + return naInfo5; + } + public void setNaInfo5(String naInfo5) { + this.naInfo5 = naInfo5; + } + public String getNaInfo6() { + return naInfo6; + } + public void setNaInfo6(String naInfo6) { + this.naInfo6 = naInfo6; + } + public String getNaInfo7() { + return naInfo7; + } + public void setNaInfo7(String naInfo7) { + this.naInfo7 = naInfo7; + } + public String getNaData1() { + return naData1; + } + public void setNaData1(String naData1) { + this.naData1 = naData1; + } + public String getNaData2() { + return naData2; + } + public void setNaData2(String naData2) { + this.naData2 = naData2; + } + public String getNaData3() { + return naData3; + } + public void setNaData3(String naData3) { + this.naData3 = naData3; + } + public String getNaData4() { + return naData4; + } + public void setNaData4(String naData4) { + this.naData4 = naData4; + } + public String getNaData5() { + return naData5; + } + public void setNaData5(String naData5) { + this.naData5 = naData5; + } + public String getNaData6() { + return naData6; + } + public void setNaData6(String naData6) { + this.naData6 = naData6; + } + public String getNaData7() { + return naData7; + } + public void setNaData7(String naData7) { + this.naData7 = naData7; + } + public String getNaData8() { + return naData8; + } + public void setNaData8(String naData8) { + this.naData8 = naData8; + } + public String getNaData9() { + return naData9; + } + public void setNaData9(String naData9) { + this.naData9 = naData9; + } + public String getNaData10() { + return naData10; + } + public void setNaData10(String naData10) { + this.naData10 = naData10; + } + public String getNaData11() { + return naData11; + } + public void setNaData11(String naData11) { + this.naData11 = naData11; + } + public String getNaData12() { + return naData12; + } + public void setNaData12(String naData12) { + this.naData12 = naData12; + } + public String getNaData13() { + return naData13; + } + public void setNaData13(String naData13) { + this.naData13 = naData13; + } + public String getNaData14() { + return naData14; + } + public void setNaData14(String naData14) { + this.naData14 = naData14; + } + public String getNaData15() { + return naData15; + } + public void setNaData15(String naData15) { + this.naData15 = naData15; + } + public String getNaData16() { + return naData16; + } + public void setNaData16(String naData16) { + this.naData16 = naData16; + } + public String getNaData17() { + return naData17; + } + public void setNaData17(String naData17) { + this.naData17 = naData17; + } + public String getNaData18() { + return naData18; + } + public void setNaData18(String naData18) { + this.naData18 = naData18; + } + public String getNaData19() { + return naData19; + } + public void setNaData19(String naData19) { + this.naData19 = naData19; + } + public String getNaData20() { + return naData20; + } + public void setNaData20(String naData20) { + this.naData20 = naData20; + } + public String getNaData21() { + return naData21; + } + public void setNaData21(String naData21) { + this.naData21 = naData21; + } + public String getNaData22() { + return naData22; + } + public void setNaData22(String naData22) { + this.naData22 = naData22; + } + + +} diff --git a/src/main/java/kcg/imis/nation/web/NationController.java b/src/main/java/kcg/imis/nation/web/NationController.java new file mode 100644 index 0000000..615efb4 --- /dev/null +++ b/src/main/java/kcg/imis/nation/web/NationController.java @@ -0,0 +1,55 @@ +package kcg.imis.nation.web; + +import javax.annotation.Resource; + +import kcg.imis.nation.service.NationService; +import kcg.imis.nation.vo.NationVO; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @FileName : NationController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 11. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/nation") +public class NationController { + + @Resource(name = "nationService") + private NationService nationService; + + @RequestMapping(value = "/info.do", method = RequestMethod.GET) + public String info(final Model model, @RequestParam(value="seq") String naSeq) { + + try { + model.addAttribute("nation", nationService.getNationInfo(naSeq)); + } catch (Exception e) { + e.printStackTrace(); + } + + return "nation/nationInfo.tiles"; + } + + @RequestMapping(value = "/update.do", method = RequestMethod.POST) + public String updateNation(final Model model, @ModelAttribute("reportVO") final NationVO nationVO) { + + try { + nationService.updateNation(nationVO); + } catch (Exception e) { + e.printStackTrace(); + } + + return "redirect:/nation/info.do?seq="+nationVO.getNaSeq(); + } + + +} diff --git a/src/main/java/kcg/imis/notice/mapper/NoticeMapper.java b/src/main/java/kcg/imis/notice/mapper/NoticeMapper.java new file mode 100644 index 0000000..d11d1c5 --- /dev/null +++ b/src/main/java/kcg/imis/notice/mapper/NoticeMapper.java @@ -0,0 +1,158 @@ +package kcg.imis.notice.mapper; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.notice.vo.NoticeSearchVO; +import kcg.imis.notice.vo.NoticeVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : NoticeMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 26. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("noticeMapper") +public class NoticeMapper extends EgovAbstractMapper { + + + /** + * 공지 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List selectNoticeList(final NoticeSearchVO searchVO) throws Exception { + return selectList("Notice.selectNoticeList", searchVO); + } + + + /** + * 검색 키워드에 따른 총 게시물 개수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + public int selectNoticeListTotCnt(final NoticeSearchVO searchVO) throws Exception { + return (Integer) selectOne("Notice.selectNoticeListTotCnt", searchVO); + } + + /** + * 전체 게시물 개수를 가져온다. + * @param searchVO + * + * @return 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectNoticeTotalCnt(final NoticeSearchVO searchVO) throws Exception { + return (Integer) selectOne("Notice.selectNoticeTotalCnt", searchVO); + } + + /** + * 답글 추가에 따른 group seq를 수정한다 + * + * @param noticeVO NoticeVO 객체 + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int updateGrpStep(final NoticeVO noticeVO) throws Exception { + return update("Notice.updateGrpStep", noticeVO); + } + + /** + * 이전게시물 번호 + * + * @param noticeVO NoticeVO 객체 + * @return 그룹에 해당되는 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectPrevSeq(final NoticeVO noticeVO) throws Exception { + return selectOne("Notice.selectPrevSeq", noticeVO); + } + + /** + * 다음게시물 번호 + * + * @param noticeVO NoticeVO 객체 + * @return 그룹에 해당되는 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectNextSeq(final NoticeVO noticeVO) throws Exception { + return selectOne("Notice.selectNextSeq", noticeVO); + } + + + /** + * 게시물을 추가한다. + * + * @param noticeVO 공지 내용 구성 객체 + * @return 글 총 갯수 + * @throws Exception 기본 예외 처리 + */ + public HashMap insertNotice(final NoticeVO noticeVO) throws Exception { + + HashMap map = new HashMap(); + + try { + insert("Notice.insertNotice", noticeVO); + map.put("npIdx", noticeVO.getNpIdx()); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + }; + + /** + * 선택한 게시물의 내용을 반환한다. + * + * @param noticeVO 게시물 VO + * @return 선택한 게시물 내용 반환 + * @throws Exception 기본 예외 처리 + */ + public NoticeVO selectNotice(final NoticeVO noticeVO) throws Exception { + return selectOne("Notice.selectNotice", noticeVO); + } + + /** + * 게시물을 DB에 업데이트 한다. + * + * @param noticeVO 게시물 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int updateNotice(final NoticeVO noticeVO) throws Exception { + return update("Notice.updateNotice", noticeVO); + } + + /** + * 게시물을 삭제한다. + * + * @param noticeVO 게시물 VO + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public int deleteNotice(final NoticeVO noticeVO) throws Exception { + return delete("Notice.deleteNotice", noticeVO); + } + + + /** + * 공지 팝업 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List selectNoticePopupList() throws Exception { + return selectList("Notice.selectNoticePopupList"); + } + +} diff --git a/src/main/java/kcg/imis/notice/service/NoticeService.java b/src/main/java/kcg/imis/notice/service/NoticeService.java new file mode 100644 index 0000000..57f2835 --- /dev/null +++ b/src/main/java/kcg/imis/notice/service/NoticeService.java @@ -0,0 +1,103 @@ +/** + * BoardService.java + * @author 임새미 + * @since 2016. 10. 25. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 25. 임새미 최초생성 + * + */ +package kcg.imis.notice.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import kcg.imis.notice.vo.NoticeSearchVO; +import kcg.imis.notice.vo.NoticeVO; + +import org.springframework.web.multipart.MultipartFile; + + +/** + * + * @FileName : BoardService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface NoticeService { + + /** + * 공지 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List selectList(final NoticeSearchVO searchVO) throws Exception ; + + /** + * 검색 키워드에 따른 총 게시물 개수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + public int selectListCnt(final NoticeSearchVO searchVO) throws Exception ; + + /** + * 전체 게시물 개수를 가져온다. + * + * @return 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + public int selectTotalCnt(final NoticeSearchVO searchVO) throws Exception ; + + + /** + * 선택한 게시물의 내용을 반환한다. + * + * @param bdSeq 공지 + * @return 선택한 게시물 내용 반환 + * @throws Exception 기본 예외 처리 + */ + public NoticeVO select(final NoticeVO noticeVO) throws Exception; + + + + /** + * 게시물을 추가한다. + * + * @param noticeVO 공지 내용 구성 객체 + * @param fileMap 업로드 파일정보체 + * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0 + * @exception Exception 기본 예외 처리 + */ + public HashMap insert(final NoticeVO noticeVO) throws Exception; + + + /** + * 게시물을 업데이트 한다. + * + * @param noticeVO 게시물 VO + * @param fileMap MultipartFile형태의 파일정보 + * @param deleteFiles 삭제할 파일리스트 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + public HashMap update(final NoticeVO noticeVO) throws Exception; + + + /** + * 게시물을 삭제한다. + * + * @param bdSeq 게시물 번호 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + public HashMap delete(final NoticeVO noticeVO) throws Exception; + + public List selectNoticePopupList() throws Exception; +} diff --git a/src/main/java/kcg/imis/notice/service/NoticeServiceImpl.java b/src/main/java/kcg/imis/notice/service/NoticeServiceImpl.java new file mode 100644 index 0000000..5bdf573 --- /dev/null +++ b/src/main/java/kcg/imis/notice/service/NoticeServiceImpl.java @@ -0,0 +1,194 @@ +package kcg.imis.notice.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.file.FileUploadUtil; +import kcg.imis.notice.mapper.NoticeMapper; +import kcg.imis.notice.vo.NoticeSearchVO; +import kcg.imis.notice.vo.NoticeVO; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +/** + * @FileName : NoticeServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 26. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Service("noticeService") +public class NoticeServiceImpl extends EgovAbstractServiceImpl implements NoticeService { + + /** + * NoticeMapper - 게시판 데이터처리에 관한 Mapper 클래스 + **/ + @Resource(name = "noticeMapper") + private NoticeMapper noticeMapper; + + @Resource(name = "fileUploadUtil") + private FileUploadUtil fileUtil; + + + /** + * 게시판 목록 화면을 반환한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + @Override + public List selectList(final NoticeSearchVO searchVO) throws Exception { + return noticeMapper.selectNoticeList(searchVO); + } + + /** + * 검색 키워드에 따른 총 게시물 개수를 조회한다. + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 개수 + * @exception Exception 기본 예외 처리 + */ + @Override + public int selectListCnt(final NoticeSearchVO searchVO) throws Exception { + return noticeMapper.selectNoticeListTotCnt(searchVO); + } + + /** + * 전체 게시물 개수를 가져온다. + * + * @return 게시물 개수 + * @throws Exception 기본 예외 처리 + */ + @Override + public int selectTotalCnt(final NoticeSearchVO searchVO) throws Exception { + return noticeMapper.selectNoticeTotalCnt(searchVO); + } + + + /** + * 선택한 게시물의 내용을 반환한다. + * + * @param bdSeq 게시판 + * @return 선택한 게시물 내용 반환 + * @throws Exception 기본 예외 처리 + */ + @Override + public NoticeVO select(final NoticeVO noticeVO) throws Exception { + + NoticeVO board = noticeMapper.selectNotice(noticeVO); + board.setPrevSeq(noticeMapper.selectPrevSeq(board)); + board.setNextSeq(noticeMapper.selectNextSeq(board)); + return board; + + } + + + /** + * 게시물을 추가한다. + * + * @param noticeVO 게시판 내용 구성 객체 + * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + public HashMap insert(final NoticeVO noticeVO) throws Exception { + + HashMap map = new HashMap(); + + /* seq 및 insert 결과 */ + map = noticeMapper.insertNotice(noticeVO); + + int seq = (Integer) map.get("npIdx"); + + if (seq > 0) { + noticeVO.setNpIdx(seq); + } else { + throw new Exception(); + } + + return map; + } + + + /** + * 게시물을 DB에 업데이트 한다. + * + * @param noticeVO 게시물 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception 기본 예외 처리 + */ + private int updateNotice(final NoticeVO noticeVO) throws Exception { + return noticeMapper.updateNotice(noticeVO); + }; + + /** + * 게시물을 업데이트 한다. + * + * @param noticeVO 게시물 VO + * @param fileMap MultipartFile형태의 파일정보 + * @param deleteFiles 삭제할 파일리스트 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + @Override + @Transactional + public HashMap update(final NoticeVO noticeVO) throws Exception { + + HashMap map = new HashMap(); + int result = 0; + + result = this.updateNotice(noticeVO); + + if (result != 1) { + throw new Exception(); + } else { + map.put("result", result); + map.put("npIdx", noticeVO.getNpIdx()); + } + + return map; + } + + + /** + * 게시물을 삭제한다. + * + * @param bdSeq 게시물 번호 + * @return HashMap/ seq : 게시물 번호 , result : 성공 - 1, 실패 - 0 + */ + @Transactional + @Override + public HashMap delete(final NoticeVO noticeVO) throws Exception { + + HashMap map = new HashMap(); + int result = 0; + + /* 삭제 후 처리를 위해 데이터 캐싱 */ + NoticeVO delNotice = noticeMapper.selectNotice(noticeVO); + + result = noticeMapper.deleteNotice(delNotice); + + if (result == 1) { + map.put("result", result); + } else { + throw new Exception(); + } + + return map; + } + + @Override + public List selectNoticePopupList() throws Exception { + return noticeMapper.selectNoticePopupList(); + }; + + +} + diff --git a/src/main/java/kcg/imis/notice/vo/NoticeSearchVO.java b/src/main/java/kcg/imis/notice/vo/NoticeSearchVO.java new file mode 100644 index 0000000..c606b24 --- /dev/null +++ b/src/main/java/kcg/imis/notice/vo/NoticeSearchVO.java @@ -0,0 +1,33 @@ +/* + * Copyright 2014 MOPAS(Ministry of Public Administration and Security). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package kcg.imis.notice.vo; + +import kcg.imis.cmmn.bbs.BaseSearchVO; + + +/** + * + * @FileName : NoticeSearchVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 26. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class NoticeSearchVO extends BaseSearchVO { + +} + \ No newline at end of file diff --git a/src/main/java/kcg/imis/notice/vo/NoticeVO.java b/src/main/java/kcg/imis/notice/vo/NoticeVO.java new file mode 100644 index 0000000..3b86473 --- /dev/null +++ b/src/main/java/kcg/imis/notice/vo/NoticeVO.java @@ -0,0 +1,100 @@ +package kcg.imis.notice.vo; + +/** + * + * @FileName : NoticeVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 4. 26. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class NoticeVO { + + private int npIdx; + private String npSubject; + private String npText; + private String npActive; + private String npWidth; + private String npHeight; + private String npStart; + private String npEnd; + private String npRegdate; + private String npWriter; + + private int prevSeq; + private int nextSeq; + public String getNpSubject() { + return npSubject; + } + public void setNpSubject(String npSubject) { + this.npSubject = npSubject; + } + public String getNpText() { + return npText; + } + public void setNpText(String npText) { + this.npText = npText; + } + public String getNpActive() { + return npActive; + } + public void setNpActive(String npActive) { + this.npActive = npActive; + } + public String getNpWidth() { + return npWidth; + } + public void setNpWidth(String npWidth) { + this.npWidth = npWidth; + } + public String getNpHeight() { + return npHeight; + } + public void setNpHeight(String npHeight) { + this.npHeight = npHeight; + } + public String getNpStart() { + return npStart; + } + public void setNpStart(String npStart) { + this.npStart = npStart; + } + public String getNpEnd() { + return npEnd; + } + public void setNpEnd(String npEnd) { + this.npEnd = npEnd; + } + public String getNpRegdate() { + return npRegdate; + } + public void setNpRegdate(String npRegdate) { + this.npRegdate = npRegdate; + } + public String getNpWriter() { + return npWriter; + } + public void setNpWriter(String npWriter) { + this.npWriter = npWriter; + } + public int getPrevSeq() { + return prevSeq; + } + public void setPrevSeq(int prevSeq) { + this.prevSeq = prevSeq; + } + public int getNextSeq() { + return nextSeq; + } + public void setNextSeq(int nextSeq) { + this.nextSeq = nextSeq; + } + public int getNpIdx() { + return npIdx; + } + public void setNpIdx(int npIdx) { + this.npIdx = npIdx; + } + +} diff --git a/src/main/java/kcg/imis/notice/web/NoticeController.java b/src/main/java/kcg/imis/notice/web/NoticeController.java new file mode 100644 index 0000000..74de1a4 --- /dev/null +++ b/src/main/java/kcg/imis/notice/web/NoticeController.java @@ -0,0 +1,382 @@ +package kcg.imis.notice.web; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.notice.service.NoticeService; +import kcg.imis.notice.vo.NoticeSearchVO; +import kcg.imis.notice.vo.NoticeVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * @FileName : BoardController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 21. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : 게시판 컨트롤러 + */ +@Controller +@SessionAttributes(types = NoticeVO.class) +@RequestMapping("/notice") +public class NoticeController { + + /** + * EgovPropertyService - properties값을 가져오는 인터페이스. + **/ + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * Validator - 유효성 검사. + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * NoticeService - 게시판 데이터처리에 관한 인터페이스. + **/ + @Resource(name = "noticeService") + private NoticeService noticeService; + + /** + * 게시판 목록 화면을 반환한다. + * + * @param req + * Request 객체 + * @param searchVO + * 검색, 페이지 정보 객체 + * @param model + * 모델 객체 + * @return 게시판 목록 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/list.do") + public String noticeList(final HttpServletRequest req, @ModelAttribute("searchVO") final NoticeSearchVO searchVO, final Model model) throws Exception { + + try { + /* 페이징 처리 정보 */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + int totSearchCnt = noticeService.selectListCnt(searchVO); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + /* 게시판 리스트 */ + List noticeList = noticeService.selectList(searchVO); + model.addAttribute("resultList", noticeList); + + /* 게시판 상단 페이지 및 게시물 정보 표현을 위한 데이터 */ + int totCnt = noticeService.selectTotalCnt(searchVO); + model.addAttribute("totalCnt", totCnt); + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "notice/noticeList.tiles"; + + } + + /** + * 게시물의 내용을 확인하는 페이지를 반환한다. + * + * @param noticeVO + * 게시판 VO + * @param model + * 모델 객체 + * @return 게시물 조회 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/view.do", method = RequestMethod.GET) + public String noticeView(final NoticeVO noticeVO, final Model model) throws Exception { + + try { + /* 작성자와 조회자가 다른 경우 조회수 증가 */ + NoticeVO notice = noticeService.select(noticeVO); + + /* 게시판 내용 */ + model.addAttribute("noticeVO", notice); + + /* 세션 사용자 정보 */ + model.addAttribute("loginUserVO", UserUtil.getMemberInfo()); + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "notice/noticeView.tiles"; + } + + /** + * 게시물 추가 화면을 반환한다. searchVO + * + * @param model + * 모델 객체 + * @param noticeVO + * 게시판 VO + * @return 게시물 조회 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/addView.do", method = RequestMethod.GET) + public String noticeAddView(final Model model) throws Exception { + + NoticeVO modelAttr = new NoticeVO(); + model.addAttribute("noticeVO", modelAttr); + /* create or modify 플래그 */ + model.addAttribute("registerFlag", "create"); + + return "notice/noticeAdd.tiles"; + + } + + /** + * 게시물을 추가한 후 추가한 게시물 화면으로 이동한다. + * + * @param multiRequest + * multpart타입의 요청 객체 + * @param noticeVO + * 게시물 정보 객체 + * @param bindingResult + * 바인딩 객체 + * @param model + * 모델 객체 + * @param status + * 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/add.do", method = RequestMethod.POST) + public String noticeAdd(@ModelAttribute("noticeVO") final NoticeVO noticeVO, final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + HashMap map = new HashMap(); + + /* 인증된 사용자인지 확인 */ + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + try { + + if (bindingResult.hasErrors()) { + model.addAttribute("noticeVO", noticeVO); + return "notice/noticeAdd.tiles"; + } + + /* 사용자 정보 입력 */ + LoginUserVO user = UserUtil.getMemberInfo(); + noticeVO.setNpWriter(user.getUserid()); + + map = noticeService.insert(noticeVO); + + status.setComplete(); + + int npIdx = (Integer) map.get("npIdx"); + if (npIdx > 0) { + return "redirect:/notice/list.do"; + } + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + } + + return "error/bizError"; + } + + /** + * 게시물을 추가한 후 추가한 게시물 화면으로 이동한다. + * + * @param noticeVO + * 게시판VO 객체 + * @param model + * 모델 객체 + * @return 게시물 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/updateView.do", method = RequestMethod.POST) + public String updateView(final NoticeVO noticeVO, final Model model) throws Exception { + + NoticeVO updateBoard = noticeService.select(noticeVO); + try { + /* 글 작성자와 세션 사용자의 아이디를 비교하여 본인여부를 판단한다 */ + if (updateBoard == null || !UserUtil.isEqualMember(updateBoard.getNpWriter()) && !UserUtil.isSysAdmin()) { + return "redirect:/notice/view.do?npIdx=" + noticeVO.getNpIdx(); + } + + model.addAttribute("noticeVO", updateBoard); + model.addAttribute("registerFlag", "modify"); + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "notice/noticeAdd.tiles"; + + } + + /** + * 게시물을 수정한다. + * + * @param multiRequest + * multpart타입의 요청 객체 + * @param noticeVO + * 게시물 정보 객체 + * @param bindingResult + * 바인딩 객체 + * @param model + * 모델 객체 + * @param status + * 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/update.do", method = RequestMethod.POST) + public String update(final MultipartHttpServletRequest multiRequest, @ModelAttribute("noticeVO") final NoticeVO noticeVO, final BindingResult bindingResult, final Model model, + final SessionStatus status) throws Exception { + + try { + /* 글 작성자와 세션 사용자의 아이디를 비교하여 본인여부를 판단한다 */ + if (!UserUtil.isEqualMember(noticeVO.getNpWriter()) && !UserUtil.isSysAdmin()) { + return "redirect:/notice/view.do?npIdx=" + noticeVO.getNpIdx(); + } + + if (bindingResult.hasErrors()) { + model.addAttribute("noticeVO", noticeVO); + model.addAttribute("registerFlag", "modify"); + return "notice/noticeAdd.tiles"; + } + + HashMap map = new HashMap(); + + map = noticeService.update(noticeVO); + + status.setComplete(); + + int npIdx = (Integer) map.get("npIdx"); + if (npIdx > 0) { + return "redirect:/notice/list.do"; + } + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "redirect:/notice/list.do"; + } + + /** + * 게시물을 삭제한다. + * + * @param noticeVO + * 게시판 VO + * @param model + * 모델 객체 + * @param status + * 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/delete.do", method = RequestMethod.POST) + public String delete(final NoticeVO noticeVO, final Model model, final SessionStatus status) throws Exception { + + try { + if (!UserUtil.isEqualMember(noticeVO.getNpWriter()) && !UserUtil.isSysAdmin()) { + return "redirect:/notice/view.do"; + } + + HashMap map = new HashMap(); + + map = noticeService.delete(noticeVO); + + status.setComplete(); + + if ((Integer) map.get("result") > 0) { + return "redirect:/notice/list.do"; + } + + } catch (Exception e) { + e.printStackTrace(); + return "error/bizError"; + } + + return "redirect:/notice/view.do"; + } + + /** + * 게시물을 삭제한다. + * + * @param bdId + * 삭제할 게시판 ID + * @param deleteBoard + * 모델 객체 + * @param status + * 세선 상태 객체 + * @return 게시물 화면 + * @throws Exception + * 기본 예외 처리 + */ + @RequestMapping(value = "/selectedDelete.do", method = RequestMethod.POST) + public String deleteSelected(@RequestParam("id") final String bdId, final int[] deleteBoard, final SessionStatus status) throws Exception { + /* 관리자만 가능 */ + if (UserUtil.isAdmin()) { + try { + /* + * NoticeVO noticeVO = NoticeVOHandler.getNoticeVO(bdId, 0); if + * (deleteBoard != null) { + * noticeService.selectAndDelete(noticeVO, deleteBoard); } + */ + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + } + return "redirect:/notice/list.do"; + } + + @RequestMapping("/popup.do") + public String loginView(NoticeVO noticeVO, final Model model) throws Exception { + + model.addAttribute("noticeVO", noticeService.select(noticeVO)); + return "notice/noticePop"; + } +} diff --git a/src/main/java/kcg/imis/report/mapper/ReportFileMapper.java b/src/main/java/kcg/imis/report/mapper/ReportFileMapper.java new file mode 100644 index 0000000..4bad7ba --- /dev/null +++ b/src/main/java/kcg/imis/report/mapper/ReportFileMapper.java @@ -0,0 +1,75 @@ +package kcg.imis.report.mapper; + +import java.util.HashMap; + +import kcg.imis.report.vo.ReportFileVO; +import kcg.imis.report.vo.ReportVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : ReportFileMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("reportFileMapper") +public class ReportFileMapper extends EgovAbstractMapper { + + /** + * 파일 정보를 입력한다. + * + * @param fileVO 파일 VO + * @return 1-성공, 0-실패 + */ + public int insertFile(final ReportVO fileVO) { + return update("ReportFile.insert", fileVO); + } + + /** + * 시퀀스에 업로드된 파일 갯수를 갱신한다. + * + * @param map 업로드된 파일 갯수와 시퀀스를 담고있는 맵 + * @return 1-성공, 0-실패 + */ + public int updateFileSeq(final HashMap map) { + return update("ReportFile.updateFileSeq", map); + } + + /** + * 파일 정보를 갱신한다. + * + * @param fileVO 파일 VO + * @return 1-성공, 0-실패 + */ + public int updateFile(final ReportVO fileVO) { + return update("ReportFile.insert", fileVO); + } + + /** + * 파일을 저장할 시퀀스를 반환한다. + * @return 파일 시퀀스 + */ + public ReportFileVO selectFileSeq(Integer fsSeq) { + return selectOne("ReportFile.selectFileSeq", fsSeq); + } + + public int selectMaxFileSeq() { + return selectOne("ReportFile.selectMaxFileSeq"); + } + + /** + * 견문 파일 저장 시퀀스를 증가시킨다. + * @return 시퀀스 + */ + public int insertFileSeq() { + ReportFileVO reportFileVO = new ReportFileVO(); + int result = insert("ReportFile.insertFileSeq", reportFileVO); + return reportFileVO.getFsSeq(); + } + +} diff --git a/src/main/java/kcg/imis/report/mapper/ReportJudgeMapper.java b/src/main/java/kcg/imis/report/mapper/ReportJudgeMapper.java new file mode 100644 index 0000000..78b8e3d --- /dev/null +++ b/src/main/java/kcg/imis/report/mapper/ReportJudgeMapper.java @@ -0,0 +1,210 @@ +package kcg.imis.report.mapper; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.report.vo.ReportJudgeVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.sec.LoginUserVO; + +import org.springframework.stereotype.Repository; + + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +/** + * @FileName : ReportJudgeMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("reportJudgeMapper") +public class ReportJudgeMapper extends EgovAbstractMapper { + + /** + * 평가 정보를 반환한다. + * + * @param juseq 견문 평가 객체 + * @return 평가 + * @throws Exception 기본예외처리 + */ + public ReportJudgeVO selectOne(final int juseq) throws Exception { + return selectOne("ReportJudge.selectOne", juseq); + } + + /** + * 평가명을 반환한다. + * + * @param judgeCode 평가코드 + * @return 평가명 + * @throws Exception 기본예외처리 + */ + public String getJudgeName(final int judgeCode) throws Exception { + return selectOne("ReportJudge.getJudgeName", judgeCode); + } + + /** + * 견문 결재 정보를 반환한다. + * + * @param loginUserVO 접속한 사용자 객체 + * @return 결문 결재 정보 + */ + public MemberVO selectApprove(final String usrLv) { + return selectOne("ReportJudge.selectApprove", usrLv); + } + + /** + * 견문 평가 입력 + * @param reportJudgeVO 견문 평가 객체 + * @return 성공:1 + * @throws Exception 기본예외처리 + */ + public int insert(final ReportJudgeVO reportJudgeVO) throws Exception { + int result = 0; + try { + result = insert("ReportJudge.insert", reportJudgeVO); + } catch (Exception e) { + e.printStackTrace(); + } + return reportJudgeVO.getJuSeq(); + } + + /** + * 견문 평가 수정 + * @param reportJudgeVO 견문 평가 객체 + * @return 성공:1 + * @throws Exception 기본예외처리 + */ + public int update(final ReportJudgeVO reportJudgeVO) throws Exception { + return update("ReportJudge.update", reportJudgeVO); + } + + /** + * 견문의 결재 대기 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 결재 대기 목록 + */ + public List selectWaitList(final ReportSearchVO reportSearchVO) { + return selectList("Report.selectWaitList", reportSearchVO); + } + + /** + * 견문의 결재 대기 전체 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 결재 대기 전체 목록 + */ + public List selectWaitListAll(final ReportSearchVO reportSearchVO) { + return selectList("Report.selectWaitListAll", reportSearchVO); + } + + /** + * 견문의 결재 대기 목록 전체 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색조건 vo + * @return 견문 임시저장목록 결과 갯수 + */ + public int selectWaitListCnt(final ReportSearchVO reportSearchVO) { + return selectOne("Report.selectWaitListCnt", reportSearchVO); + } + + /** + * 견문 처리 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectApproveList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectAprList", reportSearchVO); + } + + /** + * 견문 처리 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 갯수 + * @throws Exception 기본 예외 처리 + */ + public int selectApproveListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return selectOne("Report.selectAprListCnt", reportSearchVO); + } + + /** + * 견문 처리 전체 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 전체 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectApproveListAll(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectAprListAll", reportSearchVO); + } + + /** + * 내 실적 조회 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectMyList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectMyList", reportSearchVO); + } + + /** + * 내 실적 조회 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 목록 갯수 + * @throws Exception 기본 예외 처리 + */ + public int selectMyListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return selectOne("Report.selectMyListCnt", reportSearchVO); + } + + /** + * 내 실적 조회 전체 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 전체 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectMyListAll(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectMyListAll", reportSearchVO); + } + + /** + * 분야별 통계를 조회한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 분야별통계 + * @throws Exception 기본 예외 처리 + */ + public List> statsCategory(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportJudge.statsCategory", reportSearchVO); + } + + public List> selectPlace(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportJudge.selectPlace", reportSearchVO); + } + + /** + * 평가별 통계를 조회한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 평가별통계 + * @throws Exception 기본 예외 처리 + */ + public List> statsJudge(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportJudge.statsJudge", reportSearchVO); + } + +} diff --git a/src/main/java/kcg/imis/report/mapper/ReportMapper.java b/src/main/java/kcg/imis/report/mapper/ReportMapper.java new file mode 100644 index 0000000..84eb734 --- /dev/null +++ b/src/main/java/kcg/imis/report/mapper/ReportMapper.java @@ -0,0 +1,297 @@ +package kcg.imis.report.mapper; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.report.vo.ReportGoalVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + + +/** + * @FileName : ReportMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("reportMapper") +public class ReportMapper extends EgovAbstractMapper { + + /** + * 견문 정보를 반환한다. + * + * @param reportVO 견문vo + * + * @return 견문VO + * @throws Exception 기본 예외 처리 + */ + public ReportVO select(final ReportVO reportVO) throws Exception { + return selectOne("Report.select", reportVO); + } + + /** + * 페이징 처리 없이 견문 전체 목록을 반환한다. + * + * @param reportSearchVO + * 검색정보 객체 + * @return 견문 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectListAll(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectListAll", reportSearchVO); + } + + /** + * 견문정보 총 개수를 반환한다. + * + * @param reportSearchVO + * 검색, 페이지정보 객체 + * @return 견문정보 총 개수 + * @throws Exception + * 기본 예외 처리 + */ + public int selectTotalCnt(final ReportSearchVO reportSearchVO) throws Exception { + return (Integer) selectOne("Report.selectTotalCnt", reportSearchVO); + } + + /** + * 견문 목록를 반환한다. + * + * @param reportSearchVO + * 검색, 페이지정보 객체 + * @return 견문 목록 + * @throws Exception + * 기본 예외 처리 + */ + public List selectList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectList", reportSearchVO); + } + + /** + * 견문 목록 개수를 반환한다. + * + * @param reportSearchVO + * 검색, 페이지정보 객체 + * @return 견문 목록 개수 + * @throws Exception + * 기본 예외 처리 + */ + public int selectListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return (Integer) selectOne("Report.selectListCnt", reportSearchVO); + } + + /** + * 견문 정보를 입력한다. + * + * @param reportVO 견문 VO + * @return 맵 객체 {result: 성공여부, seq: 입력된 레코드의 key 값} + * @throws Exception 기본 예외 처리 + */ + public HashMap insert(final ReportVO reportVO) throws Exception { + HashMap map = new HashMap(); + + int result = 0; + try { + result = insert("Report.insert", reportVO); + + map.put("result", result); + map.put("seq", reportVO.getInSeq()); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + + /** + * 견문 정보를 갱신한다. + * + * @param reportVO + * 견문 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception + * 기본 예외 처리 + */ + public int update(final ReportVO reportVO) throws Exception { + return update("Report.update", reportVO); + } + + /** + * 견문 정보를 삭제한다. + * + * @param reportVO + * 견문 VO + * @return 성공 - 1, 실패 - 0 + * @throws Exception + * 기본 예외 처리 + */ + public int delete(final ReportVO reportVO) throws Exception { + return delete("Report.delete", reportVO); + } + + /** + * 견문의 새 소속번호를 반환한다. + * + * @param reportVO 견문vo + * @return 새 소속번호 + * @throws Exception 기본예외처리 + */ + public int selectPlaceNum(final ReportVO reportVO) { + return selectOne("Report.selectPlaceNum", reportVO); + } + + /** + * 견문의 임시저장목록을 반환한다. + * + * @param reportSearchVO 견문 검색조건 vo + * @return 견문 임시저장목록 + */ + public List selectSaveList(final ReportSearchVO reportSearchVO) { + return selectList("Report.selectSaveList", reportSearchVO); + } + /** + * 견문의 임시저장목록 결과 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색조건 vo + * @return 견문 임시저장목록 결과 갯수 + */ + public int selectSaveListCnt(final ReportSearchVO reportSearchVO) { + return selectOne("Report.selectSaveListCnt", reportSearchVO); + } + + /** + * 견문제출현황을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문제출현황 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectPresentList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectPresentList", reportSearchVO); + } + + /** + * 견문제출현황 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문제출현황 목록 갯수 + * @throws Exception 기본 예외 처리 + */ + public int selectPresentListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return selectOne("Report.selectPresentListCnt", reportSearchVO); + } + + /** + * 견문제출현황 전체목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문제출현황 전체 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectPresentListAll(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectPresentListAll", reportSearchVO); + } + + /** + * 평가기록부을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문제출현황 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectRecordList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectRecordList", reportSearchVO); + } + + /** + * 평가기록부 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 평가기록부 목록 갯수 + * @throws Exception 기본 예외 처리 + */ + public int selectRecordListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return selectOne("Report.selectRecordListCnt", reportSearchVO); + } + + /** + * 평가기록부 전체목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 평가기록부 전체 목록 + * @throws Exception 기본 예외 처리 + */ + public List selectRecordListAll(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("Report.selectRecordListAll", reportSearchVO); + } + + /** + * 목표 관리 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 목표 관리 + * @throws Exception 기본예외처리 + */ + public List selectGoalList(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportGoal.selectList", reportSearchVO); + } + + /** + * 목표 레코드 1개를 조회한다. + * + * @param reportGoalVO 견문 검색 객체 + * @return 목표 레코드 + * @throws Exception 기본예외처리 + */ + public ReportGoalVO selectGoal(final ReportGoalVO reportGoalVO) throws Exception { + return selectOne("ReportGoal.select", reportGoalVO); + } + + /** + * 목표를 입력한다. + * + * @param reportGoalVO 견문 검색 객체 + * @return 목표 레코드 + * @throws Exception 기본예외처리 + */ + public int insertGoal(final ReportGoalVO reportGoalVO) throws Exception { + return insert("ReportGoal.insert", reportGoalVO); + } + /** + * 목표를 수정한다. + * + * @param reportGoalVO 견문 검색 객체 + * @return 목표 레코드 + * @throws Exception 기본예외처리 + */ + public int updateGoal(final ReportGoalVO reportGoalVO) throws Exception { + return update("ReportGoal.update", reportGoalVO); + } + + /** + * 사용자별 목표 통계를 반환한다. + * + * @param reportSearchVO 견문 검색객체 + * @return 목표 통계 + * @throws Exception 기본예외처리 + */ + public List> getGoalStats(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportGoal.getStats", reportSearchVO); + } + + /** + * 소속별 목표 통계를 반환한다. + * + * @param reportSearchVO 견문 검색객체 + * @return 목표 통계 + * @throws Exception 기본예외처리 + */ + public List> getGoalStatsPlace(final ReportSearchVO reportSearchVO) throws Exception { + return selectList("ReportGoal.getStatsPlace", reportSearchVO); + } +} diff --git a/src/main/java/kcg/imis/report/service/ReportFileService.java b/src/main/java/kcg/imis/report/service/ReportFileService.java new file mode 100644 index 0000000..a73272a --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportFileService.java @@ -0,0 +1,52 @@ +package kcg.imis.report.service; + +import java.util.Map; + +import kcg.imis.report.vo.ReportVO; + +import org.springframework.web.multipart.MultipartFile; + +/** + * @FileName : ReportFileService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface ReportFileService { + + /** + * property 파일에서 읽은 저장 경로 키워드. + */ + static final String FILE_PATH_KEYWORD = "Report.fileStorePath"; + + /** + * 견문 파일 시퀀스를 반환한다. + * + * @return 견문 파일 시퀀스 + * @throws Exception 기본예외처리 + */ + int selectFileSeq() throws Exception; + + /** + * 첨부파일정보 입력 및 업로드 + * + * @param dataVO 견문객체 + * @param fileMap 파일맵 + * @return 성공:1, 실패:0 + * @throws Exception 기본예외처리 + */ + int insertAndSaveFiles(final ReportVO dataVO, final Map fileMap) throws Exception; + + /** + * 첨부파일 정보를 삭제하고 디렉토리내의 파일도 삭제한다. + * + * @param dataVO 견문 객체 + * @param deleteFiles 삭제할 첨부파일 순번 + * @return 성공:1, 실패:0 + * @throws Exception 기본예외처리 + */ + int deleteAndRemoveFiles(final ReportVO dataVO, String[] deleteFiles) throws Exception; + +} diff --git a/src/main/java/kcg/imis/report/service/ReportFileServiceImpl.java b/src/main/java/kcg/imis/report/service/ReportFileServiceImpl.java new file mode 100644 index 0000000..b260342 --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportFileServiceImpl.java @@ -0,0 +1,172 @@ +package kcg.imis.report.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.egov.file.EgovFileMngUtil; +import kcg.imis.cmmn.egov.vo.FileVO; +import kcg.imis.report.mapper.ReportFileMapper; +import kcg.imis.report.vo.ReportFileVO; +import kcg.imis.report.vo.ReportVO; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +/** + * @FileName : ReportFileServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Service("reportFileService") +public class ReportFileServiceImpl extends EgovAbstractServiceImpl implements ReportFileService { + + /** + * 견문 파일 시퀀스당 저장될 견문의 최대 갯수 + */ + private static final int SEQCNTLIMIT = 1000; + + /** + * 견문 관련 파일 Mapper 클래스. + */ + @Resource(name = "reportFileMapper") + private ReportFileMapper reportFileMapper; + + /** + * 견문 관련 인터페이스. + */ + @Resource(name = "reportService") + private ReportService reportService; + + /** + * 전자정부프레임워크에서 제공되는 파일 업로드 처리 관련 Utility. + **/ + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Override + public int insertAndSaveFiles(final ReportVO dataVO, final Map fileMap) throws Exception { + int result = 1; + ReportVO originVO = reportService.select(dataVO); + List deleteFiles = new ArrayList(); + + if (fileMap != null) { + + if (dataVO.getInFsseq() <= 0) { + dataVO.setInFsseq(selectFileSeq()); + } + if (dataVO.getInFsseq() <= 0) { + throw new Exception(); + } + + List files = fileUtil.parseFileInf(fileMap, "_", 0, "", FILE_PATH_KEYWORD, String.valueOf(dataVO.getInFsseq())); + + for (FileVO file : files) { + if ("fileObj1".equalsIgnoreCase(file.getFileSn())) { + dataVO.setInFile1(file.getOrignlFileNm()); + dataVO.setInFileName1(file.getStreFileNm()); + if (StringUtils.isNotBlank(originVO.getInFile1())) { + deleteFiles.add("1"); + } + } else if ("fileObj2".equalsIgnoreCase(file.getFileSn())) { + dataVO.setInFile2(file.getOrignlFileNm()); + dataVO.setInFileName2(file.getStreFileNm()); + if (StringUtils.isNotBlank(originVO.getInFile2())) { + deleteFiles.add("2"); + } + } else if ("fileObj3".equalsIgnoreCase(file.getFileSn())) { + dataVO.setInFile3(file.getOrignlFileNm()); + dataVO.setInFileName3(file.getStreFileNm()); + if (StringUtils.isNotBlank(originVO.getInFile3())) { + deleteFiles.add("3"); + } + } + } + if (deleteFiles.size() > 0) { + result = deleteAndRemoveFiles(dataVO, deleteFiles.toArray(new String[deleteFiles.size()])); + } + + result = reportFileMapper.insertFile(dataVO); + if (result != 0) { + HashMap map = new HashMap(); + map.put("cnt", files.size()); + map.put("fsseq", dataVO.getInFsseq()); + result = reportFileMapper.updateFileSeq(map); + } + + if (result == 0) { + throw new Exception(); + } + } + return result; + } + + @Override + public int deleteAndRemoveFiles(final ReportVO dataVO, final String[] deleteFiles) throws Exception { + ReportVO reportVO = reportService.select(dataVO); + String fsSeq = String.valueOf(dataVO.getInFsseq()); + int deletedCnt = 0; + + if (dataVO.getInFsseq() <= 0) { + return 0; + } + + for (String idx : deleteFiles) { + if (idx.equals("1")) { + reportVO.setInFile1(""); + fileUtil.deleteFile(dataVO.getInFile1(), FILE_PATH_KEYWORD, fsSeq); + deletedCnt++; + } + if (idx.equals("2")) { + reportVO.setInFile2(""); + fileUtil.deleteFile(dataVO.getInFile2(), FILE_PATH_KEYWORD, fsSeq); + deletedCnt++; + } + if (idx.equals("3")) { + reportVO.setInFile3(""); + fileUtil.deleteFile(dataVO.getInFile3(), FILE_PATH_KEYWORD, fsSeq); + deletedCnt++; + } + } + + int result = reportFileMapper.updateFile(reportVO); + + if (result > 0) { + HashMap map = new HashMap(); + map.put("cnt", (-deletedCnt)); + map.put("fsseq", fsSeq); + result = reportFileMapper.updateFileSeq(map); + } + + return result; + } + + @Override + public int selectFileSeq() throws Exception { + int result = 0; + + ReportFileVO rptFileVO = reportFileMapper.selectFileSeq(reportFileMapper.selectMaxFileSeq()); + int seq = rptFileVO.getFsSeq(); + int cnt = rptFileVO.getFsFileCount(); + + if (seq == 0 || cnt > SEQCNTLIMIT) { + seq = reportFileMapper.insertFileSeq(); + } + + if (seq > 0) { + result = seq; + } else { + throw new Exception(); + } + return result; + } + +} diff --git a/src/main/java/kcg/imis/report/service/ReportJudgeService.java b/src/main/java/kcg/imis/report/service/ReportJudgeService.java new file mode 100644 index 0000000..a019655 --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportJudgeService.java @@ -0,0 +1,166 @@ +package kcg.imis.report.service; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.report.vo.ReportJudgeVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; + +/** + * @FileName : ReportJudgeService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface ReportJudgeService { + + /** + * 견문 평가 정보를 반환한다. + * + * @param juseq 견문 평가 시퀀스 + * @return 견문 평가 객체 + * @throws Exception 기본예외처리 + */ + ReportJudgeVO selectOne(int juseq) throws Exception; + + /** + * 평가코드명을 반환한다. + * + * @param judgeCode 평가코드 + * @return 평가명 + * @throws Exception 기본예외처리 + */ + String getJudgeStr(int judgeCode) throws Exception; + + /** + * 견문 평가를 입력한다. + * @param reportJudgeVO 견문 평가 객체 + * @return 성공 : 1 + * @throws Exception 기본 예외 처리 + */ + int insert(ReportJudgeVO reportJudgeVO) throws Exception; + + /** + * 견문 평가를 수정한다. + * @param reportJudgeVO 견문 평가 객체 + * @return 성공 : 1 + * @throws Exception 기본 예외 처리 + */ + int update(ReportJudgeVO reportJudgeVO) throws Exception; + + + /** + * 견문 결재 정보를 반환한다. + * @return 견문 결재 정보 + * @throws Exception 기본예외처리 + */ + MemberVO selectApprove() throws Exception; + + /** + * 견문을 결재한다. + * + * @param reportVO 견문 객체 + * @return 성공:1 + * @throws Exception 기본예외처리 + */ + HashMap approve(ReportVO reportVO) throws Exception; + + /** + * 견문 처리 목록 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 목록 + */ + List selectWaitList(ReportSearchVO reportSearchVO); + /** + * 견문 처리 목록 전체 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 전체 목록 + */ + List selectWaitListAll(ReportSearchVO reportSearchVO); + /** + * 견문 처리 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 내 실적 조회 목록 갯수 + */ + int selectWaitListCnt(ReportSearchVO reportSearchVO); + + /** + * 견문 처리 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 + * @throws Exception 기본예외처리 + */ + List selectApproveList(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 견문 처리 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 갯수 + * @throws Exception 기본예외처리 + */ + int selectApproveListCnt(final ReportSearchVO reportSearchVO) throws Exception; + + /** + * 견문 처리 전체 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 + * @throws Exception 기본예외처리 + */ + List selectApproveListAll(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 내 실적 조회 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 + * @throws Exception 기본예외처리 + */ + List selectMyList(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 내 실적 조회 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 갯수 + * @throws Exception 기본예외처리 + */ + int selectMyListCnt(final ReportSearchVO reportSearchVO) throws Exception; + + /** + * 내 실적 조회 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 견문 처리 목록 + * @throws Exception 기본예외처리 + */ + List selectMyListAll(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 분야별 통계를 조회한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 분야별통계 + * @throws Exception 기본예외처리 + */ + List> statsCategory(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 평가별 통계를 조회한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 평가별통계 + * @throws Exception 기본예외처리 + */ + List> statsJudge(ReportSearchVO reportSearchVO) throws Exception; +} diff --git a/src/main/java/kcg/imis/report/service/ReportJudgeServiceImpl.java b/src/main/java/kcg/imis/report/service/ReportJudgeServiceImpl.java new file mode 100644 index 0000000..086e5a8 --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportJudgeServiceImpl.java @@ -0,0 +1,414 @@ +package kcg.imis.report.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +import javax.annotation.Resource; + +import kcg.imis.member.vo.MemberVO; +import kcg.imis.report.mapper.ReportJudgeMapper; +import kcg.imis.report.vo.ReportJudgeVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.report.web.ReportCommon; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +/** + * @FileName : ReportJudgeServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Service("reportJudgeService") +public class ReportJudgeServiceImpl extends EgovAbstractServiceImpl implements ReportJudgeService { + + /** + * 견문 관련 인터페이스 + */ + @Resource(name = "reportService") + private ReportService reportService; + + /** + * 견문 평가 맵퍼 + */ + @Resource(name = "reportJudgeMapper") + private ReportJudgeMapper reportJudgeMapper; + + + /** + * 견문 평가 정보를 반환한다. + */ + @Override + public ReportJudgeVO selectOne(final int juseq) throws Exception { + return reportJudgeMapper.selectOne(juseq); + } + + @Override + public String getJudgeStr(final int judgeCode) throws Exception { + return reportJudgeMapper.getJudgeName(judgeCode); + } + + @Override + public int insert(final ReportJudgeVO reportJudgeVO) throws Exception { + return reportJudgeMapper.insert(reportJudgeVO); + } + + + @Override + public MemberVO selectApprove() throws Exception { + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + int myDutiesCode = ReportCommon.getDutiesCodeForApprove(loginUserVO.getDuties()); + String usrLv = ""; + if(myDutiesCode == 2 ) usrLv = "4"; + if(myDutiesCode == 3 ) usrLv = "3"; + return reportJudgeMapper.selectApprove(usrLv); + } + + @Override + public HashMap approve(final ReportVO reportVO) throws Exception { + HashMap map = new HashMap(); + String errorMsg = ""; + try { + List list = new ArrayList(); + if (reportVO.getReportList() == null && reportVO.getInSeq() > 0) { + list.add(0, reportVO); + } else if (reportVO.getReportList() != null && reportVO.getReportList().size() > 0) { + list = reportVO.getReportList(); + } else { + map.put("result", -1); + map.put("msg", "결재할 견문이 없습니다."); + return map; + } + + + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + int myGroupCode = ReportCommon.getMyGroupCode(); + int myDutiesCode = ReportCommon.getDutiesCodeForApprove(loginUserVO.getDuties()); + + MemberVO reportApproveVO = selectApprove(); + + if (myDutiesCode == 2 && reportApproveVO == null) { + map.put("result", -1); + map.put("msg", "국제법규정보팀장 정보가 없습니다. 권한 설정에서 계장을 선택하십시오."); + return map; + } else if (reportApproveVO == null && myDutiesCode == 3) { + map.put("result", -1); + map.put("msg", "국제법규정보담당관 정보가 없습니다. 권한 설정에서 과장을 선택하십시오."); + return map; + } + + // 견문 평가 객체를 생성한다. + ReportJudgeVO reportJudgeVO = new ReportJudgeVO(); + reportJudgeVO.setJuGroupCode(myGroupCode); + reportJudgeVO.setJuPlace1(reportApproveVO.getPlace1Str()); + reportJudgeVO.setJuPlace2(reportApproveVO.getPlace2Str()); + reportJudgeVO.setJuDuty(reportApproveVO.getDutyStr()); + reportJudgeVO.setJuName(reportApproveVO.getName()); + reportJudgeVO.setJuUserid(reportApproveVO.getUserid()); + reportJudgeVO.setJuProxyId(loginUserVO.getUserid()); + reportJudgeVO.setJuDutyCode(String.valueOf(myDutiesCode)); + + int cnt = 1; + int mgcHead = 0; + int mgcSection = 0; + ReportVO tempVO = new ReportVO(); + for (ReportVO vo : list) { + if (vo.getInSeq() <= 0) { + continue; + } + tempVO = reportService.select(vo); + + if (StringUtils.isNotBlank(vo.getInStateCode())) { + tempVO.setInCategory1(vo.getInCategory1()); + tempVO.setInCategory2(vo.getInCategory2()); + tempVO.setInSubject(vo.getInSubject()); + + String infoDate = vo.getStrInfodate().toString(); + tempVO.setInInfoYear(Integer.valueOf(infoDate.split("-")[0])); + tempVO.setInInfoMonth(Integer.valueOf(infoDate.split("-")[1])); + tempVO.setInInfoDay(Integer.valueOf(infoDate.split("-")[2])); + + tempVO.setInStateCode(vo.getInStateCode()); + } + + if (vo.getInJudge() > 0) { + tempVO.setInJudge(vo.getInJudge()); + } + + tempVO.setJuMsg(vo.getJuMsg()); + + if (tempVO.equals(null)) { + errorMsg += String.valueOf(cnt) + "번째 견문은 이미 삭제된 견문입니다.\n"; + continue; + } else { + + mgcHead = tempVO.getInJuseqHead(); + mgcSection = tempVO.getInJuseqSection(); + + + if (mgcHead > 0 && mgcSection > 0) { + errorMsg += String.valueOf(cnt) + "번째 견문은 이미 결재된 견문입니다.\n"; + continue; + } + if (myDutiesCode == 2 && mgcSection > 0) { + errorMsg += String.valueOf(cnt) + "번째 견문은 이미 결재된 견문입니다.\n"; + continue; + } + if (myDutiesCode == 3 && mgcHead > 0) { + errorMsg += String.valueOf(cnt) + "번째 견문은 이미 결재된 견문입니다.\n"; + continue; + } + } + String postState = ""; + if ((myDutiesCode == 2 && mgcHead > 0) || (myDutiesCode == 3 && mgcSection > 0) || loginUserVO.getAuthProxyHead() > 0) { + postState = "4"; + } else { + postState = String.valueOf(myDutiesCode); + } + + // 상태코드 설정 + String newStateCode = String.valueOf(myGroupCode) + postState; + + tempVO.setInStateCode(newStateCode); + if (Character.getNumericValue(newStateCode.charAt(1)) == 4) { + tempVO.setInComplete("1"); + } + + // 견문 평가 객체를 생성한다. + reportJudgeVO.setJuInseq(vo.getInSeq()); + reportJudgeVO.setJuJudge(vo.getInJudge()); + reportJudgeVO.setJuMessage(tempVO.getJuMsg()); + + /** + * 견문 결제 + */ + int juSeq = insert(reportJudgeVO); + + if (myDutiesCode == 2) { + tempVO.setInJuseqSection(juSeq); + + } else { + tempVO.setInJudge(vo.getInJudge()); + tempVO.setInJuseqHead(juSeq); + } + + HashMap result = reportService.update(tempVO, null, null); + + if (Integer.parseInt(result.get("result").toString()) > 0) { + errorMsg = ""; + } + + cnt++; + } + } catch (Exception e) { + e.printStackTrace(); + } + + map.put("msg", errorMsg); + + return map; + } + + @Override + public int update(final ReportJudgeVO reportJudgeVO) throws Exception { + return reportJudgeMapper.update(reportJudgeVO); + } + + @Override + public List selectWaitList(final ReportSearchVO reportSearchVO) { + return reportJudgeMapper.selectWaitList(reportSearchVO); + } + + @Override + public List selectWaitListAll(final ReportSearchVO reportSearchVO) { + return reportJudgeMapper.selectWaitListAll(reportSearchVO); + } + + @Override + public int selectWaitListCnt(final ReportSearchVO reportSearchVO) { + return reportJudgeMapper.selectWaitListCnt(reportSearchVO); + } + + @Override + public List selectApproveList(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectApproveList(reportSearchVO); + } + + @Override + public int selectApproveListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectApproveListCnt(reportSearchVO); + } + + @Override + public List selectApproveListAll(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectApproveListAll(reportSearchVO); + } + + @Override + public List selectMyList(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectMyList(reportSearchVO); + } + + @Override + public int selectMyListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectMyListCnt(reportSearchVO); + } + + @Override + public List selectMyListAll(final ReportSearchVO reportSearchVO) throws Exception { + return reportJudgeMapper.selectMyListAll(reportSearchVO); + } + + + @Override + public List> statsCategory(ReportSearchVO reportSearchVO) throws Exception { + reportSearchVO.setCategoryType(1); + List> cateList1 = reportJudgeMapper.statsCategory(reportSearchVO); + reportSearchVO.setCategoryType(2); + List> cateList2= reportJudgeMapper.statsCategory(reportSearchVO); + List> placeList= reportJudgeMapper.selectPlace(reportSearchVO); + + for(HashMap place : placeList){ + String name = (String)place.get("PLACE"); + for(HashMap cateMap : cateList1){ + if(name.equals((String)cateMap.get("IN_PLACE"))){ + place.put(cateMap.get("IN_CATEGORY1") + "_1", String.valueOf(cateMap.get("CNT"))); + } + } + + for(HashMap cateMap : cateList2){ + if(name.equals((String)cateMap.get("IN_PLACE"))){ + place.put(cateMap.get("IN_CATEGORY2") + "_2", String.valueOf(cateMap.get("CNT"))); + } + } + } + + for(HashMap place : placeList) { + int total = 0; + for (String mapKey : place.keySet()) { + if(!"PLACE_NAME".equals(mapKey) && !"PLACE".equals(mapKey)){ + total += Integer.parseInt(place.get(mapKey)); } + } + place.put("TOTAL", String.valueOf(total)); + } + + for(HashMap place : placeList) { + for(String cate : reportSearchVO.getCategory1()){ + String key = cate + "_1"; + if(place.get(key) == null){ + place.put(key, "0"); + } + } + for(String cate : reportSearchVO.getCategory2()){ + if(place.get(cate + "_2") == null){ + place.put(cate + "_2", "0"); + } + } + } + + if (placeList.size() > 0) { + HashMap totalMap = new HashMap(); + totalMap.put("PLACE_NAME", "누계"); + + for (String key : placeList.get(0).keySet()) { + if (key.equals("PLACE_NAME") || key.equals("PLACE")) { + continue; + } + int tt = 0; + for (HashMap hashMap : placeList) { + tt = tt + Integer.parseInt(hashMap.get(key)); + } + totalMap.put(key, String.valueOf(tt)); + } + + placeList.add(placeList.size(), totalMap); + } + + return placeList; + } + + + + @Override + public List> statsJudge(final ReportSearchVO reportSearchVO) throws Exception { + reportSearchVO.setCategoryType(3); + List> cateList1 = reportJudgeMapper.statsCategory(reportSearchVO); + + List> placeList= reportJudgeMapper.selectPlace(reportSearchVO); + + for(HashMap place : placeList){ + String name = (String)place.get("PLACE"); + for(HashMap cateMap : cateList1){ + if(name.equals((String)cateMap.get("IN_PLACE"))){ + place.put("C0" + String.valueOf(cateMap.get("IN_JUDGE")), String.valueOf(cateMap.get("CNT"))); + } + } + + } + + + for(HashMap place : placeList) { + int total = 0; + for (String mapKey : place.keySet()) { + if(!"PLACE_NAME".equals(mapKey) && !"PLACE".equals(mapKey)){ + total += Integer.parseInt(place.get(mapKey)); } + } + place.put("TOTAL", String.valueOf(total)); + } + for(HashMap place : placeList) { + for(String cate : reportSearchVO.getJudges()){ + String key = "C" + cate; + if(place.get(key) == null){ + place.put(key, "0"); + } + } + } + + for(HashMap place : placeList) { + int ju1 = Integer.parseInt(place.get("C01")); + int ju2 = Integer.parseInt(place.get("C02")); + int ju3 = Integer.parseInt(place.get("C03")); + int ju4 = Integer.parseInt(place.get("C04")); + int ju5 = Integer.parseInt(place.get("C05")); + int ju6 = Integer.parseInt(place.get("C06")); + int ju7 = Integer.parseInt(place.get("C07")); + + place.put("AG", String.valueOf(ju1 + ju2)); + place.put("BG", String.valueOf(ju3 + ju4)); + place.put("CG", String.valueOf(ju5 + ju6)); + place.put("DG", String.valueOf(ju7)); + } + + if (placeList.size() > 0) { + HashMap totalMap = new HashMap(); + totalMap.put("PLACE_NAME", "누계"); + + for (String key : placeList.get(0).keySet()) { + if (key.equals("PLACE_NAME") || key.equals("PLACE")) { + continue; + } + int tt = 0; + for (HashMap hashMap : placeList) { + tt = tt + Integer.parseInt(hashMap.get(key)); + } + totalMap.put(key, String.valueOf(tt)); + } + + placeList.add(placeList.size(), totalMap); + } + + return placeList; + } + +} diff --git a/src/main/java/kcg/imis/report/service/ReportService.java b/src/main/java/kcg/imis/report/service/ReportService.java new file mode 100644 index 0000000..03d74c8 --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportService.java @@ -0,0 +1,140 @@ +package kcg.imis.report.service; + +import java.util.HashMap; +import java.util.List; + +import kcg.imis.cmmn.bbs.BaseBbsService; +import kcg.imis.report.vo.ReportGoalVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; + +/** + * @FileName : ReportService.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public interface ReportService extends BaseBbsService { + + /** + * 견문의 새 소속번호를 반환한다. + * + * @param reportVO 견문정보 + * @return 소속번호 + * @throws Exception 기본예외처리 + */ + int selectPlaceNum(ReportVO reportVO); + + /** + * 견문의 임시저장목록을 반환한다. + * + * @param reportSearchVO 견문 검색조건 vo + * @return 견문 임시저장목록 + */ + List selectSaveList(ReportSearchVO reportSearchVO); + + /** + * 견문 임시저장목록 결과 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색조건 vo + * @return 견문 임시저장목록 개숫 + */ + int selectSaveListCnt(ReportSearchVO reportSearchVO); + + /** + * 선택된 견문을 삭제한다. + * + * @param selectedSeq 선택된 견문 시퀀스 리스트 + * @return 성공-1,실패-0 + * @throws Exception 기본 예외 처리 + */ + int deleteSelected(String[] selectedSeq) throws Exception; + + /** + * 견문제출현황 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 견문제출현황 목록 + * @throws Exception 기본예외처리 + */ + List selectPresentList(ReportSearchVO reportSearchVO) throws Exception; + /** + * 견문제출현황 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 견문제출현황 목록갯수 + * @throws Exception 기본예외처리 + */ + int selectPresentListCnt(ReportSearchVO reportSearchVO) throws Exception; + /** + * 견문제출현황 전체목록을 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 견문제출현황 전체목록 + * @throws Exception 기본예외처리 + */ + List selectPresentListAll(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 평가기록부를 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 평가기록부 목록 + * @throws Exception 기본예외처리 + */ + List selectRecordList(ReportSearchVO reportSearchVO) throws Exception; + /** + * 평가기록부 목록 갯수를 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 평가기록부 목록갯수 + * @throws Exception 기본예외처리 + */ + int selectRecordListCnt(ReportSearchVO reportSearchVO) throws Exception; + /** + * 평가기록부 전체목록을 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 평가기록부 전체목록 + * @throws Exception 기본예외처리 + */ + List selectRecordListAll(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 목표 관리 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @return 목표 관리 + * @throws Exception 기본예외처리 + */ + List selectGoalList(ReportSearchVO reportSearchVO) throws Exception; + + /** + * 목표를 입력하고 수정한다. + * + * @param reportGoalVO 입력 및 수정 작업을 할 목표 객체 목록 + * @return 성공:1, 실패:0 + * @throws Exception 기본예외처리 + */ + int updateGoal(ReportGoalVO reportGoalVO) throws Exception; + + /** + * 사용자별 목표 통계를 반환한다. + * + * @param reportSearchVO 견문 검색객체 + * @return 목표 통계 + * @throws Exception 기본예외처리 + */ + List> getGoalStats(final ReportSearchVO reportSearchVO) throws Exception; + + /** + * 소속별 목표 통계를 반환한다. + * + * @param reportSearchVO 견문 검색객체 + * @return 목표 통계 + * @throws Exception 기본예외처리 + */ + List> getGoalStatsPlace(final ReportSearchVO reportSearchVO) throws Exception; +} diff --git a/src/main/java/kcg/imis/report/service/ReportServiceImpl.java b/src/main/java/kcg/imis/report/service/ReportServiceImpl.java new file mode 100644 index 0000000..855f8bb --- /dev/null +++ b/src/main/java/kcg/imis/report/service/ReportServiceImpl.java @@ -0,0 +1,255 @@ +package kcg.imis.report.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import kcg.imis.cmmn.egov.file.EgovFileMngUtil; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.report.mapper.ReportMapper; +import kcg.imis.report.vo.ReportGoalVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +/** + * @FileName : ReportServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Service("reportService") +public class ReportServiceImpl extends EgovAbstractServiceImpl implements ReportService { + + /** + * 견문 Mapper 클래스. + */ + @Resource(name = "reportMapper") + private ReportMapper reportMapper; + + /** + * 첨부파일 관련 Service 클래스. + */ + @Resource(name = "reportFileService") + private ReportFileService reportFileService; + + /** + * 코드 관련 Service 클래스. + */ + @Resource(name = "codeService") + private CodeService codeService; + + /** + * 전자정부프레임워크에서 제공되는 파일 업로드 처리 관련 Utility. + **/ + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Override + public ReportVO select(final ReportVO dataVO) throws Exception { + return reportMapper.select(dataVO); + } + + @Override + public List selectListAll(final ReportSearchVO searchVO) throws Exception { + return reportMapper.selectListAll(searchVO); + } + + @Override + public int selectTotalCnt(final ReportSearchVO searchVO) throws Exception { + return reportMapper.selectTotalCnt(searchVO); + } + + @Override + public List selectList(final ReportSearchVO searchVO) throws Exception { + return reportMapper.selectList(searchVO); + } + + @Override + public int selectListCnt(final ReportSearchVO searchVO) throws Exception { + return reportMapper.selectListCnt(searchVO); + } + + @Override + @Transactional + public HashMap insert(final ReportVO dataVO, final Map fileMap) throws Exception { + HashMap map = new HashMap(); + map.put("result", 0); + map.put("seq", -1); + + /* seq 및 insert 결과 */ + + map = reportMapper.insert(dataVO); + int seq = (Integer) map.get("seq"); + int result = (Integer) map.get("result"); + + if (result == 1) { + ReportVO fileVO = new ReportVO(); + fileVO.setInSeq(dataVO.getInSeq()); + int fileProcResult = 0; + fileProcResult = reportFileService.insertAndSaveFiles(fileVO, fileMap); + + if (fileProcResult == 1) { + map.put("result", 1); + map.put("seq", seq); + } else { + throw new Exception(); + } + } else { + throw new Exception(); + } + + return map; + } + + @Override + public HashMap update(final ReportVO dataVO, + final Map fileMap, final String[] deleteFiles) throws Exception { + ReportVO vo = select(dataVO); + + /*20210222 최형석 견문 수정시 파일이름을 기존 파일명으로 가져온다.*/ + dataVO.setInFile1(vo.getInFile1()); + dataVO.setInFile2(vo.getInFile2()); + dataVO.setInFile3(vo.getInFile3()); + +// dataVO.setInFile1(vo.getInFileName1()); +// dataVO.setInFile2(vo.getInFileName2()); +// dataVO.setInFile3(vo.getInFileName3()); + + reportFileService.insertAndSaveFiles(dataVO, fileMap); + if (deleteFiles != null) { + reportFileService.deleteAndRemoveFiles(vo, deleteFiles); + } + + HashMap map = new HashMap(); + map.put("result", reportMapper.update(dataVO)); + map.put("seq", dataVO.getInSeq()); + + return map; + } + + @Override + public HashMap delete(final ReportVO dataVO) throws Exception { + ReportVO vo = select(dataVO); + HashMap map = new HashMap(); + + + String[] delFiles = {"1", "2", "3"}; + int result = reportFileService.deleteAndRemoveFiles(vo, delFiles); + result = reportMapper.delete(dataVO); + + map.put("result", result); + + return map; + } + + @Override + public int selectPlaceNum(final ReportVO reportVO) { + return reportMapper.selectPlaceNum(reportVO); + } + + @Override + public List selectSaveList(final ReportSearchVO reportSearchVO) { + return reportMapper.selectSaveList(reportSearchVO); + } + + @Override + public int selectSaveListCnt(final ReportSearchVO reportSearchVO) { + return reportMapper.selectSaveListCnt(reportSearchVO); + } + + @Override + @Transactional + public int deleteSelected(final String[] selectedSeq) throws Exception { + int result = 1; + HashMap map = new HashMap(); + + ReportVO reportVO = new ReportVO(); + for (int i = 0; i < selectedSeq.length; i++) { + reportVO.setInSeq(Integer.parseInt(selectedSeq[i])); + map = delete(reportVO); + if ("0".equals(String.valueOf(map.get("result")))) { + throw new Exception(); + } + } + + return result; + } + + @Override + public List selectPresentList(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectPresentList(reportSearchVO); + } + + @Override + public int selectPresentListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectPresentListCnt(reportSearchVO); + } + + @Override + public List selectPresentListAll(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectPresentListAll(reportSearchVO); + } + + @Override + public List selectRecordList(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectRecordList(reportSearchVO); + } + + @Override + public int selectRecordListCnt(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectRecordListCnt(reportSearchVO); + } + + @Override + public List selectRecordListAll(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectRecordListAll(reportSearchVO); + } + + @Override + public List selectGoalList(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.selectGoalList(reportSearchVO); + } + + @Override + public int updateGoal(final ReportGoalVO reportGoalVO) throws Exception { + int result = 0; + + for (ReportGoalVO vo : reportGoalVO.getReportGoalList()) { + vo.setGoPlace1(reportGoalVO.getGoPlace1()); + vo.setGoYear(reportGoalVO.getGoYear()); + vo.setGoMonth(reportGoalVO.getGoMonth()); + + try { + ReportGoalVO originalVO = reportMapper.selectGoal(vo); + if (originalVO == null) { + result = reportMapper.insertGoal(vo); + } else { + result = reportMapper.updateGoal(vo); + } + } catch (Exception e) { + new Exception(); + } + } + return result; + } + + @Override + public List> getGoalStats(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.getGoalStats(reportSearchVO); + } + + @Override + public List> getGoalStatsPlace(final ReportSearchVO reportSearchVO) throws Exception { + return reportMapper.getGoalStatsPlace(reportSearchVO); + } +} diff --git a/src/main/java/kcg/imis/report/vo/ReportApproveVO.java b/src/main/java/kcg/imis/report/vo/ReportApproveVO.java new file mode 100644 index 0000000..3470c21 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportApproveVO.java @@ -0,0 +1,81 @@ +package kcg.imis.report.vo; + +/** + * @FileName : ReportApproveVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportApproveVO { + + /** + * 소속 + */ + private String apPlace1; + /** + * 결재 과장 id + */ + private String apSectionId; + /** + * 계장 id + */ + private String apHeadId; + /** + * 소속명 + */ + private String place1Str; + /** + * 소속2명 + */ + private String place2Str; + /** + * 직급명 + */ + private String positionStr; + + public String getApPlace1() { + return apPlace1; + } + public void setApPlace1(String apPlace1) { + this.apPlace1 = apPlace1; + } + public String getApSectionId() { + return apSectionId; + } + public void setApSectionId(String apSectionId) { + this.apSectionId = apSectionId; + } + public String getApHeadId() { + return apHeadId; + } + public void setApHeadId(String apHeadId) { + this.apHeadId = apHeadId; + } + public String getPlace1Str() { + return place1Str; + } + public void setPlace1Str(String place1Str) { + this.place1Str = place1Str; + } + public String getPlace2Str() { + return place2Str; + } + public void setPlace2Str(String place2Str) { + this.place2Str = place2Str; + } + public String getPositionStr() { + return positionStr; + } + public void setPositionStr(String positionStr) { + this.positionStr = positionStr; + } + @Override + public String toString() { + return "ReportApproveVO [apPlace1=" + apPlace1 + ", apSectionId=" + + apSectionId + ", apHeadId=" + apHeadId + ", place1Str=" + + place1Str + ", place2Str=" + place2Str + ", positionStr=" + + positionStr + "]"; + } +} diff --git a/src/main/java/kcg/imis/report/vo/ReportCategoryVO.java b/src/main/java/kcg/imis/report/vo/ReportCategoryVO.java new file mode 100644 index 0000000..b056bc6 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportCategoryVO.java @@ -0,0 +1,65 @@ +package kcg.imis.report.vo; + +/** + * @FileName : ReportCategoryVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportCategoryVO { + + /** + * 분류 구분 + */ + private int type; + /** + * 분류 코드 + */ + private String code; + /** + * 분류명 + */ + private String name; + /** + * @return the type + */ + public int getType() { + return type; + } + /** + * @param type the type to set + */ + public void setType(final int type) { + this.type = type; + } + /** + * @return the code + */ + public String getCode() { + return code; + } + /** + * @param code the code to set + */ + public void setCode(final String code) { + this.code = code; + } + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(final String name) { + this.name = name; + } + @Override + public String toString() { + return "ReportCategoryVO [code=" + code + ", name=" + name + "]"; + } +} diff --git a/src/main/java/kcg/imis/report/vo/ReportFileVO.java b/src/main/java/kcg/imis/report/vo/ReportFileVO.java new file mode 100644 index 0000000..7a8e047 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportFileVO.java @@ -0,0 +1,43 @@ +package kcg.imis.report.vo; + +import kcg.imis.cmmn.bbs.BaseFileVO; + + +/** + * @FileName : ReportFileVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportFileVO extends BaseFileVO { + + /** + * 파일 시퀀스 + */ + private int fsSeq; + + /** + * 시퀀스에 저장된 파일 갯수 + */ + private int fsFileCount; + + public int getFsSeq() { + return fsSeq; + } + + public void setFsSeq(int fsSeq) { + this.fsSeq = fsSeq; + } + + public int getFsFileCount() { + return fsFileCount; + } + + public void setFsFileCount(int fsFileCount) { + this.fsFileCount = fsFileCount; + } + + +} diff --git a/src/main/java/kcg/imis/report/vo/ReportGoalVO.java b/src/main/java/kcg/imis/report/vo/ReportGoalVO.java new file mode 100644 index 0000000..011e250 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportGoalVO.java @@ -0,0 +1,143 @@ +package kcg.imis.report.vo; + +import java.util.List; + +/** + * @FileName : ReportGoalVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportGoalVO { + /** + * 순번 + */ + private int rn; + /** + * 년 + */ + private int goYear; + /** + * 월 + */ + private int goMonth; + /** + * 소속 + */ + private String goPlace1; + /** + * 외사경찰id + */ + private String goId; + /** + * 전종요원 + */ + private int goGoal1; + /** + * 대외협력 + */ + private int goGoal2; + /** + * 정보협력 + */ + private int goGoal3; + /** + * 신고요원 + */ + private int goGoal4; + /** + * 계 + */ + private int goTotal; + /** + * 목표 관리 목록 + */ + private List reportGoalList; + /** + * 외사경찰이름 + */ + private String name; + + public int getRn() { + return rn; + } + public void setRn(int rn) { + this.rn = rn; + } + public int getGoYear() { + return goYear; + } + public void setGoYear(int goYear) { + this.goYear = goYear; + } + public int getGoMonth() { + return goMonth; + } + public void setGoMonth(int goMonth) { + this.goMonth = goMonth; + } + public String getGoPlace1() { + return goPlace1; + } + public void setGoPlace1(String goPlace1) { + this.goPlace1 = goPlace1; + } + public String getGoId() { + return goId; + } + public void setGoId(String goId) { + this.goId = goId; + } + public int getGoGoal1() { + return goGoal1; + } + public void setGoGoal1(int goGoal1) { + this.goGoal1 = goGoal1; + } + public int getGoGoal2() { + return goGoal2; + } + public void setGoGoal2(int goGoal2) { + this.goGoal2 = goGoal2; + } + public int getGoGoal3() { + return goGoal3; + } + public void setGoGoal3(int goGoal3) { + this.goGoal3 = goGoal3; + } + public int getGoGoal4() { + return goGoal4; + } + public void setGoGoal4(int goGoal4) { + this.goGoal4 = goGoal4; + } + public int getGoTotal() { + return goTotal; + } + public void setGoTotal(int goTotal) { + this.goTotal = goTotal; + } + public List getReportGoalList() { + return reportGoalList; + } + public void setReportGoalList(List reportGoalList) { + this.reportGoalList = reportGoalList; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + @Override + public String toString() { + return "ReportGoalVO [goYear=" + goYear + ", goMonth=" + goMonth + + ", goPlace1=" + goPlace1 + ", goId=" + goId + ", goGoal1=" + + goGoal1 + ", goGoal2=" + goGoal2 + ", goGoal3=" + goGoal3 + + ", goGoal4=" + goGoal4 + ", goTotal=" + goTotal + + ", reportGoalList=" + reportGoalList + ", name=" + name + "]"; + } +} diff --git a/src/main/java/kcg/imis/report/vo/ReportJudgeVO.java b/src/main/java/kcg/imis/report/vo/ReportJudgeVO.java new file mode 100644 index 0000000..7ccc95a --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportJudgeVO.java @@ -0,0 +1,155 @@ +package kcg.imis.report.vo; + + +/** + * @FileName : ReportJudgeVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportJudgeVO { + /** + * 평가 시퀀스 + */ + private int juSeq; + /** + * 견문 시퀀스 + */ + private int juInseq; + /** + * 평가 날짜 + */ + private java.sql.Date juChkdate; + /** + * 판단코드 + */ + private int juJudge; + /** + * 결재자의 소속1명 + */ + private String juPlace1; + /** + * 결재자의 소속2명 + */ + private String juPlace2; + /** + * 결재자의 직급 + */ + private String juDuty; + + /** + * 결재자의 직급 + */ + private String juDutyCode; + + /** + * 결재자의 이름 + */ + private String juName; + /** + * 결재자의 아이디 + */ + private String juUserid; + /** + * 결재 대리자 아이디 + */ + private String juProxyId; + /** + * 검토의견 + */ + private String juMessage; + /** + * 직급명 + */ + private String juPositionStr; + + private int juGroupCode; + + public int getJuSeq() { + return juSeq; + } + public void setJuSeq(int juSeq) { + this.juSeq = juSeq; + } + public int getJuInseq() { + return juInseq; + } + public void setJuInseq(int juInseq) { + this.juInseq = juInseq; + } + public java.sql.Date getJuChkdate() { + return juChkdate; + } + public void setJuChkdate(java.sql.Date juChkdate) { + this.juChkdate = juChkdate; + } + public int getJuJudge() { + return juJudge; + } + public void setJuJudge(int juJudge) { + this.juJudge = juJudge; + } + public String getJuPlace1() { + return juPlace1; + } + public void setJuPlace1(String juPlace1) { + this.juPlace1 = juPlace1; + } + public String getJuPlace2() { + return juPlace2; + } + public void setJuPlace2(String juPlace2) { + this.juPlace2 = juPlace2; + } + public String getJuName() { + return juName; + } + public void setJuName(String juName) { + this.juName = juName; + } + public String getJuUserid() { + return juUserid; + } + public void setJuUserid(String juUserid) { + this.juUserid = juUserid; + } + public String getJuProxyId() { + return juProxyId; + } + public void setJuProxyId(String juProxyId) { + this.juProxyId = juProxyId; + } + public String getJuMessage() { + return juMessage; + } + public void setJuMessage(String juMessage) { + this.juMessage = juMessage; + } + public String getJuPositionStr() { + return juPositionStr; + } + public void setJuPositionStr(String juPositionStr) { + this.juPositionStr = juPositionStr; + } + public String getJuDuty() { + return juDuty; + } + public void setJuDuty(String juDuty) { + this.juDuty = juDuty; + } + public String getJuDutyCode() { + return juDutyCode; + } + public void setJuDutyCode(String juDutyCode) { + this.juDutyCode = juDutyCode; + } + public int getJuGroupCode() { + return juGroupCode; + } + public void setJuGroupCode(int juGroupCode) { + this.juGroupCode = juGroupCode; + } + +} diff --git a/src/main/java/kcg/imis/report/vo/ReportSearchVO.java b/src/main/java/kcg/imis/report/vo/ReportSearchVO.java new file mode 100644 index 0000000..2e69115 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportSearchVO.java @@ -0,0 +1,425 @@ +package kcg.imis.report.vo; + +import java.util.Arrays; + +import kcg.imis.cmmn.bbs.BaseSearchVO; + +/** + * @FileName : ReportSearchVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportSearchVO extends BaseSearchVO implements Cloneable { + + /** + * 접속한 사용자 아이디 + */ + private String userid; + /** + * 접속한 사용자 등급 + */ + private int usegrade; + /** + * 접속한 사용자 타입 + */ + private int type; + /** + * 접속한 사용자 그룹 + */ + private int myGroupCode; + /** + * 접속한 사용자 계급 + */ + private String duties; + /** + * 견문권한(1-나머지, 2-계장, 3-과장). + */ + private int dutiesForApprove; + /** + * 접속한 사용자 소속코드 + */ + private String userPlace; + /** + * 견문 상태 코드 + */ + private String inStateCode; + /** + * 견문 정렬 필드 + */ + private String orderCol = "IN_REGDATE"; + /** + * 견문 정렬 타입 + */ + private String orderAsc = "DESC"; + + private String myDutiesCode; + + + /** 사용자 지정 검색 조건 */ + + /** + * 기간 처음 + */ + private String dateStart; + /** + * 기간 마지막 + */ + private String dateEnd; + /** + * 보고자 + */ + private String writeName; + /** + * 보고자id + */ + private String writeId; + /** + * 소속 + */ + private String[] places; + /** + * 평가 + */ + private String[] judges; + /** + * 상보 + */ + private String[] fullReport; + /** + * 구분 + */ + private String[] policeType; + /** + * 분야1 + */ + private String[] category1; + /** + * 분야2 + */ + private String[] category2; + /** + * 분야3 + */ + private String[] category3; + /** + * 분야4 + */ + private String[] category4; + /** + * 제목 + */ + private String subject; + /** + * 첨부파일명 + */ + private String filename; + + /** 통계 */ + + /** + * 분야1 검색여부 + */ + private boolean searchCate1 = true; + /** + * 분야2 검색여부 + */ + private boolean searchCate2 = true; + /** + * 분야3 검색여부 + */ + private boolean searchCate3 = true; + /** + * 분야4 검색여부 + */ + private boolean searchCate4 = true; + /** + * 통계타입 + */ + private String statsType; + /** + * 분야별통계 타입 + */ + private int categoryType; + /** + * 소속 그룹 코드 + */ + private String placeGroup; + /** + * 연도 + */ + private String year; + /** + * 월 + */ + private String month; + + public String getUserid() { + return userid; + } + public void setUserid(final String userid) { + this.userid = userid; + } + public int getUsegrade() { + return usegrade; + } + public void setUsegrade(final int usegrade) { + this.usegrade = usegrade; + } + public int getType() { + return type; + } + public void setType(final int type) { + this.type = type; + } + public int getMyGroupCode() { + return myGroupCode; + } + public String getDuties() { + return duties; + } + public void setDuties(final String duties) { + this.duties = duties; + } + /** + * @return the dutiesForApprove + */ + public final int getDutiesForApprove() { + return dutiesForApprove; + } + /** + * @param dutiesForApprove the dutiesForApprove to set + */ + public final void setDutiesForApprove(final int dutiesForApprove) { + this.dutiesForApprove = dutiesForApprove; + } + public String getUserPlace() { + return userPlace; + } + public void setUserPlace(final String userPlace) { + this.userPlace = userPlace; + } + public void setMyGroupCode(final int myGroupCode) { + this.myGroupCode = myGroupCode; + } + public String getInStateCode() { + return inStateCode; + } + public void setInStateCode(final String inStateCode) { + this.inStateCode = inStateCode; + } + public String getOrderCol() { + return orderCol; + } + public void setOrderCol(final String orderCol) { + this.orderCol = orderCol; + } + public String getOrderAsc() { + return orderAsc; + } + public void setOrderAsc(final String orderAsc) { + this.orderAsc = orderAsc; + } + public String getDateStart() { + return dateStart; + } + public void setDateStart(final String dateStart) { + this.dateStart = dateStart; + } + public String getDateEnd() { + return dateEnd; + } + public void setDateEnd(final String dateEnd) { + this.dateEnd = dateEnd; + } + public String getWriteName() { + return writeName; + } + public void setWriteName(final String writeName) { + this.writeName = writeName; + } + public String getWriteId() { + return writeId; + } + public void setWriteId(final String writeId) { + this.writeId = writeId; + } + public String[] getPlaces() { + return places; + } + public void setPlaces(final String[] places) { + this.places = places; + } + public String[] getJudges() { + return judges; + } + public void setJudges(final String[] judges) { + this.judges = judges; + } + public String[] getFullReport() { + return fullReport; + } + public void setFullReport(final String[] fullReport) { + this.fullReport = fullReport; + } + public String[] getPoliceType() { + return policeType; + } + public void setPoliceType(final String[] policeType) { + this.policeType = policeType; + } + public String[] getCategory1() { + return category1; + } + public void setCategory1(final String[] category1) { + this.category1 = category1; + } + public String[] getCategory2() { + return category2; + } + public void setCategory2(final String[] category2) { + this.category2 = category2; + } + public String[] getCategory3() { + return category3; + } + public void setCategory3(final String[] category3) { + this.category3 = category3; + } + public String[] getCategory4() { + return category4; + } + public void setCategory4(final String[] category4) { + this.category4 = category4; + } + public String getSubject() { + return subject; + } + public void setSubject(final String subject) { + this.subject = subject; + } + public String getFilename() { + return filename; + } + public void setFilename(final String filename) { + this.filename = filename; + } + public boolean isSearchCate1() { + return searchCate1; + } + public void setSearchCate1(final boolean searchCate1) { + this.searchCate1 = searchCate1; + } + public boolean isSearchCate2() { + return searchCate2; + } + public void setSearchCate2(final boolean searchCate2) { + this.searchCate2 = searchCate2; + } + public boolean isSearchCate3() { + return searchCate3; + } + public void setSearchCate3(final boolean searchCate3) { + this.searchCate3 = searchCate3; + } + public boolean isSearchCate4() { + return searchCate4; + } + public void setSearchCate4(final boolean searchCate4) { + this.searchCate4 = searchCate4; + } + public String getStatsType() { + return statsType; + } + public void setStatsType(final String statsType) { + this.statsType = statsType; + } + public int getCategoryType() { + return categoryType; + } + public void setCategoryType(final int categoryType) { + this.categoryType = categoryType; + } + public String getPlaceGroup() { + return placeGroup; + } + public void setPlaceGroup(final String placeGroup) { + this.placeGroup = placeGroup; + } + public String getYear() { + return year; + } + public void setYear(final String year) { + this.year = year; + } + public String getMonth() { + return month; + } + public void setMonth(final String month) { + this.month = month; + } + @Override + public String toString() { + return "ReportSearchVO [userid=" + userid + ", usegrade=" + usegrade + + ", type=" + type + ", myGroupCode=" + myGroupCode + + ", duties=" + duties + ", userPlace=" + userPlace + + ", inStateCode=" + inStateCode + ", orderCol=" + orderCol + + ", orderAsc=" + orderAsc + ", dateStart=" + dateStart + + ", dateEnd=" + dateEnd + ", writeName=" + writeName + + ", writeId=" + writeId + ", places=" + + Arrays.toString(places) + ", judges=" + + Arrays.toString(judges) + ", fullReport=" + + Arrays.toString(fullReport) + ", policeType=" + + Arrays.toString(policeType) + ", category1=" + + Arrays.toString(category1) + ", category2=" + + Arrays.toString(category2) + ", category3=" + + Arrays.toString(category3) + ", category4=" + + Arrays.toString(category4) + ", subject=" + subject + + ", filename=" + filename + ", searchCate1=" + searchCate1 + + ", searchCate2=" + searchCate2 + ", searchCate3=" + + searchCate3 + ", searchCate4=" + searchCate4 + ", statsType=" + + statsType + ", categoryType=" + categoryType + + ", placeGroup=" + placeGroup + ", year=" + year + ", month=" + + month + "]"; + } + @Override + public Object clone() throws CloneNotSupportedException { + ReportSearchVO vo = (ReportSearchVO) super.clone(); + + if (places != null) { + vo.places = (String[]) places.clone(); + } + if (judges != null) { + vo.judges = (String[]) judges.clone(); + } + if (fullReport != null) { + vo.fullReport = (String[]) fullReport.clone(); + } + if (policeType != null) { + vo.policeType = (String[]) policeType.clone(); + } + if (category1 != null) { + vo.category1 = (String[]) category1.clone(); + } + if (category2 != null) { + vo.category2 = (String[]) category2.clone(); + } + if (category3 != null) { + vo.category3 = (String[]) category3.clone(); + } + if (category4 != null) { + vo.category4 = (String[]) category4.clone(); + } + return vo; + } + public String getMyDutiesCode() { + return myDutiesCode; + } + public void setMyDutiesCode(String myDutiesCode) { + this.myDutiesCode = myDutiesCode; + } + + +} diff --git a/src/main/java/kcg/imis/report/vo/ReportVO.java b/src/main/java/kcg/imis/report/vo/ReportVO.java new file mode 100644 index 0000000..8c18758 --- /dev/null +++ b/src/main/java/kcg/imis/report/vo/ReportVO.java @@ -0,0 +1,750 @@ +package kcg.imis.report.vo; + +import java.util.List; + +import kcg.imis.report.web.ReportCommon; + +import org.springframework.web.multipart.MultipartFile; + +/** + * @FileName : ReportVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReportVO { + @Override + public String toString() { + return "ReportVO [STRCORRECT=" + STRCORRECT + ", inSeq=" + inSeq + ", inAgencyCode=" + inAgencyCode + ", inDocPlace=" + inDocPlace + ", inPlaceCode=" + inPlaceCode + ", inPlace=" + inPlace + + ", inPlaceName=" + inPlaceName + ", inPlaceNum=" + inPlaceNum + ", inTypeCode=" + inTypeCode + ", inType=" + inType + ", inCategory1=" + inCategory1 + ", inCategory2=" + inCategory2 + + ", inCategory3=" + inCategory3 + ", inCategory4=" + inCategory4 + ", inSubject=" + inSubject + ", inMemo=" + inMemo + ", inPlace1=" + inPlace1 + ", inPlace2=" + inPlace2 + + ", inDuty=" + inDuty + ", inName=" + inName + ", inUserid=" + inUserid + ", inIp=" + inIp + ", inContent=" + inContent + ", inFile1=" + inFile1 + ", inFile2=" + inFile2 + + ", inFile3=" + inFile3 + ", inFileName1=" + inFileName1 + ", inFileName2=" + inFileName2 + ", inFileName3=" + inFileName3 + ", inFsseq=" + inFsseq + ", inInfodate=" + inInfodate + + ", inInfoYear=" + inInfoYear + ", inInfoMonth=" + inInfoMonth + ", inInfoDay=" + inInfoDay + ", inRegdate=" + inRegdate + ", inRegdateStr=" + inRegdateStr + ", inJudge=" + inJudge + + ", inJuseqSection=" + inJuseqSection + ", inJuseqHead=" + inJuseqHead + ", inOfflineType=" + inOfflineType + ", inOfflineUserid=" + inOfflineUserid + ", inComplete=" + inComplete + + ", inOld=" + inOld + ", inDelete=" + inDelete + ", inStateCode=" + inStateCode + ", inChkdate=" + inChkdate + ", fileObj1=" + fileObj1 + ", fileObj2=" + fileObj2 + ", fileObj3=" + + fileObj3 + ", strInfodate=" + strInfodate + ", stateCodeName=" + stateCodeName + ", inCategory1Str=" + inCategory1Str + ", inCategory2Str=" + inCategory2Str + ", cateStrOrder=" + + cateStrOrder + ", docNo=" + docNo + ", reporter=" + reporter + ", judgeStr=" + judgeStr + ", fullReportStr=" + fullReportStr + ", juMsg=" + juMsg + ", isHead=" + isHead + + ", isSection=" + isSection + ", isJudge1=" + isJudge1 + ", isJudge2=" + isJudge2 + ", isJudge3=" + isJudge3 + ", isJudge4=" + isJudge4 + ", isJudge5=" + isJudge5 + ", isJudge6=" + + isJudge6 + ", isJudge7=" + isJudge7 + ", isReport1=" + isReport1 + ", isReport2=" + isReport2 + ", stateCode1=" + stateCode1 + ", stateCode2=" + stateCode2 + ", reportList=" + + reportList + "]"; + } + /** + * 목록에서 표시로 사용할 문자 + */ + final String STRCORRECT = "○"; + + /** + * 견문 ID + */ + private int inSeq; + /** + * 상위 소속 기관 코드 + */ + private String inAgencyCode; + + /** + * 직접 입력한 소속 + */ + private String inDocPlace; + /** + * 보고자 소속 기관 코드 + */ + private String inPlaceCode; + + /** + * + */ + private String inPlace; + /** + * 보고자 소속기관명 + */ + private String inPlaceName; + /** + * 문서번호 + */ + private int inPlaceNum; + + private String inTypeCode; + + /** + * 보고자 경찰타입(1:국제, 2:일반) + */ + private String inType; + /** + * 분류1 + */ + private String inCategory1; + /** + * 분류2 + */ + private String inCategory2; + /** + * 분류3 + */ + private String inCategory3; + /** + * 분류4 + */ + private String inCategory4; + /** + * 제목 + */ + private String inSubject; + /** + * 비고 + */ + private String inMemo; + /** + * 보고자 소속1명 + */ + private String inPlace1; + /** + * 보고자 소속2명 + */ + private String inPlace2; + /** + * 보고자 직급명 + */ + private String inDuty +; + /** + * 보고자명 + */ + private String inName; + /** + * 보고자 아이디 + */ + private String inUserid; + /** + * 보고자 아이피 + */ + private String inIp; + /** + * 내용 + */ + private String inContent; + /** + * 첨부파일명1 + */ + private String inFile1; + /** + * 첨부파일명2 + */ + private String inFile2; + /** + * 첨부파일명3 + */ + private String inFile3; + + /** + * 첨부파일명1 + */ + private String inFileName1; + /** + * 첨부파일명2 + */ + private String inFileName2; + /** + * 첨부파일명3 + */ + private String inFileName3; + + /** + * 첨부파일시퀀스 + */ + private int inFsseq; + /** + * 보고일 + */ + private java.sql.Date inInfodate; + /** + * 보고일 년도 + */ + private int inInfoYear; + /** + * 보고일 월 + */ + private int inInfoMonth; + /** + * 보고일 일 + */ + private int inInfoDay; + /** + * 작성일 + */ + private java.sql.Date inRegdate; + + private String inRegdateStr; + /** + * 평가(1:특보, 2:판단, 3:중보, 4:통보, 5:기록, 6:조사, 7:참고) + */ + private int inJudge; + + /** + * + */ + private int inJuseqSection; + /** + * 경찰서 과장 결재시퀀스 + */ + private int inJuseqHead; + /** + * 일괄입력자 경찰타입(1:외사,2:일반) + */ + private String inOfflineType = ""; + /** + * 일괄입력자 ID + */ + private String inOfflineUserid; + /** + * 완료여부 (1:완료) + */ + private String inComplete; + /** + * + */ + private String inOld; + /** + * 삭제여부 + */ + private String inDelete; + /** + * 상태코드(99:임시저장) + */ + private String inStateCode; + + private String inChkdate; + /** + * 첨부파일1 객체 + */ + private MultipartFile fileObj1; + /** + * 첨부파일2 객체 + */ + private MultipartFile fileObj2; + /** + * 첨부파일3 객체 + */ + private MultipartFile fileObj3; + /** + * 보고일 문자열 + */ + private String strInfodate; + /** + * 상태 + */ + private String stateCodeName; + /** + * 분류1명 + */ + private String inCategory1Str; + /** + * 분류2명 + */ + private String inCategory2Str; + /** + * 분류가 조합된 문자열 ( 분류1>분류2>분류3>분류4 ) + */ + private String cateStrOrder; + /** + * 문서번호 + */ + private String docNo; + /** + * 보고자 (직급 보고자명) + */ + private String reporter; + /** + * 평가 in_judge에 대한 문자열 + */ + private String judgeStr; + /** + * 상보 문자열 + */ + private String fullReportStr; + /** + * 검토의견 + */ + private String juMsg; + + /* 결재 처리 목록 */ + /** + * 과장 결재 + */ + private String isHead; + /** + * 계장 결재 + */ + private String isSection; + private String isJudge1; + private String isJudge2; + private String isJudge3; + private String isJudge4; + private String isJudge5; + private String isJudge6; + private String isJudge7; + private String isReport1; + private String isReport2; + + private int stateCode1; + private int stateCode2; + + /* ReportVO를 목록으로 받기위함 */ + private List reportList; + + public List getReportList() { + return reportList; + } + public void setReportList(List reportList) { + this.reportList = reportList; + } + + public String getStrInfodate() { + return strInfodate; + } + public void setStrInfodate(String strInfodate) { + this.strInfodate = strInfodate; + } + public int getInSeq() { + return inSeq; + } + public void setInSeq(int inSeq) { + this.inSeq = inSeq; + } + public String getInAgencyCode() { + return inAgencyCode; + } + public void setInAgencyCode(String inAgencyCode) { + this.inAgencyCode = inAgencyCode; + } + public String getInPlaceCode() { + return inPlaceCode; + } + public void setInPlaceCode(String inPlaceCode) { + this.inPlaceCode = inPlaceCode; + } + public String getInPlaceName() { + return inPlaceName; + } + public void setInPlaceName(String inPlaceName) { + this.inPlaceName = inPlaceName; + } + public int getInPlaceNum() { + return inPlaceNum; + } + public void setInPlaceNum(int inPlaceNum) { + this.inPlaceNum = inPlaceNum; + } + public String getInType() { + return inType; + } + public void setInType(String inType) { + this.inType = inType; + } + public String getInCategory1() { + return inCategory1; + } + public void setInCategory1(String inCategory1) { + this.inCategory1 = inCategory1; + } + public String getReporter() { + return this.inDuty + " " + this.inName; + } + public void setReporter(String reporter) { + this.reporter = reporter; + } + public String getInCategory2() { + return inCategory2; + } + public void setInCategory2(String inCategory2) { + this.inCategory2 = inCategory2; + } + public String getInCategory3() { + return inCategory3; + } + public void setInCategory3(String inCategory3) { + this.inCategory3 = inCategory3; + } + public String getInCategory4() { + return inCategory4; + } + public void setInCategory4(String inCategory4) { + this.inCategory4 = inCategory4; + } + public String getInSubject() { + return inSubject; + } + public void setInSubject(String inSubject) { + this.inSubject = inSubject; + } + public String getInMemo() { + return inMemo; + } + public void setInMemo(String inMemo) { + this.inMemo = inMemo; + } + public String getInPlace1() { + return inPlace1; + } + public void setInPlace1(String inPlace1) { + this.inPlace1 = inPlace1; + } + public String getInPlace2() { + return inPlace2; + } + public void setInPlace2(String inPlace2) { + this.inPlace2 = inPlace2; + } + public String getInUserid() { + return inUserid; + } + public void setInUserid(String inUserid) { + this.inUserid = inUserid; + } + public String getInIp() { + return inIp; + } + public void setInIp(String inIp) { + this.inIp = inIp; + } + public String getInContent() { + return inContent; + } + public void setInContent(String inContent) { + this.inContent = inContent; + } + public int getInFsseq() { + return inFsseq; + } + public void setInFsseq(int inFsseq) { + this.inFsseq = inFsseq; + } + public java.sql.Date getInInfodate() { + return inInfodate; + } + public void setInInfodate(java.sql.Date inInfodate) { + this.inInfodate = inInfodate; + } + public int getInInfoYear() { + return inInfoYear; + } + public void setInInfoYear(int inInfoYear) { + this.inInfoYear = inInfoYear; + } + public int getInInfoMonth() { + return inInfoMonth; + } + public void setInInfoMonth(int inInfoMonth) { + this.inInfoMonth = inInfoMonth; + } + public int getInInfoDay() { + return inInfoDay; + } + public void setInInfoDay(int inInfoDay) { + this.inInfoDay = inInfoDay; + } + public java.sql.Date getInRegdate() { + return inRegdate; + } + public void setInRegdate(java.sql.Date inRegdate) { + this.inRegdate = inRegdate; + } + public int getInJudge() { + return inJudge; + } + public void setInJudge(int inJudge) { + this.inJudge = inJudge; + switch (inJudge) { + case 1: + this.isJudge1 = STRCORRECT; + break; + case 2: + this.isJudge2 = STRCORRECT; + break; + case 3: + this.isJudge3 = STRCORRECT; + break; + case 4: + this.isJudge4 = STRCORRECT; + break; + case 5: + this.isJudge5 = STRCORRECT; + break; + case 6: + this.isJudge6 = STRCORRECT; + break; + case 7: + this.isJudge7 = STRCORRECT; + break; + default: + break; + } + } + + public String getInOfflineType() { + return inOfflineType; + } + public void setInOfflineType(String inOfflineType) { + this.inOfflineType = inOfflineType; + } + public String getInOfflineUserid() { + return inOfflineUserid; + } + public void setInOfflineUserid(String inOfflineUserid) { + this.inOfflineUserid = inOfflineUserid; + } + public String getInComplete() { + return inComplete; + } + public void setInComplete(String inComplete) { + this.inComplete = inComplete; + } + public String getInOld() { + return inOld; + } + public void setInOld(String inOld) { + this.inOld = inOld; + } + public String getInDelete() { + return inDelete; + } + public void setInDelete(String inDelete) { + this.inDelete = inDelete; + } + public String getInStateCode() { + return inStateCode; + } + public void setInStateCode(String inStateCode) { + this.inStateCode = inStateCode; + + this.stateCode1 = Character.getNumericValue(inStateCode.charAt(0)); + this.stateCode2 = Character.getNumericValue(inStateCode.charAt(1)); + + this.stateCodeName = ReportCommon.getStateCodeNm(inStateCode); + + // 결재 처리목록에서 사용할 변수 설정 + int myGroupCode = ReportCommon.getMyGroupCode(); + int stateChar1 = Character.getNumericValue(inStateCode.charAt(0)); + int stateChar2 = Character.getNumericValue(inStateCode.charAt(1)); + if (stateChar2 == 2 || stateChar2 == 4 || stateChar1 > myGroupCode) { + this.isSection = STRCORRECT; + } + if (stateChar2 == 3 || stateChar2 == 4 || stateChar1 > myGroupCode) { + this.isHead = STRCORRECT; + } + } + public MultipartFile getFileObj1() { + return fileObj1; + } + public void setFileObj1(MultipartFile fileObj1) { + this.fileObj1 = fileObj1; + } + public MultipartFile getFileObj2() { + return fileObj2; + } + public void setFileObj2(MultipartFile fileObj2) { + this.fileObj2 = fileObj2; + } + public MultipartFile getFileObj3() { + return fileObj3; + } + public void setFileObj3(MultipartFile fileObj3) { + this.fileObj3 = fileObj3; + } + public String getStateCodeName() { + return stateCodeName; + } + public void setStateCodeName(String stateCodeName) { + this.stateCodeName = stateCodeName; + } + public String getInCategory1Str() { + return inCategory1Str; + } + public void setInCategory1Str(String inCategory1Str) { + this.inCategory1Str = inCategory1Str; + } + public String getInCategory2Str() { + return inCategory2Str; + } + public void setInCategory2Str(String inCategory2Str) { + this.inCategory2Str = inCategory2Str; + } + public String getDocNo() { + return docNo; + } + public void setDocNo(String docNo) { + this.docNo = docNo; + } + public String getJudgeStr() { + return judgeStr; + } + public void setJudgeStr(String judgeStr) { + this.judgeStr = judgeStr; + } + public String getFullReportStr() { + return fullReportStr; + } + public void setFullReportStr(String fullReportStr) { + this.fullReportStr = fullReportStr; + } + public String getJuMsg() { + return juMsg; + } + public void setJuMsg(String juMsg) { + this.juMsg = juMsg; + } + public String getIsHead() { + return isHead; + } + public String getIsSection() { + return isSection; + } + public String getIsJudge1() { + return isJudge1; + } + public String getIsJudge2() { + return isJudge2; + } + public String getIsJudge3() { + return isJudge3; + } + public String getIsJudge4() { + return isJudge4; + } + public String getIsJudge5() { + return isJudge5; + } + public String getIsJudge6() { + return isJudge6; + } + public String getIsJudge7() { + return isJudge7; + } + public String getIsReport1() { + return isReport1; + } + public String getIsReport2() { + return isReport2; + } + public String getCateStrOrder() { + return cateStrOrder; + } + public void setCateStrOrder(String cateStrOrder) { + this.cateStrOrder = cateStrOrder; + } + + public int getStateCode1() { + return stateCode1; + } + public void setStateCode1(int stateCode1) { + this.stateCode1 = stateCode1; + } + public int getStateCode2() { + return stateCode2; + } + public void setStateCode2(int stateCode2) { + this.stateCode2 = stateCode2; + } + public String getInDocPlace() { + return inDocPlace; + } + public void setInDocPlace(String inDocPlace) { + this.inDocPlace = inDocPlace; + } + public String getInPlace() { + return inPlace; + } + public void setInPlace(String inPlace) { + this.inPlace = inPlace; + } + public String getInTypeCode() { + return inTypeCode; + } + public void setInTypeCode(String inTypeCode) { + this.inTypeCode = inTypeCode; + } + + public int getInJuseqSection() { + return inJuseqSection; + } + public void setInJuseqSection(int inJuseqSection) { + this.inJuseqSection = inJuseqSection; + } + public int getInJuseqHead() { + return inJuseqHead; + } + public void setInJuseqHead(int inJuseqHead) { + this.inJuseqHead = inJuseqHead; + } + public String getInDuty() { + return inDuty; + } + public void setInDuty(String inDuty) { + this.inDuty = inDuty; + this.reporter = (inDuty == null ? "" : inDuty) + " " + (inName == null ? "" : inName); + } + public String getInName() { + return inName; + } + public void setInName(String inName) { + this.inName = inName; + this.reporter = (inDuty == null ? "" : inDuty) + " " + (inName == null ? "" : inName); + } + public String getInFile1() { + return inFile1; + } + public void setInFile1(String inFile1) { + this.inFile1 = inFile1; + } + public String getInFile2() { + return inFile2; + } + public void setInFile2(String inFile2) { + this.inFile2 = inFile2; + } + public String getInFile3() { + return inFile3; + } + public void setInFile3(String inFile3) { + this.inFile3 = inFile3; + } + public String getInFileName1() { + return inFileName1; + } + public void setInFileName1(String inFileName1) { + this.inFileName1 = inFileName1; + } + public String getInFileName2() { + return inFileName2; + } + public void setInFileName2(String inFileName2) { + this.inFileName2 = inFileName2; + } + public String getInFileName3() { + return inFileName3; + } + public void setInFileName3(String inFileName3) { + this.inFileName3 = inFileName3; + } + public String getInChkdate() { + return inChkdate; + } + public void setInChkdate(String inChkdate) { + this.inChkdate = inChkdate; + } + + public String getInInfodateStr() { + String yyyymmdd = String.valueOf(inInfoYear) + "-" + String.format("%02d", inInfoMonth) + "-" + String.format("%02d", inInfoDay) ; + return yyyymmdd; + } + public String getInRegdateStr() { + return inRegdateStr; + } + public void setInRegdateStr(String inRegdateStr) { + this.inRegdateStr = inRegdateStr; + } + +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/report/web/ReportCommon.java b/src/main/java/kcg/imis/report/web/ReportCommon.java new file mode 100644 index 0000000..bf95198 --- /dev/null +++ b/src/main/java/kcg/imis/report/web/ReportCommon.java @@ -0,0 +1,234 @@ +package kcg.imis.report.web; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; + +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.member.vo.Duty; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @FileName : ReportCommon.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Component +public class ReportCommon { + + /** + * 접속한 사용자 정보를 담을 객체 + */ + private static LoginUserVO user = null; + + /** + * 코드관련 정보 인터페이스. + */ + public static CodeService codeService; + + @Autowired + private CodeService codeServInstance; + + @PostConstruct + private void init() { + codeService = codeServInstance; + } + + + /** + * 견문 결재 타입을 반환한다. + * @param inStateCode 견문 상태 코드 + * @return 결재 타입 + */ + public static int getApprovalType(final String inStateCode) { + int docGroupCode = getMyGroupCode(); + int stateCode0 = Character.getNumericValue(inStateCode.charAt(0)); + int stateCode1 = Character.getNumericValue(inStateCode.charAt(1)); + + if ((stateCode0 > 1 || (stateCode0 == 1 && stateCode1 >= 2)) && docGroupCode == 1) { + return 1; + } else if ((stateCode0 > 2 || (stateCode0 == 2 && stateCode1 >= 2)) && docGroupCode <= 2) { + return 2; + } else if (stateCode0 == 3 && stateCode1 >= 2 && docGroupCode <= 3) { + return 3; + } + + return 0; + } + + /** + * 해당 소속 코드의 상위 소속 코드를 반환한다. + * + * @param placeCode 소속코드 + * @return 소속코드 + */ + public static String getAgencyCode(final String placeCode) { + try { + return codeService.getPlace1HighCode(placeCode); + } catch (Exception e) { + return placeCode; + } + } + + /** + * 소속명을 약칭으로 반환한다. + * + * @param placeStr 소속명 + * @return 소속약칭 + */ + public static String getPlaceShortName(final String placeStr) { + String result = placeStr; + + result = result.replace("지방해양경찰청", "청"); + result = result.replace("해양경찰서", "서"); + result = result.replace("해양경찰학교", "경찰학교"); + + return result; + } + + /** + * 견문의 상태코드에 따라 상태명을 반환한다. + * + * @param stateCode 견문상태코드 + * @return 견문 상태 텍스트 + */ + public static String getStateCodeNm(final String stateCode) { + String state = ""; + + if (stateCode.length() != 2) { + return "Unknown"; + } + if (stateCode.equals("99")) { + return "임시 저장"; + } + if (Character.getNumericValue(stateCode.charAt(0)) > getMyGroupCode()) { + return "결재 완료"; + } + + state = "Unknown"; + switch (stateCode.charAt(1)) { + case '1': + state = "결재 대기"; + break; + case '2': + state = "국제법규정보팀장 결재"; + break; + case '3': + state = "국제협력담당관 결재"; + break; + case '4': + state = "결재 완료"; + break; + default: + break; + } + return state; + } + + + /** + * 접속한 사용자의 소속에 따른 사용자 그룹코드를 반환한다. + * + * @return 그룹코드 + */ + public static int getMyGroupCode() { + LoginUserVO user = UserUtil.getMemberInfo(); + return getGroupCode(user.getPlace1()); + } + /** + * 소속 코드에 따른 사용자 그룹코드를 반환한다. + * + * @param code 소속코드(PS00) + * @return 그룹코드 + */ + public static int getGroupCode(final String code) { + if ("PS00".equalsIgnoreCase(code)) { // 본부 + return 3; + } else if (isRegional(code)) { // 지방청 + return 2; + } else { // 경찰서 + return 1; + } + } + + /** + * 소속 코드가 지방청인지 판단한다. + * + * @param placeCode 소속 코드 + * @return 지방청이면 true, 아니면 false + */ + public static boolean isRegional(final String placeCode) { + List agencyCategory = null; + try { + agencyCategory = codeService.getPlace1SubList(placeCode); + } catch (Exception e) { + agencyCategory = new ArrayList(); + } + + return !agencyCategory.isEmpty(); + } + + /** + * 접속한 사용자 정보를 견문 검색 조건 객체에 저장하여 반환한다. + * + * @param reportSearchVO 견문 검색 조건 객체 + * @return 접속한 사용자 정보가 포함된 견문 검색 조건 객체 + */ + public static ReportSearchVO setSearchUserInfo(final ReportSearchVO reportSearchVO) { + ReportSearchVO result = reportSearchVO; + + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + + result.setUserid(loginUserVO.getUserid()); + result.setUsegrade(loginUserVO.getUsegrade()); + result.setType(loginUserVO.getType()); + result.setMyGroupCode(ReportCommon.getMyGroupCode()); + result.setDuties(loginUserVO.getDutyStr()); + result.setUserPlace(loginUserVO.getPlace1()); + + return result; + } + + /** + * 결재에서 사용할 직위 코드를 반환한다. + * + *
+	 * 사용자 테이블에는 문자형 (03:계장, 04:과장) 이고
+	 * php소스상 결재부문에서 사용하는 직위코드는 숫자형 (1:나머지, 2:계장, 3:과장) 이다.
+	 * 
+ * + * @param duties + * 사용자 테이블에 저장된 직위 코드 + * @return (1:나머지, 2:계장, 3:과장) + */ + public static int getDutiesCodeForApprove(final String duties) { + int dutiesCode = 1; + if (duties == null) { + return dutiesCode; + } + + switch (duties) { + case Duty.SECTION: + dutiesCode = 2; + break; + case Duty.HEAD: + dutiesCode = 3; + break; + default: + break; + } + + return dutiesCode; + } + +} diff --git a/src/main/java/kcg/imis/report/web/ReportController.java b/src/main/java/kcg/imis/report/web/ReportController.java new file mode 100644 index 0000000..95efac6 --- /dev/null +++ b/src/main/java/kcg/imis/report/web/ReportController.java @@ -0,0 +1,569 @@ +package kcg.imis.report.web; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.file.FileResponser; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.member.service.MemberService; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.report.service.ReportFileServiceImpl; +import kcg.imis.report.service.ReportJudgeService; +import kcg.imis.report.service.ReportService; +import kcg.imis.report.vo.ReportJudgeVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.util.FileCopyUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * @FileName : ReportController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/report") +public class ReportController { + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * 견문 기본 인터페이스이다. + */ + @Resource(name = "reportService") + private ReportService reportService; + + /** + * 견문 결재 인터페이스 + */ + @Resource(name = "reportJudgeService") + private ReportJudgeService judgeService; + + /** + * 사용자 인터페이스 + */ + @Resource(name = "memberService") + private MemberService memberService; + + /** + * Validator - 유효성 검사 + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * 코드 인터페이스 + */ + @Resource(name = "codeService") + private CodeService codeService; + + /** + * 임시저장목록을 조회한다. + * + * @param rptSearchVO 견문 검색조건 vo + * @param model 모델객체 + * @return 임시저장목록 화면 + */ + @RequestMapping(value = "/saveList.do") + public String reportSaveList(@ModelAttribute("reportSearchVO") final ReportSearchVO rptSearchVO, final Model model) { + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + try { + rptSearchVO.setUserid(loginUserVO.getUserid()); + rptSearchVO.setUsegrade(loginUserVO.getUsegrade()); + rptSearchVO.setType(loginUserVO.getType()); + + /* 페이징 처리 정보 */ + rptSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + rptSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(rptSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(rptSearchVO.getRecordCountPerPage()); + paginationInfo.setPageSize(rptSearchVO.getPageSize()); + + rptSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + rptSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + rptSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + int totSearchCnt = reportService.selectSaveListCnt(rptSearchVO); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + // 임시저장목록은 전체 갯수가 의미 없으므로 검색결과 총 갯수로 대신한다. + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = reportService.selectSaveList(rptSearchVO); + model.addAttribute("reportList", reportList); + + model.addAttribute("reportSearchVO", rptSearchVO); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/reportSaveList.tiles"; + } + + /** + * 견문 입력 화면을 반환한다. + * @param model 맵 모델 + * @return String 뷰이름 + */ + @RequestMapping(value = "/add.do", method = RequestMethod.GET) + public String insertReport(final Model model) { + + try { + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + + if (!model.containsAttribute("reportVO")) { + ReportVO reportVO = new ReportVO(); + LoginUserVO userVO = UserUtil.getMemberInfo(); + + reportVO.setInType(String.valueOf(userVO.getType())); + reportVO.setInAgencyCode(ReportCommon.getAgencyCode(userVO.getPlace1())); + reportVO.setInPlaceCode(userVO.getPlace1()); + reportVO.setInPlaceName(ReportCommon.getPlaceShortName(userVO.getPlace1Str())); + reportVO.setInPlaceNum(reportService.selectPlaceNum(reportVO)); + + model.addAttribute("reportVO", reportVO); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + + return "report/reportAdd.tiles"; + } + + /** + * 견문을 입력한 뒤 입력된 견문의 상세 조회 화면으로 이동한다. + * @param multiRequest + * @param reportVO 견문 모델 객체 + * @param bindingResult + * @param model + * @param status + * @return String 뷰 이름 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/add.do", method = RequestMethod.POST) + public String insertReport(final MultipartHttpServletRequest multiRequest, @ModelAttribute("reportVO") final ReportVO reportVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + // 사용자 인증 검사 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + // 유효성 검사 + beanValidator.validate(reportVO, bindingResult); + if (bindingResult.hasErrors()) { + model.addAttribute("reportVO", reportVO); + return insertReport(model); + } + + // 사용자로부터 받아오는 정보 + LoginUserVO userVO = UserUtil.getMemberInfo(); + reportVO.setInPlace(userVO.getPlace1()); + reportVO.setInPlace1(userVO.getPlace1Str()); + reportVO.setInPlace2(userVO.getPlace2Str()); + reportVO.setInDuty(userVO.getDutyStr()); + reportVO.setInName(userVO.getName()); + reportVO.setInUserid(userVO.getUserid()); + reportVO.setInIp(multiRequest.getRemoteAddr()); + reportVO.setInType(String.valueOf(userVO.getType())); + + reportVO.setInAgencyCode(ReportCommon.getAgencyCode(userVO.getPlace1())); + reportVO.setInPlaceCode(userVO.getPlace1()); + reportVO.setInPlaceName(ReportCommon.getPlaceShortName(userVO.getPlace1Str())); + reportVO.setInPlaceNum(reportService.selectPlaceNum(reportVO)); + + // 보고일 파싱 + String infoDate = reportVO.getStrInfodate().toString(); + reportVO.setInInfoYear(Integer.valueOf(infoDate.split("-")[0])); + reportVO.setInInfoMonth(Integer.valueOf(infoDate.split("-")[1])); + reportVO.setInInfoDay(Integer.valueOf(infoDate.split("-")[2])); + + // 파일 저장 및 데이터 입력 + final Map fileMap = multiRequest.getFileMap(); + HashMap map = reportService.insert(reportVO, fileMap); + + status.setComplete(); + + int seq = (Integer) map.get("seq"); + int result = (Integer) map.get("result"); + if (result == 1 && seq > 0) { + reportVO.setInSeq(seq); + model.addAttribute("submitResultMsg", "입력이 완료되었습니다. 수정화면으로 이동합니다."); + model.addAttribute("submitResultSeq", seq); + return this.insertReport(model); + } + } + return "error/bizError"; + } + + /** + * 선택된 견문의 조회/수정화면을 반환한다. + * + * @param reportVO 임시 저장된 견문 객체 + * @param model model객체 + * @return 견문 수정 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = {"/update.do", "/updateApprove.do", "/updateJudge.do", "/updateMyReport.do", "/updatePresent.do", "/updateList.do"}, method = RequestMethod.GET) + public String update(@ModelAttribute("reportVO") final ReportVO reportVO, final Model model) throws Exception { + ReportVO vo = reportService.select(reportVO); + vo.setStateCodeName(ReportCommon.getStateCodeNm(vo.getInStateCode())); + model.addAttribute("reportVO", vo); + + LoginUserVO user = UserUtil.getMemberInfo(); + model.addAttribute("loginUser", user); + + int myGroupCode = ReportCommon.getMyGroupCode(); + model.addAttribute("myGroupCode", myGroupCode); + + int myDutiesCode = ReportCommon.getDutiesCodeForApprove(UserUtil.getMemberInfo().getDuties()); + boolean modifyProcess = ((!"99".equals(vo.getInStateCode())) && "1".equals(vo.getInStateCode().charAt(1))); + boolean modifyAuth = (!user.getUserid().equals(vo.getInUserid()) && myDutiesCode != 3); + + model.addAttribute("viewDoc", ((modifyProcess | modifyAuth) & !UserUtil.isSysAdmin())); + + model.addAttribute("statusName", vo.getStateCodeName()); + + model.addAttribute("myDutiesCode", ReportCommon.getDutiesCodeForApprove(user.getDuties())); + model.addAttribute("docGroupCode", ReportCommon.getGroupCode(vo.getInPlaceCode())); + + model.addAttribute("juSection", judgeService.selectOne(vo.getInJuseqSection())); + model.addAttribute("juHead", judgeService.selectOne(vo.getInJuseqHead())); + + if (!StringUtils.isBlank(vo.getInOfflineUserid())) { + MemberVO memberVO = getOffUser(vo.getInOfflineUserid()); + if (memberVO != null) { + memberVO.setPlace1Str(ReportCommon.getPlaceShortName(memberVO.getPlace1Str())); + model.addAttribute("offUser", memberVO); + } + } + + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + return "report/reportModify.tiles"; + } + + /** + * 견문을 수정하고 조회 페이지를 반환한다. + * + * @param multiRequest 멀티리퀘스트객체 + * @param reportVO 견문 객체 + * @param bindingResult 바인딩객체 + * @param model 모델 객체 + * @param status 세션 객체 + * @return 조회 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = {"/update.do", "/updateReport.do"}, method = RequestMethod.POST) + public String updateReport(@ModelAttribute("reportVO") final ReportVO reportVO, final MultipartHttpServletRequest multiRequest, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + + // 사용자 인증 검사 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + // 유효성 검사 + /*beanValidator.validate(reportVO, bindingResult);*/ + if (bindingResult.hasErrors()) { + return update(reportVO, model); + } + + ReportVO vo = reportService.select(reportVO); + + vo.setInCategory1(reportVO.getInCategory1()); + vo.setInCategory2(reportVO.getInCategory2()); + vo.setInMemo(reportVO.getInMemo()); + vo.setInDocPlace(reportVO.getInDocPlace()); + vo.setInMemo(reportVO.getInMemo()); + vo.setInSubject(reportVO.getInSubject()); + vo.setInContent(reportVO.getInContent()); + vo.setStrInfodate(reportVO.getStrInfodate()); + if(vo.getInJudge() != reportVO.getInJudge()){ + vo.setInJudge(reportVO.getInJudge()); + } + + if (!vo.getInStateCode().equals(reportVO.getInStateCode())) { + vo.setInStateCode(reportVO.getInStateCode()); + } + + // 보고일 파싱 + String infoDate = reportVO.getStrInfodate().toString(); + vo.setInInfoYear(Integer.valueOf(infoDate.split("-")[0])); + vo.setInInfoMonth(Integer.valueOf(infoDate.split("-")[1])); + vo.setInInfoDay(Integer.valueOf(infoDate.split("-")[2])); + + // 파일 저장 및 데이터 입력 + String[] deleteFiles = multiRequest.getParameterValues("deleteFile"); + final Map fileMap = multiRequest.getFileMap(); + + // 관리자가 수정했을 때 처리 + if (UserUtil.isSysAdmin()) { + int judge = 0; + + // 경찰서 과장 결재 정보 + ReportJudgeVO judgeVO = judgeService.selectOne(vo.getInJuseqHead()); + if (judgeVO != null) { + judgeVO.setJuJudge(reportVO.getInJudge()); + judgeService.update(judgeVO); + vo.setInJudge(reportVO.getInJudge()); + judge = reportVO.getInJudge(); + } + + if (judge > 0) { + vo.setInJudge(judge); + } + + } + + // 견문 수정 + HashMap map = reportService.update(vo, fileMap, deleteFiles); + + status.setComplete(); + + int seq = (Integer) map.get("seq"); + int result = (Integer) map.get("result"); + if (result == 1 && seq > 0) { + + String requestUrl = multiRequest.getRequestURL().toString(); + if (requestUrl.indexOf("/updateReport.do") > 0) { + model.addAttribute("submitResultMsg", "성공적으로 보고되었습니다."); + } else { + model.addAttribute("submitResultMsg", "수정이 완료되었습니다."); + } + return this.update(reportVO, model); + } + } + + return "error/bizError"; + } + + /** + * 일괄입력 유저 정보를 반환한다. + * + * @param offType 일괄입력 종류 + * @param offUserId 일괄입력 사용자id + * @return 사용자vo + * @throws Exception 기본 예외 처리 + */ + private MemberVO getOffUser(final String offUserId) throws Exception { + MemberVO memberVO = new MemberVO(); + memberVO.setUserid(offUserId); + + try { + memberVO = memberService.getMemberInfo(offUserId); + } catch (Exception e) { + } + + return memberVO; + } + + /** + * 선택된 견문을 삭제한다. + * + * @param map 맵 객체 + * @param status SessionStatus 객체 + * @return 견문 임시저장목록 화면 + * @throws Exception 기본예외처리 + */ + @ResponseBody + @RequestMapping(value = "/delete.do") + public int deleteAjax(@RequestParam final HashMap map, final SessionStatus status) throws Exception { + try { + int result = 0; + String[] selectedSeq = new String[map.size()]; + int cnt = 0; + for (String key : map.keySet()) { + selectedSeq[cnt] = map.get(key).toString(); + cnt++; + } + + if (selectedSeq != null) { + result = reportService.deleteSelected(selectedSeq); + } + status.setComplete(); + + return result; + } catch (Exception e) { + return 0; + } + } + + /** + * 선택된 견문을 삭제하고 임시저장목록을 반환한다. + * + * @param reportVO 견문 객체 + * @param model model객체 + * @param status SessionStatus 객체 + * @return 견문 임시저장목록 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/deleteAndSaveList.do") + public String delete(@ModelAttribute final ReportVO reportVO, final Model model, + final SessionStatus status) throws Exception { + try { + String[] selectedSeq = {String.valueOf(reportVO.getInSeq())}; + + if (selectedSeq != null) { + reportService.deleteSelected(selectedSeq); + } + status.setComplete(); + return "redirect:/report/myList.do"; + } catch (Exception e) { + return "error/bizError"; + } + + } + + /** + * 파일을 반환한다. + * + * @param seq 파일시퀀스 + * @param no 파일명 + * @param request HttpServletRequest 객체 + * @param response HttpServletResponse 객체 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/download.do") + public void fileResponse(final int seq, final int no, final HttpServletRequest request, final HttpServletResponse response) throws Exception { + ReportVO reportVO = new ReportVO(); + reportVO.setInSeq(seq); + reportVO = reportService.select(reportVO); + + String filename = ""; + if (no == 1) { + filename = reportVO.getInFileName1(); + } else if (no == 2) { + filename = reportVO.getInFileName2(); + } else if (no == 3) { + filename = reportVO.getInFileName3(); + } + + // 20180523 첨부파일 관련되서 파일명으로 다운받게 추가 + String infilename = ""; + if (no == 1) { + infilename = reportVO.getInFile1(); + } else if (no == 2) { + infilename = reportVO.getInFile2(); + } else if (no == 3) { + infilename = reportVO.getInFile3(); + } + + if (StringUtils.isNotBlank(filename)) { + filename = filename.trim(); + String fileFullPath = propertiesService.getString(ReportFileServiceImpl.FILE_PATH_KEYWORD) + String.valueOf(reportVO.getInFsseq()) + "/" + filename; + + File file = new File(fileFullPath); + if (file.isFile()) { + // 20180523 첨부파일 관련되서 파일명으로 다운받게 수정 + //FileResponser.setResponse(file, filename, request, response); + FileResponser.setResponse(file, infilename, request, response); + BufferedInputStream in = null; + + try { + in = new BufferedInputStream(new FileInputStream(file)); + FileCopyUtils.copy(in, response.getOutputStream()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } else { + response.setStatus(HttpStatus.NOT_FOUND.value()); + throw new Exception(); + } + } else { + response.setStatus(HttpStatus.NOT_FOUND.value()); + throw new Exception(); + } + } + + /** + * 견문보고서를 인쇄한다. + * + * @param inSeq 견문시퀀스 + * @param model 모델객체 + * @return 견문보고서 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/print.do") + public String print(@RequestParam("inSeq") final int inSeq, final Model model) throws Exception { + ReportVO reportVO = new ReportVO(); + reportVO.setInSeq(inSeq); + reportVO = reportService.select(reportVO); + model.addAttribute("reportVO", reportVO); + + int stateCode1 = Character.getNumericValue(reportVO.getInStateCode().charAt(0)); + if (stateCode1 <= ReportCommon.getMyGroupCode()) { + int seqSection = reportVO.getInJuseqSection(); + int seqHead =reportVO.getInJuseqHead(); + + model.addAttribute("judgeSectionCheif", judgeService.selectOne(seqSection)); + model.addAttribute("judgeHeadCheif", judgeService.selectOne(seqHead)); + } + + model.addAttribute("tempDoc", reportVO.getInStateCode().equals("99")); + model.addAttribute("myDutiesCode", ReportCommon.getDutiesCodeForApprove(UserUtil.getMemberInfo().getDuties())); + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + + return "report/reportView"; + } + + + @RequestMapping(value = {"/reportCategory.do"}, method = RequestMethod.GET) + public String categoryManage(final Model model) throws Exception { + + CodeVO codeVO = new CodeVO(); + model.addAttribute("codeVO", codeVO); + return "report/reportCategory.tiles"; + } +} diff --git a/src/main/java/kcg/imis/report/web/ReportListController.java b/src/main/java/kcg/imis/report/web/ReportListController.java new file mode 100644 index 0000000..a2b457c --- /dev/null +++ b/src/main/java/kcg/imis/report/web/ReportListController.java @@ -0,0 +1,615 @@ +package kcg.imis.report.web; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.CommonsUtils; +import kcg.imis.cmmn.excel.ExcelExporter; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.report.service.ReportJudgeService; +import kcg.imis.report.service.ReportService; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.support.SessionStatus; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * @FileName : ReportListController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/report") +public class ReportListController { + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * 견문 기본 인터페이스이다. + */ + @Resource(name = "reportService") + private ReportService reportService; + + /** + * 견문 결재 인터페이스 + */ + @Resource(name = "reportJudgeService") + private ReportJudgeService judgeService; + + /** + * Validator - 유효성 검사 + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * 코드 인터페이스 + */ + @Resource(name = "codeService") + private CodeService codeService; + + /** + * message.properties의 값을 가져오는 인터페이스. + */ + @Autowired + private MessageSource messageSource; + + /** + * 견문 검색 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델객체 + * @return 견문검색화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/search.do") + public String search(final ReportSearchVO reportSearchVO, final Model model) throws Exception { + try { + + //분류 1,2 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + int myGroupCode = ReportCommon.getMyGroupCode(); + model.addAttribute("myGroupCode", myGroupCode); + + switch (myGroupCode) { + case 3: + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + break; + case 2: + model.addAttribute("placeList", codeService.getPlace1SubListWithMain(UserUtil.getMemberInfo().getPlace1())); + break; + default: + model.addAttribute("myPlaceCode", UserUtil.getMemberInfo().getPlace1()); + model.addAttribute("myPlaceName", UserUtil.getMemberInfo().getPlace1Str()); + break; + } + + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + model.addAttribute("reportSearchVO", reportSearchVO); + + } catch (Exception e) { + } + return "report/search.tiles"; + } + + /** + * 견문 검색 결과 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델객체 + * @param request 리퀘스트객체 + * @param status 상태 객체 + * @return 견문검색결과화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/searchResult.do") + public String search(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + try { + + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + //소속 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + // 접속한 사용자의 그룹코드 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(reportSearchVO.getRecordCountPerPage()); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + // 전체 갯수 설정 + int totSearchCnt = reportService.selectListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + + /* 게시판 상단 페이지 및 게시물 정보 표현을 위한 데이터 */ + int totCnt = reportService.selectTotalCnt(vo); + model.addAttribute("totalCnt", totCnt); + List reportList = reportService.selectList(ReportCommon.setSearchUserInfo(vo)); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + // 평가 목록 + model.addAttribute("judgeList", codeService.getCodeMap(CommConstants.CODE_JUDGE)); + + return "report/reportList.tiles"; + + } catch (Exception e) { + e.printStackTrace(); + } + + return search(reportSearchVO, model); + } + + + /** + * 검색결과의 전체목록을 엑셀로 내보낸다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model Model 객체 + * @param locale Locale 객체 + * @return 엑셀(전체목록) + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/listtoexcel.do") + public String exportExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) throws Exception { + LinkedHashMap header = new LinkedHashMap(); + header.put("docNo", messageSource.getMessage("report.list.num", null, locale)); + header.put("reporter", messageSource.getMessage("report.search.reporter", null, locale)); + header.put("inSubject", messageSource.getMessage("board.header.title", null, locale)); + header.put("inInfodate", messageSource.getMessage("report.view.infodate", null, locale)); + header.put("judgeStr", messageSource.getMessage("report.view.appraisal", null, locale)); + header.put("inCategory1Str", messageSource.getMessage("report.view.category1", null, locale)); + header.put("inCategory2Str", messageSource.getMessage("report.view.category2", null, locale)); + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List list = reportService.selectListAll(ReportCommon.setSearchUserInfo(reportSearchVO)); + + model.addAttribute("excel", new ExcelExporter(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } + + /** + * 결재 대기 목록 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델객체 + * @param request 리퀘스트객체 + * @param status 상태 객체 + * @return 견문 결재대기목록 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/waitList.do") + public String waitList(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + try { + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + //소속 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + // 접속한 사용자 정보 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(15); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + + // 권한 설정 + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + int myDutiesCode = ReportCommon.getDutiesCodeForApprove(loginUserVO.getDuties()); + vo.setDutiesForApprove(myDutiesCode); + model.addAttribute("myDutiesCode", myDutiesCode); + vo.setMyDutiesCode(String.valueOf(myDutiesCode)); + + // 전체 갯수 설정 + int totSearchCnt = judgeService.selectWaitListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = judgeService.selectWaitList(vo); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + // 평가 목록 + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + model.addAttribute("reportVO", new ReportVO()); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/waitList.tiles"; + } + + /** + * 선택된 견문의 승인화면을 반환한다. + * + * @param reportVO 임시 저장된 견문 객체 + * @param model model객체 + * @return 견문 승인 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/approval.do", method = RequestMethod.GET) + public String approvalView(@ModelAttribute("reportVO") final ReportVO reportVO, final Model model) throws Exception { + try { + ReportVO vo = reportService.select(reportVO); + model.addAttribute("reportVO", vo); + + LoginUserVO user = UserUtil.getMemberInfo(); + model.addAttribute("loginUserVO", user); + + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + int myDutiesCode = ReportCommon.getDutiesCodeForApprove(user.getDuties()); + model.addAttribute("myDutiesCode", myDutiesCode); + model.addAttribute("loginPlace1", user.getPlace1Str().substring(user.getPlace1Str().length() - 2)); + + model.addAttribute("docGroupCode", ReportCommon.getGroupCode(vo.getInPlaceCode())); + + model.addAttribute("juSection", judgeService.selectOne(vo.getInJuseqSection())); + model.addAttribute("juHead", judgeService.selectOne(vo.getInJuseqHead())); + + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + // 조회 타입 + boolean modifyProcess = (Character.getNumericValue(vo.getInStateCode().charAt(0)) > ReportCommon.getMyGroupCode() || vo.getInStateCode().charAt(1) == '4'); + boolean modifyAuth = (vo.getInUserid() != user.getUserid() && myDutiesCode < 2); + model.addAttribute("viewDoc", (modifyProcess | modifyAuth)); + + model.addAttribute("approveInfo", judgeService.selectApprove()); + + return "report/approval.tiles"; + } catch (Exception e) { + e.printStackTrace(); + } + return "error/bizError"; + } + + /** + * 여러 개의 견문을 결재한다. + * + * @param reportVO 견문객체 + * @param model 모델 객체 + * @param request 리퀘스트 객체 + * @param status 세션객체 + * @return 견문 대기 목록 조회 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = {"/approval.do", "/approvalList.do"}, method = RequestMethod.POST) + public String approvalSubmit(@ModelAttribute final ReportVO reportVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + + HashMap map = judgeService.approve(reportVO); + + if (map.get("msg").toString() != "") { + model.addAttribute("errorMsg", map.get("msg")); + + String requestUrl = request.getRequestURL().toString(); + if (requestUrl.indexOf("/approvalList.do") > 0) { + return waitList(null, null, null, null); + } else { + return approvalView(reportVO, model); + } + } + + status.setComplete(); + + return "redirect:/report/waitList.do"; + } + + /** + * 견문 결재 처리 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param request 리퀘스트 객체 + * @param status 세션 객체 + * @return 견문 결재 처리 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "approveList.do") + public String approveList(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + int dutieCode = ReportCommon.getDutiesCodeForApprove(loginUserVO.getDuties()); + + // 권한 체크 + if (dutieCode != 2 && dutieCode != 3) { + return "redirect:/report/myList.do"; + } + + try { + // 기간 설정 + Calendar cal = new GregorianCalendar(); + SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd"); + if (StringUtils.isBlank(reportSearchVO.getDateStart())) { + cal.add(Calendar.MONTH, -1); + reportSearchVO.setDateStart(dateFormatter.format(cal.getTime())); + } + if (StringUtils.isBlank(reportSearchVO.getDateEnd())) { + cal = new GregorianCalendar(); + reportSearchVO.setDateEnd(dateFormatter.format(cal.getTime())); + } + + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + //소속 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + + // 접속한 사용자 정보 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + model.addAttribute("myDutiesCode", dutieCode); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(15); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + // 전체 갯수 설정 + int totSearchCnt = judgeService.selectApproveListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = judgeService.selectApproveList(vo); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + // 평가 목록 + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/approveList.tiles"; + } + + /** + * 견문 처리 목록에 대한 엑셀 문서를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model Model 객체 + * @param locale Locale 객체 + * @return 견문 처리 목록 엑셀 문서 + */ + @RequestMapping(value = "approveExcel") + public String approveExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) { + LinkedHashMap header = new LinkedHashMap(); + header.put("docNo", messageSource.getMessage("report.list.num", null, locale)); + header.put("reporter", messageSource.getMessage("report.search.reporter", null, locale)); + header.put("inSubject", messageSource.getMessage("board.header.title", null, locale)); + header.put("inInfodate", messageSource.getMessage("report.view.infodate", null, locale)); + header.put("isSection", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.section", null, locale)); + header.put("isHead", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.head", null, locale)); + header.put("isJudge1", messageSource.getMessage("report.type.newsflash", null, locale)); + header.put("isJudge2", messageSource.getMessage("report.type.judge", null, locale)); + header.put("isJudge3", messageSource.getMessage("report.type.middle", null, locale)); + header.put("isJudge4", messageSource.getMessage("report.type.notice", null, locale)); + header.put("isJudge5", messageSource.getMessage("report.type.record", null, locale)); + header.put("isJudge6", messageSource.getMessage("report.type.survey", null, locale)); + header.put("isJudge7", messageSource.getMessage("report.type.reference", null, locale)); + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List list = judgeService.selectApproveListAll(ReportCommon.setSearchUserInfo(reportSearchVO)); + + model.addAttribute("excel", new ExcelExporter(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } + + /** + * 내실적 목록을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param request 리퀘스트 객체 + * @param status 세션 객체 + * @return 내실적 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "myList.do") + public String myList(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + try { + LoginUserVO userVO = UserUtil.getMemberInfo(); + // 기간 설정 + Calendar cal = new GregorianCalendar(); + SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd"); + if (StringUtils.isBlank(reportSearchVO.getDateStart())) { + cal.add(Calendar.YEAR, -1); + reportSearchVO.setDateStart(dateFormatter.format(cal.getTime())); + } + if (StringUtils.isBlank(reportSearchVO.getDateEnd())) { + cal = new GregorianCalendar(); + reportSearchVO.setDateEnd(dateFormatter.format(cal.getTime())); + } + + //소속 + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + + // 접속한 사용자 정보 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + model.addAttribute("myDutiesCode", ReportCommon.getDutiesCodeForApprove(userVO.getDuties())); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(15); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + // 전체 갯수 설정 + int totSearchCnt = judgeService.selectMyListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = judgeService.selectMyList(vo); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/myList.tiles"; + } + + + /** + * 견문 처리 목록에 대한 엑셀 문서를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model Model 객체 + * @param locale Locale 객체 + * @return 견문 처리 목록 엑셀 문서 + */ + @RequestMapping(value = "myListExcel") + public String myListExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) { + LinkedHashMap header = new LinkedHashMap(); + header.put("docNo", messageSource.getMessage("report.list.num", null, locale)); + header.put("reporter", messageSource.getMessage("report.search.reporter", null, locale)); + header.put("inSubject", messageSource.getMessage("board.header.title", null, locale)); + header.put("inInfodate", messageSource.getMessage("report.view.infodate", null, locale)); + header.put("isHead", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.head", null, locale)); + header.put("isSection", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.section", null, locale)); + header.put("isJudge1", messageSource.getMessage("report.type.newsflash", null, locale)); + header.put("isJudge2", messageSource.getMessage("report.type.judge", null, locale)); + header.put("isJudge3", messageSource.getMessage("report.type.middle", null, locale)); + header.put("isJudge4", messageSource.getMessage("report.type.notice", null, locale)); + header.put("isJudge5", messageSource.getMessage("report.type.record", null, locale)); + header.put("isJudge6", messageSource.getMessage("report.type.survey", null, locale)); + header.put("isJudge7", messageSource.getMessage("report.type.reference", null, locale)); + header.put("inCategory1Str", messageSource.getMessage("report.view.category1", null, locale)); + header.put("inCategory2Str", messageSource.getMessage("report.view.category2", null, locale)); + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List list = judgeService.selectMyListAll(ReportCommon.setSearchUserInfo(reportSearchVO)); + + model.addAttribute("excel", new ExcelExporter(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } +} diff --git a/src/main/java/kcg/imis/report/web/ReportMngController.java b/src/main/java/kcg/imis/report/web/ReportMngController.java new file mode 100644 index 0000000..01edc3a --- /dev/null +++ b/src/main/java/kcg/imis/report/web/ReportMngController.java @@ -0,0 +1,644 @@ +package kcg.imis.report.web; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.excel.ExcelExporter; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.member.service.MemberService; +import kcg.imis.member.vo.MemberVO; +import kcg.imis.report.service.ReportJudgeService; +import kcg.imis.report.service.ReportService; +import kcg.imis.report.vo.ReportGoalVO; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.report.vo.ReportVO; +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.UserUtil; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * @FileName : ReportMngController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/report") +public class ReportMngController { + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + /** + * 견문 기본 인터페이스이다. + */ + @Resource(name = "reportService") + private ReportService reportService; + + /** + * 견문 결재 인터페이스 + */ + @Resource(name = "reportJudgeService") + private ReportJudgeService judgeService; + + /** + * 사용자 인터페이스 + */ + @Resource(name = "memberService") + private MemberService memberService; + + /** + * Validator - 유효성 검사 + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * 코드 인터페이스 + */ + @Resource(name = "codeService") + private CodeService codeService; + + /** + * message.properties의 값을 가져오는 인터페이스. + */ + @Autowired + private MessageSource messageSource; + + /** + * 견문제출현황을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param request 리퀘스트 객체 + * @param status 세션 객체 + * @return 견문제출현황 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "presentList.do") + public String presentList(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + try { + // 기간 설정 + Calendar cal = new GregorianCalendar(); + SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd"); + if (StringUtils.isBlank(reportSearchVO.getDateStart())) { + cal.add(Calendar.YEAR, -1); + reportSearchVO.setDateStart(dateFormatter.format(cal.getTime())); + } + if (StringUtils.isBlank(reportSearchVO.getDateEnd())) { + cal = new GregorianCalendar(); + reportSearchVO.setDateEnd(dateFormatter.format(cal.getTime())); + } + + // 접속한 사용자 정보 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + model.addAttribute("myDutiesCode", UserUtil.getMemberInfo().getDuties()); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(15); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + // 전체 갯수 설정 + int totSearchCnt = reportService.selectPresentListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = reportService.selectPresentList(vo); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + // 평가 목록 + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/presentList.tiles"; + } + + /** + * 견문제출현황 엑셀문서를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param locale locale 객체 + * @return 견문제출현황 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "presentExcel") + public String presentExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) throws Exception { + LinkedHashMap header = new LinkedHashMap(); + header.put("docNo", messageSource.getMessage("report.list.num", null, locale)); + header.put("inName", messageSource.getMessage("report.search.reporter", null, locale)); + header.put("inSubject", messageSource.getMessage("board.header.title", null, locale)); + header.put("inInfodate", messageSource.getMessage("report.view.infodate", null, locale)); + header.put("isHead", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.head", null, locale)); + header.put("isSection", messageSource.getMessage("report.view.approval", null, locale) + + messageSource.getMessage("member.view.rptPermission.section", null, locale)); + header.put("isJudge1", messageSource.getMessage("report.type.newsflash", null, locale)); + header.put("isJudge2", messageSource.getMessage("report.type.judge", null, locale)); + header.put("isJudge3", messageSource.getMessage("report.type.middle", null, locale)); + header.put("isJudge4", messageSource.getMessage("report.type.notice", null, locale)); + header.put("isJudge5", messageSource.getMessage("report.type.record", null, locale)); + header.put("isJudge6", messageSource.getMessage("report.type.survey", null, locale)); + header.put("isJudge7", messageSource.getMessage("report.type.reference", null, locale)); + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List list = reportService.selectPresentListAll(ReportCommon.setSearchUserInfo(reportSearchVO)); + + model.addAttribute("excel", new ExcelExporter(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } + + /** + * 목표 관리 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델객체 + * @return 목표 관리 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/goal.do", method = RequestMethod.GET) + public String goal(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model) throws Exception { + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + model.addAttribute("authAdmin", loginUserVO.getAuthAdmin()); + + // 소속 목록 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + + // 소속 + if (StringUtils.isBlank(reportSearchVO.getPlaceGroup())) { + reportSearchVO.setPlaceGroup(loginUserVO.getPlace1()); + } + + Calendar c = Calendar.getInstance(); + int currYear = c.get(Calendar.YEAR); + int currMonth = c.get(Calendar.MONTH) + 1; + // 기간 + if (StringUtils.isBlank(reportSearchVO.getYear())) { + reportSearchVO.setYear(String.valueOf(currYear)); + reportSearchVO.setMonth(String.valueOf(currMonth)); + } + + List yearList = new ArrayList(); + for (int i = 2005; i <= currYear; i++) { + yearList.add(i); + } + model.addAttribute("yearList", yearList); + + List monthList = new ArrayList(); + for (int i = 1; i <= 12; i++) { + monthList.add(i); + } + model.addAttribute("monthList", monthList); + + // 목표 목록 + model.addAttribute("goalList", reportService.selectGoalList(reportSearchVO)); + + model.addAttribute("reportSearchVO", reportSearchVO); + model.addAttribute("reportGoalVO", new ReportGoalVO()); + return "report/goal.tiles"; + } + + /** + * 목표를 수정한다. + * + * @param reportGoalVO 견문 목표 객체 + * @param model 모델객체 + * @return 목표 관리 목록 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/goal.do", method = RequestMethod.POST) + public String goal(@ModelAttribute final ReportGoalVO reportGoalVO, final Model model) throws Exception { + try { + reportService.updateGoal(reportGoalVO); + } catch (Exception e) { + e.printStackTrace(); + } + return "redirect:/report/goal.do"; + } + + /** + * 사용자별 목표/실적 조회 화면을 반환한다. + * 소속코드가 없으면 사용자의 소속 코드를 세팅한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @return 목표/실적 조회 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/goalStats.do") + public String getStatsUser(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model) throws Exception { + if (StringUtils.isBlank(reportSearchVO.getPlaceGroup())) { + reportSearchVO.setPlaceGroup(UserUtil.getMemberInfo().getPlace1()); + } + + return goalStats(reportSearchVO, model); + } + + /** + * 소속별 목표/실적 조회 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @return 목표/실적 조회 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/goalStatsPlace.do") + public String getStatsPlace(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model) throws Exception { + reportSearchVO.setPlaceGroup(null); + return goalStats(reportSearchVO, model); + } + + /** + * 목표/실적 조회 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @return 목표/실적 조회 화면 + * @throws Exception 기본예외처리 + */ + public String goalStats(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model) throws Exception { + model.addAttribute("authAdmin", UserUtil.getMemberInfo().getAuthAdmin()); + + // 소속 목록 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + + Calendar c = Calendar.getInstance(); + int currYear = c.get(Calendar.YEAR); + int currMonth = c.get(Calendar.MONTH) + 1; + // 기간 + if (StringUtils.isBlank(reportSearchVO.getYear())) { + reportSearchVO.setYear(String.valueOf(currYear)); + reportSearchVO.setMonth(String.valueOf(currMonth)); + } + + List yearList = new ArrayList(); + for (int i = 2005; i <= currYear; i++) { + yearList.add(i); + } + model.addAttribute("yearList", yearList); + + List monthList = new ArrayList(); + for (int i = 1; i <= 12; i++) { + monthList.add(i); + } + model.addAttribute("monthList", monthList); + + // 목표/실적 통계 + if (StringUtils.isBlank(reportSearchVO.getPlaceGroup())) { + model.addAttribute("goalStats", reportService.getGoalStatsPlace(reportSearchVO)); + } else { + model.addAttribute("goalStats", reportService.getGoalStats(reportSearchVO)); + } + + model.addAttribute("reportSearchVO", reportSearchVO); + + return "report/goalStats.tiles"; + } + + /** + * 목표/실적 엑셀 문서를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param locale locale 객체 + * @return 목표/실적 엑셀 문서 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/goalStatsExcel.do") + public String goalStatsExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) throws Exception { + LinkedHashMap header = new LinkedHashMap(); + header.put("NAME", messageSource.getMessage("report.goal.name", null, locale)); + header.put("RESULT1", messageSource.getMessage("report.goal.agent", null, locale) + + messageSource.getMessage("report.goal.result", null, locale)); + header.put("GOAL1", messageSource.getMessage("report.goal.agent", null, locale) + + messageSource.getMessage("report.goal.goal", null, locale)); + header.put("RESULT2", messageSource.getMessage("report.goal.foreignCoop", null, locale) + + messageSource.getMessage("report.goal.result", null, locale)); + header.put("GOAL2", messageSource.getMessage("report.goal.foreignCoop", null, locale) + + messageSource.getMessage("report.goal.goal", null, locale)); + header.put("RESULT3", messageSource.getMessage("report.goal.infoCoop", null, locale) + + messageSource.getMessage("report.goal.result", null, locale)); + header.put("GOAL3", messageSource.getMessage("report.goal.infoCoop", null, locale) + + messageSource.getMessage("report.goal.goal", null, locale)); + header.put("RESULT4", messageSource.getMessage("report.goal.reportAgent", null, locale) + + messageSource.getMessage("report.goal.result", null, locale)); + header.put("GOAL4", messageSource.getMessage("report.goal.reportAgent", null, locale) + + messageSource.getMessage("report.goal.goal", null, locale)); + header.put("RESULT_TOTAL", messageSource.getMessage("report.goal.sum", null, locale) + + messageSource.getMessage("report.goal.result", null, locale)); + header.put("GOAL_TOTAL", messageSource.getMessage("report.goal.sum", null, locale) + + messageSource.getMessage("report.goal.goal", null, locale)); + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List> list = new ArrayList>(); + if (StringUtils.isBlank(reportSearchVO.getPlaceGroup())) { + list = reportService.getGoalStatsPlace(reportSearchVO); + } else { + list = reportService.getGoalStats(reportSearchVO); + } + + model.addAttribute("excel", new ExcelExporter>(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } + + /** + * 평가기록부를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param request 리퀘스트 객체 + * @param status 세션 객체 + * @return 평가기록부 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "judgeRecord.do") + public String recordtList(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + try { + // 기간 설정 + Calendar cal = new GregorianCalendar(); + SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd"); + if (StringUtils.isBlank(reportSearchVO.getDateStart())) { + cal.add(Calendar.YEAR, -1); + reportSearchVO.setDateStart(dateFormatter.format(cal.getTime())); + } + if (StringUtils.isBlank(reportSearchVO.getDateEnd())) { + cal = new GregorianCalendar(); + reportSearchVO.setDateEnd(dateFormatter.format(cal.getTime())); + } + + // 소속 목록 + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1,true)); + + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + + // 접속한 사용자 정보 + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + model.addAttribute("myDutiesCode", loginUserVO.getDuties()); + + /* 페이징 처리 정보 */ + reportSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + reportSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + /* 페이징 처리 */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(reportSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(15); + paginationInfo.setPageSize(reportSearchVO.getPageSize()); + + reportSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + reportSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + reportSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + ReportSearchVO vo = ReportCommon.setSearchUserInfo(reportSearchVO); + // 전체 갯수 설정 + int totSearchCnt = reportService.selectRecordListCnt(vo); + paginationInfo.setTotalRecordCount(totSearchCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("totalCnt", totSearchCnt); + + List reportList = reportService.selectRecordList(vo); + model.addAttribute("reportList", reportList); + + // 검색 조건 + model.addAttribute("reportSearchVO", vo); + // 평가 목록 + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/judgeRecord.tiles"; + } + + /** + * 평가기록부 엑셀문서를 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @param locale locale 객체 + * @return 평가기록부 엑셀문서 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "recordExcel") + public String recordExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) throws Exception { + LinkedHashMap header = new LinkedHashMap(); + header.put("docNo", messageSource.getMessage("report.list.num", null, locale)); + header.put("inInfodate", messageSource.getMessage("report.view.infodate", null, locale)); + header.put("inDuty", messageSource.getMessage("report.view.position", null, locale)); + header.put("inPlaceName", messageSource.getMessage("report.search.place", null, locale)); + header.put("inDocPlace", messageSource.getMessage("report.search.place2", null, locale)); + header.put("inName", messageSource.getMessage("report.search.reporter", null, locale)); + header.put("inSubject", messageSource.getMessage("board.header.title", null, locale)); + header.put("isJudge1", messageSource.getMessage("report.type.newsflash", null, locale)); + header.put("isJudge2", messageSource.getMessage("report.type.judge", null, locale)); + header.put("isJudge3", messageSource.getMessage("report.type.middle", null, locale)); + header.put("isJudge4", messageSource.getMessage("report.type.notice", null, locale)); + header.put("isJudge5", messageSource.getMessage("report.type.record", null, locale)); + header.put("isJudge6", messageSource.getMessage("report.type.survey", null, locale)); + header.put("isJudge7", messageSource.getMessage("report.type.reference", null, locale)); + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List list = reportService.selectRecordListAll(ReportCommon.setSearchUserInfo(reportSearchVO)); + + model.addAttribute("excel", new ExcelExporter(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + + return "excelView"; + } + + /** + * 일괄입력 화면을 반환한다. + * + * @param model 모델객체 + * @return 일괄입력 화면 + * @throws Exception 기본예외처리 + */ + @RequestMapping(value = "/offlineWrite.do", method = RequestMethod.GET) + public String offlineAdd(final Model model) throws Exception { + try { + model.addAttribute("loginUserVO", UserUtil.getMemberInfo()); + + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + + if (!model.containsAttribute("reportVO")) { + ReportVO reportVO = new ReportVO(); + LoginUserVO userVO = UserUtil.getMemberInfo(); + + reportVO.setInAgencyCode(ReportCommon.getAgencyCode(userVO.getPlace1())); + reportVO.setInPlaceCode(userVO.getPlace1()); + reportVO.setInPlaceName(ReportCommon.getPlaceShortName(userVO.getPlace1Str())); + reportVO.setInPlaceNum(reportService.selectPlaceNum(reportVO)); + + model.addAttribute("reportVO", reportVO); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + + return "report/offlineAdd.tiles"; + } + + /** + * 견문을 입력한 뒤 입력된 견문의 상세 조회 화면으로 이동한다. + * @param multiRequest + * @param reportVO 견문 모델 객체 + * @param bindingResult + * @param model + * @param status + * @return String 뷰 이름 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value = "/offlineWrite.do", method = RequestMethod.POST) + public String offlineAdd(final MultipartHttpServletRequest multiRequest, @ModelAttribute("reportVO") final ReportVO reportVO, + final BindingResult bindingResult, final Model model, final SessionStatus status) throws Exception { + // 사용자 인증 검사 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated) { + // 유효성 검사 + beanValidator.validate(reportVO, bindingResult); + if (bindingResult.hasErrors()) { + return offlineAdd(model); + } + + MemberVO memberVO = memberService.getMemberInfo(reportVO.getInUserid()); + + // 보고자 정보 + reportVO.setInName(memberVO.getName()); + reportVO.setInPlaceCode(memberVO.getPlace1()); + reportVO.setInPlace(memberVO.getPlace1()); + reportVO.setInPlaceName(ReportCommon.getPlaceShortName(memberVO.getPlace1Str())); + reportVO.setInPlaceNum(reportService.selectPlaceNum(reportVO)); + reportVO.setInAgencyCode(ReportCommon.getAgencyCode(reportVO.getInPlaceCode())); + reportVO.setInPlace1(memberVO.getPlace1Str()); + reportVO.setInPlace2(memberVO.getPlace2Str()); + reportVO.setInDuty(memberVO.getDutyStr()); + reportVO.setInIp(multiRequest.getRemoteAddr()); + + // 보고일 파싱 + String infoDate = reportVO.getStrInfodate().toString(); + reportVO.setInInfoYear(Integer.valueOf(infoDate.split("-")[0])); + reportVO.setInInfoMonth(Integer.valueOf(infoDate.split("-")[1])); + reportVO.setInInfoDay(Integer.valueOf(infoDate.split("-")[2])); + + // 상태코드 처리 + int offGroupCode = ReportCommon.getGroupCode(memberVO.getPlace1()); + + if (reportVO.getInJudge() > 0 ) { + reportVO.setInStateCode(String.valueOf(offGroupCode) + "4"); + } else { + reportVO.setInStateCode(String.valueOf(offGroupCode) + "1"); + } + + // 일괄보고 정보 + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + reportVO.setInOfflineUserid(loginUserVO.getUserid()); + + reportVO.setInJudge(reportVO.getInJudge()); + + // 파일 저장 및 데이터 입력 + final Map fileMap = multiRequest.getFileMap(); + HashMap map = reportService.insert(reportVO, fileMap); + + status.setComplete(); + + int seq = (Integer) map.get("seq"); + int result = (Integer) map.get("result"); + if (result == 1 && seq > 0) { + return "redirect:/report/update.do?inSeq=" + seq; + } + } + return "error/bizError"; + } + +} diff --git a/src/main/java/kcg/imis/report/web/ReportStatsController.java b/src/main/java/kcg/imis/report/web/ReportStatsController.java new file mode 100644 index 0000000..3cfb928 --- /dev/null +++ b/src/main/java/kcg/imis/report/web/ReportStatsController.java @@ -0,0 +1,290 @@ +package kcg.imis.report.web; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.cmmn.CommConstants; +import kcg.imis.cmmn.excel.ExcelExporter; +import kcg.imis.cmmn.service.CodeService; +import kcg.imis.cmmn.vo.CodeVO; +import kcg.imis.report.service.ReportJudgeService; +import kcg.imis.report.vo.ReportSearchVO; +import kcg.imis.sec.UserUtil; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.support.SessionStatus; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * @FileName : ReportStatsController.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Controller +@RequestMapping("/report") +public class ReportStatsController { + /** + * Validator - 유효성 검사 + **/ + @Resource(name = "beanValidator") + private DefaultBeanValidator beanValidator; + + /** + * 견문 결재 인터페이스 + */ + @Resource(name = "reportJudgeService") + private ReportJudgeService judgeService; + + /** + * 코드 인터페이스 + */ + @Resource(name = "codeService") + private CodeService codeService; + + /** + * message.properties의 값을 가져오는 인터페이스. + */ + @Autowired + private MessageSource messageSource; + + /** + * 견문 통계 검색 화면을 반환한다. + * @param reportSearchVO 견문 검색 객체 + * @param model 모델 객체 + * @return 견문 통계 검색 화면 + */ + @RequestMapping(value = "/statistics.do") + public String statistics(final ReportSearchVO reportSearchVO, final Model model) { + try { + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + int myGroupCode = ReportCommon.getMyGroupCode(); + model.addAttribute("myGroupCode", myGroupCode); + + switch (myGroupCode) { + case 3: + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + break; + case 2: + model.addAttribute("placeList", codeService.getPlace1SubListWithMain(UserUtil.getMemberInfo().getPlace1())); + break; + default: + model.addAttribute("myPlaceCode", UserUtil.getMemberInfo().getPlace1()); + model.addAttribute("myPlaceName", UserUtil.getMemberInfo().getPlace1Str()); + break; + } + + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + model.addAttribute("reportSearchVO", reportSearchVO); + } catch (Exception e) { + e.printStackTrace(); + } + + return "report/statistics.tiles"; + } + + /** + * 견문 통계 결과 화면을 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model model 객체 + * @param request request 객체 + * @param status session 객체 + * @throws Exception 기본예외처리 + * @return 견문 통계 결과 화면 + */ + @RequestMapping(value = "/statsResult.do") + public String statsResult(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, + final HttpServletRequest request, final SessionStatus status) throws Exception { + //분류 1,2,3,4 + model.addAttribute("category1", codeService.getCodeMap(CommConstants.CODE_CATE1)); + model.addAttribute("category2", codeService.getCodeMap(CommConstants.CODE_CATE2)); + + //model.addAttribute("placeList", codeService.getPlace1List(false)); + model.addAttribute("placeList", codeService.getCodeList(CommConstants.CODE_PLACE1)); + model.addAttribute("judgeList", codeService.getCodeList(CommConstants.CODE_JUDGE)); + + model.addAttribute("myGroupCode", ReportCommon.getMyGroupCode()); + model.addAttribute("reportSearchVO", reportSearchVO); + + try { + ReportSearchVO searchVO = (ReportSearchVO) reportSearchVO.clone(); + searchVO = ReportCommon.setSearchUserInfo(searchVO); + + // 소속 선택하지 않은 경우 모두 세팅 + if (searchVO.getPlaces() == null || searchVO.getPlaces().length == 0) { + List placeList = new ArrayList(); + for (CodeVO code : codeService.getCodeList(CommConstants.CODE_PLACE1)) { + placeList.add(code.getCode()); + } + searchVO.setPlaces(placeList.toArray(new String[placeList.size()])); + } + + // 분야별 통계 + if ("C".equals(searchVO.getStatsType())) { + + // 분류 아무것도 선택하지 않은 경우 모두 세팅 + if (searchVO.isSearchCate1() && (searchVO.getCategory1() == null || searchVO.getCategory1().length == 0)) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE1); + searchVO.setCategory1(category.keySet().toArray(new String[category.size()])); + } + if (searchVO.isSearchCate2() && (searchVO.getCategory2() == null || searchVO.getCategory2().length == 0)) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE2); + searchVO.setCategory2(category.keySet().toArray(new String[category.size()])); + } + + model.addAttribute("statistics", judgeService.statsCategory(searchVO)); + + } else if ("J".equals(searchVO.getStatsType())) { + + if ((searchVO.getJudges() == null || searchVO.getJudges().length == 0)) { + HashMap judge = codeService.getCodeMap(CommConstants.CODE_JUDGE); + searchVO.setJudges( judge.keySet().toArray(new String[ judge.size()])); + } + + // 평가별 통계 + model.addAttribute("statistics", judgeService.statsJudge(searchVO)); + } + + model.addAttribute("searchVO", searchVO); + return "report/statsResult.tiles"; + + } catch (Exception e) { + e.printStackTrace(); + } + return "error/bizError"; + } + + /** + * 견문 통계 결과를 엑셀 문서로 반환한다. + * + * @param reportSearchVO 견문 검색 객체 + * @param model model 객체 + * @param locale Locale 객체 + * @throws Exception 기본예외처리 + * @return 견문 통계 결과 화면 + */ + @RequestMapping(value = "/statsExcel") + public String statsExcel(@ModelAttribute final ReportSearchVO reportSearchVO, final Model model, final Locale locale) throws Exception { + LinkedHashMap header = new LinkedHashMap(); + + + // 분야별 통계 + if ("C".equals(reportSearchVO.getStatsType())) { + + if (reportSearchVO.getCategory1() == null || reportSearchVO.getCategory1().length == 0) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE1); + reportSearchVO.setCategory1(category.keySet().toArray(new String[category.size()])); + } + if (reportSearchVO.getCategory2() == null || reportSearchVO.getCategory2().length == 0) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE2); + reportSearchVO.setCategory2(category.keySet().toArray(new String[category.size()])); + } + + ReportSearchVO searchVO = (ReportSearchVO) reportSearchVO.clone(); + searchVO = ReportCommon.setSearchUserInfo(searchVO); + + header.put("PLACE_NAME", messageSource.getMessage("report.view.division", null, locale)); + header.put("TOTAL", messageSource.getMessage("report.stats.total", null, locale)); + + + + + for (String category : reportSearchVO.getCategory1()) { + header.put(category + "_1", codeService.getCode(CommConstants.CODE_CATE1, category).getName()); + } + for (String category : reportSearchVO.getCategory2()) { + header.put(category + "_2", codeService.getCode(CommConstants.CODE_CATE2, category).getName()); + } + + try { + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + // 소속 선택하지 않은 경우 모두 세팅 + if (searchVO.getPlaces() == null || searchVO.getPlaces().length == 0) { + List placeList = new ArrayList(); + for (CodeVO code : codeService.getCodeList(CommConstants.CODE_PLACE1)) { + placeList.add(code.getCode()); + } + searchVO.setPlaces(placeList.toArray(new String[placeList.size()])); + } + + // 분류 아무것도 선택하지 않은 경우 모두 세팅 + if (searchVO.isSearchCate1() && searchVO.getCategory1().length == 0) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE1); + + searchVO.setCategory1(category.keySet().toArray(new String[category.size()])); + } + if (searchVO.isSearchCate2() && searchVO.getCategory2().length == 0) { + HashMap category = codeService.getCodeMap(CommConstants.CODE_CATE2); + searchVO.setCategory2(category.keySet().toArray(new String[category.size()])); + } + + List> list = judgeService.statsCategory(searchVO); + + model.addAttribute("excel", new ExcelExporter>(header, list, title)); + model.addAttribute("filename", title); + + } catch (Exception e) { + e.printStackTrace(); + } + } else if ("J".equals(reportSearchVO.getStatsType())) { + + if ((reportSearchVO.getJudges() == null || reportSearchVO.getJudges().length == 0)) { + HashMap judge = codeService.getCodeMap(CommConstants.CODE_JUDGE); + reportSearchVO.setJudges( judge.keySet().toArray(new String[ judge.size()])); + } + + + ReportSearchVO searchVO = (ReportSearchVO) reportSearchVO.clone(); + searchVO = ReportCommon.setSearchUserInfo(searchVO); + + header.put("PLACE_NAME", messageSource.getMessage("report.view.division", null, locale)); + + header.put("C01", messageSource.getMessage("report.type.newsflash", null, locale)); + header.put("C02", messageSource.getMessage("report.type.judge", null, locale)); + header.put("C03", messageSource.getMessage("report.type.middle", null, locale)); + header.put("C04", messageSource.getMessage("report.type.notice", null, locale)); + header.put("C05", messageSource.getMessage("report.type.record", null, locale)); + header.put("C06", messageSource.getMessage("report.type.survey", null, locale)); + header.put("C07", messageSource.getMessage("report.type.reference", null, locale)); + + header.put("AG", messageSource.getMessage("report.stats.AGrade", null, locale)); + header.put("BG", messageSource.getMessage("report.stats.BGrade", null, locale)); + header.put("CG", messageSource.getMessage("report.stats.CGrade", null, locale)); + header.put("DG", messageSource.getMessage("report.stats.DGrade", null, locale)); + + Date d = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String title = String.format("%s_%s", messageSource.getMessage("report.title", null, locale), sdf.format(d)); + + List> list = judgeService.statsJudge(searchVO); + + model.addAttribute("excel", new ExcelExporter>(header, list, title)); + model.addAttribute("filename", title); + } + + return "excelView"; + } +} diff --git a/src/main/java/kcg/imis/sec/AuthType.java b/src/main/java/kcg/imis/sec/AuthType.java new file mode 100644 index 0000000..fee6c34 --- /dev/null +++ b/src/main/java/kcg/imis/sec/AuthType.java @@ -0,0 +1,30 @@ +package kcg.imis.sec; + +/** + * @FileName : AuthType.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public final class AuthType { + /** + * 본부. (해양경비안전본부) + */ + public static final int HEADQUARTERS = 1; + /** + * 지방본부. (중부본부, 제주본부, 서해본부 등) + */ + public static final int LOCAL_HEADQUARTERS = 6; + /** + * 나머지. (해양경비안전서 등) + */ + public static final int AGENCY = 10; + + /** + * 생성자. + */ + private AuthType() { + } +} diff --git a/src/main/java/kcg/imis/sec/AuthenticationProvider.java b/src/main/java/kcg/imis/sec/AuthenticationProvider.java new file mode 100644 index 0000000..e9f98b7 --- /dev/null +++ b/src/main/java/kcg/imis/sec/AuthenticationProvider.java @@ -0,0 +1,70 @@ +package kcg.imis.sec; + +import java.util.Collection; + +import javax.annotation.Resource; + +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +import egovframework.rte.fdl.security.userdetails.EgovUserDetails; + +/** + * @FileName : AuthenticationProvider.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class AuthenticationProvider extends DaoAuthenticationProvider { + + /** + * 사용자 서비스. + */ + /*@Resource(name = "memberService") + private MemberService memberSerivce;*/ + + + @Override + public Authentication authenticate(final Authentication authentication) throws AuthenticationException { + + String username = authentication.getName(); + String password = (String) authentication.getCredentials(); + + EgovUserDetails user = null; + Collection authorities = null; + Authentication auth = null; + + try { + user = (EgovUserDetails) retrieveUser(username, (UsernamePasswordAuthenticationToken) authentication); + + if (!password.equalsIgnoreCase(user.getPassword())) { + /* MemberVO memberVO = new MemberVO(); + memberVO.setUserid(user.getUsername());*/ + throw new BadCredentialsException( + String.format("비밀번호가 일치하지 않습니다. ") + ); + } + + authorities = user.getAuthorities(); + auth = new UsernamePasswordAuthenticationToken(user, password, authorities); + } catch (UsernameNotFoundException e) { + logger.info(e.toString()); + throw new UsernameNotFoundException(e.getMessage()); + } catch (BadCredentialsException e) { + logger.info(e.toString()); + throw new BadCredentialsException(e.getMessage()); + } catch (Exception e) { + logger.info(e.toString()); + throw new RuntimeException(e.getMessage()); + } + + return auth; + } +} diff --git a/src/main/java/kcg/imis/sec/ImisUserDetails.java b/src/main/java/kcg/imis/sec/ImisUserDetails.java new file mode 100644 index 0000000..2b1d8ef --- /dev/null +++ b/src/main/java/kcg/imis/sec/ImisUserDetails.java @@ -0,0 +1,28 @@ +package kcg.imis.sec; + +import java.util.Collection; + +import org.springframework.security.core.GrantedAuthority; + +import egovframework.rte.fdl.security.userdetails.EgovUserDetails; + +/** + * @FileName : ImisUserDetails.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ImisUserDetails extends EgovUserDetails { + + public ImisUserDetails(final String username, final String password, final boolean enabled, final boolean accountNonExpired, + final boolean credentialsNonExpired, final boolean accountNonLocked, final Collection authorities, final Object egovVO) throws IllegalArgumentException { + super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities, egovVO); + } + + public ImisUserDetails(final String username, final String password, final boolean enabled, final Object egovVO) throws IllegalArgumentException { + super(username, password, enabled, egovVO); + } + +} diff --git a/src/main/java/kcg/imis/sec/LoginSuccessHandler.java b/src/main/java/kcg/imis/sec/LoginSuccessHandler.java new file mode 100644 index 0000000..e2eba42 --- /dev/null +++ b/src/main/java/kcg/imis/sec/LoginSuccessHandler.java @@ -0,0 +1,181 @@ +/** + * LoginSuccessHandler.java + * @author 임새미 + * @since 2016. 10. 11. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 11. 임새미 최초생성 + * + */ +package kcg.imis.sec; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import kcg.imis.cmmn.aop.CommonAop; +import kcg.imis.cmmn.mapper.CodeMapper; +import kcg.imis.cmmn.service.LogService; +import kcg.imis.sec.mapper.SecurityMapper; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.core.Authentication; +import org.springframework.security.web.DefaultRedirectStrategy; +import org.springframework.security.web.RedirectStrategy; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; + +import egovframework.rte.fdl.property.EgovPropertyService; + +/** + * @FileName : LoginSuccessHandler.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class LoginSuccessHandler implements AuthenticationSuccessHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(LoginSuccessHandler.class); + + /** + * 사용자 서비스 객체. + */ + /*@Resource(name = "memberService") + private MemberService memberService;*/ + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + @Resource(name = "codeMapper") + CodeMapper codeMapper; + + @Resource(name = "logService") + LogService logService; + + @Resource(name = "propertiesService") + private EgovPropertyService propertiesService; + + + private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy(); + + private String successUrl = "/"; + + public void setSuccessUrl(String successUrl){ + this.successUrl = successUrl; + } + + + /** + * security 인증 성공 이후의 절차를 진행한다. + * + * @param request request객체 + * @param response response객체 + * @param authentication authentication객체 + * @exception IOException, ServletException 입출력, 서블릿 예외 + */ + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) + throws IOException, ServletException { + + try { + LoginUserVO user = UserUtil.getMemberInfo(); + + HttpSession session = request.getSession(); + session.setAttribute("userVO", user); + + String userId = user.getUserid(); + + user.setAuthHead(user.getUsegrade() == 3 ? 1 : 0); + user.setAuthSection(user.getUsegrade() == 4 ? 1 : 0); + + + user.setAuthAdmin(("admin".equals(user.getUserid()) || user.getAuthManage() > 0 && "PS00".equals(user.getPlace1())) ? 1 : 0 ); + + user.setAuthApprove(user.getAuthHead() | user.getAuthSection() | user.getAuthProxyHead() | user.getAuthProxySection()); + + String duties = user.getDuties(); + if (user.getAuthProxySection() > 0 || user.getAuthSection() > 0) { + duties = "03"; + } + if (user.getAuthProxyHead() > 0 || user.getAuthHead() > 0) { + duties = "04"; + } + user.setDuties(duties); + + /*auth_type */ + user.setAuthType(getAuthType(user.getPlace1())); + + /*IP정보*/ + String ip = request.getHeader("X-FORWARDED-FOR"); + if (StringUtils.isBlank(ip)) { + ip = request.getRemoteAddr(); + } + + + /* 관리자? */ + int roleLev = user.getRolelevel(); + + user.setIsAdmin((roleLev <= propertiesService.getInt("adminLevel")) ? true : false); + user.setIsSysAdmin((roleLev <= propertiesService.getInt("sysAdminLevel")) || propertiesService.getString("sysAdminId").equals(userId) ? true : false); + + + try{ + + String os = request.getParameter("os"); + String bw = request.getParameter("browser"); + String bwVersion = request.getParameter("browser-version"); + + HashMap paramMap = new HashMap(); + paramMap.put("os", os); + paramMap.put("bw", bw); + paramMap.put("bwVersion", bwVersion); + paramMap.put("userid", user.getUserid()); + paramMap.put("name", user.getName()); + paramMap.put("userip", request.getRemoteAddr()); + paramMap.put("place1", user.getPlace1()); + paramMap.put("place2", user.getPlace2()); + paramMap.put("position", user.getDuties()); + + logService.insertLoginLog(paramMap); + }catch(Exception e){ + LOGGER.error("fail login log..............."); + LOGGER.error(e.getMessage()); + } + + /* 설정된 successUrl로 리다이렉트한다.*/ + redirectStrategy.sendRedirect(request, response, successUrl); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + + /** + * 소속기관에 따른 기관 타입을 결정한다. + * + * @param place 소속기관 코드 + * @return 기관 타입 + */ + private int getAuthType(String place){ + int type = 10; + if ("PS00".equalsIgnoreCase(place)) { + type = 1; + } else if ("PS92".equalsIgnoreCase(place) || "PS93".equalsIgnoreCase(place) || "PS94".equalsIgnoreCase(place) || "PS91".equalsIgnoreCase(place) || "ps90".equalsIgnoreCase(place)) { + type = 6; + } + return type; + } + +} diff --git a/src/main/java/kcg/imis/sec/LoginUserVO.java b/src/main/java/kcg/imis/sec/LoginUserVO.java new file mode 100644 index 0000000..51d2fb8 --- /dev/null +++ b/src/main/java/kcg/imis/sec/LoginUserVO.java @@ -0,0 +1,554 @@ +package kcg.imis.sec; + +import java.io.Serializable; + +/** + * @FileName : LoginUserVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@SuppressWarnings("unused") +public class LoginUserVO implements Serializable { + + private static final long serialVersionUID = -442635991774448712L; + + /** + * rnum. + */ + private int rnum; + + /** + * 경찰 타입. 국제경찰 : 1, 일반 경찰 : 2 + */ + private int type = 1; + + /* DB 컬럼 */ + /** + * 사용자 ID. + */ + private String userid; + + // 20180528 게시판 내용 검색 부분 추가 + private String bdcontent; + + public String getBdcontent() { + return bdcontent; + } + public void setBdcontent(String bdcontent) { + this.bdcontent = bdcontent; + } + /** + * 비밀번호. + */ + private String passwd; + /** + * 이름. + */ + private String name; + /** + * 소속1. + */ + private String place1; + /** + * 소속2. + */ + private String place2; + /** + * 계급. + */ + private String position; + /** + * 직책(없음/반장/계장/과장). + */ + private String duties; + /** + * IP. + */ + private String ip; + /** + * 사용자 등급. + */ + private int usegrade; + + /* 권한 & 직무코드에 따른 명칭 */ + private String role; + /** + * 소속1 명칭. + */ + private String place1Str; + /** + * 소속1 명칭 약자. + */ + private String place1Yak; + /** + * 소속2 명칭. + */ + private String place2Str; + /** + * 소속3 명칭. + */ + private String place3Str; + /** + * 계급 명칭. + */ + private String positionStr; + /** + * 직급 명칭. + */ + private String dutyStr; + + /** + * 견문 권한 + */ + private int rptAuth; + + /** + * 권한 레벨. + */ + private int rolelevel; + /** + * 각 기관의 관리자 여부. + */ + private boolean isAdmin; + + /** + * 시스템 관리자 여부. + */ + private boolean isSysAdmin; + + private int authType; + private int authAdmin; + private int authSection; + private int authHead; + private int authApprove; + + + /* 견문 권한 */ + private int authCode; + private int authSearch; + private int authStatistics; + private int authWaitList; + private int authManage; + private int authProxySection; + private int authProxyHead; + + /** + * 로그인 실패횟수. + */ + private int chkcnt = 0; + + /** + * @return the rnum + */ + public int getRnum() { + return rnum; + } + /** + * @param rnum the rnum to set + */ + public void setRnum(final int rnum) { + this.rnum = rnum; + } + /** + * @return the type + */ + public int getType() { + return type; + } + /** + * @param type the type to set + */ + public void setType(final int type) { + this.type = type; + } + /** + * @return the userid + */ + public String getUserid() { + return userid; + } + /** + * @param userid the userid to set + */ + public void setUserid(final String userid) { + this.userid = userid; + } + /** + * @return the passwd + */ + public String getPasswd() { + return passwd; + } + /** + * @param passwd the passwd to set + */ + public void setPasswd(final String passwd) { + this.passwd = passwd; + } + /** + * @return the idno + */ + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(final String name) { + this.name = name; + } + /** + * @return the place1 + */ + public String getPlace1() { + return place1; + } + /** + * @param place1 the place1 to set + */ + public void setPlace1(final String place1) { + this.place1 = place1; + } + /** + * @return the place2 + */ + public String getPlace2() { + return place2; + } + /** + * @param place2 the place2 to set + */ + public void setPlace2(final String place2) { + this.place2 = place2; + } + /** + * @return the position + */ + public String getPosition() { + return position; + } + /** + * @param position the position to set + */ + public void setPosition(final String position) { + this.position = position; + } + /** + * @return the duties + */ + public String getDuties() { + return duties; + } + /** + * @param duties the duties to set + */ + public void setDuties(final String duties) { + this.duties = duties; + } + /** + * @return the ip + */ + public String getIp() { + return ip; + } + /** + * @param ip the ip to set + */ + public void setIp(final String ip) { + this.ip = ip; + } + /** + * @return the usegrade + */ + public int getUsegrade() { + return usegrade; + } + /** + * @param usegrade the usegrade to set + */ + public void setUsegrade(final int usegrade) { + this.usegrade = usegrade; + } + /** + * @return the role + */ + public String getRole() { + return role; + } + /** + * @param role the role to set + */ + public void setRole(final String role) { + this.role = role; + } + /** + * @return the place1Str + */ + public String getPlace1Str() { + return place1Str; + } + /** + * @param place1Str the place1Str to set + */ + public void setPlace1Str(final String place1Str) { + this.place1Str = place1Str; + } + /** + * @return the place1Yak + */ + public String getPlace1Yak() { + return place1Yak; + } + /** + * @param place1Yak the place1Yak to set + */ + public void setPlace1Yak(final String place1Yak) { + this.place1Yak = place1Yak; + } + /** + * @return the place2Str + */ + public String getPlace2Str() { + return place2Str; + } + /** + * @param place2Str the place2Str to set + */ + public void setPlace2Str(final String place2Str) { + this.place2Str = place2Str; + } + /** + * @return the place3Str + */ + public String getPlace3Str() { + return place3Str; + } + /** + * @param place3Str the place3Str to set + */ + public void setPlace3Str(final String place3Str) { + this.place3Str = place3Str; + } + /** + * @return the positionStr + */ + public String getPositionStr() { + return positionStr; + } + /** + * @param positionStr the positionStr to set + */ + public void setPositionStr(final String positionStr) { + this.positionStr = positionStr; + } + /** + * @return the rolelevel + */ + public int getRolelevel() { + return rolelevel; + } + /** + * @param rolelevel the rolelevel to set + */ + public void setRolelevel(final int rolelevel) { + this.rolelevel = rolelevel; + } + /** + * @return the isAdmin + */ + public boolean getIsAdmin() { + return isAdmin; + } + /** + * @param isAdmin the isAdmin to set + */ + public void setIsAdmin(final boolean isAdmin) { + this.isAdmin = isAdmin; + } + /** + * @return the isSysAdmin + */ + public boolean getIsSysAdmin() { + return isSysAdmin; + } + /** + * @param isSysAdmin the isSysAdmin to set + */ + public void setIsSysAdmin(final boolean isSysAdmin) { + this.isSysAdmin = isSysAdmin; + } + /** + * @return the authType + */ + public int getAuthType() { + return authType; + } + /** + * @param authType the authType to set + */ + public void setAuthType(final int authType) { + this.authType = authType; + } + /** + * @return the authAdmin + */ + public int getAuthAdmin() { + return authAdmin; + } + /** + * @param authAdmin the authAdmin to set + */ + public void setAuthAdmin(final int authAdmin) { + this.authAdmin = authAdmin; + } + /** + * @return the authSection + */ + public int getAuthSection() { + return authSection; + } + /** + * @param authSection the authSection to set + */ + public void setAuthSection(final int authSection) { + this.authSection = authSection; + } + /** + * @return the authHead + */ + public int getAuthHead() { + return authHead; + } + /** + * @param authHead the authHead to set + */ + public void setAuthHead(final int authHead) { + this.authHead = authHead; + } + /** + * @return the authApprove + */ + public int getAuthApprove() { + return authApprove; + } + /** + * @param authApprove the authApprove to set + */ + public void setAuthApprove(final int authApprove) { + this.authApprove = authApprove; + } + /** + * @return the authCode + */ + public int getAuthCode() { + return authCode; + } + /** + * @param authCode the authCode to set + */ + public void setAuthCode(final int authCode) { + this.authCode = authCode; + } + /** + * @return the authSearch + */ + public int getAuthSearch() { + return authSearch; + } + /** + * @param authSearch the authSearch to set + */ + public void setAuthSearch(final int authSearch) { + this.authSearch = authSearch; + } + /** + * @return the authStatistics + */ + public int getAuthStatistics() { + return authStatistics; + } + /** + * @param authStatistics the authStatistics to set + */ + public void setAuthStatistics(final int authStatistics) { + this.authStatistics = authStatistics; + } + /** + * @return the authWaitList + */ + public int getAuthWaitList() { + return authWaitList; + } + /** + * @param authWaitList the authWaitList to set + */ + public void setAuthWaitList(final int authWaitList) { + this.authWaitList = authWaitList; + } + /** + * @return the authManage + */ + public int getAuthManage() { + return authManage; + } + /** + * @param authManage the authManage to set + */ + public void setAuthManage(final int authManage) { + this.authManage = authManage; + } + /** + * @return the authProxySection + */ + public int getAuthProxySection() { + return authProxySection; + } + /** + * @param authProxySection the authProxySection to set + */ + public void setAuthProxySection(final int authProxySection) { + this.authProxySection = authProxySection; + } + /** + * @return the authProxyHead + */ + public int getAuthProxyHead() { + return authProxyHead; + } + /** + * @param authProxyHead the authProxyHead to set + */ + public void setAuthProxyHead(final int authProxyHead) { + this.authProxyHead = authProxyHead; + } + /** + * @return the chkcnt + */ + public final int getChkcnt() { + return chkcnt; + } + /** + * @param chkcnt the chkcnt to set + */ + public final void setChkcnt(final int chkcnt) { + this.chkcnt = chkcnt; + } + public String getDutyStr() { + return dutyStr; + } + public void setDutyStr(String dutyStr) { + this.dutyStr = dutyStr; + } + public int getRptAuth() { + return rptAuth; + } + public void setRptAuth(int rptAuth) { + this.rptAuth = rptAuth; + } +} \ No newline at end of file diff --git a/src/main/java/kcg/imis/sec/LogoutSuccessHandler.java b/src/main/java/kcg/imis/sec/LogoutSuccessHandler.java new file mode 100644 index 0000000..fdf6bc5 --- /dev/null +++ b/src/main/java/kcg/imis/sec/LogoutSuccessHandler.java @@ -0,0 +1,44 @@ +package kcg.imis.sec; + +import java.io.IOException; + +import javax.annotation.Resource; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import kcg.imis.cmmn.mapper.LogMapper; +import kcg.imis.sec.mapper.SecurityMapper; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; + +/** + * + * @FileName : LogoutSuccessHandler.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class LogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler { + + private String successUrl = "/loginView.do"; + + public void setSuccessUrl(String successUrl){ + this.successUrl = successUrl; + } + + @Resource(name = "logMapper") + LogMapper logMapper; + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + @Override + public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { + setDefaultTargetUrl(successUrl); + super.onLogoutSuccess(request, response, authentication); + } +} diff --git a/src/main/java/kcg/imis/sec/ShaPasswordEncoderEx.java b/src/main/java/kcg/imis/sec/ShaPasswordEncoderEx.java new file mode 100644 index 0000000..e9303ef --- /dev/null +++ b/src/main/java/kcg/imis/sec/ShaPasswordEncoderEx.java @@ -0,0 +1,35 @@ +/** + * + */ +package kcg.imis.sec; + +import org.apache.commons.lang.StringUtils; +import org.springframework.security.authentication.encoding.ShaPasswordEncoder; + +/** + * @FileName : ShaPasswordEncoderEx.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ShaPasswordEncoderEx extends ShaPasswordEncoder { + + /** + * 생성자. + * + * @param strength SHA Strength + */ + public ShaPasswordEncoderEx(final int strength) { + super(strength); + } + + @Override + public boolean isPasswordValid(final String encPass, final String rawPass, final Object salt) { + String pass1 = "" + encPass; + String pass2 = encodePassword(rawPass, salt); + + return StringUtils.equalsIgnoreCase(pass1, pass2); + } +} diff --git a/src/main/java/kcg/imis/sec/UserUtil.java b/src/main/java/kcg/imis/sec/UserUtil.java new file mode 100644 index 0000000..b26374e --- /dev/null +++ b/src/main/java/kcg/imis/sec/UserUtil.java @@ -0,0 +1,109 @@ +package kcg.imis.sec; + +import java.util.List; + +import javax.annotation.PostConstruct; + +import kcg.imis.cmmn.service.CodeServiceImpl; +import kcg.imis.cmmn.vo.CodeVO; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; + +/** + * @FileName : UserUtil.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Component +public class UserUtil { + + /** + * 코드관련 정보 인터페이스. + */ + public static CodeServiceImpl codeService; + + @Autowired + private CodeServiceImpl codeServInstance; + + @PostConstruct + private void init() { + codeService = codeServInstance; + } + + + /** + * 현재 로그인 상태인 회원의 정보를 반환한다. 로그인 상태가 아니면 null값을 반환한다. + * @return loginUserVO 회원 정보 + */ + public static LoginUserVO getMemberInfo() { + return (LoginUserVO) EgovUserDetailsHelper.getAuthenticatedUser(); + } + + /** + * 현재 로그인 상태인 회원과 선택한 회원이 동일한지 확인한다. + * @return boolean + */ + public static boolean isEqualMember(String target) { + LoginUserVO member = getMemberInfo(); + if (getMemberInfo() != null) { + if(member.getUserid().equals(target)){ + return true; + } else{ + return false; + } + } else { + return false; + } + } + + /** + * 각 기관의 담당자(관리자)인지 아닌지를 판별한다. + *
시스템관리자일 경우 true 반환
+ * @return boolean + */ + public static boolean isAdmin() { + LoginUserVO user = getMemberInfo(); + return user.getIsAdmin() || user.getIsSysAdmin(); + } + /** + * 시스템 관리자인지 아닌지를 판변한다. + * @return boolean + */ + public static boolean isSysAdmin() { + LoginUserVO user = getMemberInfo(); + return user.getIsSysAdmin(); + } + + public static Authentication getCurrentAuthentication(){ + SecurityContext context = SecurityContextHolder.getContext(); + Authentication authentication = context.getAuthentication(); + return authentication; + } + + /** + * 현재 소속이 지방청인지 판별한다. + * @return boolean + */ + public static boolean isRegional() { + + LoginUserVO user = getMemberInfo(); + List agencyCategory = null; + + try { + agencyCategory = codeService.getCodeList(user.getPlace1()); + } catch (Exception e) { + agencyCategory = null; + } + + return !agencyCategory.isEmpty(); + } +} diff --git a/src/main/java/kcg/imis/sec/filter/ReloadableFilterInvocationSecurityMetadataSource.java b/src/main/java/kcg/imis/sec/filter/ReloadableFilterInvocationSecurityMetadataSource.java new file mode 100644 index 0000000..e35c388 --- /dev/null +++ b/src/main/java/kcg/imis/sec/filter/ReloadableFilterInvocationSecurityMetadataSource.java @@ -0,0 +1,86 @@ +package kcg.imis.sec.filter; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import kcg.imis.sec.mapper.SecurityMapper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.web.FilterInvocation; +import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; +import org.springframework.security.web.util.matcher.RequestMatcher; + + +/** + * @FileName : ReloadableFilterInvocationSecurityMetadataSource.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class ReloadableFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource { + private static final Logger LOGGER = LoggerFactory.getLogger(ReloadableFilterInvocationSecurityMetadataSource.class); + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + private final Map> requestMap; + + public ReloadableFilterInvocationSecurityMetadataSource(LinkedHashMap> requestMap) { + this.requestMap = requestMap; + } + + public Collection getAllConfigAttributes() { + Set allAttributes = new HashSet(); + + for (Map.Entry> entry : requestMap.entrySet()) { + allAttributes.addAll(entry.getValue()); + } + + return allAttributes; + } + + public Collection getAttributes(Object object) { + final HttpServletRequest request = ((FilterInvocation) object).getRequest(); + for (Map.Entry> entry : requestMap.entrySet()) { + if (entry.getKey().matches(request)) { + return entry.getValue(); + } + } + return null; + } + + public boolean supports(Class clazz) { + return FilterInvocation.class.isAssignableFrom(clazz); + } + + public void reload() throws Exception { + + LinkedHashMap> reloadedMap = securityMapper.getRolesAndUrl(); + + Iterator>> iterator = reloadedMap.entrySet().iterator(); + + // 이전 데이터 삭제 + requestMap.clear(); + + while (iterator.hasNext()) { + Entry> entry = iterator.next(); + + requestMap.put(entry.getKey(), entry.getValue()); + } + + LOGGER.info("Secured Url Resources - Role Mappings reloaded at Runtime!"); + } +} diff --git a/src/main/java/kcg/imis/sec/filter/SecurityUrlResourcesMapFactoryBean.java b/src/main/java/kcg/imis/sec/filter/SecurityUrlResourcesMapFactoryBean.java new file mode 100644 index 0000000..8a6ce4c --- /dev/null +++ b/src/main/java/kcg/imis/sec/filter/SecurityUrlResourcesMapFactoryBean.java @@ -0,0 +1,58 @@ +/** + * SecurityUrlResourcesMapFactoryBean.java + * @author 임새미 + * @since 2016. 10. 7. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 7. 임새미 최초생성 + * + */ +package kcg.imis.sec.filter; + +import java.util.LinkedHashMap; +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.sec.mapper.SecurityMapper; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.web.util.matcher.RequestMatcher; + +/** + * @FileName : SecurityUrlResourcesMapFactoryBean.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class SecurityUrlResourcesMapFactoryBean implements FactoryBean>> { + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + private LinkedHashMap> resourcesMap; + + public void init() throws Exception { + resourcesMap = securityMapper.getRolesAndUrl(); + } + + public LinkedHashMap> getObject() throws Exception { + if (resourcesMap == null) { + init(); + } + return resourcesMap; + } + + @SuppressWarnings("rawtypes") + public Class getObjectType() { + return LinkedHashMap.class; + } + + public boolean isSingleton() { + return true; + } +} diff --git a/src/main/java/kcg/imis/sec/mapper/SecurityMapper.java b/src/main/java/kcg/imis/sec/mapper/SecurityMapper.java new file mode 100644 index 0000000..8ac3b3c --- /dev/null +++ b/src/main/java/kcg/imis/sec/mapper/SecurityMapper.java @@ -0,0 +1,175 @@ +package kcg.imis.sec.mapper; + +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.role.SecurityRolesVO; + +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.SecurityConfig; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.security.web.util.matcher.RequestMatcher; +import org.springframework.stereotype.Repository; + +import egovframework.rte.fdl.security.securedobject.impl.SelfRegexRequestMatcher; +import egovframework.rte.psl.dataaccess.EgovAbstractMapper; + +/** + * @FileName : SecurityMapper.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +@Repository("securityMapper") +public class SecurityMapper extends EgovAbstractMapper { + + + /** + * 외사경찰 사용자 정보를 가져온다. + * + * @param userId 사용자 아이디 + * @return LoginVO 객체 + * @throws Exception 기본 예외 처리 + */ + public LoginUserVO getUser(String userId) { + return selectOne("Security.getLoginInfo", userId); + } + + + /** + * 외사경찰 사용자의 ROLE정보를 가져온다. + * + * @param userId 사용자 아이디 + * @return SecurityRolesVO 객체 + * @throws Exception 기본 예외 처리 + */ + public SecurityRolesVO getAuthoritiesUser(String userId) { + return selectOne("Security.getAuthorities", userId); + } + + /** + * ROLE의 계층 리스트를 가져온다. + * + * @return CHILD > PARENT로 되어있는 계층정보 문자열 + */ + public String getHierarchyRoles() { + List> resultList = selectList("Security.getHierarchyRoles"); + Iterator> itr = resultList.iterator(); + StringBuffer concatedRoles = new StringBuffer(); + Map tempMap; + while (itr.hasNext()) { + tempMap = itr.next(); + concatedRoles.append(tempMap.get("CHILD")); + concatedRoles.append(" > "); + concatedRoles.append(tempMap.get("PARENT")); + concatedRoles.append("\n"); + } + return concatedRoles.toString(); + } + + /** + * ROLE의 계층 리스트를 가져온다. + * + * @return URL과 ROLE의 매핑 리스트를 가져온다. + */ + public LinkedHashMap> getRolesAndUrl() { + List> resultList = selectList("Security.getRolesAndUrl"); + return patchRequestMatcher(makeLinkedHashMap(resultList)); + } + + + /** + * makeLinkedHashMap의 결과 데이터에서 Object key를 RequestMatcher로 캐스팅한다. + * egovframework.rte.fdl.security.securedobject.impl.SecuredObjectServiceImpl.getRolesAndUrl() 참조 + * + * @param data LinkedHashMap으로 변환된 데이터 + * @return 리턴값 설명 + */ + private LinkedHashMap> patchRequestMatcher(LinkedHashMap> data) { + LinkedHashMap> ret = new LinkedHashMap>(); + Set keys = data.keySet(); + + for (Object key : keys) { + ret.put((RequestMatcher) key, data.get(key)); + } + return ret; + } + + /** + * makeLinkedHashMap의 결과 데이터에서 Object key를 RequestMatcher로 캐스팅한다. + * egovframework.rte.fdl.security.securedobject.impl.SecuredObjectDAO.getRolesAndResources() 참조 + * + * @param list LinkedHashMap으로 변환된 데이터 + * @return 리턴값 설명 + */ + private LinkedHashMap> makeLinkedHashMap(List> list) { + /* URL패턴, ant/regx/ciRegex 세가지 형태가 있다. */ + String requestMatcherType = "regex"; + /* Method 단위 Role 지정이나 Pointcut을 사용하는 경우에는 + * http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:server_security:authorization의 sqlRolesAndMethod, sqlRolesAndPointcut 쿼리와 + * SecuredObjectDAO, SecuredObjectServiceImpl을 참조해서 변경한다. + * */ + boolean isResourcesUrl = true; + String resourceType = "URL"; + + LinkedHashMap> resourcesMap = new LinkedHashMap>(); + Iterator> itr = list.iterator(); + Map tempMap; + String preResource = null; + String presentResourceStr; + Object presentResource; + while (itr.hasNext()) { + tempMap = itr.next(); + + presentResourceStr = (String) tempMap.get(resourceType); + + if (isResourcesUrl) { + if (requestMatcherType.equalsIgnoreCase("regex")) { + presentResource = new SelfRegexRequestMatcher(presentResourceStr, null); + } else if (requestMatcherType.equalsIgnoreCase("ciRegex")) { + presentResource = new SelfRegexRequestMatcher(presentResourceStr, null, true); + } else { + presentResource = new AntPathRequestMatcher(presentResourceStr); + } + } else { + presentResource = presentResourceStr; + } + List configList = new LinkedList(); + + if (preResource != null && presentResourceStr.equals(preResource)) { + List preAuthList = resourcesMap.get(presentResource); + Iterator preAuthItr = preAuthList.iterator(); + while (preAuthItr.hasNext()) { + SecurityConfig tempConfig = (SecurityConfig) preAuthItr.next(); + configList.add(tempConfig); + } + } + + configList.add(new SecurityConfig((String) tempMap.get("AUTHORITY"))); + + resourcesMap.put(presentResource, configList); + + preResource = presentResourceStr; + } + return resourcesMap; + } + + /** + * 사용자의 견문 권한을 가져온다. + * + * @param userId 사용자 아이디 + * @return 견문권한 관련 레코드값(ID, CODE)이 담겨진 Map + */ + public Map getReportAgentAuCode(String userId) { + return selectOne("Security.getReportAgentAuCode", userId); + } + + +} diff --git a/src/main/java/kcg/imis/sec/role/HierarchyStringsFactoryBean.java b/src/main/java/kcg/imis/sec/role/HierarchyStringsFactoryBean.java new file mode 100644 index 0000000..0aa66b2 --- /dev/null +++ b/src/main/java/kcg/imis/sec/role/HierarchyStringsFactoryBean.java @@ -0,0 +1,52 @@ +package kcg.imis.sec.role; + +import javax.annotation.Resource; + +import kcg.imis.sec.mapper.SecurityMapper; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; + +/** + * @FileName : HierarchyStringsFactoryBean.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class HierarchyStringsFactoryBean implements FactoryBean, ApplicationContextAware { + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + private String hierarchyStrings; + private ApplicationContext context; + + public void init() throws Exception { + hierarchyStrings = securityMapper.getHierarchyRoles(); + } + + public String getObject() throws Exception { + if (hierarchyStrings == null) { + init(); + } + return hierarchyStrings; + } + + public Class getObjectType() { + return String.class; + } + + public boolean isSingleton() { + return true; + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.context = applicationContext; + } + +} diff --git a/src/main/java/kcg/imis/sec/role/SecurityRolesVO.java b/src/main/java/kcg/imis/sec/role/SecurityRolesVO.java new file mode 100644 index 0000000..a3d9705 --- /dev/null +++ b/src/main/java/kcg/imis/sec/role/SecurityRolesVO.java @@ -0,0 +1,75 @@ +/** + * SecurityRoles.java + * @author 임새미 + * @since 2016. 10. 6. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 6. 임새미 최초생성 + * + */ +package kcg.imis.sec.role; + +import org.springframework.security.core.GrantedAuthority; + +/** + * @FileName : SecurityRolesVO.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class SecurityRolesVO implements GrantedAuthority { + + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 6222106130282740922L; + + + /** + * 사용자 ID + */ + private String userid; + + /** + * Role 이름 + */ + private String authority; + + /** + * 사용자 ID 값을 반환한다. + * @return 사용자 ID + */ + public String getUserid() { + return userid; + } + + /** + * 사용자 ID 값을 설정한다. + * @param username 사용자 ID + */ + public void setUserid(String userid) { + this.userid = userid; + } + + /** + * Role 이름 값을 반환한다. + * @return Role 이름 값 + */ + @Override + public String getAuthority() { + return authority; + } + + /** + * Role 이름 값을 설정한다. + * @param authority Role 이름 값 + */ + public void setAuthority(String authority) { + this.authority = authority; + } + +} diff --git a/src/main/java/kcg/imis/sec/service/AriaPasswordEncoder.java b/src/main/java/kcg/imis/sec/service/AriaPasswordEncoder.java new file mode 100644 index 0000000..646c6dc --- /dev/null +++ b/src/main/java/kcg/imis/sec/service/AriaPasswordEncoder.java @@ -0,0 +1,83 @@ +package kcg.imis.sec.service; + +import org.springframework.security.crypto.codec.Base64; +import org.springframework.security.crypto.password.PasswordEncoder; + +import egovframework.rte.fdl.cryptography.EgovARIACryptoService; + +/** + * @FileName : AriaPasswordEncoder.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class AriaPasswordEncoder implements PasswordEncoder { + + /* EgovARIACryptoService */ + private EgovARIACryptoService ariaCryptoService; + + /* HashKey */ + private String hashKey; + + /** + * 해쉬 키를 입력 받는다. + * + * @param hashedPassword 해시비밀번호 + */ + public void setHashKey(String hashKey) { + this.hashKey = hashKey; + } + + /** + * 전자정부프레임워크 Aria 암호화 서비스 객체를 설정한다. + * + * @param ariaCryptoService EgovARIACryptoService 서비스 객체 + */ + public void setAriaCryptoService(EgovARIACryptoService ariaCryptoService) { + this.ariaCryptoService = ariaCryptoService; + } + + /** + * 입력받은 비밀번호를 암호화 한다. + * + * @param rawPassword 로그인 시 입력한 비밀번호 + * @return 비밀번호 -> ARIA -> Base64 로 암호화된 문자열 + */ + @Override + public String encode(CharSequence rawPassword) { + String password = rawPassword.toString(); + String result = null; + try { + byte[] encrypted = ariaCryptoService.encrypt(password.getBytes("UTF-8"), hashKey); + byte[] encoded = Base64.encode(encrypted); + result = new String(encoded, 0, encoded.length, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * DB에 저장된 사용자 비밀번호와 입력받은 비밀번호의 일치여부를 판단한다. + * + * @param rawPassword 로그인 시 입력한 비밀번호 + * @return 비밀번호 일치여부 + */ + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + String encrypted = encode(rawPassword); + if(encrypted.equals(encodedPassword)){ + return true; + } + return false; + } + + /* hash key 생성을 위한 main 함수 + public static void main(String[] args) { + EgovPasswordEncoder encoder = new EgovPasswordEncoder(); + encoder.setAlgorithm("SHA-256"); + System.out.println("Digested Password : " + encoder.encryptPassword("imis1234567")); + }*/ +} diff --git a/src/main/java/kcg/imis/sec/service/SecurityServiceImpl.java b/src/main/java/kcg/imis/sec/service/SecurityServiceImpl.java new file mode 100644 index 0000000..b7aedfb --- /dev/null +++ b/src/main/java/kcg/imis/sec/service/SecurityServiceImpl.java @@ -0,0 +1,81 @@ +/** + * SecurityServiceImpl.java + * @author 임새미 + * @since 2016. 10. 6. + * + * 수정일 수정자 수정내용 + * ------------- -------- --------------------------- + * 2016. 10. 6. 임새미 최초생성 + * + */ +package kcg.imis.sec.service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import javax.annotation.Resource; + +import kcg.imis.sec.LoginUserVO; +import kcg.imis.sec.mapper.SecurityMapper; + +import org.springframework.security.access.hierarchicalroles.RoleHierarchy; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +import egovframework.rte.fdl.security.userdetails.EgovUserDetails; + +/** + * @FileName : SecurityServiceImpl.java + * @Project : 국제해양프로젝트 + * @Date : 2018. 3. 29. + * @작성자 : Moon + * @변경이력 : + * @프로그램 설명 : + */ +public class SecurityServiceImpl implements UserDetailsService { + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + private RoleHierarchy roleHierarchy; + + /** + * Role Hierarchy값을 설정한다. + * + * @param roleHierarchy + */ + public void setRoleHierarchy(RoleHierarchy roleHierarchy) { + this.roleHierarchy = roleHierarchy; + } + + + /** + * 사용자 정보를 DB에서 가져와 UserDetails 객체에 담아 반환한다. + * + * @param userId 사용자 아이디 + * @return UserDetails 객체 + */ + @Override + public UserDetails loadUserByUsername(String userId) throws UsernameNotFoundException { + + LoginUserVO member = securityMapper.getUser(userId); + List authorities = new ArrayList(); + + if (member != null) { + authorities.add(securityMapper.getAuthoritiesUser(userId)); + } else { + throw new UsernameNotFoundException("접속자 정보를 찾을 수 없습니다."); + } + if (authorities.size() == 0) { + throw new UsernameNotFoundException("User " + member.getUserid()+ " has no GrantedAuthority"); + } + + /* RoleHierarchyImpl 에서 저장한 Role Hierarchy 정보가 저장된다. */ + Collection roleAuthorities = roleHierarchy.getReachableGrantedAuthorities(authorities); + return new EgovUserDetails(member.getUserid(), member.getPasswd(), true, true, true, true, roleAuthorities, member); + } + +} diff --git a/src/main/resources/config/KGI_Checks.xml b/src/main/resources/config/KGI_Checks.xml new file mode 100644 index 0000000..fc10078 --- /dev/null +++ b/src/main/resources/config/KGI_Checks.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..9a39239 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,47 @@ + + + + IMIS + %d{yyyy-MM-dd HH:mm:ss.SSS} | %-5.5p |%-30.30C::%-30.30M:%-5.5L | %msg%n + + + + + + + + ${pattern} + + + + + + + C:/logs/imis + 1 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/lucy-xss-servlet-filter-rule.xml b/src/main/resources/lucy-xss-servlet-filter-rule.xml new file mode 100644 index 0000000..9c78782 --- /dev/null +++ b/src/main/resources/lucy-xss-servlet-filter-rule.xml @@ -0,0 +1,17 @@ + + + + + + xssSaxFilterDefender + + + + /view + + + xssSaxFilterDefender + + + + \ No newline at end of file diff --git a/src/main/resources/message/message-common_ko.properties b/src/main/resources/message/message-common_ko.properties new file mode 100644 index 0000000..1ba0e92 --- /dev/null +++ b/src/main/resources/message/message-common_ko.properties @@ -0,0 +1,871 @@ +#System# +sys.name=\uad6d\uc81c\ud574\uc591\uc815\ubcf4\uc2dc\uc2a4\ud15c +sys.footer.address=21995 \uc778\ucc9c\uad11\uc5ed\uc2dc \uc5f0\uc218\uad6c \ud574\ub3cb\uc774\ub85c 130 +sys.footer.question=\uc2dc\uc2a4\ud15c\ubb38\uc758 +sys.footer.question.tel=000-000-0000 + +#Main# +menu.board=\uac8c\uc2dc\ud310 + +#Confirm message# +confirm.msg.askDel=\uc815\ub9d0 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +confirm.msg.askUpd=\uc815\ub9d0 \uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +confirm.msg.askApprove=\uacb0\uc7ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +#Common Message# +msg.failproc=\ucc98\ub9ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +msg.nodata=\uac80\uc0c9\ub41c \uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +msg.noInfo=\uc815\ubcf4\uc5c6\uc74c + +#Error message # +member.idDpl.msg=\uc544\uc774\ub514\uac00 \uc774\ubbf8 \uc874\uc7ac \ud569\ub2c8\ub2e4. +member.blankId=\uc544\uc774\ub514\ub97c \uc785\ub825\ud558\uc138\uc694. +member.blankPass=\ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud558\uc138\uc694. +member.blankBoth=\uc544\uc774\ub514\uc640 \ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud558\uc138\uc694. + + +#Access Denied# +error.access=\uc811\uadfc\uac70\ubd80 +error.msg.access=[ \uc811\uadfc\uac70\ubd80 ] \uc0ac\uc6a9\uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +error.error=\uc624\ub958\ubc1c\uc0dd +error.msg.dataFailure=[ \ub370\uc774\ud130 \uc561\uc138\uc2a4 \uc2e4\ud328 ] \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. +error.msg.transaction=[ \ud2b8\ub79c\uc7ad\uc158 \uc2e4\ud328 ] \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. +error.msg.unknown=\uc54c\uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#alt# +alt.image=\uc774\ubbf8\uc9c0 +alt.goMain=\uba54\uc778\ud398\uc774\uc9c0\ub85c \uac00\uae30 +alt.error.viewImg=\uc5d0\ub7ec \ud654\uba74 \uc774\ubbf8\uc9c0 + + +#validator errors # +errors.prefix=
+errors.suffix=

+errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790\uae4c\uc9c0\ub9cc \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.invalid={0} \ud615\uc2dd\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) \uc22b\uc790\ub9cc \uc785\ub825\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1} \uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740 \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.fileext=\ucca8\ubd80\ud30c\uc77c\uc740 {0} \ud615\uc2dd\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4. +errors.fileext2={0}\uc740(\ub294) {1} \ud615\uc2dd\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4. +errors.regex=\ud615\uc2dd\uc774 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.year={0}\uc740(\ub294) 4\uc790\ub9ac \uc22b\uc790\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4. + +#Member# +member=\uc0ac\uc6a9\uc790 +member.type.fa=\uc678\uc0ac +member.type.nofa=\uc77c\ubc18 +member.header.id=\uc0ac\uc6a9\uc790ID +member.header.pass=\ube44\ubc00\ubc88\ud638 +member.header.name=\uc774\ub984 +member.header.ihid=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 +member.header.email=\uc774\uba54\uc77c\uc8fc\uc18c +member.header.tel=\uc804\ud654\ubc88\ud638 +member.header.mobile=\ud578\ub4dc\ud3f0\ubc88\ud638 +member.header.zip=\uc6b0\ud3b8\ubc88\ud638 +member.header.adres=\uc8fc\uc18c +member.header.dAdres=\uc0c1\uc138\uc8fc\uc18c +member.header.auth=\uad8c\ud55c +member.select.user=\uc0ac\uc6a9\uc790 +member.select.admin=\uad00\ub9ac\uc790 +member.login=\ub85c\uadf8\uc778 +member.register=\ud68c\uc6d0\uac00\uc785 +member.searchPass=\ube44\ubc00\ubc88\ud638 \ucc3e\uae30 +member.insertSuccess.msg=\ud68c\uc6d0\uac00\uc785\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub85c\uadf8\uc778 \ud574\uc8fc\uc138\uc694. +member.updateSuccess.msg=\ud68c\uc6d0\uc218\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +member.sendEmail.msg=\ub4f1\ub85d\ud558\uc2e0 \uba54\uc77c\ub85c \uc784\uc2dc \ube44\ubc00\ubc88\ud638\ub97c \ubc1c\uc1a1\ud558\uc600\uc2b5\ub2c8\ub2e4. +member.sendFail.msg=\uc784\uc2dc \ube44\ubc00\ubc88\ud638 \ubc1c\uc1a1\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +member.deleteSuccess.msg=\ud68c\uc6d0\uc0ad\uc81c\uac00 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +member.thanks.msg=\uadf8\ub3d9\uc548 \uc774\uc6a9\ud574 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4. +member.blankEssential=\ud544\uc218 \uc785\ub825 \ud56d\ubaa9\uc744 \ubaa8\ub450 \uc785\ub825\ud574\uc8fc\uc138\uc694. +member.changePwSuccess.msg=\ube44\ubc00\ubc88\ud638\uac00 \ubcc0\uacbd\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#\ud68c\uc6d0\uc815\ubcf4# +member.info.id=\uc544\uc774\ub514 +member.info.name=\uc774\ub984 +member.info.position=\uacc4\uae09 +member.info.place=\uc18c\uc18d +member.info.joinYear=\uac00\uc785\ub144\ub3c4 +member.info.attentionPoint=\uc8fc\uc758\uc0ac\ud56d +member.info.starSignMsg=\ud45c\uc2dc\ub294 \ud544\uc218\uc785\ub825 \uc0ac\ud56d\uc785\ub2c8\ub2e4. + + +#ExMember - \uacfc\uac70\uc678\uc0ac\uacbd\ucc30# +exmember.name=\uc131\uba85 +exmember.userid=\uc544\uc774\ub514 +exmember.family=\uac00\uc871\uc0ac\ud56d +exmember.address=\uc8fc\uc18c +exmember.email=E-mail +exmember.charge=\ub2f4\ub2f9\uc5c5\ubb34 +exmember.nowPlace=\ud604\uc18c\uc18d +exmember.nowPosition=\ud604\uacc4\uae09 +exmember.cdate=\ub4f1\ub85d\uc77c\uc790 +exmember.ophone=\uacbd\ube44\uc804\ud654 +exmember.hphone=\uc77c\ubc18\uc804\ud654 +exmember.cphone=\ud734\ub300\uc804\ud654 +exmember.sdate=\uacbd\ucc30\uc784\uc6a9\uc77c +exmember.pdate=\uacc4\uae09(\uc678)\uc784\uc6a9\uc77c +exmember.pdate.now=\ud604\uacc4\uae09\uc784\uc6a9\uc77c +exmember.adate=\ubd80\uc11c(\uc678)\ubc30\uce58\uc77c +exmember.adate.now=\ud604\ubd80\uc11c\ubc30\uce58\uc77c +exmember.place1=\uc18c\uc18d +exmember.place1.prev=\uc774\uc804\uc18c\uc18d +exmember.place2=\uc18c\uc18d2 +exmember.place3=\uc138\ubd80\uc18c\uc18d +exmember.duties=\uc9c1\uc704 +exmember.jobtype=\uc9c1\ubcc4 +exmember.inout=\uadfc\ubb34\ud615\ud0dc +exmember.position=\uacc4\uae09 +exmember.position.prev=\uc774\uc804\uacc4\uae09 +exmember.scholarship=\ucd5c\uc885\ud559\ub825 +exmember.career=\ucd1d \uc678\uc0ac\uacbd\ub825 +exmember.explace=\uc804 \uadfc\ubb34\ubd80\uc11c +exmember.excareer=\uacfc\uac70\uc678\uc0ac\uacbd\ub825 +exmember.excareer1=\uc218\uc0ac\uacbd\ub825 +exmember.excareer2=\uc815\ubcf4\uacbd\ub825 +exmember.excareer3=\ubcf4\uc548\uacbd\ub825 +exmember.comment=\ube44\uace0 +exmember.nowPlace=\ud604\uc18c\uc18d +exmember.nowPosition=\ud604\uacc4\uae09 +exmember.cdate=\ub4f1\ub85d\uc77c\uc790 +exmember.usegrade=\uad8c\ud55c\ub4f1\uae09 +exmember.type=\uad6c\ubd84 + +#Login# +login.msg.nim=\ub2d8 +login.msg.welcom=\ud658\uc601\ud569\ub2c8\ub2e4. +login.msg.logout=\ub85c\uadf8\uc544\uc6c3 +login.msg.login=\ub85c\uadf8\uc778\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +login.msg.mypage=\ub9c8\uc774\ud398\uc774\uc9c0 + +#top-menu +menu.admin=\uad00\ub9ac\uc790 +menu.admin.member_add=\uc678\uc0ac\uacbd\ucc30 \uc815\ubcf4 \ub4f1\ub85d +menu.admin.member_list=\uc678\uc0ac\uacbd\ucc30\ud604\ud669 +menu.admin.member_auth=\uad8c\ud55c\uc124\uc815 +menu.admin.member_auth=\uad8c\ud55c\uc124\uc815 +menu.admin.member_base=\uc77c\ubc18\uacbd\ucc30\uc870\ud68c +menu.admin.userlog_stat=\uc0ac\uc6a9\uc790 \ub85c\uadf8 \ud1b5\uacc4 +menu.admin.member_manage=\uc811\uc18d\uc124\uc815 +# \uc774 \uba54\ub274\ub294 left menu\uc784 +menu.admin.exmember=\uacfc\uac70\uc678\uc0ac\uacbd\ucc30 +menu.bbs=\uac8c\uc2dc\ud310 +menu.notice=\uacf5\uc9c0\uc0ac\ud56d +menu.manual=\uc9c0\uce68\uc11c +menu.sitemap=Sitemap +menu.qna=Q&A +menu.fa_info=\uc678\uc0ac\uc815\ubcf4\ubcf4\uace0 +menu.fa=\uc678\uc0ac\uc218\uc0ac +menu.fa.arrest_report=\uc678\uc0ac\uc0ac\ubc94\uac80\uac70\ubcf4\uace0 +menu.susa.incident_list=\ub0b4\uc0ac\uc0ac\uac74 \ud604\ud669 +menu.susa.promot_list=\uacf5\uc791 \ucd94\uc9c4\ud604\ud669 +menu.fa_target=\uc678\uc0ac\ub300\uc0c1\ubaa9\ud45c +menu.fa_target.total=\ud1b5\ud569\uac8c\uc2dc\ud310 +menu.fa_target.weakplace_list=\uc678\uc0ac\ucde8\uc57d\uc9c0 +menu.fa_target.corporation_list=\uce58\uc548\ub300\uc0c1 +menu.fa_target.ferry_list=\uad6d\uc81c\uc5ec\uac1d\uc120 +menu.fa_target.division_list=\uc678\uc0ac\ubd84\uc2e4\uc6b4\uc601\ud604\ud669 +menu.equip=\uc678\uc0ac\uc7a5\ube44 +menu.equip.stat=\uc678\uc0ac\uc7a5\ube44\ud604\ud669 +menu.equip.use_state_list=\uc0ac\uc6a9\uc2e4\uc801 +menu.equip.cyber_list=\uc0ac\uc774\ubc84 \uc678\uc0ac\uc7a5\ube44 +menu.data=\uc790\ub8cc\uc2e4 +menu.togglebtn.descript=\ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uba74 \uba54\uc778\uba54\ub274\uac00 \uace0\uc815(\ud574\uc81c)\ub429\ub2c8\ub2e4. + + +#left-menu +menu.report=\uacac\ubb38\ubcf4\uace0 +menu.report.write=\uacac\ubb38\uc791\uc131 +menu.report.write.new=\uc2e0\uaddc\uc791\uc131 +menu.report.write.save_list=\uc784\uc2dc\uc800\uc7a5\ubaa9\ub85d +menu.report.list=\uacac\ubb38\uacb0\uc7ac/\uc2e4\uc801\uc870\ud68c +menu.report.list.waiting=\uacb0\uc7ac \ub300\uae30 \ubaa9\ub85d +menu.report.list.my_list=\ub0b4 \uc2e4\uc801 \uc870\ud68c +menu.report.search=\uacac\ubb38\uac80\uc0c9 +menu.report.statistics=\uacac\ubb38\ud1b5\uacc4 +menu.report.manage=\uad00\ub9ac\uae30\ub2a5 +menu.report.manage.present_list=\uacac\ubb38\uc81c\ucd9c\ud604\ud669 +menu.report.manage.goal=\ubaa9\ud45c \uad00\ub9ac +menu.report.manage.member_goal=\ubaa9\ud45c \uad00\ub9ac +menu.report.manage.statistics_goal=\ubaa9\ud45c/\uc2e4\uc801 \uc870\ud68c +menu.report.manage.statistics_judge=\ud3c9\uac00\uae30\ub85d\ubd80 +menu.report.manage.offline_write=\uc77c\uad04\uc785\ub825 +menu.stat=\uc678\uc0ac\ud1b5\uacc4 +menu.stat.monthly=\ud1b5\uacc4\uc6d4\ubcf4 \uc870\ud68c +menu.member=\uc678\uc0ac\uacbd\ucc30 +menu.member.common=\uc77c\ubc18\ud604\ud669 +menu.member.manage=\uc778\ub825\uad00\ub9ac +menu.member.manage.personnel=\uc815\uc6d0/\ud604\uc6d0 \ud604\ud669 +menu.member.manage.carrer=\uc678\uc0ac\uacbd\ub825 \ud604\ud669 +menu.member.manage.edu=\uad50\uc721 \ud604\ud669 +menu.trans_center=\uacbd\ucc30\ud1b5\uc5ed\uc13c\ud130 +menu.trans_center.police_list=\uacbd\ucc30\uad00 \ud604\ud669 +menu.trans_center.police_stat=\uacbd\ucc30\uad00 \ud1b5\uacc4 +menu.trans_center.public_list=\ubbfc\uac04\uc778 \ud604\ud669 +menu.trans_center.public_stat=\ubbfc\uac04\uc778 \ud604\ud669 +menu.trans_center.manage_list=\uc6b4\uc601\uc2e4\uc801 +menu.guard_info=\uc678\uad6d\uc5b4\uc120 \ub2e8\uc18d\uc2dc\uc2a4\ud15c +menu.guard_info.arrest=\uc678\uad6d\uc5b4\uc120 \uac80\uac70\ud604\ud669 +menu.guard_info.stat=\ubd88\ubc95\uc870\uc5c5 \uc678\uad6d\uc5b4\uc120 +menu.guard_info.info=\ub2e8\uc18d\uc815\ubcf4 + + +########---Common---######### +#>>>>title +title.no=\uc21c\ubc88 +title.sel=\uc120\ud0dd + +#>>>>button +button.goFind=\ucc3e\uae30 +button.search=\uac80\uc0c9 +button.goSearch=\uac80\uc0c9\ud558\uae30 +button.initSearch=\uac80\uc0c9\ucd08\uae30\ud654 +button.list=\ubaa9\ub85d +button.goList=\ubaa9\ub85d\uc73c\ub85c +button.create=\uae00\uc4f0\uae30 +button.modify=\uc218\uc815 +button.goCreate=\ub4f1\ub85d\ud558\uae30 +button.goReply=\ub2f5\uae00\uc4f0\uae30 +button.reply=\ub2f5\uae00\uc4f0\uae30 +button.goModify=\uc218\uc815\ud558\uae30 +button.goDelete=\uc0ad\uc81c\ud558\uae30 +button.delete=\uc0ad\uc81c +button.goPrev=\uc774\uc804\uae00 +button.goNext=\ub2e4\uc74c\uae00 +button.excel=\uc5d1\uc140 +button.getExcel=\uc5d1\uc140\ubc1b\uae30 +button.goSubmit=\uc81c\ucd9c\ud558\uae30 +button.save=\uc800\uc7a5 +button.goSave=\uc800\uc7a5\ud558\uae30 +button.cancel=\ucde8\uc18c +button.goSaveTemp=\uc784\uc2dc\uc800\uc7a5 +button.goBack=\ub4a4\ub85c\uac00\uae30 +button.print=\ucd9c\ub825 +button.goPrint=\uc778\uc1c4\ud558\uae30 +button.inquiry=\uc870\ud68c +button.register=\ub4f1\ub85d +button.memberAdd=\ud68c\uc6d0\ub4f1\ub85d +button.memberNew=\ud68c\uc6d0\uac00\uc785 +button.memberRemove=\ud68c\uc6d0\ud0c8\ud1f4 +button.changeLater=\ub2e4\uc74c\uae30\ud68c\uc5d0 \ubcc0\uacbd +button.close=\ub2eb\uae30 +button.selectAll=\uc804\uccb4\uc120\ud0dd +button.unselectAll=\uc120\ud0dd\ud574\uc81c +button.delSelected=\uc120\ud0dd\uc0ad\uc81c +button.writeReport=\uacac\ubb38\uc791\uc131 +button.initPw=\uc120\ud0dd \ube44\ubc88 \ucd08\uae30\ud654 +button.refresh=\uc0c8\ub85c\uace0\uce68 +button.graph=\uadf8\ub798\ud504 +button.goReport=\ubcf4\uace0\ud558\uae30 +button.goApproval=\uacb0\uc7ac\ud558\uae30 +button.showCondition=\uc870\uac74\ubcf4\uae30 +button.searchAgain=\ub2e4\uc2dc\uac80\uc0c9 +button.update=\uc5c5\ub370\uc774\ud2b8 +button.showPlace=\uc18c\uc18d\ubcc4\ub85c \ubcf4\uae30 +button.finishReport=\uc81c\ucd9c\uc644\ub8cc + +#>>>>Basic Board +board=\uac8c\uc2dc\ud310 +board.header.select=\uc120\ud0dd +board.header.no=\ubc88\ud638 +board.header.title=\uc81c\ubaa9 +board.header.place1=\uc18c\uc18d +board.header.writer=\uc791\uc131\uc790 +board.header.regdate=\uc791\uc131\uc77c +board.header.attach=\ucca8\ubd80 +board.header.hit=\uc870\ud68c\uc218 +board.header.reporter=\ubcf4\uace0\uc790 +board.header.rptdate=\ubcf4\uace0\uc77c +board.view.no=\uae00\ubc88\ud638 +board.view.notice=\uacf5\uc9c0 +board.view.title=\uc81c\ubaa9 +board.view.regdate=\uc791\uc131\uc77c +board.view.hit=\uc870\ud68c\uc218 +board.view.writer=\uc791\uc131\uc790 +board.view.content=\ub0b4\uc6a9 +board.view.attach=\ucca8\ubd80\ud30c\uc77c +board.list.vcount=\ud45c\uc2dc\uac2f\uc218 +board.list.searched=\uac80\uc0c9 \uac8c\uc2dc\ubb3c +board.list.now=\ud604\uc7ac \ud398\uc774\uc9c0 + + +notice.start=\uc2dc\uc791\uc77c +notice.end= \uc885\ub8cc\uc77c +notice.width=\ub108\ube44 +notice.height= \ub192\uc774 +\ +#>>>>Search +search.keyword=\ud0a4\uc6cc\ub4dc +search.name=\uc774\ub984 +search.id=ID + + +########---Member---######### +member.view.seq=\ubc88\ud638 +member.view.select=\uc120\ud0dd +member.view.name=\uc131\uba85 +member.view.hangul=\ud55c\uae00 +member.view.hanja=\ud55c\uc790 +member.view.userid=\uc544\uc774\ub514 +member.view.password=\ube44\ubc00\ubc88\ud638 +member.view.pwConfirm=\ud655\uc778 +member.view.address=\uc8fc\uc18c +member.view.family=\uac00\uc871\uc0ac\ud56d +member.view.charge=\ub2f4\ub2f9\uc5c5\ubb34 +member.view.ophone=\uacbd\ube44\uc804\ud654 +member.view.hphone=\uc77c\ubc18\uc804\ud654 +member.view.cphone=\ud734\ub300\uc804\ud654 +member.view.email=\uc774\uba54\uc77c +member.view.totalcareer=\uadfc\ubb34\uacbd\ub825 +member.view.pdate=\ud604\uacc4\uae09\uc784\uc6a9\uc77c +member.view.sdate=\uacbd\ucc30\uc784\uc6a9\uc77c +member.view.adate=\ud604\ubd80\uc11c\ubc30\uce58\uc77c +member.view.place1=\uc18c\uc18d +member.view.place2=\ubd80\uc11c +member.view.position=\uacc4\uae09 +member.view.place3=\uc138\ubd80\uc18c\uc18d +member.view.jobtype=\uc9c1\ubcc4 +member.view.duties=\uc9c1\uc704 +member.view.scholarship=\ucd5c\uc885\ud559\ub825 +member.view.inout=\uadfc\ubb34\ud615\ud0dc +member.view.inout.o=\uc678\uadfc +member.view.inout.i=\ub0b4\uadfc +member.view.inout.d=\uad6d\uc81c\ud56d\ub9cc\ubd84\uc2e4 +member.view.excareer_y=\uacfc\uac70\uc678\uc0ac\uacbd\ub825 +member.view.excareer1_y=\uc218\uc0ac\uacbd\ub825 +member.view.excareer2_y=\uc815\ubcf4\uacbd\ub825 +member.view.excareer3_y=\ubcf4\uc548\uacbd\ub825 +member.view.explace=\uc804\uadfc\ubb34\ubd80\uc11c +member.view.userimg=\uc0ac\uc9c4\ub4f1\ub85d +member.view.usersign=\uc2f8\uc778\ub4f1\ub85d +member.view.etc=\ube44\uace0 +member.view.usegrade=\ub4f1\uae09 +member.view.warning=\uc8fc\uc758\uc0ac\ud56d +member.view.sysPemission=\uc2dc\uc2a4\ud15c\uad8c\ud55c +member.view.rptPermission=\uacac\ubb38\uad8c\ud55c +member.view.rptPermission.head=\uad6d\uc81c\ud611\ub825\ub2f4\ub2f9\uad00 +member.view.rptPermission.section=\uad6d\uc81c\uc815\ubcf4\ubd84\uc11d\ud300\uc7a5 +member.view.rptPermission.permission=\uad8c\ud55c +member.view.isConnected=\uc811\uc18d\uc5ec\ubd80 +member.view.isRestricted=\uc81c\ud55c\uc5ec\ubd80 +member.view.finalDate=\ucd5c\uc885 \ubcc0\uacbd\uc77c\uc790 +member.view.lastLogin=\ucd5c\uadfc \ub85c\uadf8\uc778 \uc77c\uc2dc +member.view.division=\uad6c\ubd84 +member.view.total=\uacc4 +member.view.place1now=\ud604\uc18c\uc18d +member.view.positionnow=\ud604\uacc4\uae09 +member.view.lastestCareer=\ucd5c\uadfc\uc678\uc0ac\uadfc\ubb34\ud604\ud669 +member.view.workPeriod=\uadfc\ubb34\uae30\uac04 +member.view.totalFaPeriod=\ucd1d\uc678\uc0ac\uacbd\ub825 + + +member.msg.available=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc544\uc774\ub514\uc785\ub2c8\ub2e4. +member.msg.duplicate=\uc911\ubcf5\ub41c \uc544\uc774\ub514\uac00 \uc874\uc7ac\ud569\ub2c8\ub2e4. +member.msg.userid=\uc544\uc774\ub514\ub97c \uc785\ub825\ud574\uc8fc\uc138\uc694.(5\uae00\uc790 \uc774\uc0c1.) +member.msg.password=\uc785\ub825\ud574\uc8fc\uc138\uc694. +member.msg.match=\uc77c\uce58 +member.msg.dismatch=\ubd88\uc77c\uce58 +member.msg.invalidNameLength=\uc131\uba85\uc740 \ud55c \uae00\uc790\uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. + +member.value.order.place1=0 +member.value.order.place2=1 +member.value.order.position=2 +member.value.order.name=3 +member.value.order.userid=4 +member.value.order.jobtype=5 +member.value.order.usegrade=6 +member.value.order.totalcareer=7 +member.value.order.duties=8 +member.value.order.loginchk=9 +member.value.order.chkcnt=10 +member.value.order.inout=11 +member.value.order.nowposition=12 +member.value.order.nowplace1=13 + +member.group.cg=\ud574\uc591\uacbd\ucc30\uc11c +member.group.regionalkcg=\uc9c0\ubc29\ud574\uc591\uacbd\ucc30\uccad +member.group.kcg=\ubcf8\uccad + +member.selectpop.title=\uc0ac\uc6a9\uc790 \uc120\ud0dd + +########---Log---######### +log.view.rnum=\ubc88\ud638 +log.view.user=\uc0ac\uc6a9\uc790 +log.view.loginout=\ub85c\uadf8\uc778/\uc544\uc6c3 +log.view.regdate=\uc77c\uc790 +log.view.menu=\uba54\ub274 +log.view.ip=IP +log.view.page=\ud398\uc774\uc9c0 + +########---Code---######### +code.view.rnum=\ubc88\ud638 +code.view.code=\ucf54\ub4dc +code.view.codenm=\ucf54\ub4dc\uba85 +code.view.codenmYak=\ucf54\ub4dc\uc57d\uc5b4 +code.view.enabled=\uc0ac\uc6a9\uc5ec\ubd80 +code.view.modify=\uc218\uc815 +code.view.delete=\uc0ad\uc81c + + + + +########---Report---######### +report.title=\uacac\ubb38\ubcf4\uace0\uc11c +report.view.saveDocNo=\uc784\uc2dc \uc800\uc7a5 \ubb38\uc11c +report.view.regName=\uc791\uc131\uc790 +report.view.name=\ubcf4\uace0\uc790 +report.view.searchName=\ubcf4\uace0\uc790 \uac80\uc0c9 +report.view.selectDefault=\u2592\uc120\ud0dd\ud574\uc8fc\uc138\uc694\u2592 +report.view.category=\ubd84\uc57c +report.view.category1=\ubd84\uc57c1 +report.view.category2=\ubd84\uc57c2 +report.view.category3=\ubd84\uc57c3 +report.view.category4=\ubd84\uc57c4 +report.view.infodate=\ubcf4\uace0\uc77c +report.view.memo=\ube44\uace0 +report.view.title=\uacac\ubb38\ubcf4\uace0 +report.view.num= \ubcf8\uccad \uad6d\uc81c\uc815\ubcf4\ubd84\uc11d-{0} +report.view.state=\uc0c1\ud0dc +report.view.receive=\uc218\uc2e0 +report.view.ref=\ucc38\uc870 +report.view.send=\ubc1c\uc2e0 +report.view.infoMng=\uc815\ubcf4\uacfc\uc7a5 +report.view.director=\uc11c\uc7a5(\uccad\uc7a5) +report.view.approval=\uacb0\uc7ac +report.view.arbitrarily=\uc804\uacb0 +report.view.division=\uad6c\ubd84 +report.view.appraisal=\ud3c9\uac00 +report.view.isAutoRemove=\uc0ad\uc81c\uc5ec\ubd80 +report.view.autoRemove=\uc790\ub3d9\uc0ad\uc81c +report.view.autoRemoveTerm=3\uac1c\uc6d4 +report.view.position=\uacc4\uae09 +report.view.fa=\uc678\uc0ac\uacbd\ucc30 +report.view.cm=\uc77c\ubc18\uacbd\ucc30 +report.view.empty=\uc5c6\uc74c + +report.goal.no=\ubc88\ud638 +report.goal.name=\uc774\ub984 +report.goal.agent=\uc804\uc885\uc694\uc6d0 +report.goal.foreignCoop=\ub300\uc678\ud611\ub825 +report.goal.infoCoop=\uc815\ubcf4\ud611\ub825 +report.goal.reportAgent=\uc2e0\uace0\uc694\uc6d0 +report.goal.sum=\uacc4 +report.goal.year=\ub144 +report.goal.month=\uc6d4 +report.goal.notExist=\uc5c6\uc74c +report.goal.exist=\uc5c6\uc74c +report.goal.deskJob=\ub0b4\uadfc +report.goal.outsideJob=\uc678\uadfc +report.goal.result=\uc2e4\uc801 +report.goal.goal=\ubaa9\ud45c + +report.state.unknown=Unknown +report.state.waitApproval=\uacb0\uc7ac \ub300\uae30 +report.state.chiefApproval=\uacc4\uc7a5 \uacb0\uc7ac +report.state.managerApproval=\uacfc\uc7a5 \uacb0\uc7ac +report.state.complete=\uacb0\uc7ac \uc644\ub8cc +report.state.temparary=\uc784\uc2dc \uc800\uc7a5 +report.type.newsflash=\ud2b9\ubcf4 +report.type.judge=\ud310\ub2e8 +report.type.middle=\uc911\ubcf4 +report.type.notice=\ud1b5\ubcf4 +report.type.record=\uae30\ub85d +report.type.survey=\uc870\uc0ac +report.type.reference=\ucc38\uace0 +report.type.fullReport=\uc0c1\ubcf4 +report.type.fullReport1=\uc9c0\ubc29 +report.type.fullReport2=\ubcf8\uccad +report.view.appraiser=\ud3c9\uac00\uc790 +report.view.opinion=\uac80\ud1a0\uc758\uacac +report.view.reportDate=\uacb0\uc7ac\uc77c\uc790 + +report.search.period=\uae30\uac04 +report.search.title=\uc81c\ubaa9 +report.search.reporter=\ubcf4\uace0\uc790 +report.search.id=\uc544\uc774\ub514 +report.search.place=\uc18c\uc18d +report.search.place2=\uc18c\uc18d2 +report.search.attachnm=\ucca8\ubd80\ud30c\uc77c\uba85 + +report.popup.searchReporter=\ubcf4\uace0\uc790 \uac80\uc0c9 +report.list.num=\ubb38\uc11c\ubc88\ud638 +report.list.select=\uc120\ud0dd +report.nodata=\uac80\uc0c9\ub41c \uacac\ubb38\ubcf4\uace0\uc11c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +report.msg.askDel={0}\uac1c\uc758 \uacac\ubb38\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +report.msg.askApproval={0}\uac1c\uc758 \uacac\ubb38\uc744 \uacb0\uc7ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +report.msg.searchName=\ubcf4\uace0\uc790 \uac80\uc0c9\uc744 \ud574\uc8fc\uc2ed\uc2dc\uc624. +report.msg.writeName=\ubcf4\uace0\uc790 \uc774\ub984 \ub610\ub294 \uc544\uc774\ub514\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624. +report.noSet=\uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. + +report.stats.category=\ubd84\uc57c\ubcc4 \ud1b5\uacc4 +report.stats.categoryExcel=\ubd84\uc57c\ubcc4 \uc5d1\uc140\ubc1b\uae30 +report.stats.judge=\ud3c9\uac00\ubcc4 \ud1b5\uacc4 +report.stats.judgeExcel=\ud3c9\uac00\ubcc4 \uc5d1\uc140\ubc1b\uae30 +report.stats.check=\uc870\ud68c +report.stats.total=\ub204\uacc4 +report.stats.judgeResult=\ud3c9\uac00\uacb0\uacfc\ubcc4 +report.stats.gradeResult=\uac00\uce58\ubcc4 +report.stats.AGrade=A\uae09 +report.stats.BGrade=B\uae09 +report.stats.CGrade=C\uae09 +report.stats.DGrade=D\uae09 + +report.category.01_1=\uc815\uce58 +report.category.02_1=\uacbd\uc81c +report.category.03_1=\uc0ac\ud68c +report.category.04_1=\ubb38\ud654 +report.category.05_1=\uad6d\uc81c +report.category.06_1=\uae30\ud0c0 +report.category.01_2=\ud574\uc6b4 +report.category.02_2=\ud56d\ub9cc +report.category.03_2=\uc218\uc0b0 +report.category.04_2=\uc870\uc120 +report.category.05_2=\uc5ec\uac1d\uc120 +report.category.06_2=\uae30\uad00 +report.category.07_2=\uacf5\uad00 +report.category.08_2=\uc678\uc2e0 +report.category.09_2=\uc0c1\uc0ac\ub2e8\uccb4 +report.category.10_2=\uc678\uad6d\uc778\uc870\uc0ac +report.category.11_2=\uc678\uad6d\uc120\ubc15 +report.category.12_2=\ud14c\ub7ec +report.category.13_2=\ud574\uc801 +report.category.14_2=\uc0ac\uc774\ubc84 +report.category.15_2=\ubc29\ucca9 +report.category.16_2=\uae30\ud0c0 +report.category.01_3=\ucd9c\uc785\uad6d \uc0ac\ubc94 +report.category.02_3=\uad00\uc138\uc0ac\ubc94 +report.category.03_3=\uae08\uc735\ubc94\uc8c4 \uc0ac\ubc94 +report.category.04_3=\uc678\uad6d\uc778 \ubc94\uc8c4 +report.category.05_3=\uc9c0\uc801\uc7ac\uc0b0\uad8c +report.category.06_3=\uae30\ud0c0\ubc94\uc8c4 +report.category.07_3=\ub3d9\ud5a5\uc815\ubcf4 +report.category.01_4=\uc804\uc885\uc694\uc6d0 +report.category.02_4=\ub300\uc678\ud611\ub825 +report.category.03_4=\uc815\ubcf4\ud611\ub825A +report.category.04_4=\uc815\ubcf4\ud611\ub825B +report.category.05_4=\uc815\ubcf4\ud611\ub825C +report.category.06_4=\uc2e0\uace0\uc694\uc6d0 +report.category.07_4=\ub3d9\ud5a5\uad00\ucc30 +report.category.08_4=\ud574\uc678\uc8fc\uc7ac\uad00 +report.category.09_4=\uc77c\ubc18\uacbd\ucc30 +report.category.10_4=\ucca9\ubcf4\uc218\uc9d1\ud65c\ub3d9 +report.category.11_4=\uc678\uc0ac\ucca9\ubcf4\ub9dd + + +########---\uc778\ub825\uad00\ub9ac--######### +fa.edu=\uad50\uc721\ud604\ud669 +fa.edu.eduCourse=\uad50\uc721\uacfc\uc815 +fa.edu.scholarship=\ud559\ub825 +fa.edu.position=\uacc4\uae09 +fa.edu.name=\uc131\uba85 +fa.edu.birth=\uc0dd\ub144\uc6d4\uc77c +fa.edu.stdate=\uad50\uc721\uc2dc\uc791\uc77c +fa.edu.eddate=\uad50\uc721\uc885\ub8cc\uc77c +fa.edu.eduTerm=\uad50\uc721\uae30\uac04 +fa.edu.comment=\ube44\uace0 +fa.edu.eduPlace=\uad50\uc721\uae30\uad00 +fa.edu.sdate=\uacbd\ucc30\uc784\uc6a9\uc77c +fa.edu.pdate=\ud604\uacc4\uae09\uc784\uc6a9\uc77c +fa.edu.adate=\ud604\ubd80\uc11c\ubc30\uce58\uc77c +fa.edu.jobtype=\uc9c1\ubcc4 +fa.edu.place1=\uc18c\uc18d + +########---equip--######### +equip.name=\uad6c\ubd84 +equip.total=\uacc4 +equip.PS00=\ubcf8\ubd80 +equip.PS01=\ubd80\uc0b0 +equip.PS02=\uc778\ucc9c +equip.PS03=\uc18d\ucd08 +equip.PS04=\ub3d9\ud574 +equip.PS05=\ud0dc\uc548 +equip.PS06=\uad70\uc0b0 +equip.PS07=\ubaa9\ud3ec +equip.PS08=\uc644\ub3c4 +equip.PS09=\uc5ec\uc218 +equip.PS10=\ud3ec\ud56d +equip.PS11=\uc6b8\uc0b0 +equip.PS12=\ud1b5\uc601 +equip.PS13=\uc81c\uc8fc +equip.PS14=\ud3c9\ud0dd +equip.PS15=\ucc3d\uc6d0 +equip.PS16=\ubcf4\ub839 +equip.PS17=\uc11c\uadc0\ud3ec +equip.PS18=\ubd80\uc548 +equip.PS90=\uc911\ubd80\ubcf8\ubd80 +equip.PS91=\uc81c\uc8fc\ubcf8\ubd80 +equip.PS92=\uc11c\ud574\ubcf8\ubd80 +equip.PS93=\ub0a8\ud574\ubcf8\ubd80 +equip.PS94=\ub3d9\ud574\ubcf8\ubd80 + +equip.stateWaiting.year=\ub144\ub3c4 +equip.stateWaiting.division=\uad6c\ubd84 +equip.stateWaiting.state=\uacb0\uc7ac\uc0c1\ud0dc +equip.stateWaiting.approvalDate=\uacb0\uc7ac\uc77c\uc790 + +equip.approval.wait=\uacb0\uc7ac\ub300\uae30 +equip.approval.complete=\uacb0\uc7ac\uc644\ub8cc + +equip.useState=\uc678\uc0ac\uc7a5\ube44 \uc0ac\uc6a9\uc2e4\uc801 +equip.useState.division=\uad6c\ubd84 +equip.useState.cnt=\uc7a5\ube44\uc0ac\uc6a9\ud69f\uc218 +equip.useState.detail=\uc0ac\uc6a9\uc2e4\uc801 +equip.useState.check=\uc810\uac80\ud69f\uc218 +equip.useState.state=\uc7a5\ube44\uc0c1\ud0dc + +equip.approve.name=\uacb0\uc7ac\uc790 +equip.approve.message=\uac80\ud1a0\uc758\uacac +equip.approve.checkDate=\uacb0\uc7ac\uc77c\uc790 + +equip.police=\ubc30\uce58 +equip.equipType=\uc7a5\ube44\uad6c\ubd84 +equip.equipName=\uc7a5\ube44\uba85\uce6d +equip.buyDate=\uad6c\uc785\uc77c +equip.useTerm=\uc0ac\uc6a9\uc5f0\ud55c +equip.standard=\ubaa8\uc591/\uaddc\uaca9 +equip.purpose=\uc6a9\ub3c4 +equip.buyPlace=\uad6c\uc785\ucc98 +equip.madeIn=\uc81c\uc791\ud68c\uc0ac +equip.price=\uad6c\uc785\uac00\uaca9 +equip.num=\uad00\ub9ac\ubc88\ud638 +equip.serialNo=\uc81c\uc791\ubc88\ud638 +equip.useSection=\uc18c\uc694\ubd80\uc18d \ubc0f \uc790\uc7ac +equip.operate=\uc791\ub3d9\uc0c1\ud0dc +equip.bigo=\uc720\uc9c0\ubcf4\uc218\ub0b4\uc5ed +equip.equipImage=\uc7a5\ube44\uc0ac\uc9c4 + + + +########---Susa (\uc678\uc0ac\uc218\uc0ac)--######### +#\ub0b4\uc0ac\uc218\uc0ac\ud604\ud669# +susa.in.view.pagetitle=\ub0b4\uc0ac\uc0ac\uac74\ud604\ud669 +susa.in.view.pagetitle_en=Internal Affairs Incident Report +susa.in.view.no=\uc5f0\ubc88 +susa.in.view.place1=\ubd80\uc11c +susa.in.view.chargeNm=\ub2f4\ub2f9\uc790 +susa.in.view.title=\uc0ac\uac74\uba85 +susa.in.view.sdate=\ucc29\uc218\uc77c +susa.in.view.edate=\uc885\ub8cc\uc77c +susa.in.view.contents=\ud611\uc758\ub0b4\uc6a9 +susa.in.view.result=\ub0b4\uc0ac\uacb0\uacfc +#\uacf5\uc791\ucd94\uc9c4\ud604\ud669# +susa.pr.view.pagetitle=\uacf5\uc791\ucd94\uc9c4\ud604\ud669 +susa.pr.view.pagetitle_en=Maneuver Promition Condition +susa.pr.view.no=\uc5f0\ubc88 +susa.pr.view.place1=\ubd80\uc11c +susa.pr.view.chargeNm=\ub2f4\ub2f9\uc790 +susa.pr.view.title=\uacf5\uc791\uba85 +susa.pr.view.sdate=\ucc29\uc218\uc77c +susa.pr.view.edate=\uc885\ub8cc\uc77c +susa.pr.view.contents=\ud611\uc758\ub0b4\uc6a9 +susa.pr.view.result=\uacb0\uacfc + +########---Target (\uc678\uc0ac\ub300\uc0c1\ubaa9\ud45c)--######### +#\uc678\uc0ac\ucde8\uc57d\uc9c0# +target.wp.wpNoStr=\uad00\ub9ac\ubc88\ud638 +target.wp.place1=\uc11c\uba85 +target.wp.wpNo=\ubc88\ud638 +target.wp.name=\ucde8\uc57d\uc9c0\uba85 +target.wp.location=\uc18c\uc7ac\uc9c0 +target.wp.filename1=\uc694\ub3c4\ucca8\ubd80 +target.wp.filename2=\ucca8\ubd80\ud30c\uc77c +target.wp.comments=\uc120\uc815\uc0ac\uc720 +#\uce58\uc548\ub300\uc0c1# +target.corp.place1=\uc9c0\uc5ed +target.corp.name01=\uae30\uad00\uba85 +target.corp.name02=\uba85\uce6d +target.corp.name=\uc5c5\uccb4\uba85 +target.corp.location=\uc18c\uc7ac\uc9c0 +target.corp.shipcnt=\uc120\ubc15(\ucc99) +target.corp.ceo=\ub300\ud45c\uc790 +target.corp.jobtype=\uc5c5\uc885 +target.corp.membercnt=\uc778\uc6d0 +target.corp.partner=\ub300\uc0c1\uad6d +target.corp.basicyear=\uc124\ub9bd\ub144\ub3c4 +target.corp.fund=\uc790\ubcf8\uae08(\ub9cc\uc6d0) +target.corp.tel=\uc804\ud654 +target.corp.fax=FAX +target.corp.comments=\ube44\uace0 +#\uad6d\uc81c\uc5ec\uac1d\uc120# +target.ferry=\uad6d\uc81c\uc5ec\uac1d\uc120 +target.ferry.no=\ubc88\ud638 +target.ferry.office=\uc5ec\uac1d\uc120\uc0ac +target.ferry.name=\uc120\uba85 +target.ferry.ton=\ud1a4\uc218 +target.ferry.route=\ud56d\ub85c +target.ferry.ferryTime=\ud56d\ud574\uc2dc\uac04 +target.ferry.speed=\uc18d\ub825 +target.ferry.speedMax=\ucd5c\ub300 +target.ferry.speedNor=\ud56d\ud574 +target.ferry.capacity=\uc815\uc6d0 +target.ferry.capacityTot=\uacc4 +target.ferry.guestCnt=\uc5ec\uac1d +target.ferry.clueCnt=\uc2b9\ubb34\uc6d0 +target.ferry.runTerm=\uc6b4\ud56d\uc8fc\uae30 +target.ferry.runCnt=\uc6b4\ud56d\ud69f\uc218 +target.ferry.repreName=\ub300\ud45c\uc790 +target.ferry.tel=\uc5f0\ub77d\ucc98 +target.ferry.ferrySosok=\uc120\uc801 +target.ferry.sailingDistance=\ud56d\ud574\uac70\ub9ac +target.ferry.sailingDate=\ucde8\ud56d\uc77c +target.ferry.cooperateNation=\ud569\uc791\uad6d +target.ferry.isCooperate=\ud569\uc791\uc5ec\ubd80 +target.ferry.imgFile=\ucca8\ubd80\uc774\ubbf8\uc9c0 +target.ferry.comments=\ube44\uace0 +#\uc678\uc0ac\ubd84\uc2e4\uc6b4\uc601\ud604\ud669# +target.divmng=\uc678\uc0ac\ubd84\uc2e4\uc6b4\uc601\ud604\ud669 +target.divmng.place=\ubd80\uc11c +target.divmng.local=\uc124\uce58\uc7a5\uc18c +target.divmng.gubun=\uadfc\ubb34\ud615\ud0dc +target.divmng.staffNum=\uadfc\ubb34\uc778\uc6d0 +target.divmng.tel=\uc804\ud654\ubc88\ud638 +target.divmng.condition=\ud604\ud669 +target.divmng.equipStat=\uc7a5\ube44\ud604\ud669 +target.divmng.fileImg=\uc0ac\uc9c4 +target.divmng.file=\ucca8\ubd80\ud30c\uc77c + +#\uc911\uad6d\uc5b4\uc120 \ub2e8\uc18d\uc2dc\uc2a4\ud15c# +arrest.id=ID +arrest.arrestDate=\ub098\ud3ec\uc77c\uc2dc +arrest.agencyType=\uac80\uac70\uae30\uad00 +arrest.agencyGuard=\uac80\uac70\uae30\uad00(\ud574\uc591\uacbd\ube44\uc548\uc804\uc11c) +arrest.agencyVessel=\uac80\uac70\uae30\uad00(\ud568\uc815) +arrest.list.agencyVessel=\ud568\uc815 +arrest.vessel=\ud568\uc815 +arrest.procCondition=\ucc98\ub9ac\ud604\ud669 +arrest.violateType=\uc704\ubc18\ub0b4\uc6a9 +arrest.violateDetail=\uc704\ubc18\ub0b4\uc6a9\uc0c1\uc138 +arrest.invasionType=\uce68\ubc94\uc720\ud615 +arrest.specBatlYn=\ud2b9\uacf5\ubc29 +arrest.nllYn=NLL +arrest.woDetentionType=\ubb34\ud610\uc758\ubd88\uad6c\uc18d +arrest.fieldArrestDate=\ub098\ud3ec\uc77c\uc2dc +arrest.fieldReleaseDate=\uc11d\ubc29\uc77c\uc2dc +arrest.leadDistance=\uac70\ub9ac +arrest.leadHour=\uc18c\uc694\uc2dc\uac04 +arrest.leadMinute=\ubd84 +arrest.captainCount=\uc120\uc7a5 +arrest.mateCount=\ud56d\ud574\uc0ac +arrest.engineerCount=\uae30\uad00\uc7a5 +arrest.crewCount=\uc120\uc6d0 +arrest.shipProcType=\uc120\ubc15\ucc98\ub9ac +arrest.commissionCost=\uc704\ud0c1\uad00\ub9ac\ube44 +arrest.gearCast=\ud2c0 +arrest.gearWidth=\ud3ed +arrest.gearEtc=\uae30\ud0c0 +arrest.addrArea=\uc704\ubc18\uc7a5\uc18c_\ub3c4 +arrest.addrCity=\uc2dc +arrest.addrDetail=\uc0c1\uc138\uc8fc\uc18c +arrest.latD=\uc704\ub3c4 \ub3c4 +arrest.latM=\uc704\ub3c4 \ubd84 +arrest.latS=\uc704\ub3c4 \ucd08 +arrest.lonD=\uacbd\ub3c4 \ub3c4 +arrest.lonM=\uacbd\ub3c4 \ubd84 +arrest.lonS=\uacbd\ub3c4 \ucd08 +arrest.shipName=\uc120\uba85 +arrest.shipTonnage=\ud1a4\uc218 +arrest.shipCrewCnt=\uc120\uc6d0 +arrest.shipQuality=\uc120\uc9c8 +arrest.shipMent=\uc120\uc801 +arrest.shipPortName=\ud56d\uad6c\uba85 +arrest.shipType=\uc120\uc885 +arrest.type=\uc885\ub958 +arrest.capName=\uc120\uc7a5\uba85 +arrest.capChnName=\uc120\uc7a5\ud55c\uc790\uba85 +arrest.capAge=\uc120\uc7a5\ub098\uc774 +arrest.vioFish=\ubc94\uce59\uc5b4\uc885 +arrest.vioCnt=\ubc94\uce59\uc218\ub7c9 +arrest.vioCnt2=\uc218\ub7c9 +arrest.vioPriatedAmt=\uc704\ud310\uae08\uc561 +arrest.vioPriatedAmt2=\uc704\ud310\uae08\uc561(\uc6d0) +arrest.marginPayment=\ub2f4\ubcf4\uae08\ub0a9\ubd80 +arrest.noMarginPayment=\ub2f4\ubcf4\uae08\ubbf8\ub0a9 +arrest.marginPaymentAmt=\ub2f4\ubcf4\uae08\ub0a9\ubd80\uc561 +arrest.marginPaymentAmt2=\ub0a9\ubd80\uc561(\ub9cc\uc6d0) +arrest.marginPaymentDate=\ub0a9\ubd80\uc77c\uc2dc +arrest.status=\uc800\uc7a5\uc0c1\ud0dc +arrest.delYn=\uc0ad\uc81c\uc5ec\ubd80 +arrest.regDate=\ub4f1\ub85d\uc77c\uc2dc +arrest.regUser=\ub4f1\ub85d\uc790 +arrest.regAgency=\ub4f1\ub85d\uae30\uad00 +arrest.violatePlace=\uc704\ubc18\uc7a5\uc18c +arrest.captain=\uc120\uc7a5 +arrest.shipData=\uc120\ubc15\uc81c\uc6d0 +arrest.detention=\uad6c\uc18d +arrest.withoutDetention=\ubd88\uad6c\uc18d +arrest.noSuspension=\ubb34\ud610\uc758 +arrest.violation=\ubc94\uce59\ubb3c +arrest.detention=\uad6c\uc18d +arrest.feildSurvey=\ud604\uc7a5\uc870\uc0ac +arrest.name=\uc774\ub984 +arrest.chn=\ud55c\uc790 +arrest.age=\ub098\uc774 +arrest.lead=\uc555\uc1a1 +arrest.fishingGear=\uc5b4\uad6c\uc555\uc218 +arrest.invasionType.particularBan=\ud2b9\uc815\uae08\uc9c0 +arrest.invasionType.withoutLicense=\ubb34\ud5c8\uac00 +arrest.invasionType.territWaters=\uc601\ud574 +arrest.invasionType.eez=EEZ +arrest.invasionType.specBatl=\ud2b9\uacf5\ubc29 +arrest.invasionType.nll=NLL +arrest.won=\uc6d0 +arrest.trustMoney=\uc704\ud0c1\uae08 (\uc6d0) +arrest.myung=\uba85 +arrest.knot=\ud574\ub9ac +arrest.hour=\uc2dc\uac04 +arrest.minute=\ubd84 +arrest.person=\uba85 +arrest.submit=\uc81c\ucd9c +arrest.temporary=\uc784\uc2dc\uc800\uc7a5 +arrest.modify=\uc218\uc815 +arrest.delete=\uc0ad\uc81c +arrest.cancel=\ucde8\uc18c +arrest.totalCount=\uacc4 +arrest.procCondition.underExam=\uc870\uc0ac\uc911 +arrest.procCondition.finish=\uc644\ub8cc +arrest.marginPayment.finish=\ub0a9\ubd80\uc644\ub8cc +arrest.marginPayment.default=\ubbf8\ub0a9 +arrest.marginPayment.paymentAmt=\ub0a9\ubd80\uc561 +arrest.marginPayment.defaultAmt=\ubbf8\ub0a9\uc561 +arrest.marginPayment.defaultAmt2=\ubbf8\ub0a9\uae08\uc561(\ub9cc\uc6d0) +arrest.marginPayment.10000=\ub9cc\uc6d0 +arrest.shipProcType.commission=\uc704\ud0c1\uad00\ub9ac +arrest.shipProcType.eviction=\ud1f4\uac70 +arrest.shipProcType.direct=\uc9c1\uc811\uc778\uacc4 +arrest.shipProcType.discard=\ud3d0\uae30 +arrest.shipProcType.forfeit=\ubab0\uc218 +arrest.shipProcType.commissionCost=\uc704\ud0c1\uad00\ub9ac\ube44 +arrest.woDetentionType.prosecution=\uae30\uc18c\uc911\uc9c0 +arrest.woDetentionType.conclusion=\ub0b4\uc0ac\uc885\uacb0 +arrest.woDetentionType.woDetention=\ubd88\uad6c\uc18d +arrest.woDetentionType.nonindictment=\ubd88\uae30\uc18c +arrest.list.shipTonnage=\uc120\ubc15\uc81c\uc6d0(\ud1a4\uc218) +arrest.list.shipQuality=\uc120\ubc15\uc81c\uc6d0(\uc120\uc9c8) +arrest.list.shipMent=\uc120\ubc15\uc81c\uc6d0(\uc120\uc801) +arrest.list.search=\uac80\uc0c9 +arrest.list.insert=\uc785\ub825 +arrest.list.status=\uc0c1\ud0dc +arrest.list.searchresult=\uac80\uc0c9\uacb0\uacfc +arrest.list.count=\uac74 +arrest.noData=\ub370\uc774\ud130\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4 +arrest.list.title=\uc911\uad6d\uc5b4\uc120 \ub098\ud3ec \ucc98\ub9ac \ud604\ud669 + +#\uc678\uc0ac\ud1b5\uacc4 +stats.all=\uc804\uccb4 + +#\uae30\ud0c0 +etc.editor.descript=* \ud55c\uae00 \ubb38\uc11c\uc758 \ub0b4\uc6a9 \ubc0f \ud45c \uc591\uc2dd\uc744 \ubcf5\uc0ac\ud558\uc5ec \ubd99\uc5ec\ub123\uc73c\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. + +#\uad6d\uc81c\ud574\uc591\uc815\ubcf4\uc2dc\uc2a4\ud15c +Url.imsi.preSystem = http://10.29.9.40:8500/login.aspx \ No newline at end of file diff --git a/src/main/resources/property/ck.properties b/src/main/resources/property/ck.properties new file mode 100644 index 0000000..2b44950 --- /dev/null +++ b/src/main/resources/property/ck.properties @@ -0,0 +1,15 @@ +# CKEditor Image File Upload + +#optional +ck.image.type.allow=jpg,jpeg,gif,bmp,png +#optional +#ck.image.save.class=Implementation of egovframework.com.utl.wed.filter.FileSaveManager + +# if you use "separate image server" or other case. (apache, cdn, nas...) +#ck.image.dir=/www/images.mydomain.com/upload +#ck.image.url=http://images.mydomain.com/upload/ + +# if you use "web application"'s deployed directory. +# \uc2e4\uc81c \uc6b4\uc601\uc2dc \uacbd\ub85c\ub97c \uc11c\ube44\uc2a4 \uacbd\ub85c\ub85c \ubcc0\uacbd\ud574\uc918\uc57c \ud55c\ub2e4. +ck.image.dir=D:/file_repository/ckeditorUpload +ck.image.url=/storage/ckeditorUpload \ No newline at end of file diff --git a/src/main/resources/property/globals.properties b/src/main/resources/property/globals.properties new file mode 100644 index 0000000..a234aea --- /dev/null +++ b/src/main/resources/property/globals.properties @@ -0,0 +1,43 @@ +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + + +#File path +Global.fileStorePath = E:/h2_bbs/_upload/main/ +Global.imageStorePath = E:/h2_bbs/_upload/main/ +Report.fileStorePath = E:/h2_report/storage/info/ + +#Global.fileStorePath = h2_bbs/_upload/ +#Global.imageStorePath = h2_bbs/_upload/main/image/ +#Report.fileStorePath = h2_report/storage/info/1 + + +#Aria Encryption +Global.crypto.key = faics1234567 +Global.crypto.hased.password = U7Epd/1HVt76n5o0NAXS9f1ArmdigKFEJYgRfWeBjIA= +Global.crypto.password.algorithm = SHA-256 + +#System URL +#\uad6d\uc81c\ud574\uc591\uc815\ubcf4\uc2dc\uc2a4\ud15c +Url.imis.preSystem = http://10.29.9.40:8500/login.aspx +#\uc2e4\uc11c\ubc84 +#Url.IMIS.loginProc = http://10.29.9.42/logic_login.php +#\ud14c\uc2a4\ud2b8\uc11c\ubc84 + +#\uad6d\ubbfc\uc548\uc804\ucc98 +Url.MPSS = http://www.mpss.go.kr/ + +#\uc815\uc801 \uc18c\uc2a4 \ubc84\uc804 +StaticFile.version=180102 diff --git a/src/main/resources/spring/context-common.xml b/src/main/resources/spring/context-common.xml new file mode 100644 index 0000000..50a5b83 --- /dev/null +++ b/src/main/resources/spring/context-common.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + classpath:message/message-common + classpath:property/globals + + classpath:/egovframework/rte/fdl/property/messages/properties + classpath:/egovframework/rte/fdl/idgnr/messages/idgnr + + + + 60 + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/spring/context-datasource.xml b/src/main/resources/spring/context-datasource.xml new file mode 100644 index 0000000..d3034d8 --- /dev/null +++ b/src/main/resources/spring/context-datasource.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/spring/context-mapper.xml b/src/main/resources/spring/context-mapper.xml new file mode 100644 index 0000000..d37793a --- /dev/null +++ b/src/main/resources/spring/context-mapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + classpath:property/globals.properties + + + + \ No newline at end of file diff --git a/src/main/resources/spring/context-properties.xml b/src/main/resources/spring/context-properties.xml new file mode 100644 index 0000000..17ab6ab --- /dev/null +++ b/src/main/resources/spring/context-properties.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/spring/context-security.xml b/src/main/resources/spring/context-security.xml new file mode 100644 index 0000000..bb541d8 --- /dev/null +++ b/src/main/resources/spring/context-security.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/spring/context-transaction.xml b/src/main/resources/spring/context-transaction.xml new file mode 100644 index 0000000..93b1ace --- /dev/null +++ b/src/main/resources/spring/context-transaction.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/spring/context-validator.xml b/src/main/resources/spring/context-validator.xml new file mode 100644 index 0000000..5f83b9c --- /dev/null +++ b/src/main/resources/spring/context-validator.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + /WEB-INF/config/validator/validator-rules.xml + /WEB-INF/config/validator/validator.xml + + + + + diff --git a/src/main/resources/sqlmapper/mappers/admin/admin.xml b/src/main/resources/sqlmapper/mappers/admin/admin.xml new file mode 100644 index 0000000..4e55d6c --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/admin/admin.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/sqlmapper/mappers/board/board.xml b/src/main/resources/sqlmapper/mappers/board/board.xml new file mode 100644 index 0000000..d139422 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/board/board.xml @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + SELECT IFNULL(MAX(bd_idx) + 1, 1) FROM H2_BOARD_DATA + + /* Board.insertBoard */ + INSERT INTO H2_BOARD_DATA( + bd_idx + , bd_yn + , bd_idx_grp + , bbs_id + , ct_id + , bd_part + , bd_subject + , bd_content + , bd_files + , bd_fileNames + , bd_imgs + , bd_imgNames + , grp_idx + , grp_name + , usr_idx + , usr_name + , bd_ipaddr + , bd_regdate + , bd_view_auth + , bd_view_grp + , bd_class + , bd_tel + , bd_object + , bd_national + , bd_timelimit + , bd_etc + , bd_count + )VALUES( + #{bdIdx} + , #{bdYn} + + + , #{bdIdx} + + + , #{bdIdx} + + + , #{bdIdxGrp} + + + , #{bbsId} + , #{ctId} + , #{bdPart} + , #{bdSubject} + , #{bdContent} + , #{bdFiles} + , #{bdFileNames} + , #{bdImgs} + , #{bdImgNames} + , #{grpIdx} + , #{grpName} + , #{usrIdx} + , #{usrName} + , #{bdIpaddr} + , unix_timestamp() + , #{bdViewAuth} + , #{bdViewGrp} + , #{bdClass} + , #{bdTel} + , #{bdObject} + , #{bdNational} + , #{bdTimelimit} + , #{bdEtc} + , 0 + ) + + + + + + + + /* Board.updateBoard */ + UPDATE + H2_BOARD_DATA + SET + BD_SUBJECT = #{bdSubject} + , BD_CONTENT = #{bdContent} + , BD_FILES = #{bdFiles} + , BD_FILENAMES = #{bdFileNames} + , BD_IMGS = #{bdImgs} + , BD_IMGNAMES = #{bdImgNames} + WHERE + BD_IDX = #{bdIdx} + + + + + SELECT IFNULL(BD_COUNT, 0) + 1 FROM H2_BOARD_DATA WHERE BD_IDX = #{bdIdx} + + /* Board.hitBoard */ + UPDATE + H2_BOARD_DATA + SET + BD_COUNT = #{bdCount} + WHERE + BD_IDX = #{bdIdx} + + + + + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/cmmn/code.xml b/src/main/resources/sqlmapper/mappers/cmmn/code.xml new file mode 100644 index 0000000..9dcce2f --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/cmmn/code.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + /* Code.updateCode */ + UPDATE + H2_COMMON_CODE + SET + CC_CODE_NAME = #{name}, + + CC_CODE = #{code}, + + + CC_CODE_YAK = #{shortName}, + + + CC_ORDER = #{order}, + + CC_USE_YN = #{useYn} + WHERE + CC_GROUP = #{group} + AND CC_CODE = #{code} + + + + /* Code.deleteCode */ + DELETE + FROM + H2_COMMON_CODE + WHERE + CC_GROUP = #{group} + AND CC_CODE = #{code} + + diff --git a/src/main/resources/sqlmapper/mappers/cmmn/common.xml b/src/main/resources/sqlmapper/mappers/cmmn/common.xml new file mode 100644 index 0000000..1496faf --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/cmmn/common.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/cmmn/log.xml b/src/main/resources/sqlmapper/mappers/cmmn/log.xml new file mode 100644 index 0000000..0243693 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/cmmn/log.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/cmmn/menu.xml b/src/main/resources/sqlmapper/mappers/cmmn/menu.xml new file mode 100644 index 0000000..5a0e193 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/cmmn/menu.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/cmmn/test.xml b/src/main/resources/sqlmapper/mappers/cmmn/test.xml new file mode 100644 index 0000000..75b16a4 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/cmmn/test.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/member/member.xml b/src/main/resources/sqlmapper/mappers/member/member.xml new file mode 100644 index 0000000..d6cd7c5 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/member/member.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO H2_USER_INFO( + USR_ID, + USR_NAME, + USR_PWD, + USR_PWD_CHG, + USR_DUTY, + USR_PLACE1, + USR_PLACE2, + USR_LV, + USR_REGDATE, + USR_CHGDATE + )values( + #{userid}, + #{name}, + #{passwd}, + 'Y', + #{duties}, + #{place1}, + #{place2}, + '6', + NOW(), + NOW() + ) + + + + UPDATE H2_USER_INFO + SET + USR_NAME = #{name} + + , USR_PWD = #{passwd} + + , USR_DUTY = #{duties} + , USR_PLACE1 = #{place1} + , USR_PLACE2 = #{place2} + , USR_CHGDATE = NOW() + WHERE + USR_ID = #{userid} + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/moniter/moniter.xml b/src/main/resources/sqlmapper/mappers/moniter/moniter.xml new file mode 100644 index 0000000..1962907 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/moniter/moniter.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE H2_JSS_MONITER + SET + JM_NAME = #{jmName}, + JM_HREF = #{jmHref} + WHERE + JM_IDX = #{jmIdx} + + + + INSERT INTO H2_JSS_MONITER + ( + jm_idx, jm_depth + , jm_depth1_idx, jm_depth2_idx, jm_depth3_idx + , jm_depth4_idx, jm_depth5_idx, jm_depth6_idx + , jm_name, jm_order, jm_child, jm_href + ) VALUES ( + #{jmIdx}, #{jmDepth} + , #{jmDepth1Idx}, #{jmDepth2Idx}, #{jmDepth3Idx} + , #{jmDepth4Idx}, #{jmDepth5Idx}, #{jmDepth6Idx} + , #{jmName}, #{jmOrder}, #{jmChild}, #{jmHref} + ) + + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/nation/nation.xml b/src/main/resources/sqlmapper/mappers/nation/nation.xml new file mode 100644 index 0000000..6f56599 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/nation/nation.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* Nation.getNationInfo */ + UPDATE h2_nation + SET + na_info1 = #{naInfo1}, + na_info2 = #{naInfo2}, + na_info3 = #{naInfo3}, + na_info4 = #{naInfo4}, + na_info5 = #{naInfo5}, + na_info6 = #{naInfo6}, + na_info7 = #{naInfo7}, + na_data1 = #{naData1}, + na_data2 = #{naData2}, + na_data3 = #{naData3}, + na_data4 = #{naData4}, + na_data5 = #{naData5}, + na_data6 = #{naData6}, + na_data7 = #{naData7}, + na_data8 = #{naData8}, + na_data9 = #{naData9}, + na_data10 = #{naData10}, + na_data11 = #{naData11}, + na_data12 = #{naData12}, + na_data13 = #{naData13}, + na_data14 = #{naData14}, + na_data15 = #{naData15}, + na_data16 = #{naData16}, + na_data17 = #{naData17}, + na_data18 = #{naData18}, + na_data19 = #{naData19}, + na_data20 = #{naData20}, + na_data21 = #{naData21}, + na_data22 = #{naData22} + WHERE na_seq = #{naSeq} + + + diff --git a/src/main/resources/sqlmapper/mappers/notice/notice.xml b/src/main/resources/sqlmapper/mappers/notice/notice.xml new file mode 100644 index 0000000..80176a2 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/notice/notice.xml @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + SELECT IFNULL(MAX(np_idx) + 1, 1) FROM h2_notice_popup + + /* Notice.insertNotice */ + INSERT INTO h2_notice_popup( + np_idx + , np_subject + , np_text + , np_active + , np_width + , np_height + , np_writer + , np_regdate + , np_start + , np_end + )VALUES( + #{npIdx} + , #{npSubject} + , #{npText} + , #{npActive} + , #{npWidth} + , #{npHeight} + , #{npWriter} + , NOW() + , #{npStart} + , #{npEnd} + ) + + + + + + + + /* Notice.updateNotice */ + UPDATE + h2_notice_popup + SET + NP_SUBJECT = #{npSubject} + , NP_TEXT = #{npText} + , NP_START = #{npStart} + , NP_END = #{npEnd} + , NP_HEIGHT = #{npHeight} + , NP_WIDTH = #{npWidth} + , NP_ACTIVE = #{npActive} + WHERE + NP_IDX = #{npIdx} + + + + + + + + diff --git a/src/main/resources/sqlmapper/mappers/report/report.xml b/src/main/resources/sqlmapper/mappers/report/report.xml new file mode 100644 index 0000000..f938aab --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/report/report.xml @@ -0,0 +1,1456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO H2_REPORT_INFO( + in_agency_code, in_place + , in_place_code, in_place_name, in_place_num + , in_doc_place, in_type_code, in_type + , in_category1, in_category2, in_category3 + , in_category4, in_subject, in_memo + , in_place1, in_place2, in_duty + , in_name, in_userid, in_ip + , in_content, in_infodate + , in_info_year, in_info_month, in_info_day + , in_regdate, in_chkdate + , in_offline_userid, in_complete + , in_old, in_delete, in_state_code + , in_fsseq + )VALUES( + #{inAgencyCode}, #{inPlace} + , #{inPlaceCode}, #{inPlaceName}, #{inPlaceNum} + , #{inDocPlace}, #{inTypeCode}, '' + , #{inCategory1}, #{inCategory2}, '' + , '', #{inSubject}, #{inMemo} + , #{inPlace1}, #{inPlace2}, #{inDuty} + , #{inName}, #{inUserid}, #{inIp} + , #{inContent}, #{strInfodate} + , #{inInfoYear}, #{inInfoMonth}, #{inInfoDay} + , NOW() , #{inChkdate} + , #{inOfflineUserid}, #{inComplete} + , #{inOld}, #{inDelete}, #{inStateCode} + , #{inFsseq} + ) + + + + UPDATE + H2_REPORT_INFO + SET + in_agency_code = #{inAgencyCode}, + in_place_code = #{inPlaceCode}, + in_place_name = #{inPlaceName}, + in_place_num = #{inPlaceNum}, + in_category1 = #{inCategory1}, + in_category2 = #{inCategory2}, + in_memo = #{inMemo}, + in_subject = #{inSubject}, + in_place1 = #{inPlace1}, + in_place2 = #{inPlace2}, + in_duty = #{inDuty}, + in_name = #{inName}, + in_userid = #{inUserid}, + in_ip = #{inIp}, + in_fsseq = #{inFsseq}, + + + + + in_info_year = #{inInfoYear}, + in_info_month = #{inInfoMonth}, + in_info_day = #{inInfoDay}, + in_state_code = #{inStateCode}, + in_content = #{inContent}, + in_complete = #{inComplete}, + in_judge = #{inJudge}, + in_juseq_section = #{inJuseqSection}, + in_juseq_head = #{inJuseqHead} + WHERE + in_seq = #{inSeq} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/report/reportFile.xml b/src/main/resources/sqlmapper/mappers/report/reportFile.xml new file mode 100644 index 0000000..f007939 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/report/reportFile.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + SELECT H2_REPORT_FILE_STORAGE_FS_SEQ_SEQ.CURRVAL FROM DUAL + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/report/reportGoal.xml b/src/main/resources/sqlmapper/mappers/report/reportGoal.xml new file mode 100644 index 0000000..d8ddd87 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/report/reportGoal.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO + RPT_AGENT_GOAL + VALUES + (#{goYear}, #{goMonth}, #{goPlace1}, #{goId}, #{goGoal1}, #{goGoal2}, #{goGoal3}, #{goGoal4}, #{goTotal}) + + + + UPDATE + RPT_AGENT_GOAL + SET + GO_YEAR = #{goYear}, + GO_MONTH = #{goMonth}, + GO_GOAL1 = #{goGoal1}, + GO_GOAL2 = #{goGoal2}, + GO_GOAL3 = #{goGoal3}, + GO_GOAL4 = #{goGoal4}, + GO_TOTAL = #{goTotal} + WHERE + GO_ID = #{goId} + + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/report/reportJudge.xml b/src/main/resources/sqlmapper/mappers/report/reportJudge.xml new file mode 100644 index 0000000..99a7f6e --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/report/reportJudge.xml @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/sqlmapper/mappers/sec/security.xml b/src/main/resources/sqlmapper/mappers/sec/security.xml new file mode 100644 index 0000000..abba1c6 --- /dev/null +++ b/src/main/resources/sqlmapper/mappers/sec/security.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + /* Security.updateLoginInfo*/ + UPDATE + + + TAGENT + + + TUSER + + + + + + + + diff --git a/src/main/resources/sqlmapper/sql-mapper-config.xml b/src/main/resources/sqlmapper/sql-mapper-config.xml new file mode 100644 index 0000000..308eff4 --- /dev/null +++ b/src/main/resources/sqlmapper/sql-mapper-config.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/WEB-INF/config/springmvc/dispatcher-servlet.xml b/src/main/webapp/WEB-INF/config/springmvc/dispatcher-servlet.xml new file mode 100644 index 0000000..c8b3ea4 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/springmvc/dispatcher-servlet.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + /error/dataAccessFailure + /error/transactionFailure + /error/bizError + + + + + + + + + + + + + + + + + + + + + + + + + /WEB-INF/config/tiles/*.xml + + + + + + + + + + + + + + + + + + + + + + text/html;charset=UTF-8 + application/json;charset=UTF-8 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/tiles/default-layout.xml b/src/main/webapp/WEB-INF/config/tiles/default-layout.xml new file mode 100644 index 0000000..1a20f4b --- /dev/null +++ b/src/main/webapp/WEB-INF/config/tiles/default-layout.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/validator/validator-rules.xml b/src/main/webapp/WEB-INF/config/validator/validator-rules.xml new file mode 100644 index 0000000..314ab84 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/validator/validator-rules.xml @@ -0,0 +1,1343 @@ + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else if (field.type == 'radio' || field.type == 'checkbox') { + if (field.checked) { + value = field.value; + } + } else { + value = field.value; + } + if (trim(value).length == 0) { + if ((i == 0) && (field.type != 'hidden')) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid = false; + } + } else if (field.type == "select-multiple") { + var numOptions = field.options.length; + lastSelected=-1; + for(loop=numOptions-1;loop>=0;loop--) { + if(field.options[loop].selected) { + lastSelected = loop; + value = field.options[loop].value; + break; + } + } + if(lastSelected < 0 || trim(value).length == 0) { + if(i == 0) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) { + isChecked=-1; + for (loop=0;loop < field.length;loop++) { + if (field[loop].checked) { + isChecked=loop; + break; // only one needs to be checked + } + } + if (isChecked < 0) { + if (i == 0) { + focusField = field[0]; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + // Trim whitespace from left and right sides of s. + function trim(s) { + return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); + } + + ]]> + + + + + + + + + + + + 0) && (field.value.length < iMin)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMinLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + iMax) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMaxLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + 0)) { + + if (!matchPattern(field.value, oMasked[x][2]("mask"))) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMasked[x][1]; + isValid = false; + } + } + } + + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + function matchPattern(value, mask) { + return mask.exec(value); + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + bValid = false; + } + } + } + + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + + } else { + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isAllDigits(argvalue) { + argvalue = argvalue.toString(); + var validChars = "0123456789"; + var startFrom = 0; + if (argvalue.substring(0, 2) == "0x") { + validChars = "0123456789abcdefABCDEF"; + startFrom = 2; + } else if (argvalue.charAt(0) == "0") { + validChars = "01234567"; + startFrom = 1; + } else if (argvalue.charAt(0) == "-") { + startFrom = 1; + } + + for (var n = startFrom; n < argvalue.length; n++) { + if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; + } + return true; + }]]> + + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + // remove '.' before checking digits + var tempArray = value.split('.'); + var joinedString= tempArray.join(''); + + if (!isAllDigits(joinedString)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + + } else { + var iValue = parseFloat(value); + if (isNaN(iValue)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + + + + 0) && + (datePattern.length > 0)) { + var MONTH = "MM"; + var DAY = "dd"; + var YEAR = "yyyy"; + var orderMonth = datePattern.indexOf(MONTH); + var orderDay = datePattern.indexOf(DAY); + var orderYear = datePattern.indexOf(YEAR); + if ((orderDay < orderYear && orderDay > orderMonth)) { + var iDelim1 = orderMonth + MONTH.length; + var iDelim2 = orderDay + DAY.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderDay && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderDay) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[2], matched[1], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth < orderYear && orderMonth > orderDay)) { + var iDelim1 = orderDay + DAY.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[1], matched[2], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth > orderYear && orderMonth < orderDay)) { + var iDelim1 = orderYear + YEAR.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); + } else if (iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); + } else { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[3], matched[2], matched[1])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isValidDate(day, month, year) { + if (month < 1 || month > 12) { + return false; + } + if (day < 1 || day > 31) { + return false; + } + if ((month == 4 || month == 6 || month == 9 || month == 11) && + (day == 31)) { + return false; + } + if (month == 2) { + var leap = (year % 4 == 0 && + (year % 100 != 0 || year % 400 == 0)); + if (day>29 || (day == 29 && !leap)) { + return false; + } + } + return true; + }]]> + + + + + + + + + + + + + + + 0)) { + + var iMin = parseInt(oRange[x][2]("min")); + var iMax = parseInt(oRange[x][2]("max")); + var iValue = parseInt(field.value); + if (!(iValue >= iMin && iValue <= iMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + + var fMin = parseFloat(oRange[x][2]("min")); + var fMax = parseFloat(oRange[x][2]("max")); + var fValue = parseFloat(field.value); + if (!(fValue >= fMin && fValue <= fMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + if (!luhnCheck(form[oCreditCard[x][0]].value)) { + if (i == 0) { + focusField = form[oCreditCard[x][0]]; + } + fields[i++] = oCreditCard[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl + */ + function luhnCheck(cardNumber) { + if (isLuhnNum(cardNumber)) { + var no_digit = cardNumber.length; + var oddoeven = no_digit & 1; + var sum = 0; + for (var count = 0; count < no_digit; count++) { + var digit = parseInt(cardNumber.charAt(count)); + if (!((count & 1) ^ oddoeven)) { + digit *= 2; + if (digit > 9) digit -= 9; + }; + sum += digit; + }; + if (sum == 0) return false; + if (sum % 10 == 0) return true; + }; + return false; + } + + function isLuhnNum(argvalue) { + argvalue = argvalue.toString(); + if (argvalue.length == 0) { + return false; + } + for (var n = 0; n < argvalue.length; n++) { + if ((argvalue.substring(n, n+1) < "0") || + (argvalue.substring(n,n+1) > "9")) { + return false; + } + } + return true; + }]]> + + + + + + + + 0)) { + if (!checkEmail(form[oEmail[x][0]].value)) { + if (i == 0) { + focusField = form[oEmail[x][0]]; + } + fields[i++] = oEmail[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), + * http://javascript.internet.com + */ + function checkEmail(emailStr) { + if (emailStr.length == 0) { + return true; + } + var emailPat=/^(.+)@(.+)$/; + var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; + var validChars="\[^\\s" + specialChars + "\]"; + var quotedUser="(\"[^\"]*\")"; + var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; + var atom=validChars + '+'; + var word="(" + atom + "|" + quotedUser + ")"; + var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); + var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); + var matchArray=emailStr.match(emailPat); + if (matchArray == null) { + return false; + } + var user=matchArray[1]; + var domain=matchArray[2]; + if (user.match(userPat) == null) { + return false; + } + var IPArray = domain.match(ipDomainPat); + if (IPArray != null) { + for (var i = 1; i <= 4; i++) { + if (IPArray[i] > 255) { + return false; + } + } + return true; + } + var domainArray=domain.match(domainPat); + if (domainArray == null) { + return false; + } + var atomPat=new RegExp(atom,"g"); + var domArr=domain.match(atomPat); + var len=domArr.length; + if ((domArr[domArr.length-1].length < 2) || + (domArr[domArr.length-1].length > 3)) { + return false; + } + if (len < 2) { + return false; + } + return true; + }]]> + + + + + + + 0) { + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: JS Guide + * http://jsguide.net/ver2/articles/frame.php?artnum=002 + */ + function checkIhIdNum(ihidnum){ + + fmt = /^\d{6}[1234]\d{6}$/; + if(!fmt.test(ihidnum)){ + return false; + } + + birthYear = (ihidnum.charAt(7) <= "2") ? "19" : "20"; + birthYear += ihidnum.substr(0, 2); + birthMonth = ihidnum.substr(2, 2) - 1; + birthDate = ihidnum.substr(4, 2); + birth = new Date(birthYear, birthMonth, birthDate); + + if( birth.getYear() % 100 != ihidnum.substr(0, 2) || + birth.getMonth() != birthMonth || + birth.getDate() != birthDate) { + return false; + } + + var arrDivide = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; + var checkdigit = 0; + for(var i=0;i + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkKorean(koreanStr){ + for(var i=0;i + + + + + + + + 0)) { + + var regexp = ""; + var extStr = oFileExt[x][2]("ext"); + if (extStr) { + var validExts = extStr.split(","); + regexp = "\.("; + for (idx in validExts) { + if (idx > 0) { + regexp += "|"; + } + regexp += validExts[idx]; + } + regexp += ")$"; + } + + if (!matchPatternForFileExt(field.value, regexp)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oFileExt[x][1]; + isValid = false; + } + } + } + + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + function matchPatternForFileExt(value, regexpStr) { + var regexp; + if (regexpStr != null) { + regexp = new RegExp(regexpStr, "i"); + return regexp.exec(value); + } + return false; + }]]> + + + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + function checkStrRegex(value, regex){ + if (regex != null) { + var regExp = new RegExp(regex); + return regExp.test(value); + } + return true; + }]]> + + + + + + diff --git a/src/main/webapp/WEB-INF/config/validator/validator.xml b/src/main/webapp/WEB-INF/config/validator/validator.xml new file mode 100644 index 0000000..748a9b7 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/validator/validator.xml @@ -0,0 +1,148 @@ + + + + + + + validFileExtFormat + bmp,gif,jpg,jpeg,png,xls,xlsx,hwp,pdf,txt + + + validImgExtFormat + bmp,gif,jpg,jpeg,png + + + idCheckRegex + ^[a-zA-Z]{1}[a-zA-Z0-9_]{4,11}$ + + + telRegex + ^\d{2,3}-\d{3,4}-\d{4}$ + + + yearRegex + ^\d{4}$ + + + + dateRegex + ^(19[5-9][0-9]|2\d{3})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$ + + + validFileExtFormatDetail + bmp,gif,jpg,jpeg,png,xls,xlsx,hwp,pdf,txt + + + + +
+ + + + + + + + + + + ext + ${validFileExtFormat} + + + + + + + ext + ${validFileExtFormat} + + + + + + + ext + ${validFileExtFormat} + + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + ext + ${validFileExtFormatDetail} + + + + + + + + ext + ${validFileExtFormatDetail} + + + + + + + + ext + ${validFileExtFormatDetail} + + +
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/memberAuth.jsp b/src/main/webapp/WEB-INF/jsp/admin/memberAuth.jsp new file mode 100644 index 0000000..bc81974 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/memberAuth.jsp @@ -0,0 +1,427 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + +
+
    +
  • 소속  
  • + +
  • 이름  
  • +
  • +
  • + + + +
  • +
  • + + + +
  • +
+
+ + + + +
+ +
+ * : + () + * : + () +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + + + + +
+ "> + + + + + "> + + + + + "> + + + + + "> + + + + + "> + + + +
팀장담당관
');"> + " onclick="AuthCode.makeAuth(event, this);"/> + + checked value="" onclick="return AuthCode.selectAuthSection('${result.userid}', this);"/>checked value="" onclick="AuthCode.selectAuthHead('${result.userid}', this);"/>checked value="" onclick="return AuthCode.selectAuthHead('${result.userid}', this);"/> + " onclick="AuthCode.makeRpt(event, this);"/> + +
+
+
+ +
+ + +
+
+
    +
  • + + +
  • + +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
+
diff --git a/src/main/webapp/WEB-INF/jsp/admin/memberInfo.jsp b/src/main/webapp/WEB-INF/jsp/admin/memberInfo.jsp new file mode 100644 index 0000000..0c68013 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/memberInfo.jsp @@ -0,0 +1,101 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
성 명 + +
아이디 + +
소속 + + 소속2 + +
계급 + +
사용자등급 + + 관리자 + 중간관리자 + 국제협력관 + 국제법규팀장 + 사용자(쓰기) + 사용중지 + +
+
+<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> +
+ +
+
    + +
  • + +
  • +
    +
  • + +
  • +
+
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/memberList.jsp b/src/main/webapp/WEB-INF/jsp/admin/memberList.jsp new file mode 100644 index 0000000..569ab96 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/memberList.jsp @@ -0,0 +1,224 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ page import="kcg.imis.sec.LoginUserVO"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + +<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> + +
+
    +
  • 소속  
  • + +
  • 이름  
  • +
  • +
  • + + + +
  • +
  • + + + +
  • +
+
+ + + +
+ + + +
+
+ +
    +
  • +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ "> + + + + + "> + + + + + "> + + + + + "> + + + + + "> + + + + 수정
+ ')"> + + + 관리자 + 중간관리자 + 국제협력관 + 국제법규팀장 + 사용자(쓰기) + 사용중지 + + 수정
+
+ +
+ +
+ +
+
    +
  • +
+
+
+
+ +
+ diff --git a/src/main/webapp/WEB-INF/jsp/admin/memberModify.jsp b/src/main/webapp/WEB-INF/jsp/admin/memberModify.jsp new file mode 100644 index 0000000..ee7c9e4 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/memberModify.jsp @@ -0,0 +1,176 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
성 명 + +
아이디 + + +
비밀번호 + +
소속 + + 소속2 + +
계급 + +
사용자등급 + +
+
+
+<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> +
+ +
+ +
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/memberNewList.jsp b/src/main/webapp/WEB-INF/jsp/admin/memberNewList.jsp new file mode 100644 index 0000000..a55c004 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/memberNewList.jsp @@ -0,0 +1,272 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
성 명 + +
아이디 + + +
비밀번호 + +
비밀번호확인 + +
소속 + + 소속2 + +
계급 + +
사용자등급 + +
+
+
+<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> +
+ +
+ +
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/moniterManage.jsp b/src/main/webapp/WEB-INF/jsp/admin/moniterManage.jsp new file mode 100644 index 0000000..1963d12 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/moniterManage.jsp @@ -0,0 +1,201 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + +
+
+
    + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
이름 + + + + +
링크 + +
+ +
+
+ +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/admin/placeManage.jsp b/src/main/webapp/WEB-INF/jsp/admin/placeManage.jsp new file mode 100644 index 0000000..20d8046 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/placeManage.jsp @@ -0,0 +1,396 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + +
+ +
+
+ icon + 소속 구분 + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ "> + + + + "> + 소속명 + + + "> + + + + "> + + + + "> + + +
NEW + + +
${status.count} + ${item.code} + + + + ${item.name} + + + + + + + + +
+
+ + + +
+
+
+ icon + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ "> + + + + "> + 코드명 + + + + "> + 약어 + + + "> + + + + "> + + + + "> + + +
+
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/board/boardAdd.jsp b/src/main/webapp/WEB-INF/jsp/board/boardAdd.jsp new file mode 100644 index 0000000..a99a7a8 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/boardAdd.jsp @@ -0,0 +1,197 @@ +<%@page import="kcg.imis.cmmn.CommConstants"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +

+

+

+
+ + + +

+ + + [] 파일은 삭제합니다. + +

+ + + +

+
+
+
+
+ + +
+   + +
+ + + + + +           + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + + + + + + + +           + + + + + + + + + + +           + + + + + +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/boardList.jsp b/src/main/webapp/WEB-INF/jsp/board/boardList.jsp new file mode 100644 index 0000000..654b3de --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/boardList.jsp @@ -0,0 +1,152 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + + + + + + + + + + + + +
+
+ +
    + +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + ')"> + + ┖ [답글] + + +  O
+
+ +
+ +
+
+
    +
  • +
+
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/boardView.jsp b/src/main/webapp/WEB-INF/jsp/board/boardView.jsp new file mode 100644 index 0000000..0a0a89c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/boardView.jsp @@ -0,0 +1,125 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
첨부파일 + + ')"> + + + +
+ + + + +
+
    + +
  • + "> +
  • +
    + +
  • + "> +
  • +
    + +
  • + +
  • +
    +
  • + +
  • + +
  • + +
  • +
  • + +
  • +
    +
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/conferAdd.jsp b/src/main/webapp/WEB-INF/jsp/board/conferAdd.jsp new file mode 100644 index 0000000..c976526 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/conferAdd.jsp @@ -0,0 +1,214 @@ +<%@page import="kcg.imis.cmmn.CommConstants"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +    +    +    +    +    +
+    +    +    +    +    + + +
+ +
+ + + +

+

+

+
+ + + +

+ + + [] 파일은 삭제합니다. + +

+ + + +

+
+
+
+
+ + +
+   + +
+ + + + +           + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + + + + + + +           + + + + + + + + + + + +           + + + + +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/conferList.jsp b/src/main/webapp/WEB-INF/jsp/board/conferList.jsp new file mode 100644 index 0000000..6caf012 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/conferList.jsp @@ -0,0 +1,152 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + +
+
    +
  • + 기관 +
  • + + + +
  • + " onclick="javascript:fn_search();" /> +
  • +
+
+ + +
+ + + + + + + + +
+
+ +
    + +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + ')"> + + ┖ [답글] + + +  O
+
+ +
+ +
+
+
    +
  • +
+
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/conferView.jsp b/src/main/webapp/WEB-INF/jsp/board/conferView.jsp new file mode 100644 index 0000000..e0babc9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/conferView.jsp @@ -0,0 +1,142 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + NPCGF + HACGAM + 중국 + 일본 + 러시아 + 말레이시아 + 싱가폴 + 인도 + 베트남 + 인도네시아 + 필리핀 + 기타 + - + +
첨부파일 + + ')"> + + + +
+ + + + +
+
    + +
  • + "> +
  • +
    + +
  • + "> +
  • +
    + +
  • + +
  • +
    +
  • + +
  • + +
  • + +
  • +
  • + +
  • +
    +
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/jointAdd.jsp b/src/main/webapp/WEB-INF/jsp/board/jointAdd.jsp new file mode 100644 index 0000000..444e62b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/jointAdd.jsp @@ -0,0 +1,205 @@ +<%@page import="kcg.imis.cmmn.CommConstants"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + +

+

+

+
+ + + +

+ + + [] 파일은 삭제합니다. + +

+ + + +

+
+
+
+
+
+   + +
+ + + + +           + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- --%> + + + + + + + + +           + + + + + + + + + + + +           + + + + + +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/jointView.jsp b/src/main/webapp/WEB-INF/jsp/board/jointView.jsp new file mode 100644 index 0000000..272e8a5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/jointView.jsp @@ -0,0 +1,132 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
첨부파일 + + ')"> + + + +
+ + + + +
+
    + +
  • + "> +
  • +
    + +
  • + "> +
  • +
    + +
  • + +
  • +
    +
  • + +
  • + +
  • + +
  • +
  • + +
  • +
    +
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/board/searchResult.jsp b/src/main/webapp/WEB-INF/jsp/board/searchResult.jsp new file mode 100644 index 0000000..144982e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/board/searchResult.jsp @@ -0,0 +1,48 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + +
+

통합검색결과

+
검색결과 : 총 ${data.totalCnt}건 관련 글 발견
+ +
diff --git a/src/main/webapp/WEB-INF/jsp/common/login.jsp b/src/main/webapp/WEB-INF/jsp/common/login.jsp new file mode 100644 index 0000000..8e2257e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/login.jsp @@ -0,0 +1,565 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + <spring:message code="sys.name" /> + + + + + + + + + + +
+ + + + + + +

통합홈페이지입니다.

+
+
    +
  • img1
  • +
  • img2
  • +
+
+
+
+ +
+ +
+
+

반갑습니다

+

이곳은 국제해양정보시스템입니다

+
+
+
+
    +
  • + 아이디 +
  • +
  • + +
  • +
+
+
+
    +
  • + 패스워드 +
  • +
  • + +
  • +
+
+
+
+ + +
+ +

+ 접속장애 발생시(패스워드)
+ 관리자(7-2689)에게 문의 바랍니다 +

+ +
+ +
+ +
+ +
+ + + + +
+
+ + + + + diff --git a/src/main/webapp/WEB-INF/jsp/common/login_bak.jsp b/src/main/webapp/WEB-INF/jsp/common/login_bak.jsp new file mode 100644 index 0000000..05b4fd9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/login_bak.jsp @@ -0,0 +1,162 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + +<spring:message code="sys.name" /> + + + + + + + + + + + + +
+ +
+
+
    +
  • 브라우저의 도구 아이콘 클릭
    도구 아이콘이 보이지 않는 경우 alt 키 입력 후 도구(T) 탭 선택
  • +
  • [호환성 보기 설정(B)] 클릭
  • +
  • [사이버외사정보시스템 URL] 선택
  • +
  • [제거] 버튼 클릭 후 [닫기]
  • +
+
+ +
+   +
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/common/submenu.jsp b/src/main/webapp/WEB-INF/jsp/common/submenu.jsp new file mode 100644 index 0000000..3785451 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/submenu.jsp @@ -0,0 +1,60 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + +
+
    +
  • + +
  • +
+
+ + + +
diff --git a/src/main/webapp/WEB-INF/jsp/common/validator.jsp b/src/main/webapp/WEB-INF/jsp/common/validator.jsp new file mode 100644 index 0000000..2925385 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/validator.jsp @@ -0,0 +1,3 @@ +<%@ page language="java" contentType="javascript/x-javascript" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp b/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp new file mode 100644 index 0000000..8045b4e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp @@ -0,0 +1,79 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +<%@ page import="org.springframework.security.core.context.SecurityContextHolder" %> +<%@ page import="org.springframework.security.core.Authentication" %> +<%@ page import="org.springframework.security.core.userdetails.UserDetails" %> +<%@ page import="org.springframework.security.core.userdetails.UserDetailsService" %> + +<% +/** + * @JSP Name : EgovAccessDenied.jsp + * @Description : 접근권한 에러화면 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2011.06.07 신혜연 최초 생성 + * + * author 실행환경팀 + * Copyright (C) 2011 by MOPAS All right reserved. + */ +%> + + + + + +Error + + + + + + + +
+ + + + +
+ + + +
+ + + + + + + + + + +
<spring:message code=" />
${SPRING_SECURITY_403_EXCEPTION} +
+ <% + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Object principal = auth.getPrincipal(); + if (principal instanceof UserDetails) { + String username = ((UserDetails) principal).getUsername(); + String password = ((UserDetails) principal).getPassword(); + out.println("Account : " + username.toString() + "
"); + } + %>
+ + + + +
<spring:message code=" />
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/bizError.jsp b/src/main/webapp/WEB-INF/jsp/error/bizError.jsp new file mode 100644 index 0000000..7e6527a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/bizError.jsp @@ -0,0 +1,65 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +<% +/** + * @JSP Name : bizError.jsp + * @Description : 일반 에러화면 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2011.06.07 신혜연 최초 생성 + * + * author 실행환경팀 + * Copyright (C) 2011 by MOPAS All right reserved. + */ +%> + + + + + +Error + + + + + + + +
+ + + + +
+ + + +
+ + + + + + + + + + +
<spring:message code=" />

+
+ + + + +
<spring:message code=" />
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/dataAccessFailure.jsp b/src/main/webapp/WEB-INF/jsp/error/dataAccessFailure.jsp new file mode 100644 index 0000000..180ec33 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/dataAccessFailure.jsp @@ -0,0 +1,65 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +<% +/** + * @JSP Name : dataAccessFailure.jsp + * @Description : 데이터 엑세스 에러화면 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2011.06.07 신혜연 최초 생성 + * + * author 실행환경팀 + * Copyright (C) 2011 by MOPAS All right reserved. + */ +%> + + + + + +Error + + + + + + + +
+ + + + +
+ + + +
+ + + + + + + + + + +
<spring:message code=" />

+
+ + + + +
<spring:message code=" />
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/transactionFailure.jsp b/src/main/webapp/WEB-INF/jsp/error/transactionFailure.jsp new file mode 100644 index 0000000..f32dfe7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/transactionFailure.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<% +/** + * @JSP Name : transactionFailure.jsp + * @Description : 트랜잭션 에러화면 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2011.06.07 신혜연 최초 생성 + * + * author 실행환경팀 + * Copyright (C) 2011 by MOPAS All right reserved. + */ +%> + + + + + +Error + + + + + + + +
+ + + + +
+ + + +
+ + + + + + + + + + +
<spring:message code=" />

+
+ + + + +
<spring:message code=" />
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/main.jsp b/src/main/webapp/WEB-INF/jsp/main.jsp new file mode 100644 index 0000000..797b0b7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/main.jsp @@ -0,0 +1,112 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" + pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + +
+ + + +
+
+ + +
+

+ +

+
+

공지사항

+
+ +
+
+
+ +
+

+ +

+
+

해양정세리포트

+
+ +
+
+
+
+

+ +

+
+

국제회의

+
+ +
+
+
+ +
+

+ +

+
+

내 실적조회

+
+ +
+
+
+
+ +
+ +
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/member/update.jsp b/src/main/webapp/WEB-INF/jsp/member/update.jsp new file mode 100644 index 0000000..d9cbe82 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/member/update.jsp @@ -0,0 +1,176 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + --%> + +
성 명 + + + +
아이디 + + +
비밀번호 + +
소속 + + 소속2 + +
계급 + +
사용자등급 + +
+
+
+<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> +
+ +
+ +
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/member/view.jsp b/src/main/webapp/WEB-INF/jsp/member/view.jsp new file mode 100644 index 0000000..c1844d2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/member/view.jsp @@ -0,0 +1,90 @@ +<%@page import="kcg.imis.sec.LoginUserVO"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ / +
+ + + +
+
+ + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/moniter/moniterList.jsp b/src/main/webapp/WEB-INF/jsp/moniter/moniterList.jsp new file mode 100644 index 0000000..ba17525 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/moniter/moniterList.jsp @@ -0,0 +1,116 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +
+
일본
+ + + + +
+ + + (')">) + +
+
+ +
+ dot + + (')">) + +
+
+ +
+ dot + + (')">) + +
+
+ +
+ - + + (')">) + +
+
+ +
+   - + + (')">) + +
+
+
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/nation/nationInfo.jsp b/src/main/webapp/WEB-INF/jsp/nation/nationInfo.jsp new file mode 100644 index 0000000..6965047 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nation/nationInfo.jsp @@ -0,0 +1,294 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위치
국경
수도
면적
화폐단위
인구
공용어
해안선
영해
문맹률
종족구성
종교
독립
헌법
정체
정부형태
원수
수상
실권자
대의기구
정당
정부성향
UN가입
비동맹가입
GDP
무역
국방비
군사력
군맹관계
+
+ + + + + +
+ +
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/notice/noticeAdd.jsp b/src/main/webapp/WEB-INF/jsp/notice/noticeAdd.jsp new file mode 100644 index 0000000..36cac34 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/notice/noticeAdd.jsp @@ -0,0 +1,106 @@ +<%@page import="kcg.imis.cmmn.CommConstants"%> +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ checked />사용   + checked>미사용 +
+   + +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/notice/noticeList.jsp b/src/main/webapp/WEB-INF/jsp/notice/noticeList.jsp new file mode 100644 index 0000000..fce7ac5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/notice/noticeList.jsp @@ -0,0 +1,129 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + + + + + +
+
+ +
    + +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
시작일종료일
+ + + ')"> + +  
+
+ +
+ +
+
+
    +
  • +
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/notice/noticePop.jsp b/src/main/webapp/WEB-INF/jsp/notice/noticePop.jsp new file mode 100644 index 0000000..247d841 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/notice/noticePop.jsp @@ -0,0 +1,76 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + <spring:message code="sys.name" /> + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/notice/noticeView.jsp b/src/main/webapp/WEB-INF/jsp/notice/noticeView.jsp new file mode 100644 index 0000000..ed77da0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/notice/noticeView.jsp @@ -0,0 +1,109 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
    + +
  • + "> +
  • +
    + +
  • + "> +
  • +
    +
  • + +
  • + +
  • + +
  • +
  • + +
  • +
    +
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/approval.jsp b/src/main/webapp/WEB-INF/jsp/report/approval.jsp new file mode 100644 index 0000000..5456298 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/approval.jsp @@ -0,0 +1,348 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + ${reportVO.inPlaceName} 국제정보분석-${reportVO.inPlaceNum} + ${userType} ${reportVO.inDuty} ${reportVO.inName} + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + + + + +   + + + +
+ 1 + + +

+ &no=1" target="_blank"> + + + + 삭제 + + +

+
+ +

+
+
+ 2 + + +

+ &no=2" target="_blank"> + + + + 삭제 + + +

+
+ +

+
+
+ 3 + + +

+ &no=3" target="_blank"> + + + + 삭제 + + +

+
+ + + +
+ + + + + + + + +
+ + + + () +
+ + + + + + + () + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
+ + + + + + +
평가자 + + + + + + + + ( 대행) + +
검토의견 + +
+
+
+ +
+
    + +
  • + +
  • +
    +
  • + +
  • +
+
+ +
+ + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/approveList.jsp b/src/main/webapp/WEB-INF/jsp/report/approveList.jsp new file mode 100644 index 0000000..935fefb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/approveList.jsp @@ -0,0 +1,193 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + +
+ + + + +
    +
  • +
  • + + ~ + +
  • +
  •  
  • +
  • + +
  • +
  • + + + +
  • +
+
+
+ + +
+
+ +
    +
  • +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
팀장담당관
+ + + + + "> + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/report/judgeRecord.jsp b/src/main/webapp/WEB-INF/jsp/report/judgeRecord.jsp new file mode 100644 index 0000000..3311431 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/judgeRecord.jsp @@ -0,0 +1,195 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + + + + +
+
    +
  • + +
  • +
  • + ~ +
  • + +
  • + +
  • + +
  • + " onclick="javascript:fn_search();" /> +
  • +
+
+
+ + + +
+
+ +
    +
  • +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 국제정보분석- + + + + + + : + + + + "> + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/report/myList.jsp b/src/main/webapp/WEB-INF/jsp/report/myList.jsp new file mode 100644 index 0000000..fc5ac4c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/myList.jsp @@ -0,0 +1,177 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +
+ + +
    +
  • +
  • + + ~ + +
  • +
  •  
  • +
  • + +
  • +
  • + + + +
  • +
+
+
+ + +
+
+ +
    +
  • +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + + + --%> + +
문서번호보고자제목보고일결재판단분야1분야2
팀장담당관특보판단중보통보기록조사참고
국제정보분석- ">..O OOOOOOOO
+ + + + + ')"> + + ┖ [답글] + + +  O
+
+ +
+ +
+
+ +
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/offlineAdd.jsp b/src/main/webapp/WEB-INF/jsp/report/offlineAdd.jsp new file mode 100644 index 0000000..3c1b0f9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/offlineAdd.jsp @@ -0,0 +1,207 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
소속 + + + + + + + + + +
+ + + +
+ + + +
+ + + + +
+ + + + + + + +
+ + +   + + +
+ + +

+

+

+
+ + + +
+
+
+ +
+
    +
  • + +
  • +
+
+ + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/presentList.jsp b/src/main/webapp/WEB-INF/jsp/report/presentList.jsp new file mode 100644 index 0000000..ca1a8ca --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/presentList.jsp @@ -0,0 +1,250 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + + + + +
+
    +
  • + +
  • +
  • + ~ +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + " onclick="javascript:fn_search();" /> +
  • +
+
+ +
+ + + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
담당관팀장
+ + + 국제정보분석- + + + + "> + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
    +
  • +
+
+ + + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/report/reportAdd.jsp b/src/main/webapp/WEB-INF/jsp/report/reportAdd.jsp new file mode 100644 index 0000000..7b9867c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/reportAdd.jsp @@ -0,0 +1,157 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
소속 + + + + + + + +
+ +
+ + + +
+ + +   + + +
+ + +

+

+

+
+ + + +
+
+
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + + diff --git a/src/main/webapp/WEB-INF/jsp/report/reportCategory.jsp b/src/main/webapp/WEB-INF/jsp/report/reportCategory.jsp new file mode 100644 index 0000000..eedef7a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/reportCategory.jsp @@ -0,0 +1,209 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + +
+ +
    +
  • 분야 선택
  • +
  • + +
  • +
+
+
+ + +
+
+ icon + 분야 목록 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
선택분야코드분야명정렬순서사용여부
+ + + + + + + + + +
+
+
+
+
+
+
+ icon + 분야 상세 +
+ + + + + + + + + + + + + + + +
분야코드분야명
정렬순서사용여부
+
+ +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/report/reportList.jsp b/src/main/webapp/WEB-INF/jsp/report/reportList.jsp new file mode 100644 index 0000000..f1bf535 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/reportList.jsp @@ -0,0 +1,235 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + + +
+
+ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 국제정보분석- + + + + "> + + + + + + + + + + +
+
+ +
+ +
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/report/reportModify.jsp b/src/main/webapp/WEB-INF/jsp/report/reportModify.jsp new file mode 100644 index 0000000..6e9626d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/reportModify.jsp @@ -0,0 +1,473 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
소속 + + + + + + + + + +
소속 + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + + + + +   + + + +
+ 1 + + +

+ &no=1" target="_blank"> + + + + + + +

+
+ +

+
+
+ 2 + + +

+ &no=2" target="_blank"> + + + + + + +

+
+ +

+
+
+ 3 + + +

+ &no=3" target="_blank"> + + + + + + +

+
+ + + +
+ + + + + + + + +
+ + + + () +
+ + + + + () +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + <%-- 본청 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
본청
+ + + + + + +
+ + + + +
+ + + + +
+
+
+
+ +
+
    + + +
  • + +
  • +
  • + +
  • +
    + + + + +
  • + +
  • + + +
  • + + +
  • +
    +
    +
  • + +
  • +
+ <%-- myDutiesCode :
+ inStateCode :
+ num1 :
+ viewDoc : --%> +
+
+ + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/reportSaveList.jsp b/src/main/webapp/WEB-INF/jsp/report/reportSaveList.jsp new file mode 100644 index 0000000..c0cc463 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/reportSaveList.jsp @@ -0,0 +1,133 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ "/> + + + +   + + "> + + + + + + +
+
+ + +
+ +
+ +
+
    +
  • +
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/report/search.jsp b/src/main/webapp/WEB-INF/jsp/report/search.jsp new file mode 100644 index 0000000..772d07d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/search.jsp @@ -0,0 +1,131 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + +
+
    +
  • +
  • + ~ + +
  • +
  • +
  • + +
  • +
  • +   +
  • +
  • + +
  • +
+
+ +
+
+
+

+
    + + +
  • + + +
  • +
    + + +
  • + +
  • +
    +
    +
    +
+
+
+ +
+
+

+
    + +
  • +
    +
+
+
+
+
+

+
    + +
  • +
    +
+
+
+

+
    + +
  • +
    +
+
+
+
+ +
+
    +
  •  
  • +
  • + +
  • +
  • +
  • + " onclick="javascript:fn_search();" /> +
  • +
  • + " onclick="javascript:fn_get_excel();" /> +
  • +
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/statistics.jsp b/src/main/webapp/WEB-INF/jsp/report/statistics.jsp new file mode 100644 index 0000000..d0b7d32 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/statistics.jsp @@ -0,0 +1,144 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
+
    +
  • +
  • + ~ + +
  • + <%--
  • +
  • + +
  • --%> + <%--
  • +   +
  • +
  • + +
  • --%> +
+
+ +
+
+
+

+
    + + +
  • + + +
  • +
    + + +
  • + +
  • +
    +
    +
    +
+
+
+ +
+
+

+
    + +
  • +
    + +
+
+
+ +
+
+

+
    + +
  • +
    +
+
+
+

+
    + +
  • +
    +
+
+
+
+ +
+ +
+
    +
  • +
  • +
  • +
  • +
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/report/statsResult.jsp b/src/main/webapp/WEB-INF/jsp/report/statsResult.jsp new file mode 100644 index 0000000..3b378d7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/statsResult.jsp @@ -0,0 +1,233 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + +
+
    +
  • +
  • +
  • +
  • + + +
  • +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/report/waitList.jsp b/src/main/webapp/WEB-INF/jsp/report/waitList.jsp new file mode 100644 index 0000000..2e618f2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/report/waitList.jsp @@ -0,0 +1,224 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="ct" tagdir="/WEB-INF/tags" %> + + + + + + + + +
+ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+
+
+ +
+ +
+ +
    +
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 국제정보분석- + + + + "> + + + + <%-- 20180514 보고일 보이는거 수정 --%> + <%-- --%> + .. + + +
+
+ +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/tags/memberSelectPop.tag b/src/main/webapp/WEB-INF/tags/memberSelectPop.tag new file mode 100644 index 0000000..88c831e --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/memberSelectPop.tag @@ -0,0 +1,193 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +<%@ attribute name="isTypeSearch" type="java.lang.Boolean" required="false" description="경찰 타입을 검색할지?" %> +<%@ attribute name="isIdSearch" type="java.lang.Boolean" required="false" description="이름 또는 아이디로 타입을 검색할지?" %> +<%@ attribute name="title" type="java.lang.String" required="false" description="팝업 타이틀을 받는다" %> + + + + + + + + + +
+
+
    +
  • +
  • + + + +
  • +
    + + + +
  • + + +
  • +
    +
  • +
+
+ + + + + + + + + + + + + +
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/pageInfo.tag b/src/main/webapp/WEB-INF/tags/pageInfo.tag new file mode 100644 index 0000000..ee8b8d1 --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/pageInfo.tag @@ -0,0 +1,15 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +
    +
  • 표시갯수${paginationInfo.recordCountPerPage}
  • +
  • 검색 게시물${paginationInfo.totalRecordCount}/${totalCnt} + +
  • +
  • 현재 페이지 ${paginationInfo.currentPageNo}/
  • +
+ + + diff --git a/src/main/webapp/WEB-INF/tiles/default-layout.jsp b/src/main/webapp/WEB-INF/tiles/default-layout.jsp new file mode 100644 index 0000000..124aec2 --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/default-layout.jsp @@ -0,0 +1,3 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> + diff --git a/src/main/webapp/WEB-INF/tiles/tiles-footer.jsp b/src/main/webapp/WEB-INF/tiles/tiles-footer.jsp new file mode 100644 index 0000000..c023a34 --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/tiles-footer.jsp @@ -0,0 +1,32 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ page import="kcg.imis.sec.LoginUserVO"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tiles/tiles-header.jsp b/src/main/webapp/WEB-INF/tiles/tiles-header.jsp new file mode 100644 index 0000000..829a38f --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/tiles-header.jsp @@ -0,0 +1,271 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" session="true" %> +<%@ page import="kcg.imis.sec.LoginUserVO"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + +<% + LoginUserVO userVO = (LoginUserVO) session.getAttribute("userVO"); +%> + + + + +
+
+ + +
+
+ + + + + + + + + +
+ diff --git a/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp b/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp new file mode 100644 index 0000000..e75554c --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/tiles-layout.jsp @@ -0,0 +1,87 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + + + +<spring:message code="sys.name" /> + + +" > +" > + +" > + +" > + + + + + + + + + + + +
+ + + + +
+ +
+ +
+ + +
+ +
+ + +
+ + +
+ +
+ + + + +
+ + + + diff --git a/src/main/webapp/WEB-INF/tiles/tiles-leftmenu.jsp b/src/main/webapp/WEB-INF/tiles/tiles-leftmenu.jsp new file mode 100644 index 0000000..a7babd3 --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/tiles-leftmenu.jsp @@ -0,0 +1,8 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..ff085d0 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,111 @@ + + + + contextConfigLocation + classpath:spring/context-*.xml + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + utf-8 + + + + encodingFilter + /* + + + multipartFilter + org.springframework.web.multipart.support.MultipartFilter + + multipartResolverBeanName + multipartResolver + + + + multipartFilter + /* + + + org.springframework.web.context.ContextLoaderListener + + + action + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + + /WEB-INF/config/springmvc/dispatcher-servlet.xml, + + + 1 + + + action + *.do + + + action + *.html + + + action + *.xml + + + action + *.json + + imis + + /index.jsp + + + 20 + + + BASIC + + + 404 + /WEB-INF/jsp/error/bizError.jsp + + + 500 + /WEB-INF/jsp/error/DataAccessFailure.jsp + + + CKFilter + kcg.imis.cmmn.ckeditor.CkFilter + + properties + property/ck.properties + + + + CKFilter + /uploadImages.do + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + org.springframework.security.web.session.HttpSessionEventPublisher + + IMIS + + index.html + index.htm + index.jsp + default.html + default.htm + default.jsp + + \ No newline at end of file diff --git a/src/main/webapp/ckeditor/LICENSE.md b/src/main/webapp/ckeditor/LICENSE.md new file mode 100644 index 0000000..0a239d2 --- /dev/null +++ b/src/main/webapp/ckeditor/LICENSE.md @@ -0,0 +1,1264 @@ +Software License Agreement +========================== + +CKEditor - The text editor for Internet - http://ckeditor.com +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + (See Appendix A) + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + (See Appendix B) + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + (See Appendix C) + +You are not required to, but if you want to explicitly declare the +license you have chosen to be bound to when using, reproducing, +modifying and distributing this software, just include a text file +titled "legal.txt" in your version of this software, indicating your +license choice. In any case, your choice will not restrict any +recipient of your version of this software to use, reproduce, modify +and distribute this software under any of the above licenses. + +Sources of Intellectual Property Included in CKEditor +----------------------------------------------------- + +Where not otherwise indicated, all CKEditor content is authored by +CKSource engineers and consists of CKSource-owned intellectual +property. In some specific instances, CKEditor will incorporate work +done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand +and product names are trademarks, registered trademarks or service +marks of their respective holders. + +--- + +Appendix A: The GPL License +--------------------------- + +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software-to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + +GNU GENERAL PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + + +Appendix B: The LGPL License +---------------------------- + +GNU LESSER GENERAL PUBLIC LICENSE +Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + +Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software-to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages-typically libraries-of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + +GNU LESSER GENERAL PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + +NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +END OF TERMS AND CONDITIONS + + +Appendix C: The MPL License +--------------------------- + +MOZILLA PUBLIC LICENSE +Version 1.1 + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] diff --git a/src/main/webapp/ckeditor/README.md b/src/main/webapp/ckeditor/README.md new file mode 100644 index 0000000..c5a55cd --- /dev/null +++ b/src/main/webapp/ckeditor/README.md @@ -0,0 +1,39 @@ +CKEditor 4 +========== + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +http://ckeditor.com - See LICENSE.md for license information. + +CKEditor is a text editor to be used inside web pages. It's not a replacement +for desktop text editors like Word or OpenOffice, but a component to be used as +part of web applications and websites. + +## Documentation + +The full editor documentation is available online at the following address: +http://docs.ckeditor.com + +## Installation + +Installing CKEditor is an easy task. Just follow these simple steps: + + 1. **Download** the latest version from the CKEditor website: + http://ckeditor.com. You should have already completed this step, but be + sure you have the very latest version. + 2. **Extract** (decompress) the downloaded file into the root of your website. + +**Note:** CKEditor is by default installed in the `ckeditor` folder. You can +place the files in whichever you want though. + +## Checking Your Installation + +The editor comes with a few sample pages that can be used to verify that +installation proceeded properly. Take a look at the `samples` directory. + +To test your installation, just call the following page at your website: + + http:////samples/index.html + +For example: + + http://www.example.com/ckeditor/samples/index.html diff --git a/src/main/webapp/ckeditor/adapters/jquery.js b/src/main/webapp/ckeditor/adapters/jquery.js new file mode 100644 index 0000000..3ec908b --- /dev/null +++ b/src/main/webapp/ckeditor/adapters/jquery.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(a){CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;"undefined"!=typeof a&&(a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var i=[],d=d||{};this.each(function(){var b= +a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock", +!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit(); +return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else setTimeout(arguments.callee, +100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}}),CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var k=this,i=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise()); +return!0}return g.call(b,d)});if(i.length){var b=new a.Deferred;a.when.apply(this,i).done(function(){b.resolveWith(k)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}})))})(window.jQuery); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/build-config.js b/src/main/webapp/ckeditor/build-config.js new file mode 100644 index 0000000..4245ce6 --- /dev/null +++ b/src/main/webapp/ckeditor/build-config.js @@ -0,0 +1,175 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * This file was added automatically by CKEditor builder. + * You may re-use it at any time to build CKEditor again. + * + * If you would like to build CKEditor online again + * (for example to upgrade), visit one the following links: + * + * (1) http://ckeditor.com/builder + * Visit online builder to build CKEditor from scratch. + * + * (2) http://ckeditor.com/builder/e6b8a045f8f984a69463975ca3e6524a + * Visit online builder to build CKEditor, starting with the same setup as before. + * + * (3) http://ckeditor.com/builder/download/e6b8a045f8f984a69463975ca3e6524a + * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before. + * + * NOTE: + * This file is not used by CKEditor, you may remove it. + * Changing this file will not change your CKEditor configuration. + */ + +var CKBUILDER_CONFIG = { + skin: 'moono', + preset: 'full', + ignore: [ + '.bender', + '.DS_Store', + '.gitignore', + '.gitattributes', + '.idea', + '.mailmap', + 'bender.js', + 'bender-err.log', + 'bender-out.log', + 'dev', + 'node_modules', + 'package.json', + 'README.md', + 'tests' + ], + plugins : { + 'a11yhelp' : 1, + 'about' : 1, + 'basicstyles' : 1, + 'bidi' : 1, + 'blockquote' : 1, + 'clipboard' : 1, + 'colorbutton' : 1, + 'colordialog' : 1, + 'contextmenu' : 1, + 'dialogadvtab' : 1, + 'div' : 1, + 'elementspath' : 1, + 'enterkey' : 1, + 'entities' : 1, + 'filebrowser' : 1, + 'find' : 1, + 'flash' : 1, + 'floatingspace' : 1, + 'font' : 1, + 'format' : 1, + 'forms' : 1, + 'horizontalrule' : 1, + 'htmlwriter' : 1, + 'iframe' : 1, + 'image' : 1, + 'indentblock' : 1, + 'indentlist' : 1, + 'justify' : 1, + 'language' : 1, + 'link' : 1, + 'list' : 1, + 'liststyle' : 1, + 'magicline' : 1, + 'maximize' : 1, + 'newpage' : 1, + 'pagebreak' : 1, + 'pastefromword' : 1, + 'pastetext' : 1, + 'preview' : 1, + 'print' : 1, + 'removeformat' : 1, + 'resize' : 1, + 'save' : 1, + 'scayt' : 1, + 'selectall' : 1, + 'showblocks' : 1, + 'showborders' : 1, + 'smiley' : 1, + 'sourcearea' : 1, + 'specialchar' : 1, + 'stylescombo' : 1, + 'tab' : 1, + 'table' : 1, + 'tabletools' : 1, + 'templates' : 1, + 'toolbar' : 1, + 'undo' : 1, + 'wsc' : 1, + 'wysiwygarea' : 1 + }, + languages : { + 'af' : 1, + 'ar' : 1, + 'bg' : 1, + 'bn' : 1, + 'bs' : 1, + 'ca' : 1, + 'cs' : 1, + 'cy' : 1, + 'da' : 1, + 'de' : 1, + 'el' : 1, + 'en' : 1, + 'en-au' : 1, + 'en-ca' : 1, + 'en-gb' : 1, + 'eo' : 1, + 'es' : 1, + 'et' : 1, + 'eu' : 1, + 'fa' : 1, + 'fi' : 1, + 'fo' : 1, + 'fr' : 1, + 'fr-ca' : 1, + 'gl' : 1, + 'gu' : 1, + 'he' : 1, + 'hi' : 1, + 'hr' : 1, + 'hu' : 1, + 'id' : 1, + 'is' : 1, + 'it' : 1, + 'ja' : 1, + 'ka' : 1, + 'km' : 1, + 'ko' : 1, + 'ku' : 1, + 'lt' : 1, + 'lv' : 1, + 'mk' : 1, + 'mn' : 1, + 'ms' : 1, + 'nb' : 1, + 'nl' : 1, + 'no' : 1, + 'pl' : 1, + 'pt' : 1, + 'pt-br' : 1, + 'ro' : 1, + 'ru' : 1, + 'si' : 1, + 'sk' : 1, + 'sl' : 1, + 'sq' : 1, + 'sr' : 1, + 'sr-latn' : 1, + 'sv' : 1, + 'th' : 1, + 'tr' : 1, + 'tt' : 1, + 'ug' : 1, + 'uk' : 1, + 'vi' : 1, + 'zh' : 1, + 'zh-cn' : 1 + } +}; \ No newline at end of file diff --git a/src/main/webapp/ckeditor/ckeditor.js b/src/main/webapp/ckeditor/ckeditor.js new file mode 100644 index 0000000..9841154 --- /dev/null +++ b/src/main/webapp/ckeditor/ckeditor.js @@ -0,0 +1,1007 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,e={timestamp:"E7KD",version:"4.4.4",revision:"1ba5105",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var f=window.CKEDITOR_BASEPATH||"";if(!f)for(var d=document.getElementsByTagName("script"),c=0;c=0;y--)if(n[y].priority<=e){n.splice(y+1,0,l);return{removeListener:h}}n.unshift(l)}return{removeListener:h}}, +once:function(){var a=arguments[1];arguments[1]=function(f){f.removeListener();return a.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,f=function(){a=1},d=0,b=function(){d=1};return function(j,l,h){var n=e(this)[j],j=a,t=d;a=d=0;if(n){var y=n.listeners;if(y.length)for(var y=y.slice(0),z,o=0;o=0&&d.listeners.splice(b,1)}},removeAllListeners:function(){var a=e(this),f;for(f in a)delete a[f]},hasListeners:function(a){return(a=e(this)[a])&&a.listeners.length>0}}}()); +CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,e,this)},CKEDITOR.editor.prototype.fireOnce=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,e,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)); +CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),e={ie:a.indexOf("trident/")>-1,webkit:a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var a=document.domain,d=window.location.hostname;return a!=d&&a!="["+d+"]"},secure:location.protocol== +"https:"};e.gecko=navigator.product=="Gecko"&&!e.webkit&&!e.ie;if(e.webkit)a.indexOf("chrome")>-1?e.chrome=true:e.safari=true;var b=0;if(e.ie){b=e.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;e.ie9Compat=b==9;e.ie8Compat=b==8;e.ie7Compat=b==7;e.ie6Compat=b<7||e.quirks}if(e.gecko){var c=a.match(/rv:([\d\.]+)/);if(c){c=c[1].split(".");b=c[0]*1E4+(c[1]||0)*100+(c[2]||0)*1}}e.air&&(b=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));e.webkit&&(b=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])); +e.version=b;e.isCompatible=e.iOS&&b>=534||!e.mobile&&(e.ie&&b>6||e.gecko&&b>=2E4||e.air&&b>=1||e.webkit&&b>=522||false);e.hidpi=window.devicePixelRatio>=2;e.needsBrFiller=e.gecko||e.webkit||e.ie&&b>10;e.needsNbspFiller=e.ie&&b<11;e.cssClass="cke_browser_"+(e.ie?"ie":e.gecko?"gecko":e.webkit?"webkit":"unknown");if(e.quirks)e.cssClass=e.cssClass+" cke_browser_quirks";if(e.ie)e.cssClass=e.cssClass+(" cke_browser_ie"+(e.quirks?"6 cke_browser_iequirks":e.version));if(e.air)e.cssClass=e.cssClass+" cke_browser_air"; +if(e.iOS)e.cssClass=e.cssClass+" cke_browser_ios";if(e.hidpi)e.cssClass=e.cssClass+" cke_hidpi";return e}()); +"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a= +CKEDITOR.loadFullCore,e=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():e&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},e*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={}; +(function(){var a=[],e=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,f=/"+f+""):d.push('');return d.join("")}, +htmlEncode:function(a){return(""+a).replace(b,"&").replace(c,">").replace(f,"<")},htmlDecode:function(a){return a.replace(g,"&").replace(j,">").replace(l,"<")},htmlEncodeAttr:function(a){return a.replace(d,""").replace(f,"<").replace(c,">")},htmlDecodeAttr:function(a){return a.replace(h,'"').replace(l,"<").replace(j,">")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(a,f){var d=f(a);d.prototype= +a.prototype;return d},setTimeout:function(a,f,d,b,c){c||(c=window);d||(d=c);return c.setTimeout(function(){b?a.apply(d,[].concat(b)):a.apply(d)},f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if(typeof f=="function")for(var d=0,b=a.length;d=0?a[d]:null},bind:function(a,f){return function(){return a.apply(f,arguments)}},createClass:function(a){var f=a.$,d=a.base,b=a.privates||a._,c=a.proto,a=a.statics;!f&&(f=function(){d&&this.base.apply(this,arguments)});if(b)var e=f,f=function(){var a=this._||(this._={}),f;for(f in b){var d=b[f];a[f]=typeof d=="function"?CKEDITOR.tools.bind(d,this):d}e.apply(this,arguments)};if(d){f.prototype= +this.prototypedCopy(d.prototype);f.prototype.constructor=f;f.base=d;f.baseProto=d.prototype;f.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}c&&this.extend(f.prototype,c,true);a&&this.extend(f,a,true);return f},addFunction:function(f,d){return a.push(function(){return f.apply(d||this,arguments)})-1},removeFunction:function(f){a[f]=null},callFunction:function(f){var d=a[f];return d&&d.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a= +/^-?\d+\.?\d*px$/,f;return function(d){f=CKEDITOR.tools.trim(d+"")+"px";return a.test(f)?f:d||""}}(),convertToPx:function(){var a;return function(f){if(!a){a=CKEDITOR.dom.element.createFromHtml('
',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(f)){a.setStyle("width",f);return a.$.clientWidth}return f}}(),repeat:function(a,f){return Array(f+1).join(a)},tryThese:function(){for(var a, +f=0,d=arguments.length;f8)&&e)a=e+":"+a;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0]; +return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*]*?>)|^/i,'$&\n diff --git a/src/main/webapp/ckeditor/plugins/scayt/LICENSE.md b/src/main/webapp/ckeditor/plugins/scayt/LICENSE.md new file mode 100644 index 0000000..610c807 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/scayt/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor SCAYT Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/src/main/webapp/ckeditor/plugins/scayt/README.md b/src/main/webapp/ckeditor/plugins/scayt/README.md new file mode 100644 index 0000000..1b3de25 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/scayt/README.md @@ -0,0 +1,25 @@ +CKEditor SCAYT Plugin +===================== + +This plugin brings Spell Check As You Type (SCAYT) into up to CKEditor 4+. + +SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. + +Installation +------------ + +1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation. +2. Enable the "scayt" plugin in the CKEditor configuration file (config.js): + + config.extraPlugins = 'scayt'; + +That's all. SCAYT will appear on the editor toolbar and will be ready to use. + +License +------- + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. + +Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/src/main/webapp/ckeditor/plugins/scayt/dialogs/options.js b/src/main/webapp/ckeditor/plugins/scayt/dialogs/options.js new file mode 100644 index 0000000..aec9a1c --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/scayt/dialogs/options.js @@ -0,0 +1,17 @@ +CKEDITOR.dialog.add("scaytDialog",function(f){var g=f.scayt,k='

'+g.getLocal("version")+g.getVersion()+"

"+g.getLocal("text_copyrights")+"

",l=CKEDITOR.document,i={isChanged:function(){return null===this.newLang||this.currentLang===this.newLang?!1:!0},currentLang:g.getLang(),newLang:null,reset:function(){this.currentLang=g.getLang();this.newLang=null},id:"lang"},k=[{id:"options",label:g.getLocal("tab_options"),onShow:function(){},elements:[{type:"vbox", +id:"scaytOptions",children:function(){var a=g.getApplicationConfig(),e=[],b={"ignore-all-caps-words":"label_allCaps","ignore-domain-names":"label_ignoreDomainNames","ignore-words-with-mixed-cases":"label_mixedCase","ignore-words-with-numbers":"label_mixedWithDigits"},d;for(d in a){var c={type:"checkbox"};c.id=d;c.label=g.getLocal(b[d]);e.push(c)}return e}(),onShow:function(){this.getChild();for(var a=f.scayt,e=0;e
',onShow:function(){var a=f.scayt.getLang();l.getById("scaytLang_"+a).$.checked=!0}}]}]},{id:"dictionaries",label:g.getLocal("tab_dictionaries"), +elements:[{type:"vbox",id:"rightCol_col__left",children:[{type:"html",id:"dictionaryNote",html:""},{type:"text",id:"dictionaryName",label:g.getLocal("label_fieldNameDic")||"Dictionary name",onShow:function(a){var e=a.sender,b=f.scayt;setTimeout(function(){e.getContentElement("dictionaries","dictionaryNote").getElement().setText("");null!=b.getUserDictionaryName()&&""!=b.getUserDictionaryName()&&e.getContentElement("dictionaries","dictionaryName").setValue(b.getUserDictionaryName())},0)}},{type:"hbox", +id:"notExistDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"createDic",label:g.getLocal("btn_createDic"),title:g.getLocal("btn_createDic"),onClick:function(){var a=this.getDialog(),e=j,b=f.scayt,d=a.getContentElement("dictionaries","dictionaryName").getValue();b.createUserDictionary(d,function(c){c.error||e.toggleDictionaryButtons.call(a,!0);c.dialog=a;c.command="create";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="create"; +c.name=d;f.fire("scaytUserDictionaryActionError",c)})}},{type:"button",id:"restoreDic",label:g.getLocal("btn_restoreDic"),title:g.getLocal("btn_restoreDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName").getValue();e.restoreUserDictionary(d,function(c){c.dialog=a;c.error||b.toggleDictionaryButtons.call(a,!0);c.command="restore";c.name=d;f.fire("scaytUserDictionaryAction",c)},function(c){c.dialog=a;c.command="restore";c.name=d;f.fire("scaytUserDictionaryActionError", +c)})}}]},{type:"hbox",id:"existDic",align:"left",style:"width:auto;",widths:["50%","50%"],children:[{type:"button",id:"removeDic",label:g.getLocal("btn_deleteDic"),title:g.getLocal("btn_deleteDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=j,d=a.getContentElement("dictionaries","dictionaryName"),c=d.getValue();e.removeUserDictionary(c,function(e){d.setValue("");e.error||b.toggleDictionaryButtons.call(a,!1);e.dialog=a;e.command="remove";e.name=c;f.fire("scaytUserDictionaryAction",e)},function(b){b.dialog= +a;b.command="remove";b.name=c;f.fire("scaytUserDictionaryActionError",b)})}},{type:"button",id:"renameDic",label:g.getLocal("btn_renameDic"),title:g.getLocal("btn_renameDic"),onClick:function(){var a=this.getDialog(),e=f.scayt,b=a.getContentElement("dictionaries","dictionaryName").getValue();e.renameUserDictionary(b,function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryAction",d)},function(d){d.dialog=a;d.command="rename";d.name=b;f.fire("scaytUserDictionaryActionError",d)})}}]}, +{type:"html",id:"dicInfo",html:'
'+g.getLocal("text_descriptionDic")+"
"}]}]},{id:"about",label:g.getLocal("tab_about"),elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
'+k+"
"}]}];f.on("scaytUserDictionaryAction",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;void 0===a.data.error?(c=d.getLocal("message_success_"+ +a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c),SCAYT.$(b.$).css({color:"blue"})):(""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c)),SCAYT.$(b.$).css({color:"red"}),null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()):e.getContentElement("dictionaries","dictionaryName").setValue(""))}); +f.on("scaytUserDictionaryActionError",function(a){var e=a.data.dialog,b=e.getContentElement("dictionaries","dictionaryNote").getElement(),d=a.editor.scayt,c;""===a.data.name?b.setText(d.getLocal("message_info_emptyDic")):(c=d.getLocal("message_error_"+a.data.command+"Dic"),c=c.replace("%s",a.data.name),b.setText(c));SCAYT.$(b.$).css({color:"red"});null!=d.getUserDictionaryName()&&""!=d.getUserDictionaryName()?e.getContentElement("dictionaries","dictionaryName").setValue(d.getUserDictionaryName()): +e.getContentElement("dictionaries","dictionaryName").setValue("")});var j={title:g.getLocal("text_title"),resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:340,minHeight:260,onLoad:function(){if(0!=f.config.scayt_uiTabs[1]){var a=j,e=a.getLangBoxes.call(this);e.getParent().setStyle("white-space","normal");a.renderLangList(e);this.definition.minWidth=this.getSize().width;this.resize(this.definition.minWidth,this.definition.minHeight)}},onCancel:function(){i.reset()},onHide:function(){f.unlockSelection()}, +onShow:function(){f.fire("scaytDialogShown",this);if(0!=f.config.scayt_uiTabs[2]){var a=f.scayt,e=this.getContentElement("dictionaries","dictionaryName"),b=this.getContentElement("dictionaries","existDic").getElement().getParent(),d=this.getContentElement("dictionaries","notExistDic").getElement().getParent();b.hide();d.hide();null!=a.getUserDictionaryName()&&""!=a.getUserDictionaryName()?(this.getContentElement("dictionaries","dictionaryName").setValue(a.getUserDictionaryName()),b.show()):(e.setValue(""), +d.show())}},onOk:function(){var a=j,e=f.scayt;this.getContentElement("options","scaytOptions");a=a.getChangedOption.call(this);e.commitOption({changedOptions:a})},toggleDictionaryButtons:function(a){var e=this.getContentElement("dictionaries","existDic").getElement().getParent(),b=this.getContentElement("dictionaries","notExistDic").getElement().getParent();a?(e.show(),b.hide()):(e.hide(),b.show())},getChangedOption:function(){var a={};if(1==f.config.scayt_uiTabs[0])for(var e=this.getContentElement("options", +"scaytOptions").getChild(),b=0;b'),g=new CKEDITOR.dom.element("label"),h=f.scayt;b.setStyles({"white-space":"normal",position:"relative"}); +c.on("click",function(a){i.newLang=a.sender.getValue()});g.appendText(a);g.setAttribute("for",d);b.append(c);b.append(g);e===h.getLang()&&(c.setAttribute("checked",!0),c.setAttribute("defaultChecked","defaultChecked"));return b},renderLangList:function(a){var e=a.find("#left-col-"+f.name).getItem(0),a=a.find("#right-col-"+f.name).getItem(0),b=g.getLangList(),d={},c=[],i=0,h;for(h in b.ltr)d[h]=b.ltr[h];for(h in b.rtl)d[h]=b.rtl[h];for(h in d)c.push([h,d[h]]);c.sort(function(a,b){var c=0;a[1]>b[1]? +c=1:a[1]'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
"); +e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.gif new file mode 100644 index 0000000..e7daebc Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.png new file mode 100644 index 0000000..39a85c3 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/angel_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.gif new file mode 100644 index 0000000..a5890f3 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.png new file mode 100644 index 0000000..dd07d3e Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/angry_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.gif b/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.gif new file mode 100644 index 0000000..0b822cd Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.png b/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.png new file mode 100644 index 0000000..775146f Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/broken_heart.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.gif new file mode 100644 index 0000000..9587194 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.png new file mode 100644 index 0000000..d69a6f9 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/confused_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.gif new file mode 100644 index 0000000..b513342 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.png new file mode 100644 index 0000000..dd610b8 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/cry_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.gif new file mode 100644 index 0000000..9b2a100 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.png new file mode 100644 index 0000000..63a908e Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/devil_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/embaressed_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/embaressed_smile.gif new file mode 100644 index 0000000..b64a58b Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/embaressed_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.gif new file mode 100644 index 0000000..b64a58b Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.png new file mode 100644 index 0000000..f01cdf3 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/embarrassed_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/envelope.gif b/src/main/webapp/ckeditor/plugins/smiley/images/envelope.gif new file mode 100644 index 0000000..f8ffc54 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/envelope.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/envelope.png b/src/main/webapp/ckeditor/plugins/smiley/images/envelope.png new file mode 100644 index 0000000..b4180c5 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/envelope.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/heart.gif b/src/main/webapp/ckeditor/plugins/smiley/images/heart.gif new file mode 100644 index 0000000..77e0fe8 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/heart.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/heart.png b/src/main/webapp/ckeditor/plugins/smiley/images/heart.png new file mode 100644 index 0000000..a5335bb Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/heart.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/kiss.gif b/src/main/webapp/ckeditor/plugins/smiley/images/kiss.gif new file mode 100644 index 0000000..49f31ab Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/kiss.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/kiss.png b/src/main/webapp/ckeditor/plugins/smiley/images/kiss.png new file mode 100644 index 0000000..4f5f0a5 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/kiss.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.gif b/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.gif new file mode 100644 index 0000000..73f2e5a Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.png b/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.png new file mode 100644 index 0000000..56c8137 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/lightbulb.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.gif new file mode 100644 index 0000000..abd2a86 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.png new file mode 100644 index 0000000..cbbb106 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/omg_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.gif new file mode 100644 index 0000000..de7f1ef Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.png new file mode 100644 index 0000000..786b200 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/regular_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.gif new file mode 100644 index 0000000..ee7810e Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.png new file mode 100644 index 0000000..1ae435c Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/sad_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.gif new file mode 100644 index 0000000..11fc90f Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.png new file mode 100644 index 0000000..9e68d5a Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/shades_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.gif new file mode 100644 index 0000000..a950b43 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.png new file mode 100644 index 0000000..c7d2fd4 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/teeth_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.gif b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.gif new file mode 100644 index 0000000..c01f763 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.png b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.png new file mode 100644 index 0000000..a6bb532 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_down.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.gif b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.gif new file mode 100644 index 0000000..0f42774 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.png b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.png new file mode 100644 index 0000000..6ea7859 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/thumbs_up.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.gif new file mode 100644 index 0000000..369b435 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.png new file mode 100644 index 0000000..5bee4c0 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/tongue_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/tounge_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/tounge_smile.gif new file mode 100644 index 0000000..369b435 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/tounge_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif new file mode 100644 index 0000000..2cc81c1 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png new file mode 100644 index 0000000..bebf74d Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.gif b/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.gif new file mode 100644 index 0000000..07cad31 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.gif differ diff --git a/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.png b/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.png new file mode 100644 index 0000000..805da96 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/smiley/images/wink_smile.png differ diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt new file mode 100644 index 0000000..8a4ef1f --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -0,0 +1,20 @@ +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ar.js new file mode 100644 index 0000000..acb6c92 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص فردية علي اليسار",rsquo:"علامة تنصيص فردية علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash",mdash:"Em dash",iexcl:"علامة تعجب مقلوبة",cent:"رمز السنت",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين",brvbar:"شريط مقطوع",sect:"رمز القسم",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/bg.js new file mode 100644 index 0000000..0bf8749 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ca.js new file mode 100644 index 0000000..e650437 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cs.js new file mode 100644 index 0000000..c2b38f0 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cy.js new file mode 100644 index 0000000..77f59f6 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/de.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/de.js new file mode 100644 index 0000000..6b3ce87 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/el.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/el.js new file mode 100644 index 0000000..e7c2a21 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js new file mode 100644 index 0000000..5a14786 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en-gb",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en.js new file mode 100644 index 0000000..26f61c2 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/eo.js new file mode 100644 index 0000000..d44b0d2 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/es.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/es.js new file mode 100644 index 0000000..79d437f --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/et.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/et.js new file mode 100644 index 0000000..22c9056 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fa.js new file mode 100644 index 0000000..e0b27c5 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fi.js new file mode 100644 index 0000000..6d701e3 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js new file mode 100644 index 0000000..d19e2e4 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -0,0 +1,10 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr.js new file mode 100644 index 0000000..2d1ad09 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/gl.js new file mode 100644 index 0000000..f16d366 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/he.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/he.js new file mode 100644 index 0000000..dcfc50f --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hr.js new file mode 100644 index 0000000..af10255 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latinično veliko slovo A sa oštrim naglaskom", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hu.js new file mode 100644 index 0000000..7948305 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/id.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/id.js new file mode 100644 index 0000000..4928f40 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/it.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/it.js new file mode 100644 index 0000000..894b56c --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ja.js new file mode 100644 index 0000000..84fb8fa --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/km.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/km.js new file mode 100644 index 0000000..65a7518 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ku.js new file mode 100644 index 0000000..4917d4a --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/lv.js new file mode 100644 index 0000000..50a77d3 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nb.js new file mode 100644 index 0000000..0cdcde2 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nl.js new file mode 100644 index 0000000..68edf37 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/no.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/no.js new file mode 100644 index 0000000..eecc56c --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pl.js new file mode 100644 index 0000000..f21a09d --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js new file mode 100644 index 0000000..e3f7831 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt.js new file mode 100644 index 0000000..11ef746 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ru.js new file mode 100644 index 0000000..866e865 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/si.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/si.js new file mode 100644 index 0000000..1255a35 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sk.js new file mode 100644 index 0000000..2d226d0 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sl.js new file mode 100644 index 0000000..84759b6 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sq.js new file mode 100644 index 0000000..c709800 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sv.js new file mode 100644 index 0000000..8f741b9 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/th.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/th.js new file mode 100644 index 0000000..ae0b00e --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tr.js new file mode 100644 index 0000000..3dd220a --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tt.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tt.js new file mode 100644 index 0000000..2eadb9f --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/tt.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tt",{euro:"Евро тамгасы",lsquo:"Сул бер иңле куштырнаклар",rsquo:"Уң бер иңле куштырнаклар",ldquo:"Сул ике иңле куштырнаклар",rdquo:"Уң ике иңле куштырнаклар",ndash:"Кыска сызык",mdash:"Озын сызык",iexcl:"Әйләндерелгән өндәү билгесе",cent:"Цент тамгасы",pound:"Фунт тамгасы",curren:"Акча берәмлеге тамгасы",yen:"Иена тамгасы",brvbar:"Broken bar",sect:"Section sign",uml:"Диерезис",copy:"Хокук иясе булу билгесе",ordf:"Feminine ordinal indicator",laquo:"Ачылучы чыршысыман җәя", +not:"Not sign",reg:"Теркәләнгән булу билгесе",macr:"Макрон",deg:"Градус билгесе",sup2:"Икенче өске индекс",sup3:"Өченче өске индекс",acute:"Басым билгесе",micro:"Микро билгесе",para:"Параграф билгесе",middot:"Middle dot",cedil:"Седиль",sup1:"Беренче өске индекс",ordm:"Masculine ordinal indicator",raquo:"Ябылучы чыршысыман җәя",frac14:"Гади дүрттән бер билгесе",frac12:"Гади икедән бер билгесе",frac34:"Гади дүрттән өч билгесе",iquest:"Әйләндерелгән өндәү билгесе",Agrave:"Гравис белән латин A баш хәрефе", +Aacute:"Басым билгесе белән латин A баш хәрефе",Acirc:"Циркумфлекс белән латин A баш хәрефе",Atilde:"Тильда белән латин A баш хәрефе",Auml:"Диерезис белән латин A баш хәрефе",Aring:"Өстендә боҗра булган латин A баш хәрефе",AElig:"Латин Æ баш хәрефе",Ccedil:"Седиль белән латин C баш хәрефе",Egrave:"Гравис белән латин E баш хәрефе",Eacute:"Басым билгесе белән латин E баш хәрефе",Ecirc:"Циркумфлекс белән латин E баш хәрефе",Euml:"Диерезис белән латин E баш хәрефе",Igrave:"Гравис белән латин I баш хәрефе", +Iacute:"Басым билгесе белән латин I баш хәрефе",Icirc:"Циркумфлекс белән латин I баш хәрефе",Iuml:"Диерезис белән латин I баш хәрефе",ETH:"Латин Eth баш хәрефе",Ntilde:"Тильда белән латин N баш хәрефе",Ograve:"Гравис белән латин O баш хәрефе",Oacute:"Басым билгесе белән латин O баш хәрефе",Ocirc:"Циркумфлекс белән латин O баш хәрефе",Otilde:"Тильда белән латин O баш хәрефе",Ouml:"Диерезис белән латин O баш хәрефе",times:"Тапкырлау билгесе",Oslash:"Сызык белән латин O баш хәрефе",Ugrave:"Гравис белән латин U баш хәрефе", +Uacute:"Басым билгесе белән латин U баш хәрефе",Ucirc:"Циркумфлекс белән латин U баш хәрефе",Uuml:"Диерезис белән латин U баш хәрефе",Yacute:"Басым билгесе белән латин Y баш хәрефе",THORN:"Латин Thorn баш хәрефе",szlig:"Латин beta юл хәрефе",agrave:"Гравис белән латин a юл хәрефе",aacute:"Басым билгесе белән латин a юл хәрефе",acirc:"Циркумфлекс белән латин a юл хәрефе",atilde:"Тильда белән латин a юл хәрефе",auml:"Диерезис белән латин a юл хәрефе",aring:"Өстендә боҗра булган латин a юл хәрефе",aelig:"Латин æ юл хәрефе", +ccedil:"Седиль белән латин c юл хәрефе",egrave:"Гравис белән латин e юл хәрефе",eacute:"Басым билгесе белән латин e юл хәрефе",ecirc:"Циркумфлекс белән латин e юл хәрефе",euml:"Диерезис белән латин e юл хәрефе",igrave:"Гравис белән латин i юл хәрефе",iacute:"Басым билгесе белән латин i юл хәрефе",icirc:"Циркумфлекс белән латин i юл хәрефе",iuml:"Диерезис белән латин i юл хәрефе",eth:"Латин eth юл хәрефе",ntilde:"Тильда белән латин n юл хәрефе",ograve:"Гравис белән латин o юл хәрефе",oacute:"Басым билгесе белән латин o юл хәрефе", +ocirc:"Циркумфлекс белән латин o юл хәрефе",otilde:"Тильда белән латин o юл хәрефе",ouml:"Диерезис белән латин o юл хәрефе",divide:"Бүлү билгесе",oslash:"Сызык белән латин o юл хәрефе",ugrave:"Гравис белән латин u юл хәрефе",uacute:"Басым билгесе белән латин u юл хәрефе",ucirc:"Циркумфлекс белән латин u юл хәрефе",uuml:"Диерезис белән латин u юл хәрефе",yacute:"Басым билгесе белән латин y юл хәрефе",thorn:"Латин thorn юл хәрефе",yuml:"Диерезис белән латин y юл хәрефе",OElig:"Латин лигатура OE баш хәрефе", +oelig:"Латин лигатура oe юл хәрефе",372:"Циркумфлекс белән латин W баш хәрефе",374:"Циркумфлекс белән латин Y баш хәрефе",373:"Циркумфлекс белән латин w юл хәрефе",375:"Циркумфлекс белән латин y юл хәрефе",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Ятма эллипс",trade:"Сәүдә маркасы билгесе",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow", +diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ug.js new file mode 100644 index 0000000..51f4c1d --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/uk.js new file mode 100644 index 0000000..845e752 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/vi.js new file mode 100644 index 0000000..d4e4d37 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js new file mode 100644 index 0000000..6896e91 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -0,0 +1,9 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", +Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", +Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", +iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", +373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh.js new file mode 100644 index 0000000..7bc2b55 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", +frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", +Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", +times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", +auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", +eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", +uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/specialchar/dialogs/specialchar.js b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/specialchar.js new file mode 100644 index 0000000..c4d1696 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
 ');f.push("
",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
 
"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +html:"
 
"}]}]}]}]}]}}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/table/dialogs/table.js b/src/main/webapp/ckeditor/plugins/table/dialogs/table.js new file mode 100644 index 0000000..6f65681 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/table/dialogs/table.js @@ -0,0 +1,21 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +(function(){function r(a){for(var e=0,l=0,k=0,m,g=a.$.rows.length;kl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0"+h.widthPx}]},f,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:d(function(a){var b=a.getAttribute("noWrap");if("nowrap"==a.getStyle("white-space")|| +b)return"no"}),commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},f,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[e.notSet,""],[e.alignLeft,"left"],[e.alignCenter,"center"],[e.alignRight,"right"],[e.alignJustify,"justify"]],setup:d(function(a){var b=a.getAttribute("align");return a.getStyle("text-align")||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align"); +a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[e.notSet,""],[e.alignTop,"top"],[e.alignMiddle,"middle"],[e.alignBottom,"bottom"],[c.alignBaseline,"baseline"]],setup:d(function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}return a||b||""}),commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]}, +f,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],setup:d(function(a){return a.getName()}),commit:function(a){a.renameNode(this.getValue())}},f,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:i.integer(c.invalidRowSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()): +a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:i.integer(c.invalidColSpan),setup:d(function(a){if((a=parseInt(a.getAttribute("colSpan"),10))&&1!=a)return a}),commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},f,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:d(function(a){var b=a.getAttribute("bgColor"); +return a.getStyle("background-color")||b}),commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):a.removeStyle("background-color");a.removeAttribute("bgColor")}},k?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:f]},f, +{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:d(function(a){var b=a.getAttribute("borderColor");return a.getStyle("border-color")||b}),commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},k?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(m?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align", +"bottom")},onClick:function(){g.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","borderColor").setValue(a);this.focus()},this)}}:f]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
'),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
'+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/templates/templates/default.js b/src/main/webapp/ckeditor/plugins/templates/templates/default.js new file mode 100644 index 0000000..d8c172e --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/templates/templates/default.js @@ -0,0 +1,6 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

Type the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/src/main/webapp/ckeditor/plugins/templates/templates/images/template1.gif b/src/main/webapp/ckeditor/plugins/templates/templates/images/template1.gif new file mode 100644 index 0000000..efdabbe Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/templates/templates/images/template1.gif differ diff --git a/src/main/webapp/ckeditor/plugins/templates/templates/images/template2.gif b/src/main/webapp/ckeditor/plugins/templates/templates/images/template2.gif new file mode 100644 index 0000000..d1cebb3 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/templates/templates/images/template2.gif differ diff --git a/src/main/webapp/ckeditor/plugins/templates/templates/images/template3.gif b/src/main/webapp/ckeditor/plugins/templates/templates/images/template3.gif new file mode 100644 index 0000000..db41cb4 Binary files /dev/null and b/src/main/webapp/ckeditor/plugins/templates/templates/images/template3.gif differ diff --git a/src/main/webapp/ckeditor/plugins/wsc/LICENSE.md b/src/main/webapp/ckeditor/plugins/wsc/LICENSE.md new file mode 100644 index 0000000..c7d374a --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/LICENSE.md @@ -0,0 +1,28 @@ +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/src/main/webapp/ckeditor/plugins/wsc/README.md b/src/main/webapp/ckeditor/plugins/wsc/README.md new file mode 100644 index 0000000..46eeafb --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/README.md @@ -0,0 +1,25 @@ +CKEditor WebSpellChecker Plugin +=============================== + +This plugin brings Web Spell Checker (WSC) into CKEditor. + +WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. + +Installation +------------ + +1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. +2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): + + config.extraPlugins = 'wsc'; + +That's all. WSC will appear on the editor toolbar and will be ready to use. + +License +------- + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. + +Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/src/main/webapp/ckeditor/plugins/wsc/dialogs/ciframe.html b/src/main/webapp/ckeditor/plugins/wsc/dialogs/ciframe.html new file mode 100644 index 0000000..82df25b --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -0,0 +1,66 @@ + + + + + + + + +

+ diff --git a/src/main/webapp/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/src/main/webapp/ckeditor/plugins/wsc/dialogs/tmpFrameset.html new file mode 100644 index 0000000..c2d82aa --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.css b/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.css new file mode 100644 index 0000000..496d731 --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.css @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.js b/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.js new file mode 100644 index 0000000..443145c --- /dev/null +++ b/src/main/webapp/ckeditor/plugins/wsc/dialogs/wsc.js @@ -0,0 +1,74 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function y(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){window.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=Object.prototype.toString,f=a.fn||null,g=a.id||"",e=a.target||window,i=a.message||{id:g};a.message&&"[object Object]"== +b.call(a.message)&&(a.message.id||(a.message.id=g),i=a.message);a=window.JSON.stringify(i,f);e.postMessage(a,"*")},unbindHandler:function(a){window.removeEventListener?window.removeEventListener("message",a,!1):window.detachEvent("onmessage",a)}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}, +misc:{findFocusable:function(a){var b=null;a&&(b=a.find("a[href], area[href], input, select, textarea, button, *[tabindex], *[contenteditable]"));return b},isVisible:function(a){return!(0===a.offsetWidth||0==a.offsetHeight||"none"===(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(a,null).display:a.currentStyle?a.currentStyle.display:a.style.display))},hasClass:function(a,b){return!(!a.className||!a.className.match(RegExp("(\\s|^)"+b+"(\\s|$)")))}}}}(), +a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode=null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null, +text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null,text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var z=function(b){var c,d;for(d in b)c=b[d].instance.getElement().getFirst()|| +b[d].instance.getElement(),c.setText(a.LocalizationComing[d])},A=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}},j,q;a.framesetHtml=function(b){return"'};a.setIframe=function(b,c){var d;d=a.framesetHtml(c);var f=a.iframeNumber+"_"+c;b.getElement().setHtml(d); +d=document.getElementById(f);d=d.contentWindow?d.contentWindow:d.contentDocument.document?d.contentDocument.document:d.contentDocument;d.document.open();d.document.write('iframe
+ + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/src/main/webapp/ckeditor/samples/api.html b/src/main/webapp/ckeditor/samples/api.html new file mode 100644 index 0000000..5becd32 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/api.html @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/src/main/webapp/ckeditor/samples/appendto.html b/src/main/webapp/ckeditor/samples/appendto.html new file mode 100644 index 0000000..a84b0ee --- /dev/null +++ b/src/main/webapp/ckeditor/samples/appendto.html @@ -0,0 +1,56 @@ + + + + + + Append To Page Element Using JavaScript Code — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/src/main/webapp/ckeditor/samples/assets/inlineall/logo.png b/src/main/webapp/ckeditor/samples/assets/inlineall/logo.png new file mode 100644 index 0000000..334e7ac Binary files /dev/null and b/src/main/webapp/ckeditor/samples/assets/inlineall/logo.png differ diff --git a/src/main/webapp/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/src/main/webapp/ckeditor/samples/assets/outputxhtml/outputxhtml.css new file mode 100644 index 0000000..da4f71a --- /dev/null +++ b/src/main/webapp/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/src/main/webapp/ckeditor/samples/assets/posteddata.php b/src/main/webapp/ckeditor/samples/assets/posteddata.php new file mode 100644 index 0000000..fd96f8f --- /dev/null +++ b/src/main/webapp/ckeditor/samples/assets/posteddata.php @@ -0,0 +1,59 @@ + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/src/main/webapp/ckeditor/samples/assets/sample.jpg b/src/main/webapp/ckeditor/samples/assets/sample.jpg new file mode 100644 index 0000000..a4a77fa Binary files /dev/null and b/src/main/webapp/ckeditor/samples/assets/sample.jpg differ diff --git a/src/main/webapp/ckeditor/samples/assets/uilanguages/languages.js b/src/main/webapp/ckeditor/samples/assets/uilanguages/languages.js new file mode 100644 index 0000000..3f7ff62 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/assets/uilanguages/languages.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese", +zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/src/main/webapp/ckeditor/samples/divreplace.html b/src/main/webapp/ckeditor/samples/divreplace.html new file mode 100644 index 0000000..3ee0e0e --- /dev/null +++ b/src/main/webapp/ckeditor/samples/divreplace.html @@ -0,0 +1,141 @@ + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/index.html b/src/main/webapp/ckeditor/samples/index.html new file mode 100644 index 0000000..964c5a3 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/index.html @@ -0,0 +1,128 @@ + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/src/main/webapp/ckeditor/samples/inlineall.html b/src/main/webapp/ckeditor/samples/inlineall.html new file mode 100644 index 0000000..250f0c5 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/inlineall.html @@ -0,0 +1,311 @@ + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/src/main/webapp/ckeditor/samples/inlinebycode.html b/src/main/webapp/ckeditor/samples/inlinebycode.html new file mode 100644 index 0000000..fe627d0 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/inlinebycode.html @@ -0,0 +1,121 @@ + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/src/main/webapp/ckeditor/samples/inlinetextarea.html b/src/main/webapp/ckeditor/samples/inlinetextarea.html new file mode 100644 index 0000000..9da5ed3 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/inlinetextarea.html @@ -0,0 +1,110 @@ + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/src/main/webapp/ckeditor/samples/jquery.html b/src/main/webapp/ckeditor/samples/jquery.html new file mode 100644 index 0000000..97afe86 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/jquery.html @@ -0,0 +1,100 @@ + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+ +
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+ +

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

+ +
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Classic (iframe-based) Example

+ + + +

+ + + + + +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/src/main/webapp/ckeditor/samples/plugins/dialog/assets/my_dialog.js new file mode 100644 index 0000000..3d8f369 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/src/main/webapp/ckeditor/samples/plugins/dialog/dialog.html b/src/main/webapp/ckeditor/samples/plugins/dialog/dialog.html new file mode 100644 index 0000000..b4940b2 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/dialog/dialog.html @@ -0,0 +1,187 @@ + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/src/main/webapp/ckeditor/samples/plugins/enterkey/enterkey.html b/src/main/webapp/ckeditor/samples/plugins/enterkey/enterkey.html new file mode 100644 index 0000000..f49d9d7 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/enterkey/enterkey.html @@ -0,0 +1,103 @@ + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla new file mode 100644 index 0000000..27e68cc Binary files /dev/null and b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla differ diff --git a/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf new file mode 100644 index 0000000..dbe17b6 Binary files /dev/null and b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf differ diff --git a/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js new file mode 100644 index 0000000..95fdf0a --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/src/main/webapp/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/outputhtml.html new file mode 100644 index 0000000..d857b4e --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -0,0 +1,221 @@ + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/plugins/magicline/magicline.html b/src/main/webapp/ckeditor/samples/plugins/magicline/magicline.html new file mode 100644 index 0000000..1638f4c --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/magicline/magicline.html @@ -0,0 +1,206 @@ + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/src/main/webapp/ckeditor/samples/plugins/toolbar/toolbar.html b/src/main/webapp/ckeditor/samples/plugins/toolbar/toolbar.html new file mode 100644 index 0000000..7d7a99e --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/toolbar/toolbar.html @@ -0,0 +1,232 @@ + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/src/main/webapp/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/src/main/webapp/ckeditor/samples/plugins/wysiwygarea/fullpage.html new file mode 100644 index 0000000..8c6f2e8 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -0,0 +1,77 @@ + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/readonly.html b/src/main/webapp/ckeditor/samples/readonly.html new file mode 100644 index 0000000..cf609df --- /dev/null +++ b/src/main/webapp/ckeditor/samples/readonly.html @@ -0,0 +1,73 @@ + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/replacebyclass.html b/src/main/webapp/ckeditor/samples/replacebyclass.html new file mode 100644 index 0000000..6baea4c --- /dev/null +++ b/src/main/webapp/ckeditor/samples/replacebyclass.html @@ -0,0 +1,57 @@ + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/replacebycode.html b/src/main/webapp/ckeditor/samples/replacebycode.html new file mode 100644 index 0000000..8e7d7f7 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/replacebycode.html @@ -0,0 +1,56 @@ + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/sample.css b/src/main/webapp/ckeditor/samples/sample.css new file mode 100644 index 0000000..faa0fbe --- /dev/null +++ b/src/main/webapp/ckeditor/samples/sample.css @@ -0,0 +1,365 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre +{ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} + +.marker +{ + background-color: Yellow; +} diff --git a/src/main/webapp/ckeditor/samples/sample.js b/src/main/webapp/ckeditor/samples/sample.js new file mode 100644 index 0000000..b96b3bf --- /dev/null +++ b/src/main/webapp/ckeditor/samples/sample.js @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/src/main/webapp/ckeditor/samples/sample_posteddata.php b/src/main/webapp/ckeditor/samples/sample_posteddata.php new file mode 100644 index 0000000..7637104 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/sample_posteddata.php @@ -0,0 +1,16 @@ +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/src/main/webapp/ckeditor/samples/tabindex.html b/src/main/webapp/ckeditor/samples/tabindex.html new file mode 100644 index 0000000..8c2eb41 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/tabindex.html @@ -0,0 +1,75 @@ + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/src/main/webapp/ckeditor/samples/uicolor.html b/src/main/webapp/ckeditor/samples/uicolor.html new file mode 100644 index 0000000..9a42c78 --- /dev/null +++ b/src/main/webapp/ckeditor/samples/uicolor.html @@ -0,0 +1,69 @@ + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/uilanguages.html b/src/main/webapp/ckeditor/samples/uilanguages.html new file mode 100644 index 0000000..f428fdb --- /dev/null +++ b/src/main/webapp/ckeditor/samples/uilanguages.html @@ -0,0 +1,119 @@ + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/src/main/webapp/ckeditor/samples/xhtmlstyle.html b/src/main/webapp/ckeditor/samples/xhtmlstyle.html new file mode 100644 index 0000000..600cddc --- /dev/null +++ b/src/main/webapp/ckeditor/samples/xhtmlstyle.html @@ -0,0 +1,231 @@ + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/src/main/webapp/ckeditor/skins/moono/dialog.css b/src/main/webapp/ckeditor/skins/moono/dialog.css new file mode 100644 index 0000000..76c4651 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/dialog.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/dialog_ie.css b/src/main/webapp/ckeditor/skins/moono/dialog_ie.css new file mode 100644 index 0000000..1474e90 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/dialog_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/dialog_ie7.css b/src/main/webapp/ckeditor/skins/moono/dialog_ie7.css new file mode 100644 index 0000000..ebe0b78 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/dialog_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/dialog_ie8.css b/src/main/webapp/ckeditor/skins/moono/dialog_ie8.css new file mode 100644 index 0000000..566f3c2 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/dialog_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/dialog_iequirks.css b/src/main/webapp/ckeditor/skins/moono/dialog_iequirks.css new file mode 100644 index 0000000..f8887c7 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/dialog_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor.css b/src/main/webapp/ckeditor/skins/moono/editor.css new file mode 100644 index 0000000..9616d79 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor_gecko.css b/src/main/webapp/ckeditor/skins/moono/editor_gecko.css new file mode 100644 index 0000000..66de2de --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor_gecko.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor_ie.css b/src/main/webapp/ckeditor/skins/moono/editor_ie.css new file mode 100644 index 0000000..a7ee066 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor_ie.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor_ie7.css b/src/main/webapp/ckeditor/skins/moono/editor_ie7.css new file mode 100644 index 0000000..6eece07 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor_ie7.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor_ie8.css b/src/main/webapp/ckeditor/skins/moono/editor_ie8.css new file mode 100644 index 0000000..1f4dbdc --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor_ie8.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/editor_iequirks.css b/src/main/webapp/ckeditor/skins/moono/editor_iequirks.css new file mode 100644 index 0000000..48d7989 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/editor_iequirks.css @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;position:static;-webkit-transition:none;-moz-transition:none;-ms-transition:none;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__bidiltr_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__bidirtl_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__bgcolor_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_button__textcolor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_ltr .cke_button__templates_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__creatediv_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__find_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_button__replace_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_button__flash_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__button_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__checkbox_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_button__form_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_button__hiddenfield_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__imagebutton_icon {background: url(icons.png) no-repeat 0 -696px !important;}.cke_button__radio_icon {background: url(icons.png) no-repeat 0 -720px !important;}.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons.png) no-repeat 0 -744px !important;}.cke_ltr .cke_button__select_icon {background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -792px !important;}.cke_ltr .cke_button__textarea_icon {background: url(icons.png) no-repeat 0 -816px !important;}.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -840px !important;}.cke_ltr .cke_button__textfield_icon {background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -888px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -912px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -936px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -960px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -984px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1008px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -1032px !important;}.cke_button__smiley_icon {background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -1080px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -1104px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -1128px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__language_icon {background: url(icons.png) no-repeat 0 -1176px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1200px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -1224px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -1248px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -1272px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1296px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -1320px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1344px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -1368px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -1392px !important;}.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1416px !important;}.cke_ltr .cke_button__newpage_icon {background: url(icons.png) no-repeat 0 -1440px !important;}.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1464px !important;}.cke_ltr .cke_button__pagebreak_icon {background: url(icons.png) no-repeat 0 -1488px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1512px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png) no-repeat 0 -1536px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1560px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png) no-repeat 0 -1584px !important;}.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1608px !important;}.cke_ltr .cke_button__preview_icon {background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__print_icon {background: url(icons.png) no-repeat 0 -1656px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -1680px !important;}.cke_button__save_icon {background: url(icons.png) no-repeat 0 -1704px !important;}.cke_button__selectall_icon {background: url(icons.png) no-repeat 0 -1728px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1752px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png) no-repeat 0 -1776px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1800px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -1824px !important;}.cke_button__specialchar_icon {background: url(icons.png) no-repeat 0 -1848px !important;}.cke_button__scayt_icon {background: url(icons.png) no-repeat 0 -1872px !important;}.cke_button__table_icon {background: url(icons.png) no-repeat 0 -1896px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png) no-repeat 0 -1944px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1968px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png) no-repeat 0 -1992px !important;}.cke_button__spellchecker_icon {background: url(icons.png) no-repeat 0 -2016px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidiltr_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bidirtl_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__templates_icon,.cke_ltr.cke_hidpi .cke_button__templates_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__find_icon,.cke_ltr.cke_hidpi .cke_button__find_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__replace_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_button__flash_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__button_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__checkbox_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_button__form_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__hiddenfield_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_hidpi .cke_button__imagebutton_icon {background: url(icons_hidpi.png) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_button__radio_icon {background: url(icons_hidpi.png) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__select_icon,.cke_ltr.cke_hidpi .cke_button__select_icon {background: url(icons_hidpi.png) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textarea_icon,.cke_ltr.cke_hidpi .cke_button__textarea_icon {background: url(icons_hidpi.png) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__textfield_icon,.cke_ltr.cke_hidpi .cke_button__textfield_icon {background: url(icons_hidpi.png) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -1032px !important;background-size: 16px !important;}.cke_hidpi .cke_button__smiley_icon {background: url(icons_hidpi.png) no-repeat 0 -1056px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -1080px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -1104px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -1128px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__language_icon {background: url(icons_hidpi.png) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1416px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__newpage_icon,.cke_ltr.cke_hidpi .cke_button__newpage_icon {background: url(icons_hidpi.png) no-repeat 0 -1440px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1464px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pagebreak_icon,.cke_ltr.cke_hidpi .cke_button__pagebreak_icon {background: url(icons_hidpi.png) no-repeat 0 -1488px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1512px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png) no-repeat 0 -1536px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1560px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png) no-repeat 0 -1584px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1608px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__preview_icon,.cke_ltr.cke_hidpi .cke_button__preview_icon {background: url(icons_hidpi.png) no-repeat 0 -1632px !important;background-size: 16px !important;}.cke_hidpi .cke_button__print_icon {background: url(icons_hidpi.png) no-repeat 0 -1656px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -1680px !important;background-size: 16px !important;}.cke_hidpi .cke_button__save_icon {background: url(icons_hidpi.png) no-repeat 0 -1704px !important;background-size: 16px !important;}.cke_hidpi .cke_button__selectall_icon {background: url(icons_hidpi.png) no-repeat 0 -1728px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1752px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png) no-repeat 0 -1776px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1800px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -1824px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png) no-repeat 0 -1848px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png) no-repeat 0 -1872px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png) no-repeat 0 -1896px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1920px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png) no-repeat 0 -1944px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1968px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png) no-repeat 0 -1992px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png) no-repeat 0 -2016px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/src/main/webapp/ckeditor/skins/moono/icons.png b/src/main/webapp/ckeditor/skins/moono/icons.png new file mode 100644 index 0000000..1ec992d Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/icons.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/icons_hidpi.png b/src/main/webapp/ckeditor/skins/moono/icons_hidpi.png new file mode 100644 index 0000000..6e103c0 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/icons_hidpi.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/arrow.png b/src/main/webapp/ckeditor/skins/moono/images/arrow.png new file mode 100644 index 0000000..0d1eb39 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/arrow.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/close.png b/src/main/webapp/ckeditor/skins/moono/images/close.png new file mode 100644 index 0000000..04b9c97 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/close.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/hidpi/close.png b/src/main/webapp/ckeditor/skins/moono/images/hidpi/close.png new file mode 100644 index 0000000..8abca8e Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/hidpi/close.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock-open.png b/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock-open.png new file mode 100644 index 0000000..aa5e740 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock-open.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock.png b/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock.png new file mode 100644 index 0000000..5404b06 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/hidpi/lock.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/hidpi/refresh.png b/src/main/webapp/ckeditor/skins/moono/images/hidpi/refresh.png new file mode 100644 index 0000000..1ebef34 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/hidpi/refresh.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/lock-open.png b/src/main/webapp/ckeditor/skins/moono/images/lock-open.png new file mode 100644 index 0000000..3b256c0 Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/lock-open.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/lock.png b/src/main/webapp/ckeditor/skins/moono/images/lock.png new file mode 100644 index 0000000..c127f9e Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/lock.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/images/refresh.png b/src/main/webapp/ckeditor/skins/moono/images/refresh.png new file mode 100644 index 0000000..a1a061c Binary files /dev/null and b/src/main/webapp/ckeditor/skins/moono/images/refresh.png differ diff --git a/src/main/webapp/ckeditor/skins/moono/readme.md b/src/main/webapp/ckeditor/skins/moono/readme.md new file mode 100644 index 0000000..1b48dd2 --- /dev/null +++ b/src/main/webapp/ckeditor/skins/moono/readme.md @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/src/main/webapp/ckeditor/styles.js b/src/main/webapp/ckeditor/styles.js new file mode 100644 index 0000000..48661b1 --- /dev/null +++ b/src/main/webapp/ckeditor/styles.js @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/src/main/webapp/ckeditorUpload/2017/00/GZHa8ugSMuklaK8ZvPDr.jpg b/src/main/webapp/ckeditorUpload/2017/00/GZHa8ugSMuklaK8ZvPDr.jpg new file mode 100644 index 0000000..030ab8a Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/GZHa8ugSMuklaK8ZvPDr.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/HnAyBmqbiguvuqx96UqY.jpg b/src/main/webapp/ckeditorUpload/2017/00/HnAyBmqbiguvuqx96UqY.jpg new file mode 100644 index 0000000..78704a0 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/HnAyBmqbiguvuqx96UqY.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/KSvRqvYTjolSLoy6USy6.jpg b/src/main/webapp/ckeditorUpload/2017/00/KSvRqvYTjolSLoy6USy6.jpg new file mode 100644 index 0000000..a587c96 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/KSvRqvYTjolSLoy6USy6.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/MefBfwmtUFcRzC3o4lXC.jpg b/src/main/webapp/ckeditorUpload/2017/00/MefBfwmtUFcRzC3o4lXC.jpg new file mode 100644 index 0000000..fa4fd41 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/MefBfwmtUFcRzC3o4lXC.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/R72xlHZXs4HeTSzUVxhv.jpg b/src/main/webapp/ckeditorUpload/2017/00/R72xlHZXs4HeTSzUVxhv.jpg new file mode 100644 index 0000000..fa4fd41 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/R72xlHZXs4HeTSzUVxhv.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/V6ed5upVuN57H0zZvvRV.jpg b/src/main/webapp/ckeditorUpload/2017/00/V6ed5upVuN57H0zZvvRV.jpg new file mode 100644 index 0000000..fa4fd41 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/V6ed5upVuN57H0zZvvRV.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/cNjTENStEwHOhDyIpfdV.jpg b/src/main/webapp/ckeditorUpload/2017/00/cNjTENStEwHOhDyIpfdV.jpg new file mode 100644 index 0000000..fa4fd41 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/cNjTENStEwHOhDyIpfdV.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/kv4tytKkDdmyoWhwHoQU.jpg b/src/main/webapp/ckeditorUpload/2017/00/kv4tytKkDdmyoWhwHoQU.jpg new file mode 100644 index 0000000..757c2a6 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/kv4tytKkDdmyoWhwHoQU.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/n5JZPM1LZUixJjT0sxap.jpg b/src/main/webapp/ckeditorUpload/2017/00/n5JZPM1LZUixJjT0sxap.jpg new file mode 100644 index 0000000..030ab8a Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/n5JZPM1LZUixJjT0sxap.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/n5YdvaTC50kTyUZM3wBr.jpg b/src/main/webapp/ckeditorUpload/2017/00/n5YdvaTC50kTyUZM3wBr.jpg new file mode 100644 index 0000000..78704a0 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/n5YdvaTC50kTyUZM3wBr.jpg differ diff --git a/src/main/webapp/ckeditorUpload/2017/00/pcwm3I4alfoBxHxQUltn.jpg b/src/main/webapp/ckeditorUpload/2017/00/pcwm3I4alfoBxHxQUltn.jpg new file mode 100644 index 0000000..78704a0 Binary files /dev/null and b/src/main/webapp/ckeditorUpload/2017/00/pcwm3I4alfoBxHxQUltn.jpg differ diff --git a/src/main/webapp/css/common.css b/src/main/webapp/css/common.css new file mode 100644 index 0000000..5c70cf0 --- /dev/null +++ b/src/main/webapp/css/common.css @@ -0,0 +1,2558 @@ +body { + background: #fff; + font-family: "Nanum Gothic", "돋움", dotum, sans-serif; + padding: 0px; + margin: 0px ; + font-size: 14px; + font-weight: normal; + color: #484848; +} + +/* Styles for reset +-----------------------------------------------------------*/ + +ul, ol { + list-style: none; +} + +a img { + border: none; +} + +a { + color: #484848; + border: none; +} + +a:hover { + text-decoration: underline; +} + +a:visited { + text-decoration: none; +} + +a:link { + text-decoration: none; +} + +a:active { + text-decoration: underline; +} + +a:focus { + text-decoration: none; + outline: none; +} + +table { + padding: 0; + border-spacing: 0px; + border: 0; +} + +#table { + font-size: 12px; + width: 1000px; + overflow: hidden; + overflow-x : auto; +} + +#table table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + border-left: 0; + border-right: 0; +} + +#table table { + width: 100%; +} + +.table table { + width: 100%; +} + +.border_left { + border-left:1px dashed #eee; +} + +.border_right_none { + border-right: 0; +} + +.border_left_none { + border-left: 0; +} + +/* Styles for helper +-----------------------------------------------------------*/ + +.hidden { + position: absolute; + left: -10000%; + top: 0; + overflow: hidden; + width: 1px; + height: 1px; + font-size: 0; + line-height: 0; + text-indent: -10000px; +} + +.text-center { + text-align: center; +} + +.pull-right { + float: right; +} + +.mt-20 { + margin-top: 20px; +} + +/*chorme input bg reset*/ + +input:-webkit-autofill { + -webkit-box-shadow: 0 0 0 100px #fff inset; + -moz-box-shadow: 0 0 0 100px #fff inset; + box-shadow: 0 0 0 100px #fff inset; +} + +input:-webkit-autofill { transition: background-color 5000s ease-in-out 0s;} + +.margin_left { + margin-left: 10px; +} + +.margin-top input { + margin-top: 3px; +} + +/* Styles for password +-----------------------------------------------------------*/ + +#pwMenu { + display: none; + position: fixed; + _position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 500; +} + +#pwMenu .dimBg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #000; + opacity: .5; + filter: alpha(opacity=50); +} + +.mini_window { + z-index:100; + border:1px solid #4a5057; + left: 50%; + top: 28%; + margin-left: -230px; + width: 460px; + visibility: visible; + position: absolute; + background-color: #fff; +} + +.password-pop h3 { + display: block; + padding: 15px 14px; + background-color: #4a5057; + font-size: 14px; + color: #fff; +} + +.border-style { + margin-bottom: 20px; + border-top: 0 !important; + border-bottom: 1px solid #8e8e8e; +} + +.password-pop .boardviewinfo { + margin-right: 10px; + margin-bottom: 10px; +} + +.password-pop .tbl_add { + width: 100%; + border-top: 0 !important; +} + +.tbl_add tr td.w-256 input[type="password"]{ + height: 28px; + width: 256px; + border: 1px solid #ccc; + padding: 0px 2%; + vertical-align: middle; +} + +#initPwMenu { + display: none; + position: fixed; + _position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 500; +} + +#initPwMenu .dimBg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #000; + opacity: .5; + filter: alpha(opacity=50); +} + +/* Styles for lay-out +-----------------------------------------------------------*/ + +#wrap { + min-width: 1000px; + background: none; + color: #484848; + text-align: left; +} + +.sub_menu li a { + font-size: 12px; + color: #484848; +} + +.sub_menu li { + height: 14px; + line-height: 14px; +} + +.sub_menu .nation_flag { + float : left; + height : 50px; + padding-top : 0px; +} + +.sub_menu .nation_flag li { + line-height: 50px; +} + +/* Styles for footer +-----------------------------------------------------------*/ + +#footer .footer-content { + overflow: hidden; + width: 1000px; + margin: 0 auto; +} + +#footer .footer-banner { + position: relative; + height: 54px; + background: #f8f8f8; + border-top: 1px solid #d4d4d4; +} + +#footer .footer-banner .list { + overflow: hidden; + width: 100%; + white-space: nowrap; + text-align:right; + /* padding-left: 465px; */ +} + +#footer .footer-banner .list li { + position: relative; + display: inline-block; + padding: 0 10px; + line-height: 54px; + /* float:right; */ +} + +#footer .footer-banner .list li a { + color: #333; +} + +#footer .footer-banner .list li:first-child { + padding-left: 0; +} + +#footer .footer-banner .list li:first-child:after { + width: 0px; +} + +#footer .footer-banner .list li:after { + display: block; + content: ''; + position: absolute; + left: 0px; + top: 21px; + height: 13px; + width: 1px; + background: #bebebe; +} + +#footer .footer-banner .list .top_btn { + float: right; + background: #525252; +} + +#footer .footer-banner .list .top_btn a { + display: block; + color: #fff; + font-weight: bold; +} + +#footer .footer-banner .list .top_btn a span { + padding-right: 20px; + background: url(/source/korean/images/main/top_arrow.gif) no-repeat center right; +} + +#footer .footer-bottom { + border-top: 1px solid #d4d4d4; +} + +#footer .footer-bottom .footer-content { + padding: 30px 0; +} + +.footer-content .footer-logo { + float: left; + width: 170px; + margin-right: 30px; + padding-left: 1px; +} + +.footer-content .footer-info .footer-copyright { + margin-top: 5px; + font-size: 14px; + line-height: 26px; + color: #000000; + text-align: left; +} + + + +/* Styles for header +-----------------------------------------------------------*/ + +#header { + position: relative; + border-bottom: 1px solid #2b4978; +} + +#header:before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 60px; + /* border-top: 1px solid #e1e1e1; */ + z-index: -1; +} + + +.q_link { + position: fixed; + top: 20%; + right: 100px; + width:100px; + height: 275px; + background-color: #2b4978; + z-index: 99; +} + +.q_link h3 { + font-size: 14px; + color: #fff; + text-align: center; + padding: 10px 0 5px; + border-bottom: 2px solid #f8c12d; +} +.q_link ul {;} + +.q_link ul li { + display: block; + width: 100%; + height: 50px; + background-repeat: no-repeat; + background-position: 50% 50%; +} + +.q_link ul li:nth-child(1) { + background-image: url(../images/new/q_report.png); + +} + +.q_link ul li:nth-child(2) { + background-image: url(../images/new/q_info.png); + background-size: 35%; +} + +.q_link ul li:nth-child(3) { + background-image: url(../images/new/q_meeting.png); +} + +.q_link ul li:nth-child(4) { + background-image: url(../images/new/q_borad.png); +} +.q_link ul li:nth-child(5) { + +} +.q_link ul li a{ + opacity: 0; + display: block; + margin-top: 7px; + height: 100%; + text-align: center; + line-height: 50px; + font-size: 15px; + font-weight: 600; + color: #fff; +} + + + +.header-gnb .all-menu { + float: right; + /* border-left: 1px solid #f1f1f1; + border-right: 1px solid #f1f1f1; */ +} + +.header-gnb .gnb-menu .all-menu a { + display: block; + font-size: 0; + line-height: 0; +} + +.top-gnb { + width: 1000px; + margin: 0 auto; +} + +.header-gnb { + overflow: hidden; + width: 1000px; + margin: 0 auto; + height: 60px; + z-index:1000; +} + +.header-gnb .gnb-menu > li { + float: left; + width: 156px; + text-align: center; +} + +.header-gnb .gnb-menu > li > a { + position: relative; + display: block; + font-size: 15px; + font-weight: bold; + color: #404040; + line-height: 60px; + /* border-left: 1px solid #f1f1f1; */ +} + + +/*.header-gnb .gnb-menu > li > a:hover { + color: #336bb8; +}*/ + +.header_user .top-gnb ul#menu1 li { + float: left; + position: relative; +} + +.header_user .top-gnb ul#menu1 li a { + display: block; + padding: 12px 10px; + font-size: 12px; + font-weight: bold; + color: #333; +} + +.header_user .top-gnb ul#menu1 li:first-child:after { + width: 0px; +} + +.header_user .top-gnb ul#menu1 li:after { + display: block; + content: ''; + position: absolute; + top: 13px; + height: 14px; + width: 1px; + background: #ddd; +} + +.submenu { + width: 156px; + display: none; + overflow: hidden; + position: absolute; + height: 290px; + font-size: 13px; + z-index: 1001; + -webkit-transition: 0.6s; + -ms-transition: 0.6s; +} + +.submenu > ul { + margin-top: 15px; + /* margin-top: 36px; */ + height: 300px; + border-left: 1px dotted #e1e1e1; +} + +.submenu ul:last-child { + border-right: 1px dotted #e1e1e1; +} + +.submenu > ul > li { + padding: 0 10px 20px 10px; + font-size: 14px; + text-align: left; + letter-spacing: -1px; + text-align: center; +} + +/* 해더 gnb 메뉴 color line */ +.submenu:hover:before { + content: ""; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 4px; + background: #2b4978; +} +/* 해더 gnb sub bg_color and font_color */ +.submenu:hover { + background: #f3f3f3; + color: #fff; +} + +.submenu ul li a { + display: block; + width: 100%; + font-weight: 500; + color: #404040; + -webkit-transform: translateZ(0); + transform: translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-osx-font-smoothing: grayscale; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: color, background-color; + transition-property: color, background-color; +} + +.submenu ul li a:hover { + color: #2082dd; + font-weight: bold; + text-decoration: underline; +} + +#menuBg { + display: none; + position: absolute; + left: 0; + top: 179px; + min-width: 1000px; + width: 100%; + height: 310px; + background: #fafafa; + z-index: 100; + border-top : 1px solid #2b4978; + border-bottom : 1px solid #2b4978; + /* border-top: 1px solid #e1e1e1; */ + /* border-bottom: 1px solid #e1e1e1; */ +} + +.gnb-menu-right { + float: right; +} + +.gnb-menu-right li { + float: left; + position: relative; +} + +.gnb-menu-right span { + display: block; + line-height: 40px; + font-size: 12px; + font-weight: bold; + color: #333; +} + +.gnb-menu-right li a { + padding: 12px 8px; + font-size: 12px; + font-weight: bold; + line-height: 40px; + color: #333; +} + +.gnb-menu-right li.logout { + font-size: 12px; + font-weight: bold; + line-height: 39px; +} + +.gnb-menu-right li.logout { + background: url("../images/cmmn/logout2.png") no-repeat 2px center; +} + +.gnb-menu-right li.logout > a { + padding-left: 35px; +} + +.header_user { + position: relative; + height: 40px; + background: #fefefe; + border-bottom: 1px solid #f1f1f1; +} + +.logo { + width: 1000px; + height: 78px; + margin: 0 auto; +} + +.logo h1 { + float: left; + width : 240px; + height : 60px; + padding: 18px 0 0; + /* margin-right: 5px; */ + +} + + +/* Styles for container +-----------------------------------------------------------*/ + +/*Location*/ + +.location { + position: relative; + height: 50px; + background-color: #2b4978; + /* background: #4a5057; */ + z-index: 10; +} + +.location-content { + position: relative; + width: 1000px; + height: 50px; + margin: 0 auto; + /* border-left: 1px solid #3f454c; */ + box-sizing: border-box; +} + +.location-content > li { + float: left; + /* border-right: 1px solid #3f454c; */ +} + +.location-content > li.home > a { + display: block; + width: 44px; + padding: 17px 0 17px; + line-height: 0; + text-align: center; +} + +.location-content > li.now-page > a { + display: block; + padding: 9px 20px 10px 20px; + font-weight: 700; + line-height: 31px; + color: #fff; +} + +.location-content > li.page > a { + display: block; + padding: 9px 40px 10px 20px; + background: url("../../images/cmmn/location_arrow.png") no-repeat 85% 50%; + font-weight: 700; + line-height: 31px; + color: #fff; +} + +/*content*/ + +.content { + width: 1000px; + margin: 0 auto 160px; + outline: none; +} + +.main_content { + margin: 0 auto 30px; +} + +.title-area { + position: relative; + padding: 45px 0 40px; + text-align: left; +} + +.title-area .page-title { + position: relative; + /*display: inline-block;*/ + display: block; + margin: 0; + padding: 0 0 10px 0; + background: none; + font-size: 26px; + line-height: 45px; + font-weight: 700; + color: #333; +} + +.title-area .page-title:after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 2px; + border-top: 2px solid #333; + +} + +.title-area .page-title li span { + font-size: 13px; + color: #8b8b8b; + font-weight: 500; +} + +/*.title-area .page-title:after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 3px; + background: #044796; +}*/ + +/* Styles for boardList +-----------------------------------------------------------*/ + +/*page info*/ + +.pageinfo { + overflow: hidden; + margin-bottom: 10px; +} + +.pageinfo .left { + float: left; + color: #333; + font-size: 13px; + padding: 1.333em 0 0; +} + +.pageinfo .left li { + display: inline-block; + margin-right: 3px; +} + +.pageinfo .left li em { + color: #1663bc; + font-weight: bold; + padding-left: 3px; + font-style: normal; +} + +.pageinfo .right { + float: right; +} + +.pageinfo .right li { + display: inline-block; + margin-left: 3px; +} + + +/*board table*/ +.tbl_list { + border-bottom: 1px solid #ddd; + border-top: 2px solid #29559f; +} + +.tbl_list input[type="button"] { + width: 50px; + height: 25px; + background-color: transparent; + color: #ccc; + border: 1px solid #ccc; + border-radius: 10px; + transition: .2s; + text-align: center; +} + +.tbl_list input[type="button"]:hover { + color: #fff; + background-color: #29559f; + border-color : #29559f; +} + +.tbl_list thead th { + padding: 13px 5px; + background-color: #fff; + border-bottom: 1px solid #ddd; + border-left: 1px dashed #eee; + text-align: center; + color: #555; +} + +.tbl_list thead th:first-child { + border-left : none; +} + + + +.tbl_list_col { + border-bottom: none !important; + padding: 8px 10px !important; +} + +.tbl_list thead tr:nth-child(2) th{ + padding: 8px 10px; +} + +.tbl_list tbody td { + word-break: break-all; +} + +.tbl_list tbody td { + padding: 13px 5px; + border-bottom: 1px dotted #dcdcdc; +} +.tbl_list tbody tr:hover { + background-color: #fafafa; +} + +.tbl_list tbody tr:last-child td { + border-bottom: 0; +} + +.tbl_list tbody tr:last-child td { + border-bottom: 0; +} + + +.tbl_list tbody td a { + color: #333; + -moz-osx-font-smoothing: grayscale; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: color, background-color; + transition-property: color, background-color; +} + +.tbl_list tbody td a:hover { + color: #333; + text-decoration: underline; +} + +/*btn*/ + +.pageinfo .btn-style > li > a { + border: 1px solid #9b9b9b; + display: block; + width: 34px; + height: 34px; + font-size: 0; + line-height: 0; + text-indent: -10000%; +} + +.pageinfo .btn-style-text > li > a { + display: block; + padding: 0 10px; + line-height: 28px; + border: 1px solid #ccc; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; + transition: .2s; + border-radius: 15px; +} + +/*추가 2018.03.19*/ +.pageinfo .btn-style-text > li > a:hover { + background-color: #456391; + border-color: transparent; + color: #fff; +} + + + +.board_buttom .right { + float: right; +} + +.board_buttom .btn-style > li > a { + border: 1px solid #fff; + display: block; + width: 80px; + height: 34px; + color: #fff; + line-height: 34px; + text-align: center; + transition: .3s; + border-radius: 18px; + font-weight: 600; +} + +.board_buttom .btn-style > li > a:hover { + +} + +#search { + position: relative; + padding: 30px 167px 30px 234px; + margin-bottom: 30px; + background: #f5f5f5; +} + +#search .form_group select { + position: absolute; + top: 30px; + left: 50px; + width: 180px; + height: 39px; + margin-right: 3px; + padding: 8px 10px 8px 10px; + border: 1px solid #d7d7d7; + font-size: 13px; +} + +#search .form_group input { + width: 100%; + height: 39px; + border: 1px solid #d7d7d7; + line-height: 39px; + text-indent: 10px; + box-sizing: border-box; +} + +.search2 { + position: relative; + padding: 30px 30px; + margin-bottom: 30px; + background: #f5f5f5; + overflow:hidden; +} + +.search2 ul li { + vertical-align: middle; +} + +.search2 .btn_blue , .search2 .btn_gray{ + height: 39px; + line-height: 39px; + padding: 0 10px 0 10px; +} + +.m-bottom { + margin-bottom: 1px !important; +} + +.m-top { + margin-top: 9px; +} + +.search2 .form_search select { + width: 180px; + height: 39px; + padding: 8px 10px 8px 10px; + border: 1px solid #d7d7d7; + font-size: 13px; +} + +.search2 .form_search2 select { + width: 380px; + height: 39px; + padding: 8px 10px 8px 10px; + border: 1px solid #d7d7d7; + font-size: 13px; +} + +.search2 .form_search3 select { + width: 120px; + height: 39px; + padding: 8px 10px 8px 10px; + border: 1px solid #d7d7d7; + font-size: 13px; +} + +.search2 ul { + overflow:hidden; +} + +.search2 ul li { + vertical-align:middle +} + +.search2 ul li label { + font-weight: bold; +} + +.search2 input[type="text"] { + height: 39px; + border: 1px solid #d7d7d7; + line-height: 39px; + text-indent: 10px; + box-sizing: border-box; +} + +.search2 li.w-300 input[type="text"] { + width: 300px; +} + +.search2 li.w-94 input[type="text"] { + width: 94px; +} + +.search2 input[type="radio"] { + border: 1px solid #d7d7d7; + line-height: 39px; + text-indent: 10px; + box-sizing: border-box; +} + +.search2 input[type="button"] { + border: none; + display: inline-block; + border-radius: 3px; + height: 39px; + line-height: 39px; + background: #29559f; + color: #fff; + font-weight: 700; + vertical-align: middle; + text-indent: 0; + padding: 0 20px; + cursor: pointer; +} + +.search2 input[type="button"].green { + background: #366334; + cursor: pointer; +} + +.search2 input#name { + height: 39px; + width: 200px; +} + +.search2 .w-320 input { + width: 320px; +} + +.search2 .w-240 input { + width: 240px; +} + +.search2 .w-130 input { + width: 130px; +} + +.search2 .margin-left { + margin-left: 14px; +} + +.search2 .ml-5 { + margin-left: 5px; +} + +.search2 .form_radio input { + margin: 0 8px 0 6px; +} + +.search2 ul li { + display: inline-block; +} + +.search2 .label_marign li > label { + margin-left: 4px; +} + +.search2 .label_marign li.radio-group { + height: 14px; + width: 1px; + background: #d7d7d7; + margin: 0 14px; +} + +.search3 { + position: relative; + height: 245px; + padding: 20px; + background-color: #f5f5f5; +} + +.search3 .search_list { + float: left; + height: 245px; +} + +.search3 .search_list:first-child { + margin-right: 10px; +} + +.search3 .search_list:last-child { + margin-left: 10px; +} + +.search4 { + position: relative; + padding: 20px; + background-color: #f5f5f5; +} +.search4 .search_list_wrap{ + overflow:hidden; +} + +.search4 .search_list { + float: left; + overflow:hidden; + margin-left:8px; +} + +.search4 .search_list .list-box { + position: relative; + width:234px; +} + +.search4 .search_list:first-child{ + margin-left:0; +} + +.search4 .search_list .list-box .select_list { + height: 140px; + border-right: 1px solid #d7d7d7; + border-bottom: 1px solid #d7d7d7; + overflow-y: scroll; + background: #fff; + font-size: 13px; +} + +.search_list .list1 { + width: 400px; +} + +.search_list .list2 { + width: 175px; +} + +.search_list .list3 { + width: 175px; + margin-right: 10px; +} + +.search_list .list4 { + width: 175px; +} + +.search_list .list5 { + width: 157px; +} + +.search_list .list6 { + width: 157px; +} + +.search_list .list-box { + position: relative; + float: left; +} + +.search_list .list-box .select_list { + height: 210px; + border-right: 1px solid #d7d7d7; + border-bottom: 1px solid #d7d7d7; + overflow-y: scroll; + background: #fff; + font-size: 13px; +} + +.search_list .list-box .select_list li { + position: relative; + font-size: 13px; + line-height: 21px; +} + +.search_list .list1 .select_list { + /* border-left: 1px dashed #eee; */ +} + +.search_list .list3 .select_list { + /* border-left: 1px dashed #eee; */ +} + +.select_title { + padding: 0; + margin: 0; + line-height: 34px; + text-align: center; + color: #444; + font-size: 13px; + font-weight: 700; + background-color: #fff; + /* border: 1px solid #eee; */ + border-top: 2px solid #29559f; + border-bottom: 1px solid #eee; + /* border-left: 1px dashed #eee; */ + /* border-right: 1px dashed #eee; */ +} + +.select_title input[type=checkbox] { + margin-left: 10px; + position: absolute; + margin-top: 11px; +} + +.list1 .select_title:after { + display: none; + content: ''; + position: absolute; + top: 13px; + right: 2px; + height: 14px; + width: 1px; + background: #4d6889; +} + +.list3 .select_title:after , +.list4 .select_title:after , +.list5 .select_title:after { + display: none; + content: ''; + position: absolute; + top: 13px; + right: 2px; + height: 14px; + width: 1px; + background: #4d6889; +} + +.search_list .list-box .select_list li input[type=checkbox] { + margin-left: 10px; + vertical-align: middle; +} + +.search_list .list-box .select_list label { + display: inline-block; + vertical-align: middle; + padding-left: 4px; + /* width: 90px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap;*/ +} + +.inp_btn { + position: absolute; + top: 30px; + right: 50px; +} + +.btn_blue { + display: inline-block; + padding: 12px 30px 11px; + border-radius: 3px; + background: #2b4978; + color: #fff; + font-weight: 700; + vertical-align: middle; + transition: .2s; +} + +.btn_blue:hover { + background-color: #f8c12d; +} + +.btn_blue a { + display: block; + width: 100%; + color: #fff; +} + +.btn_gray { + display: inline-block; + padding: 12px 30px 11px; + border-radius: 3px; + background: #555; + color: #fff; + font-weight: 700; + vertical-align: middle; +} + +.btn_gray a { + color: #fff; +} + +.btn_default { + display: inline-block; + padding: 8px 20px 8px; + border-radius: 3px; + color: #fff; + font-weight: 700; + vertical-align: middle; + border: 1px solid #9b9b9b; +} + +.btn_default a { + color: #333333; +} + +.btn_set { + width: 36px; + height: 36px; + font-size: 0; + line-height: 0; + text-indent: -10000%; +} + +.btn_delete { + background: url("../../images/cmmn/delete.png"); +} + +.btn_reset { + background: url("../images/cmmn/reset.png"); +} + +.btn_excel { + background: url("../images/cmmn/excel.png"); +} + +.btn_print { + background: url("../images/cmmn/print.png"); +} + + +.btn_graph { + background: url("../../images/cmmn/graph.png"); +} + +.btn_update { + background: url("../../images/cmmn/update.png"); +} + +.btn_filter { + background: url("../../images/cmmn/filter.png"); +} + +/* +.btn_delete:hover { + background: url("../../images/cmmn/delete_on.png"); +} + +.btn_reset:hover { + background: url("../../images/cmmn/reset_on.png"); +} + +.btn_excel:hover { + background: url("../../images/cmmn/excel_on.png"); +} + +.btn_print:hover { + background: url("../../images/cmmn/print_on.png"); +} + +.btn_graph:hover { + background: url("../../images/cmmn/graph_on.png"); +} + +.btn_update:hover { + background: url("../../images/cmmn/update_on.png"); +} +.btn_filter:hover { + background: url("../../images/cmmn/filter_on.png"); +} +*/ + + +.btn_create { + background-color: #2b4978; + /* padding-left: 20px; */ + border-radius: 5px; +} +.btn_create:hover { + background-color: #f8c12d; +} + +/*paging*/ + +#paging { + clear: both; + width: 100%; + margin: 2.666em auto 0; + line-height: normal; + text-align: center; +} + +#paging strong { + border-color: #2b4978; + background: #2b4978; + color: #fff; + width: 33px; + height: 34px; + font-size: 12px; + line-height: 34px; + display: inline-block; + vertical-align: middle; + white-space: nowrap; + overflow: hidden; + text-decoration: none !important; +} + +#paging a { + border: 1px solid #dddddd; + color: #333; + width: 34px; + height: 34px; + font-size: 12px; + line-height: 34px; + display: inline-block; + vertical-align: middle; + white-space: nowrap; + overflow: hidden; + text-decoration: none !important; +} + +.board_buttom { + display: block; + margin: 20px 0; + text-align: right; +} + +/* Styles for boardView +-----------------------------------------------------------*/ +.tbl_view { + display: block; + margin-bottom: 20px; + border-top: 2px solid #2d2d2d; + border-bottom: 1px solid #2d2d2d; + word-break: break-all; +} + +.tbl_view thead th.tbl_title { + padding: 14px 15px; + background-color: #f8f8f8; + font-size: 16px; + font-weight: bold; + color: #333; + text-align: left; +} + +.tbl_view thead th { + padding: 12px 15px; +} + +.tbl_view thead tr:first-child th { + border-top: none; + background-color: #f8f8f8; +} + +.tbl_view-col { + background-color: #f8f8f8; +} + +.tbl_view thead tr td, .tbl_view thead tr th { + border-top: 1px solid #dcdcdc; + text-align: left; +} + +.tbl_view thead tr th label { + text-align: left; +} + +.tbl_view thead td { + padding: 12px 15px; +} + +.tbl_view thead td a { + color: #333; +} + +.tbl_view thead td a:hover { + text-decoration: underline; +} + +.tbl_view tbody .tbl_content td.view { + padding: 40px 10px; + border-top: 1px solid #dcdcdc; + text-align: left; + vertical-align: top; + line-height: 21px; +} + +.tbl_view tbody tr:first-child td { + border-top: 1px solid #dcdcdc; +} + +.boardviewinfo { + overflow: hidden; + margin-bottom: 40px; +} + +.boardviewinfo .right { + float: right; +} + +.boardviewinfo .btn-style > li { + display: inline-block; + text-align: center; +} + +.boardviewinfo .btn-style > li > a { + display: block; + padding: 0 10px; + line-height: 27px; + border-radius: 15px; + background: #215b8b; + font-size: 13px; + font-weight: 500; + text-align: center; + color: #eee; + transition: .3s; +} + +.boardviewinfo .btn-style > li > a:hover { + background-color: #f8c12d; + +} + + +.opinion { + position: relative; + height: 40px; + padding: 30px 30px; + margin-bottom: 30px; + border: 1px solid #e5e7e9; + background: #f5f7f9; +} + +.opinion li { + display: inline-block; +} + +.opinion ul li { + vertical-align: middle; +} + +.opinion .btn_blue { + height: 40px; + line-height: 40px; + padding: 0 30px 0 30px !important; +} + +#comment { + position: relative; + margin: 0 0 -1px 0; + line-height: 1.333; + letter-spacing: -1px; + overflow: hidden; +} + +#comment li { + display: block; + padding: 14px 10px; + border-top: 1px solid #e5e7e9; +} + +#comment li b { + margin-right: 10px; +} + +#comment li b:after { + content:"|"; + padding-left: 10px; + color: #e5e7e9; + font-weight: 100 !important; +} + +#comment .delate { + margin-top: -2px; + float: right; + display: inline-block; + padding: 2px 6px; + border: 1px solid #d7d7d7; + border-radius: 3px; + background: #fff; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; +} + +.comment-img { + loat: left; + position: absolute; + top: 15px; + width: 46px; + height: 46px; + border-radius: 50%; + border: 12px solid #fff; + background: #fff url("../../images/cmmn/comment.png"); + background-size: contain; + vertical-align: middle; +} +.opinion .form_input { + padding-left: 100px; +} + +.opinion .form_input input { + width: 710px; + height: 40px; + border: 1px solid #d7d7d7; + line-height: 40px; + text-indent: 10px; + box-sizing: border-box; + margin-right: 3px; + font-size: 13px; +} + +/* Styles for boardAdd +-----------------------------------------------------------*/ + +.tbl_add { + margin-bottom: 20px; + border-top: 2px solid #29559f; + border-bottom: 1px solid #eee; +} + +.tbl_add tr.th-bg { + background: #f8f8f8; + font-weight: bold; +} + +.tbl_add tr th { + font-weight: 600; + padding: 8px 8px 8px 14px; + background: #fff; + text-align: left; + line-height: 28px; + border-top: 1px solid #ddd; + + + color: #555; +} + +/* 2018.04.12 */ +.tbl_add tbody tr td input[type="radio"] { + padding-top : 10px; + vertical-align: middle; +} + +.tbl_add tbody tr td label { + padding-left : 5px; + +} + + + + + + + + +.tbl_add thead .border th { + border-top: 0 ; + border-bottom: 1px solid #ddd ; +} + +.tbl_add tbody tr td.title { + font-weight: bold; +} + +.tbl_add tr td { + overflow: hidden; + min-width: 70px; + line-height: 28px; +} + +.tbl_add tr td input[type="text"] { + height: 28px; + line-height: 28px; + width: 80%; + border: 1px solid #ccc; + padding: 0px 10px; + vertical-align: middle; +} + +.tbl_add tr td.w-82 input[type="text"] { + width:82px; +} + +.tbl_add tr td.w-124 input[type="text"] { + width:124px; +} + +.tbl_add tr td.w-138 input[type="text"] { + width:138px; +} + +.tbl_add tr td.w-158 input[type="text"] { + width:158px; +} + +.tbl_add tr td.w-192 input[type="text"] { + width:192px; +} +.tbl_add tr td.w-214 input[type="text"] { + width:214px; +} + +.tbl_add tr td.iw-320 input[type="text"] { + width:320px; +} + +.tbl_add tr td input[type="password"] { + height: 28px; + line-height: 28px; + width: 30%; + border: 1px solid #ccc; + padding: 0px 2%; + vertical-align: middle; +} + +.tbl_add tr td textarea { + height: 28px; + width: 80%; + border: 1px solid #ccc; + padding: 8px 2%; + vertical-align: middle; + line-height: 20px; +} + +.tbl_add tr td .tbl_addtext { + margin-right: 4px; +} + +.tbl_add .form_search select { + margin-right: 3px; + padding: 3px 3px 3px 3px; + height: 30px; + width: 100%; + vertical-align: middle; + border: 1px solid #ccc; + font-size: 13px; +} + +.tbl_add .form_search.sw-156 select { + width: 156px; +} + +.tbl_add .form_search.sw-200 select { + width: 200px; +} + +.tbl_add .form_search.sw-320 select { + width: 320px; +} + +.tbl_add .form_search. select { + margin-top: -1px; + vertical-align: middle; + padding-right: 1px; + padding-right: 2px \0/IE8 !important; + padding-left: 2px \0/IE8 !important; +} + +.tbl_add .form_select select { + padding: 3px 3px 3px 3px; + height: 30px; + width: 84%; + vertical-align: middle; + border: 1px solid #ccc; + font-size: 13px; + vertical-align: middle; +} + +.tbl_add .form_day select { + padding: 3px 3px 3px 3px; + height: 30px; + width: 38%; + vertical-align: middle; + border: 1px solid #ccc; + font-size: 13px; + vertical-align: middle; +} + +.tbl_add tr td.form_day input[type="text"] { + height: 30px; + width: 38%; + vertical-align: middle; + border: 1px solid #ccc; + font-size: 13px; + vertical-align: middle; +} + +.tbl_add .form_day span { + padding: 0 4px; +} + +.tbl_add #place2_div select , .tbl_add #place3_div select { + margin-right: 3px; + padding: 3px 3px 3px 3px; + height: 30px; + width: 84%; + vertical-align: middle; + border: 1px solid #ccc; + font-size: 13px; + vertical-align: middle; +} + +.tbl_add select#scholarship { + width: 33.6% !important; +} + +.tbl_add select#place2 { + width: 57.6% !important; +} + +.tbl_add tbody tr:first-child td, .tbl_add tbody tr:first-child th { + border-top: none; +} + +.tbl_add tbody tr td { + border-left: 1px dashed #eee; + border-top: 1px solid #ddd; + padding: 10px; +} +.tbl_add tbody tr th { + text-align: center; +} + + +.tbl_add tr td p input { + margin-bottom: 4px; +} + +.tbl_add tr td p:last-child input { + margin-bottom: 0; +} + +.tbl_add .search > button[type="button"] { + padding: 0 8px 0 8px; + height: 30px; + border: 1px solid #666; + border-radius: 3px; + background: #666; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #fff; + cursor: pointer; +} + + +/* Styles for table_listveiw +-----------------------------------------------------------*/ + +.tbl_listview { + border-bottom: 1px solid #8e8e8e; + border-top: 2px solid #2d2d2d; +} + +.tbl_listview thead tr th { + background-color: #f8f8f8; + padding: 13px 10px; + border-left: 1px solid #dcdcdc; + text-align: center; + border-bottom: 0px; +} + +.tbl_listview thead tr th:first-child { + border-left: 0; +} + +.tbl_listview thead tr th:last-child { + border-right: 0; +} + +.tbl_listview tbody tr td:first-child { + border-left: 0; +} + +.tbl_listview tbody tr td:last-child { + border-right: 0; +} + +.tbl_listview tbody tr td { + font-weight: 500; + padding: 13px 8px; + border-top: 1px solid #dcdcdc; + border-left: 1px solid #dcdcdc; +} + +.tbl_listview tbody tr td ul li { + padding: 2px 0; +} + +/* Styles tbl_listview2 +-----------------------------------------------------------*/ + +.tbl_listview2 { + border-bottom: 1px solid #8e8e8e; + border-top: 2px solid #2d2d2d; +} + +.tbl_listview2 thead tr th { + background-color: #f8f8f8; + padding: 10px 8px; + border-left: 1px solid #dcdcdc; + border-bottom: 1px solid #dcdcdc; + text-align: center; +} + +.tbl_listview2 thead tr:first-child th:first-child { + border-left: 0; +} + +.tbl_listview2 tbody tr td:first-child { + border-left: 0; +} + +.tbl_listview2 tbody tr:first-child td { + border-top: 0 !important; +} + +.tbl_listview2 tbody tr td { + font-weight: 500; + padding: 13px 8px; + border-top: 1px solid #dcdcdc; + border-left: 1px solid #dcdcdc; +} + +.pageinfo .left2 { + float: left; +} +.pageinfo .left2 > li > a { + border: 1px solid #557799; + display: block; + width: 80px; + height: 34px; + color: #fff; + line-height: 34px; + text-align: center; +} + +.order { + cursor: pointer; +} + + +/* Styles tbl_listview3 +-----------------------------------------------------------*/ + +.tbl_listview3 { + width: 1600px !important; +} + +.tbl_listview3 { + border-bottom: 1px solid #8e8e8e; + border-top: 2px solid #2d2d2d; +} + +.tbl_listview3 thead tr th { + padding: 8px 10px; + background-color: #f8f8f8; + border-left: 1px solid #dcdcdc; + border-bottom: 1px solid #dcdcdc; + text-align: center; +} + +.tbl_listview3 thead tr:first-child th:first-child { + border-left: 0; +} + +.tbl_listview3 tbody tr td:first-child { + border-left: 0; + padding: 6px 8px; +} + +.tbl_listview3 tbody tr:first-child td { + border-top: 0 !important; +} + +.tbl_listview3 tbody tr td { + padding: 6px 2px; + font-weight: 500; + border-top: 1px solid #dcdcdc; + border-left: 1px solid #dcdcdc; +} + +.tbl_listview3 tbody tr:last-child td { + background-color: #f7f7f7; + font-weight:bold +} + + +/* Styles tbl_list3 +-----------------------------------------------------------*/ + +.tbl_list3 { + border-bottom: 1px solid #ddd; + border-top: 2px solid #29559f; +} + +.tbl_list3 thead th { + padding: 6px 4px; + background-color: #fff; + border-bottom: 1px solid #ddd; + border-right: 1px dashed #eee; + border-top: 1px solid #eee; + text-align: center; + color: #555; +} + +.tbl_list3 thead th:last-child { + border-right: none; +} + +.tbl_list3_col { + border-bottom: none !important; +} + +.tbl_list3_l { + text-align: left; +} + + + +.tbl_list3 tbody td { + word-break: break-all; +} + +.tbl_list3 tbody td { + padding: 13px 4px; + border-bottom: 1px dotted #dcdcdc; +} + +.tbl_list3 tbody tr:last-child td { + border-bottom: 0; +} + +.tbl_list3 tbody tr:last-child td { + border-bottom: 0; +} + +.tbl_list3 tbody td a { + color: #333; +} + +.tbl_list3 tbody td a:hover { + color: #333; + text-decoration: underline; + font-weight: bold; +} + + +.tbl_list tbody td a:hover { + color: #333; + text-decoration: underline; + font-weight: bold; +} + + +/* ui-widget input resset 사용자 수정 +-----------------------------------------------------------*/ +#divCmmnMemberEditPopup .tbl_add { + margin-bottom: 0 !important; + border-top: 0 !important; +} + +.ui-widget-content { + border: 0 !important; +} + +.ui-dialog { + border: 1px solid #4a5057 !important; +} + +#ui-datepicker-div { + border: 1px solid #c5c5c5 !important; +} + +.ui-dialog .ui-dialog-titlebar-close { + margin: -10px 5px 0 0 !important; +} + +.ui-dialog-titlebar { + text-align: left !important; +} + +.ui-widget-overlay { + background: #000 !important; + opacity: .5 !important; +} + +.ui-corner-all { + border-radius: 0 !important; +} + +.ui-dialog { + padding: 0 !important; +} + +.ui-dialog-titlebar { + padding: 15px 14px !important; + background-color: #4272b2 !important; + font-size: 14px !important; + color: #fff !important; + border: 0 !important; +} + +.ui-dialog .ui-dialog-content { + padding: 0 !important; +} + +.ui-dialog .ui-dialog-buttonpane button { + padding: 0 10px !important; + line-height: 27px !important; + border: 1px solid #d7d7d7 !important; + border-radius: 3px !important; + background: #fff !important; + font-size: 13px !important; + font-weight: 700 !important; + text-align: center !important; + color: #333 !important; +} + +.ui-dialog .ui-dialog-buttonpane { + margin-top: 0 !important; +} + +.search > * { + vertical-align: middle; +} + +#largbox { + width: 100%; + height: 50px; + padding: 25px 10px 0; + background-color: #f5f5f5; +} + +.sect { + width: 100%; + height: 100px; + background-color: #f8f8f8; +} + +select { + /*margin: 35px 0 35px 13px;*/ + width: 200px; + height: 30px; + font-size: 14px; +} + +.charge { + margin: 25px 10px; + width: 280px; + border-top: 2px solid #29559f; + border-bottom: 1px solid #ccc; + /* background-color: pink; */ +} + +.charge ul li{ + padding: 5px 0; + border-bottom: 1px solid #ccc; +} + +.charge table tr th { + width: 500px; + height: 30px; + text-align: center; + border-bottom: 1px solid #eee; + /* background-color: red; */ +} + + + +.charge table tbody tr td { + height: 30px; +} + + + + +.all_input_info { + padding: 20px 0; + width: 100%; + /* background-color: orange; */ +} + +.all_input_info thead tr:nth-child(1) th{ + width: 100%; + border-top : 2px solid #29559f; +} + +.all_input_info thead tr:nth-child(1) td{ + width: 100%; + border-top : 2px solid #29559f; +} + +.all_input_info thead th { + border-bottom: 1px solid #eee; +} + +.all_input_info thead td { + border-bottom: 1px solid #eee; +} + +.all_input_info tbody td { + padding: 10px 20px; + border-bottom: 1px solid #eee; +} + +.all_input_info tbody th { + border-bottom: 1px solid #eee; + padding: 10px; +} + +.all_input_info thead tr td { + padding: 10px 20px; +} + +.all_input_info table tr { + border: 2px solid red; + height:35px; + +} + +.all_input_info table tr th { + text-align: center; + padding-right: 10px; + border-right: 1px dashed #eee; +} + +.all_input_info input[type="text"] { + width: 200px; + height: 20px; +} + +.all_input_info input[type="text"].topic{ + width: 500px; + height: 20px; +} + +.all_input_info input[type="button"]{ + margin-left: 5px; + width: 50px; + height: 25px; +} + +.all_input_info input[type="checkbox"]{ + margin-right: 5px; +} + +.all_input_info input[type="text"].text_area { + width: 100% +} + +#largbox2 { + width: 100%; + margin: 0 auto; + /* background-color: pink; */ +} + +.sect2 { + float: left; + width: 220px; + /* background-color: green; */ +} + +#largbox2 table thead tr th{ + padding: 10px 20px; + border-bottom: 1px solid #eee; + border-right: 1px dashed #eee +} + +#largbox2 table thead tr td { + padding: 10px 20px; + border-bottom: 1px solid #eee; +} + +#largbox2 table thead tr:first-child td { + border-top: 2px solid #29559f; +} + + +#largbox2 table thead tr:first-child th{ + border-top: 2px solid #29559f; +} + +#largbox2 table tbody tr td { + padding: 10px 5px; +} +#largbox2 table tbody input[type="button"] { + width: 100px; + height: 40px; + border: none; + background-color: #29559f; + color: #fff; + border-radius: 5px; + cursor: pointer; +} + + +#largbox3 { + width: 575px; + margin: 0 auto; + /* background-color: pink; */ +} + +#largbox3 table thead { + /* background-color: orange; */ +} +#largbox3 table thead tr th { + border-top: 2px solid #29559f; + border-bottom: 1px solid #eee; + border-right: 1px dashed #eee; + padding: 10px 20px; +} +#largbox3 table thead tr td { + border-top: 2px solid #29559f; + border-right: 1px dashed #eee; + border-bottom: 1px solid #eee; + padding: 10px 20px; +} +#largbox3 table thead tr td:last-child { + border-right: none; +} + +/*사용자 권한 설정*/ + +.fw600 { + font-weight: 600; +} + +.fw600:hover { + text-decoration: underline; +} +.admin_tbl { + width: 100%; + +} + +.admin_tbl table tr th { + border-top: 2px solid #29559f; + border-bottom: 1px solid #eee; + border-right: 1px dashed #eee; + padding: 13px 5px; + text-align: center; +} + +.admin_tbl table tr th:last-child { + border-right: none; +} + + +.admin_tbl table tr td { + padding: 13px 5px; + text-align: center; + border-bottom: 1px dotted #dcdcdc; +} + + + +.pad_tb8{ + padding: 8px 0; +} + +.admin_bdr { + border-right: 1px dashed #eee; +} + +.admin_left{ + text-align: left; +} + +.affi_search { + /* background-color: pink; */ +} + +.affi_search table { + /* background-color: green; */ + padding: 10px; +} + +.affi_search table th, .affi_search table td { + padding: 13px 5px; + text-align: center; +} + +.affi_search table thead th { + border-top: 2px solid #29559f; + border-bottom: 1px solid #eee; +} + +.affi_search table thead th:nth-child(1) { + border-right: 1px dashed #eee; +} + +.affi_search table tbody th{ + border-right: 1px dashed #eee; + border-bottom: 1px solid #eee; +} + +.affi_search table tbody td { + border-bottom: 1px solid #eee; + border-right: 1px dashed #eee; +} + +.affi_search table tbody tr td:last-child { + border-right: none; +} + +.affi_search table input[type="button"] { + width: 50px; + height: 30px; + margin: 0 10px; + border: none; + background-color: #29559f; + color: #fafafa; + border-radius: 4px; + cursor: pointer; +} + +#notice_update { + width: 100%; +} + +#notice_update table { + width: 100%; +} + + +#notice_update table tr th { + padding: 13px 5px; +} + +.pop_size { + display: block; +} + +.pop_size:hover { + text-decoration: underline; +} + +.registered { + float: right; + width: 70px; + height: 30px; + line-height: 30px; + text-align: center; + border-radius: 15px; + background-color: #29559f; + + +} + +.registered a { + display: block; + color: #fff; + transition: .2s; +} + +.registered a:hover { + border-radius: 15px; + background-color: #f8c12d; +} + + +.progress{ + height: 15px; + background-color: #29559f; +} + +.slt_option { + margin: 10px 0; +} + +.nation_title { + position: absolute; + top : -20px; + left : 0px; + width : 150px; + height : 50px; + text-align : left; +} + +.nation_title_name { + line-height: 50px!important; + font-size: 15px; + font-weight: 600; +} + +.clr_yellow { + color: #f8c12d; +} + +.clr_red { + color: red; +} + +.resultList li { + padding: 3px 0; + width: 100%; + *zoom : 1; +} + +.resultList li:after { + clear: both; + display: block; + content: ''; +} + +.resultList li .result_date { + float: left; + color: #ccc; +} + +.resultList li a { + float: left; + display: block; + width: 430px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.resultList li a:hover { + color: #ccc; +} + diff --git a/src/main/webapp/css/easyui/themes/angular.css b/src/main/webapp/css/easyui/themes/angular.css new file mode 100644 index 0000000..abcaeef --- /dev/null +++ b/src/main/webapp/css/easyui/themes/angular.css @@ -0,0 +1,629 @@ +*{ + box-sizing: border-box; +} +.f-row{ + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + position: relative; +} +.f-column{ + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + position: relative; +} +.f-inline-row{ + white-space: nowrap; + display: -webkit-inline-box; + display: -ms-inline-box; + display: inline-flex; + vertical-align: middle; + position: relative; + align-items: stretch; + -webkit-tap-highlight-color: transparent; +} +.f-content-center{ + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + -moz-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; +} +.f-full{ + -webkit-box-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} +.f-hide{ + display: none; +} +.f-order0{ + order: 0; +} +.f-order1{ + order: 1; +} +.f-order2{ + order: 2; +} +.f-order3{ + order: 3; +} +.f-order4{ + order: 4; +} +.f-order5{ + order: 5; +} +.f-order6{ + order: 6; +} +.f-order7{ + order: 7; +} +.f-order8{ + order: 8; +} +.f-noshrink{ + -webkit-flex-shrink: 0; + -moz-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.scroll-body{ + overflow: auto; + position: relative; +} + +.textbox-text{ + width: 100%; + overflow: hidden; +} +.textbox-addon{ + align-items: center; +} +.textbox-disabled>.textbox-addon .textbox-icon, +.textbox-readonly>.textbox-addon .textbox-icon{ + cursor: default; +} +.textbox-disabled>.textbox-addon .textbox-icon:hover, +.textbox-readonly>.textbox-addon .textbox-icon:hover{ + opacity: 0.6; + cursor: default; +} +.textbox-addon .textbox-icon{ + width: 26px; + height: 18px; +} + +.spinner .textbox-text{ + height: auto; +} +.spinner-button-left,.spinner-button-right{ + width: 26px; +} +.spinner-button-updown{ + width: 26px; +} +.spinner-button-top,.spinner-button-bottom{ + position: absolute; + width: 100%; + height: 26px; +} +.spinner-button-top{ + top: 0; +} +.spinner-button-bottom{ + top: auto; + bottom: 0; +} +.spinner-button{ + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.spinner-arrow{ + cursor: pointer; + opacity: 0.6; +} + +.textbox-disabled .spinner-arrow:hover, +.textbox-readonly .spinner-arrow:hover +{ + opacity: 0.6; + cursor: default; +} +.textbox-readonly .spinner-arrow .spinner-arrow-up:hover, +.textbox-disabled .spinner-arrow .spinner-arrow-up:hover, +.textbox-readonly .spinner-arrow .spinner-arrow-down:hover, +.textbox-disabled .spinner-arrow .spinner-arrow-down:hover +{ + cursor: default; +} + +.l-btn{ + width: 100%; +} +.l-btn-empty{ + height: 28px; +} +.l-btn-left{ + overflow: visible; +} +.m-btn .l-btn-left .m-btn-line{ + top: -100px; + width: 36px; + right: -20px; +} +eui-button-group eui-linkbutton.f-inline-row{ + margin-left: -1px; +} +eui-button-group .l-btn:hover{ + z-index: 99; +} +eui-button-group eui-linkbutton:not(:first-child):not(:last-child) .l-btn{ + border-radius: 0; +} +eui-button-group eui-linkbutton:first-child .l-btn{ + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +eui-button-group eui-linkbutton:last-child .l-btn{ + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.switchbutton-on,.switchbutton-off{ + position: absolute; + left: 0; + width: calc(100% - 15px); + height: 100%; +} +.switchbutton-on span,.switchbutton-off span,.switchbutton-handle span{ + height: 100%; +} +.switchbutton-on span{ + text-indent: -15px; +} +.switchbutton-off span{ + text-indent: 15px; +} +.switchbutton-off{ + left: calc(100% - 15px); +} +.switchbutton-handle{ + width: 30px; + left: auto; + right: 0; + z-index: 9; +} +.switchbutton-inner{ + transition: all 200ms ease-out; + overflow: visible; + position: absolute; + width: 100%; + top: -1px; + bottom: -1px; + left: calc(-100% + 30px); + right: auto; +} +.switchbutton-checked .switchbutton-inner{ + left: 0; +} +.draggable-reverting{ + transition: all 200ms ease-out; +} +.slider-h .slider-tip{ + transform: translateX(-50%); +} +.slider-h .slider-rulelabel span{ + transform: translateX(-50%); +} +.slider-v .slider-tip{ + margin-top: 0; + transform: translate(-100%,-50%); +} +.slider-v .slider-rulelabel span{ + transform: translateY(-50%); +} +.slider-v .slider-inner{ + height: auto; +} + + +.panel{ + position:relative; +} +.panel-title{ + height: 20px; + line-height: 20px; +} +.panel-footer-fixed{ + position:absolute; + width:100%; + bottom:0; +} +.window{ + position: absolute; +} +.window-mask{ + position: fixed; +} +.window .window-footer{ + top: 0; +} +.dialog-toolbar{ + border-width: 0 0 1px 0; +} +.dialog-button{ + border-width: 1px 0 0 0; + top: 0; +} + +.tabs{ + width: 100%; + height: auto; +} +.tabs-scrollable{ + transition: left 400ms, right 400ms; + position: absolute; + width: auto; + height: 100%; + left: 0; + top: 0; +} +.tabs li{ + display: inherit; +} +.tabs li a.tabs-inner{ + height: auto; + line-height: normal; + display: inherit; + overflow: hidden; +} +.tabs-title{ + display: inherit; + align-items: center; + line-height: normal; +} +.tabs-close{ + outline: none; +} +.tabs-scroller-left,.tabs-scroller-right{ + position: relative; + display: block; + width: 21px; + height: 100%; +} +.tabs-header-left .tabs li{ + right: -1px; +} +.tabs-header-left .tabs li,.tabs-header-right .tabs li, +.tabs-header-left .tabs li a.tabs-inner, +.tabs-header-right .tabs li a.tabs-inner{ + display: inherit; +} + +.combo-panel{ + position: absolute; + height: 200px; + z-index: 9999; +} +.combo-panel eui-virtual-scroll, +.combo-panel eui-datagrid{ + width: 100%; + height: 100%; +} +.combobox-item{ + padding: 6px 4px; + line-height: 20px; +} +.tagbox-labels{ + padding-bottom: 4px; +} +.tagbox-label{ + height: 20px; + line-height: 20px; +} +.tagbox .textbox-text{ + width: 50px; + max-width: 100%; + margin-top: 4px; + padding-top: 0; + padding-bottom: 0; + height: 20px; + line-height: 20px; +} + +.datagrid,eui-datagrid, +eui-datagrid-view,eui-datagrid-body, +eui-treegrid-view,eui-treegrid-body{ + overflow: hidden; +} +.datagrid-view,.datagrid-view1,.datagrid-view2{ + position: relative; +} +.datagrid-vbody{ + overflow: hidden; +} +.datagrid-view3{ + margin-left: -1px; +} +.datagrid-view3 .datagrid-body{ + overflow: hidden; +} +.datagrid-view3 .datagrid-body-inner{ + padding-bottom: 20px; +} +.datagrid-view3 .datagrid-header td, +.datagrid-view3 .datagrid-body td, +.datagrid-view3 .datagrid-footer td { + border-width: 0 0 1px 1px; +} +.datagrid-htable,.datagrid-btable,.datagrid-ftable{ + table-layout: fixed; + width: 100%; +} +.datagrid-htable{ + height: 100%; +} +.datagrid-header .datagrid-header, +.datagrid-footer .datagrid-header{ + border-width: 0 0 0 1px; +} +.datagrid-header-inner,.datagrid-footer-inner{ + overflow: hidden; +} +.datagrid-header-row, .datagrid-row{ + height: 32px; +} +.datagrid-cell{ + text-align: left; + height: auto; + font-size: inherit; +} +.datagrid-cell-group{ + text-align: center; +} +.datagrid .datagrid-pager{ + padding: 2px 4px; + display: inherit; +} +.datagrid-loading{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + justify-content: center; + align-items: center; +} +.datagrid-mask{ + display: block; +} +.datagrid-mask-msg{ + display: block; + position: static; + line-height: 36px; + height: 40px; + margin: 0; + padding: 0 5px 0 30px; + z-index: 9; +} +.datagrid-body .datagrid-td-group{ + border-left-color: transparent; + border-right-color: transparent; +} +.datagrid-group-expander{ + cursor: pointer; +} +.datagrid-row-expander{ + display: inline-block; + width: 16px; + height: 18px; + cursor: pointer; +} +.datagrid-group-title{ + align-self: center; + padding: 0 4px; + white-space: nowrap; + word-break: normal; + position: relative; +} +.datagrid-editable> .f-field, +.datagrid-editable> *{ + width: 100%; + height: 31px; +} +.datagrid-editable .textbox, .datagrid-editable .textbox-text{ + border-radius: 0; +} +.datagrid-filter-row .textbox{ + border-radius: 0; +} +.datagrid-filter-c{ + padding: 4px; + height: 38px; +} +.datagrid-filter-c> .f-field, +.datagrid-filter-c> *{ + height: 30px; +} +.datagrid-filter-c .datagrid-editable-input{ + width: 100%; +} +.datagrid-filter-btn{ + width: 30px; +} +.datagrid-filter-btn .textbox-icon{ + width: 28px; +} +.datagrid-filter-btn .textbox{ + background-color: transparent; +} +.datagrid-filter-btn-left{ + margin-right: 4px; +} +.datagrid-filter-btn-right{ + margin-left: 4px; +} + +eui-menu.menu-inline{ + position: relative; + display: inline; + margin: 0; + padding: 0; +} +eui-menu> .menu-container{ + position: relative; +} +.menu-container{ + position: absolute; + left: 0; + top: 0; + min-width: 200px; +} +.menu{ + overflow: visible; +} +.menu-shadow{ + width: 100%; + height: 100%; + left: 0; + top: 0; +} +.menu-item{ + overflow: visible; +} +.menu-text{ + height: 32px; + line-height: 32px; + float: none; +} +.menu-line{ + z-index: 9999999; + height: 100%; +} +.menu-active{ + z-index: 99999999; +} + +.progressbar-value{ + overflow: visible; +} + +.searchbox .textbox-button, +.searchbox .textbox-button:hover{ + position: inherit; +} + +.calendar-content{ + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; +} +.calendar-menu{ + position: absolute; + width: 100%; + height: 100%; +} +.calendar-menu-month-inner{ + position: relative; +} +.calendar-title span{ + position1: static; +} + +.f-field{ + width: 12em; + height: 30px; +} +eui-tagbox{ + width: 12em; + height: auto; + min-height: 30px; +} +eui-switchbutton{ + width: 70px; + height: 30px; +} +eui-radiobutton{ + width: 20px; + height: 20px; +} +eui-checkbox{ + width: 20px; + height: 20px; +} +eui-progressbar{ + height: 24px; +} +eui-pagination{ + height: 34px; + padding: 2px; +} +eui-layout{ + display: block; +} +.layout{ + height: 100%; +} +.layout-animate{ + transition: transform 400ms; +} +.layout-panel-north,.layout-panel-south{ + position: absolute; + width: 100%; + left: 0; + top: 0; +} +.layout-panel-south{ + top: auto; + bottom: 0; +} +.layout-panel-west,.layout-panel-east{ + position: absolute; + left: 0; + top: 0; + bottom: 0; +} +.layout-panel-east{ + left: auto; + right: 0; +} +.layout-panel-west.layout-collapsed{ + transform: translate3d(-100%, 0, 0); +} +.layout-panel-east.layout-collapsed{ + transform: translate3d(100%, 0, 0) +} +.layout-panel-north.layout-collapsed{ + transform: translate3d(0, -100%, 0) +} +.layout-panel-south.layout-collapsed{ + transform: translate3d(0, 100%, 0) +} diff --git a/src/main/webapp/css/easyui/themes/black/accordion.css b/src/main/webapp/css/easyui/themes/black/accordion.css new file mode 100644 index 0000000..b2dba52 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #3d3d3d; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #666; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #000; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #3d3d3d; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #666; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #000; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #3d3d3d; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #666; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/black/calendar.css b/src/main/webapp/css/easyui/themes/black/calendar.css new file mode 100644 index 0000000..eed5a4b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/black/checkbox.css b/src/main/webapp/css/easyui/themes/black/checkbox.css new file mode 100644 index 0000000..e84e80d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #00458a; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #00458a; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/black/combo.css b/src/main/webapp/css/easyui/themes/black/combo.css new file mode 100644 index 0000000..0798ce1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} +.combo-arrow:hover { + background-color: #777; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/black/combobox.css b/src/main/webapp/css/easyui/themes/black/combobox.css new file mode 100644 index 0000000..6415d08 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/black/datagrid.css b/src/main/webapp/css/easyui/themes/black/datagrid.css new file mode 100644 index 0000000..376206d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/datagrid.css @@ -0,0 +1,291 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #000; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/black/datalist.css b/src/main/webapp/css/easyui/themes/black/datalist.css new file mode 100644 index 0000000..94dd67e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #444; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #fff; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.m-list li>a:hover { + background: #777; + color: #fff; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/black/datebox.css b/src/main/webapp/css/easyui/themes/black/datebox.css new file mode 100644 index 0000000..ae25037 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/black/dialog.css b/src/main/webapp/css/easyui/themes/black/dialog.css new file mode 100644 index 0000000..4a6f36e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #000 #000 #222 #000; +} +.dialog-button { + border-color: #222 #000 #000 #000; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #555; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/black/easyui.css b/src/main/webapp/css/easyui/themes/black/easyui.css new file mode 100644 index 0000000..06b0f50 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/easyui.css @@ -0,0 +1,3358 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #777; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #000; +} +.panel-header { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.panel-body { + background-color: #666; + color: #fff; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #fff; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #000; + overflow: hidden; + background: #555; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #0052A3; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #3d3d3d; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #666; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #000; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #3d3d3d; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #666; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #000; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #3d3d3d; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #666; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #000; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} +.window .panel-footer { + border: 1px solid #000; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #000 #000 #222 #000; +} +.dialog-button { + border-color: #222 #000 #000 #000; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #555; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #fff; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #555; + padding: 0; +} +.l-btn-plain:hover { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #000; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #000; +} +.textbox { + position: relative; + border: 1px solid #000; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #000000; + -moz-box-shadow: 0 0 3px 0 #000; + -webkit-box-shadow: 0 0 3px 0 #000; + box-shadow: 0 0 3px 0 #000; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} +.combo-arrow:hover { + background-color: #777; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #0052A3; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + color: #fff; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0052A3; + color: #fff; + filter: none; + border-color: #000; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #000; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #0052A3; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #444; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #fff; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.m-list li>a:hover { + background: #777; + color: #fff; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #0052A3; + color: #fff; + border: 1px solid #00458a; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #3d3d3d; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #fff; + outline-style: none; + background-color: #3d3d3d; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #777; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #777; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #3d3d3d; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #3d3d3d; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #3d3d3d; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0052A3; + color: #fff; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #3d3d3d; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #000; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #000; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #0052A3; + color: #fff; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #555; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0052A3; + color: #fff; +} +.switchbutton-off { + background-color: #666; + color: #fff; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #666; + color: #fff; + border: 1px solid #555; + -moz-box-shadow: 0 0 3px 0 #555; + -webkit-box-shadow: 0 0 3px 0 #555; + box-shadow: 0 0 3px 0 #555; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #00458a; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #00458a; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #00458a; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #00458a; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/black/filebox.css b/src/main/webapp/css/easyui/themes/black/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/black/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/black/images/accordion_arrows.png new file mode 100644 index 0000000..45fd44a Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/blank.gif b/src/main/webapp/css/easyui/themes/black/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/black/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/black/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/black/images/combo_arrow.png new file mode 100644 index 0000000..ac58921 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/black/images/datagrid_icons.png new file mode 100644 index 0000000..7f19b93 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/black/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/black/images/layout_arrows.png new file mode 100644 index 0000000..19c611f Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/black/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/loading.gif b/src/main/webapp/css/easyui/themes/black/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/black/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/black/images/menu_arrows.png new file mode 100644 index 0000000..2a98494 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/messager_icons.png b/src/main/webapp/css/easyui/themes/black/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/black/images/pagination_icons.png new file mode 100644 index 0000000..b3315fa Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/panel_tools.png b/src/main/webapp/css/easyui/themes/black/images/panel_tools.png new file mode 100644 index 0000000..f97761e Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/black/images/passwordbox_close.png new file mode 100644 index 0000000..276b579 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/black/images/passwordbox_open.png new file mode 100644 index 0000000..0f25d53 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/black/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/slider_handle.png b/src/main/webapp/css/easyui/themes/black/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/black/images/spinner_arrows.png new file mode 100644 index 0000000..349d7d9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/black/images/tabs_icons.png new file mode 100644 index 0000000..732b123 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/black/images/tagbox_icons.png new file mode 100644 index 0000000..faddd10 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/tree_icons.png b/src/main/webapp/css/easyui/themes/black/images/tree_icons.png new file mode 100644 index 0000000..2b4fd20 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/black/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/black/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/black/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/black/layout.css b/src/main/webapp/css/easyui/themes/black/layout.css new file mode 100644 index 0000000..d1f9184 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} diff --git a/src/main/webapp/css/easyui/themes/black/linkbutton.css b/src/main/webapp/css/easyui/themes/black/linkbutton.css new file mode 100644 index 0000000..66d17f8 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/linkbutton.css @@ -0,0 +1,203 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #fff; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #555; + padding: 0; +} +.l-btn-plain:hover { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #000; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #000; +} diff --git a/src/main/webapp/css/easyui/themes/black/menu.css b/src/main/webapp/css/easyui/themes/black/menu.css new file mode 100644 index 0000000..0976c59 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/black/menubutton.css b/src/main/webapp/css/easyui/themes/black/menubutton.css new file mode 100644 index 0000000..55a2b5e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/black/messager.css b/src/main/webapp/css/easyui/themes/black/messager.css new file mode 100644 index 0000000..ca6438b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #000; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/black/numberbox.css b/src/main/webapp/css/easyui/themes/black/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/black/pagination.css b/src/main/webapp/css/easyui/themes/black/pagination.css new file mode 100644 index 0000000..2444b17 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/black/panel.css b/src/main/webapp/css/easyui/themes/black/panel.css new file mode 100644 index 0000000..9613332 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/panel.css @@ -0,0 +1,267 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #777; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #000; +} +.panel-header { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.panel-body { + background-color: #666; + color: #fff; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #fff; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #000; + overflow: hidden; + background: #555; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/black/passwordbox.css b/src/main/webapp/css/easyui/themes/black/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/black/progressbar.css b/src/main/webapp/css/easyui/themes/black/progressbar.css new file mode 100644 index 0000000..e89cb3a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0052A3; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/black/propertygrid.css b/src/main/webapp/css/easyui/themes/black/propertygrid.css new file mode 100644 index 0000000..871c585 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} diff --git a/src/main/webapp/css/easyui/themes/black/radiobutton.css b/src/main/webapp/css/easyui/themes/black/radiobutton.css new file mode 100644 index 0000000..a31bc36 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #00458a; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #00458a; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/black/searchbox.css b/src/main/webapp/css/easyui/themes/black/searchbox.css new file mode 100644 index 0000000..01f6697 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #3d3d3d; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/black/slider.css b/src/main/webapp/css/easyui/themes/black/slider.css new file mode 100644 index 0000000..22d9744 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/black/spinner.css b/src/main/webapp/css/easyui/themes/black/spinner.css new file mode 100644 index 0000000..9d80102 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #3d3d3d; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #fff; + outline-style: none; + background-color: #3d3d3d; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #777; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #777; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #3d3d3d; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #3d3d3d; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #3d3d3d; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/black/splitbutton.css b/src/main/webapp/css/easyui/themes/black/splitbutton.css new file mode 100644 index 0000000..b42e396 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/black/switchbutton.css b/src/main/webapp/css/easyui/themes/black/switchbutton.css new file mode 100644 index 0000000..0e78b56 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #555; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0052A3; + color: #fff; +} +.switchbutton-off { + background-color: #666; + color: #fff; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #666; + color: #fff; + border: 1px solid #555; + -moz-box-shadow: 0 0 3px 0 #555; + -webkit-box-shadow: 0 0 3px 0 #555; + box-shadow: 0 0 3px 0 #555; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/black/tabs.css b/src/main/webapp/css/easyui/themes/black/tabs.css new file mode 100644 index 0000000..65a465c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/tabs.css @@ -0,0 +1,413 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0052A3; + color: #fff; + filter: none; + border-color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/black/tagbox.css b/src/main/webapp/css/easyui/themes/black/tagbox.css new file mode 100644 index 0000000..e08ec87 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + color: #fff; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/black/textbox.css b/src/main/webapp/css/easyui/themes/black/textbox.css new file mode 100644 index 0000000..1d18ad9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #000; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #000000; + -moz-box-shadow: 0 0 3px 0 #000; + -webkit-box-shadow: 0 0 3px 0 #000; + box-shadow: 0 0 3px 0 #000; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} diff --git a/src/main/webapp/css/easyui/themes/black/tooltip.css b/src/main/webapp/css/easyui/themes/black/tooltip.css new file mode 100644 index 0000000..13e310d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} diff --git a/src/main/webapp/css/easyui/themes/black/tree.css b/src/main/webapp/css/easyui/themes/black/tree.css new file mode 100644 index 0000000..08e4849 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #000; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #0052A3; + color: #fff; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/black/validatebox.css b/src/main/webapp/css/easyui/themes/black/validatebox.css new file mode 100644 index 0000000..1fc3ad6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/black/window.css b/src/main/webapp/css/easyui/themes/black/window.css new file mode 100644 index 0000000..0369589 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/black/window.css @@ -0,0 +1,188 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} +.window .panel-footer { + border: 1px solid #000; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/accordion.css b/src/main/webapp/css/easyui/themes/bootstrap/accordion.css new file mode 100644 index 0000000..9d268c0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D4D4D4; +} +.accordion .accordion-header { + background: #F2F2F2; + filter: none; +} +.accordion .accordion-header-selected { + background: #0081c2; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #F2F2F2; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #D4D4D4; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #F2F2F2; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #D4D4D4; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #F2F2F2; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #D4D4D4; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/calendar.css b/src/main/webapp/css/easyui/themes/bootstrap/calendar.css new file mode 100644 index 0000000..b3c7495 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #808080; +} +.calendar-day { + color: #333; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D4D4D4; +} +.calendar { + border-color: #D4D4D4; +} +.calendar-header { + background: #F2F2F2; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F5F5F5; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e6e6e6; + color: #00438a; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #0081c2; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/checkbox.css b/src/main/webapp/css/easyui/themes/bootstrap/checkbox.css new file mode 100644 index 0000000..0edec67 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #0070a9; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #0070a9; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/combo.css b/src/main/webapp/css/easyui/themes/bootstrap/combo.css new file mode 100644 index 0000000..fc9030d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #F2F2F2; +} +.combo-arrow-hover { + background-color: #e6e6e6; +} +.combo-arrow:hover { + background-color: #e6e6e6; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/combobox.css b/src/main/webapp/css/easyui/themes/bootstrap/combobox.css new file mode 100644 index 0000000..f490811 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 12px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #e6e6e6; + color: #00438a; +} +.combobox-item-selected { + background-color: #0081c2; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/datagrid.css b/src/main/webapp/css/easyui/themes/bootstrap/datagrid.css new file mode 100644 index 0000000..8c67b17 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/datagrid.css @@ -0,0 +1,291 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #D4D4D4; + font-size: 12px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.datagrid-cell-rownumber { + color: #333; +} +.datagrid-resize-proxy { + background: #bbb; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D4D4D4; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F5F5F5; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #e6e6e6; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #333; + border-collapse: separate; +} +.datagrid-row-alt { + background: #F5F5F5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e6e6e6; + color: #00438a; + cursor: default; +} +.datagrid-row-selected { + background: #0081c2; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/datalist.css b/src/main/webapp/css/easyui/themes/bootstrap/datalist.css new file mode 100644 index 0000000..68e8df6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #F2F2F2; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #333; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #e6e6e6; + color: #00438a; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/datebox.css b/src/main/webapp/css/easyui/themes/bootstrap/datebox.css new file mode 100644 index 0000000..34e376f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F5F5F5; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/dialog.css b/src/main/webapp/css/easyui/themes/bootstrap/dialog.css new file mode 100644 index 0000000..b44497f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F5F5F5; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #D4D4D4 #D4D4D4 #e6e6e6 #D4D4D4; +} +.dialog-button { + border-color: #e6e6e6 #D4D4D4 #D4D4D4 #D4D4D4; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #F5F5F5; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/easyui.css b/src/main/webapp/css/easyui/themes/bootstrap/easyui.css new file mode 100644 index 0000000..47105ff --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/easyui.css @@ -0,0 +1,3377 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e6e6e6; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D4D4D4; +} +.panel-header { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #333; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #D4D4D4; + overflow: hidden; + background: #F5F5F5; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D4D4D4; +} +.accordion .accordion-header { + background: #F2F2F2; + filter: none; +} +.accordion .accordion-header-selected { + background: #0081c2; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #F2F2F2; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #D4D4D4; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #F2F2F2; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #D4D4D4; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #F2F2F2; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #D4D4D4; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D4D4D4; +} +.window { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.window-proxy { + border: 1px dashed #D4D4D4; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #D4D4D4; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F5F5F5; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #D4D4D4 #D4D4D4 #e6e6e6 #D4D4D4; +} +.dialog-button { + border-color: #e6e6e6 #D4D4D4 #D4D4D4 #D4D4D4; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #F5F5F5; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 12px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #f5f5f5; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ddd; + padding: 0; +} +.l-btn-plain:hover { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #f5f5f5; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} +.textbox { + position: relative; + border: 1px solid #D4D4D4; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 12px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #bbbbbb; + -moz-box-shadow: 0 0 3px 0 #D4D4D4; + -webkit-box-shadow: 0 0 3px 0 #D4D4D4; + box-shadow: 0 0 3px 0 #D4D4D4; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #F2F2F2; +} +.combo-arrow-hover { + background-color: #e6e6e6; +} +.combo-arrow:hover { + background-color: #e6e6e6; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 12px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #e6e6e6; + color: #00438a; +} +.combobox-item-selected { + background-color: #0081c2; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #e6e6e6; + color: #00438a; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bbb; +} +.layout-split-north { + border-bottom: 5px solid #eee; +} +.layout-split-south { + border-top: 5px solid #eee; +} +.layout-split-east { + border-left: 5px solid #eee; +} +.layout-split-west { + border-right: 5px solid #eee; +} +.layout-expand { + background-color: #F2F2F2; +} +.layout-expand-over { + background-color: #F2F2F2; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e6e6e6; + color: #00438a; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs li a.tabs-inner { + color: #777; + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #F2F2F2; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D4D4D4; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e6e6e6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0081c2; + color: #fff; + filter: none; + border-color: #D4D4D4; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #D4D4D4; + font-size: 12px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.datagrid-cell-rownumber { + color: #333; +} +.datagrid-resize-proxy { + background: #bbb; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D4D4D4; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F5F5F5; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #e6e6e6; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #333; + border-collapse: separate; +} +.datagrid-row-alt { + background: #F5F5F5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e6e6e6; + color: #00438a; + cursor: default; +} +.datagrid-row-selected { + background: #0081c2; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #e6e6e6; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #F2F2F2; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #e6e6e6; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #F2F2F2; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #F2F2F2; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #333; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #e6e6e6; + color: #00438a; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 12px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D4D4D4; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #808080; +} +.calendar-day { + color: #333; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D4D4D4; +} +.calendar { + border-color: #D4D4D4; +} +.calendar-header { + background: #F2F2F2; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F5F5F5; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e6e6e6; + color: #00438a; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #0081c2; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F5F5F5; +} +.datebox-button a { + color: #444; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #F2F2F2; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #F2F2F2; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #e6e6e6; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #e6e6e6; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #F2F2F2; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #F2F2F2; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #F2F2F2; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D4D4D4; +} +.progressbar-text { + color: #333; + font-size: 12px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0081c2; + color: #fff; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #F2F2F2; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D4D4D4; + background: #F2F2F2; +} +.slider-rule span { + border-color: #D4D4D4; +} +.slider-rulelabel span { + color: #333; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #e6e6e6; + color: #333; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ddd; + color: #00438a; + background: #e6e6e6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #bbb; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #bbb; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #D4D4D4; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #D4D4D4; + font-size: 12px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #333; + border-color: #D4D4D4; +} +.tree-node-hover { + background: #e6e6e6; + color: #00438a; +} +.tree-node-selected { + background: #0081c2; + color: #fff; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D4D4D4; + color: #333; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D4D4D4; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D4D4D4; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D4D4D4; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D4D4D4; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0081c2; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #333; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #333; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #0070a9; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #0070a9; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #0070a9; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #0070a9; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.tabs-panels { + border-color: transparent; +} +.tabs li a.tabs-inner { + border-color: transparent; + background: transparent; + filter: none; + color: #0088CC; +} +.menu-active { + background-color: #0081C2; + border-color: #0081C2; + color: #fff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/filebox.css b/src/main/webapp/css/easyui/themes/bootstrap/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/bootstrap/images/accordion_arrows.png new file mode 100644 index 0000000..720835f Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/blank.gif b/src/main/webapp/css/easyui/themes/bootstrap/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/bootstrap/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/bootstrap/images/combo_arrow.png new file mode 100644 index 0000000..2e59fb9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/datagrid_icons.png new file mode 100644 index 0000000..762d0ce Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/bootstrap/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/bootstrap/images/layout_arrows.png new file mode 100644 index 0000000..6f41654 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/bootstrap/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/loading.gif b/src/main/webapp/css/easyui/themes/bootstrap/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/bootstrap/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/messager_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/pagination_icons.png new file mode 100644 index 0000000..616f0bd Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/panel_tools.png b/src/main/webapp/css/easyui/themes/bootstrap/images/panel_tools.png new file mode 100644 index 0000000..fe682ef Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_close.png new file mode 100644 index 0000000..643c09d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_open.png new file mode 100644 index 0000000..d328891 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/bootstrap/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/slider_handle.png b/src/main/webapp/css/easyui/themes/bootstrap/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/bootstrap/images/spinner_arrows.png new file mode 100644 index 0000000..7c2df48 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/tabs_icons.png new file mode 100644 index 0000000..4d29966 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/tagbox_icons.png new file mode 100644 index 0000000..bd02e2d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/tree_icons.png b/src/main/webapp/css/easyui/themes/bootstrap/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/bootstrap/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/bootstrap/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/bootstrap/layout.css b/src/main/webapp/css/easyui/themes/bootstrap/layout.css new file mode 100644 index 0000000..f447246 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bbb; +} +.layout-split-north { + border-bottom: 5px solid #eee; +} +.layout-split-south { + border-top: 5px solid #eee; +} +.layout-split-east { + border-left: 5px solid #eee; +} +.layout-split-west { + border-right: 5px solid #eee; +} +.layout-expand { + background-color: #F2F2F2; +} +.layout-expand-over { + background-color: #F2F2F2; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/linkbutton.css b/src/main/webapp/css/easyui/themes/bootstrap/linkbutton.css new file mode 100644 index 0000000..1834b31 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/linkbutton.css @@ -0,0 +1,203 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 12px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #f5f5f5; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ddd; + padding: 0; +} +.l-btn-plain:hover { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #f5f5f5; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%); + background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/menu.css b/src/main/webapp/css/easyui/themes/bootstrap/menu.css new file mode 100644 index 0000000..d74908f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #e6e6e6; + color: #333; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ddd; + color: #00438a; + background: #e6e6e6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #333; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/menubutton.css b/src/main/webapp/css/easyui/themes/bootstrap/menubutton.css new file mode 100644 index 0000000..89ac235 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #e6e6e6; + color: #00438a; + border: 1px solid #ddd; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #bbb; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ddd; + background-color: #e6e6e6; + color: #00438a; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/messager.css b/src/main/webapp/css/easyui/themes/bootstrap/messager.css new file mode 100644 index 0000000..60bc491 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #D4D4D4; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/numberbox.css b/src/main/webapp/css/easyui/themes/bootstrap/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/bootstrap/pagination.css b/src/main/webapp/css/easyui/themes/bootstrap/pagination.css new file mode 100644 index 0000000..7cbe8e1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 12px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D4D4D4; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/panel.css b/src/main/webapp/css/easyui/themes/bootstrap/panel.css new file mode 100644 index 0000000..7c44cc3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/panel.css @@ -0,0 +1,267 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e6e6e6; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D4D4D4; +} +.panel-header { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #333; + font-size: 12px; +} +.panel-title { + font-size: 12px; + font-weight: bold; + color: #777; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #D4D4D4; + overflow: hidden; + background: #F5F5F5; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/passwordbox.css b/src/main/webapp/css/easyui/themes/bootstrap/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/progressbar.css b/src/main/webapp/css/easyui/themes/bootstrap/progressbar.css new file mode 100644 index 0000000..73f0de0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D4D4D4; +} +.progressbar-text { + color: #333; + font-size: 12px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0081c2; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/propertygrid.css b/src/main/webapp/css/easyui/themes/bootstrap/propertygrid.css new file mode 100644 index 0000000..4b37fa6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #e6e6e6; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #F2F2F2; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #e6e6e6; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #F2F2F2; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/radiobutton.css b/src/main/webapp/css/easyui/themes/bootstrap/radiobutton.css new file mode 100644 index 0000000..341e570 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #0070a9; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #0070a9; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/searchbox.css b/src/main/webapp/css/easyui/themes/bootstrap/searchbox.css new file mode 100644 index 0000000..bf615de --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #F2F2F2; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/slider.css b/src/main/webapp/css/easyui/themes/bootstrap/slider.css new file mode 100644 index 0000000..b58d8de --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D4D4D4; + background: #F2F2F2; +} +.slider-rule span { + border-color: #D4D4D4; +} +.slider-rulelabel span { + color: #333; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/spinner.css b/src/main/webapp/css/easyui/themes/bootstrap/spinner.css new file mode 100644 index 0000000..6a6e6fc --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #F2F2F2; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #F2F2F2; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #e6e6e6; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #e6e6e6; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #F2F2F2; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #F2F2F2; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #F2F2F2; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/splitbutton.css b/src/main/webapp/css/easyui/themes/bootstrap/splitbutton.css new file mode 100644 index 0000000..bf86453 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #bbb; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/switchbutton.css b/src/main/webapp/css/easyui/themes/bootstrap/switchbutton.css new file mode 100644 index 0000000..38803aa --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0081c2; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #333; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #333; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/tabs.css b/src/main/webapp/css/easyui/themes/bootstrap/tabs.css new file mode 100644 index 0000000..c06a4aa --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/tabs.css @@ -0,0 +1,413 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e6e6e6; + color: #00438a; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%); + background: linear-gradient(to right,#ffffff 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1); +} +.tabs li a.tabs-inner { + color: #777; + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #F2F2F2; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D4D4D4; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e6e6e6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0081c2; + color: #fff; + filter: none; + border-color: #D4D4D4; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/tagbox.css b/src/main/webapp/css/easyui/themes/bootstrap/tagbox.css new file mode 100644 index 0000000..7e98a0a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #e6e6e6; + color: #00438a; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/textbox.css b/src/main/webapp/css/easyui/themes/bootstrap/textbox.css new file mode 100644 index 0000000..a708ce3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #D4D4D4; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 12px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #bbbbbb; + -moz-box-shadow: 0 0 3px 0 #D4D4D4; + -webkit-box-shadow: 0 0 3px 0 #D4D4D4; + box-shadow: 0 0 3px 0 #D4D4D4; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/tooltip.css b/src/main/webapp/css/easyui/themes/bootstrap/tooltip.css new file mode 100644 index 0000000..ed9fe1c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D4D4D4; + color: #333; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D4D4D4; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D4D4D4; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D4D4D4; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D4D4D4; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/tree.css b/src/main/webapp/css/easyui/themes/bootstrap/tree.css new file mode 100644 index 0000000..87d2474 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #D4D4D4; + font-size: 12px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #333; + border-color: #D4D4D4; +} +.tree-node-hover { + background: #e6e6e6; + color: #00438a; +} +.tree-node-selected { + background: #0081c2; + color: #fff; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/validatebox.css b/src/main/webapp/css/easyui/themes/bootstrap/validatebox.css new file mode 100644 index 0000000..1fc3ad6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/bootstrap/window.css b/src/main/webapp/css/easyui/themes/bootstrap/window.css new file mode 100644 index 0000000..a544a4e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/bootstrap/window.css @@ -0,0 +1,188 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D4D4D4; +} +.window { + background-color: #F2F2F2; + background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%); + background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0); +} +.window-proxy { + border: 1px dashed #D4D4D4; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #D4D4D4; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/color.css b/src/main/webapp/css/easyui/themes/color.css new file mode 100644 index 0000000..bfb8ecb --- /dev/null +++ b/src/main/webapp/css/easyui/themes/color.css @@ -0,0 +1,210 @@ +.c1,.c1:hover,.c1>.panel-header{ + color: #fff; + border-color: #3c8b3c; + background: #4cae4c; + background: -webkit-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: -moz-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: -o-linear-gradient(top,#4cae4c 0,#449d44 100%); + background: linear-gradient(to bottom,#4cae4c 0,#449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cae4c,endColorstr=#449d44,GradientType=0); +} +a.c1:hover{ + background: #449d44; + filter: none; +} +.c1>.panel-body{ + border-color: #3c8b3c; +} +.c1>.dialog-toolbar,.c1>.dialog-button{ + border-left-color: #3c8b3c; + border-right-color: #3c8b3c; +} +.c1>.dialog-button{ + border-bottom-color: #3c8b3c; +} +.c2,.c2:hover,.c2>.panel-header{ + color: #fff; + border-color: #5f5f5f; + background: #747474; + background: -webkit-linear-gradient(top,#747474 0,#676767 100%); + background: -moz-linear-gradient(top,#747474 0,#676767 100%); + background: -o-linear-gradient(top,#747474 0,#676767 100%); + background: linear-gradient(to bottom,#747474 0,#676767 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#747474,endColorstr=#676767,GradientType=0); +} +a.c2:hover{ + background: #676767; + filter: none; +} +.c2>.panel-body{ + border-color: #5f5f5f; +} +.c2>.dialog-toolbar,.c2>.dialog-button{ + border-left-color: #5f5f5f; + border-right-color: #5f5f5f; +} +.c2>.dialog-button{ + border-bottom-color: #5f5f5f; +} +.c3,.c3:hover,.c3>.panel-header{ + color: #333; + border-color: #ff8080; + background: #ffb3b3; + background: -webkit-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: -moz-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: -o-linear-gradient(top,#ffb3b3 0,#ff9999 100%); + background: linear-gradient(to bottom,#ffb3b3 0,#ff9999 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffb3b3,endColorstr=#ff9999,GradientType=0); +} +a.c3:hover{ + background: #ff9999; + filter: none; +} +.c3>.panel-body{ + border-color: #ff8080; +} +.c3>.dialog-toolbar,.c3>.dialog-button{ + border-left-color: #ff8080; + border-right-color: #ff8080; +} +.c3>.dialog-button{ + border-bottom-color: #ff8080; +} +.c4,.c4:hover,.c4>.panel-header{ + color: #333; + border-color: #52d689; + background: #b8eecf; + background: -webkit-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: -moz-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: -o-linear-gradient(top,#b8eecf 0,#a4e9c1 100%); + background: linear-gradient(to bottom,#b8eecf 0,#a4e9c1 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#b8eecf,endColorstr=#a4e9c1,GradientType=0); +} +a.c4:hover{ + background: #a4e9c1; + filter: none; +} +.c4>.panel-body{ + border-color: #52d689; +} +.c4>.dialog-toolbar,.c4>.dialog-button{ + border-left-color: #52d689; + border-right-color: #52d689; +} +.c4>.dialog-button{ + border-bottom-color: #52d689; +} +.c5,.c5:hover,.c5>.panel-header{ + color: #fff; + border-color: #b52b27; + background: #d84f4b; + background: -webkit-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: -moz-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: -o-linear-gradient(top,#d84f4b 0,#c9302c 100%); + background: linear-gradient(to bottom,#d84f4b 0,#c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#d84f4b,endColorstr=#c9302c,GradientType=0); +} +a.c5:hover{ + background: #c9302c; + filter: none; +} +.c5>.panel-body{ + border-color: #b52b27; +} +.c5>.dialog-toolbar,.c5>.dialog-button{ + border-left-color: #b52b27; + border-right-color: #b52b27; +} +.c5>.dialog-button{ + border-bottom-color: #b52b27; +} +.c6,.c6:hover,.c6>.panel-header{ + color: #fff; + border-color: #1f637b; + background: #2984a4; + background: -webkit-linear-gradient(top,#2984a4 0,#24748f 100%); + background: -moz-linear-gradient(top,#2984a4 0,#24748f 100%); + background: -o-linear-gradient(top,#2984a4 0,#24748f 100%); + background: linear-gradient(to bottom,#2984a4 0,#24748f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#2984a4,endColorstr=#24748f,GradientType=0); +} +a.c6:hover{ + background: #24748f; + filter: none; +} +.c6>.panel-body{ + border-color: #1f637b; +} +.c6>.dialog-toolbar,.c6>.dialog-button{ + border-left-color: #1f637b; + border-right-color: #1f637b; +} +.c6>.dialog-button{ + border-bottom-color: #1f637b; +} +.c7,.c7:hover,.c7>.panel-header{ + color: #333; + border-color: #e68900; + background: #ffab2e; + background: -webkit-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: -moz-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: -o-linear-gradient(top,#ffab2e 0,#ff9900 100%); + background: linear-gradient(to bottom,#ffab2e 0,#ff9900 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffab2e,endColorstr=#ff9900,GradientType=0); +} +a.c7:hover{ + background: #ff9900; + filter: none; +} +.c7>.panel-body{ + border-color: #e68900; +} +.c7>.dialog-toolbar,.c7>.dialog-button{ + border-left-color: #e68900; + border-right-color: #e68900; +} +.c7>.dialog-button{ + border-bottom-color: #e68900; +} +.c8,.c8:hover,.c8>.panel-header{ + color: #fff; + border-color: #4b72a4; + background: #698cba; + background: -webkit-linear-gradient(top,#698cba 0,#577eb2 100%); + background: -moz-linear-gradient(top,#698cba 0,#577eb2 100%); + background: -o-linear-gradient(top,#698cba 0,#577eb2 100%); + background: linear-gradient(to bottom,#698cba 0,#577eb2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#698cba,endColorstr=#577eb2,GradientType=0); +} +a.c8:hover{ + background: #577eb2; + filter: none; +} +.c8>.panel-body{ + border-color: #4b72a4; +} +.c8>.dialog-toolbar,.c8>.dialog-button{ + border-left-color: #4b72a4; + border-right-color: #4b72a4; +} +.c8>.dialog-button{ + border-bottom-color: #4b72a4; +} +.c1>.panel-header>.panel-title,.c2>.panel-header>.panel-title, +.c5>.panel-header>.panel-title,.c6>.panel-header>.panel-title,.c8>.panel-header>.panel-title{ + color: #fff; +} +.c-plain{ + border-color: #fff; + background: #fff; +} +.c-plain>.panel-header, +.c-plain>.panel-body, +.c-plain>.dialog-button, +.c-plain>.dialog-toolbar{ + border-color: transparent; + background: transparent; +} +.c-raised{ + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); +} diff --git a/src/main/webapp/css/easyui/themes/default/accordion.css b/src/main/webapp/css/easyui/themes/default/accordion.css new file mode 100644 index 0000000..9d60531 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #95B8E7; +} +.accordion .accordion-header { + background: #E0ECFF; + filter: none; +} +.accordion .accordion-header-selected { + background: #ffe48d; +} +.accordion .accordion-header-selected .panel-title { + color: #000000; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #E0ECFF; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #95B8E7; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #E0ECFF; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #95B8E7; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #E0ECFF; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #95B8E7; +} diff --git a/src/main/webapp/css/easyui/themes/default/calendar.css b/src/main/webapp/css/easyui/themes/default/calendar.css new file mode 100644 index 0000000..f25a458 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #95B8E7; +} +.calendar { + border-color: #95B8E7; +} +.calendar-header { + background: #E0ECFF; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F4F4F4; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eaf2ff; + color: #000000; +} +.calendar-hover { + border: 1px solid #b7d2ff; + padding: 0; +} +.calendar-selected { + background-color: #ffe48d; + color: #000000; + border: 1px solid #ffab3f; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/default/checkbox.css b/src/main/webapp/css/easyui/themes/default/checkbox.css new file mode 100644 index 0000000..61c5351 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #ffab3f; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #ffab3f; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/default/combo.css b/src/main/webapp/css/easyui/themes/default/combo.css new file mode 100644 index 0000000..a516386 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #E0ECFF; +} +.combo-arrow-hover { + background-color: #eaf2ff; +} +.combo-arrow:hover { + background-color: #eaf2ff; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/default/combobox.css b/src/main/webapp/css/easyui/themes/default/combobox.css new file mode 100644 index 0000000..c315199 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eaf2ff; + color: #000000; +} +.combobox-item-selected { + background-color: #ffe48d; + color: #000000; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/default/datagrid.css b/src/main/webapp/css/easyui/themes/default/datagrid.css new file mode 100644 index 0000000..f86aa14 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/datagrid.css @@ -0,0 +1,291 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #95B8E7; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #efefef; + background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #aac5e7; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #95B8E7; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F4F4F4; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dddddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eaf2ff; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #ffe48d; + color: #000000; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/default/datalist.css b/src/main/webapp/css/easyui/themes/default/datalist.css new file mode 100644 index 0000000..eedd25b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #efefef; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #000000; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #eaf2ff; + color: #000000; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/default/datebox.css b/src/main/webapp/css/easyui/themes/default/datebox.css new file mode 100644 index 0000000..61093f0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F4F4F4; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/default/dialog.css b/src/main/webapp/css/easyui/themes/default/dialog.css new file mode 100644 index 0000000..ff55387 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F4F4F4; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #95B8E7 #95B8E7 #dddddd #95B8E7; +} +.dialog-button { + border-color: #dddddd #95B8E7 #95B8E7 #95B8E7; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #F4F4F4; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/default/easyui.css b/src/main/webapp/css/easyui/themes/default/easyui.css new file mode 100644 index 0000000..8cb9213 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/easyui.css @@ -0,0 +1,3358 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eaf2ff; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #95B8E7; +} +.panel-header { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #0E2D5F; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #95B8E7; + overflow: hidden; + background: #F4F4F4; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #95B8E7; +} +.accordion .accordion-header { + background: #E0ECFF; + filter: none; +} +.accordion .accordion-header-selected { + background: #ffe48d; +} +.accordion .accordion-header-selected .panel-title { + color: #000000; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #E0ECFF; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #95B8E7; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #E0ECFF; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #95B8E7; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #E0ECFF; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #95B8E7; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #95B8E7; +} +.window { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.window-proxy { + border: 1px dashed #95B8E7; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #95B8E7; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #F4F4F4; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #95B8E7 #95B8E7 #dddddd #95B8E7; +} +.dialog-button { + border-color: #dddddd #95B8E7 #95B8E7 #95B8E7; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #F4F4F4; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #b7d2ff; + padding: 0; +} +.l-btn-plain:hover { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} +.textbox { + position: relative; + border: 1px solid #95B8E7; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #6b9cde; + -moz-box-shadow: 0 0 3px 0 #95B8E7; + -webkit-box-shadow: 0 0 3px 0 #95B8E7; + box-shadow: 0 0 3px 0 #95B8E7; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #E0ECFF; +} +.combo-arrow-hover { + background-color: #eaf2ff; +} +.combo-arrow:hover { + background-color: #eaf2ff; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eaf2ff; + color: #000000; +} +.combobox-item-selected { + background-color: #ffe48d; + color: #000000; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #eaf2ff; + color: #000000; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #aac5e7; +} +.layout-split-north { + border-bottom: 5px solid #E6EEF8; +} +.layout-split-south { + border-top: 5px solid #E6EEF8; +} +.layout-split-east { + border-left: 5px solid #E6EEF8; +} +.layout-split-west { + border-right: 5px solid #E6EEF8; +} +.layout-expand { + background-color: #E0ECFF; +} +.layout-expand-over { + background-color: #E0ECFF; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eaf2ff; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #0E2D5F; + background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1); +} +.tabs li a.tabs-inner { + color: #0E2D5F; + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #E0ECFF; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #95B8E7; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eaf2ff; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #ffe48d; + color: #000000; + filter: none; + border-color: #95B8E7; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #95B8E7; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #efefef; + background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%); + background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #aac5e7; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #95B8E7; +} +.datagrid-toolbar, +.datagrid-pager { + background: #F4F4F4; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dddddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eaf2ff; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #ffe48d; + color: #000000; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dddddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #E0ECFF; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dddddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #E0ECFF; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #efefef; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #000000; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #eaf2ff; + color: #000000; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #95B8E7; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #95B8E7; +} +.calendar { + border-color: #95B8E7; +} +.calendar-header { + background: #E0ECFF; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #F4F4F4; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eaf2ff; + color: #000000; +} +.calendar-hover { + border: 1px solid #b7d2ff; + padding: 0; +} +.calendar-selected { + background-color: #ffe48d; + color: #000000; + border: 1px solid #ffab3f; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #F4F4F4; +} +.datebox-button a { + color: #444; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #E0ECFF; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #E0ECFF; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eaf2ff; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eaf2ff; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #E0ECFF; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #E0ECFF; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #E0ECFF; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #95B8E7; +} +.progressbar-text { + color: #000000; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #ffe48d; + color: #000000; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #E0ECFF; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #95B8E7; + background: #E0ECFF; +} +.slider-rule span { + border-color: #95B8E7; +} +.slider-rulelabel span { + color: #000000; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fafafa; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fafafa; +} +.menu-active { + border-color: #b7d2ff; + color: #000000; + background: #eaf2ff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #aac5e7; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #aac5e7; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #95B8E7; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #95B8E7; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #95B8E7; +} +.tree-node-hover { + background: #eaf2ff; + color: #000000; +} +.tree-node-selected { + background: #ffe48d; + color: #000000; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #95B8E7; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #95B8E7; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #95B8E7; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #95B8E7; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #95B8E7; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #ffe48d; + color: #000000; +} +.switchbutton-off { + background-color: #ffffff; + color: #000000; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #000000; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #ffab3f; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #ffab3f; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #ffab3f; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #ffab3f; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/default/filebox.css b/src/main/webapp/css/easyui/themes/default/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/default/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/default/images/accordion_arrows.png new file mode 100644 index 0000000..720835f Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/blank.gif b/src/main/webapp/css/easyui/themes/default/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/default/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/default/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/default/images/combo_arrow.png new file mode 100644 index 0000000..2e59fb9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/default/images/datagrid_icons.png new file mode 100644 index 0000000..762d0ce Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/default/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/default/images/layout_arrows.png new file mode 100644 index 0000000..6f41654 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/default/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/loading.gif b/src/main/webapp/css/easyui/themes/default/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/default/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/default/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/messager_icons.png b/src/main/webapp/css/easyui/themes/default/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/default/images/pagination_icons.png new file mode 100644 index 0000000..616f0bd Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/panel_tools.png b/src/main/webapp/css/easyui/themes/default/images/panel_tools.png new file mode 100644 index 0000000..19ecc94 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/default/images/passwordbox_close.png new file mode 100644 index 0000000..643c09d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/default/images/passwordbox_open.png new file mode 100644 index 0000000..d328891 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/default/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/slider_handle.png b/src/main/webapp/css/easyui/themes/default/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/default/images/spinner_arrows.png new file mode 100644 index 0000000..7c2df48 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/default/images/tabs_icons.png new file mode 100644 index 0000000..4d29966 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/default/images/tagbox_icons.png new file mode 100644 index 0000000..bd02e2d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/tree_icons.png b/src/main/webapp/css/easyui/themes/default/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/default/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/default/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/default/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/default/layout.css b/src/main/webapp/css/easyui/themes/default/layout.css new file mode 100644 index 0000000..6d5c3f5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #aac5e7; +} +.layout-split-north { + border-bottom: 5px solid #E6EEF8; +} +.layout-split-south { + border-top: 5px solid #E6EEF8; +} +.layout-split-east { + border-left: 5px solid #E6EEF8; +} +.layout-split-west { + border-right: 5px solid #E6EEF8; +} +.layout-expand { + background-color: #E0ECFF; +} +.layout-expand-over { + background-color: #E0ECFF; +} diff --git a/src/main/webapp/css/easyui/themes/default/linkbutton.css b/src/main/webapp/css/easyui/themes/default/linkbutton.css new file mode 100644 index 0000000..7b50e2d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/linkbutton.css @@ -0,0 +1,203 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #b7d2ff; + padding: 0; +} +.l-btn-plain:hover { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/default/menu.css b/src/main/webapp/css/easyui/themes/default/menu.css new file mode 100644 index 0000000..58350a9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fafafa; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fafafa; +} +.menu-active { + border-color: #b7d2ff; + color: #000000; + background: #eaf2ff; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/default/menubutton.css b/src/main/webapp/css/easyui/themes/default/menubutton.css new file mode 100644 index 0000000..3445bd5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eaf2ff; + color: #000000; + border: 1px solid #b7d2ff; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #aac5e7; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #b7d2ff; + background-color: #eaf2ff; + color: #000000; +} diff --git a/src/main/webapp/css/easyui/themes/default/messager.css b/src/main/webapp/css/easyui/themes/default/messager.css new file mode 100644 index 0000000..4794ced --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #95B8E7; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/default/numberbox.css b/src/main/webapp/css/easyui/themes/default/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/default/pagination.css b/src/main/webapp/css/easyui/themes/default/pagination.css new file mode 100644 index 0000000..bf3df22 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #95B8E7; +} diff --git a/src/main/webapp/css/easyui/themes/default/panel.css b/src/main/webapp/css/easyui/themes/default/panel.css new file mode 100644 index 0000000..c2ec522 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/panel.css @@ -0,0 +1,267 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eaf2ff; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #95B8E7; +} +.panel-header { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #0E2D5F; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #95B8E7; + overflow: hidden; + background: #F4F4F4; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/default/passwordbox.css b/src/main/webapp/css/easyui/themes/default/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/default/progressbar.css b/src/main/webapp/css/easyui/themes/default/progressbar.css new file mode 100644 index 0000000..9fbcb3a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #95B8E7; +} +.progressbar-text { + color: #000000; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #ffe48d; + color: #000000; +} diff --git a/src/main/webapp/css/easyui/themes/default/propertygrid.css b/src/main/webapp/css/easyui/themes/default/propertygrid.css new file mode 100644 index 0000000..3b6f419 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dddddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #E0ECFF; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dddddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #E0ECFF; +} diff --git a/src/main/webapp/css/easyui/themes/default/radiobutton.css b/src/main/webapp/css/easyui/themes/default/radiobutton.css new file mode 100644 index 0000000..82533c8 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #ffab3f; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #ffab3f; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/default/searchbox.css b/src/main/webapp/css/easyui/themes/default/searchbox.css new file mode 100644 index 0000000..ada5ce3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #E0ECFF; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/default/slider.css b/src/main/webapp/css/easyui/themes/default/slider.css new file mode 100644 index 0000000..8721832 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #95B8E7; + background: #E0ECFF; +} +.slider-rule span { + border-color: #95B8E7; +} +.slider-rulelabel span { + color: #000000; +} diff --git a/src/main/webapp/css/easyui/themes/default/spinner.css b/src/main/webapp/css/easyui/themes/default/spinner.css new file mode 100644 index 0000000..9e163f9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #E0ECFF; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #E0ECFF; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eaf2ff; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eaf2ff; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #E0ECFF; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #E0ECFF; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #E0ECFF; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/default/splitbutton.css b/src/main/webapp/css/easyui/themes/default/splitbutton.css new file mode 100644 index 0000000..86d6da5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #aac5e7; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/default/switchbutton.css b/src/main/webapp/css/easyui/themes/default/switchbutton.css new file mode 100644 index 0000000..4b5d4ad --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #ffe48d; + color: #000000; +} +.switchbutton-off { + background-color: #ffffff; + color: #000000; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #000000; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/default/tabs.css b/src/main/webapp/css/easyui/themes/default/tabs.css new file mode 100644 index 0000000..e3e97c7 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/tabs.css @@ -0,0 +1,413 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eaf2ff; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #0E2D5F; + background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%); + background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%); + background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1); +} +.tabs li a.tabs-inner { + color: #0E2D5F; + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #E0ECFF; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #95B8E7; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eaf2ff; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #ffe48d; + color: #000000; + filter: none; + border-color: #95B8E7; +} diff --git a/src/main/webapp/css/easyui/themes/default/tagbox.css b/src/main/webapp/css/easyui/themes/default/tagbox.css new file mode 100644 index 0000000..67d51a3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #eaf2ff; + color: #000000; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/default/textbox.css b/src/main/webapp/css/easyui/themes/default/textbox.css new file mode 100644 index 0000000..71b154a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #95B8E7; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #6b9cde; + -moz-box-shadow: 0 0 3px 0 #95B8E7; + -webkit-box-shadow: 0 0 3px 0 #95B8E7; + box-shadow: 0 0 3px 0 #95B8E7; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} diff --git a/src/main/webapp/css/easyui/themes/default/tooltip.css b/src/main/webapp/css/easyui/themes/default/tooltip.css new file mode 100644 index 0000000..8ce21b4 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #95B8E7; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #95B8E7; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #95B8E7; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #95B8E7; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #95B8E7; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/default/tree.css b/src/main/webapp/css/easyui/themes/default/tree.css new file mode 100644 index 0000000..4a1bce0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #95B8E7; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #95B8E7; +} +.tree-node-hover { + background: #eaf2ff; + color: #000000; +} +.tree-node-selected { + background: #ffe48d; + color: #000000; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/default/validatebox.css b/src/main/webapp/css/easyui/themes/default/validatebox.css new file mode 100644 index 0000000..1fc3ad6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/default/window.css b/src/main/webapp/css/easyui/themes/default/window.css new file mode 100644 index 0000000..25a4bee --- /dev/null +++ b/src/main/webapp/css/easyui/themes/default/window.css @@ -0,0 +1,188 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #95B8E7; +} +.window { + background-color: #E0ECFF; + background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%); + background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0); +} +.window-proxy { + border: 1px dashed #95B8E7; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #95B8E7; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/accordion.css b/src/main/webapp/css/easyui/themes/gray/accordion.css new file mode 100644 index 0000000..3226cb3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D3D3D3; +} +.accordion .accordion-header { + background: #f3f3f3; + filter: none; +} +.accordion .accordion-header-selected { + background: #0092DC; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #f3f3f3; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #D3D3D3; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #f3f3f3; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #D3D3D3; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #f3f3f3; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #D3D3D3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/calendar.css b/src/main/webapp/css/easyui/themes/gray/calendar.css new file mode 100644 index 0000000..c647dcd --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D3D3D3; +} +.calendar { + border-color: #D3D3D3; +} +.calendar-header { + background: #f3f3f3; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e2e2e2; + color: #000000; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #0092DC; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/gray/checkbox.css b/src/main/webapp/css/easyui/themes/gray/checkbox.css new file mode 100644 index 0000000..0edec67 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #0070a9; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #0070a9; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/combo.css b/src/main/webapp/css/easyui/themes/gray/combo.css new file mode 100644 index 0000000..6ebdf5e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #f3f3f3; +} +.combo-arrow-hover { + background-color: #e2e2e2; +} +.combo-arrow:hover { + background-color: #e2e2e2; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/gray/combobox.css b/src/main/webapp/css/easyui/themes/gray/combobox.css new file mode 100644 index 0000000..06613c1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #e2e2e2; + color: #000000; +} +.combobox-item-selected { + background-color: #0092DC; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/datagrid.css b/src/main/webapp/css/easyui/themes/gray/datagrid.css new file mode 100644 index 0000000..f5e39b4 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/datagrid.css @@ -0,0 +1,291 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #D3D3D3; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; + background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #bfbfbf; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D3D3D3; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e2e2e2; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #0092DC; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/gray/datalist.css b/src/main/webapp/css/easyui/themes/gray/datalist.css new file mode 100644 index 0000000..de149ef --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fafafa; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #000000; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #e2e2e2; + color: #000000; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/datebox.css b/src/main/webapp/css/easyui/themes/gray/datebox.css new file mode 100644 index 0000000..36281af --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/gray/dialog.css b/src/main/webapp/css/easyui/themes/gray/dialog.css new file mode 100644 index 0000000..2850ca1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #D3D3D3 #D3D3D3 #ddd #D3D3D3; +} +.dialog-button { + border-color: #ddd #D3D3D3 #D3D3D3 #D3D3D3; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/gray/easyui.css b/src/main/webapp/css/easyui/themes/gray/easyui.css new file mode 100644 index 0000000..96cace1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/easyui.css @@ -0,0 +1,3358 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e2e2e2; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D3D3D3; +} +.panel-header { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #575765; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #D3D3D3; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #D3D3D3; +} +.accordion .accordion-header { + background: #f3f3f3; + filter: none; +} +.accordion .accordion-header-selected { + background: #0092DC; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #f3f3f3; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #D3D3D3; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #f3f3f3; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #D3D3D3; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #f3f3f3; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #D3D3D3; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D3D3D3; +} +.window { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.window-proxy { + border: 1px dashed #D3D3D3; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #D3D3D3; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #D3D3D3 #D3D3D3 #ddd #D3D3D3; +} +.dialog-button { + border-color: #ddd #D3D3D3 #D3D3D3 #D3D3D3; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} +.textbox { + position: relative; + border: 1px solid #D3D3D3; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #bababa; + -moz-box-shadow: 0 0 3px 0 #D3D3D3; + -webkit-box-shadow: 0 0 3px 0 #D3D3D3; + box-shadow: 0 0 3px 0 #D3D3D3; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #f3f3f3; +} +.combo-arrow-hover { + background-color: #e2e2e2; +} +.combo-arrow:hover { + background-color: #e2e2e2; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #e2e2e2; + color: #000000; +} +.combobox-item-selected { + background-color: #0092DC; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #e2e2e2; + color: #000000; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bfbfbf; +} +.layout-split-north { + border-bottom: 5px solid #efefef; +} +.layout-split-south { + border-top: 5px solid #efefef; +} +.layout-split-east { + border-left: 5px solid #efefef; +} +.layout-split-west { + border-right: 5px solid #efefef; +} +.layout-expand { + background-color: #f3f3f3; +} +.layout-expand-over { + background-color: #f3f3f3; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e2e2e2; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #575765; + background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1); +} +.tabs li a.tabs-inner { + color: #575765; + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #f3f3f3; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D3D3D3; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e2e2e2; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0092DC; + color: #fff; + filter: none; + border-color: #D3D3D3; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #D3D3D3; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; + background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%); + background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0); +} +.datagrid-cell-rownumber { + color: #000000; +} +.datagrid-resize-proxy { + background: #bfbfbf; +} +.datagrid-mask { + background: #ccc; +} +.datagrid-mask-msg { + border-color: #D3D3D3; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ccc; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #000000; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #e2e2e2; + color: #000000; + cursor: default; +} +.datagrid-row-selected { + background: #0092DC; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f3f3f3; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f3f3f3; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fafafa; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #000000; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ccc; +} +.m-list li>a:hover { + background: #e2e2e2; + color: #000000; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D3D3D3; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #4d4d4d; +} +.calendar-day { + color: #000000; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #D3D3D3; +} +.calendar { + border-color: #D3D3D3; +} +.calendar-header { + background: #f3f3f3; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #e2e2e2; + color: #000000; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #0092DC; + color: #fff; + border: 1px solid #0070a9; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #444; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #f3f3f3; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #f3f3f3; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #e2e2e2; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #e2e2e2; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #f3f3f3; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #f3f3f3; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #f3f3f3; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D3D3D3; +} +.progressbar-text { + color: #000000; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0092DC; + color: #fff; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #f3f3f3; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D3D3D3; + background: #f3f3f3; +} +.slider-rule span { + border-color: #D3D3D3; +} +.slider-rulelabel span { + color: #000000; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #f3f3f3; + border-color: #D3D3D3; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #f3f3f3; +} +.menu-active { + border-color: #ccc; + color: #000000; + background: #e2e2e2; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #bfbfbf; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #bfbfbf; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #D3D3D3; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #D3D3D3; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #D3D3D3; +} +.tree-node-hover { + background: #e2e2e2; + color: #000000; +} +.tree-node-selected { + background: #0092DC; + color: #fff; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D3D3D3; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D3D3D3; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D3D3D3; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D3D3D3; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D3D3D3; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0092DC; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #000000; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #000000; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #0070a9; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #0070a9; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #0070a9; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #0070a9; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/filebox.css b/src/main/webapp/css/easyui/themes/gray/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/gray/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/gray/images/accordion_arrows.png new file mode 100644 index 0000000..a0b8769 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/blank.gif b/src/main/webapp/css/easyui/themes/gray/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/gray/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/gray/images/combo_arrow.png new file mode 100644 index 0000000..04f4ba0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/gray/images/datagrid_icons.png new file mode 100644 index 0000000..66b8343 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/gray/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/gray/images/layout_arrows.png new file mode 100644 index 0000000..bf7929f Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/gray/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/loading.gif b/src/main/webapp/css/easyui/themes/gray/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/gray/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/messager_icons.png b/src/main/webapp/css/easyui/themes/gray/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/gray/images/pagination_icons.png new file mode 100644 index 0000000..e0f1b07 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/panel_tools.png b/src/main/webapp/css/easyui/themes/gray/images/panel_tools.png new file mode 100644 index 0000000..f33f8c9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/gray/images/passwordbox_close.png new file mode 100644 index 0000000..276b579 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/gray/images/passwordbox_open.png new file mode 100644 index 0000000..0f25d53 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/gray/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/slider_handle.png b/src/main/webapp/css/easyui/themes/gray/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/gray/images/spinner_arrows.png new file mode 100644 index 0000000..b1773c2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/gray/images/tabs_icons.png new file mode 100644 index 0000000..dfa10f7 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/gray/images/tagbox_icons.png new file mode 100644 index 0000000..8ec6436 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/tree_icons.png b/src/main/webapp/css/easyui/themes/gray/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/gray/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/gray/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/gray/layout.css b/src/main/webapp/css/easyui/themes/gray/layout.css new file mode 100644 index 0000000..2321dfc --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #bfbfbf; +} +.layout-split-north { + border-bottom: 5px solid #efefef; +} +.layout-split-south { + border-top: 5px solid #efefef; +} +.layout-split-east { + border-left: 5px solid #efefef; +} +.layout-split-west { + border-right: 5px solid #efefef; +} +.layout-expand { + background-color: #f3f3f3; +} +.layout-expand-over { + background-color: #f3f3f3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/linkbutton.css b/src/main/webapp/css/easyui/themes/gray/linkbutton.css new file mode 100644 index 0000000..5174f83 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/linkbutton.css @@ -0,0 +1,203 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #444; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #bbb; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #444; + background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%); + background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/gray/menu.css b/src/main/webapp/css/easyui/themes/gray/menu.css new file mode 100644 index 0000000..896b1f4 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ccc; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #f3f3f3; + border-color: #D3D3D3; + color: #444; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #f3f3f3; +} +.menu-active { + border-color: #ccc; + color: #000000; + background: #e2e2e2; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/gray/menubutton.css b/src/main/webapp/css/easyui/themes/gray/menubutton.css new file mode 100644 index 0000000..f5732d5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #e2e2e2; + color: #000000; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #bfbfbf; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #e2e2e2; + color: #000000; +} diff --git a/src/main/webapp/css/easyui/themes/gray/messager.css b/src/main/webapp/css/easyui/themes/gray/messager.css new file mode 100644 index 0000000..1f20816 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #D3D3D3; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/numberbox.css b/src/main/webapp/css/easyui/themes/gray/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/gray/pagination.css b/src/main/webapp/css/easyui/themes/gray/pagination.css new file mode 100644 index 0000000..7cce4b2 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ccc; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #D3D3D3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/panel.css b/src/main/webapp/css/easyui/themes/gray/panel.css new file mode 100644 index 0000000..5b41340 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/panel.css @@ -0,0 +1,267 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #e2e2e2; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #D3D3D3; +} +.panel-header { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.panel-body { + background-color: #ffffff; + color: #000000; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #575765; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #D3D3D3; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/gray/passwordbox.css b/src/main/webapp/css/easyui/themes/gray/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/gray/progressbar.css b/src/main/webapp/css/easyui/themes/gray/progressbar.css new file mode 100644 index 0000000..ca49e94 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #D3D3D3; +} +.progressbar-text { + color: #000000; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #0092DC; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/gray/propertygrid.css b/src/main/webapp/css/easyui/themes/gray/propertygrid.css new file mode 100644 index 0000000..e9f98ee --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f3f3f3; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f3f3f3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/radiobutton.css b/src/main/webapp/css/easyui/themes/gray/radiobutton.css new file mode 100644 index 0000000..341e570 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #0070a9; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #0070a9; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/searchbox.css b/src/main/webapp/css/easyui/themes/gray/searchbox.css new file mode 100644 index 0000000..7b15815 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #f3f3f3; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/gray/slider.css b/src/main/webapp/css/easyui/themes/gray/slider.css new file mode 100644 index 0000000..11c8b26 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #D3D3D3; + background: #f3f3f3; +} +.slider-rule span { + border-color: #D3D3D3; +} +.slider-rulelabel span { + color: #000000; +} diff --git a/src/main/webapp/css/easyui/themes/gray/spinner.css b/src/main/webapp/css/easyui/themes/gray/spinner.css new file mode 100644 index 0000000..391f227 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #f3f3f3; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #444; + outline-style: none; + background-color: #f3f3f3; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #e2e2e2; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #e2e2e2; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #f3f3f3; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #f3f3f3; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #f3f3f3; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/gray/splitbutton.css b/src/main/webapp/css/easyui/themes/gray/splitbutton.css new file mode 100644 index 0000000..bb2b6da --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #bfbfbf; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/gray/switchbutton.css b/src/main/webapp/css/easyui/themes/gray/switchbutton.css new file mode 100644 index 0000000..a5bf61f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #bbb; + border: 1px solid #bbb; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #0092DC; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #000000; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #000000; + border: 1px solid #bbb; + -moz-box-shadow: 0 0 3px 0 #bbb; + -webkit-box-shadow: 0 0 3px 0 #bbb; + box-shadow: 0 0 3px 0 #bbb; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/gray/tabs.css b/src/main/webapp/css/easyui/themes/gray/tabs.css new file mode 100644 index 0000000..2767fc0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/tabs.css @@ -0,0 +1,413 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #e2e2e2; + color: #000000; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #575765; + background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%); + background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%); + background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1); +} +.tabs li a.tabs-inner { + color: #575765; + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #f3f3f3; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #D3D3D3; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #e2e2e2; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #0092DC; + color: #fff; + filter: none; + border-color: #D3D3D3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/tagbox.css b/src/main/webapp/css/easyui/themes/gray/tagbox.css new file mode 100644 index 0000000..46cbd33 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #e2e2e2; + color: #000000; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/gray/textbox.css b/src/main/webapp/css/easyui/themes/gray/textbox.css new file mode 100644 index 0000000..2705ebc --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #D3D3D3; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #bababa; + -moz-box-shadow: 0 0 3px 0 #D3D3D3; + -webkit-box-shadow: 0 0 3px 0 #D3D3D3; + box-shadow: 0 0 3px 0 #D3D3D3; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} diff --git a/src/main/webapp/css/easyui/themes/gray/tooltip.css b/src/main/webapp/css/easyui/themes/gray/tooltip.css new file mode 100644 index 0000000..fee263f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #D3D3D3; + color: #000000; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #D3D3D3; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #D3D3D3; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #D3D3D3; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #D3D3D3; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/gray/tree.css b/src/main/webapp/css/easyui/themes/gray/tree.css new file mode 100644 index 0000000..1cc4f2d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #D3D3D3; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #000000; + border-color: #D3D3D3; +} +.tree-node-hover { + background: #e2e2e2; + color: #000000; +} +.tree-node-selected { + background: #0092DC; + color: #fff; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/gray/validatebox.css b/src/main/webapp/css/easyui/themes/gray/validatebox.css new file mode 100644 index 0000000..1fc3ad6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/gray/window.css b/src/main/webapp/css/easyui/themes/gray/window.css new file mode 100644 index 0000000..0e522cd --- /dev/null +++ b/src/main/webapp/css/easyui/themes/gray/window.css @@ -0,0 +1,188 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #D3D3D3; +} +.window { + background-color: #f3f3f3; + background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%); + background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0); +} +.window-proxy { + border: 1px dashed #D3D3D3; +} +.window-proxy-mask, +.window-mask { + background: #ccc; +} +.window .panel-footer { + border: 1px solid #D3D3D3; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/icon.css b/src/main/webapp/css/easyui/themes/icon.css new file mode 100644 index 0000000..ea9a997 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/icon.css @@ -0,0 +1,96 @@ +.icon-blank{ + background:url('/images/icons/blank.gif') no-repeat center center; +} +.icon-add{ + background:url('/images/icons/edit_add.png') no-repeat center center; +} +.icon-edit{ + background:url('/images/icons/pencil.png') no-repeat center center; +} +.icon-clear{ + background:url('/images/icons/clear.png') no-repeat center center; +} +.icon-remove{ + background:url('/images/icons/edit_remove.png') no-repeat center center; +} +.icon-save{ + background:url('/images/icons/filesave.png') no-repeat center center; +} +.icon-cut{ + background:url('/images/icons/cut.png') no-repeat center center; +} +.icon-ok{ + background:url('/images/icons/ok.png') no-repeat center center; +} +.icon-no{ + background:url('/images/icons/no.png') no-repeat center center; +} +.icon-cancel{ + background:url('/images/icons/cancel.png') no-repeat center center; +} +.icon-reload{ + background:url('/images/icons/reload.png') no-repeat center center; +} +.icon-search{ + background:url('/images/icons/search.png') no-repeat center center; +} +.icon-print{ + background:url('/images/icons/print.png') no-repeat center center; +} +.icon-help{ + background:url('/images/icons/help.png') no-repeat center center; +} +.icon-undo{ + background:url('/images/icons/undo.png') no-repeat center center; +} +.icon-redo{ + background:url('/images/icons/redo.png') no-repeat center center; +} +.icon-back{ + background:url('/images/icons/back.png') no-repeat center center; +} +.icon-sum{ + background:url('/images/icons/sum.png') no-repeat center center; +} +.icon-tip{ + background:url('/images/icons/tip.png') no-repeat center center; +} +.icon-filter{ + background:url('/images/icons/filter.png') no-repeat center center; +} +.icon-man{ + background:url('/images/icons/man.png') no-repeat center center; +} +.icon-lock{ + background:url('/images/icons/lock.png') no-repeat center center; +} +.icon-more{ + background:url('/images/icons/more.png') no-repeat center center; +} + + +.icon-mini-add{ + background:url('/images/icons/mini_add.png') no-repeat center center; +} +.icon-mini-edit{ + background:url('/images/icons/mini_edit.png') no-repeat center center; +} +.icon-mini-refresh{ + background:url('/images/icons/mini_refresh.png') no-repeat center center; +} + +.icon-large-picture{ + background:url('/images/icons/large_picture.png') no-repeat center center; +} +.icon-large-clipart{ + background:url('/images/icons/large_clipart.png') no-repeat center center; +} +.icon-large-shapes{ + background:url('/images/icons/large_shapes.png') no-repeat center center; +} +.icon-large-smartart{ + background:url('/images/icons/large_smartart.png') no-repeat center center; +} +.icon-large-chart{ + background:url('/images/icons/large_chart.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/icons/back.png b/src/main/webapp/css/easyui/themes/icons/back.png new file mode 100644 index 0000000..3fe8b17 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/back.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/blank.gif b/src/main/webapp/css/easyui/themes/icons/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/icons/cancel.png b/src/main/webapp/css/easyui/themes/icons/cancel.png new file mode 100644 index 0000000..a432b49 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/cancel.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/clear.png b/src/main/webapp/css/easyui/themes/icons/clear.png new file mode 100644 index 0000000..74b9af9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/clear.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/cut.png b/src/main/webapp/css/easyui/themes/icons/cut.png new file mode 100644 index 0000000..21fdb4d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/cut.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/edit_add.png b/src/main/webapp/css/easyui/themes/icons/edit_add.png new file mode 100644 index 0000000..e948508 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/edit_add.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/edit_remove.png b/src/main/webapp/css/easyui/themes/icons/edit_remove.png new file mode 100644 index 0000000..d555d92 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/edit_remove.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/filesave.png b/src/main/webapp/css/easyui/themes/icons/filesave.png new file mode 100644 index 0000000..fd0048d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/filesave.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/filter.png b/src/main/webapp/css/easyui/themes/icons/filter.png new file mode 100644 index 0000000..1fedf7a Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/filter.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/help.png b/src/main/webapp/css/easyui/themes/icons/help.png new file mode 100644 index 0000000..28a0f9e Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/help.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/large_chart.png b/src/main/webapp/css/easyui/themes/icons/large_chart.png new file mode 100644 index 0000000..527608e Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/large_chart.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/large_clipart.png b/src/main/webapp/css/easyui/themes/icons/large_clipart.png new file mode 100644 index 0000000..9c9c440 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/large_clipart.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/large_picture.png b/src/main/webapp/css/easyui/themes/icons/large_picture.png new file mode 100644 index 0000000..a005b0c Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/large_picture.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/large_shapes.png b/src/main/webapp/css/easyui/themes/icons/large_shapes.png new file mode 100644 index 0000000..90a0dca Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/large_shapes.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/large_smartart.png b/src/main/webapp/css/easyui/themes/icons/large_smartart.png new file mode 100644 index 0000000..b47da08 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/large_smartart.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/lock.png b/src/main/webapp/css/easyui/themes/icons/lock.png new file mode 100644 index 0000000..15bd643 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/lock.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/man.png b/src/main/webapp/css/easyui/themes/icons/man.png new file mode 100644 index 0000000..a8cafcb Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/man.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/mini_add.png b/src/main/webapp/css/easyui/themes/icons/mini_add.png new file mode 100644 index 0000000..fd82b92 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/mini_add.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/mini_edit.png b/src/main/webapp/css/easyui/themes/icons/mini_edit.png new file mode 100644 index 0000000..db9221a Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/mini_edit.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/mini_refresh.png b/src/main/webapp/css/easyui/themes/icons/mini_refresh.png new file mode 100644 index 0000000..6cdd016 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/mini_refresh.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/more.png b/src/main/webapp/css/easyui/themes/icons/more.png new file mode 100644 index 0000000..94922a2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/more.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/no.png b/src/main/webapp/css/easyui/themes/icons/no.png new file mode 100644 index 0000000..37a7c74 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/no.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/ok.png b/src/main/webapp/css/easyui/themes/icons/ok.png new file mode 100644 index 0000000..5b0f6a6 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/ok.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/pencil.png b/src/main/webapp/css/easyui/themes/icons/pencil.png new file mode 100644 index 0000000..5b8cc89 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/pencil.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/print.png b/src/main/webapp/css/easyui/themes/icons/print.png new file mode 100644 index 0000000..fdf67a1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/print.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/redo.png b/src/main/webapp/css/easyui/themes/icons/redo.png new file mode 100644 index 0000000..f1e45cf Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/redo.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/reload.png b/src/main/webapp/css/easyui/themes/icons/reload.png new file mode 100644 index 0000000..f51cab8 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/reload.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/search.png b/src/main/webapp/css/easyui/themes/icons/search.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/search.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/sum.png b/src/main/webapp/css/easyui/themes/icons/sum.png new file mode 100644 index 0000000..fd7b32e Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/sum.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/tip.png b/src/main/webapp/css/easyui/themes/icons/tip.png new file mode 100644 index 0000000..845e110 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/tip.png differ diff --git a/src/main/webapp/css/easyui/themes/icons/undo.png b/src/main/webapp/css/easyui/themes/icons/undo.png new file mode 100644 index 0000000..6129fa0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/icons/undo.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/accordion.css b/src/main/webapp/css/easyui/themes/material-teal/accordion.css new file mode 100644 index 0000000..5f104a4 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #dfdfdf; +} +.accordion .accordion-header { + background: #fafafa; + filter: none; +} +.accordion .accordion-header-selected { + background: #eee; +} +.accordion .accordion-header-selected .panel-title { + color: #39c; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #fafafa; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #dfdfdf; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #fafafa; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #dfdfdf; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #fafafa; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #dfdfdf; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/calendar.css b/src/main/webapp/css/easyui/themes/material-teal/calendar.css new file mode 100644 index 0000000..194f6f6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-body th, +.calendar-menu-month { + color: #8d8d8d; +} +.calendar-day { + color: #404040; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #dfdfdf; +} +.calendar { + border-color: #dfdfdf; +} +.calendar-header { + background: #fafafa; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eee; + color: #404040; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #eee; + color: #39c; + border: 1px solid #39c; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/checkbox.css b/src/main/webapp/css/easyui/themes/material-teal/checkbox.css new file mode 100644 index 0000000..8cd106b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #39c; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.checkbox-checked { + border: 0; + background: #39c; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/combo.css b/src/main/webapp/css/easyui/themes/material-teal/combo.css new file mode 100644 index 0000000..cbe460b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #fafafa; +} +.combo-arrow-hover { + background-color: #eee; +} +.combo-arrow:hover { + background-color: #eee; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/combobox.css b/src/main/webapp/css/easyui/themes/material-teal/combobox.css new file mode 100644 index 0000000..bacfda0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eee; + color: #404040; +} +.combobox-item-selected { + background-color: #eee; + color: #39c; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/datagrid.css b/src/main/webapp/css/easyui/themes/material-teal/datagrid.css new file mode 100644 index 0000000..5f73ebe --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/datagrid.css @@ -0,0 +1,285 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #dfdfdf; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fff; +} +.datagrid-cell-rownumber { + color: #404040; +} +.datagrid-resize-proxy { + background: #ccc; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #dfdfdf; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dfdfdf; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #dfdfdf; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #404040; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eee; + color: #404040; + cursor: default; +} +.datagrid-row-selected { + background: #eee; + color: #39c; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/datalist.css b/src/main/webapp/css/easyui/themes/material-teal/datalist.css new file mode 100644 index 0000000..3085482 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fff; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #dfdfdf; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #404040; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #dfdfdf; +} +.m-list li>a:hover { + background: #eee; + color: #404040; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/datebox.css b/src/main/webapp/css/easyui/themes/material-teal/datebox.css new file mode 100644 index 0000000..392b779 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/dialog.css b/src/main/webapp/css/easyui/themes/material-teal/dialog.css new file mode 100644 index 0000000..c962c42 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #dfdfdf #dfdfdf #dfdfdf #dfdfdf; +} +.dialog-button { + border-color: #dfdfdf #dfdfdf #dfdfdf #dfdfdf; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/easyui.css b/src/main/webapp/css/easyui/themes/material-teal/easyui.css new file mode 100644 index 0000000..7e02fdb --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/easyui.css @@ -0,0 +1,3477 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eee; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #dfdfdf; +} +.panel-header { + background-color: #fafafa; +} +.panel-body { + background-color: #ffffff; + color: #404040; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #404040; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #dfdfdf; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #dfdfdf; +} +.accordion .accordion-header { + background: #fafafa; + filter: none; +} +.accordion .accordion-header-selected { + background: #eee; +} +.accordion .accordion-header-selected .panel-title { + color: #39c; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #fafafa; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #dfdfdf; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #fafafa; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #dfdfdf; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #fafafa; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #dfdfdf; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #dfdfdf; +} +.window { + background-color: #fafafa; +} +.window-proxy { + border: 1px dashed #dfdfdf; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #dfdfdf; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #dfdfdf #dfdfdf #dfdfdf #dfdfdf; +} +.dialog-button { + border-color: #dfdfdf #dfdfdf #dfdfdf #dfdfdf; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #404040; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #dfdfdf; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #404040; +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #39c; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #39c; +} +.textbox { + position: relative; + border: 1px solid #dfdfdf; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c6c6c6; + -moz-box-shadow: 0 0 3px 0 #dfdfdf; + -webkit-box-shadow: 0 0 3px 0 #dfdfdf; + box-shadow: 0 0 3px 0 #dfdfdf; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #fafafa; +} +.combo-arrow-hover { + background-color: #eee; +} +.combo-arrow:hover { + background-color: #eee; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eee; + color: #404040; +} +.combobox-item-selected { + background-color: #eee; + color: #39c; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #eee; + color: #404040; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #ccc; +} +.layout-split-north { + border-bottom: 5px solid #ffffff; +} +.layout-split-south { + border-top: 5px solid #ffffff; +} +.layout-split-east { + border-left: 5px solid #ffffff; +} +.layout-split-west { + border-right: 5px solid #ffffff; +} +.layout-expand { + background-color: #fafafa; +} +.layout-expand-over { + background-color: #fafafa; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #fafafa url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #fafafa url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eee; + color: #404040; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #404040; +} +.tabs li a.tabs-inner { + color: #404040; + background-color: #fafafa; +} +.tabs-header, +.tabs-tool { + background-color: #fafafa; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #dfdfdf; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eee; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #eee; + color: #39c; + filter: none; + border-color: #dfdfdf; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #dfdfdf; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fff; +} +.datagrid-cell-rownumber { + color: #404040; +} +.datagrid-resize-proxy { + background: #ccc; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #dfdfdf; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #dfdfdf; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #dfdfdf; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #404040; + border-collapse: separate; +} +.datagrid-row-alt { + background: #fafafa; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eee; + color: #404040; + cursor: default; +} +.datagrid-row-selected { + background: #eee; + color: #39c; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dfdfdf; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #fafafa; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dfdfdf; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #fafafa; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fff; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #dfdfdf; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #404040; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #dfdfdf; +} +.m-list li>a:hover { + background: #eee; + color: #404040; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #dfdfdf; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-body th, +.calendar-menu-month { + color: #8d8d8d; +} +.calendar-day { + color: #404040; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #dfdfdf; +} +.calendar { + border-color: #dfdfdf; +} +.calendar-header { + background: #fafafa; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eee; + color: #404040; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #eee; + color: #39c; + border: 1px solid #39c; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #404040; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #fafafa; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #404040; + outline-style: none; + background-color: #fafafa; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eee; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eee; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #fafafa; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #fafafa; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #fafafa; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.progressbar { + border-color: #dfdfdf; +} +.progressbar-text { + color: #404040; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #eee; + color: #39c; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #fafafa; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 4px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #dfdfdf; + background: #fafafa; +} +.slider-rule span { + border-color: #dfdfdf; +} +.slider-rulelabel span { + color: #404040; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #dfdfdf; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #eee; + color: #404040; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ccc; + color: #404040; + background: #eee; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #eee; + color: #404040; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #dfdfdf; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #dfdfdf; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #404040; + border-color: #dfdfdf; +} +.tree-node-hover { + background: #eee; + color: #404040; +} +.tree-node-selected { + background: #eee; + color: #39c; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff; + color: #404040; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #dfdfdf; + color: #404040; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #dfdfdf; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #dfdfdf; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #dfdfdf; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #dfdfdf; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #dfdfdf; + border: 1px solid #dfdfdf; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-on { + background: #eee; + color: #39c; +} +.switchbutton-off { + background-color: #ffffff; + color: #404040; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #404040; + border: 1px solid #dfdfdf; + -moz-box-shadow: 0 0 3px 0 #dfdfdf; + -webkit-box-shadow: 0 0 3px 0 #dfdfdf; + box-shadow: 0 0 3px 0 #dfdfdf; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #39c; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #39c; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #39c; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.checkbox-checked { + border: 0; + background: #39c; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.textbox { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + border-top-color: transparent; + border-left-color: transparent; + border-right-color: transparent; +} +.textbox-focused { + border-color: #39c; + border-top-color: transparent; + border-left-color: transparent; + border-right-color: transparent; + -moz-box-shadow: 0 0 3px 0 transparent; + -webkit-box-shadow: 0 0 3px 0 transparent; + box-shadow: 0 0 3px 0 transparent; +} +.textbox .textbox-button { + background-color: transparent; +} +.textbox .textbox-button-left, +.textbox .textbox-button-right, +.textbox .textbox-button-top, +.textbox .textbox-button-bottom { + border-color: transparent; +} +.combo-arrow, +.combo-arrow:hover, +.spinner-arrow-up, +.spinner-arrow-up:hover, +.spinner-arrow-down, +.spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom { + background-color: transparent; +} +.datagrid-header .datagrid-cell, +.datagrid-cell-group { + color: #a6a6a6; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; +} +.datagrid-row-alt .datagrid-td-rownumber { + background-color: #fafafa; +} +.datagrid-row-over .datagrid-td-rownumber { + background-color: #eee; +} +.datagrid-row-selected .datagrid-td-rownumber { + background-color: #eee; +} +.datagrid-row-selected .datagrid-cell-rownumber { + color: #39c; +} +.datagrid-filter-row .textbox, +.datagrid-editable .textbox { + border: 1px solid #dfdfdf; +} +.tree-node { + border-left: 2px solid transparent; +} +.tree-node-selected { + border-left: 2px solid #39c; +} +.calendar-header, +.calendar-body th { + background: transparent; +} +.calendar-selected { + background: #39c; + color: #fff; + border-color: transparent; +} +.calendar-selected.calendar-saturday { + background: #00ee00; +} +.calendar-selected.calendar-sunday { + background: #CC2222; +} +.tabs-header, +.tabs-tool { + padding-top: 0; +} +.tabs li { + margin-bottom: 0; +} +.tabs li a.tabs-inner, +.tabs li a:hover.tabs-inner { + color: #404040; + background: transparent; + border-color: transparent; + border-left-width: 0; + border-right-width: 0; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tabs li.tabs-selected a.tabs-inner { + background: transparent; + border-color: transparent; + color: #39c; + border-bottom: 2px solid #39c; + border-radius: 0; + font-weight: normal; +} +.tabs-header-bottom .tabs li a.tabs-inner { + border-top: 2px solid transparent; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 2px solid #39c; + border-bottom: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + border-right: 2px solid transparent; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 2px solid #39c; + border-top-color: transparent; + border-bottom-color: transparent; +} +.tabs-header-right .tabs li a.tabs-inner { + border-left: 2px solid transparent; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 2px solid #39c; + border-top-color: transparent; + border-bottom-color: transparent; +} +.l-btn-selected, +.l-btn-selected:hover { + color: #fff; +} +.slider-handle { + background: #39c; + -moz-border-radius: 50% 50% 50% 50%; + -webkit-border-radius: 50% 50% 50% 50%; + border-radius: 50% 50% 50% 50%; +} +.menu-shadow, +.combo-p { + -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + filter: none; +} +.menu { + padding: 3px 0; + border: 0; +} +.menu-icon { + left: 4px; +} +.menu-active { + border-color: transparent; + color: #39c; + background: #eee; + border-radius: 0; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} +.window { + background-color: #fff; +} +.window-proxy { + border-color: #ccc; +} +.window-shadow { + -moz-box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + -webkit-box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + filter: none; +} +.window-mask { + background: #000; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/filebox.css b/src/main/webapp/css/easyui/themes/material-teal/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/material-teal/images/accordion_arrows.png new file mode 100644 index 0000000..b6368d6 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/blank.gif b/src/main/webapp/css/easyui/themes/material-teal/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/material-teal/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/material-teal/images/combo_arrow.png new file mode 100644 index 0000000..04f4ba0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/datagrid_icons.png new file mode 100644 index 0000000..66b8343 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/material-teal/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/material-teal/images/layout_arrows.png new file mode 100644 index 0000000..df66dcc Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/material-teal/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/loading.gif b/src/main/webapp/css/easyui/themes/material-teal/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/material-teal/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/messager_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/pagination_icons.png new file mode 100644 index 0000000..e0f1b07 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/panel_tools.png b/src/main/webapp/css/easyui/themes/material-teal/images/panel_tools.png new file mode 100644 index 0000000..f33f8c9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_close.png new file mode 100644 index 0000000..276b579 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_open.png new file mode 100644 index 0000000..0f25d53 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/material-teal/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/slider_handle.png b/src/main/webapp/css/easyui/themes/material-teal/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/material-teal/images/spinner_arrows.png new file mode 100644 index 0000000..b1773c2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/tabs_icons.png new file mode 100644 index 0000000..4dbacce Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/tagbox_icons.png new file mode 100644 index 0000000..8ec6436 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/tree_icons.png b/src/main/webapp/css/easyui/themes/material-teal/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/material-teal/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material-teal/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/material-teal/layout.css b/src/main/webapp/css/easyui/themes/material-teal/layout.css new file mode 100644 index 0000000..9f998ca --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #ccc; +} +.layout-split-north { + border-bottom: 5px solid #ffffff; +} +.layout-split-south { + border-top: 5px solid #ffffff; +} +.layout-split-east { + border-left: 5px solid #ffffff; +} +.layout-split-west { + border-right: 5px solid #ffffff; +} +.layout-expand { + background-color: #fafafa; +} +.layout-expand-over { + background-color: #fafafa; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/linkbutton.css b/src/main/webapp/css/easyui/themes/material-teal/linkbutton.css new file mode 100644 index 0000000..d6259e0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/linkbutton.css @@ -0,0 +1,191 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #404040; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #dfdfdf; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #404040; +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #39c; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #39c; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/menu.css b/src/main/webapp/css/easyui/themes/material-teal/menu.css new file mode 100644 index 0000000..7ab4fc9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #dfdfdf; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #eee; + color: #404040; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ccc; + color: #404040; + background: #eee; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/menubutton.css b/src/main/webapp/css/easyui/themes/material-teal/menubutton.css new file mode 100644 index 0000000..fee358b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #eee; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/messager.css b/src/main/webapp/css/easyui/themes/material-teal/messager.css new file mode 100644 index 0000000..0f3c00c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #dfdfdf; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/numberbox.css b/src/main/webapp/css/easyui/themes/material-teal/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/material-teal/pagination.css b/src/main/webapp/css/easyui/themes/material-teal/pagination.css new file mode 100644 index 0000000..80eb34e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #dfdfdf; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #dfdfdf; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/panel.css b/src/main/webapp/css/easyui/themes/material-teal/panel.css new file mode 100644 index 0000000..47dc68f --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/panel.css @@ -0,0 +1,261 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eee; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #dfdfdf; +} +.panel-header { + background-color: #fafafa; +} +.panel-body { + background-color: #ffffff; + color: #404040; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #404040; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #dfdfdf; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/passwordbox.css b/src/main/webapp/css/easyui/themes/material-teal/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/progressbar.css b/src/main/webapp/css/easyui/themes/material-teal/progressbar.css new file mode 100644 index 0000000..1acc690 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.progressbar { + border-color: #dfdfdf; +} +.progressbar-text { + color: #404040; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #eee; + color: #39c; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/propertygrid.css b/src/main/webapp/css/easyui/themes/material-teal/propertygrid.css new file mode 100644 index 0000000..03e222b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #dfdfdf; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #fafafa; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #dfdfdf; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #fafafa; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/radiobutton.css b/src/main/webapp/css/easyui/themes/material-teal/radiobutton.css new file mode 100644 index 0000000..8e439ee --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #39c; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #39c; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/searchbox.css b/src/main/webapp/css/easyui/themes/material-teal/searchbox.css new file mode 100644 index 0000000..fc3cb10 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #fafafa; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/slider.css b/src/main/webapp/css/easyui/themes/material-teal/slider.css new file mode 100644 index 0000000..7e4a91c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 4px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #dfdfdf; + background: #fafafa; +} +.slider-rule span { + border-color: #dfdfdf; +} +.slider-rulelabel span { + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/spinner.css b/src/main/webapp/css/easyui/themes/material-teal/spinner.css new file mode 100644 index 0000000..f81643c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #fafafa; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #404040; + outline-style: none; + background-color: #fafafa; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eee; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eee; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #fafafa; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #fafafa; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #fafafa; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/splitbutton.css b/src/main/webapp/css/easyui/themes/material-teal/splitbutton.css new file mode 100644 index 0000000..2ad86f7 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/switchbutton.css b/src/main/webapp/css/easyui/themes/material-teal/switchbutton.css new file mode 100644 index 0000000..701657a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #dfdfdf; + border: 1px solid #dfdfdf; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-on { + background: #eee; + color: #39c; +} +.switchbutton-off { + background-color: #ffffff; + color: #404040; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #404040; + border: 1px solid #dfdfdf; + -moz-box-shadow: 0 0 3px 0 #dfdfdf; + -webkit-box-shadow: 0 0 3px 0 #dfdfdf; + box-shadow: 0 0 3px 0 #dfdfdf; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/tabs.css b/src/main/webapp/css/easyui/themes/material-teal/tabs.css new file mode 100644 index 0000000..e438b0b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/tabs.css @@ -0,0 +1,377 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #fafafa url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #fafafa url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eee; + color: #404040; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #404040; +} +.tabs li a.tabs-inner { + color: #404040; + background-color: #fafafa; +} +.tabs-header, +.tabs-tool { + background-color: #fafafa; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #dfdfdf; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eee; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #eee; + color: #39c; + filter: none; + border-color: #dfdfdf; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/tagbox.css b/src/main/webapp/css/easyui/themes/material-teal/tagbox.css new file mode 100644 index 0000000..16ff414 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #eee; + color: #404040; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/textbox.css b/src/main/webapp/css/easyui/themes/material-teal/textbox.css new file mode 100644 index 0000000..60f5ce2 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #dfdfdf; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c6c6c6; + -moz-box-shadow: 0 0 3px 0 #dfdfdf; + -webkit-box-shadow: 0 0 3px 0 #dfdfdf; + box-shadow: 0 0 3px 0 #dfdfdf; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/tooltip.css b/src/main/webapp/css/easyui/themes/material-teal/tooltip.css new file mode 100644 index 0000000..8f1055d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #dfdfdf; + color: #404040; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #dfdfdf; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #dfdfdf; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #dfdfdf; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #dfdfdf; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/tree.css b/src/main/webapp/css/easyui/themes/material-teal/tree.css new file mode 100644 index 0000000..51d1ee0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #dfdfdf; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #404040; + border-color: #dfdfdf; +} +.tree-node-hover { + background: #eee; + color: #404040; +} +.tree-node-selected { + background: #eee; + color: #39c; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/validatebox.css b/src/main/webapp/css/easyui/themes/material-teal/validatebox.css new file mode 100644 index 0000000..5911752 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material-teal/window.css b/src/main/webapp/css/easyui/themes/material-teal/window.css new file mode 100644 index 0000000..542f071 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material-teal/window.css @@ -0,0 +1,182 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.window-shadow { + background: #ccc; + -moz-box-shadow: 2px 2px 3px #cccccc; + -webkit-box-shadow: 2px 2px 3px #cccccc; + box-shadow: 2px 2px 3px #cccccc; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #dfdfdf; +} +.window { + background-color: #fafafa; +} +.window-proxy { + border: 1px dashed #dfdfdf; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #dfdfdf; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/material/accordion.css b/src/main/webapp/css/easyui/themes/material/accordion.css new file mode 100644 index 0000000..51d0c70 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #f5f5f5; + filter: none; +} +.accordion .accordion-header-selected { + background: #00bbee; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #f5f5f5; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #ddd; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #f5f5f5; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #ddd; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #f5f5f5; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/material/calendar.css b/src/main/webapp/css/easyui/themes/material/calendar.css new file mode 100644 index 0000000..fb57ba8 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-body th, +.calendar-menu-month { + color: #8d8d8d; +} +.calendar-day { + color: #404040; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #f5f5f5; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eee; + color: #404040; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #00bbee; + color: #fff; + border: 1px solid #9cc8f7; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/material/checkbox.css b/src/main/webapp/css/easyui/themes/material/checkbox.css new file mode 100644 index 0000000..e0e19ac --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #9cc8f7; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.checkbox-checked { + border: 0; + background: #9cc8f7; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/material/combo.css b/src/main/webapp/css/easyui/themes/material/combo.css new file mode 100644 index 0000000..622d7c2 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #f5f5f5; +} +.combo-arrow-hover { + background-color: #eee; +} +.combo-arrow:hover { + background-color: #eee; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material/combobox.css b/src/main/webapp/css/easyui/themes/material/combobox.css new file mode 100644 index 0000000..619efd4 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eee; + color: #404040; +} +.combobox-item-selected { + background-color: #00bbee; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/material/datagrid.css b/src/main/webapp/css/easyui/themes/material/datagrid.css new file mode 100644 index 0000000..bbc719a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/datagrid.css @@ -0,0 +1,285 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #ddd; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; +} +.datagrid-cell-rownumber { + color: #404040; +} +.datagrid-resize-proxy { + background: #ccc; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #eee; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ebebeb; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #404040; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f9f9f9; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eee; + color: #404040; + cursor: default; +} +.datagrid-row-selected { + background: #00bbee; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/material/datalist.css b/src/main/webapp/css/easyui/themes/material/datalist.css new file mode 100644 index 0000000..27617f0 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fafafa; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ebebeb; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #404040; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ebebeb; +} +.m-list li>a:hover { + background: #eee; + color: #404040; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/material/datebox.css b/src/main/webapp/css/easyui/themes/material/datebox.css new file mode 100644 index 0000000..392b779 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material/dialog.css b/src/main/webapp/css/easyui/themes/material/dialog.css new file mode 100644 index 0000000..82a1bb8 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #ddd #ddd #eee #ddd; +} +.dialog-button { + border-color: #eee #ddd #ddd #ddd; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/material/easyui.css b/src/main/webapp/css/easyui/themes/material/easyui.css new file mode 100644 index 0000000..4a6d8f2 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/easyui.css @@ -0,0 +1,3367 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eee; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #f5f5f5; +} +.panel-body { + background-color: #ffffff; + color: #404040; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #000000; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #ddd; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #ffffff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #f5f5f5; + filter: none; +} +.accordion .accordion-header-selected { + background: #00bbee; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #f5f5f5; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #ddd; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #f5f5f5; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #ddd; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #f5f5f5; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #ddd; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.window-shadow { + background: #fafafa; + -moz-box-shadow: 2px 2px 3px #fafafa; + -webkit-box-shadow: 2px 2px 3px #fafafa; + box-shadow: 2px 2px 3px #fafafa; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #f5f5f5; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #ddd; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fafafa; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #ddd #ddd #eee #ddd; +} +.dialog-button { + border-color: #eee #ddd #ddd #ddd; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fafafa; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #404040; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #d9d9d9; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #404040; +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #00bbee; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #00bbee; +} +.textbox { + position: relative; + border: 1px solid #ddd; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c4c4c4; + -moz-box-shadow: 0 0 3px 0 #ddd; + -webkit-box-shadow: 0 0 3px 0 #ddd; + box-shadow: 0 0 3px 0 #ddd; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #ffffff; +} +.combo-arrow { + background-color: #f5f5f5; +} +.combo-arrow-hover { + background-color: #eee; +} +.combo-arrow:hover { + background-color: #eee; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #eee; + color: #404040; +} +.combobox-item-selected { + background-color: #00bbee; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #eee; + color: #404040; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #ccc; +} +.layout-split-north { + border-bottom: 5px solid #ffffff; +} +.layout-split-south { + border-top: 5px solid #ffffff; +} +.layout-split-east { + border-left: 5px solid #ffffff; +} +.layout-split-west { + border-right: 5px solid #ffffff; +} +.layout-expand { + background-color: #f5f5f5; +} +.layout-expand-over { + background-color: #f5f5f5; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #f5f5f5 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f5f5f5 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eee; + color: #404040; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #000000; +} +.tabs li a.tabs-inner { + color: #000000; + background-color: #f5f5f5; +} +.tabs-header, +.tabs-tool { + background-color: #f5f5f5; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eee; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #00bbee; + color: #fff; + filter: none; + border-color: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #ddd; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #ffffff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #fafafa; +} +.datagrid-cell-rownumber { + color: #404040; +} +.datagrid-resize-proxy { + background: #ccc; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fafafa; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #eee; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ebebeb; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #404040; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f9f9f9; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #eee; + color: #404040; + cursor: default; +} +.datagrid-row-selected { + background: #00bbee; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #eee; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f5f5f5; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #eee; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f5f5f5; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #fafafa; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ebebeb; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #404040; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ebebeb; +} +.m-list li>a:hover { + background: #eee; + color: #404040; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.calendar-body th, +.calendar-menu-month { + color: #8d8d8d; +} +.calendar-day { + color: #404040; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #f5f5f5; +} +.calendar-body, +.calendar-menu { + background: #ffffff; +} +.calendar-body th { + background: #fafafa; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #eee; + color: #404040; +} +.calendar-hover { + border: 1px solid #ccc; + padding: 0; +} +.calendar-selected { + background-color: #00bbee; + color: #fff; + border: 1px solid #9cc8f7; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fafafa; +} +.datebox-button a { + color: #404040; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #f5f5f5; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #404040; + outline-style: none; + background-color: #f5f5f5; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eee; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eee; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #f5f5f5; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #f5f5f5; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #f5f5f5; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #404040; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #00bbee; + color: #fff; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #f5f5f5; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 4px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #f5f5f5; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #404040; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #fafafa; + -moz-box-shadow: 2px 2px 3px #fafafa; + -webkit-box-shadow: 2px 2px 3px #fafafa; + box-shadow: 2px 2px 3px #fafafa; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #eee; + color: #404040; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ccc; + color: #404040; + background: #eee; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #eee; + color: #404040; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #ddd; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ddd; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #404040; + border-color: #ddd; +} +.tree-node-hover { + background: #eee; + color: #404040; +} +.tree-node-selected { + background: #00bbee; + color: #fff; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff; + color: #404040; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #ddd; + color: #404040; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #d9d9d9; + border: 1px solid #d9d9d9; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-on { + background: #00bbee; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #404040; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #404040; + border: 1px solid #d9d9d9; + -moz-box-shadow: 0 0 3px 0 #d9d9d9; + -webkit-box-shadow: 0 0 3px 0 #d9d9d9; + box-shadow: 0 0 3px 0 #d9d9d9; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #9cc8f7; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #9cc8f7; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #9cc8f7; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.checkbox-checked { + border: 0; + background: #9cc8f7; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.l-btn { + box-shadow: 0 1px 2px rgba(0,0,0,0.2), 0 1px 1px rgba(0,0,0,0.05); +} +.l-btn:active { + box-shadow: 0 6px 17px 0 rgba(235,235,235,0.3); +} +.l-btn-selected { + box-shadow: 0 1px 2px rgba(89,205,226,0.2), 0 1px 1px rgba(89,205,226,0.05); +} +.l-btn-plain, +.l-btn-disabled, +.l-btn-disabled:active, +.textbox-button { + box-shadow: none; +} +.l-btn-selected, +.l-btn-selected:hover { + background: #00bbee; + color: #fff; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #00bbee; +} +.m-btn-active, +.m-btn-plain-active, +.s-btn-active, +.s-btn-plain-active { + background: #00bbee; + color: #fff; +} +.menu-shadow, +.combo-p { + -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); + filter: none; +} +.menu-active { + border-color: transparent; + color: #fff; + background: #00bbee; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} +.window { + background-color: #fff; +} +.window-proxy { + border-color: #ccc; +} +.window-shadow { + -moz-box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + -webkit-box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + box-shadow: 0 7px 8px -4px rgba(0,0,0,0.2), 0 13px 19px 2px rgba(0,0,0,0.14), 0 5px 24px 4px rgba(0,0,0,0.12); + filter: none; +} +.window-mask { + background: #000; +} +.datagrid-header .datagrid-cell, +.datagrid-header .datagrid-cell-group { + color: #666; + font-weight: bold; + filter: alpha(opacity=80); + opacity: 0.80; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-style: solid; +} diff --git a/src/main/webapp/css/easyui/themes/material/filebox.css b/src/main/webapp/css/easyui/themes/material/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/material/images/accordion_arrows.png new file mode 100644 index 0000000..b6368d6 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/blank.gif b/src/main/webapp/css/easyui/themes/material/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/material/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/material/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/material/images/combo_arrow.png new file mode 100644 index 0000000..04f4ba0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/material/images/datagrid_icons.png new file mode 100644 index 0000000..66b8343 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/material/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/material/images/layout_arrows.png new file mode 100644 index 0000000..df66dcc Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/material/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/loading.gif b/src/main/webapp/css/easyui/themes/material/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/material/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/material/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/messager_icons.png b/src/main/webapp/css/easyui/themes/material/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/material/images/pagination_icons.png new file mode 100644 index 0000000..e0f1b07 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/panel_tools.png b/src/main/webapp/css/easyui/themes/material/images/panel_tools.png new file mode 100644 index 0000000..f33f8c9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/material/images/passwordbox_close.png new file mode 100644 index 0000000..276b579 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/material/images/passwordbox_open.png new file mode 100644 index 0000000..0f25d53 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/material/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/slider_handle.png b/src/main/webapp/css/easyui/themes/material/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/material/images/spinner_arrows.png new file mode 100644 index 0000000..b1773c2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/material/images/tabs_icons.png new file mode 100644 index 0000000..4dbacce Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/material/images/tagbox_icons.png new file mode 100644 index 0000000..8ec6436 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/tree_icons.png b/src/main/webapp/css/easyui/themes/material/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/material/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/material/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/material/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/material/layout.css b/src/main/webapp/css/easyui/themes/material/layout.css new file mode 100644 index 0000000..41ff29d --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #ccc; +} +.layout-split-north { + border-bottom: 5px solid #ffffff; +} +.layout-split-south { + border-top: 5px solid #ffffff; +} +.layout-split-east { + border-left: 5px solid #ffffff; +} +.layout-split-west { + border-right: 5px solid #ffffff; +} +.layout-expand { + background-color: #f5f5f5; +} +.layout-expand-over { + background-color: #f5f5f5; +} diff --git a/src/main/webapp/css/easyui/themes/material/linkbutton.css b/src/main/webapp/css/easyui/themes/material/linkbutton.css new file mode 100644 index 0000000..216b7a2 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/linkbutton.css @@ -0,0 +1,191 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #404040; + background: #fafafa; + background-repeat: repeat-x; + border: 1px solid #d9d9d9; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ccc; + padding: 0; +} +.l-btn-plain:hover { + background: #eee; + color: #404040; + border: 1px solid #ccc; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #fafafa; + color: #404040; +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #00bbee; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #00bbee; +} diff --git a/src/main/webapp/css/easyui/themes/material/menu.css b/src/main/webapp/css/easyui/themes/material/menu.css new file mode 100644 index 0000000..8f85844 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #fafafa; + -moz-box-shadow: 2px 2px 3px #fafafa; + -webkit-box-shadow: 2px 2px 3px #fafafa; + box-shadow: 2px 2px 3px #fafafa; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #fff; + border-color: #eee; + color: #404040; +} +.menu-content { + background: #ffffff; +} +.menu-item { + border-color: transparent; + _border-color: #fff; +} +.menu-active { + border-color: #ccc; + color: #404040; + background: #eee; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material/menubutton.css b/src/main/webapp/css/easyui/themes/material/menubutton.css new file mode 100644 index 0000000..fee358b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #eee; + color: #404040; + border: 1px solid #ccc; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ccc; + background-color: #eee; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material/messager.css b/src/main/webapp/css/easyui/themes/material/messager.css new file mode 100644 index 0000000..f8e29af --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #ddd; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/material/numberbox.css b/src/main/webapp/css/easyui/themes/material/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/material/pagination.css b/src/main/webapp/css/easyui/themes/material/pagination.css new file mode 100644 index 0000000..26ff61e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/material/panel.css b/src/main/webapp/css/easyui/themes/material/panel.css new file mode 100644 index 0000000..7086c2a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/panel.css @@ -0,0 +1,261 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #eee; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #f5f5f5; +} +.panel-body { + background-color: #ffffff; + color: #404040; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #000000; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #ddd; + overflow: hidden; + background: #fafafa; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/material/passwordbox.css b/src/main/webapp/css/easyui/themes/material/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/material/progressbar.css b/src/main/webapp/css/easyui/themes/material/progressbar.css new file mode 100644 index 0000000..3eb2e0b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #404040; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #00bbee; + color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/material/propertygrid.css b/src/main/webapp/css/easyui/themes/material/propertygrid.css new file mode 100644 index 0000000..1d7a392 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #eee; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #f5f5f5; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #eee; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #f5f5f5; +} diff --git a/src/main/webapp/css/easyui/themes/material/radiobutton.css b/src/main/webapp/css/easyui/themes/material/radiobutton.css new file mode 100644 index 0000000..7843353 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #9cc8f7; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #9cc8f7; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/material/searchbox.css b/src/main/webapp/css/easyui/themes/material/searchbox.css new file mode 100644 index 0000000..54ad885 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #f5f5f5; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/material/slider.css b/src/main/webapp/css/easyui/themes/material/slider.css new file mode 100644 index 0000000..43658dd --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 4px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #f5f5f5; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material/spinner.css b/src/main/webapp/css/easyui/themes/material/spinner.css new file mode 100644 index 0000000..55580b3 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #f5f5f5; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #404040; + outline-style: none; + background-color: #f5f5f5; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #eee; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #eee; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #f5f5f5; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #f5f5f5; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #f5f5f5; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/material/splitbutton.css b/src/main/webapp/css/easyui/themes/material/splitbutton.css new file mode 100644 index 0000000..2ad86f7 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #ccc; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/material/switchbutton.css b/src/main/webapp/css/easyui/themes/material/switchbutton.css new file mode 100644 index 0000000..4c628cf --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #d9d9d9; + border: 1px solid #d9d9d9; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.switchbutton-on { + background: #00bbee; + color: #fff; +} +.switchbutton-off { + background-color: #ffffff; + color: #404040; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #ffffff; + color: #404040; + border: 1px solid #d9d9d9; + -moz-box-shadow: 0 0 3px 0 #d9d9d9; + -webkit-box-shadow: 0 0 3px 0 #d9d9d9; + box-shadow: 0 0 3px 0 #d9d9d9; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/material/tabs.css b/src/main/webapp/css/easyui/themes/material/tabs.css new file mode 100644 index 0000000..a44d914 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/tabs.css @@ -0,0 +1,377 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 4px 4px; + -webkit-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 4px 0 0 4px; + -webkit-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 4px 4px 0; + -webkit-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #f5f5f5 url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #f5f5f5 url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #eee; + color: #404040; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #ffffff; + color: #000000; +} +.tabs li a.tabs-inner { + color: #000000; + background-color: #f5f5f5; +} +.tabs-header, +.tabs-tool { + background-color: #f5f5f5; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #eee; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #ffffff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #ffffff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #ffffff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #ffffff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #00bbee; + color: #fff; + filter: none; + border-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/material/tagbox.css b/src/main/webapp/css/easyui/themes/material/tagbox.css new file mode 100644 index 0000000..16ff414 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #eee; + color: #404040; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/material/textbox.css b/src/main/webapp/css/easyui/themes/material/textbox.css new file mode 100644 index 0000000..488e6b7 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #ddd; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c4c4c4; + -moz-box-shadow: 0 0 3px 0 #ddd; + -webkit-box-shadow: 0 0 3px 0 #ddd; + box-shadow: 0 0 3px 0 #ddd; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/material/tooltip.css b/src/main/webapp/css/easyui/themes/material/tooltip.css new file mode 100644 index 0000000..a000048 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #ffffff; + border-color: #ddd; + color: #404040; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #ffffff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #ffffff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #ffffff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/material/tree.css b/src/main/webapp/css/easyui/themes/material/tree.css new file mode 100644 index 0000000..ccb900b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ddd; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #ffffff; + color: #404040; + border-color: #ddd; +} +.tree-node-hover { + background: #eee; + color: #404040; +} +.tree-node-selected { + background: #00bbee; + color: #fff; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/material/validatebox.css b/src/main/webapp/css/easyui/themes/material/validatebox.css new file mode 100644 index 0000000..5911752 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff; + color: #404040; +} diff --git a/src/main/webapp/css/easyui/themes/material/window.css b/src/main/webapp/css/easyui/themes/material/window.css new file mode 100644 index 0000000..8f1851e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/material/window.css @@ -0,0 +1,182 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 4px 4px 4px 4px; + -webkit-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.window-shadow { + background: #fafafa; + -moz-box-shadow: 2px 2px 3px #fafafa; + -webkit-box-shadow: 2px 2px 3px #fafafa; + box-shadow: 2px 2px 3px #fafafa; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #f5f5f5; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #ddd; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/accordion.css b/src/main/webapp/css/easyui/themes/metro/accordion.css new file mode 100644 index 0000000..fb9f85e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/accordion.css @@ -0,0 +1,89 @@ +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #fff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #ddd; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #fff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #ddd; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #fff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/metro/calendar.css b/src/main/webapp/css/easyui/themes/metro/calendar.css new file mode 100644 index 0000000..3f32d30 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/calendar.css @@ -0,0 +1,203 @@ +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} diff --git a/src/main/webapp/css/easyui/themes/metro/checkbox.css b/src/main/webapp/css/easyui/themes/metro/checkbox.css new file mode 100644 index 0000000..5c8ebdd --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/checkbox.css @@ -0,0 +1,31 @@ +.checkbox { + position: relative; + border: 2px solid #99cdff; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.checkbox-checked { + border: 0; + background: #99cdff; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/combo.css b/src/main/webapp/css/easyui/themes/metro/combo.css new file mode 100644 index 0000000..2e89071 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/combo.css @@ -0,0 +1,35 @@ +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} +.combo-arrow:hover { + background-color: #E6E6E6; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/metro/combobox.css b/src/main/webapp/css/easyui/themes/metro/combobox.css new file mode 100644 index 0000000..115192c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/combobox.css @@ -0,0 +1,40 @@ +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/datagrid.css b/src/main/webapp/css/easyui/themes/metro/datagrid.css new file mode 100644 index 0000000..220e6a9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/datagrid.css @@ -0,0 +1,285 @@ +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #ddd; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} diff --git a/src/main/webapp/css/easyui/themes/metro/datalist.css b/src/main/webapp/css/easyui/themes/metro/datalist.css new file mode 100644 index 0000000..8a7f949 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/datalist.css @@ -0,0 +1,95 @@ +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #ffffff; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ddd; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #444; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ddd; +} +.m-list li>a:hover { + background: #E6E6E6; + color: #444; +} +.m-list .m-list-group { + padding: 0 4px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/datebox.css b/src/main/webapp/css/easyui/themes/metro/datebox.css new file mode 100644 index 0000000..931b825 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/datebox.css @@ -0,0 +1,36 @@ +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} diff --git a/src/main/webapp/css/easyui/themes/metro/dialog.css b/src/main/webapp/css/easyui/themes/metro/dialog.css new file mode 100644 index 0000000..3737479 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/dialog.css @@ -0,0 +1,47 @@ +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #ddd #ddd #ddd #ddd; +} +.dialog-button { + border-color: #ddd #ddd #ddd #ddd; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fff; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} diff --git a/src/main/webapp/css/easyui/themes/metro/easyui.css b/src/main/webapp/css/easyui/themes/metro/easyui.css new file mode 100644 index 0000000..7e15041 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/easyui.css @@ -0,0 +1,3304 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #E6E6E6; + -moz-border-radius: -2px -2px -2px -2px; + -webkit-border-radius: -2px -2px -2px -2px; + border-radius: -2px -2px -2px -2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #ffffff; +} +.panel-body { + background-color: #fff; + color: #444; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #777; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #ddd; + overflow: hidden; + background: #fff; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #fff; + border-color: #ddd; +} +.accordion .accordion-header { + background: #ffffff; + filter: none; +} +.accordion .accordion-header-selected { + background: #CCE6FF; +} +.accordion .accordion-header-selected .panel-title { + color: #000; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #ffffff; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #fff; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #ddd; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #ffffff; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #fff; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #ddd; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #ffffff; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #fff; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #ddd; +} +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.window-shadow { + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #ffffff; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #ddd; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #fff; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #ddd #ddd #ddd #ddd; +} +.dialog-button { + border-color: #ddd #ddd #ddd #ddd; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #fff; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #777; + background: #ffffff; + background-repeat: repeat-x; + border: 1px solid #dddddd; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ddd; + padding: 0; +} +.l-btn-plain:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} +.textbox { + position: relative; + border: 1px solid #ddd; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c4c4c4; + -moz-box-shadow: 0 0 3px 0 #ddd; + -webkit-box-shadow: 0 0 3px 0 #ddd; + box-shadow: 0 0 3px 0 #ddd; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #fff; +} +.combo-arrow { + background-color: #ffffff; +} +.combo-arrow-hover { + background-color: #E6E6E6; +} +.combo-arrow:hover { + background-color: #E6E6E6; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 14px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #E6E6E6; + color: #444; +} +.combobox-item-selected { + background-color: #CCE6FF; + color: #000; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #E6E6E6; + color: #444; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #b3b3b3; +} +.layout-split-north { + border-bottom: 5px solid #fff; +} +.layout-split-south { + border-top: 5px solid #fff; +} +.layout-split-east { + border-left: 5px solid #fff; +} +.layout-split-west { + border-right: 5px solid #fff; +} +.layout-expand { + background-color: #ffffff; +} +.layout-expand-over { + background-color: #ffffff; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0 0; + -webkit-border-radius: 0px 0px 0 0; + border-radius: 0px 0px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 0px 0px; + -webkit-border-radius: 0 0 0px 0px; + border-radius: 0 0 0px 0px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #ffffff url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #ffffff url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #E6E6E6; + color: #444; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #fff; + color: #777; +} +.tabs li a.tabs-inner { + color: #777; + background-color: #ffffff; +} +.tabs-header, +.tabs-tool { + background-color: #ffffff; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #E6E6E6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #fff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #fff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #fff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #fff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #CCE6FF; + color: #000; + filter: none; + border-color: #ddd; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 14px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 14px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #ddd; + font-size: 14px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #fff url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #ffffff; +} +.datagrid-cell-rownumber { + color: #444; +} +.datagrid-resize-proxy { + background: #b3b3b3; +} +.datagrid-mask { + background: #eee; +} +.datagrid-mask-msg { + border-color: #ddd; +} +.datagrid-toolbar, +.datagrid-pager { + background: #fff; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #ddd; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #ddd; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #444; + border-collapse: separate; +} +.datagrid-row-alt { + background: #f5f5f5; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #E6E6E6; + color: #444; + cursor: default; +} +.datagrid-row-selected { + background: #CCE6FF; + color: #000; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #ffffff; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #ffffff; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #ffffff; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ddd; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #444; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #ddd; +} +.m-list li>a:hover { + background: #E6E6E6; + color: #444; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 14px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 14px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 14px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 14px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 14px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.calendar-body th, +.calendar-menu-month { + color: #919191; +} +.calendar-day { + color: #444; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #ddd; +} +.calendar { + border-color: #ddd; +} +.calendar-header { + background: #ffffff; +} +.calendar-body, +.calendar-menu { + background: #fff; +} +.calendar-body th { + background: #fff; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #E6E6E6; + color: #444; +} +.calendar-hover { + border: 1px solid #ddd; + padding: 0; +} +.calendar-selected { + background-color: #CCE6FF; + color: #000; + border: 1px solid #99cdff; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 14px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #fff; +} +.datebox-button a { + color: #777; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #ffffff; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #777; + outline-style: none; + background-color: #ffffff; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #E6E6E6; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #E6E6E6; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #ffffff; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #ffffff; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #ffffff; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #444; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #CCE6FF; + color: #000; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #ffffff; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 0px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #ffffff; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #444; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #ffffff; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #fff; +} +.menu-item { + border-color: transparent; + _border-color: #ffffff; +} +.menu-active { + border-color: #ddd; + color: #444; + background: #E6E6E6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #ddd; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ddd; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #fff; + color: #444; + border-color: #ddd; +} +.tree-node-hover { + background: #E6E6E6; + color: #444; +} +.tree-node-selected { + background: #CCE6FF; + color: #000; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #fff; + border-color: #ddd; + color: #444; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #fff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #fff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #fff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #fff; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #dddddd; + border: 1px solid #dddddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.switchbutton-on { + background: #CCE6FF; + color: #000; +} +.switchbutton-off { + background-color: #fff; + color: #444; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #fff; + color: #444; + border: 1px solid #dddddd; + -moz-box-shadow: 0 0 3px 0 #dddddd; + -webkit-box-shadow: 0 0 3px 0 #dddddd; + box-shadow: 0 0 3px 0 #dddddd; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.radiobutton { + position: relative; + border: 2px solid #99cdff; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #99cdff; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #99cdff; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.checkbox-checked { + border: 0; + background: #99cdff; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/filebox.css b/src/main/webapp/css/easyui/themes/metro/filebox.css new file mode 100644 index 0000000..c6bac66 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/filebox.css @@ -0,0 +1,20 @@ +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/metro/images/accordion_arrows.png b/src/main/webapp/css/easyui/themes/metro/images/accordion_arrows.png new file mode 100644 index 0000000..720835f Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/accordion_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/blank.gif b/src/main/webapp/css/easyui/themes/metro/images/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/blank.gif differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/calendar_arrows.png b/src/main/webapp/css/easyui/themes/metro/images/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/calendar_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/combo_arrow.png b/src/main/webapp/css/easyui/themes/metro/images/combo_arrow.png new file mode 100644 index 0000000..2e59fb9 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/combo_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/datagrid_icons.png b/src/main/webapp/css/easyui/themes/metro/images/datagrid_icons.png new file mode 100644 index 0000000..762d0ce Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/datagrid_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/datebox_arrow.png b/src/main/webapp/css/easyui/themes/metro/images/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/datebox_arrow.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/layout_arrows.png b/src/main/webapp/css/easyui/themes/metro/images/layout_arrows.png new file mode 100644 index 0000000..6f41654 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/layout_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/linkbutton_bg.png b/src/main/webapp/css/easyui/themes/metro/images/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/linkbutton_bg.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/loading.gif b/src/main/webapp/css/easyui/themes/metro/images/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/loading.gif differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/menu_arrows.png b/src/main/webapp/css/easyui/themes/metro/images/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/menu_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/messager_icons.png b/src/main/webapp/css/easyui/themes/metro/images/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/messager_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/pagination_icons.png b/src/main/webapp/css/easyui/themes/metro/images/pagination_icons.png new file mode 100644 index 0000000..616f0bd Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/pagination_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/panel_tools.png b/src/main/webapp/css/easyui/themes/metro/images/panel_tools.png new file mode 100644 index 0000000..fe682ef Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/panel_tools.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/passwordbox_close.png b/src/main/webapp/css/easyui/themes/metro/images/passwordbox_close.png new file mode 100644 index 0000000..643c09d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/passwordbox_close.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/passwordbox_open.png b/src/main/webapp/css/easyui/themes/metro/images/passwordbox_open.png new file mode 100644 index 0000000..d328891 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/passwordbox_open.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/searchbox_button.png b/src/main/webapp/css/easyui/themes/metro/images/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/searchbox_button.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/slider_handle.png b/src/main/webapp/css/easyui/themes/metro/images/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/slider_handle.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/spinner_arrows.png b/src/main/webapp/css/easyui/themes/metro/images/spinner_arrows.png new file mode 100644 index 0000000..7c2df48 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/spinner_arrows.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/tabs_icons.png b/src/main/webapp/css/easyui/themes/metro/images/tabs_icons.png new file mode 100644 index 0000000..4d29966 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/tabs_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/tagbox_icons.png b/src/main/webapp/css/easyui/themes/metro/images/tagbox_icons.png new file mode 100644 index 0000000..bd02e2d Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/tagbox_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/tree_icons.png b/src/main/webapp/css/easyui/themes/metro/images/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/tree_icons.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/images/validatebox_warning.png b/src/main/webapp/css/easyui/themes/metro/images/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/css/easyui/themes/metro/images/validatebox_warning.png differ diff --git a/src/main/webapp/css/easyui/themes/metro/layout.css b/src/main/webapp/css/easyui/themes/metro/layout.css new file mode 100644 index 0000000..53ba16b --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/layout.css @@ -0,0 +1,150 @@ +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #b3b3b3; +} +.layout-split-north { + border-bottom: 5px solid #fff; +} +.layout-split-south { + border-top: 5px solid #fff; +} +.layout-split-east { + border-left: 5px solid #fff; +} +.layout-split-west { + border-right: 5px solid #fff; +} +.layout-expand { + background-color: #ffffff; +} +.layout-expand-over { + background-color: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/metro/linkbutton.css b/src/main/webapp/css/easyui/themes/metro/linkbutton.css new file mode 100644 index 0000000..e66c40a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/linkbutton.css @@ -0,0 +1,203 @@ +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 14px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #777; + background: #ffffff; + background-repeat: repeat-x; + border: 1px solid #dddddd; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #ddd; + padding: 0; +} +.l-btn-plain:hover { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #ffffff; + color: #777; + background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%); + background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #ddd; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/metro/menu.css b/src/main/webapp/css/easyui/themes/metro/menu.css new file mode 100644 index 0000000..ae73110 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/menu.css @@ -0,0 +1,119 @@ +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 14px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #ddd; + border-right: 1px solid #fff; +} +.menu-sep { + border-top: 1px solid #ddd; + border-bottom: 1px solid #fff; +} +.menu { + background-color: #ffffff; + border-color: #ddd; + color: #444; +} +.menu-content { + background: #fff; +} +.menu-item { + border-color: transparent; + _border-color: #ffffff; +} +.menu-active { + border-color: #ddd; + color: #444; + background: #E6E6E6; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/metro/menubutton.css b/src/main/webapp/css/easyui/themes/metro/menubutton.css new file mode 100644 index 0000000..8ed294a --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/menubutton.css @@ -0,0 +1,94 @@ +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #E6E6E6; + color: #444; + border: 1px solid #ddd; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #ddd; + background-color: #E6E6E6; + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/metro/messager.css b/src/main/webapp/css/easyui/themes/metro/messager.css new file mode 100644 index 0000000..f8e29af --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/messager.css @@ -0,0 +1,44 @@ +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #ddd; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/numberbox.css b/src/main/webapp/css/easyui/themes/metro/numberbox.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/css/easyui/themes/metro/pagination.css b/src/main/webapp/css/easyui/themes/metro/pagination.css new file mode 100644 index 0000000..26ff61e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/pagination.css @@ -0,0 +1,77 @@ +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 14px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 14px; +} +.pagination span { + font-size: 14px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/metro/panel.css b/src/main/webapp/css/easyui/themes/metro/panel.css new file mode 100644 index 0000000..ef50fe9 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/panel.css @@ -0,0 +1,261 @@ +.panel { + overflow: hidden; + text-align: left; + margin: 0; + border: 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-header, +.panel-body { + border-width: 1px; + border-style: solid; +} +.panel-header { + padding: 5px; + position: relative; +} +.panel-title { + background: url('images/blank.gif') no-repeat; +} +.panel-header-noborder { + border-width: 0 0 1px 0; +} +.panel-body { + overflow: auto; + border-top-width: 0; + padding: 0; +} +.panel-body-noheader { + border-top-width: 1px; +} +.panel-body-noborder { + border-width: 0px; +} +.panel-body-nobottom { + border-bottom-width: 0; +} +.panel-with-icon { + padding-left: 18px; +} +.panel-icon, +.panel-tool { + position: absolute; + top: 50%; + margin-top: -8px; + height: 16px; + overflow: hidden; +} +.panel-icon { + left: 5px; + width: 16px; +} +.panel-tool { + right: 5px; + width: auto; +} +.panel-tool a { + display: inline-block; + width: 16px; + height: 16px; + opacity: 0.6; + filter: alpha(opacity=60); + margin: 0 0 0 2px; + vertical-align: top; +} +.panel-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + background-color: #E6E6E6; + -moz-border-radius: -2px -2px -2px -2px; + -webkit-border-radius: -2px -2px -2px -2px; + border-radius: -2px -2px -2px -2px; +} +.panel-loading { + padding: 11px 0px 10px 30px; +} +.panel-noscroll { + overflow: hidden; +} +.panel-fit, +.panel-fit body { + height: 100%; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; +} +.panel-loading { + background: url('images/loading.gif') no-repeat 10px 10px; +} +.panel-tool-close { + background: url('images/panel_tools.png') no-repeat -16px 0px; +} +.panel-tool-min { + background: url('images/panel_tools.png') no-repeat 0px 0px; +} +.panel-tool-max { + background: url('images/panel_tools.png') no-repeat 0px -16px; +} +.panel-tool-restore { + background: url('images/panel_tools.png') no-repeat -16px -16px; +} +.panel-tool-collapse { + background: url('images/panel_tools.png') no-repeat -32px 0; +} +.panel-tool-expand { + background: url('images/panel_tools.png') no-repeat -32px -16px; +} +.panel-header, +.panel-body { + border-color: #ddd; +} +.panel-header { + background-color: #ffffff; +} +.panel-body { + background-color: #fff; + color: #444; + font-size: 14px; +} +.panel-title { + font-size: 14px; + font-weight: bold; + color: #777; + height: 20px; + line-height: 20px; +} +.panel-footer { + border: 1px solid #ddd; + overflow: hidden; + background: #fff; +} +.panel-footer-noborder { + border-width: 1px 0 0 0; +} +.panel-hleft, +.panel-hright { + position: relative; +} +.panel-hleft>.panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} diff --git a/src/main/webapp/css/easyui/themes/metro/passwordbox.css b/src/main/webapp/css/easyui/themes/metro/passwordbox.css new file mode 100644 index 0000000..92c9ce5 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/passwordbox.css @@ -0,0 +1,6 @@ +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} diff --git a/src/main/webapp/css/easyui/themes/metro/progressbar.css b/src/main/webapp/css/easyui/themes/metro/progressbar.css new file mode 100644 index 0000000..77512af --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/progressbar.css @@ -0,0 +1,33 @@ +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.progressbar { + border-color: #ddd; +} +.progressbar-text { + color: #444; + font-size: 14px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #CCE6FF; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/metro/propertygrid.css b/src/main/webapp/css/easyui/themes/metro/propertygrid.css new file mode 100644 index 0000000..9c859b1 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/propertygrid.css @@ -0,0 +1,27 @@ +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #ddd; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #ffffff; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #ddd; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #ffffff; +} diff --git a/src/main/webapp/css/easyui/themes/metro/radiobutton.css b/src/main/webapp/css/easyui/themes/metro/radiobutton.css new file mode 100644 index 0000000..d1b61ce --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/radiobutton.css @@ -0,0 +1,25 @@ +.radiobutton { + position: relative; + border: 2px solid #99cdff; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #99cdff; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/searchbox.css b/src/main/webapp/css/easyui/themes/metro/searchbox.css new file mode 100644 index 0000000..2d3af1c --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/searchbox.css @@ -0,0 +1,61 @@ +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #ffffff; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} diff --git a/src/main/webapp/css/easyui/themes/metro/slider.css b/src/main/webapp/css/easyui/themes/metro/slider.css new file mode 100644 index 0000000..7f84103 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/slider.css @@ -0,0 +1,101 @@ +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 0px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 14px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 14px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #ddd; + background: #ffffff; +} +.slider-rule span { + border-color: #ddd; +} +.slider-rulelabel span { + color: #444; +} diff --git a/src/main/webapp/css/easyui/themes/metro/spinner.css b/src/main/webapp/css/easyui/themes/metro/spinner.css new file mode 100644 index 0000000..cbc7e59 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/spinner.css @@ -0,0 +1,114 @@ +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #ffffff; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #777; + outline-style: none; + background-color: #ffffff; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #E6E6E6; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #E6E6E6; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #ffffff; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #ffffff; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #ffffff; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} diff --git a/src/main/webapp/css/easyui/themes/metro/splitbutton.css b/src/main/webapp/css/easyui/themes/metro/splitbutton.css new file mode 100644 index 0000000..3451138 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/splitbutton.css @@ -0,0 +1,12 @@ +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #b3b3b3; + border-width: 0 0 0 1px; +} diff --git a/src/main/webapp/css/easyui/themes/metro/switchbutton.css b/src/main/webapp/css/easyui/themes/metro/switchbutton.css new file mode 100644 index 0000000..057bf55 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/switchbutton.css @@ -0,0 +1,77 @@ +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #dddddd; + border: 1px solid #dddddd; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 14px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.switchbutton-on { + background: #CCE6FF; + color: #000; +} +.switchbutton-off { + background-color: #fff; + color: #444; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #fff; + color: #444; + border: 1px solid #dddddd; + -moz-box-shadow: 0 0 3px 0 #dddddd; + -webkit-box-shadow: 0 0 3px 0 #dddddd; + box-shadow: 0 0 3px 0 #dddddd; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} diff --git a/src/main/webapp/css/easyui/themes/metro/tabs.css b/src/main/webapp/css/easyui/themes/metro/tabs.css new file mode 100644 index 0000000..cc1500e --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/tabs.css @@ -0,0 +1,377 @@ +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 0px 0px 0 0; + -webkit-border-radius: 0px 0px 0 0; + border-radius: 0px 0px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 14px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 0px 0px; + -webkit-border-radius: 0 0 0px 0px; + border-radius: 0 0 0px 0px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0px 0 0 0px; + -webkit-border-radius: 0px 0 0 0px; + border-radius: 0px 0 0 0px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 0px 0px 0; + -webkit-border-radius: 0 0px 0px 0; + border-radius: 0 0px 0px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #ffffff url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #ffffff url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #E6E6E6; + color: #444; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #fff; + color: #777; +} +.tabs li a.tabs-inner { + color: #777; + background-color: #ffffff; +} +.tabs-header, +.tabs-tool { + background-color: #ffffff; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #ddd; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #E6E6E6; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #fff; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #fff; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #fff; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #fff; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #CCE6FF; + color: #000; + filter: none; + border-color: #ddd; +} diff --git a/src/main/webapp/css/easyui/themes/metro/tagbox.css b/src/main/webapp/css/easyui/themes/metro/tagbox.css new file mode 100644 index 0000000..7c6fd15 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/tagbox.css @@ -0,0 +1,44 @@ +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + background: #E6E6E6; + color: #444; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} diff --git a/src/main/webapp/css/easyui/themes/metro/textbox.css b/src/main/webapp/css/easyui/themes/metro/textbox.css new file mode 100644 index 0000000..55dc503 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/textbox.css @@ -0,0 +1,144 @@ +.textbox { + position: relative; + border: 1px solid #ddd; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.textbox .textbox-text { + font-size: 14px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 14px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #c4c4c4; + -moz-box-shadow: 0 0 3px 0 #ddd; + -webkit-box-shadow: 0 0 3px 0 #ddd; + box-shadow: 0 0 3px 0 #ddd; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} diff --git a/src/main/webapp/css/easyui/themes/metro/tooltip.css b/src/main/webapp/css/easyui/themes/metro/tooltip.css new file mode 100644 index 0000000..21ae211 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/tooltip.css @@ -0,0 +1,103 @@ +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.tooltip-content { + font-size: 14px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #fff; + border-color: #ddd; + color: #444; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #ddd; +} +.tooltip-right .tooltip-arrow { + border-right-color: #fff; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #ddd; +} +.tooltip-left .tooltip-arrow { + border-left-color: #fff; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #ddd; +} +.tooltip-top .tooltip-arrow { + border-top-color: #fff; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #ddd; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #fff; +} diff --git a/src/main/webapp/css/easyui/themes/metro/tree.css b/src/main/webapp/css/easyui/themes/metro/tree.css new file mode 100644 index 0000000..ab4efa6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/tree.css @@ -0,0 +1,164 @@ +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 14px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 14px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #ddd; + font-size: 14px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #fff; + color: #444; + border-color: #ddd; +} +.tree-node-hover { + background: #E6E6E6; + color: #444; +} +.tree-node-selected { + background: #CCE6FF; + color: #000; +} +.tree-node-hidden { + display: none; +} diff --git a/src/main/webapp/css/easyui/themes/metro/validatebox.css b/src/main/webapp/css/easyui/themes/metro/validatebox.css new file mode 100644 index 0000000..1fc3ad6 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/validatebox.css @@ -0,0 +1,5 @@ +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} diff --git a/src/main/webapp/css/easyui/themes/metro/window.css b/src/main/webapp/css/easyui/themes/metro/window.css new file mode 100644 index 0000000..9602f67 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/metro/window.css @@ -0,0 +1,182 @@ +.window { + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 0px 0px 0px 0px; + -webkit-border-radius: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; +} +.window-shadow { + background: #eee; + -moz-box-shadow: 2px 2px 3px #ededed; + -webkit-box-shadow: 2px 2px 3px #ededed; + box-shadow: 2px 2px 3px #ededed; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #ddd; +} +.window { + background-color: #ffffff; +} +.window-proxy { + border: 1px dashed #ddd; +} +.window-proxy-mask, +.window-mask { + background: #eee; +} +.window .panel-footer { + border: 1px solid #ddd; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} diff --git a/src/main/webapp/css/easyui/themes/mobile.css b/src/main/webapp/css/easyui/themes/mobile.css new file mode 100644 index 0000000..e800054 --- /dev/null +++ b/src/main/webapp/css/easyui/themes/mobile.css @@ -0,0 +1,352 @@ +.m-toolbar{ + position: relative; + text-align: center; + min-height: 34px; +} +.m-toolbar .m-title{ + line-height: 34px; + font-size: 16px; + font-weight: bold; + text-align: center; +} +.m-left{ + position: absolute; + height: 100%; + vertical-align: middle; + top:0; + left:0; + z-index: 1; +} +.m-right{ + position: absolute; + height: 100%; + vertical-align: middle; + top:0; + right:0; + z-index: 1; +} +.m-left>.l-btn,.m-right>.l-btn, +.m-left>.switchbutton,.m-right>.switchbutton{ + position: relative; + vertical-align: top; + top: 50%; + margin-top: -15px; +} +.m-back::before,.m-next::after{ + display: inline-block; + box-sizing: border-box; + vertical-align: top; + border-style: solid; + -webkit-transform:rotate(45deg); + transform:rotate(45deg); + width: 12px; + height: 12px; + content: ''; + position: absolute; + top: 50%; + margin-top: -6px; +} +.m-back::before{ + border-width: 0 0 1px 1px; + left: 8px; +} +.m-next::after{ + border-width: 1px 1px 0 0; + right: 8px; +} +.m-back .l-btn-text{ + padding-left: 12px; +} +.m-next .l-btn-text{ + padding-right: 12px; +} +.m-buttongroup{ + display: inline-block; + margin: 0; + padding: 0; + overflow: hidden; + vertical-align: middle; +} +.m-buttongroup .l-btn{ + float: left; + margin-left: -1px; +} +.m-buttongroup .l-btn:last-child::after{ + content: ''; + clear: both; +} +.m-buttongroup .l-btn:not(:first-child):not(:last-child){ + border-radius: 0; +} +.m-buttongroup .l-btn:first-child{ + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-left: 0; +} +.m-buttongroup .l-btn:last-child{ + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.m-buttongroup-justified{ + display: table; + table-layout: fixed; +} +.m-buttongroup-justified .l-btn{ + float: none; + display: table-cell; +} +.m-badge:not(.l-btn), +.l-btn.m-badge::after{ + display: inline-block; + min-width: 10px; + line-height: 1; + font-size: 12px; + text-align: center; + white-space: nowrap; + border-radius: 10px; + padding: 2px 4px; + border-style: solid; + border-width: 0px; + background-color: #d9534f; + color: #fff; + z-index: 99999; +} +.l-btn.m-badge::after, +.l-btn .m-badge{ + position: absolute; + top: -10px; + right: -10px; +} +.tabs-inner .m-badge{ + position: absolute; + top: 1px; + right: -10px; +} +.tabs-inner>.tabs-title>.m-badge{ + top: 0; + right: 0; +} +.tabs-header-bottom .tabs-inner>.tabs-title>.m-badge{ + top: auto; + bottom: 0; + right: 0; +} +.panel-footer .l-btn .l-btn-icon-top .m-badge, +.panel-footer .l-btn .l-btn-icon-bottom .m-badge{ + top: 0; + right: -10px; +} +.l-btn.m-badge::after{ + content: attr(data-badge); +} +.l-btn,.l-btn-left{ + overflow: visible; + position: relative; +} + +.m-in{ + -webkit-animation-timing-function: ease-out; + -webkit-animation-duration: 250ms; +} +.m-out{ + -webkit-animation-timing-function: ease-in; + -webkit-animation-duration: 250ms; +} +.m-slide-left.m-in{ + -webkit-animation-name: slideLeftIn; +} +.m-slide-left.m-out{ + -webkit-animation-name: slideLeftOut; +} +.m-slide-right.m-in{ + -webkit-animation-name: slideRightIn; +} +.m-slide-right.m-out{ + -webkit-animation-name: slideRightOut; +} +.m-slide-up.m-in{ + -webkit-animation-name: slideUpIn; +} +.m-slide-up.m-out{ + -webkit-animation-name: slideUpOut; +} +.m-slide-down.m-in{ + -webkit-animation-name: slideDownIn; +} +.m-slide-down.m-out{ + -webkit-animation-name: slideDownOut; +} + +@-webkit-keyframes slideLeftIn{ + from {-webkit-transform: translateX(100%);} + to {-webkit-transform: translateX(0);} +} +@-webkit-keyframes slideLeftOut{ + from {-webkit-transform: translateX(0);} + to {-webkit-transform: translateX(-100%);} +} +@-webkit-keyframes slideRightIn{ + from {-webkit-transform: translateX(-100%);} + to {-webkit-transform: translateX(0);} +} +@-webkit-keyframes slideRightOut{ + from {-webkit-transform: translateX(0);} + to {-webkit-transform: translateX(100%);} +} +@-webkit-keyframes slideUpIn{ + from {-webkit-transform: translateY(100%);} + to {-webkit-transform: translateY(0);} +} +@-webkit-keyframes slideUpOut{ + from {-webkit-transform: translateY(0);} + to {-webkit-transform: translateY(-100%);} +} +@-webkit-keyframes slideDownIn{ + from {-webkit-transform: translateY(-100%);} + to {-webkit-transform: translateY(0);} +} +@-webkit-keyframes slideDownOut{ + from {-webkit-transform: translateY(0);} + to {-webkit-transform: translateY(100%);} +} + +.m-fade.m-in{ + -webkit-animation-name: fadeIn; +} +.m-fade.m-out{ + -webkit-animation-name: fadeOut; +} + +@-webkit-keyframes fadeIn{ + from {opacity: 0;} + to {opacity: 1} +} +@-webkit-keyframes fadeOut{ + from {opacity: 1;} + to {opacity: 0;} +} + +.m-pop.m-in{ + -webkit-animation-name: popIn; +} +.m-pop.m-out{ + -webkit-animation-name: popOut; +} +@-webkit-keyframes popIn{ + from { + opacity: 0; + -webkit-transform: scale(.2); + } + to { + opacity: 1; + -webkit-transform: scale(1); + } +} +@-webkit-keyframes popOut{ + from { + opacity: 1; + -webkit-transform: scale(1); + } + to { + opacity: 0; + -webkit-transform: scale(0); + } +} + +.navpanel{ + position: absolute; +} +.textbox .textbox-text{ + padding: 0 4px; + height: 30px; + line-height: 30px; +} +.calendar-header,.calendar-title{ + height: 30px; +} +.calendar-title span{ + height: 30px; + line-height: 30px +} +.datebox-button{ + height: 24px; +} +.datebox-button a{ + line-height: 24px; +} +.tree-node{ + box-sizing: border-box; + height: 32px; + padding: 3px 0; +} + +.panel-title{ + height: 26px; + line-height: 26px; +} +.window{ + padding: 5px 0 0 0; +} +.window-shadow{ + -moz-box-shadow: 0 0 30px 0 #D3D3D3; + -webkit-box-shadow: 0 0 30px 0 #D3D3D3; + box-shadow: 0 0 30px 0 #D3D3D3; +} +.window-header .panel-title{ + height: 26px; + line-height: 26px; + text-align: center; +} +.window-header .panel-tool{ + display: none; +} +.window .window-body{ + border: 0; +} +.dialog-button{ + border-color: transparent; + overflow: hidden; +} +.dialog-button .l-btn{ + margin: 0; +} + +.tabs-justified, +.tabs-justified .l-btn, +.tabs-justified li a.tabs-inner, +.tabs-justified li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs-justified li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs-justified li a.tabs-inner{ + -moz-border-radius:0; + -webkit-border-radius:0; + border-radius:0; +} + +.datagrid-row,.datagrid-header-row{ + height: 32px; +} +.datalist .datagrid-group-title, +.m-list .m-list-group{ + padding: 0 10px; +} +.datalist .datagrid-cell, +.m-list li{ + padding: 10px; +} +.m-list li .m-right{ + right: 10px; +} +.datalist .datalist-link, +.m-list li>a{ + margin: -10px; + padding: 10px; + padding-right: 24px; +} +.m-list li>a .m-right{ + right: 24px; +} +.datalist .datalist-link::after, +.m-list li>a::after{ + right: 12px; +} + diff --git a/src/main/webapp/css/egov.css b/src/main/webapp/css/egov.css new file mode 100644 index 0000000..283668a --- /dev/null +++ b/src/main/webapp/css/egov.css @@ -0,0 +1,257 @@ +/********************************************************************************/ +/* */ +/* Design RIAN */ +/* Date : 2007-03-21 */ +/* */ +/* */ +/********************************************************************************/ +* {margin:0;padding:0;} +* html {height:1px;} +body {margin:0; padding:0; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:12px; color:#666; scroll:auto;} +/*table, tr, td, th {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px; color:#333333;}*/ +caption{visibility:hidden} + +/* +.listtd {padding:10px 5px 8px 5px; border-bottom:1px solid #e5e5e5;} +.listtds {padding:10px 5px 8px 5px; border:1px solid #e5e5e5;} + +*/ + + +/*th {background-color:#F3F5E0; background:url(../../images/rte/th_bg.gif) 0 0 repeat; height:26px; text-align:center; vertical-align:middle; color:#003366;}*/ +img {border:0; vertical-align:middle;} +/*p { height:20px; margin:0; padding:5 0 0 0;}*/ +.check ul {margin:0; padding:0; float:left;} +.check li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;} +.top {vertical-align:top;} +/* +a:link { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#3A5870; text-decoration:none; line-height:100%;} +a:visited { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#3A5870; text-decoration:none} +a:active { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#339999; text-decoration:none;} +a:hover { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#339999; text-decoration:none;}*/ + +/*#command div { margin:0 auto;}*/ +.login {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:52px 0px 0px 270px; /*overflow:hidden;*/ width:330px; height:260px;background:url(../../images/rte/login_bg.jpg) 0 0 no-repeat; } +.login_en {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:52px 0px 0px 270px; /*overflow:hidden;*/ width:330px; height:260px;background:url(../../images/rte/login_bg_en.jpg) 0 0 no-repeat; } +.error {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:120px 0px 0px 80px; /*overflow:hidden;*/ width:520px; height:260px;background:url(../../images/rte/error_bg.jpg) 0 0 no-repeat; } +.error_en {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:120px 0px 0px 80px; /*overflow:hidden;*/ width:520px; height:260px;background:url(../../images/rte/error_bg_en.jpg) 0 0 no-repeat; } +#logo {margin:0; padding:0; text-align:left; /*overflow:hidden;*/ width:910px;} +/*#header {height:74px;}*/ +#top {width:910px;} +.menu { text-align:center; height:38px; margin:0; padding:13px 0 0 0;} +.menu ul {display:inline; width:910px;} +.menu li {display:inline; list-style-type:none; margin:0; padding:14px 28px 0 28px; background:url(../../images/rte/civilappeal_topmn_bar.jpg) 0 15px no-repeat;} +.menu li.last {width:1px; padding:15px 0 0 0; background:url(../../images/rte/civilappeal_topmn_bar.jpg) 0 0 no-repeat;} +.menu a.top:link {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} +.menu a.top:visited {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} +.menu a.top:hover {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color: #00CCFF; text-decoration:none; font-size:12px;} +.menu a.top:active {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} + +.menu .on a.top:link {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:visited {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:hover {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color: #00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:active {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} + +.right_area {float:right; height:38px; margin:0; padding:0 8px 0 0; background:url(../../images/rte/civilappeal_topmn_bg11.jpg) right no-repeat;} +#sub {float:left; padding:10px 10px 10px 10px; /*overflow:hidden;*/width:180px; margin-right:30px;} +#sub .login {width:180px; height:70px; text-align:left; vertical-align:top; padding:5px 0 0 0; background:url(../../images/rte/civilappeal_login_bg.jpg) right no-repeat; margin-bottom:10px;} +#sub .login_en {width:180px; height:70px; text-align:left; vertical-align:top; padding:5px 0 0 0; background:url(../../images/rte/civilappeal_login_bg_en.jpg) right no-repeat; margin-bottom:10px;} +#sub .sub_menu {width:150px; height:300px; text-align:left; vertical-align:top; background:url(../../images/rte/civilappeal_leftmenu_bg.jpg) 0 0 no-repeat; padding-top:40px; padding-left:15px; padding-right:15px; padding-bottom:0px;} +#sub .sub_menu dl {width:150px;} +#sub .sub_menu dd {font-weight:bold; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:10px; margin:0;} +#sub .sub_menu dt {list-style:none; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:8px; margin:0px;} +#sub .sub_menu_en {width:150px; height:300px; text-align:left; vertical-align:top; background:url(../../images/rte/civilappeal_leftmenu_bg_en.jpg) 0 0 no-repeat; padding-top:40px; padding-left:15px; padding-right:15px; padding-bottom:0px;} +#sub .sub_menu_en dl {width:150px;} +#sub .sub_menu_en dd {font-weight:bold; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:10px; margin:0;} +#sub .sub_menu_en dt {list-style:none; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:8px; margin:0px;} +#content {/*float:left; text-align:left;overflow:hidden;width:880px; background-color:#FFFFFF; padding:10px 0px 10px 0px;*/} +#content_pop {/*float:left; text-align:left; overflow:hidden;width:880px; background-color:#FFFFFF; padding:10px 10px 10px 10px;*/} +/*#title {text-align:left; margin:0 0 10 0; padding:0; height:30px; border-bottom:1px solid #e5e5e5; width:880px;}*/ +/*#title ul {float:left; margin:0; padding:0;} +#title li {list-style-type:none; width:880px; padding:3px 0px 2px 0px; float:left; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:16px; font-weight:bold; color:#000000;}*/ +#title .location {float:right; height:20px; margin:0; padding:5 0 0 0; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px;} +#foot {margin:0; padding:0 0 0 0; text-align:left; /*overflow:hidden;*/ height:40px; clear:both; background-color:#F7F7F7; border-top:1px solid #e5e5e5; font-family:Tahoma; font-size:11px; color:#999999;} +/*#search {float:right; margin:0; padding:10px 0 10px 0; width:880px;}* +#search ul {margin:0; float:right;} +#search li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;} +/*#table {margin:0 0 10px 0; padding:0 0 0 0; width:880px;}*/ +/*.table {margin:0 0 10px 0; padding:0 0 0 0; width:880px;}*/ +#paging {padding:0 0 0 0; text-align:center; width:880px;} +#paging ul {display:inline;} +#paging li {display:inline; list-style-type:none; padding:0 10px 0 10px; font-family: Tahoma; font-size:11px; color: #333333;} +#paging li.pre10 {padding:0 2px 0 2px;} +#paging li.next1 {padding:0 2px 0 2px;} +#paging li.line {background:url(../../images/rte/paging_line.gif) 0 2px no-repeat;} +#paging li.first {padding:0 5px 0 0;} +#paging li.last {background:url(../../images/rte/paging_line.gif) 0 2px no-repeat; padding:0 5px 0 0;} +#sysbtn {/*text-align:right; padding:0; margin:0;*/} +#sysbtn ul {/*margin:0; padding:0; float:left; display:inline;*/} +#sysbtn li {/*list-style-type:none; margin:0 auto; padding:0 0 0 3px; float:left; display:inline;*/} +.sysbtn {text-align:right; padding:0; margin:0;} +.sysbtn ul {margin:0; padding:0; float:left; display:inline;} +.sysbtn li {list-style-type:none; margin:0 auto; padding:0 0 0 3px; float:left; display:inline;} + +#sysbtn1 {text-align:left; padding-top:10px; padding-bottom:0px; margin-bottom:0px; width:880px;} +#sysbtn1 ul {margin:0; padding:0; float:left; display:inline;} +#sysbtn1 li {list-style-type:none; margin:0 0 0 0; padding:0 0 0 3px; float:left; display:inline;} +#idwrap {float:left; padding-top:0px; padding-bottom:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; margin-top:0px; padding-left:0px; padding-right:0px; } +#idwrap ul {float:left; padding:0; margin:0;} +#idwrap li {list-style-type:none; float:left; margin:0; padding-right:3px;} +button {cursor:hand; border:0px solid #FFFFFF; padding:0px 0px 0px 0px; background-color:#FFFFFF; white-space:nowrap;} +/*.btn_blue {float:none; background:url(../../images/rte/btn_bg_l.gif) 0 0 no-repeat; height:20px; padding:1px 0px 10px 10px; margin:0px 0px 0px 0px;}*/ +.btn_blue_l {float:left; background:url(../../images/rte/btn_bg_l.gif) 0 0 no-repeat; height:20px; padding:0px 0px 0px 10px; margin:0px 0px 0px 0px;} +.btn_blue_r {float:left; background:url(../../images/rte/btn_bg_r.gif) 0 0 no-repeat; background-position:right; height:20px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px; color:#000000; margin:0px 0px 0px 0px; padding-top:0px; _padding-top:0px; padding-left:10px; padding-right:10px; padding-bottom:0px; text-align:center;} +/*input { height:20px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:12px; color:#000000; padding:2px 2px 0px 2px; margin-top:0px; _margin-top:-1px;}*/ +select {font-family:'占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲'; font-size:12px; margin-top:0px; height:20px; padding-top:0px;} +.tb {width:100%; bordercolor:#D3E2EC; bordercolordark:#FFFFFF; BORDER-TOP:#C2D0DB 2px solid; BORDER-LEFT:#ffffff 1px solid; BORDER-RIGHT:#ffffff 1px solid; BORDER-BOTTOM:#C2D0DB 1px solid; border-collapse: collapse;} + +/*input.txt {height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;}*/ +input.essentiality {height:18px; background-color:#ebebeb; border:1px solid #BCC8D8; padding-top:2px; color:#000; cursor:text;} + +/* Layout */ +#wrap{margin-left:0px;width:100%;background: url("../../images/body/background_sky.jpg") no-repeat 0 0;height:59px;} +/*#footer{clear:both;width:100%;font-size:100%;border-top:2px solid #dddddd;}*/ +#header{/*padding-top:5px;*/} +#leftmenu{display:none; z-index: 1000; margin-top: 100px; position:absolute; width:200px;min-height:440px; height:auto !important; height:100%; } +/*#container{float:left;width:1100px; margin-top:0px;min-height:440px; height:auto !important; height:440px;}*/ +#mopaslogo{float:left;padding-top:10px;padding-left:10px;} +#copyright{float:left;font-size:90%;padding-top:20px;padding-left:20px; letter-spacing: -1px;} +#logoarea{float:left;padding-left:10px;} +#languagearea{width:890px;padding-top:20px} +#langImg{float:right;padding-left:10px;} +#project_title{float:left;padding-top:7px;padding-left:14px;font-size:130%;letter-spacing:-1px;} +#project_title .maintitle{color:#e68c0d;font-weight:bold;} +#LoginStatus fieldset{border:3px solid #C9E8F3;padding:5px;width:160px;margin-left:10px;margin-top:20px;height:40px;;display:inline;} +#LoginStatus ul li{padding-bottom:5px; list-style-type:none;} +#nav{margin-left:10px;margin-top:10px;margin-bottom:10px;background: url("../../images/leftmenu/leftmenu_repeat.gif") repeat-y scroll 0 0 transparent; margin-bottom: 10px;} +.navtop{ + background: url("../../images/leftmenu/leftmenu_top.gif") no-repeat scroll left top transparent; + padding: 0px 3px 3px 15px;height:10px;} +#nav ul{list-style-type:none;} +#nav a{} +#nav ul li{ + background: url("../../images/leftmenu/bl_depth01.gif") no-repeat 140px 8px; + border-top: 1px solid #EAEAEA; + padding: 4px 6px 1px;} +#nav ul li ul{border-top: 1px solid #EAEAEA;} +#nav ul li ul li { +background: url("../../images/leftmenu/snbmenu_board.gif") no-repeat scroll 0 11px transparent; +border: medium none; +font-size: 0.92em; +line-height: 1.27em; +margin: 0; background-color:#f2f2f2; +} +.nav_style{width:150px;padding-left:14px;} +.leftmenu_dept01{font-weight:bold;margin-top:10px;} + + +.dept02 a{font-weight:normal;} +.dept02 a:link { + color: #666666; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.dept02 a:visited { + color: #666666; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} + +.dept02 a:active { + color: blue; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.dept02 a:hover { + color: blue; + font-family: "�뜝�럥利삣뜝�룞�삕"; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.bottom{ + background: url("../../images/leftmenu/leftmenu_bottom.gif") no-repeat scroll left bottom transparent; + padding: 0px 3px 3px 15px;height:10px;} + +.tableBackImg{ + background: url("../../images/error/blue_bg.jpg") + } + +/* + 2016.09.30 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ + +.header_menu ul{list-style-type: none;margin: 0; padding: 0;overflow: hidden;display: inline-block;} +.header_menu li{float:left;list-style:none;padding-left: 5px;} +.header_user{text-align:right;} +#menu1{text-align:right;} +.current{font-weight: bold;} + +.sub_menu{width:100%;height:50px;text-align:right;margin-bottom:10px; overflow : hidden;} +.sub_menu ul{float: right; margin: 0; padding: 25px 0 0 0; display: inline-block;} +.sub_menu li{float:left;list-style:none;padding-left: 5px;} +.sub_menu li a {font-size:12px;} + + + +/* + 2016.10.27 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ + +/* + .memberAdd td {border:1px #C8C8C8 solid; padding:1px;} +.memberAdd input, .memberAdd select {height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;} +*/ +/* + 2016.11.17~22 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ +/*#pwMenu table {width:400px;} +#pwMenu table td {border:1px #C8C8C8 solid; padding:1px;} +#pwMenu input {width:90%;height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;} + +/*.placeList {margin-bottom: 15px;height:40px;} +.placeList ul {margin:0; padding:0; float:left;} +.placeList li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;border: 1px solid #000;padding: 1px;} +.memberList {text-align: center;} +.memberList td {padding:20px; width:200px;text-align: center;} +.memberList td .image img {border: 1px solid #000;} +.memberList ul {margin:0 auto; padding: 1px;width:200px;} +.memberList li {list-style-type:none; margin:0 0 0 0; padding:0 0 0 3px;} +.memberList .value {width:90px;display:inline-block;} +.memberList .key {width:50px;display:inline-block;text-align:right;font-weight: bold; padding-right: 3px;} +*/ + +/* + 2016.11.07 + 濚밸㉡�삕�뜝�럥嫄쀦쾬�꼻�삕 + - textarea �뼨轅명�∽옙沅� �뜝�럥裕욃뜝�룞�삕�뜝�럩逾� 嶺뚯쉻�삕�뜝�럩�젧 +*/ +textarea.ta {width:100%; min-height:100px;} + +/* + 2016.12.14 �뜝�럥由��뜝�럩寃ョ춯�쉻�삕 + td �뤆�룊�삕�뜝�럩�뮧�뜝�럥�몥 �뜝�럩�젧�뜝�럩議� +*/ +.tbtd_caption.txt_center {text-align: center;} +.tbtd_content.txt_center {text-align: center;} + +/* + 2016.12.14 �뜝�럥由��뜝�럩寃ョ춯�쉻�삕 + �뤆�룆踰∽옙占� �뜝�럡�돰�뜝�럡留� +*/ +.highlight { + background-color: #fe9; +} diff --git a/src/main/webapp/css/fonts/NanumGothic-Bold.eot b/src/main/webapp/css/fonts/NanumGothic-Bold.eot new file mode 100644 index 0000000..3cc7cf7 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Bold.eot differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Bold.ttf b/src/main/webapp/css/fonts/NanumGothic-Bold.ttf new file mode 100644 index 0000000..c24b0e7 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Bold.ttf differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Bold.woff b/src/main/webapp/css/fonts/NanumGothic-Bold.woff new file mode 100644 index 0000000..2dde3b8 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Bold.woff differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Bold.woff2 b/src/main/webapp/css/fonts/NanumGothic-Bold.woff2 new file mode 100644 index 0000000..3a8ba51 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Bold.woff2 differ diff --git a/src/main/webapp/css/fonts/NanumGothic-ExtraBold.eot b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.eot new file mode 100644 index 0000000..1e4a173 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.eot differ diff --git a/src/main/webapp/css/fonts/NanumGothic-ExtraBold.ttf b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.ttf new file mode 100644 index 0000000..c85adc7 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.ttf differ diff --git a/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff new file mode 100644 index 0000000..72994aa Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff differ diff --git a/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff2 b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff2 new file mode 100644 index 0000000..ab15e47 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-ExtraBold.woff2 differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Regular.eot b/src/main/webapp/css/fonts/NanumGothic-Regular.eot new file mode 100644 index 0000000..7494146 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Regular.eot differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Regular.ttf b/src/main/webapp/css/fonts/NanumGothic-Regular.ttf new file mode 100644 index 0000000..c14ce88 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Regular.ttf differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Regular.woff b/src/main/webapp/css/fonts/NanumGothic-Regular.woff new file mode 100644 index 0000000..eebb7bc Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Regular.woff differ diff --git a/src/main/webapp/css/fonts/NanumGothic-Regular.woff2 b/src/main/webapp/css/fonts/NanumGothic-Regular.woff2 new file mode 100644 index 0000000..4499032 Binary files /dev/null and b/src/main/webapp/css/fonts/NanumGothic-Regular.woff2 differ diff --git a/src/main/webapp/css/lib/images/ui-icons_444444_256x240.png b/src/main/webapp/css/lib/images/ui-icons_444444_256x240.png new file mode 100644 index 0000000..19f664d Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_444444_256x240.png differ diff --git a/src/main/webapp/css/lib/images/ui-icons_555555_256x240.png b/src/main/webapp/css/lib/images/ui-icons_555555_256x240.png new file mode 100644 index 0000000..e965f6d Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_555555_256x240.png differ diff --git a/src/main/webapp/css/lib/images/ui-icons_777620_256x240.png b/src/main/webapp/css/lib/images/ui-icons_777620_256x240.png new file mode 100644 index 0000000..9785948 Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_777620_256x240.png differ diff --git a/src/main/webapp/css/lib/images/ui-icons_777777_256x240.png b/src/main/webapp/css/lib/images/ui-icons_777777_256x240.png new file mode 100644 index 0000000..323c456 Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_777777_256x240.png differ diff --git a/src/main/webapp/css/lib/images/ui-icons_cc0000_256x240.png b/src/main/webapp/css/lib/images/ui-icons_cc0000_256x240.png new file mode 100644 index 0000000..45ac778 Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_cc0000_256x240.png differ diff --git a/src/main/webapp/css/lib/images/ui-icons_ffffff_256x240.png b/src/main/webapp/css/lib/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..fe41d2d Binary files /dev/null and b/src/main/webapp/css/lib/images/ui-icons_ffffff_256x240.png differ diff --git a/src/main/webapp/css/lib/jquery-ui.css b/src/main/webapp/css/lib/jquery-ui.css new file mode 100644 index 0000000..14a10fb --- /dev/null +++ b/src/main/webapp/css/lib/jquery-ui.css @@ -0,0 +1,1314 @@ +/*! jQuery UI - v1.12.1 - 2016-10-23 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +/* 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-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; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.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; + font-size: 100%; +} +.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-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.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-wrapper { + 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-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + /* Support: IE <= 11 */ + overflow: visible; +} + +.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: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 40 */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + + /* Support: IE8 only, Android < 4.4 only */ + width: 75%; + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.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; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; + background-color: #29559f; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; + fo +} +.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-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.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-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} +.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: .222em 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + 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-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} +.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; +} +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.ui-widget-content { + border: 1px solid #c5c5c5; +} +.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: #ffffff; + 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, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + 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, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + 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, +.ui-button:hover, +.ui-button: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, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-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-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.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-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .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"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-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: -65px -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: -65px -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: 1px -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 { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/src/main/webapp/css/lib/jquery.datetimepicker.css b/src/main/webapp/css/lib/jquery.datetimepicker.css new file mode 100644 index 0000000..4ed981a --- /dev/null +++ b/src/main/webapp/css/lib/jquery.datetimepicker.css @@ -0,0 +1,568 @@ +.xdsoft_datetimepicker { + box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506); + background: #fff; + border-bottom: 1px solid #bbb; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-top: 1px solid #ccc; + color: #333; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 8px; + padding-left: 0; + padding-top: 2px; + position: absolute; + z-index: 9999; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: none; +} +.xdsoft_datetimepicker.xdsoft_rtl { + padding: 8px 0 8px 8px; +} + +.xdsoft_datetimepicker iframe { + position: absolute; + left: 0; + top: 0; + width: 75px; + height: 210px; + background: transparent; + border: none; +} + +/*For IE8 or lower*/ +.xdsoft_datetimepicker button { + border: none !important; +} + +.xdsoft_noselect { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.xdsoft_noselect::selection { background: transparent } +.xdsoft_noselect::-moz-selection { background: transparent } + +.xdsoft_datetimepicker.xdsoft_inline { + display: inline-block; + position: static; + box-shadow: none; +} + +.xdsoft_datetimepicker * { + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin: 0; +} + +.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker { + display: none; +} + +.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active { + display: block; +} + +.xdsoft_datetimepicker .xdsoft_datepicker { + width: 224px; + float: left; + margin-left: 8px; +} +.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker { + float: right; + margin-right: 8px; + margin-left: 0; +} + +.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker { + width: 256px; +} + +.xdsoft_datetimepicker .xdsoft_timepicker { + width: 58px; + float: left; + text-align: center; + margin-left: 8px; + margin-top: 0; +} +.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker { + float: right; + margin-right: 8px; + margin-left: 0; +} + +.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker { + margin-top: 8px; + margin-bottom: 3px +} + +.xdsoft_datetimepicker .xdsoft_monthpicker { + position: relative; + text-align: center; +} + +.xdsoft_datetimepicker .xdsoft_label i, +.xdsoft_datetimepicker .xdsoft_prev, +.xdsoft_datetimepicker .xdsoft_next, +.xdsoft_datetimepicker .xdsoft_today_button { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC); +} + +.xdsoft_datetimepicker .xdsoft_label i { + opacity: 0.5; + background-position: -92px -19px; + display: inline-block; + width: 9px; + height: 20px; + vertical-align: middle; +} + +.xdsoft_datetimepicker .xdsoft_prev { + float: left; + background-position: -20px 0; +} +.xdsoft_datetimepicker .xdsoft_today_button { + float: left; + background-position: -70px 0; + margin-left: 5px; +} + +.xdsoft_datetimepicker .xdsoft_next { + float: right; + background-position: 0 0; +} + +.xdsoft_datetimepicker .xdsoft_next, +.xdsoft_datetimepicker .xdsoft_prev , +.xdsoft_datetimepicker .xdsoft_today_button { + background-color: transparent; + background-repeat: no-repeat; + border: 0 none; + cursor: pointer; + display: block; + height: 30px; + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + outline: medium none; + overflow: hidden; + padding: 0; + position: relative; + text-indent: 100%; + white-space: nowrap; + width: 20px; + min-width: 0; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next { + float: none; + background-position: -40px -15px; + height: 15px; + width: 30px; + display: block; + margin-left: 14px; + margin-top: 7px; +} +.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev, +.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next { + float: none; + margin-left: 0; + margin-right: 14px; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev { + background-position: -40px 0; + margin-bottom: 7px; + margin-top: 0; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box { + height: 151px; + overflow: hidden; + border-bottom: 1px solid #ddd; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div { + background: #f5f5f5; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + text-align: center; + border-collapse: collapse; + cursor: pointer; + border-bottom-width: 0; + height: 25px; + line-height: 25px; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child { + border-top-width: 0; +} + +.xdsoft_datetimepicker .xdsoft_today_button:hover, +.xdsoft_datetimepicker .xdsoft_next:hover, +.xdsoft_datetimepicker .xdsoft_prev:hover { + opacity: 1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; +} + +.xdsoft_datetimepicker .xdsoft_label { + display: inline; + position: relative; + z-index: 9999; + margin: 0; + padding: 5px 3px; + font-size: 14px; + line-height: 20px; + font-weight: bold; + background-color: #fff; + float: left; + width: 182px; + text-align: center; + cursor: pointer; +} + +.xdsoft_datetimepicker .xdsoft_label:hover>span { + text-decoration: underline; +} + +.xdsoft_datetimepicker .xdsoft_label:hover i { + opacity: 1.0; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select { + border: 1px solid #ccc; + position: absolute; + right: 0; + top: 30px; + z-index: 101; + display: none; + background: #fff; + max-height: 160px; + overflow-y: hidden; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px } +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px } +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { + color: #fff; + background: #ff8000; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option { + padding: 2px 10px 2px 5px; + text-decoration: none !important; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { + background: #33aaff; + box-shadow: #178fe5 0 1px 3px 0 inset; + color: #fff; + font-weight: 700; +} + +.xdsoft_datetimepicker .xdsoft_month { + width: 100px; + text-align: right; +} + +.xdsoft_datetimepicker .xdsoft_calendar { + clear: both; +} + +.xdsoft_datetimepicker .xdsoft_year{ + width: 48px; + margin-left: 5px; +} + +.xdsoft_datetimepicker .xdsoft_calendar table { + border-collapse: collapse; + width: 100%; + +} + +.xdsoft_datetimepicker .xdsoft_calendar td > div { + padding-right: 5px; +} + +.xdsoft_datetimepicker .xdsoft_calendar th { + height: 25px; +} + +.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th { + width: 14.2857142%; + background: #f5f5f5; + border: 1px solid #ddd; + color: #666; + font-size: 12px; + text-align: right; + vertical-align: middle; + padding: 0; + border-collapse: collapse; + cursor: pointer; + height: 25px; +} +.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th { + width: 12.5%; +} + +.xdsoft_datetimepicker .xdsoft_calendar th { + background: #f1f1f1; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today { + color: #33aaff; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default { + background: #ffe9d2; + box-shadow: #ffb871 0 1px 4px 0 inset; + color: #000; +} +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint { + background: #c1ffc9; + box-shadow: #00dd1c 0 1px 4px 0 inset; + color: #000; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { + background: #33aaff; + box-shadow: #178fe5 0 1px 3px 0 inset; + color: #fff; + font-weight: 700; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month, +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled, +.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled { + opacity: 0.5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + cursor: default; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled { + opacity: 0.2; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; +} + +.xdsoft_datetimepicker .xdsoft_calendar td:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover { + color: #fff !important; + background: #ff8000 !important; + box-shadow: none !important; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover { + background: #33aaff !important; + box-shadow: #178fe5 0 1px 3px 0 inset !important; + color: #fff !important; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover { + color: inherit !important; + background: inherit !important; + box-shadow: inherit !important; +} + +.xdsoft_datetimepicker .xdsoft_calendar th { + font-weight: 700; + text-align: center; + color: #999; + cursor: default; +} + +.xdsoft_datetimepicker .xdsoft_copyright { + color: #ccc !important; + font-size: 10px; + clear: both; + float: none; + margin-left: 8px; +} + +.xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important } +.xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important } + +.xdsoft_time_box { + position: relative; + border: 1px solid #ccc; +} +.xdsoft_scrollbar >.xdsoft_scroller { + background: #ccc !important; + height: 20px; + border-radius: 3px; +} +.xdsoft_scrollbar { + position: absolute; + width: 7px; + right: 0; + top: 0; + bottom: 0; + cursor: pointer; +} +.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar { + left: 0; + right: auto; +} +.xdsoft_scroller_box { + position: relative; +} + +.xdsoft_datetimepicker.xdsoft_dark { + box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506); + background: #000; + border-bottom: 1px solid #444; + border-left: 1px solid #333; + border-right: 1px solid #333; + border-top: 1px solid #333; + color: #ccc; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box { + border-bottom: 1px solid #222; +} +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div { + background: #0a0a0a; + border-top: 1px solid #222; + color: #999; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label { + background-color: #000; +} +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select { + border: 1px solid #333; + background: #000; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { + color: #000; + background: #007fff; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { + background: #cc5500; + box-shadow: #b03e00 0 1px 3px 0 inset; + color: #000; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==); +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { + background: #0a0a0a; + border: 1px solid #222; + color: #999; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { + background: #0e0e0e; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today { + color: #cc5500; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default { + background: #ffe9d2; + box-shadow: #ffb871 0 1px 4px 0 inset; + color:#000; +} +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint { + background: #c1ffc9; + box-shadow: #00dd1c 0 1px 4px 0 inset; + color:#000; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { + background: #cc5500; + box-shadow: #b03e00 0 1px 3px 0 inset; + color: #000; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover { + color: #000 !important; + background: #007fff !important; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { + color: #666; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important } +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important } +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important } + +.xdsoft_dark .xdsoft_time_box { + border: 1px solid #333; +} + +.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller { + background: #333 !important; +} +.xdsoft_datetimepicker .xdsoft_save_selected { + display: block; + border: 1px solid #dddddd !important; + margin-top: 5px; + width: 100%; + color: #454551; + font-size: 13px; +} +.xdsoft_datetimepicker .blue-gradient-button { + font-family: "museo-sans", "Book Antiqua", sans-serif; + font-size: 12px; + font-weight: 300; + color: #82878c; + height: 28px; + position: relative; + padding: 4px 17px 4px 33px; + border: 1px solid #d7d8da; + background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* IE10+ */ + background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%); + /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 ); +/* IE6-9 */ +} +.xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span { + color: #454551; + background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* IE10+ */ + background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%); + /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 ); + /* IE6-9 */ +} diff --git a/src/main/webapp/css/lib/jquery.datetimepicker.full.min.js b/src/main/webapp/css/lib/jquery.datetimepicker.full.min.js new file mode 100644 index 0000000..a55d541 --- /dev/null +++ b/src/main/webapp/css/lib/jquery.datetimepicker.full.min.js @@ -0,0 +1,2 @@ +var DateFormatter;!function(){"use strict";var e,t,a,r,n,o;n=864e5,o=3600,e=function(e,t){return"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()},t=function(e,a,r){var n=r||"0",o=e.toString();return o.lengths?"20":"19")+i):4===f&&(y.year=s),h=!0;break;case"m":case"n":case"M":case"F":isNaN(i)?(d=p.monthsShort.indexOf(i),d>-1&&(y.month=d+1),d=p.months.indexOf(i),d>-1&&(y.month=d+1)):s>=1&&12>=s&&(y.month=s),h=!0;break;case"d":case"j":s>=1&&31>=s&&(y.day=s),h=!0;break;case"g":case"h":u=r.indexOf("a")>-1?r.indexOf("a"):r.indexOf("A")>-1?r.indexOf("A"):-1,c=n[u],u>-1?(l=e(c,p.meridiem[0])?0:e(c,p.meridiem[1])?12:-1,s>=1&&12>=s&&l>-1?y.hour=s+l:s>=0&&23>=s&&(y.hour=s)):s>=0&&23>=s&&(y.hour=s),g=!0;break;case"G":case"H":s>=0&&23>=s&&(y.hour=s),g=!0;break;case"i":s>=0&&59>=s&&(y.min=s),g=!0;break;case"s":s>=0&&59>=s&&(y.sec=s),g=!0}if(h===!0&&y.year&&y.month&&y.day)y.date=new Date(y.year,y.month-1,y.day,y.hour,y.min,y.sec,0);else{if(g!==!0)return!1;y.date=new Date(0,0,0,y.hour,y.min,y.sec,0)}return y.date},guessDate:function(e,t){if("string"!=typeof e)return e;var a,r,n,o,i=this,s=e.replace(i.separators,"\x00").split("\x00"),d=/^[djmn]/g,u=t.match(i.validParts),l=new Date,f=0;if(!d.test(u[0]))return e;for(r=0;r0&&s.splice(r+1,0,n.substr(f))}return l},parseFormat:function(e,a){var r,i=this,s=i.dateSettings,d=/\\?(.?)/gi,u=function(e,t){return r[e]?r[e]():t};return r={d:function(){return t(r.j(),2)},D:function(){return s.daysShort[r.w()]},j:function(){return a.getDate()},l:function(){return s.days[r.w()]},N:function(){return r.w()||7},w:function(){return a.getDay()},z:function(){var e=new Date(r.Y(),r.n()-1,r.j()),t=new Date(r.Y(),0,1);return Math.round((e-t)/n)},W:function(){var e=new Date(r.Y(),r.n()-1,r.j()-r.N()+3),a=new Date(e.getFullYear(),0,4);return t(1+Math.round((e-a)/n/7),2)},F:function(){return s.months[a.getMonth()]},m:function(){return t(r.n(),2)},M:function(){return s.monthsShort[a.getMonth()]},n:function(){return a.getMonth()+1},t:function(){return new Date(r.Y(),r.n(),0).getDate()},L:function(){var e=r.Y();return e%4===0&&e%100!==0||e%400===0?1:0},o:function(){var e=r.n(),t=r.W(),a=r.Y();return a+(12===e&&9>t?1:1===e&&t>9?-1:0)},Y:function(){return a.getFullYear()},y:function(){return r.Y().toString().slice(-2)},a:function(){return r.A().toLowerCase()},A:function(){var e=r.G()<12?0:1;return s.meridiem[e]},B:function(){var e=a.getUTCHours()*o,r=60*a.getUTCMinutes(),n=a.getUTCSeconds();return t(Math.floor((e+r+n+o)/86.4)%1e3,3)},g:function(){return r.G()%12||12},G:function(){return a.getHours()},h:function(){return t(r.g(),2)},H:function(){return t(r.G(),2)},i:function(){return t(a.getMinutes(),2)},s:function(){return t(a.getSeconds(),2)},u:function(){return t(1e3*a.getMilliseconds(),6)},e:function(){var e=/\((.*)\)/.exec(String(a))[1];return e||"Coordinated Universal Time"},T:function(){var e=(String(a).match(i.tzParts)||[""]).pop().replace(i.tzClip,"");return e||"UTC"},I:function(){var e=new Date(r.Y(),0),t=Date.UTC(r.Y(),0),a=new Date(r.Y(),6),n=Date.UTC(r.Y(),6);return e-t!==a-n?1:0},O:function(){var e=a.getTimezoneOffset(),r=Math.abs(e);return(e>0?"-":"+")+t(100*Math.floor(r/60)+r%60,4)},P:function(){var e=r.O();return e.substr(0,3)+":"+e.substr(3,2)},Z:function(){return 60*-a.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(d,u)},r:function(){return"D, d M Y H:i:s O".replace(d,u)},U:function(){return a.getTime()/1e3||0}},u(e,e)},formatDate:function(e,t){var a,r,n,o,i,s=this,d="";if("string"==typeof e&&(e=s.parseDate(e,t),e===!1))return!1;if(e instanceof Date){for(n=t.length,a=0;n>a;a++)i=t.charAt(a),"S"!==i&&(o=s.parseFormat(i,e),a!==n-1&&s.intParts.test(i)&&"S"===t.charAt(a+1)&&(r=parseInt(o),o+=s.dateSettings.ordinal(r)),d+=o);return d}return""}}}(),function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";function t(e,t,a){this.date=e,this.desc=t,this.style=a}var a={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["January","Februar","Marts","April","Maj","Juni","July","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,disabledMinTime:!1,disabledMaxTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1},r=null,n="en",o="en",i={meridiem:["AM","PM"]},s=function(){var t=a.i18n[o],n={days:t.dayOfWeek,daysShort:t.dayOfWeekShort,months:t.months,monthsShort:e.map(t.months,function(e){return e.substring(0,3)})};r=new DateFormatter({dateSettings:e.extend({},i,n)})};e.datetimepicker={setLocale:function(e){var t=a.i18n[e]?e:n;o!=t&&(o=t,s())},setDateFormatter:function(e){r=e},RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},s(),window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var a=/(\-([a-z]){1})/g;return"float"===t&&(t="styleFloat"),a.test(t)&&(t=t.replace(a,function(e,t,a){return a.toUpperCase()})),e.currentStyle[t]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,r;for(a=t||0,r=this.length;r>a;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},e.fn.xdsoftScroller=function(t){return this.each(function(){var a,r,n,o,i,s=e(this),d=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):("mousedown"===e.type||"mouseup"===e.type||"mousemove"===e.type||"mouseover"===e.type||"mouseout"===e.type||"mouseenter"===e.type||"mouseleave"===e.type)&&(a.x=e.clientX,a.y=e.clientY),a},u=100,l=!1,f=0,c=0,m=0,h=!1,g=0,p=function(){};return"hide"===t?void s.find(".xdsoft_scrollbar").hide():(e(this).hasClass("xdsoft_scroller_box")||(a=s.children().eq(0),r=s[0].clientHeight,n=a[0].offsetHeight,o=e('
'),i=e('
'),o.append(i),s.addClass("xdsoft_scroller_box").append(o),p=function(e){var t=d(e).y-f+g;0>t&&(t=0),t+i[0].offsetHeight>m&&(t=m-i[0].offsetHeight),s.trigger("scroll_element.xdsoft_scroller",[u?t/u:0])},i.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(a){r||s.trigger("resize_scroll.xdsoft_scroller",[t]),f=d(a).y,g=parseInt(i.css("margin-top"),10),m=o[0].offsetHeight,"mousedown"===a.type||"touchstart"===a.type?(document&&e(document.body).addClass("xdsoft_noselect"),e([document.body,window]).on("touchend mouseup.xdsoft_scroller",function n(){e([document.body,window]).off("touchend mouseup.xdsoft_scroller",n).off("mousemove.xdsoft_scroller",p).removeClass("xdsoft_noselect")}),e(document.body).on("mousemove.xdsoft_scroller",p)):(h=!0,a.stopPropagation(),a.preventDefault())}).on("touchmove",function(e){h&&(e.preventDefault(),p(e))}).on("touchend touchcancel",function(){h=!1,g=0}),s.on("scroll_element.xdsoft_scroller",function(e,t){r||s.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=t>1?1:0>t||isNaN(t)?0:t,i.css("margin-top",u*t),setTimeout(function(){a.css("marginTop",-parseInt((a[0].offsetHeight-r)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,d){var l,f;r=s[0].clientHeight,n=a[0].offsetHeight,l=r/n,f=l*o[0].offsetHeight,l>1?i.hide():(i.show(),i.css("height",parseInt(f>10?f:10,10)),u=o[0].offsetHeight-i[0].offsetHeight,d!==!0&&s.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(a.css("marginTop"),10))/(n-r)]))}),s.on("mousewheel",function(e){var t=Math.abs(parseInt(a.css("marginTop"),10));return t-=20*e.deltaY,0>t&&(t=0),s.trigger("scroll_element.xdsoft_scroller",[t/(n-r)]),e.stopPropagation(),!1}),s.on("touchstart",function(e){l=d(e),c=Math.abs(parseInt(a.css("marginTop"),10))}),s.on("touchmove",function(e){if(l){e.preventDefault();var t=d(e);s.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-l.y))/(n-r)])}}),s.on("touchend touchcancel",function(){l=!1,c=0})),void s.trigger("resize_scroll.xdsoft_scroller",[t]))})},e.fn.datetimepicker=function(n,i){var s,d,u=this,l=48,f=57,c=96,m=105,h=17,g=46,p=13,y=27,v=8,b=37,D=38,k=39,x=40,T=9,S=116,w=65,O=67,M=86,_=90,W=89,F=!1,C=e.isPlainObject(n)||!n?e.extend(!0,{},a,n):e.extend(!0,{},a),P=0,A=function(e){e.on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function t(){e.is(":disabled")||e.data("xdsoft_datetimepicker")||(clearTimeout(P),P=setTimeout(function(){e.data("xdsoft_datetimepicker")||s(e),e.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",t).trigger("open.xdsoft")},100))})};return s=function(a){function i(){var e,t=!1;return C.startDate?t=j.strToDate(C.startDate):(t=C.value||(a&&a.val&&a.val()?a.val():""),t?t=j.strToDateTime(t):C.defaultDate&&(t=j.strToDateTime(C.defaultDate),C.defaultTime&&(e=j.strtotime(C.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes())))),t&&j.isValidDate(t)?J.data("changed",!0):t="",t||0}function s(t){var r=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},n=function(e){try{if(document.selection&&document.selection.createRange){var t=document.selection.createRange();return t.getBookmark().charCodeAt(2)-2}if(e.setSelectionRange)return e.selectionStart}catch(a){return 0}},o=function(e,t){if(e="string"==typeof e||e instanceof String?document.getElementById(e):e,!e)return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return e.setSelectionRange?(e.setSelectionRange(t,t),!0):!1};t.mask&&a.off("keydown.xdsoft"),t.mask===!0&&(t.mask="undefined"!=typeof moment?t.format.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59"):t.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===e.type(t.mask)&&(r(t.mask,a.val())||(a.val(t.mask.replace(/[0-9]/g,"_")),o(a[0],0)),a.on("keydown.xdsoft",function(i){var s,d,u=this.value,C=i.which;if(C>=l&&f>=C||C>=c&&m>=C||C===v||C===g){for(s=n(this),d=C!==v&&C!==g?String.fromCharCode(C>=c&&m>=C?C-l:C):"_",C!==v&&C!==g||!s||(s-=1,d="_");/[^0-9_]/.test(t.mask.substr(s,1))&&s0;)s+=C===v||C===g?-1:1;if(u=u.substr(0,s)+d+u.substr(s+1),""===e.trim(u))u=t.mask.replace(/[0-9]/g,"_");else if(s===t.mask.length)return i.preventDefault(),!1;for(s+=C===v||C===g?0:1;/[^0-9_]/.test(t.mask.substr(s,1))&&s0;)s+=C===v||C===g?-1:1;r(t.mask,u)?(this.value=u,o(this,s)):""===e.trim(u)?this.value=t.mask.replace(/[0-9]/g,"_"):a.trigger("error_input.xdsoft")}else if(-1!==[w,O,M,_,W].indexOf(C)&&F||-1!==[y,D,x,b,k,S,h,T,p].indexOf(C))return!0;return i.preventDefault(),!1}))}var d,u,P,A,Y,j,H,J=e('
'),z=e(''),I=e('
'),N=e('
'),L=e('
'),E=e('
'),R=E.find(".xdsoft_time_box").eq(0),B=e('
'),V=e(''),G=e('
'),U=e('
'),q=!1,X=0;C.id&&J.attr("id",C.id),C.style&&J.attr("style",C.style),C.weeks&&J.addClass("xdsoft_showweeks"),C.rtl&&J.addClass("xdsoft_rtl"),J.addClass("xdsoft_"+C.theme),J.addClass(C.className),N.find(".xdsoft_month span").after(G),N.find(".xdsoft_year span").after(U),N.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(t){var a,r,n=e(this).find(".xdsoft_select").eq(0),o=0,i=0,s=n.is(":visible");for(N.find(".xdsoft_select").hide(),j.currentTime&&(o=j.currentTime[e(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),n[s?"hide":"show"](),a=n.find("div.xdsoft_option"),r=0;r=i;)u=new t(i,d,c),l=r.formatDate(i,C.formatDate),i.setDate(i.getDate()+1),void 0!==o[l]?(f=o[l].desc,f&&f.length&&u.desc&&u.desc.length&&(o[l].desc=f+"\n"+u.desc)):o[l]=u}),C.highlightedDates=e.extend(!0,[],o)),n.disabledDates&&e.isArray(n.disabledDates)&&n.disabledDates.length&&(C.disabledDates=e.extend(!0,[],n.disabledDates)),n.disabledWeekDays&&e.isArray(n.disabledWeekDays)&&n.disabledWeekDays.length&&(C.disabledWeekDays=e.extend(!0,[],n.disabledWeekDays)),!C.open&&!C.opened||C.inline||a.trigger("open.xdsoft"),C.inline&&(q=!0,J.addClass("xdsoft_inline"),a.after(J).hide()),C.inverseButton&&(C.next="xdsoft_prev",C.prev="xdsoft_next"),C.datepicker?I.addClass("active"):I.removeClass("active"),C.timepicker?E.addClass("active"):E.removeClass("active"),C.value&&(j.setCurrentTime(C.value),a&&a.val&&a.val(j.str)),C.dayOfWeekStart=isNaN(C.dayOfWeekStart)?0:parseInt(C.dayOfWeekStart,10)%7,C.timepickerScrollbar||R.xdsoftScroller("hide"),C.minDate&&/^[\+\-](.*)$/.test(C.minDate)&&(C.minDate=r.formatDate(j.strToDateTime(C.minDate),C.formatDate)),C.maxDate&&/^[\+\-](.*)$/.test(C.maxDate)&&(C.maxDate=r.formatDate(j.strToDateTime(C.maxDate),C.formatDate)),V.toggle(C.showApplyButton),N.find(".xdsoft_today_button").css("visibility",C.todayButton?"visible":"hidden"),N.find("."+C.prev).css("visibility",C.prevButton?"visible":"hidden"),N.find("."+C.next).css("visibility",C.nextButton?"visible":"hidden"),s(C),C.validateOnBlur&&a.off("blur.xdsoft").on("blur.xdsoft",function(){if(C.allowBlank&&(!e.trim(e(this).val()).length||"string"==typeof C.mask&&e.trim(e(this).val())===C.mask.replace(/[0-9]/g,"_")))e(this).val(null),J.data("xdsoft_datetime").empty();else{var t=r.parseDate(e(this).val(),C.format);if(t)e(this).val(r.formatDate(t,C.format));else{var a=+[e(this).val()[0],e(this).val()[1]].join(""),n=+[e(this).val()[2],e(this).val()[3]].join("");e(this).val(!C.datepicker&&C.timepicker&&a>=0&&24>a&&n>=0&&60>n?[a,n].map(function(e){return e>9?e:"0"+e}).join(":"):r.formatDate(j.now(),C.format))}J.data("xdsoft_datetime").setCurrentTime(e(this).val())}J.trigger("changedatetime.xdsoft"),J.trigger("close.xdsoft")}),C.dayOfWeekStartPrev=0===C.dayOfWeekStart?6:C.dayOfWeekStart-1,J.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},J.data("options",C).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),U.hide(),G.hide(),!1}),R.append(B),R.xdsoftScroller(),J.on("afterOpen.xdsoft",function(){R.xdsoftScroller()}),J.append(I).append(E),C.withoutCopyright!==!0&&J.append(z),I.append(N).append(L).append(V),e(C.parentID).append(J),d=function(){var t=this;t.now=function(e){var a,r,n=new Date;return!e&&C.defaultDate&&(a=t.strToDateTime(C.defaultDate),n.setFullYear(a.getFullYear()),n.setMonth(a.getMonth()),n.setDate(a.getDate())),C.yearOffset&&n.setFullYear(n.getFullYear()+C.yearOffset),!e&&C.defaultTime&&(r=t.strtotime(C.defaultTime),n.setHours(r.getHours()),n.setMinutes(r.getMinutes())),n},t.isValidDate=function(e){return"[object Date]"!==Object.prototype.toString.call(e)?!1:!isNaN(e.getTime())},t.setCurrentTime=function(e,a){t.currentTime="string"==typeof e?t.strToDateTime(e):t.isValidDate(e)?e:e||a||!C.allowBlank?t.now():null,J.trigger("xchange.xdsoft")},t.empty=function(){t.currentTime=null},t.getCurrentTime=function(){return t.currentTime},t.nextMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a,r=t.currentTime.getMonth()+1;return 12===r&&(t.currentTime.setFullYear(t.currentTime.getFullYear()+1),r=0),a=t.currentTime.getFullYear(),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),r+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(r),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),a!==t.currentTime.getFullYear()&&e.isFunction(C.onChangeYear)&&C.onChangeYear.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),r},t.prevMonth=function(){(void 0===t.currentTime||null===t.currentTime)&&(t.currentTime=t.now());var a=t.currentTime.getMonth()-1;return-1===a&&(t.currentTime.setFullYear(t.currentTime.getFullYear()-1),a=11),t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(),a+1,0).getDate(),t.currentTime.getDate())),t.currentTime.setMonth(a),C.onChangeMonth&&e.isFunction(C.onChangeMonth)&&C.onChangeMonth.call(J,j.currentTime,J.data("input")),J.trigger("xchange.xdsoft"),a},t.getWeekOfYear=function(t){if(C.onGetWeekOfYear&&e.isFunction(C.onGetWeekOfYear)){var a=C.onGetWeekOfYear.call(J,t);if("undefined"!=typeof a)return a}var r=new Date(t.getFullYear(),0,1);return 4!=r.getDay()&&r.setMonth(0,1+(4-r.getDay()+7)%7),Math.ceil(((t-r)/864e5+r.getDay()+1)/7)},t.strToDateTime=function(e){var a,n,o=[];return e&&e instanceof Date&&t.isValidDate(e)?e:(o=/^(\+|\-)(.*)$/.exec(e),o&&(o[2]=r.parseDate(o[2],C.formatDate)),o&&o[2]?(a=o[2].getTime()-6e4*o[2].getTimezoneOffset(),n=new Date(t.now(!0).getTime()+parseInt(o[1]+"1",10)*a)):n=e?r.parseDate(e,C.format):t.now(),t.isValidDate(n)||(n=t.now()),n)},t.strToDate=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatDate):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.strtotime=function(e){if(e&&e instanceof Date&&t.isValidDate(e))return e;var a=e?r.parseDate(e,C.formatTime):t.now(!0);return t.isValidDate(a)||(a=t.now(!0)),a},t.str=function(){return r.formatDate(t.currentTime,C.format)},t.currentTime=this.now()},j=new d,V.on("touchend click",function(e){e.preventDefault(),J.data("changed",!0),j.setCurrentTime(i()),a.val(j.str()),J.trigger("close.xdsoft")}),N.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){J.data("changed",!0),j.setCurrentTime(0,!0),J.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,r=j.getCurrentTime();r=new Date(r.getFullYear(),r.getMonth(),r.getDate()),e=j.strToDate(C.minDate),e=new Date(e.getFullYear(),e.getMonth(),e.getDate()),e>r||(t=j.strToDate(C.maxDate),t=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r>t||(a.val(j.str()),a.trigger("change"),J.trigger("close.xdsoft")))}),N.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1;!function n(e){t.hasClass(C.next)?j.nextMonth():t.hasClass(C.prev)&&j.prevMonth(),C.monthChangeSpinner&&(r||(a=setTimeout(n,e||100)))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function o(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",o)})}),E.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var t=e(this),a=0,r=!1,n=110;!function o(e){var i=R[0].clientHeight,s=B[0].offsetHeight,d=Math.abs(parseInt(B.css("marginTop"),10));t.hasClass(C.next)&&s-i-C.timeHeightInTimePicker>=d?B.css("marginTop","-"+(d+C.timeHeightInTimePicker)+"px"):t.hasClass(C.prev)&&d-C.timeHeightInTimePicker>=0&&B.css("marginTop","-"+(d-C.timeHeightInTimePicker)+"px"),R.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(B[0].style.marginTop,10)/(s-i))]),n=n>10?10:n-10,r||(a=setTimeout(o,e||n))}(500),e([document.body,window]).on("touchend mouseup.xdsoft",function i(){clearTimeout(a),r=!0,e([document.body,window]).off("touchend mouseup.xdsoft",i)})}),u=0,J.on("xchange.xdsoft",function(t){clearTimeout(u),u=setTimeout(function(){if(void 0===j.currentTime||null===j.currentTime){if(C.allowBlank)return;j.currentTime=j.now()}for(var t,i,s,d,u,l,f,c,m,h,g="",p=new Date(j.currentTime.getFullYear(),j.currentTime.getMonth(),1,12,0,0),y=0,v=j.now(),b=!1,D=!1,k=[],x=!0,T="",S="";p.getDay()!==C.dayOfWeekStart;)p.setDate(p.getDate()-1);for(g+="",C.weeks&&(g+=""),t=0;7>t;t+=1)g+="";for(g+="",g+="",C.maxDate!==!1&&(b=j.strToDate(C.maxDate),b=new Date(b.getFullYear(),b.getMonth(),b.getDate(),23,59,59,999)),C.minDate!==!1&&(D=j.strToDate(C.minDate),D=new Date(D.getFullYear(),D.getMonth(),D.getDate()));y0?-1===C.allowDates.indexOf(r.formatDate(p,C.formatDate))&&k.push("xdsoft_disabled"):b!==!1&&p>b||D!==!1&&D>p||c&&c[0]===!1?k.push("xdsoft_disabled"):-1!==C.disabledDates.indexOf(r.formatDate(p,C.formatDate))?k.push("xdsoft_disabled"):-1!==C.disabledWeekDays.indexOf(s)?k.push("xdsoft_disabled"):a.is("[readonly]")&&k.push("xdsoft_disabled"),c&&""!==c[1]&&k.push(c[1]),j.currentTime.getMonth()!==l&&k.push("xdsoft_other_month"),(C.defaultSelect||J.data("changed"))&&r.formatDate(j.currentTime,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_current"),r.formatDate(v,C.formatDate)===r.formatDate(p,C.formatDate)&&k.push("xdsoft_today"),(0===p.getDay()||6===p.getDay()||-1!==C.weekends.indexOf(r.formatDate(p,C.formatDate)))&&k.push("xdsoft_weekend"),void 0!==C.highlightedDates[r.formatDate(p,C.formatDate)]&&(i=C.highlightedDates[r.formatDate(p,C.formatDate)],k.push(void 0===i.style?"xdsoft_highlighted_default":i.style),h=void 0===i.desc?"":i.desc),C.beforeShowDay&&e.isFunction(C.beforeShowDay)&&k.push(C.beforeShowDay(p)),x&&(g+="",x=!1,C.weeks&&(g+="")),g+='",p.getDay()===C.dayOfWeekStartPrev&&(g+="",x=!0),p.setDate(d+1);if(g+="
"+C.i18n[o].dayOfWeekShort[(t+C.dayOfWeekStart)%7]+"
"+f+"
'+d+"
",L.html(g),N.find(".xdsoft_label span").eq(0).text(C.i18n[o].months[j.currentTime.getMonth()]),N.find(".xdsoft_label span").eq(1).text(j.currentTime.getFullYear()),T="",S="",l="",m=function(t,n){var o,i,s=j.now(),d=C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length;s.setHours(t),t=parseInt(s.getHours(),10),s.setMinutes(n),n=parseInt(s.getMinutes(),10),o=new Date(j.currentTime),o.setHours(t),o.setMinutes(n),k=[],C.minDateTime!==!1&&C.minDateTime>o||C.maxTime!==!1&&j.strtotime(C.maxTime).getTime()s.getTime()?k.push("xdsoft_disabled"):C.minDateTime!==!1&&C.minDateTime>o||C.disabledMinTime!==!1&&s.getTime()>j.strtotime(C.disabledMinTime).getTime()&&C.disabledMaxTime!==!1&&s.getTime()59||i.getMinutes()===parseInt(n,10))&&(C.defaultSelect||J.data("changed")?k.push("xdsoft_current"):C.initTime&&k.push("xdsoft_init_time")),parseInt(v.getHours(),10)===parseInt(t,10)&&parseInt(v.getMinutes(),10)===parseInt(n,10)&&k.push("xdsoft_today"),T+='
'+r.formatDate(s,C.formatTime)+"
"},C.allowTimes&&e.isArray(C.allowTimes)&&C.allowTimes.length)for(y=0;yt;t+=C.step)S=(10>y?"0":"")+y,l=(10>t?"0":"")+t,m(S,l);for(B.html(T),n="",y=0,y=parseInt(C.yearStart,10)+C.yearOffset;y<=parseInt(C.yearEnd,10)+C.yearOffset;y+=1)n+='
'+y+"
";for(U.children().eq(0).html(n),y=parseInt(C.monthStart,10),n="";y<=parseInt(C.monthEnd,10);y+=1)n+='
'+C.i18n[o].months[y]+"
";G.children().eq(0).html(n),e(J).trigger("generate.xdsoft")},10),t.stopPropagation()}).on("afterOpen.xdsoft",function(){if(C.timepicker){var e,t,a,r;B.find(".xdsoft_current").length?e=".xdsoft_current":B.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=R[0].clientHeight,a=B[0].offsetHeight,r=B.find(e).index()*C.timeHeightInTimePicker+1,r>a-t&&(r=a-t),R.trigger("scroll_element.xdsoft_scroller",[parseInt(r,10)/(a-t)])):R.trigger("scroll_element.xdsoft_scroller",[0])}}),P=0,L.on("touchend click.xdsoft","td",function(t){t.stopPropagation(),P+=1;var r=e(this),n=j.currentTime;return(void 0===n||null===n)&&(j.currentTime=j.now(),n=j.currentTime),r.hasClass("xdsoft_disabled")?!1:(n.setDate(1),n.setFullYear(r.data("year")),n.setMonth(r.data("month")),n.setDate(r.data("date")),J.trigger("select.xdsoft",[n]),a.val(j.str()),C.onSelectDate&&e.isFunction(C.onSelectDate)&&C.onSelectDate.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),(P>1||C.closeOnDateSelect===!0||C.closeOnDateSelect===!1&&!C.timepicker)&&!C.inline&&J.trigger("close.xdsoft"),void setTimeout(function(){P=0},200))}),B.on("touchend click.xdsoft","div",function(t){t.stopPropagation();var a=e(this),r=j.currentTime;return(void 0===r||null===r)&&(j.currentTime=j.now(),r=j.currentTime),a.hasClass("xdsoft_disabled")?!1:(r.setHours(a.data("hour")),r.setMinutes(a.data("minute")),J.trigger("select.xdsoft",[r]),J.data("input").val(j.str()),C.onSelectTime&&e.isFunction(C.onSelectTime)&&C.onSelectTime.call(J,j.currentTime,J.data("input"),t),J.data("changed",!0),J.trigger("xchange.xdsoft"),J.trigger("changedatetime.xdsoft"),void(C.inline!==!0&&C.closeOnTimeSelect===!0&&J.trigger("close.xdsoft")))}),I.on("mousewheel.xdsoft",function(e){return C.scrollMonth?(e.deltaY<0?j.nextMonth():j.prevMonth(),!1):!0}),a.on("mousewheel.xdsoft",function(e){return C.scrollInput?!C.datepicker&&C.timepicker?(A=B.find(".xdsoft_current").length?B.find(".xdsoft_current").eq(0).index():0,A+e.deltaY>=0&&A+e.deltaYc+m?(l="bottom",r=c+m-t.top):r-=m):r+a.offsetHeight>c+m&&(r=t.top-a.offsetHeight+1),0>r&&(r=0),n+a.offsetWidth>u&&(n=u-a.offsetWidth)),i=J[0],H(i,function(e){var t;return t=window.getComputedStyle(e).getPropertyValue("position"),"relative"===t&&u>=e.offsetWidth?(n-=(u-e.offsetWidth)/2,!1):void 0}),f={position:o,left:n,top:"",bottom:""},f[l]=r,J.css(f)},J.on("open.xdsoft",function(t){var a=!0;C.onShow&&e.isFunction(C.onShow)&&(a=C.onShow.call(J,j.currentTime,J.data("input"),t)),a!==!1&&(J.show(),Y(),e(window).off("resize.xdsoft",Y).on("resize.xdsoft",Y),C.closeOnWithoutClick&&e([document.body,window]).on("touchstart mousedown.xdsoft",function r(){J.trigger("close.xdsoft"),e([document.body,window]).off("touchstart mousedown.xdsoft",r)}))}).on("close.xdsoft",function(t){var a=!0;N.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),C.onClose&&e.isFunction(C.onClose)&&(a=C.onClose.call(J,j.currentTime,J.data("input"),t)),a===!1||C.opened||C.inline||J.hide(),t.stopPropagation()}).on("toggle.xdsoft",function(){J.trigger(J.is(":visible")?"close.xdsoft":"open.xdsoft")}).data("input",a),X=0,J.data("xdsoft_datetime",j),J.setOptions(C),j.setCurrentTime(i()),a.data("xdsoft_datetimepicker",J).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){a.is(":disabled")||a.data("xdsoft_datetimepicker").is(":visible")&&C.closeOnInputClick||(clearTimeout(X),X=setTimeout(function(){a.is(":disabled")||(q=!0,j.setCurrentTime(i(),!0),C.mask&&s(C),J.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(t){var a,r=t.which;return-1!==[p].indexOf(r)&&C.enterLikeTab?(a=e("input:visible,textarea:visible,button:visible,a:visible"),J.trigger("close.xdsoft"),a.eq(a.index(this)+1).focus(),!1):-1!==[T].indexOf(r)?(J.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){J.trigger("close.xdsoft")})},d=function(t){var a=t.data("xdsoft_datetimepicker");a&&(a.data("xdsoft_datetime",null),a.remove(),t.data("xdsoft_datetimepicker",null).off(".xdsoft"),e(window).off("resize.xdsoft"),e([window,document.body]).off("mousedown.xdsoft touchstart"),t.unmousewheel&&t.unmousewheel())},e(document).off("keydown.xdsoftctrl keyup.xdsoftctrl").on("keydown.xdsoftctrl",function(e){e.keyCode===h&&(F=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===h&&(F=!1)}),this.each(function(){var t,a=e(this).data("xdsoft_datetimepicker");if(a){if("string"===e.type(n))switch(n){case"show":e(this).select().focus(),a.trigger("open.xdsoft");break;case"hide":a.trigger("close.xdsoft");break;case"toggle":a.trigger("toggle.xdsoft");break;case"destroy":d(e(this));break;case"reset":this.value=this.defaultValue,this.value&&a.data("xdsoft_datetime").isValidDate(r.parseDate(this.value,C.format))||a.data("changed",!1),a.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":t=a.data("input"),t.trigger("blur.xdsoft");break;default:a[n]&&e.isFunction(a[n])&&(u=a[n](i))}else a.setOptions(n);return 0}"string"!==e.type(n)&&(!C.lazyInit||C.open||C.inline?s(e(this)):A(e(this)))}),u},e.fn.datetimepicker.defaults=a}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var i=t||window.event,s=d.call(arguments,1),u=0,f=0,c=0,m=0,h=0,g=0;if(t=e.event.fix(i),t.type="mousewheel","detail"in i&&(c=-1*i.detail),"wheelDelta"in i&&(c=i.wheelDelta),"wheelDeltaY"in i&&(c=i.wheelDeltaY),"wheelDeltaX"in i&&(f=-1*i.wheelDeltaX),"axis"in i&&i.axis===i.HORIZONTAL_AXIS&&(f=-1*c,c=0),u=0===c?f:c,"deltaY"in i&&(c=-1*i.deltaY,u=c),"deltaX"in i&&(f=i.deltaX,0===c&&(u=-1*f)),0!==c||0!==f){if(1===i.deltaMode){var p=e.data(this,"mousewheel-line-height");u*=p,c*=p,f*=p}else if(2===i.deltaMode){var y=e.data(this,"mousewheel-page-height");u*=y,c*=y,f*=y}if(m=Math.max(Math.abs(c),Math.abs(f)),(!o||o>m)&&(o=m,r(i,m)&&(o/=40)),r(i,m)&&(u/=40,f/=40,c/=40),u=Math[u>=1?"floor":"ceil"](u/o),f=Math[f>=1?"floor":"ceil"](f/o),c=Math[c>=1?"floor":"ceil"](c/o),l.settings.normalizeOffset&&this.getBoundingClientRect){var v=this.getBoundingClientRect();h=t.clientX-v.left,g=t.clientY-v.top}return t.deltaX=f,t.deltaY=c,t.deltaFactor=o,t.offsetX=h,t.offsetY=g,t.deltaMode=0,s.unshift(t,u,f,c),n&&clearTimeout(n),n=setTimeout(a,200),(e.event.dispatch||e.event.handle).apply(this,s)}}function a(){o=null}function r(e,t){return l.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120===0}var n,o,i=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],s="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],d=Array.prototype.slice;if(e.event.fixHooks)for(var u=i.length;u;)e.event.fixHooks[i[--u]]=e.event.mouseHooks;var l=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var a=s.length;a;)this.addEventListener(s[--a],t,!1);else this.onmousewheel=t;e.data(this,"mousewheel-line-height",l.getLineHeight(this)),e.data(this,"mousewheel-page-height",l.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var a=s.length;a;)this.removeEventListener(s[--a],t,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var a=e(t),r=a["offsetParent"in e.fn?"offsetParent":"parent"]();return r.length||(r=e("body")),parseInt(r.css("fontSize"),10)||parseInt(a.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}); diff --git a/src/main/webapp/css/login.css b/src/main/webapp/css/login.css new file mode 100644 index 0000000..048122e --- /dev/null +++ b/src/main/webapp/css/login.css @@ -0,0 +1,145 @@ +body { + background: #fff; + font-family: "Nanum Gothic", "", dotum, sans-serif; + padding: 0px; + margin: 0px ; + font-size:14px; + font-weight: normal; + color: #484848; + overflow: hidden; +} + +* { + margin: 0; + padding: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.login-hedaer { + height: 80px; + background-color: #fff; +} + +.login-bg { + border-top: 3px solid #2e3440; + height: 760px; + width: 100%; + background-image:url("../../images/cmmn/login_bg.jpg"); + background-size: cover; +} + +.forms { + margin-top: 180px; + background: #fff; + box-shadow: 0 0 1px #000; + width: 470px; + overflow: hidden; + position: absolute; + padding: 0; + left: 60%; +} +.forms h1 { + padding: 0 0 10px 0; + font-size: 24px; + color: #3e3e3e; + text-align: left; +} +.forms h1 span { + color: #044796; +} +.forms .login-form { padding: 35px; } +#signup { display: none; } +.forms .tab-group { + list-style: none; + padding: 0; + margin: 0; +} +.forms .tab-group:after { + content: ""; + display: table; + clear: both; +} +.forms .tab-group li a { + display: block; + text-decoration: none; + padding: 15px; + background: #f7f7f7; + color: #888; + font-size: 16px; + float: left; + width: 50%; + text-align: center; + border-top: 3px solid transparent; + -moz-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + -webkit-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +.forms .tab-group li a:hover { + background: #dedfdf; + color: #7d7d7d; +} +.forms .tab-group .active a { + background: #fff; + color: #336bb8; + font-weight: bold; + border-top: 3px solid #336bb8; +} +.forms input { + width: 312px; + font-size: 16px; + padding: 10px 10px; + border: 1px solid #d0d0d0; + color: #666; + border-radius: 0; + margin-bottom: 15px; + -moz-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + -webkit-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; + display: inline-block; +} +.forms input:focus { + outline: 0; + border-color: #2e5ed7; +} +.forms label { + width: 80px; + text-align: left; + font-size: 14px; + font-weight: bold; + color: #3d3d3d; + margin-bottom: 5px; + display: inline-block; +} +.forms .login-btn { + border-radius: 3px; + outline: none; + padding: 12px 0; + font-size: 18px; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 2px; + background: #336bb8; + color: #ffffff; + cursor: pointer; + -moz-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + -webkit-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; + width:100%; +} +.forms .login-btn a { + color: #fff; + text-decoration: none; + font-size: 16px; +} +.forms .login-btn:hover, .login-btn:focus { background: #336bb8; } +.text-p { + font-size: 14px; + text-align: left; + color: #3e3e3e; + padding-bottom: 20px; +} diff --git a/src/main/webapp/css/login_new.css b/src/main/webapp/css/login_new.css new file mode 100644 index 0000000..060c51e --- /dev/null +++ b/src/main/webapp/css/login_new.css @@ -0,0 +1,395 @@ +* { + padding: 0; + margin: 0; + } + #popuplayer { + position: fixed; + top: 150px; + left: 150px; + width: 500px; + border: 1px solid #333; + background-color: #29559f; + z-index: 999999; + } + .clse { + position: relative; + width: 100%; + height: 30px; + + } + + .clse p { + position: absolute; + right: 0; + width: 60px; + height: 30px; + line-height: 30px; + text-align: center; + cursor: pointer; + color: #fff; + } + + + + .clse p:hover { + background-color: #2a66cc; + } + .popupInfo { + width: 100%; + background-color: #fff; + } + + .popupInfo ul{ + width: 100%; + } + + .popupInfo ul li { + padding: 15px 15px 15px 15px; + font-size: 16px; + } + + #dialog-confirm ol { + margin-top: 10px; + } + + #dialog-confirm ol li { + display: inline; + } + #dialog-confirm ol li a { + display: block; + width: 100%; + height: 70px; + line-height: 70px; + text-align: center; + color: #fff; + font-weight: 600; + text-decoration: none; + background-color: #29559f; + border-bottom: 1px solid #464c5e; + } + + #dialog-confirm ol li a:hover { + background-color: #2a66cc; + } + + .bordernone { + border-bottom: none; + } + + + .allClse { + text-align: right; + color: #fff; + } + .allClse input[type="checkbox"] { + vertical-align: middle; + } + + #dialog-confirm { + line-height: 1.45em; + } + + #first-confirm-popup { + ; + } + + #first-confirm-popup img{ + width: 100%; + } + + + #second-confirm-popup img{ + width: 100%; + } + + 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-size: 100%; + font: inherit; + vertical-align: baseline; + text-decoration: none; + list-style: none; + } + /* HTML5 display-role reset for older browsers */ + article, aside, details, figcaption, figure, + footer, header, hgroup, menu, nav, section { + display: block; + } + body { + line-height: 1; + font-family: "Nanum Gothic", sans-serif; + } + ol, ul { + list-style: none; + } + blockquote, q { + quotes: none; + } + blockquote:before, blockquote:after, + q:before, q:after { + content: ''; + content: none; + } + table { + border-collapse: collapse; + border-spacing: 0; + } + +clearfix { + *zoom: 1; } + .clearfix:after { + display: block; + clear: both; + content: ''; } + +.inner { + width: 970px; + margin: 0 auto; } + +.sr_only { + position: absolute; + left: -99999px; } + +#wrap { + width: 100%; } + +/*------------- standard Set ------------*/ +.loginBox { + width: 430px; + height: 610px; + margin: 150px auto 0; + background-color: #b8b8b8; } + .loginBox > .loginBox_TopBar { + position: relative; + width: 100%; + height: 50px; + background-color: #4272b2; } + .loginBox > .loginBox_TopBar > ul { + position: absolute; + bottom: 0; + left: 50%; + margin-left: -150px; + width: 300px; + height: 40px; + } + .loginBox > .loginBox_TopBar > ul > li { + float: left; + width: 150px; + height: 40px; + background-color: #535151; } + .loginBox > .loginBox_TopBar > ul > li.on { + background-color: #fff; } + .loginBox > .loginBox_TopBar > ul > li > a { + display: block; + width: 100%; + height: 100%; + line-height: 40px; + text-align: center; + font-size: 14px; + font-weight: 600; + color: #b9b9b9; + letter-spacing: 1.5px; } + .loginBox > .loginBox_TopBar > ul > li > a.on { + color: #4272b2; } + .loginBox > .loginBox_BotBar { + position: relative; + width: 100%; + height: 560px; + background-color: green; } + .loginBox > .loginBox_BotBar > .ocean { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #fff; + z-index: 100; } + .loginBox > .loginBox_BotBar > .ocean > .hellow { + width: 100%; + height: 200px; } + .loginBox > .loginBox_BotBar > .ocean > .hellow > h3 { + position: relative; + padding-top: 80px; + text-align: center; + font-size: 45px; + font-weight: 600; + color: #4272b2; } + + .loginBox > .loginBox_BotBar > .ocean > .hellow > .hellow_name { + padding-top: 10px; + font-size: 16px; + color: #222; + text-align: center; + font-weight: 600; + } + /* .loginBox > .loginBox_BotBar > .ocean > .hellow > h3:after { + position: absolute; + bottom: -25px; + left: 50%; + transform: translateX(-50%); + width: 235px; + font-size: 16px; + color: #222; + content: '이곳은 국제해양정보시스템입니다'; } */ + .loginBox > .loginBox_BotBar > .ocean > .id_pw { + width: 100%; + height: 90px; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > div > ul { + height: 45px; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > div > ul > li { + float: left; + font-size: 17px; + font-weight: 600; + color: #4272b2; + line-height: 45px; + text-align: center; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > div > ul > li:first-child { + width: 100px; + height: 100%; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > div > ul > li > input { + display: block; + width: 300px; + height: 30px; + margin-top: 5px; + padding-left: 10px; + border: 1px solid #4272b2; + color: #222; + letter-spacing: 2px; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > .id_section { + width: 100%; + height: 45px; } + .loginBox > .loginBox_BotBar > .ocean > .id_pw > .pw_section { + width: 100%; + height: 45px; } + .loginBox > .loginBox_BotBar > .ocean > .remember_id { + position: relative; + width: 100%; + height: 30px; + line-height: 30px; } + .loginBox > .loginBox_BotBar > .ocean > .remember_id > input[type="checkbox"] { + width: 20px; + height: 20px; + padding: 0; + margin: 0; + position: absolute; + top: 6px; + right: 120px; + background-color: transparent; + border: 2px solid #4272b2; + overflow: hidden; } + .loginBox > .loginBox_BotBar > .ocean > .remember_id > label { + position: absolute; + top: 0px; + right: 20px; + } + .loginBox > .loginBox_BotBar > .ocean > .remember_id > label > span { + font-size: 13px; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign { + width: 100%; + height: 110px; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > div { + width: 400px; + height: 40px; + margin: 0 auto; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .login { + text-align: center; + margin-top: 5px; + margin-bottom: 10px; + background-color: #4272b2; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .login > a { + display: block; + line-height: 40px; + font-size: 16px; + letter-spacing: 3px; + color: #fff; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .login > input { + display: block; + width : 100%; + height : 100%; + line-height: 40px; + font-size: 16px; + letter-spacing: 3px; + color: #fff; + background-color : #29559f; + border : none; + outline : none; + cursor : pointer; + } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .sign { + position: relative; + text-align: center; + background-color: #4272b2; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .sign > a { + display: block; + line-height: 40px; + font-size: 16px; + letter-spacing: 3px; + color: #fff; } + .loginBox > .loginBox_BotBar > .ocean > .login_Sign > .sign:after { + position: absolute; + bottom: -35px; + left: 50%; + transform: translateX(-13%); + + + } + .msg { + margin-right: 20px; + padding-top: 10px; + float: right; + width: 200px; + font-size: 12px; + line-height: 1.4em; + text-align: right; + } + .loginBox > .loginBox_BotBar > .ocean > .logo { + margin: 40px auto 0; + width: 182px; + height: 62px; + text-indent: -99999px; + background-image: url(/images/new/logo.png); + background-repeat: no-repeat; + background-size: contain; } + .loginBox > .loginBox_BotBar > .ocean { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + + + + #footer { + margin-top: 89px; + width: 100%; + height: 100px; + background: #191919; color: #fff; + } + + h1 {float: left; display: block; margin-top: 13px; margin-left: 100px;width: 108px; height: 72px; text-indent: -99999px; background-image: url(/images/new/f_logo.png); background-size: cover; background-position: 50% 50%; background-repeat: no-repeat;} + address {position: relative; float: left; margin-left: 30px; margin-top: 13px;} + .topic { font-size: 22px; margin-bottom: 10px; font-weight: 600; letter-spacing: 3px;} + .f_info {width: 100%;} + .f_info ul {;} + .f_info ul li {display: block; font-size: 12px; font-weight: normal; line-height: 1.7em;} + .w3c {position: absolute; top: 10px; right: -100px; width: 77px; height: 59px; background-image: url(/images/new/w3c.png); background-size: cover; text-indent: -99999px;} + + .mVisual_img {position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1;} + .mVisual_img ul li{position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-repeat: no-repeat; background-position: 50% 50%; text-indent: -99999px;} + .mVisual_img ul li.img01 {background-image: url(/images/new/img01.jpg);} + .mVisual_img ul li.img02 {background-image: url(/images/new/img02.jpg);} diff --git a/src/main/webapp/css/nanumgothic.css b/src/main/webapp/css/nanumgothic.css new file mode 100644 index 0000000..a2ac384 --- /dev/null +++ b/src/main/webapp/css/nanumgothic.css @@ -0,0 +1,33 @@ +/* + * Nanum Gothic (Korean) http://www.google.com/fonts/earlyaccess (2017.01.24) + */ +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 400; + src: url(/css/fonts/NanumGothic-Regular.eot); + src: url(/css/fonts/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), + url(/css/fonts/NanumGothic-Regular.woff2) format('woff2'), + url(/css/fonts/NanumGothic-Regular.woff) format('woff'), + url(/css/fonts/NanumGothic-Regular.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 700; + src: url(/css/fonts/NanumGothic-Bold.eot); + src: url(/css/fonts/NanumGothic-Bold.eot?#iefix) format('embedded-opentype'), + url(/css/fonts/NanumGothic-Bold.woff2) format('woff2'), + url(/css/fonts/NanumGothic-Bold.woff) format('woff'), + url(/css/fonts/NanumGothic-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 800; + src: url(/css/fonts/NanumGothic-ExtraBold.eot); + src: url(/css/fonts/NanumGothic-ExtraBold.eot?#iefix) format('embedded-opentype'), + url(/css/fonts/NanumGothic-ExtraBold.woff2) format('woff2'), + url(/css/fonts/NanumGothic-ExtraBold.woff) format('woff'), + url(/css/fonts/NanumGothic-ExtraBold.ttf) format('truetype'); +} diff --git a/src/main/webapp/css/new.css b/src/main/webapp/css/new.css new file mode 100644 index 0000000..8ee8b6f --- /dev/null +++ b/src/main/webapp/css/new.css @@ -0,0 +1,14 @@ +.tbl_Box { + width: 100%; +} + +tbody { +} +tr { + height: 60px; + border-bottom: 2px solid #222; +} + +th { + background-color: #f8f8f8; +} diff --git a/src/main/webapp/css/style.css b/src/main/webapp/css/style.css new file mode 100644 index 0000000..eaa1d6d --- /dev/null +++ b/src/main/webapp/css/style.css @@ -0,0 +1,980 @@ +/* Styles for main +-----------------------------------------------------------*/ + +.search { + float : right; + width: 305px; + padding-top: 30px; +} + +.search input[type=text] { + outline : none; + border: solid #2b4978; + border-width: 4px; + background-color: #fff; + height: 20px; + width: 250px; + padding: 7px 4px; + margin-left: 0; +} + +.Searchbtn { + vertical-align:middle; + cursor: pointer; +} + + +#board_wrap { + margin:20px 0 15px; + background-color: #fff; +} + +.board { + position: relative; + float: left; + width: 493px; + height: 252px; + border: 1px solid #ddd; + +} + +#board_wrap .m-right { + position: relative; + height: 253px; + /* margin-right: 10px; */ + border: 1px solid #ddd; +} + +#board_wrap .m-top { + margin-top: 10px; +} + +#board_wrap:after { + display: block; + overflow: hidden; + clear: both; + content: ''; +} + +.board .inner { + padding: 20px; +} + + + + +/* 추가 2018.03.05 */ +.board_search { + width: 100%; + height: 253px; + margin-top: 10px; + background-color: #2b4978; +} + +.board_search ul { + width: 440px; + margin: 0 auto; + + +} + +.board_search ul li {;} + +.board_search ul li:nth-child(1) { + padding-top: 113px; + margin-left: 33px; + font-size: 25px; + font-weight: 700; + letter-spacing: -1px; + color: #fff; + /* color: #f8c12d; */ +} + + + +.board_search ul li:nth-child(2) { + display: none; + margin-top: -50px; + padding-left: 100px; + font-size: 13px; + font-weight: 600; + color: #fff; + +} + + +.inner2 { + padding: 10px; +} + +.inner3 { + padding: 0px 10px 10px 9px;/*국제회의 보더 1px때문에 9px로 조정*/ +} + +.board_two_box { + width: 100%; + height: 255px; + +} + +.clearfix {*zoom : 1;} +.clearfix:after { + display: block; + clear: both; + content: ''; +} + +.board_two_box ul { + ; +} + +.board_two_box ul li { + float: left; + width: 230px; + +} +.board_two_box ul li a:hover { + background-color: #f8c12d; +} + +.board_two_box ul li:first-child {background-color: #2b4978; } +.board_two_box ul li:last-child { margin-left: 10.5px;background-color: #2b4978; } + +.board_two_box ul li a { + background-repeat: no-repeat; + background-position: 50% 45%; + display: block; + height: 255px; + line-height: 305px; + text-align: center; + font-size: 16px; + font-weight: 900; + color:#fff; + /* transition: .4s; */ + +} + +.board_two_box ul li:first-child a {background-image: url(../images/new/q_info.png);} +.board_two_box ul li:last-child a {background-image: url(../images/new/q_report_2.png);} + +.inner3 .board_two_box ul li:first-child a {background-image: url(../images/new/q_notice.png);} +.inner3 .board_two_box ul li:last-child a {background-image: url(../images/new/q_data.png);} + +/* .board_two_box ul li a:hover {background-position: 50% 45%; line-height: 305px;} */ + + + + + +.search_top { + + position: absolute; + top: 50%; + left : 50%; + margin-top: -10px; + margin-left: -125px; + text-align:right; +} + +.search_top .Searchbtn { + vertical-align:middle; + cursor: pointer; +} + +.search_top input.txt_total { + outline : none; + border: solid #2b4978; + border-width: 4px; + background-color: #fff; + height: 20px; + width: 250px; + padding: 7px 4px; + margin-left: 0; + transition: .6s; + } + + + + +.board .inner .h1 { + height: 22px; + margin: 0; + color: #333; + font-size: 16px; +} + +.board .inner .h1 { + position: absolute; + padding-bottom: 6px; + border-bottom: 2px solid #2b4978; +} + +.board .btn_more { + position: absolute; + top: 0px; + right: 0px; + width: 51px; + height: 51px; + display: inline-block; + border: 1px solid #ddd; + border-top: none; + border-right: none; + text-align: center; +} + +.board .btn_more a { + display: block; + padding: 26px; + background: url("../images/cmmn/more_btn.png") no-repeat center; +} +.board .btn_more :hover { + display: block; + padding: 26px; + background: url("../images/cmmn/more_btn_on.png") no-repeat center; +} + +.board_content { + padding-top: 50px; +} + +.board_content ul li { + position: relative; + display: block; + padding: 12px 0 8px; + border-bottom: 1px dotted #ddd; +} + +.board_content ul li:last-child { + border-bottom: none; +} + +.board_content ul li a { + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + width: 68%; + -moz-osx-font-smoothing: grayscale; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: color, background-color; + transition-property: color, background-color; +} + +.board_content ul li a:hover { + color: #333; + font-weight: bold; + text-decoration: underline; +} + + +.board_content ul li span.date { + float: right; +} + +/* Styles for faMember +-----------------------------------------------------------*/ +.placeList { + +} + +.placeList ul { + margin: 0 0 40px; + padding: 3% 2%; + background-color: #f5f5f5; + border: 1px solid #cbcbcb; +} + +.placeList ul li { + display: inline-block; + margin: 2px 0px; + min-width: 12%; +} + +.placeList ul li:frist-child { + color: #fff; + font-weight: bold; + background: #478edc; + border: 1px solid #478edc; +} + +.placeList ul li a { + display: block; + padding: 8px 5px; + background: #fff; + border: 1px solid #dddddd; + border-radius: 3px; + font-size: 14px; + white-space: nowrap; + text-align: center; +} + +.placeList ul li.select a, .placeList ul li:hover a { + color: #fff; + font-weight: bold; + background: #478edc; + border: 1px solid #478edc; +} + +.tbl_memberList { + border-bottom: 1px solid #8e8e8e; + border-top: 2px solid #2d2d2d; +} + +.tbl_memberList thead tr th { + background-color: #f8f8f8; + padding: 13px 10px; + border-left: 1px solid #dcdcdc; + text-align: center; +} + +.tbl_memberList thead tr th:first-child { + border-left: 0; +} + +.tbl_memberList tbody tr td:first-child { + border-left: 0; +} + +.tbl_memberList tbody tr td { + font-weight: 500; + padding: 13px 8px; + border-top: 1px solid #dcdcdc; + border-left: 1px solid #dcdcdc; +} + +.tbl_listinfo { + margin-bottom: 20px; +} + +.tbl_add .notice { + color: #1f8ae2; + font-weight: 400; +} + +.tbl_add .form_radio input:first-child { + margin: 0 8px 0 0; +} + +.pwd_desc { + color: #e64545 !important; +} + +.tbl_add .form_radio input { + margin: 0 8px 0 16px; +} + +.tbl_list_input td { + padding: 13px 4px !important; +} + +.tbl_list_input td>* { + vertical-align: middle; +} + +.tbl_list_input td input { + text-align: center; + height: 24px; + border: 1px solid #ccc; +} + +.tbl_list_input input[type="button"] { + padding: 0 3px; + height: 26px; + line-height: 26px; + border: 1px solid #d7d7d7; + border-radius: 3px; + background: #fff; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; + cursor: pointer; +} + +.tbl_list_input input[type="radio"] { + margin: 0 6px; +} + +.tbl_list_input2 input[type="radio"] { + margin: 0 10px; +} + +.tbl_list_input2 input:first-child { + margin-left: 0px; +} + +.tbl_list_input input[type="text"] { + margin: 0 6px; +} + +#auth_control_pannel { + display: none; + border: 1px solid #d8d8d8; + background: #fff; + position: absolute; + left: 1178px; + top: 673px; + width: 160px; +} + +#auth_control_pannel_rpt { + border: 1px solid #c8c8c8; + background: #fff; + position: absolute; + left: 0; + top: 0; + display: none; + width: 160px; +} + +#auth_control_pannel ul li, #auth_control_pannel_rpt ul li { + border-top: 1px dotted #d8d8d8; + padding: 6px 6px; +} + +#auth_control_pannel ul li:first-child, #auth_control_pannel_rpt ul li:first-child + { + border-top: 0px; +} + +#auth_control_pannel ul li input[type="button"], + #auth_control_pannel_rpt ul li input[type="button"] { + padding: 0 3px; + height: 26px; + line-height: 26px; + border: 1px solid #d7d7d7; + border-radius: 3px; + background: #fff; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; + cursor: pointer; +} + +/* Styles for weakplace +-----------------------------------------------------------*/ +#divPrintArea .tbl_listview { + margin-bottom: 20px; +} + +/* Styles for codeManage +-----------------------------------------------------------*/ +#code_tab ul { + overflow: hidden; + margin-top: 15px; +} + +#table div.inlinetable:first-child { + width: 480px; + float: left; + margin-top: 30px; +} + +#table div.inlinetable:last-child { + width: 500px; + float: left; + margin-top: 30px; +} + + +#table div.inlinetable:last-child { + margin-left: 20px; +} + +.clear:after {content:""; display:block; clear:both;} + +.code { + cursor: pointer; +} + +.addLine, .edit { + display:none; +} + +.addLine { + background-color: #f7f7f7; +} + +.code_list { + border-bottom: 1px solid #8e8e8e; + border-top: 2px solid #2d2d2d; +} + +.code_list thead th { + height: 43px; + background-color: #f8f8f8; + border-bottom: 1px solid #8e8e8e; + text-align: center; + color: #333; +} + +.code_list thead tr:nth-child(2) th{ + padding: 8px 4px; +} + +.code_list tbody td { + word-break: break-all; +} + +.code_list tbody td { + padding: 13px 4px; + border-bottom: 1px dotted #dcdcdc; +} + +.addLine .input_text input { + width: 84px; +} + +.addLine td input[type="text"] { + width: 60px; +} + +.addLine .listtd input { + width: 50px; +} + +.addLine td.w-100 input { + width: 100px; +} + + +.code_list tbody td a { + color: #333; +} + +.code_list tbody .code:hover { + text-decoration: underline; +} + +.codeInfo { + padding-bottom: 14px; +} + +.codeInfo > * { + vertical-align: middle; +} + +.codeInfo span { + margin-left: 6px; + font-weight: bold; + font-size: 14px; +} + +.codeInfo .code_btn { + float: right; + display: block; + padding: 0 10px; + line-height: 27px; + border: 1px solid #9b9b9b; + background: #fff; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; + cursor: pointer; +} + +.code_list tbody input[type="button"] { + padding: 0 2px; + height: 26px; + line-height: 26px; + border: 1px solid #d7d7d7; + border-radius: 3px; + background: #fff; + font-size: 13px; + font-weight: 700; + text-align: center; + color: #333; + cursor: pointer; +} + +.code_list tbody input[type="button"]:last-child { + margin-top: 2px; +} + +.code_list tbody td input[type="text"] { + width: 78px; +} + +/* Styles for eduadd-popup +-----------------------------------------------------------*/ + +#divMemberSelectPopup > table { + width: 100%; +} + +.user_name { + position: relative; + text-align: left; + margin: 10px 5px 15px 5px; +} + +.user_name ul li { + display: inline-block; + vertical-align: middle; +} + +.user_name ul li label { + padding: 0 6px; +} + +.user_name input[type="text"] { + width: 200px; + height: 30px; + border: 1px solid #d7d7d7; + line-height: 30px; + text-indent: 10px; + box-sizing: border-box; +} + +.search_btn button { + display: inline-block; + height: 30px; + padding: 0 30px; + line-height: 30px; + border-radius: 3px; + background: #393d49; + color: #fff; + font-weight: 700; + vertical-align: middle; + cursor: pointer; +} + +.divMemberSelectPopup .tbl_list tbody td:nth-child(2) { + text-align: left !important; +} + +.divMemberSelectPopup .tbl_list tbody td:nth-child(3) { + text-align: left !important; +} + +.user_img img { + max-width: 100px; +} + +/* Styles for statslist +-----------------------------------------------------------*/ + +/*.tabs { + display: inline-block; + width:100%; + margin-bottom: 10px; +} + +.tabs ul { + width: 100%; + height: 37px; + border-bottom: 1px solid #d7d7d7; +} + +.tabs ul li { + float: left; + display: inline-block; + padding: 10px 15px; + font-size: 16px; + line-height: 16px; + border: 1px solid #d7d7d7; + border-left: 0; + background-color: #f5f5f5; +} + +.tabs ul li:FIRST-CHILD { + border-left: 1px solid #d7d7d7; +} + +.tabs ul li.selected { + background-color: #fff; + border-bottom: 1px solid #fff;; +} +.tabs ul li:first-child { + margin-left: 0 !important; +} + +.tabs ul li:last-child { + margin-right: 0 !important; +} + +.tabs ul li:hover p, .tabs ul li.selected p { + background: #fff; + border-top: 4px solid #5e7188; + margin-top: 0px; + padding: 1px 0px 0px; + font-weight: bold; + color: #404040; + text-decoration: none; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.tabs ul li p { + display: table; + margin-top: 4px; + width: 100%; + text-align: center; + background: #fbf9f9; + border: 1px solid #dcdcdc; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} + +.tabs ul li p a { + display: table-cell; + height: 48px; + text-align: center; + vertical-align: middle; +}*/ + +.tabs { + display: inline-block; + width: 100%; + margin-bottom: 30px; +} + +.tabs ul li { + width: 20%; + float: left; +} + +.tabs ul li a { + display: block; + height: 43px; + border: 1px solid #d7d7d7; + border-left: 0 none; + border-bottom-color: #333; + background: #f8f8f8; + line-height: 43px; + text-align: center; + color: #666; + font-weight: bold; +} + +.tabs ul li:first-child a { + border-left: 1px solid #d7d7d7; +} + +.tabs ul li.selected a { + height: 42px; + margin-left: -1px; + border: 1px solid #333; + border-top-width: 3px; + border-bottom: 0; + background: #fff; + color: #333; +} + +span.save { + color:#1665bc; + font-weight: 600; +} + +.th-bg { + background: #f8f8f8; +} + +.th-bg td { + background: #f8f8f8; +} + +.mb-checkbox label { + font-weight: bold; + margin: 0 5px; +} + +.bold { + font-weight: bold; +} + +.text_blue { + color: #478edc; +} + +.text_red { + color: #ed1c24; +} + +#divCmmnMemberEditPopup > table { + width: 100%; +} + +.w-240 select { + width: 240px !important; +} + +.iconImportant { + width: 9px; + height: 10px; + background: url("../../images/cmmn/icon_important.gif") no-repeat center; + margin-right: 3px; +} + +/* Styles for chinaadd +-----------------------------------------------------------*/ + +.chinaAddTable .tbl_add tr td input[type="text"]{ + padding:0 4px; +} + +.tbl_add tr td input[type="text"].w-50{ + width:50px; +} + +.tbl_add tr td input[type="text"].w-66{ + width:66px; +} + +.tbl_add tr td input[type="text"].w-74{ + width:74px; +} + +.tbl_add tr td input[type="text"].w-100{ + width:100px; +} + +.tbl_add tr td input[type="text"].w-112{ + width:112px; +} + +.tbl_add tr td input[type="text"].w-320{ + width:320px; +} + +.tbl_add .form_search select.sw-102 { + width: 102px; +} + +.tbl_add .form_search select.sw-210 { + width: 210px; +} + +.tbl_add .form_search select.w-76{ + width:76px; +} + +.search2 li.w-210 select{ + width:210px; +} + +.ml-10{ + margin-left:10px; +} + +.ml-16{ + margin-left:16px; +} + +.ml-24{ + margin-left:24px; +} + +.ml-38{ + margin-left:38px; +} + +.ml-48{ + margin-left:48px; +} + +.ml-72{ + margin-left:72px; +} + + +/* Styles for chinaList +-----------------------------------------------------------*/ +.tbl_scroll_wrap{ + width:100%; + overflow-x:scroll; +} + +.tbl_scroll_b{ + max-height:660px; + overflow-y:scroll; + width: 3250px; +} + +.tbl_scroll_h table{ + width:3250px; + font-size:11px; +} + +.tbl_scroll_b table{ + width:3230px; + font-size:11px; + border-top:0; +} + +.tbl_scroll_h thead tr:last-child th{ + border-top:1px solid #dcdcdc; +} + +.tbl_scroll_h thead tr:last-child th:first-child{ + border-left:1px solid #dcdcdc; +} + +.tbl_scroll_h tbody th{ + border-top:1px solid #dcdcdc; + text-align:center; +} + +.tbl_scroll_b td{ + text-align:center; +} + +.chn_table{ + position:absolute; + top:1038px; + left:0; +} + +.chn_table .pageinfo{ + padding-top:30px; +} + +.fl { + float : left; +} + +.text_num { + text-align : right !important; +} +.text_str { + text-align : left !important; +} +.text_ct { + text-align : center !important; +} +.chn_hr{ + margin:3px 0; + border:0; + border-bottom:1px solid #898989; + +} +.search_list .list-box .select_list .chn_label{ + width:40px; + padding-left:10px; + margin-left:15px; +} +.chn_radio input[type=radio]{ + vertical-align:middle; +} +.ml-8{ + margin-left:8px; +} +.chn_loading_wrap{ + display:table; + position:fixed; + top:0; + left:0; + width:100%; + height:100%; + background:#000; + opacity:.65; + z-index:999; +} +.chn_loading{ + display:table-cell; + vertical-align:middle; + text-align:center; +} diff --git a/src/main/webapp/dll/h2_common_code_data.sql b/src/main/webapp/dll/h2_common_code_data.sql new file mode 100644 index 0000000..d13d205 --- /dev/null +++ b/src/main/webapp/dll/h2_common_code_data.sql @@ -0,0 +1,9 @@ +INSERT INTO H2_COMMON_CODE(cc_group, cc_code, cc_code_name, cc_code_yak, cc_regdate, cc_comment, cc_order, cc_use_yn) +VALUES +('DC05', '01', 'Ư', '', NOW(), '', 1, 'Y'), +('DC05', '02', 'Ǵ', '', NOW(), '', 2, 'Y'), +('DC05', '03', 'ߺ', '', NOW(), '', 3, 'Y'), +('DC05', '04', '뺸', '', NOW(), '', 4, 'Y'), +('DC05', '05', '', '', NOW(), '', 5, 'Y'), +('DC05', '06', '', '', NOW(), '', 6, 'Y'), +('DC05', '07', '', '', NOW(), '', 7, 'Y'); \ No newline at end of file diff --git a/src/main/webapp/dll/h2_user_log_new.sql b/src/main/webapp/dll/h2_user_log_new.sql new file mode 100644 index 0000000..c80c806 --- /dev/null +++ b/src/main/webapp/dll/h2_user_log_new.sql @@ -0,0 +1,29 @@ +drop table t_user_log; +CREATE TABLE t_user_log ( + seq int(11) NOT NULL auto_increment, + userid varchar(20) NOT NULL default '', + name varchar(50) NOT NULL default '', + menu_id int(11) default null, + location varchar(100) default NULL, + user_ip varchar(20) default NULL, + place1 varchar(100) default NULL, + place2 varchar(100) default NULL, + position varchar(100) default NULL, + regdate datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (seq) +) TYPE=MyISAM; + +CREATE TABLE t_login_log ( + seq int(11) NOT NULL auto_increment, + userid varchar(20) NOT NULL default '', + name varchar(50) NOT NULL default '', + os varchar(100) default NULL, + bw varchar(100) default NULL, + bw_version varchar(100) default NULL, + user_ip varchar(20) default NULL, + place1 varchar(100) default NULL, + place2 varchar(100) default NULL, + position varchar(100) default NULL, + regdate datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (seq) +) TYPE=MyISAM; diff --git a/src/main/webapp/dll/t_log_tables.sql b/src/main/webapp/dll/t_log_tables.sql new file mode 100644 index 0000000..c80c806 --- /dev/null +++ b/src/main/webapp/dll/t_log_tables.sql @@ -0,0 +1,29 @@ +drop table t_user_log; +CREATE TABLE t_user_log ( + seq int(11) NOT NULL auto_increment, + userid varchar(20) NOT NULL default '', + name varchar(50) NOT NULL default '', + menu_id int(11) default null, + location varchar(100) default NULL, + user_ip varchar(20) default NULL, + place1 varchar(100) default NULL, + place2 varchar(100) default NULL, + position varchar(100) default NULL, + regdate datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (seq) +) TYPE=MyISAM; + +CREATE TABLE t_login_log ( + seq int(11) NOT NULL auto_increment, + userid varchar(20) NOT NULL default '', + name varchar(50) NOT NULL default '', + os varchar(100) default NULL, + bw varchar(100) default NULL, + bw_version varchar(100) default NULL, + user_ip varchar(20) default NULL, + place1 varchar(100) default NULL, + place2 varchar(100) default NULL, + position varchar(100) default NULL, + regdate datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (seq) +) TYPE=MyISAM; diff --git a/src/main/webapp/dll/t_memu.sql b/src/main/webapp/dll/t_memu.sql new file mode 100644 index 0000000..6addd29 --- /dev/null +++ b/src/main/webapp/dll/t_memu.sql @@ -0,0 +1,19 @@ +CREATE TABLE `t_menu` ( + `ID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '순번', + `NAME` varchar(50) DEFAULT NULL COMMENT '메뉴명', + `ENG_NAME` varchar(50) DEFAULT NULL COMMENT '영어 메뉴명', + `PARENT` decimal(10,0) DEFAULT NULL COMMENT '상위 메뉴 식별자', + `DEPTH` decimal(10,0) DEFAULT NULL COMMENT '메뉴 깊이', + `URL` varchar(100) DEFAULT NULL COMMENT 'URL', + `MENU_POSITION` varchar(10) DEFAULT NULL COMMENT '메뉴 위치', + `VISIBLE` varchar(10) DEFAULT NULL COMMENT '사용여부', + `URL_GROUP` varchar(20) DEFAULT NULL COMMENT '메뉴 그룹', + `SUB_VISIBLE` varchar(10) DEFAULT NULL COMMENT '페이지 내 하위메뉴 표현여부', + `ROLE_LEVEL` decimal(10,0) DEFAULT NULL COMMENT 'Role 레벨', + `URL_QUERY` varchar(100) DEFAULT NULL COMMENT 'URL 호출시 사용할 GET 파라미터 문자열', + `BOARD_ID` varchar(20) DEFAULT NULL COMMENT '게시판 ID (공용뷰를 사용하는 페이지만 적용)', + `WINDOW_TARGET` varchar(20) DEFAULT '_self' COMMENT '메뉴를 조회할 윈도우창 대상(HTML A태그의 TARGET 속성)', + `MEMO` varchar(250) DEFAULT NULL COMMENT '메뉴 설명', + `ORD` int(2) DEFAULT 0 COMMENT '정렬', + PRIMARY KEY (`ID`) +); \ No newline at end of file diff --git a/src/main/webapp/dll/t_menu_data.sql b/src/main/webapp/dll/t_menu_data.sql new file mode 100644 index 0000000..d138c08 --- /dev/null +++ b/src/main/webapp/dll/t_menu_data.sql @@ -0,0 +1,169 @@ +delete from T_MENU; +INSERT INTO T_MENU (ID, NAME, ENG_NAME, PARENT, DEPTH, URL, MENU_POSITION, VISIBLE, URL_GROUP, SUB_VISIBLE, ROLE_LEVEL, URL_QUERY, BOARD_ID, WINDOW_TARGET, MEMO , ORD) +VALUES +(1, 'Խ', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 1), + +(11, '', null, 1, 2, '/list.do', 'GNB', 'Y', 'bbs', 'Y', '7', null, 'notice', '_self', ' Ȯ ֽϴ.', 1), +(111, '', null, 1, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'notice', '_self', ' Ȯ ֽϴ.', 1), +(112, '', null, 1, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'notice', '_self', ' Ȯ ֽϴ.', 1), +(113, '', null, 1, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'notice', '_self', ' Ȯ ֽϴ.', 1), + +(12, 'û', null, 1, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'joint', '_self', 'ֺ ؾ û ֽϴ.', 2), +(121, 'û', null, 1, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'joint', '_self', 'ֺ ؾ û ֽϴ.', 1), +(122, 'û', null, 1, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'joint', '_self', 'ֺ ؾ û ֽϴ.', 1), +(123, 'û', null, 1, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'joint', '_self', 'ֺ ؾ û ֽϴ.', 1), +(124, 'û', null, 1, 2, '/replyView.do', null, 'Y', 'bbs', 'N', '7', null, 'joint', '_self', 'ֺ ؾ û ֽϴ.', 1), + +(2, 'ؾDB', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 2), +(21, 'Ϻ', null, 2, 2, null, 'GNB', 'Y', 'nation', 'N', '7', 'seq=167', null, '_self', null, 1), + +(211, '⺻', null, 21, 3, '/info.do', 'SUB', 'Y', 'nation', 'N', '7', 'seq=167', null, '_self', 'Ϻ ؾDB ڷḦ ֽϴ.', 1), + +(212, 'ؾġȱ', null, 21, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n167', 'world01', '_self', 'Ϻ ؾġȱ ֽϴ.', 1), +(2121, 'ؾġȱ', null, 21, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world01', '_self', 'Ϻ ؾġȱ ֽϴ.', 1), +(2122, 'ؾġȱ', null, 21, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world01', '_self', 'Ϻ ؾġȱ ֽϴ.', 1), +(2123, 'ؾġȱ', null, 21, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world01', '_self', 'Ϻ ؾġȱ ֽϴ.', 1), + +(213, 'ؾå', null, 21, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n167', 'world02', '_self', 'Ϻ ؾå⿡ ֽϴ.', 1), +(2131, 'ؾå', null, 21, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world02', '_self', 'Ϻ ؾå⿡ ֽϴ.', 1), +(2132, 'ؾå', null, 21, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world02', '_self', 'Ϻ ؾå⿡ ֽϴ.', 1), +(2133, 'ؾå', null, 21, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world02', '_self', 'Ϻ ؾå⿡ ֽϴ.', 1), + +(214, 'ؾ', null, 21, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n167', 'world03', '_self', 'Ϻ ؾ£ ֽϴ.', 1), +(2141, 'ؾ', null, 21, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world03', '_self', 'Ϻ ؾ£ ֽϴ.', 1), +(2142, 'ؾ', null, 21, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world03', '_self', 'Ϻ ؾ£ ֽϴ.', 1), +(2143, 'ؾ', null, 21, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n167', 'world03', '_self', 'Ϻ ؾ£ ֽϴ.', 1), + +(22, '߱', null, 2, 2, null, 'GNB', 'Y', 'nation', 'N', '7', 'seq=163', null, '_self', null, 2), +(221, '⺻', null, 22, 3, '/info.do', 'SUB', 'Y', 'nation', 'N', '7', 'seq=163', null, '_self', '߱ ؾDB ڷḦ ֽϴ.', 1), + +(222, 'ؾġȱ', null, 22, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n163', 'world01', '_self', '߱ ؾġȱ ֽϴ.', 1), +(2221, 'ؾġȱ', null, 22, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world01', '_self', '߱ ؾġȱ ֽϴ.', 1), +(2222, 'ؾġȱ', null, 22, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world01', '_self', '߱ ؾġȱ ֽϴ.', 1), +(2223, 'ؾġȱ', null, 22, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world01', '_self', '߱ ؾġȱ ֽϴ.', 1), + +(223, 'ؾå', null, 22, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n163', 'world02', '_self', '߱ ؾå⿡ ֽϴ.', 1), +(2231, 'ؾå', null, 22, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world02', '_self', '߱ ؾå⿡ ֽϴ.', 1), +(2232, 'ؾå', null, 22, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world02', '_self', '߱ ؾå⿡ ֽϴ.', 1), +(2233, 'ؾå', null, 22, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world02', '_self', '߱ ؾå⿡ ֽϴ.', 1), + +(224, 'ؾ', null, 22, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n163', 'world03', '_self', '߱ ؾ£ ֽϴ.', 1), +(2241, 'ؾ', null, 22, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world03', '_self', '߱ ؾ£ ֽϴ.', 1), +(2242, 'ؾ', null, 22, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world03', '_self', '߱ ؾ£ ֽϴ.', 1), +(2243, 'ؾ', null, 22, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n163', 'world03', '_self', '߱ ؾ£ ֽϴ.', 1), + +(23, 'þ', null, 2, 2, null, 'GNB', 'Y', 'nation', 'N', '7', 'seq=33', null, '_self', null, 3), +(231, '⺻', null, 23, 3, '/info.do', 'SUB', 'Y', 'nation', 'N', '7', 'seq=33', null, '_self', 'þ ؾġȱ ֽϴ.', 1), + +(232, 'ؾġȱ', null, 23, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n033', 'world01', '_self', 'þ ؾġȱ ֽϴ.', 1), +(2321, 'ؾġȱ', null, 23, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world01', '_self', 'þ ؾġȱ ֽϴ.', 1), +(2322, 'ؾġȱ', null, 23, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world01', '_self', 'þ ؾġȱ ֽϴ.', 1), +(2323, 'ؾġȱ', null, 23, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world01', '_self', 'þ ؾġȱ ֽϴ.', 1), + +(233, 'ؾå', null, 23, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n033', 'world02', '_self', 'þ ؾå⿡ ֽϴ.', 1), +(2331, 'ؾå', null, 23, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world02', '_self', 'þ ؾå⿡ ֽϴ.', 1), +(2332, 'ؾå', null, 23, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world02', '_self', 'þ ؾå⿡ ֽϴ.', 1), +(2333, 'ؾå', null, 23, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world02', '_self', 'þ ؾå⿡ ֽϴ.', 1), + +(234, 'ؾ', null, 23, 3, '/list.do', 'SUB', 'Y', 'bbs', 'N', '7', 'ct=n033', 'world03', '_self', 'þ ؾ£ ֽϴ.', 1), +(2341, 'ؾ', null, 23, 3, '/view.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world03', '_self', 'þ ؾ£ ֽϴ.', 1), +(2342, 'ؾ', null, 23, 3, '/addView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world03', '_self', 'þ ؾ£ ֽϴ.', 1), +(2343, 'ؾ', null, 23, 3, '/updateView.do', null, 'Y', 'bbs', 'N', '7', 'ct=n033', 'world03', '_self', 'þ ؾ£ ֽϴ.', 1), + +(3, 'Ⱥ', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 3), +(31, 'ؾƮ', null, 3, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'report', '_self', 'ؾƮ ֽϴ.', 1), +(311, 'ؾƮ', null, 3, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'report', '_self', 'ؾƮ ֽϴ.', 1), +(312, 'ؾƮ', null, 3, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'report', '_self', 'ؾƮ ֽϴ.', 1), +(313, 'ؾƮ', null, 3, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'report', '_self', 'ؾƮ ֽϴ.', 1), +(32, 'ؾ', null, 3, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'state', '_self', 'ؾ ֽϴ.', 2), +(321, 'ؾ', null, 3, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'state', '_self', 'ؾ ֽϴ.', 1), +(322, 'ؾ', null, 3, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'state', '_self', 'ؾ ֽϴ.', 1), +(323, 'ؾ', null, 3, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'state', '_self', 'ؾ ֽϴ.', 1), + + +/*(4, 'ֺ ؾ缼', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 4), +(41, 'ֺ ؾ缼', null, 4, 2, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 1), +(42, '߱ؾ缼', null, 4, 2, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 2), +(43, 'Ʈ', null, 4, 2, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 3), +*/ +(4, 'ȸ', null, null, 1, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'confer', '_self', 'ȸǿ ֽϴ.', 4), +(41, 'ȸ', null, 4, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'confer', '_self', 'ȸǿ ֽϴ.', 1), +(42, 'ȸ', null, 4, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'confer', '_self', 'ȸǿ ֽϴ.', 1), +(43, 'ȸ', null, 4, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'confer', '_self', 'ȸǿ ֽϴ.', 1), + +(5, 'ڷ', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 5), +(51, '/̾', null, 5, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'dokdo', '_self', ' ̾ ڷǿ ֽϴ.', 1), +(511, '/̾', null, 5, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'dokdo', '_self', ' ̾ ڷǿ ֽϴ.', 1), +(512, '/̾', null, 5, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'dokdo', '_self', ' ̾ ڷǿ ֽϴ.', 1), +(513, '/̾', null, 5, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'dokdo', '_self', ' ̾ ڷǿ ֽϴ.', 1), + +(52, '/IMO', null, 5, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'imo', '_self', ', IMO  ֽϴ.', 2), +(521, '/IMO', null, 5, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'imo', '_self', ', IMO  ֽϴ.', 1), +(522, '/IMO', null, 5, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'imo', '_self', ', IMO  ֽϴ.', 1), +(523, '/IMO', null, 5, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'imo', '_self', ', IMO  ֽϴ.', 1), + +(53, 'Ʈ', null, 5, 2, '/list.do', 'GNB', 'Y', 'moniter', 'N', '7', null, null, '_self', ' Ʈ ֽϴ.', 3), +(54, 'ؾ ', null, 5, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'law', '_self', 'ؾ 並 û ֽϴ.', 4), +(541, 'ؾ ', null, 1, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'law', '_self', 'ؾ 並 û ֽϴ.', 1), +(542, 'ؾ ', null, 1, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'law', '_self', 'ؾ 並 û ֽϴ.', 1), +(543, 'ؾ ', null, 1, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'law', '_self', 'ؾ 並 û ֽϴ.', 1), +(544, 'ؾ ', null, 1, 2, '/replyView.do', null, 'Y', 'bbs', 'N', '7', null, 'law', '_self', 'ؾ 並 û ֽϴ.', 1), +(55, '', null, 5, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'vedio', '_self', ' ڷḦ ֽϴ.', 5), +(551, '', null, 5, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'vedio', '_self', ' ڷḦ ֽϴ.', 1), +(552, '', null, 5, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'vedio', '_self', ' ڷḦ ֽϴ.', 1), +(553, '', null, 5, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'vedio', '_self', ' ڷḦ ֽϴ.', 1), +(554, '', null, 5, 2, '/replyView.do', null, 'Y', 'bbs', 'N', '7', null, 'vedio', '_self', ' ڷḦ ֽϴ.', 1), +(56, '̹', null, 5, 2, '/list.do', 'GNB', 'Y', 'bbs', 'N', '7', null, 'image', '_self', '̹ ڷḦ ֽϴ.', 6), +(561, '̹', null, 5, 2, '/view.do', null, 'Y', 'bbs', 'N', '7', null, 'image', '_self', '̹ ڷḦ ֽϴ.', 1), +(562, '̹', null, 5, 2, '/addView.do', null, 'Y', 'bbs', 'N', '7', null, 'image', '_self', '̹ ڷḦ ֽϴ.', 1), +(563, '̹', null, 5, 2, '/updateView.do', null, 'Y', 'bbs', 'N', '7', null, 'image', '_self', '̹ ڷḦ ֽϴ.', 1), +(564, '̹', null, 5, 2, '/replyView.do', null, 'Y', 'bbs', 'N', '7', null, 'image', '_self', '̹ ڷḦ ֽϴ.', 1), + +(6, '߹', null, null, 1, null, 'GNB', 'Y', null, 'N', '7', null, null, '_self', null, 6), +(61, '߹ۼ', null, 6, 2, null, 'GNB', 'Y', 'report', 'N', '7', null, null, '_self', null, 1), +(611, 'űۼ', null, 61, 3, '/add.do', 'SUB', 'Y', 'report', 'N', '7', null, null, '_self', '߹ ۼ ֽϴ.', 1), +(612, 'ӽ', null, 61, 3, '/saveList.do', 'SUB', 'Y', 'report', 'N', '7', null, null, '_self', 'ӽ ߹ Ȯ ֽϴ.', 2), + +(62, '/ȸ', null , 6, 2, null, 'GNB', 'Y', 'report', 'N', '7', null, null, '_self', null, 2), +(621, ' ȸ', null, 62, 3, '/myList.do', 'SUB', 'Y', 'report', 'N', '7', null, null, '_self', ' Ȯ ֽϴ.', 1), +(6211, '߹ ', null, 621, 4, '/updateMyReport.do', null, 'Y', 'report', 'N', '7', null, null, '_self', null, 1), +(6212, '߹ ', null, 621, 4, '/updateApprove.do', null, 'Y', 'report', 'N', '7', null, null, '_self', null, 1), +(6213, '߹ ', null, 621, 4, '/update.do', null, 'Y', 'report', 'N', '7', null, null, '_self', null, 1), + +(622, ' ', null, 62, 3, '/waitList.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', ' ߹ Ȯ ֽϴ.', 2), +(6221, ' ', null, 62, 3, '/approval.do', null, 'N', 'report', 'N', '4', null, null, '_self', ' ߹ Ȯ ֽϴ.', 2), + +(623, ' ó ', null, 62, 3, '/approveList.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', ' ó ߹ Ȯ ֽϴ.', 3), + +(63, '߹˻', null, 6, 2, '/search.do', 'GNB', 'Y', 'report', 'N', '4', null, null, '_self', 'ϵ ߹ ˻ ֽϴ.', 3), +(631, '߹˻', null, 63, 2, '/searchResult.do', null, 'Y', 'report', 'N', '4', null, null, '_self', 'ϵ ߹ ˻ ֽϴ.', 3), + +(64, '߹', null, 6, 2, '/statistics.do', 'GNB', 'Y', 'report', 'N', '4', null, null, '_self', 'ϵ ߹ 踦 ֽϴ.', 4), +(641, '߹', null, 64, 2, '/statsResult.do', null, 'Y', 'report', 'N', '4', null, null, '_self', 'ϵ ߹ 踦 ֽϴ.', 3), +(65, '߹', null, 6, 2, null, 'GNB', 'Y', 'report', 'N', '4', null, null, '_self', null, 5), +(651, '߹Ȳ', null, 65, 3, '/presentList.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', '߹Ȳ Ȯ ֽϴ.', 1), +(6511, '߹Ȳ', null, 65, 3, '/updatePresent.do', null, 'N', 'report', 'N', '4', null, null, '_self', '߹Ȳ Ȯ ֽϴ.', 1), + +(652, '򰡱Ϻ', null, 65, 3, '/judgeRecord.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', '߹򰡱 Ȯ ֽϴ.', 2), +(6521, '򰡱Ϻ', null, 65, 3, '/updateJudge.do', null, 'N', 'report', 'N', '4', null, null, '_self', '߹򰡱 Ȯ ֽϴ.', 2), + +(653, 'ϰԷ', null, 65, 3, '/offlineWrite.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', '߹ ϰԷ ֽϴ.', 3), +(654, 'о߰', null, 65, 3, '/reportCategory.do', 'SUB', 'Y', 'report', 'N', '4', null, null, '_self', '߹ о߸ ֽϴ.', 4), + +(7, '', null, null, 1, '/memberList.do', 'TOP', 'N', 'admin', 'Y', '2', null, null, '_self', null, 6), +(71, '', null, 7, 2, '/memberList.do', 'SUB', 'Y', 'admin', 'N', '2', null, null, '_self', ' ֽϴ.', 1), +(711, '-', null, 71, 3, '/memberInfo.do', null, 'N', 'admin', 'N', '2', null, null, '_self', ' ֽϴ.', 1), +(712, '-', null, 71, 3, '/memberUpdateView.do', null, 'N', 'admin', 'N', '2', null, null, '_self', ' ֽϴ.', 1), +(713, '-ű', null, 7, 3, '/memberNewList.do', 'SUB', 'Y', 'admin', 'N', '2', null, null, '_self', ' ֽϴ.', 1), + +(72, 'Ѱ', null, 7, 2, '/memberAuth.do', 'SUB', 'Y', 'admin', 'N', '2', null, null, '_self', ' ֽϴ.', 3), +(73, 'ҼӰ', null, 7, 2, '/placeManage.do', 'SUB', 'Y', 'admin', 'N', '2', null, null, '_self', 'Ҽ ֽϴ.', 2), + +(74, '˾', null, 7, 2, '/list.do', 'SUB', 'Y', 'notice', 'N', '2', null, null, '_self', '˾ ֽϴ.', 4), +(741, '˾', null, 7, 2, '/view.do', null, 'Y', 'notice', 'N', '7', null, 'notice', '_self', '˾ ֽϴ.', 1), +(742, '˾', null, 7, 2, '/addView.do', null, 'Y', 'notice', 'N', '7', null, 'notice', '_self', '˾ ֽϴ.', 1), +(743, '˾', null, 7, 2, '/updateView.do', null, 'Y', 'notice', 'N', '7', null, 'notice', '_self', '˾ ֽϴ.', 1), +(75, '͸', null, 7, 2, '/moniterManage.do', 'SUB', 'Y', 'admin', 'N', '2', null, null, '_self', '͸ ֽϴ.', 5); + + + diff --git a/src/main/webapp/dll/t_sso_auth_code.sql b/src/main/webapp/dll/t_sso_auth_code.sql new file mode 100644 index 0000000..ae08cd7 --- /dev/null +++ b/src/main/webapp/dll/t_sso_auth_code.sql @@ -0,0 +1,18 @@ +CREATE table T_SSO_AUTH_CODE +( + CODE_ID NUMERIC NOT NULL COMMENT '권한코드 (h2_user_info.usr_lv)', + CODE_NM VARCHAR(60) NOT NULL COMMENT '권한명', + DESCRIPTION VARCHAR(200) COMMENT '설명', + EXPOSURE NUMERIC DEFAULT 0 COMMENT '사용여부', + ROLE_LEVEL NUMERIC DEFAULT 0 COMMENT '권한레벨' +); + +INSERT INTO h2_bbs.t_sso_auth_code (CODE_ID,CODE_NM,DESCRIPTION,EXPOSURE,ROLE_LEVEL) VALUES +(1,'ROLE_ADMIN','관리자',1,0) +,(2,'ROLE_MIDDLE_ADMIN','중간관리자',1,1) +,(3,'ROLE_MANAGE','국제협력담당관',1,2) +,(4,'ROLE_LEADER','국제범규팀장',1,3) +,(6,'ROLE_USER','사용자(쓰기)',1,4) +,(7,'ROLE_READ_USER','사용자',1,5) +,(8,'ROLE_DISABLE','이용중지',1,99) +; \ No newline at end of file diff --git a/src/main/webapp/dll/t_sso_auth_url.sql b/src/main/webapp/dll/t_sso_auth_url.sql new file mode 100644 index 0000000..2a1eea0 --- /dev/null +++ b/src/main/webapp/dll/t_sso_auth_url.sql @@ -0,0 +1,8 @@ +drop table T_SSO_AUTH_URL; +CREATE TABLE T_SSO_AUTH_URL + (URL_ID numeric NOT null COMMENT '식별자', + URL VARCHAR(100) COMMENT 'URL 패턴', + URL_NM VARCHAR(20) COMMENT '규칙설명', + AUTH_CODE numeric COMMENT '권한코드', + PRIORITY numeric COMMENT '우선순위', + CONSTRAINT T_SSO_AUTH_URL_PK PRIMARY KEY (URL_ID)); diff --git a/src/main/webapp/dll/t_sso_hierarchy_roles.sql b/src/main/webapp/dll/t_sso_hierarchy_roles.sql new file mode 100644 index 0000000..24eaaa0 --- /dev/null +++ b/src/main/webapp/dll/t_sso_hierarchy_roles.sql @@ -0,0 +1,34 @@ +CREATE TABLE h2_bbs.T_SSO_HIERARCHY_ROLES( + PARENTS_ROLE VARCHAR(50) not null, + CHILDREN_ROLE VARCHAR(50) ); + +INSERT INTO T_SSO_HIERARCHY_ROLES (PARENTS_ROLE,CHILDREN_ROLE) VALUES +('ANONYMOUS_USER','IS_AUTHENTICATED_ANONYMOUSLY') +,('IS_AUTHENTICATED_ANONYMOUSLY','IS_AUTHENTICATED_REMEMBERED') +,('IS_AUTHENTICATED_REMEMBERED','IS_AUTHENTICATED_FULLY') +,('IS_AUTHENTICATED_FULLY','ROLE_RESTRICTED') +,('ROLE_RESTRICTED','ROLE_USER') +,('ROLE_USER','FA_USER_14') +,('FA_USER_14','FA_USER_13') +,('FA_USER_13','FA_USER_12') +,('FA_USER_12','FA_USER_11') +,('FA_USER_11','FA_USER_10') +; +INSERT INTO T_SSO_HIERARCHY_ROLES (PARENTS_ROLE,CHILDREN_ROLE) VALUES +('FA_USER_10','FA_USER_9') +,('FA_USER_9','FA_USER_8') +,('FA_USER_8','FA_USER_7') +,('FA_USER_7','FA_USER_6') +,('FA_USER_6','FA_USER_5') +,('FA_USER_5','FA_USER_4') +,('FA_USER_4','FA_USER_3') +,('FA_USER_3','FA_USER_2') +,('FA_USER_2','FA_USER_1') +,('FA_USER_1','FA_USER_0') +; +INSERT INTO T_SSO_HIERARCHY_ROLES (PARENTS_ROLE,CHILDREN_ROLE) VALUES +('FA_USER_0','ROLE_MANAGER') +,('ROLE_USER','NFA_USER') +,('NFA_USER','ROLE_MANAGER') +,('ROLE_MANAGER','ROLE_ADMIN') +; \ No newline at end of file diff --git a/src/main/webapp/fancybox/blank.gif b/src/main/webapp/fancybox/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/src/main/webapp/fancybox/blank.gif differ diff --git a/src/main/webapp/fancybox/fancybox_loading.gif b/src/main/webapp/fancybox/fancybox_loading.gif new file mode 100644 index 0000000..a03a40c Binary files /dev/null and b/src/main/webapp/fancybox/fancybox_loading.gif differ diff --git a/src/main/webapp/fancybox/fancybox_loading@2x.gif b/src/main/webapp/fancybox/fancybox_loading@2x.gif new file mode 100644 index 0000000..9205aeb Binary files /dev/null and b/src/main/webapp/fancybox/fancybox_loading@2x.gif differ diff --git a/src/main/webapp/fancybox/fancybox_overlay.png b/src/main/webapp/fancybox/fancybox_overlay.png new file mode 100644 index 0000000..a439139 Binary files /dev/null and b/src/main/webapp/fancybox/fancybox_overlay.png differ diff --git a/src/main/webapp/fancybox/fancybox_sprite.png b/src/main/webapp/fancybox/fancybox_sprite.png new file mode 100644 index 0000000..fd8d5ca Binary files /dev/null and b/src/main/webapp/fancybox/fancybox_sprite.png differ diff --git a/src/main/webapp/fancybox/fancybox_sprite@2x.png b/src/main/webapp/fancybox/fancybox_sprite@2x.png new file mode 100644 index 0000000..d0e4779 Binary files /dev/null and b/src/main/webapp/fancybox/fancybox_sprite@2x.png differ diff --git a/src/main/webapp/fancybox/helpers/fancybox_buttons.png b/src/main/webapp/fancybox/helpers/fancybox_buttons.png new file mode 100644 index 0000000..0787207 Binary files /dev/null and b/src/main/webapp/fancybox/helpers/fancybox_buttons.png differ diff --git a/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.css b/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.css new file mode 100644 index 0000000..a26273a --- /dev/null +++ b/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.css @@ -0,0 +1,97 @@ +#fancybox-buttons { + position: fixed; + left: 0; + width: 100%; + z-index: 8050; +} + +#fancybox-buttons.top { + top: 10px; +} + +#fancybox-buttons.bottom { + bottom: 10px; +} + +#fancybox-buttons ul { + display: block; + width: 166px; + height: 30px; + margin: 0 auto; + padding: 0; + list-style: none; + border: 1px solid #111; + border-radius: 3px; + -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + background: rgb(50,50,50); + background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); + background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); +} + +#fancybox-buttons ul li { + float: left; + margin: 0; + padding: 0; +} + +#fancybox-buttons a { + display: block; + width: 30px; + height: 30px; + text-indent: -9999px; + background-color: transparent; + background-image: url('fancybox_buttons.png'); + background-repeat: no-repeat; + outline: none; + opacity: 0.8; +} + +#fancybox-buttons a:hover { + opacity: 1; +} + +#fancybox-buttons a.btnPrev { + background-position: 5px 0; +} + +#fancybox-buttons a.btnNext { + background-position: -33px 0; + border-right: 1px solid #3e3e3e; +} + +#fancybox-buttons a.btnPlay { + background-position: 0 -30px; +} + +#fancybox-buttons a.btnPlayOn { + background-position: -30px -30px; +} + +#fancybox-buttons a.btnToggle { + background-position: 3px -60px; + border-left: 1px solid #111; + border-right: 1px solid #3e3e3e; + width: 35px +} + +#fancybox-buttons a.btnToggleOn { + background-position: -27px -60px; +} + +#fancybox-buttons a.btnClose { + border-left: 1px solid #111; + width: 35px; + background-position: -56px 0px; +} + +#fancybox-buttons a.btnDisabled { + opacity : 0.4; + cursor: default; +} \ No newline at end of file diff --git a/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.js b/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.js new file mode 100644 index 0000000..fd8b955 --- /dev/null +++ b/src/main/webapp/fancybox/helpers/jquery.fancybox-buttons.js @@ -0,0 +1,122 @@ + /*! + * Buttons helper for fancyBox + * version: 1.0.5 (Mon, 15 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * buttons: { + * position : 'top' + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.buttons = { + defaults : { + skipSingle : false, // disables if gallery contains single image + position : 'top', // 'top' or 'bottom' + tpl : '
' + }, + + list : null, + buttons: null, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + + if (opts.skipSingle && obj.group.length < 2) { + obj.helpers.buttons = false; + obj.closeBtn = true; + + return; + } + + //Increase top margin to give space for buttons + obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; + }, + + onPlayStart: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); + } + }, + + onPlayEnd: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); + } + }, + + afterShow: function (opts, obj) { + var buttons = this.buttons; + + if (!buttons) { + this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); + + buttons = { + prev : this.list.find('.btnPrev').click( F.prev ), + next : this.list.find('.btnNext').click( F.next ), + play : this.list.find('.btnPlay').click( F.play ), + toggle : this.list.find('.btnToggle').click( F.toggle ), + close : this.list.find('.btnClose').click( F.close ) + } + } + + //Prev + if (obj.index > 0 || obj.loop) { + buttons.prev.removeClass('btnDisabled'); + } else { + buttons.prev.addClass('btnDisabled'); + } + + //Next / Play + if (obj.loop || obj.index < obj.group.length - 1) { + buttons.next.removeClass('btnDisabled'); + buttons.play.removeClass('btnDisabled'); + + } else { + buttons.next.addClass('btnDisabled'); + buttons.play.addClass('btnDisabled'); + } + + this.buttons = buttons; + + this.onUpdate(opts, obj); + }, + + onUpdate: function (opts, obj) { + var toggle; + + if (!this.buttons) { + return; + } + + toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); + + //Size toggle button + if (obj.canShrink) { + toggle.addClass('btnToggleOn'); + + } else if (!obj.canExpand) { + toggle.addClass('btnDisabled'); + } + }, + + beforeClose: function () { + if (this.list) { + this.list.remove(); + } + + this.list = null; + this.buttons = null; + } + }; + +}(jQuery)); diff --git a/src/main/webapp/fancybox/helpers/jquery.fancybox-media.js b/src/main/webapp/fancybox/helpers/jquery.fancybox-media.js new file mode 100644 index 0000000..3584c8a --- /dev/null +++ b/src/main/webapp/fancybox/helpers/jquery.fancybox-media.js @@ -0,0 +1,199 @@ +/*! + * Media helper for fancyBox + * version: 1.0.6 (Fri, 14 Jun 2013) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * media: true + * } + * }); + * + * Set custom URL parameters: + * $(".fancybox").fancybox({ + * helpers : { + * media: { + * youtube : { + * params : { + * autoplay : 0 + * } + * } + * } + * } + * }); + * + * Or: + * $(".fancybox").fancybox({, + * helpers : { + * media: true + * }, + * youtube : { + * autoplay: 0 + * } + * }); + * + * Supports: + * + * Youtube + * http://www.youtube.com/watch?v=opj24KnzrWo + * http://www.youtube.com/embed/opj24KnzrWo + * http://youtu.be/opj24KnzrWo + * http://www.youtube-nocookie.com/embed/opj24KnzrWo + * Vimeo + * http://vimeo.com/40648169 + * http://vimeo.com/channels/staffpicks/38843628 + * http://vimeo.com/groups/surrealism/videos/36516384 + * http://player.vimeo.com/video/45074303 + * Metacafe + * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ + * http://www.metacafe.com/watch/7635964/ + * Dailymotion + * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people + * Twitvid + * http://twitvid.com/QY7MD + * Twitpic + * http://twitpic.com/7p93st + * Instagram + * http://instagr.am/p/IejkuUGxQn/ + * http://instagram.com/p/IejkuUGxQn/ + * Google maps + * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 + * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 + */ +(function ($) { + "use strict"; + + //Shortcut for fancyBox object + var F = $.fancybox, + format = function( url, rez, params ) { + params = params || ''; + + if ( $.type( params ) === "object" ) { + params = $.param(params, true); + } + + $.each(rez, function(key, value) { + url = url.replace( '$' + key, value || '' ); + }); + + if (params.length) { + url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; + } + + return url; + }; + + //Add helper object + F.helpers.media = { + defaults : { + youtube : { + matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, + params : { + autoplay : 1, + autohide : 1, + fs : 1, + rel : 0, + hd : 1, + wmode : 'opaque', + enablejsapi : 1 + }, + type : 'iframe', + url : '//www.youtube.com/embed/$3' + }, + vimeo : { + matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, + params : { + autoplay : 1, + hd : 1, + show_title : 1, + show_byline : 1, + show_portrait : 0, + fullscreen : 1 + }, + type : 'iframe', + url : '//player.vimeo.com/video/$1' + }, + metacafe : { + matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, + params : { + autoPlay : 'yes' + }, + type : 'swf', + url : function( rez, params, obj ) { + obj.swf.flashVars = 'playerVars=' + $.param( params, true ); + + return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; + } + }, + dailymotion : { + matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, + params : { + additionalInfos : 0, + autoStart : 1 + }, + type : 'swf', + url : '//www.dailymotion.com/swf/video/$1' + }, + twitvid : { + matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, + params : { + autoplay : 0 + }, + type : 'iframe', + url : '//www.twitvid.com/embed.php?guid=$1' + }, + twitpic : { + matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, + type : 'image', + url : '//twitpic.com/show/full/$1/' + }, + instagram : { + matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type : 'image', + url : '//$1/p/$2/media/?size=l' + }, + google_maps : { + matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, + type : 'iframe', + url : function( rez ) { + return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); + } + } + }, + + beforeLoad : function(opts, obj) { + var url = obj.href || '', + type = false, + what, + item, + rez, + params; + + for (what in opts) { + if (opts.hasOwnProperty(what)) { + item = opts[ what ]; + rez = url.match( item.matcher ); + + if (rez) { + type = item.type; + params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); + + url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); + + break; + } + } + } + + if (type) { + obj.href = url; + obj.type = type; + + obj.autoHeight = false; + } + } + }; + +}(jQuery)); \ No newline at end of file diff --git a/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.css b/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.css new file mode 100644 index 0000000..63d2943 --- /dev/null +++ b/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.css @@ -0,0 +1,55 @@ +#fancybox-thumbs { + position: fixed; + left: 0; + width: 100%; + overflow: hidden; + z-index: 8050; +} + +#fancybox-thumbs.bottom { + bottom: 2px; +} + +#fancybox-thumbs.top { + top: 2px; +} + +#fancybox-thumbs ul { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +#fancybox-thumbs ul li { + float: left; + padding: 1px; + opacity: 0.5; +} + +#fancybox-thumbs ul li.active { + opacity: 0.75; + padding: 0; + border: 1px solid #fff; +} + +#fancybox-thumbs ul li:hover { + opacity: 1; +} + +#fancybox-thumbs ul li a { + display: block; + position: relative; + overflow: hidden; + border: 1px solid #222; + background: #111; + outline: none; +} + +#fancybox-thumbs ul li img { + display: block; + position: relative; + border: 0; + padding: 0; + max-width: none; +} \ No newline at end of file diff --git a/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.js b/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.js new file mode 100644 index 0000000..5db3d4a --- /dev/null +++ b/src/main/webapp/fancybox/helpers/jquery.fancybox-thumbs.js @@ -0,0 +1,162 @@ + /*! + * Thumbnail helper for fancyBox + * version: 1.0.7 (Mon, 01 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * thumbs: { + * width : 50, + * height : 50 + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.thumbs = { + defaults : { + width : 50, // thumbnail width + height : 50, // thumbnail height + position : 'bottom', // 'top' or 'bottom' + source : function ( item ) { // function to obtain the URL of the thumbnail image + var href; + + if (item.element) { + href = $(item.element).find('img').attr('src'); + } + + if (!href && item.type === 'image' && item.href) { + href = item.href; + } + + return href; + } + }, + + wrap : null, + list : null, + width : 0, + + init: function (opts, obj) { + var that = this, + list, + thumbWidth = opts.width, + thumbHeight = opts.height, + thumbSource = opts.source; + + //Build list structure + list = ''; + + for (var n = 0; n < obj.group.length; n++) { + list += '
  • '; + } + + this.wrap = $('
    ').addClass(opts.position).appendTo('body'); + this.list = $('
      ' + list + '
    ').appendTo(this.wrap); + + //Load each thumbnail + $.each(obj.group, function (i) { + var href = thumbSource( obj.group[ i ] ); + + if (!href) { + return; + } + + $("").load(function () { + var width = this.width, + height = this.height, + widthRatio, heightRatio, parent; + + if (!that.list || !width || !height) { + return; + } + + //Calculate thumbnail width/height and center it + widthRatio = width / thumbWidth; + heightRatio = height / thumbHeight; + + parent = that.list.children().eq(i).find('a'); + + if (widthRatio >= 1 && heightRatio >= 1) { + if (widthRatio > heightRatio) { + width = Math.floor(width / heightRatio); + height = thumbHeight; + + } else { + width = thumbWidth; + height = Math.floor(height / widthRatio); + } + } + + $(this).css({ + width : width, + height : height, + top : Math.floor(thumbHeight / 2 - height / 2), + left : Math.floor(thumbWidth / 2 - width / 2) + }); + + parent.width(thumbWidth).height(thumbHeight); + + $(this).hide().appendTo(parent).fadeIn(300); + + }).attr('src', href); + }); + + //Set initial width + this.width = this.list.children().eq(0).outerWidth(true); + + this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); + }, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + if (obj.group.length < 2) { + obj.helpers.thumbs = false; + + return; + } + + //Increase bottom margin to give space for thumbs + obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); + }, + + afterShow: function (opts, obj) { + //Check if exists and create or update list + if (this.list) { + this.onUpdate(opts, obj); + + } else { + this.init(opts, obj); + } + + //Set active element + this.list.children().removeClass('active').eq(obj.index).addClass('active'); + }, + + //Center list + onUpdate: function (opts, obj) { + if (this.list) { + this.list.stop(true).animate({ + 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) + }, 150); + } + }, + + beforeClose: function () { + if (this.wrap) { + this.wrap.remove(); + } + + this.wrap = null; + this.list = null; + this.width = 0; + } + } + +}(jQuery)); \ No newline at end of file diff --git a/src/main/webapp/fancybox/jquery.fancybox.css b/src/main/webapp/fancybox/jquery.fancybox.css new file mode 100644 index 0000000..367890a --- /dev/null +++ b/src/main/webapp/fancybox/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +} \ No newline at end of file diff --git a/src/main/webapp/fancybox/jquery.fancybox.js b/src/main/webapp/fancybox/jquery.fancybox.js new file mode 100644 index 0000000..e8e1987 --- /dev/null +++ b/src/main/webapp/fancybox/jquery.fancybox.js @@ -0,0 +1,2020 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.5 (Fri, 14 Jun 2013) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var H = $("html"), + W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + IE = navigator.userAgent.match(/msie/i), + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.5', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + pixelRatio: 1, // Set to 2 for retina display support + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '
    ', + image : '', + iframe : '', + error : '

    The requested content cannot be loaded.
    Please try again later.

    ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
    ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
    ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
    ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
    ').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
    ' + text + '
    '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
    ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
    ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("").appendTo("head"); + }); + +}(window, document, jQuery)); \ No newline at end of file diff --git a/src/main/webapp/fancybox/jquery.fancybox.pack.js b/src/main/webapp/fancybox/jquery.fancybox.pack.js new file mode 100644 index 0000000..73f7578 --- /dev/null +++ b/src/main/webapp/fancybox/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
    ').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
    ').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/src/main/webapp/html/index.html b/src/main/webapp/html/index.html new file mode 100644 index 0000000..f9276c0 --- /dev/null +++ b/src/main/webapp/html/index.html @@ -0,0 +1,596 @@ + + + + + + +사이버외사정보시스템 + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + +
    + +
    + + +
    + + +
    +
    + + +
    +
    + +
    + +
    + +

    +
    +

    국제회의자료

    + +
    +
    + +
    +

    +
    +

    국제회의자료

    + +
    +
    + +
    + +

    +
    +

    국제회의자료

    + +
    +
    +
    + + +
    + +
    + + + + + +
    + + + diff --git a/src/main/webapp/html/moniter.html b/src/main/webapp/html/moniter.html new file mode 100644 index 0000000..4bf02ab --- /dev/null +++ b/src/main/webapp/html/moniter.html @@ -0,0 +1,232 @@ + + + + + + + Document + + + + + + + +
    +
    + 공공기관 +
    + + + + + + + +
    + + diff --git a/src/main/webapp/images/IE9-Windows7-x64-kor.exe b/src/main/webapp/images/IE9-Windows7-x64-kor.exe new file mode 100644 index 0000000..5e0f764 Binary files /dev/null and b/src/main/webapp/images/IE9-Windows7-x64-kor.exe differ diff --git a/src/main/webapp/images/IE9-Windows7-x86-kor.exe b/src/main/webapp/images/IE9-Windows7-x86-kor.exe new file mode 100644 index 0000000..79ab18f Binary files /dev/null and b/src/main/webapp/images/IE9-Windows7-x86-kor.exe differ diff --git a/src/main/webapp/images/QnA/Step1.png b/src/main/webapp/images/QnA/Step1.png new file mode 100644 index 0000000..4f45319 Binary files /dev/null and b/src/main/webapp/images/QnA/Step1.png differ diff --git a/src/main/webapp/images/QnA/Step2.png b/src/main/webapp/images/QnA/Step2.png new file mode 100644 index 0000000..2f68b6e Binary files /dev/null and b/src/main/webapp/images/QnA/Step2.png differ diff --git a/src/main/webapp/images/QnA/Step3.png b/src/main/webapp/images/QnA/Step3.png new file mode 100644 index 0000000..56e181b Binary files /dev/null and b/src/main/webapp/images/QnA/Step3.png differ diff --git a/src/main/webapp/images/QnA/Title.png b/src/main/webapp/images/QnA/Title.png new file mode 100644 index 0000000..c63fb24 Binary files /dev/null and b/src/main/webapp/images/QnA/Title.png differ diff --git a/src/main/webapp/images/basic_img.jpg b/src/main/webapp/images/basic_img.jpg new file mode 100644 index 0000000..9deae2b Binary files /dev/null and b/src/main/webapp/images/basic_img.jpg differ diff --git a/src/main/webapp/images/body/background_sky.jpg b/src/main/webapp/images/body/background_sky.jpg new file mode 100644 index 0000000..9272d27 Binary files /dev/null and b/src/main/webapp/images/body/background_sky.jpg differ diff --git a/src/main/webapp/images/cmmn/all-btn.png b/src/main/webapp/images/cmmn/all-btn.png new file mode 100644 index 0000000..ddd358d Binary files /dev/null and b/src/main/webapp/images/cmmn/all-btn.png differ diff --git a/src/main/webapp/images/cmmn/all-btn_2.png b/src/main/webapp/images/cmmn/all-btn_2.png new file mode 100644 index 0000000..3d63833 Binary files /dev/null and b/src/main/webapp/images/cmmn/all-btn_2.png differ diff --git a/src/main/webapp/images/cmmn/blank_1x1.png b/src/main/webapp/images/cmmn/blank_1x1.png new file mode 100644 index 0000000..95007b9 Binary files /dev/null and b/src/main/webapp/images/cmmn/blank_1x1.png differ diff --git a/src/main/webapp/images/cmmn/btn_page_next1.gif b/src/main/webapp/images/cmmn/btn_page_next1.gif new file mode 100644 index 0000000..f62b526 Binary files /dev/null and b/src/main/webapp/images/cmmn/btn_page_next1.gif differ diff --git a/src/main/webapp/images/cmmn/btn_page_next10.gif b/src/main/webapp/images/cmmn/btn_page_next10.gif new file mode 100644 index 0000000..c69ca28 Binary files /dev/null and b/src/main/webapp/images/cmmn/btn_page_next10.gif differ diff --git a/src/main/webapp/images/cmmn/btn_page_pre1.gif b/src/main/webapp/images/cmmn/btn_page_pre1.gif new file mode 100644 index 0000000..8ccebc1 Binary files /dev/null and b/src/main/webapp/images/cmmn/btn_page_pre1.gif differ diff --git a/src/main/webapp/images/cmmn/btn_page_pre10.gif b/src/main/webapp/images/cmmn/btn_page_pre10.gif new file mode 100644 index 0000000..2504ee6 Binary files /dev/null and b/src/main/webapp/images/cmmn/btn_page_pre10.gif differ diff --git a/src/main/webapp/images/cmmn/comment.png b/src/main/webapp/images/cmmn/comment.png new file mode 100644 index 0000000..db38b0b Binary files /dev/null and b/src/main/webapp/images/cmmn/comment.png differ diff --git a/src/main/webapp/images/cmmn/create.png b/src/main/webapp/images/cmmn/create.png new file mode 100644 index 0000000..8128037 Binary files /dev/null and b/src/main/webapp/images/cmmn/create.png differ diff --git a/src/main/webapp/images/cmmn/deleate_on.png b/src/main/webapp/images/cmmn/deleate_on.png new file mode 100644 index 0000000..3ea387d Binary files /dev/null and b/src/main/webapp/images/cmmn/deleate_on.png differ diff --git a/src/main/webapp/images/cmmn/delete.png b/src/main/webapp/images/cmmn/delete.png new file mode 100644 index 0000000..9dc7ebe Binary files /dev/null and b/src/main/webapp/images/cmmn/delete.png differ diff --git a/src/main/webapp/images/cmmn/excel.png b/src/main/webapp/images/cmmn/excel.png new file mode 100644 index 0000000..0cad7c0 Binary files /dev/null and b/src/main/webapp/images/cmmn/excel.png differ diff --git a/src/main/webapp/images/cmmn/excel_on.png b/src/main/webapp/images/cmmn/excel_on.png new file mode 100644 index 0000000..24d27b8 Binary files /dev/null and b/src/main/webapp/images/cmmn/excel_on.png differ diff --git a/src/main/webapp/images/cmmn/filter.png b/src/main/webapp/images/cmmn/filter.png new file mode 100644 index 0000000..f5c31e2 Binary files /dev/null and b/src/main/webapp/images/cmmn/filter.png differ diff --git a/src/main/webapp/images/cmmn/graph.png b/src/main/webapp/images/cmmn/graph.png new file mode 100644 index 0000000..f262203 Binary files /dev/null and b/src/main/webapp/images/cmmn/graph.png differ diff --git a/src/main/webapp/images/cmmn/home.png b/src/main/webapp/images/cmmn/home.png new file mode 100644 index 0000000..0ea6b6f Binary files /dev/null and b/src/main/webapp/images/cmmn/home.png differ diff --git a/src/main/webapp/images/cmmn/icon_date.gif b/src/main/webapp/images/cmmn/icon_date.gif new file mode 100644 index 0000000..6937a80 Binary files /dev/null and b/src/main/webapp/images/cmmn/icon_date.gif differ diff --git a/src/main/webapp/images/cmmn/icon_important.gif b/src/main/webapp/images/cmmn/icon_important.gif new file mode 100644 index 0000000..612d258 Binary files /dev/null and b/src/main/webapp/images/cmmn/icon_important.gif differ diff --git a/src/main/webapp/images/cmmn/kcg-original.png b/src/main/webapp/images/cmmn/kcg-original.png new file mode 100644 index 0000000..dbbc080 Binary files /dev/null and b/src/main/webapp/images/cmmn/kcg-original.png differ diff --git a/src/main/webapp/images/cmmn/kcg.png b/src/main/webapp/images/cmmn/kcg.png new file mode 100644 index 0000000..5e5528e Binary files /dev/null and b/src/main/webapp/images/cmmn/kcg.png differ diff --git a/src/main/webapp/images/cmmn/loading.gif b/src/main/webapp/images/cmmn/loading.gif new file mode 100644 index 0000000..1c9a58c Binary files /dev/null and b/src/main/webapp/images/cmmn/loading.gif differ diff --git a/src/main/webapp/images/cmmn/location_arrow.png b/src/main/webapp/images/cmmn/location_arrow.png new file mode 100644 index 0000000..41251ab Binary files /dev/null and b/src/main/webapp/images/cmmn/location_arrow.png differ diff --git a/src/main/webapp/images/cmmn/login_bg.jpg b/src/main/webapp/images/cmmn/login_bg.jpg new file mode 100644 index 0000000..0c4904a Binary files /dev/null and b/src/main/webapp/images/cmmn/login_bg.jpg differ diff --git a/src/main/webapp/images/cmmn/logo02.png b/src/main/webapp/images/cmmn/logo02.png new file mode 100644 index 0000000..bd489ae Binary files /dev/null and b/src/main/webapp/images/cmmn/logo02.png differ diff --git a/src/main/webapp/images/cmmn/logout.png b/src/main/webapp/images/cmmn/logout.png new file mode 100644 index 0000000..048e55d Binary files /dev/null and b/src/main/webapp/images/cmmn/logout.png differ diff --git a/src/main/webapp/images/cmmn/logout2.png b/src/main/webapp/images/cmmn/logout2.png new file mode 100644 index 0000000..d844ea6 Binary files /dev/null and b/src/main/webapp/images/cmmn/logout2.png differ diff --git a/src/main/webapp/images/cmmn/more_btn.png b/src/main/webapp/images/cmmn/more_btn.png new file mode 100644 index 0000000..fe6a639 Binary files /dev/null and b/src/main/webapp/images/cmmn/more_btn.png differ diff --git a/src/main/webapp/images/cmmn/more_btn_on.png b/src/main/webapp/images/cmmn/more_btn_on.png new file mode 100644 index 0000000..db44255 Binary files /dev/null and b/src/main/webapp/images/cmmn/more_btn_on.png differ diff --git a/src/main/webapp/images/cmmn/mpss.png b/src/main/webapp/images/cmmn/mpss.png new file mode 100644 index 0000000..5b34763 Binary files /dev/null and b/src/main/webapp/images/cmmn/mpss.png differ diff --git a/src/main/webapp/images/cmmn/noImage.png b/src/main/webapp/images/cmmn/noImage.png new file mode 100644 index 0000000..1009bbf Binary files /dev/null and b/src/main/webapp/images/cmmn/noImage.png differ diff --git a/src/main/webapp/images/cmmn/order_asc.gif b/src/main/webapp/images/cmmn/order_asc.gif new file mode 100644 index 0000000..554c734 Binary files /dev/null and b/src/main/webapp/images/cmmn/order_asc.gif differ diff --git a/src/main/webapp/images/cmmn/order_desc.gif b/src/main/webapp/images/cmmn/order_desc.gif new file mode 100644 index 0000000..16a89e0 Binary files /dev/null and b/src/main/webapp/images/cmmn/order_desc.gif differ diff --git a/src/main/webapp/images/cmmn/print.png b/src/main/webapp/images/cmmn/print.png new file mode 100644 index 0000000..499b44a Binary files /dev/null and b/src/main/webapp/images/cmmn/print.png differ diff --git a/src/main/webapp/images/cmmn/print_on.png b/src/main/webapp/images/cmmn/print_on.png new file mode 100644 index 0000000..0e57a98 Binary files /dev/null and b/src/main/webapp/images/cmmn/print_on.png differ diff --git a/src/main/webapp/images/cmmn/reset.png b/src/main/webapp/images/cmmn/reset.png new file mode 100644 index 0000000..d5904eb Binary files /dev/null and b/src/main/webapp/images/cmmn/reset.png differ diff --git a/src/main/webapp/images/cmmn/reset_on.png b/src/main/webapp/images/cmmn/reset_on.png new file mode 100644 index 0000000..ed4aa36 Binary files /dev/null and b/src/main/webapp/images/cmmn/reset_on.png differ diff --git a/src/main/webapp/images/cmmn/title.png b/src/main/webapp/images/cmmn/title.png new file mode 100644 index 0000000..746e01b Binary files /dev/null and b/src/main/webapp/images/cmmn/title.png differ diff --git a/src/main/webapp/images/cmmn/update.png b/src/main/webapp/images/cmmn/update.png new file mode 100644 index 0000000..81c1d79 Binary files /dev/null and b/src/main/webapp/images/cmmn/update.png differ diff --git a/src/main/webapp/images/error/blue_bg.jpg b/src/main/webapp/images/error/blue_bg.jpg new file mode 100644 index 0000000..bd71e98 Binary files /dev/null and b/src/main/webapp/images/error/blue_bg.jpg differ diff --git a/src/main/webapp/images/error/danger.jpg b/src/main/webapp/images/error/danger.jpg new file mode 100644 index 0000000..9ce70f1 Binary files /dev/null and b/src/main/webapp/images/error/danger.jpg differ diff --git a/src/main/webapp/images/error/er_logo.jpg b/src/main/webapp/images/error/er_logo.jpg new file mode 100644 index 0000000..c63a773 Binary files /dev/null and b/src/main/webapp/images/error/er_logo.jpg differ diff --git a/src/main/webapp/images/error/go_main.jpg b/src/main/webapp/images/error/go_main.jpg new file mode 100644 index 0000000..e14ae6c Binary files /dev/null and b/src/main/webapp/images/error/go_main.jpg differ diff --git a/src/main/webapp/images/error/goback_page.jpg b/src/main/webapp/images/error/goback_page.jpg new file mode 100644 index 0000000..d3cb933 Binary files /dev/null and b/src/main/webapp/images/error/goback_page.jpg differ diff --git a/src/main/webapp/images/etc/sitemap.jpg b/src/main/webapp/images/etc/sitemap.jpg new file mode 100644 index 0000000..d7d428d Binary files /dev/null and b/src/main/webapp/images/etc/sitemap.jpg differ diff --git a/src/main/webapp/images/etc/top_qna1.gif b/src/main/webapp/images/etc/top_qna1.gif new file mode 100644 index 0000000..c88c6ab Binary files /dev/null and b/src/main/webapp/images/etc/top_qna1.gif differ diff --git a/src/main/webapp/images/etc/top_qna2.gif b/src/main/webapp/images/etc/top_qna2.gif new file mode 100644 index 0000000..0dfb35f Binary files /dev/null and b/src/main/webapp/images/etc/top_qna2.gif differ diff --git a/src/main/webapp/images/etc/top_qna3.gif b/src/main/webapp/images/etc/top_qna3.gif new file mode 100644 index 0000000..4ad347e Binary files /dev/null and b/src/main/webapp/images/etc/top_qna3.gif differ diff --git a/src/main/webapp/images/etc/top_qna4.gif b/src/main/webapp/images/etc/top_qna4.gif new file mode 100644 index 0000000..49ef903 Binary files /dev/null and b/src/main/webapp/images/etc/top_qna4.gif differ diff --git a/src/main/webapp/images/footer/img_mopas_gray.gif b/src/main/webapp/images/footer/img_mopas_gray.gif new file mode 100644 index 0000000..4b87988 Binary files /dev/null and b/src/main/webapp/images/footer/img_mopas_gray.gif differ diff --git a/src/main/webapp/images/footer/mpss-footer.png b/src/main/webapp/images/footer/mpss-footer.png new file mode 100644 index 0000000..d7dcf38 Binary files /dev/null and b/src/main/webapp/images/footer/mpss-footer.png differ diff --git a/src/main/webapp/images/header/en.gif b/src/main/webapp/images/header/en.gif new file mode 100644 index 0000000..62d1b48 Binary files /dev/null and b/src/main/webapp/images/header/en.gif differ diff --git a/src/main/webapp/images/header/img_egovframe_logo.gif b/src/main/webapp/images/header/img_egovframe_logo.gif new file mode 100644 index 0000000..e2642eb Binary files /dev/null and b/src/main/webapp/images/header/img_egovframe_logo.gif differ diff --git a/src/main/webapp/images/header/jp.gif b/src/main/webapp/images/header/jp.gif new file mode 100644 index 0000000..2c4887d Binary files /dev/null and b/src/main/webapp/images/header/jp.gif differ diff --git a/src/main/webapp/images/header/kr.gif b/src/main/webapp/images/header/kr.gif new file mode 100644 index 0000000..795eaa4 Binary files /dev/null and b/src/main/webapp/images/header/kr.gif differ diff --git a/src/main/webapp/images/icon/accordion_arrows.png b/src/main/webapp/images/icon/accordion_arrows.png new file mode 100644 index 0000000..720835f Binary files /dev/null and b/src/main/webapp/images/icon/accordion_arrows.png differ diff --git a/src/main/webapp/images/icon/blank.gif b/src/main/webapp/images/icon/blank.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/src/main/webapp/images/icon/blank.gif differ diff --git a/src/main/webapp/images/icon/calendar_arrows.png b/src/main/webapp/images/icon/calendar_arrows.png new file mode 100644 index 0000000..430c4ad Binary files /dev/null and b/src/main/webapp/images/icon/calendar_arrows.png differ diff --git a/src/main/webapp/images/icon/combo_arrow.png b/src/main/webapp/images/icon/combo_arrow.png new file mode 100644 index 0000000..2e59fb9 Binary files /dev/null and b/src/main/webapp/images/icon/combo_arrow.png differ diff --git a/src/main/webapp/images/icon/datagrid_icons.png b/src/main/webapp/images/icon/datagrid_icons.png new file mode 100644 index 0000000..762d0ce Binary files /dev/null and b/src/main/webapp/images/icon/datagrid_icons.png differ diff --git a/src/main/webapp/images/icon/datebox_arrow.png b/src/main/webapp/images/icon/datebox_arrow.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/src/main/webapp/images/icon/datebox_arrow.png differ diff --git a/src/main/webapp/images/icon/layout_arrows.png b/src/main/webapp/images/icon/layout_arrows.png new file mode 100644 index 0000000..6f41654 Binary files /dev/null and b/src/main/webapp/images/icon/layout_arrows.png differ diff --git a/src/main/webapp/images/icon/linkbutton_bg.png b/src/main/webapp/images/icon/linkbutton_bg.png new file mode 100644 index 0000000..fc66bd2 Binary files /dev/null and b/src/main/webapp/images/icon/linkbutton_bg.png differ diff --git a/src/main/webapp/images/icon/loading.gif b/src/main/webapp/images/icon/loading.gif new file mode 100644 index 0000000..68f01d0 Binary files /dev/null and b/src/main/webapp/images/icon/loading.gif differ diff --git a/src/main/webapp/images/icon/menu_arrows.png b/src/main/webapp/images/icon/menu_arrows.png new file mode 100644 index 0000000..b986842 Binary files /dev/null and b/src/main/webapp/images/icon/menu_arrows.png differ diff --git a/src/main/webapp/images/icon/messager_icons.png b/src/main/webapp/images/icon/messager_icons.png new file mode 100644 index 0000000..62c18c1 Binary files /dev/null and b/src/main/webapp/images/icon/messager_icons.png differ diff --git a/src/main/webapp/images/icon/pagination_icons.png b/src/main/webapp/images/icon/pagination_icons.png new file mode 100644 index 0000000..616f0bd Binary files /dev/null and b/src/main/webapp/images/icon/pagination_icons.png differ diff --git a/src/main/webapp/images/icon/panel_tools.png b/src/main/webapp/images/icon/panel_tools.png new file mode 100644 index 0000000..19ecc94 Binary files /dev/null and b/src/main/webapp/images/icon/panel_tools.png differ diff --git a/src/main/webapp/images/icon/passwordbox_close.png b/src/main/webapp/images/icon/passwordbox_close.png new file mode 100644 index 0000000..643c09d Binary files /dev/null and b/src/main/webapp/images/icon/passwordbox_close.png differ diff --git a/src/main/webapp/images/icon/passwordbox_open.png b/src/main/webapp/images/icon/passwordbox_open.png new file mode 100644 index 0000000..d328891 Binary files /dev/null and b/src/main/webapp/images/icon/passwordbox_open.png differ diff --git a/src/main/webapp/images/icon/searchbox_button.png b/src/main/webapp/images/icon/searchbox_button.png new file mode 100644 index 0000000..6dd1931 Binary files /dev/null and b/src/main/webapp/images/icon/searchbox_button.png differ diff --git a/src/main/webapp/images/icon/slider_handle.png b/src/main/webapp/images/icon/slider_handle.png new file mode 100644 index 0000000..b9802ba Binary files /dev/null and b/src/main/webapp/images/icon/slider_handle.png differ diff --git a/src/main/webapp/images/icon/spinner_arrows.png b/src/main/webapp/images/icon/spinner_arrows.png new file mode 100644 index 0000000..7c2df48 Binary files /dev/null and b/src/main/webapp/images/icon/spinner_arrows.png differ diff --git a/src/main/webapp/images/icon/tabs_icons.png b/src/main/webapp/images/icon/tabs_icons.png new file mode 100644 index 0000000..4d29966 Binary files /dev/null and b/src/main/webapp/images/icon/tabs_icons.png differ diff --git a/src/main/webapp/images/icon/tagbox_icons.png b/src/main/webapp/images/icon/tagbox_icons.png new file mode 100644 index 0000000..bd02e2d Binary files /dev/null and b/src/main/webapp/images/icon/tagbox_icons.png differ diff --git a/src/main/webapp/images/icon/tree_icons.png b/src/main/webapp/images/icon/tree_icons.png new file mode 100644 index 0000000..e9be4f3 Binary files /dev/null and b/src/main/webapp/images/icon/tree_icons.png differ diff --git a/src/main/webapp/images/icon/validatebox_warning.png b/src/main/webapp/images/icon/validatebox_warning.png new file mode 100644 index 0000000..2b3d4f0 Binary files /dev/null and b/src/main/webapp/images/icon/validatebox_warning.png differ diff --git a/src/main/webapp/images/ieSetting.png b/src/main/webapp/images/ieSetting.png new file mode 100644 index 0000000..b81bcc1 Binary files /dev/null and b/src/main/webapp/images/ieSetting.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_flat_0_aaaaaa_40x100.png b/src/main/webapp/images/jquery/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_flat_0_eeeeee_40x100.png b/src/main/webapp/images/jquery/ui-bg_flat_0_eeeeee_40x100.png new file mode 100644 index 0000000..e44f861 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_flat_0_eeeeee_40x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_flat_55_ffffff_40x100.png b/src/main/webapp/images/jquery/ui-bg_flat_55_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_flat_55_ffffff_40x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_flat_75_ffffff_40x100.png b/src/main/webapp/images/jquery/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_glass_65_ffffff_1x400.png b/src/main/webapp/images/jquery/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_highlight-soft_100_f6f6f6_1x100.png b/src/main/webapp/images/jquery/ui-bg_highlight-soft_100_f6f6f6_1x100.png new file mode 100644 index 0000000..5dcfaa9 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_highlight-soft_100_f6f6f6_1x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_highlight-soft_25_0073ea_1x100.png b/src/main/webapp/images/jquery/ui-bg_highlight-soft_25_0073ea_1x100.png new file mode 100644 index 0000000..7226bdb Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_highlight-soft_25_0073ea_1x100.png differ diff --git a/src/main/webapp/images/jquery/ui-bg_highlight-soft_50_dddddd_1x100.png b/src/main/webapp/images/jquery/ui-bg_highlight-soft_50_dddddd_1x100.png new file mode 100644 index 0000000..b47a4da Binary files /dev/null and b/src/main/webapp/images/jquery/ui-bg_highlight-soft_50_dddddd_1x100.png differ diff --git a/src/main/webapp/images/jquery/ui-icons_0073ea_256x240.png b/src/main/webapp/images/jquery/ui-icons_0073ea_256x240.png new file mode 100644 index 0000000..6b852b6 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-icons_0073ea_256x240.png differ diff --git a/src/main/webapp/images/jquery/ui-icons_454545_256x240.png b/src/main/webapp/images/jquery/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/src/main/webapp/images/jquery/ui-icons_454545_256x240.png differ diff --git a/src/main/webapp/images/jquery/ui-icons_666666_256x240.png b/src/main/webapp/images/jquery/ui-icons_666666_256x240.png new file mode 100644 index 0000000..f87de1c Binary files /dev/null and b/src/main/webapp/images/jquery/ui-icons_666666_256x240.png differ diff --git a/src/main/webapp/images/jquery/ui-icons_ff0084_256x240.png b/src/main/webapp/images/jquery/ui-icons_ff0084_256x240.png new file mode 100644 index 0000000..0ca605d Binary files /dev/null and b/src/main/webapp/images/jquery/ui-icons_ff0084_256x240.png differ diff --git a/src/main/webapp/images/jquery/ui-icons_ffffff_256x240.png b/src/main/webapp/images/jquery/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..42f8f99 Binary files /dev/null and b/src/main/webapp/images/jquery/ui-icons_ffffff_256x240.png differ diff --git a/src/main/webapp/images/leftmenu/bl_depth01.gif b/src/main/webapp/images/leftmenu/bl_depth01.gif new file mode 100644 index 0000000..ee55ce6 Binary files /dev/null and b/src/main/webapp/images/leftmenu/bl_depth01.gif differ diff --git a/src/main/webapp/images/leftmenu/leftmenu_bottom.gif b/src/main/webapp/images/leftmenu/leftmenu_bottom.gif new file mode 100644 index 0000000..7bfcf5e Binary files /dev/null and b/src/main/webapp/images/leftmenu/leftmenu_bottom.gif differ diff --git a/src/main/webapp/images/leftmenu/leftmenu_repeat.gif b/src/main/webapp/images/leftmenu/leftmenu_repeat.gif new file mode 100644 index 0000000..28ae6a2 Binary files /dev/null and b/src/main/webapp/images/leftmenu/leftmenu_repeat.gif differ diff --git a/src/main/webapp/images/leftmenu/leftmenu_top.gif b/src/main/webapp/images/leftmenu/leftmenu_top.gif new file mode 100644 index 0000000..9471297 Binary files /dev/null and b/src/main/webapp/images/leftmenu/leftmenu_top.gif differ diff --git a/src/main/webapp/images/leftmenu/logout.jpg b/src/main/webapp/images/leftmenu/logout.jpg new file mode 100644 index 0000000..a4b0a0e Binary files /dev/null and b/src/main/webapp/images/leftmenu/logout.jpg differ diff --git a/src/main/webapp/images/nation/n001.gif b/src/main/webapp/images/nation/n001.gif new file mode 100644 index 0000000..84f3cc6 Binary files /dev/null and b/src/main/webapp/images/nation/n001.gif differ diff --git a/src/main/webapp/images/nation/n002.gif b/src/main/webapp/images/nation/n002.gif new file mode 100644 index 0000000..5e0aacb Binary files /dev/null and b/src/main/webapp/images/nation/n002.gif differ diff --git a/src/main/webapp/images/nation/n003.gif b/src/main/webapp/images/nation/n003.gif new file mode 100644 index 0000000..ebade0f Binary files /dev/null and b/src/main/webapp/images/nation/n003.gif differ diff --git a/src/main/webapp/images/nation/n004.gif b/src/main/webapp/images/nation/n004.gif new file mode 100644 index 0000000..090bae0 Binary files /dev/null and b/src/main/webapp/images/nation/n004.gif differ diff --git a/src/main/webapp/images/nation/n005.gif b/src/main/webapp/images/nation/n005.gif new file mode 100644 index 0000000..28e6324 Binary files /dev/null and b/src/main/webapp/images/nation/n005.gif differ diff --git a/src/main/webapp/images/nation/n006.gif b/src/main/webapp/images/nation/n006.gif new file mode 100644 index 0000000..c8431ba Binary files /dev/null and b/src/main/webapp/images/nation/n006.gif differ diff --git a/src/main/webapp/images/nation/n007.gif b/src/main/webapp/images/nation/n007.gif new file mode 100644 index 0000000..123cdd5 Binary files /dev/null and b/src/main/webapp/images/nation/n007.gif differ diff --git a/src/main/webapp/images/nation/n008.gif b/src/main/webapp/images/nation/n008.gif new file mode 100644 index 0000000..bf8b5ce Binary files /dev/null and b/src/main/webapp/images/nation/n008.gif differ diff --git a/src/main/webapp/images/nation/n009.gif b/src/main/webapp/images/nation/n009.gif new file mode 100644 index 0000000..1a1ff3c Binary files /dev/null and b/src/main/webapp/images/nation/n009.gif differ diff --git a/src/main/webapp/images/nation/n010.gif b/src/main/webapp/images/nation/n010.gif new file mode 100644 index 0000000..473e6c1 Binary files /dev/null and b/src/main/webapp/images/nation/n010.gif differ diff --git a/src/main/webapp/images/nation/n011.gif b/src/main/webapp/images/nation/n011.gif new file mode 100644 index 0000000..1fd64db Binary files /dev/null and b/src/main/webapp/images/nation/n011.gif differ diff --git a/src/main/webapp/images/nation/n012.gif b/src/main/webapp/images/nation/n012.gif new file mode 100644 index 0000000..92ecdf3 Binary files /dev/null and b/src/main/webapp/images/nation/n012.gif differ diff --git a/src/main/webapp/images/nation/n013.gif b/src/main/webapp/images/nation/n013.gif new file mode 100644 index 0000000..eb3052a Binary files /dev/null and b/src/main/webapp/images/nation/n013.gif differ diff --git a/src/main/webapp/images/nation/n014.gif b/src/main/webapp/images/nation/n014.gif new file mode 100644 index 0000000..0f25471 Binary files /dev/null and b/src/main/webapp/images/nation/n014.gif differ diff --git a/src/main/webapp/images/nation/n015.gif b/src/main/webapp/images/nation/n015.gif new file mode 100644 index 0000000..0c8977d Binary files /dev/null and b/src/main/webapp/images/nation/n015.gif differ diff --git a/src/main/webapp/images/nation/n016.gif b/src/main/webapp/images/nation/n016.gif new file mode 100644 index 0000000..63a7799 Binary files /dev/null and b/src/main/webapp/images/nation/n016.gif differ diff --git a/src/main/webapp/images/nation/n017.gif b/src/main/webapp/images/nation/n017.gif new file mode 100644 index 0000000..e706697 Binary files /dev/null and b/src/main/webapp/images/nation/n017.gif differ diff --git a/src/main/webapp/images/nation/n018.gif b/src/main/webapp/images/nation/n018.gif new file mode 100644 index 0000000..c7c975a Binary files /dev/null and b/src/main/webapp/images/nation/n018.gif differ diff --git a/src/main/webapp/images/nation/n019.gif b/src/main/webapp/images/nation/n019.gif new file mode 100644 index 0000000..5e195d2 Binary files /dev/null and b/src/main/webapp/images/nation/n019.gif differ diff --git a/src/main/webapp/images/nation/n020.gif b/src/main/webapp/images/nation/n020.gif new file mode 100644 index 0000000..b16b6c6 Binary files /dev/null and b/src/main/webapp/images/nation/n020.gif differ diff --git a/src/main/webapp/images/nation/n021.gif b/src/main/webapp/images/nation/n021.gif new file mode 100644 index 0000000..3d54e2b Binary files /dev/null and b/src/main/webapp/images/nation/n021.gif differ diff --git a/src/main/webapp/images/nation/n022.gif b/src/main/webapp/images/nation/n022.gif new file mode 100644 index 0000000..4ec31c6 Binary files /dev/null and b/src/main/webapp/images/nation/n022.gif differ diff --git a/src/main/webapp/images/nation/n023.gif b/src/main/webapp/images/nation/n023.gif new file mode 100644 index 0000000..858045d Binary files /dev/null and b/src/main/webapp/images/nation/n023.gif differ diff --git a/src/main/webapp/images/nation/n024.gif b/src/main/webapp/images/nation/n024.gif new file mode 100644 index 0000000..8d92e27 Binary files /dev/null and b/src/main/webapp/images/nation/n024.gif differ diff --git a/src/main/webapp/images/nation/n025.gif b/src/main/webapp/images/nation/n025.gif new file mode 100644 index 0000000..27ff9ef Binary files /dev/null and b/src/main/webapp/images/nation/n025.gif differ diff --git a/src/main/webapp/images/nation/n026.gif b/src/main/webapp/images/nation/n026.gif new file mode 100644 index 0000000..dfe273a Binary files /dev/null and b/src/main/webapp/images/nation/n026.gif differ diff --git a/src/main/webapp/images/nation/n027.gif b/src/main/webapp/images/nation/n027.gif new file mode 100644 index 0000000..1281955 Binary files /dev/null and b/src/main/webapp/images/nation/n027.gif differ diff --git a/src/main/webapp/images/nation/n029.gif b/src/main/webapp/images/nation/n029.gif new file mode 100644 index 0000000..c439040 Binary files /dev/null and b/src/main/webapp/images/nation/n029.gif differ diff --git a/src/main/webapp/images/nation/n030.gif b/src/main/webapp/images/nation/n030.gif new file mode 100644 index 0000000..a9ee6e4 Binary files /dev/null and b/src/main/webapp/images/nation/n030.gif differ diff --git a/src/main/webapp/images/nation/n031.gif b/src/main/webapp/images/nation/n031.gif new file mode 100644 index 0000000..020129c Binary files /dev/null and b/src/main/webapp/images/nation/n031.gif differ diff --git a/src/main/webapp/images/nation/n032.gif b/src/main/webapp/images/nation/n032.gif new file mode 100644 index 0000000..18ada1f Binary files /dev/null and b/src/main/webapp/images/nation/n032.gif differ diff --git a/src/main/webapp/images/nation/n033.gif b/src/main/webapp/images/nation/n033.gif new file mode 100644 index 0000000..ae26834 Binary files /dev/null and b/src/main/webapp/images/nation/n033.gif differ diff --git a/src/main/webapp/images/nation/n034.gif b/src/main/webapp/images/nation/n034.gif new file mode 100644 index 0000000..59c9555 Binary files /dev/null and b/src/main/webapp/images/nation/n034.gif differ diff --git a/src/main/webapp/images/nation/n035.gif b/src/main/webapp/images/nation/n035.gif new file mode 100644 index 0000000..8a45ea5 Binary files /dev/null and b/src/main/webapp/images/nation/n035.gif differ diff --git a/src/main/webapp/images/nation/n036.gif b/src/main/webapp/images/nation/n036.gif new file mode 100644 index 0000000..955912e Binary files /dev/null and b/src/main/webapp/images/nation/n036.gif differ diff --git a/src/main/webapp/images/nation/n037.gif b/src/main/webapp/images/nation/n037.gif new file mode 100644 index 0000000..03e2728 Binary files /dev/null and b/src/main/webapp/images/nation/n037.gif differ diff --git a/src/main/webapp/images/nation/n038.gif b/src/main/webapp/images/nation/n038.gif new file mode 100644 index 0000000..1ac91dd Binary files /dev/null and b/src/main/webapp/images/nation/n038.gif differ diff --git a/src/main/webapp/images/nation/n039.gif b/src/main/webapp/images/nation/n039.gif new file mode 100644 index 0000000..3e10a8c Binary files /dev/null and b/src/main/webapp/images/nation/n039.gif differ diff --git a/src/main/webapp/images/nation/n040.gif b/src/main/webapp/images/nation/n040.gif new file mode 100644 index 0000000..1f6502e Binary files /dev/null and b/src/main/webapp/images/nation/n040.gif differ diff --git a/src/main/webapp/images/nation/n041.gif b/src/main/webapp/images/nation/n041.gif new file mode 100644 index 0000000..5893b0e Binary files /dev/null and b/src/main/webapp/images/nation/n041.gif differ diff --git a/src/main/webapp/images/nation/n042.gif b/src/main/webapp/images/nation/n042.gif new file mode 100644 index 0000000..44a4462 Binary files /dev/null and b/src/main/webapp/images/nation/n042.gif differ diff --git a/src/main/webapp/images/nation/n043.gif b/src/main/webapp/images/nation/n043.gif new file mode 100644 index 0000000..e2ebf52 Binary files /dev/null and b/src/main/webapp/images/nation/n043.gif differ diff --git a/src/main/webapp/images/nation/n044.gif b/src/main/webapp/images/nation/n044.gif new file mode 100644 index 0000000..227da49 Binary files /dev/null and b/src/main/webapp/images/nation/n044.gif differ diff --git a/src/main/webapp/images/nation/n045.gif b/src/main/webapp/images/nation/n045.gif new file mode 100644 index 0000000..1af3b80 Binary files /dev/null and b/src/main/webapp/images/nation/n045.gif differ diff --git a/src/main/webapp/images/nation/n046.gif b/src/main/webapp/images/nation/n046.gif new file mode 100644 index 0000000..5a9a32d Binary files /dev/null and b/src/main/webapp/images/nation/n046.gif differ diff --git a/src/main/webapp/images/nation/n047.gif b/src/main/webapp/images/nation/n047.gif new file mode 100644 index 0000000..4370d94 Binary files /dev/null and b/src/main/webapp/images/nation/n047.gif differ diff --git a/src/main/webapp/images/nation/n048.gif b/src/main/webapp/images/nation/n048.gif new file mode 100644 index 0000000..cf429b2 Binary files /dev/null and b/src/main/webapp/images/nation/n048.gif differ diff --git a/src/main/webapp/images/nation/n049.gif b/src/main/webapp/images/nation/n049.gif new file mode 100644 index 0000000..1cebabc Binary files /dev/null and b/src/main/webapp/images/nation/n049.gif differ diff --git a/src/main/webapp/images/nation/n050.gif b/src/main/webapp/images/nation/n050.gif new file mode 100644 index 0000000..f534919 Binary files /dev/null and b/src/main/webapp/images/nation/n050.gif differ diff --git a/src/main/webapp/images/nation/n051.gif b/src/main/webapp/images/nation/n051.gif new file mode 100644 index 0000000..75bf540 Binary files /dev/null and b/src/main/webapp/images/nation/n051.gif differ diff --git a/src/main/webapp/images/nation/n052.gif b/src/main/webapp/images/nation/n052.gif new file mode 100644 index 0000000..4586dd7 Binary files /dev/null and b/src/main/webapp/images/nation/n052.gif differ diff --git a/src/main/webapp/images/nation/n053.gif b/src/main/webapp/images/nation/n053.gif new file mode 100644 index 0000000..92b5bdb Binary files /dev/null and b/src/main/webapp/images/nation/n053.gif differ diff --git a/src/main/webapp/images/nation/n054.gif b/src/main/webapp/images/nation/n054.gif new file mode 100644 index 0000000..998345d Binary files /dev/null and b/src/main/webapp/images/nation/n054.gif differ diff --git a/src/main/webapp/images/nation/n055.gif b/src/main/webapp/images/nation/n055.gif new file mode 100644 index 0000000..d06439d Binary files /dev/null and b/src/main/webapp/images/nation/n055.gif differ diff --git a/src/main/webapp/images/nation/n056.gif b/src/main/webapp/images/nation/n056.gif new file mode 100644 index 0000000..a2bb676 Binary files /dev/null and b/src/main/webapp/images/nation/n056.gif differ diff --git a/src/main/webapp/images/nation/n057.gif b/src/main/webapp/images/nation/n057.gif new file mode 100644 index 0000000..0d6c252 Binary files /dev/null and b/src/main/webapp/images/nation/n057.gif differ diff --git a/src/main/webapp/images/nation/n058.gif b/src/main/webapp/images/nation/n058.gif new file mode 100644 index 0000000..8c7e1dd Binary files /dev/null and b/src/main/webapp/images/nation/n058.gif differ diff --git a/src/main/webapp/images/nation/n059.gif b/src/main/webapp/images/nation/n059.gif new file mode 100644 index 0000000..7d0a05b Binary files /dev/null and b/src/main/webapp/images/nation/n059.gif differ diff --git a/src/main/webapp/images/nation/n060.gif b/src/main/webapp/images/nation/n060.gif new file mode 100644 index 0000000..22eebc1 Binary files /dev/null and b/src/main/webapp/images/nation/n060.gif differ diff --git a/src/main/webapp/images/nation/n061.gif b/src/main/webapp/images/nation/n061.gif new file mode 100644 index 0000000..602a5af Binary files /dev/null and b/src/main/webapp/images/nation/n061.gif differ diff --git a/src/main/webapp/images/nation/n062.gif b/src/main/webapp/images/nation/n062.gif new file mode 100644 index 0000000..f3574f2 Binary files /dev/null and b/src/main/webapp/images/nation/n062.gif differ diff --git a/src/main/webapp/images/nation/n063.gif b/src/main/webapp/images/nation/n063.gif new file mode 100644 index 0000000..a12e5c2 Binary files /dev/null and b/src/main/webapp/images/nation/n063.gif differ diff --git a/src/main/webapp/images/nation/n064.gif b/src/main/webapp/images/nation/n064.gif new file mode 100644 index 0000000..81d11da Binary files /dev/null and b/src/main/webapp/images/nation/n064.gif differ diff --git a/src/main/webapp/images/nation/n065.gif b/src/main/webapp/images/nation/n065.gif new file mode 100644 index 0000000..26c69fe Binary files /dev/null and b/src/main/webapp/images/nation/n065.gif differ diff --git a/src/main/webapp/images/nation/n066.gif b/src/main/webapp/images/nation/n066.gif new file mode 100644 index 0000000..7893f1d Binary files /dev/null and b/src/main/webapp/images/nation/n066.gif differ diff --git a/src/main/webapp/images/nation/n067.gif b/src/main/webapp/images/nation/n067.gif new file mode 100644 index 0000000..bdbdf2b Binary files /dev/null and b/src/main/webapp/images/nation/n067.gif differ diff --git a/src/main/webapp/images/nation/n068.gif b/src/main/webapp/images/nation/n068.gif new file mode 100644 index 0000000..ca2981c Binary files /dev/null and b/src/main/webapp/images/nation/n068.gif differ diff --git a/src/main/webapp/images/nation/n069.gif b/src/main/webapp/images/nation/n069.gif new file mode 100644 index 0000000..1a010cf Binary files /dev/null and b/src/main/webapp/images/nation/n069.gif differ diff --git a/src/main/webapp/images/nation/n070.gif b/src/main/webapp/images/nation/n070.gif new file mode 100644 index 0000000..9e02eec Binary files /dev/null and b/src/main/webapp/images/nation/n070.gif differ diff --git a/src/main/webapp/images/nation/n071.gif b/src/main/webapp/images/nation/n071.gif new file mode 100644 index 0000000..d3626a1 Binary files /dev/null and b/src/main/webapp/images/nation/n071.gif differ diff --git a/src/main/webapp/images/nation/n073.gif b/src/main/webapp/images/nation/n073.gif new file mode 100644 index 0000000..5afa3a2 Binary files /dev/null and b/src/main/webapp/images/nation/n073.gif differ diff --git a/src/main/webapp/images/nation/n074.gif b/src/main/webapp/images/nation/n074.gif new file mode 100644 index 0000000..d5a5983 Binary files /dev/null and b/src/main/webapp/images/nation/n074.gif differ diff --git a/src/main/webapp/images/nation/n075.gif b/src/main/webapp/images/nation/n075.gif new file mode 100644 index 0000000..239bfff Binary files /dev/null and b/src/main/webapp/images/nation/n075.gif differ diff --git a/src/main/webapp/images/nation/n076.gif b/src/main/webapp/images/nation/n076.gif new file mode 100644 index 0000000..b57c2a1 Binary files /dev/null and b/src/main/webapp/images/nation/n076.gif differ diff --git a/src/main/webapp/images/nation/n077.gif b/src/main/webapp/images/nation/n077.gif new file mode 100644 index 0000000..13bcde1 Binary files /dev/null and b/src/main/webapp/images/nation/n077.gif differ diff --git a/src/main/webapp/images/nation/n078.gif b/src/main/webapp/images/nation/n078.gif new file mode 100644 index 0000000..fcf4c17 Binary files /dev/null and b/src/main/webapp/images/nation/n078.gif differ diff --git a/src/main/webapp/images/nation/n079.gif b/src/main/webapp/images/nation/n079.gif new file mode 100644 index 0000000..3916878 Binary files /dev/null and b/src/main/webapp/images/nation/n079.gif differ diff --git a/src/main/webapp/images/nation/n081.gif b/src/main/webapp/images/nation/n081.gif new file mode 100644 index 0000000..7c1c0d9 Binary files /dev/null and b/src/main/webapp/images/nation/n081.gif differ diff --git a/src/main/webapp/images/nation/n082.gif b/src/main/webapp/images/nation/n082.gif new file mode 100644 index 0000000..72c8d06 Binary files /dev/null and b/src/main/webapp/images/nation/n082.gif differ diff --git a/src/main/webapp/images/nation/n083.gif b/src/main/webapp/images/nation/n083.gif new file mode 100644 index 0000000..e778807 Binary files /dev/null and b/src/main/webapp/images/nation/n083.gif differ diff --git a/src/main/webapp/images/nation/n084.gif b/src/main/webapp/images/nation/n084.gif new file mode 100644 index 0000000..b00cbfb Binary files /dev/null and b/src/main/webapp/images/nation/n084.gif differ diff --git a/src/main/webapp/images/nation/n085.gif b/src/main/webapp/images/nation/n085.gif new file mode 100644 index 0000000..63bc875 Binary files /dev/null and b/src/main/webapp/images/nation/n085.gif differ diff --git a/src/main/webapp/images/nation/n086.gif b/src/main/webapp/images/nation/n086.gif new file mode 100644 index 0000000..11263c4 Binary files /dev/null and b/src/main/webapp/images/nation/n086.gif differ diff --git a/src/main/webapp/images/nation/n087.gif b/src/main/webapp/images/nation/n087.gif new file mode 100644 index 0000000..f4c633e Binary files /dev/null and b/src/main/webapp/images/nation/n087.gif differ diff --git a/src/main/webapp/images/nation/n088.gif b/src/main/webapp/images/nation/n088.gif new file mode 100644 index 0000000..47723a3 Binary files /dev/null and b/src/main/webapp/images/nation/n088.gif differ diff --git a/src/main/webapp/images/nation/n089.gif b/src/main/webapp/images/nation/n089.gif new file mode 100644 index 0000000..c84ee4f Binary files /dev/null and b/src/main/webapp/images/nation/n089.gif differ diff --git a/src/main/webapp/images/nation/n090.gif b/src/main/webapp/images/nation/n090.gif new file mode 100644 index 0000000..d731602 Binary files /dev/null and b/src/main/webapp/images/nation/n090.gif differ diff --git a/src/main/webapp/images/nation/n091.gif b/src/main/webapp/images/nation/n091.gif new file mode 100644 index 0000000..c7838c6 Binary files /dev/null and b/src/main/webapp/images/nation/n091.gif differ diff --git a/src/main/webapp/images/nation/n093.gif b/src/main/webapp/images/nation/n093.gif new file mode 100644 index 0000000..85c55e7 Binary files /dev/null and b/src/main/webapp/images/nation/n093.gif differ diff --git a/src/main/webapp/images/nation/n094.gif b/src/main/webapp/images/nation/n094.gif new file mode 100644 index 0000000..2deada5 Binary files /dev/null and b/src/main/webapp/images/nation/n094.gif differ diff --git a/src/main/webapp/images/nation/n095.gif b/src/main/webapp/images/nation/n095.gif new file mode 100644 index 0000000..955e610 Binary files /dev/null and b/src/main/webapp/images/nation/n095.gif differ diff --git a/src/main/webapp/images/nation/n096.gif b/src/main/webapp/images/nation/n096.gif new file mode 100644 index 0000000..ee0268f Binary files /dev/null and b/src/main/webapp/images/nation/n096.gif differ diff --git a/src/main/webapp/images/nation/n097.gif b/src/main/webapp/images/nation/n097.gif new file mode 100644 index 0000000..285c817 Binary files /dev/null and b/src/main/webapp/images/nation/n097.gif differ diff --git a/src/main/webapp/images/nation/n098.gif b/src/main/webapp/images/nation/n098.gif new file mode 100644 index 0000000..6c1e172 Binary files /dev/null and b/src/main/webapp/images/nation/n098.gif differ diff --git a/src/main/webapp/images/nation/n099.gif b/src/main/webapp/images/nation/n099.gif new file mode 100644 index 0000000..b61d682 Binary files /dev/null and b/src/main/webapp/images/nation/n099.gif differ diff --git a/src/main/webapp/images/nation/n100.gif b/src/main/webapp/images/nation/n100.gif new file mode 100644 index 0000000..e181375 Binary files /dev/null and b/src/main/webapp/images/nation/n100.gif differ diff --git a/src/main/webapp/images/nation/n101.gif b/src/main/webapp/images/nation/n101.gif new file mode 100644 index 0000000..0c7a242 Binary files /dev/null and b/src/main/webapp/images/nation/n101.gif differ diff --git a/src/main/webapp/images/nation/n102.gif b/src/main/webapp/images/nation/n102.gif new file mode 100644 index 0000000..8026654 Binary files /dev/null and b/src/main/webapp/images/nation/n102.gif differ diff --git a/src/main/webapp/images/nation/n103.gif b/src/main/webapp/images/nation/n103.gif new file mode 100644 index 0000000..7a0fe1e Binary files /dev/null and b/src/main/webapp/images/nation/n103.gif differ diff --git a/src/main/webapp/images/nation/n104.gif b/src/main/webapp/images/nation/n104.gif new file mode 100644 index 0000000..a441341 Binary files /dev/null and b/src/main/webapp/images/nation/n104.gif differ diff --git a/src/main/webapp/images/nation/n105.gif b/src/main/webapp/images/nation/n105.gif new file mode 100644 index 0000000..3d21a4c Binary files /dev/null and b/src/main/webapp/images/nation/n105.gif differ diff --git a/src/main/webapp/images/nation/n106.gif b/src/main/webapp/images/nation/n106.gif new file mode 100644 index 0000000..bde2ca7 Binary files /dev/null and b/src/main/webapp/images/nation/n106.gif differ diff --git a/src/main/webapp/images/nation/n107.gif b/src/main/webapp/images/nation/n107.gif new file mode 100644 index 0000000..c849058 Binary files /dev/null and b/src/main/webapp/images/nation/n107.gif differ diff --git a/src/main/webapp/images/nation/n108.gif b/src/main/webapp/images/nation/n108.gif new file mode 100644 index 0000000..2850edb Binary files /dev/null and b/src/main/webapp/images/nation/n108.gif differ diff --git a/src/main/webapp/images/nation/n109.gif b/src/main/webapp/images/nation/n109.gif new file mode 100644 index 0000000..547075e Binary files /dev/null and b/src/main/webapp/images/nation/n109.gif differ diff --git a/src/main/webapp/images/nation/n110.gif b/src/main/webapp/images/nation/n110.gif new file mode 100644 index 0000000..8c5c7e9 Binary files /dev/null and b/src/main/webapp/images/nation/n110.gif differ diff --git a/src/main/webapp/images/nation/n111.gif b/src/main/webapp/images/nation/n111.gif new file mode 100644 index 0000000..38d7d1e Binary files /dev/null and b/src/main/webapp/images/nation/n111.gif differ diff --git a/src/main/webapp/images/nation/n112.gif b/src/main/webapp/images/nation/n112.gif new file mode 100644 index 0000000..9d106c5 Binary files /dev/null and b/src/main/webapp/images/nation/n112.gif differ diff --git a/src/main/webapp/images/nation/n113.gif b/src/main/webapp/images/nation/n113.gif new file mode 100644 index 0000000..d22ac0e Binary files /dev/null and b/src/main/webapp/images/nation/n113.gif differ diff --git a/src/main/webapp/images/nation/n114.gif b/src/main/webapp/images/nation/n114.gif new file mode 100644 index 0000000..0e65ff5 Binary files /dev/null and b/src/main/webapp/images/nation/n114.gif differ diff --git a/src/main/webapp/images/nation/n115.gif b/src/main/webapp/images/nation/n115.gif new file mode 100644 index 0000000..881766b Binary files /dev/null and b/src/main/webapp/images/nation/n115.gif differ diff --git a/src/main/webapp/images/nation/n116.gif b/src/main/webapp/images/nation/n116.gif new file mode 100644 index 0000000..407295e Binary files /dev/null and b/src/main/webapp/images/nation/n116.gif differ diff --git a/src/main/webapp/images/nation/n117.gif b/src/main/webapp/images/nation/n117.gif new file mode 100644 index 0000000..beee4c8 Binary files /dev/null and b/src/main/webapp/images/nation/n117.gif differ diff --git a/src/main/webapp/images/nation/n118.gif b/src/main/webapp/images/nation/n118.gif new file mode 100644 index 0000000..0788857 Binary files /dev/null and b/src/main/webapp/images/nation/n118.gif differ diff --git a/src/main/webapp/images/nation/n119.gif b/src/main/webapp/images/nation/n119.gif new file mode 100644 index 0000000..f656da3 Binary files /dev/null and b/src/main/webapp/images/nation/n119.gif differ diff --git a/src/main/webapp/images/nation/n120.gif b/src/main/webapp/images/nation/n120.gif new file mode 100644 index 0000000..030f739 Binary files /dev/null and b/src/main/webapp/images/nation/n120.gif differ diff --git a/src/main/webapp/images/nation/n121.gif b/src/main/webapp/images/nation/n121.gif new file mode 100644 index 0000000..e9f4be8 Binary files /dev/null and b/src/main/webapp/images/nation/n121.gif differ diff --git a/src/main/webapp/images/nation/n122.gif b/src/main/webapp/images/nation/n122.gif new file mode 100644 index 0000000..4efeceb Binary files /dev/null and b/src/main/webapp/images/nation/n122.gif differ diff --git a/src/main/webapp/images/nation/n123.gif b/src/main/webapp/images/nation/n123.gif new file mode 100644 index 0000000..34db882 Binary files /dev/null and b/src/main/webapp/images/nation/n123.gif differ diff --git a/src/main/webapp/images/nation/n124.gif b/src/main/webapp/images/nation/n124.gif new file mode 100644 index 0000000..29f4b9d Binary files /dev/null and b/src/main/webapp/images/nation/n124.gif differ diff --git a/src/main/webapp/images/nation/n125.gif b/src/main/webapp/images/nation/n125.gif new file mode 100644 index 0000000..b2e2d87 Binary files /dev/null and b/src/main/webapp/images/nation/n125.gif differ diff --git a/src/main/webapp/images/nation/n126.gif b/src/main/webapp/images/nation/n126.gif new file mode 100644 index 0000000..2391b55 Binary files /dev/null and b/src/main/webapp/images/nation/n126.gif differ diff --git a/src/main/webapp/images/nation/n128.gif b/src/main/webapp/images/nation/n128.gif new file mode 100644 index 0000000..cd0e90d Binary files /dev/null and b/src/main/webapp/images/nation/n128.gif differ diff --git a/src/main/webapp/images/nation/n129.gif b/src/main/webapp/images/nation/n129.gif new file mode 100644 index 0000000..f2ad0c2 Binary files /dev/null and b/src/main/webapp/images/nation/n129.gif differ diff --git a/src/main/webapp/images/nation/n130.gif b/src/main/webapp/images/nation/n130.gif new file mode 100644 index 0000000..608b9fd Binary files /dev/null and b/src/main/webapp/images/nation/n130.gif differ diff --git a/src/main/webapp/images/nation/n131.gif b/src/main/webapp/images/nation/n131.gif new file mode 100644 index 0000000..184caaa Binary files /dev/null and b/src/main/webapp/images/nation/n131.gif differ diff --git a/src/main/webapp/images/nation/n132.gif b/src/main/webapp/images/nation/n132.gif new file mode 100644 index 0000000..ee64588 Binary files /dev/null and b/src/main/webapp/images/nation/n132.gif differ diff --git a/src/main/webapp/images/nation/n133.gif b/src/main/webapp/images/nation/n133.gif new file mode 100644 index 0000000..c466541 Binary files /dev/null and b/src/main/webapp/images/nation/n133.gif differ diff --git a/src/main/webapp/images/nation/n134.gif b/src/main/webapp/images/nation/n134.gif new file mode 100644 index 0000000..f59060f Binary files /dev/null and b/src/main/webapp/images/nation/n134.gif differ diff --git a/src/main/webapp/images/nation/n135.gif b/src/main/webapp/images/nation/n135.gif new file mode 100644 index 0000000..01511fb Binary files /dev/null and b/src/main/webapp/images/nation/n135.gif differ diff --git a/src/main/webapp/images/nation/n136.gif b/src/main/webapp/images/nation/n136.gif new file mode 100644 index 0000000..8456e3b Binary files /dev/null and b/src/main/webapp/images/nation/n136.gif differ diff --git a/src/main/webapp/images/nation/n137.gif b/src/main/webapp/images/nation/n137.gif new file mode 100644 index 0000000..95ad738 Binary files /dev/null and b/src/main/webapp/images/nation/n137.gif differ diff --git a/src/main/webapp/images/nation/n138.gif b/src/main/webapp/images/nation/n138.gif new file mode 100644 index 0000000..dabd248 Binary files /dev/null and b/src/main/webapp/images/nation/n138.gif differ diff --git a/src/main/webapp/images/nation/n139.gif b/src/main/webapp/images/nation/n139.gif new file mode 100644 index 0000000..5075594 Binary files /dev/null and b/src/main/webapp/images/nation/n139.gif differ diff --git a/src/main/webapp/images/nation/n140.gif b/src/main/webapp/images/nation/n140.gif new file mode 100644 index 0000000..9526992 Binary files /dev/null and b/src/main/webapp/images/nation/n140.gif differ diff --git a/src/main/webapp/images/nation/n141.gif b/src/main/webapp/images/nation/n141.gif new file mode 100644 index 0000000..1180bfd Binary files /dev/null and b/src/main/webapp/images/nation/n141.gif differ diff --git a/src/main/webapp/images/nation/n142.gif b/src/main/webapp/images/nation/n142.gif new file mode 100644 index 0000000..43e5b74 Binary files /dev/null and b/src/main/webapp/images/nation/n142.gif differ diff --git a/src/main/webapp/images/nation/n143.gif b/src/main/webapp/images/nation/n143.gif new file mode 100644 index 0000000..59500e1 Binary files /dev/null and b/src/main/webapp/images/nation/n143.gif differ diff --git a/src/main/webapp/images/nation/n144.gif b/src/main/webapp/images/nation/n144.gif new file mode 100644 index 0000000..366ca6f Binary files /dev/null and b/src/main/webapp/images/nation/n144.gif differ diff --git a/src/main/webapp/images/nation/n145.gif b/src/main/webapp/images/nation/n145.gif new file mode 100644 index 0000000..c1178fa Binary files /dev/null and b/src/main/webapp/images/nation/n145.gif differ diff --git a/src/main/webapp/images/nation/n146.gif b/src/main/webapp/images/nation/n146.gif new file mode 100644 index 0000000..17a52d6 Binary files /dev/null and b/src/main/webapp/images/nation/n146.gif differ diff --git a/src/main/webapp/images/nation/n147.gif b/src/main/webapp/images/nation/n147.gif new file mode 100644 index 0000000..c6801ef Binary files /dev/null and b/src/main/webapp/images/nation/n147.gif differ diff --git a/src/main/webapp/images/nation/n148.gif b/src/main/webapp/images/nation/n148.gif new file mode 100644 index 0000000..ceff07e Binary files /dev/null and b/src/main/webapp/images/nation/n148.gif differ diff --git a/src/main/webapp/images/nation/n149.gif b/src/main/webapp/images/nation/n149.gif new file mode 100644 index 0000000..7ca501e Binary files /dev/null and b/src/main/webapp/images/nation/n149.gif differ diff --git a/src/main/webapp/images/nation/n150.gif b/src/main/webapp/images/nation/n150.gif new file mode 100644 index 0000000..2e3d50c Binary files /dev/null and b/src/main/webapp/images/nation/n150.gif differ diff --git a/src/main/webapp/images/nation/n151.gif b/src/main/webapp/images/nation/n151.gif new file mode 100644 index 0000000..96f5720 Binary files /dev/null and b/src/main/webapp/images/nation/n151.gif differ diff --git a/src/main/webapp/images/nation/n152.gif b/src/main/webapp/images/nation/n152.gif new file mode 100644 index 0000000..5591a54 Binary files /dev/null and b/src/main/webapp/images/nation/n152.gif differ diff --git a/src/main/webapp/images/nation/n154.gif b/src/main/webapp/images/nation/n154.gif new file mode 100644 index 0000000..0a93ef5 Binary files /dev/null and b/src/main/webapp/images/nation/n154.gif differ diff --git a/src/main/webapp/images/nation/n155.gif b/src/main/webapp/images/nation/n155.gif new file mode 100644 index 0000000..8d6547d Binary files /dev/null and b/src/main/webapp/images/nation/n155.gif differ diff --git a/src/main/webapp/images/nation/n156.gif b/src/main/webapp/images/nation/n156.gif new file mode 100644 index 0000000..c6116e5 Binary files /dev/null and b/src/main/webapp/images/nation/n156.gif differ diff --git a/src/main/webapp/images/nation/n158.gif b/src/main/webapp/images/nation/n158.gif new file mode 100644 index 0000000..bd509a3 Binary files /dev/null and b/src/main/webapp/images/nation/n158.gif differ diff --git a/src/main/webapp/images/nation/n159.gif b/src/main/webapp/images/nation/n159.gif new file mode 100644 index 0000000..5b7c63b Binary files /dev/null and b/src/main/webapp/images/nation/n159.gif differ diff --git a/src/main/webapp/images/nation/n160.gif b/src/main/webapp/images/nation/n160.gif new file mode 100644 index 0000000..d051f8b Binary files /dev/null and b/src/main/webapp/images/nation/n160.gif differ diff --git a/src/main/webapp/images/nation/n161.gif b/src/main/webapp/images/nation/n161.gif new file mode 100644 index 0000000..7b4ab4d Binary files /dev/null and b/src/main/webapp/images/nation/n161.gif differ diff --git a/src/main/webapp/images/nation/n162.gif b/src/main/webapp/images/nation/n162.gif new file mode 100644 index 0000000..a13c505 Binary files /dev/null and b/src/main/webapp/images/nation/n162.gif differ diff --git a/src/main/webapp/images/nation/n163.gif b/src/main/webapp/images/nation/n163.gif new file mode 100644 index 0000000..709a9f5 Binary files /dev/null and b/src/main/webapp/images/nation/n163.gif differ diff --git a/src/main/webapp/images/nation/n164.gif b/src/main/webapp/images/nation/n164.gif new file mode 100644 index 0000000..93796ac Binary files /dev/null and b/src/main/webapp/images/nation/n164.gif differ diff --git a/src/main/webapp/images/nation/n165.gif b/src/main/webapp/images/nation/n165.gif new file mode 100644 index 0000000..b2c7c2c Binary files /dev/null and b/src/main/webapp/images/nation/n165.gif differ diff --git a/src/main/webapp/images/nation/n166.gif b/src/main/webapp/images/nation/n166.gif new file mode 100644 index 0000000..6a8007f Binary files /dev/null and b/src/main/webapp/images/nation/n166.gif differ diff --git a/src/main/webapp/images/nation/n167.gif b/src/main/webapp/images/nation/n167.gif new file mode 100644 index 0000000..7856b3f Binary files /dev/null and b/src/main/webapp/images/nation/n167.gif differ diff --git a/src/main/webapp/images/nation/n169.gif b/src/main/webapp/images/nation/n169.gif new file mode 100644 index 0000000..1a71f89 Binary files /dev/null and b/src/main/webapp/images/nation/n169.gif differ diff --git a/src/main/webapp/images/nation/n170.gif b/src/main/webapp/images/nation/n170.gif new file mode 100644 index 0000000..540bc35 Binary files /dev/null and b/src/main/webapp/images/nation/n170.gif differ diff --git a/src/main/webapp/images/nation/n171.gif b/src/main/webapp/images/nation/n171.gif new file mode 100644 index 0000000..39530fd Binary files /dev/null and b/src/main/webapp/images/nation/n171.gif differ diff --git a/src/main/webapp/images/nation/n172.gif b/src/main/webapp/images/nation/n172.gif new file mode 100644 index 0000000..7b7819d Binary files /dev/null and b/src/main/webapp/images/nation/n172.gif differ diff --git a/src/main/webapp/images/nation/n173.gif b/src/main/webapp/images/nation/n173.gif new file mode 100644 index 0000000..3d564bd Binary files /dev/null and b/src/main/webapp/images/nation/n173.gif differ diff --git a/src/main/webapp/images/nation/n174.gif b/src/main/webapp/images/nation/n174.gif new file mode 100644 index 0000000..8ce3cbd Binary files /dev/null and b/src/main/webapp/images/nation/n174.gif differ diff --git a/src/main/webapp/images/nation/n175.gif b/src/main/webapp/images/nation/n175.gif new file mode 100644 index 0000000..2f13e45 Binary files /dev/null and b/src/main/webapp/images/nation/n175.gif differ diff --git a/src/main/webapp/images/nation/n176.gif b/src/main/webapp/images/nation/n176.gif new file mode 100644 index 0000000..b071f0f Binary files /dev/null and b/src/main/webapp/images/nation/n176.gif differ diff --git a/src/main/webapp/images/nation/n177.gif b/src/main/webapp/images/nation/n177.gif new file mode 100644 index 0000000..26fe81a Binary files /dev/null and b/src/main/webapp/images/nation/n177.gif differ diff --git a/src/main/webapp/images/nation/n179.gif b/src/main/webapp/images/nation/n179.gif new file mode 100644 index 0000000..ac29fe6 Binary files /dev/null and b/src/main/webapp/images/nation/n179.gif differ diff --git a/src/main/webapp/images/nation/n180.gif b/src/main/webapp/images/nation/n180.gif new file mode 100644 index 0000000..54f88a6 Binary files /dev/null and b/src/main/webapp/images/nation/n180.gif differ diff --git a/src/main/webapp/images/nation/n181.gif b/src/main/webapp/images/nation/n181.gif new file mode 100644 index 0000000..b080322 Binary files /dev/null and b/src/main/webapp/images/nation/n181.gif differ diff --git a/src/main/webapp/images/nation/n182.gif b/src/main/webapp/images/nation/n182.gif new file mode 100644 index 0000000..6e95ade Binary files /dev/null and b/src/main/webapp/images/nation/n182.gif differ diff --git a/src/main/webapp/images/nation/n183.gif b/src/main/webapp/images/nation/n183.gif new file mode 100644 index 0000000..584f3c2 Binary files /dev/null and b/src/main/webapp/images/nation/n183.gif differ diff --git a/src/main/webapp/images/nation/n184.gif b/src/main/webapp/images/nation/n184.gif new file mode 100644 index 0000000..2395a9d Binary files /dev/null and b/src/main/webapp/images/nation/n184.gif differ diff --git a/src/main/webapp/images/nation/n185.gif b/src/main/webapp/images/nation/n185.gif new file mode 100644 index 0000000..2dd404f Binary files /dev/null and b/src/main/webapp/images/nation/n185.gif differ diff --git a/src/main/webapp/images/nation/n186.gif b/src/main/webapp/images/nation/n186.gif new file mode 100644 index 0000000..6f56a39 Binary files /dev/null and b/src/main/webapp/images/nation/n186.gif differ diff --git a/src/main/webapp/images/nation/n188.gif b/src/main/webapp/images/nation/n188.gif new file mode 100644 index 0000000..e23f0a1 Binary files /dev/null and b/src/main/webapp/images/nation/n188.gif differ diff --git a/src/main/webapp/images/nation/n189.gif b/src/main/webapp/images/nation/n189.gif new file mode 100644 index 0000000..d9fd15b Binary files /dev/null and b/src/main/webapp/images/nation/n189.gif differ diff --git a/src/main/webapp/images/nation/n190.gif b/src/main/webapp/images/nation/n190.gif new file mode 100644 index 0000000..65aaaf6 Binary files /dev/null and b/src/main/webapp/images/nation/n190.gif differ diff --git a/src/main/webapp/images/nation/n191.gif b/src/main/webapp/images/nation/n191.gif new file mode 100644 index 0000000..4e1ced3 Binary files /dev/null and b/src/main/webapp/images/nation/n191.gif differ diff --git a/src/main/webapp/images/nation/n192.gif b/src/main/webapp/images/nation/n192.gif new file mode 100644 index 0000000..69a330f Binary files /dev/null and b/src/main/webapp/images/nation/n192.gif differ diff --git a/src/main/webapp/images/nation/n193.gif b/src/main/webapp/images/nation/n193.gif new file mode 100644 index 0000000..b97e893 Binary files /dev/null and b/src/main/webapp/images/nation/n193.gif differ diff --git a/src/main/webapp/images/nation/n194.gif b/src/main/webapp/images/nation/n194.gif new file mode 100644 index 0000000..943624b Binary files /dev/null and b/src/main/webapp/images/nation/n194.gif differ diff --git a/src/main/webapp/images/nation/n195.gif b/src/main/webapp/images/nation/n195.gif new file mode 100644 index 0000000..119085b Binary files /dev/null and b/src/main/webapp/images/nation/n195.gif differ diff --git a/src/main/webapp/images/nation/n196.gif b/src/main/webapp/images/nation/n196.gif new file mode 100644 index 0000000..3c8aaa3 Binary files /dev/null and b/src/main/webapp/images/nation/n196.gif differ diff --git a/src/main/webapp/images/nation/n197.gif b/src/main/webapp/images/nation/n197.gif new file mode 100644 index 0000000..feaa11e Binary files /dev/null and b/src/main/webapp/images/nation/n197.gif differ diff --git a/src/main/webapp/images/nation/n199.gif b/src/main/webapp/images/nation/n199.gif new file mode 100644 index 0000000..5c60beb Binary files /dev/null and b/src/main/webapp/images/nation/n199.gif differ diff --git a/src/main/webapp/images/nation/n200.gif b/src/main/webapp/images/nation/n200.gif new file mode 100644 index 0000000..971143d Binary files /dev/null and b/src/main/webapp/images/nation/n200.gif differ diff --git a/src/main/webapp/images/nation/n201.gif b/src/main/webapp/images/nation/n201.gif new file mode 100644 index 0000000..e8c4431 Binary files /dev/null and b/src/main/webapp/images/nation/n201.gif differ diff --git a/src/main/webapp/images/nation/n202.gif b/src/main/webapp/images/nation/n202.gif new file mode 100644 index 0000000..5cd75dd Binary files /dev/null and b/src/main/webapp/images/nation/n202.gif differ diff --git a/src/main/webapp/images/nation/n203.gif b/src/main/webapp/images/nation/n203.gif new file mode 100644 index 0000000..91b8c14 Binary files /dev/null and b/src/main/webapp/images/nation/n203.gif differ diff --git a/src/main/webapp/images/nation/n204.gif b/src/main/webapp/images/nation/n204.gif new file mode 100644 index 0000000..de5cef8 Binary files /dev/null and b/src/main/webapp/images/nation/n204.gif differ diff --git a/src/main/webapp/images/nation/n205.gif b/src/main/webapp/images/nation/n205.gif new file mode 100644 index 0000000..a0c5694 Binary files /dev/null and b/src/main/webapp/images/nation/n205.gif differ diff --git a/src/main/webapp/images/nation/n206.gif b/src/main/webapp/images/nation/n206.gif new file mode 100644 index 0000000..599b076 Binary files /dev/null and b/src/main/webapp/images/nation/n206.gif differ diff --git a/src/main/webapp/images/nation/n208.gif b/src/main/webapp/images/nation/n208.gif new file mode 100644 index 0000000..a559284 Binary files /dev/null and b/src/main/webapp/images/nation/n208.gif differ diff --git a/src/main/webapp/images/nation/n209.gif b/src/main/webapp/images/nation/n209.gif new file mode 100644 index 0000000..bd30ec5 Binary files /dev/null and b/src/main/webapp/images/nation/n209.gif differ diff --git a/src/main/webapp/images/nation/n210.gif b/src/main/webapp/images/nation/n210.gif new file mode 100644 index 0000000..0caa4d4 Binary files /dev/null and b/src/main/webapp/images/nation/n210.gif differ diff --git a/src/main/webapp/images/nation/n211.gif b/src/main/webapp/images/nation/n211.gif new file mode 100644 index 0000000..6be6072 Binary files /dev/null and b/src/main/webapp/images/nation/n211.gif differ diff --git a/src/main/webapp/images/nation/n212.gif b/src/main/webapp/images/nation/n212.gif new file mode 100644 index 0000000..a1e097b Binary files /dev/null and b/src/main/webapp/images/nation/n212.gif differ diff --git a/src/main/webapp/images/nation/n213.gif b/src/main/webapp/images/nation/n213.gif new file mode 100644 index 0000000..a28e485 Binary files /dev/null and b/src/main/webapp/images/nation/n213.gif differ diff --git a/src/main/webapp/images/nation/n214.gif b/src/main/webapp/images/nation/n214.gif new file mode 100644 index 0000000..c7fe5c0 Binary files /dev/null and b/src/main/webapp/images/nation/n214.gif differ diff --git a/src/main/webapp/images/nation/n215.gif b/src/main/webapp/images/nation/n215.gif new file mode 100644 index 0000000..f6918ae Binary files /dev/null and b/src/main/webapp/images/nation/n215.gif differ diff --git a/src/main/webapp/images/nation/n216.gif b/src/main/webapp/images/nation/n216.gif new file mode 100644 index 0000000..58a01df Binary files /dev/null and b/src/main/webapp/images/nation/n216.gif differ diff --git a/src/main/webapp/images/nation/n217.gif b/src/main/webapp/images/nation/n217.gif new file mode 100644 index 0000000..41703a1 Binary files /dev/null and b/src/main/webapp/images/nation/n217.gif differ diff --git a/src/main/webapp/images/nation/n218.gif b/src/main/webapp/images/nation/n218.gif new file mode 100644 index 0000000..8018e07 Binary files /dev/null and b/src/main/webapp/images/nation/n218.gif differ diff --git a/src/main/webapp/images/nation/n219.gif b/src/main/webapp/images/nation/n219.gif new file mode 100644 index 0000000..3691e69 Binary files /dev/null and b/src/main/webapp/images/nation/n219.gif differ diff --git a/src/main/webapp/images/nation/n220.gif b/src/main/webapp/images/nation/n220.gif new file mode 100644 index 0000000..a7c4cc9 Binary files /dev/null and b/src/main/webapp/images/nation/n220.gif differ diff --git a/src/main/webapp/images/nation/n221.gif b/src/main/webapp/images/nation/n221.gif new file mode 100644 index 0000000..bd27d88 Binary files /dev/null and b/src/main/webapp/images/nation/n221.gif differ diff --git a/src/main/webapp/images/nation/n222.gif b/src/main/webapp/images/nation/n222.gif new file mode 100644 index 0000000..3615868 Binary files /dev/null and b/src/main/webapp/images/nation/n222.gif differ diff --git a/src/main/webapp/images/nation/n223.gif b/src/main/webapp/images/nation/n223.gif new file mode 100644 index 0000000..87d712b Binary files /dev/null and b/src/main/webapp/images/nation/n223.gif differ diff --git a/src/main/webapp/images/nation/n224.gif b/src/main/webapp/images/nation/n224.gif new file mode 100644 index 0000000..67f419d Binary files /dev/null and b/src/main/webapp/images/nation/n224.gif differ diff --git a/src/main/webapp/images/nation/n226.gif b/src/main/webapp/images/nation/n226.gif new file mode 100644 index 0000000..5423298 Binary files /dev/null and b/src/main/webapp/images/nation/n226.gif differ diff --git a/src/main/webapp/images/nation/n228.gif b/src/main/webapp/images/nation/n228.gif new file mode 100644 index 0000000..498c34c Binary files /dev/null and b/src/main/webapp/images/nation/n228.gif differ diff --git a/src/main/webapp/images/nation/n229.gif b/src/main/webapp/images/nation/n229.gif new file mode 100644 index 0000000..9b9330e Binary files /dev/null and b/src/main/webapp/images/nation/n229.gif differ diff --git a/src/main/webapp/images/nation/n230.gif b/src/main/webapp/images/nation/n230.gif new file mode 100644 index 0000000..0bfa887 Binary files /dev/null and b/src/main/webapp/images/nation/n230.gif differ diff --git a/src/main/webapp/images/nation/n231.gif b/src/main/webapp/images/nation/n231.gif new file mode 100644 index 0000000..d1ba41a Binary files /dev/null and b/src/main/webapp/images/nation/n231.gif differ diff --git a/src/main/webapp/images/new/btn_search_icon.png b/src/main/webapp/images/new/btn_search_icon.png new file mode 100644 index 0000000..99c621e Binary files /dev/null and b/src/main/webapp/images/new/btn_search_icon.png differ diff --git a/src/main/webapp/images/new/btn_search_icon2.png b/src/main/webapp/images/new/btn_search_icon2.png new file mode 100644 index 0000000..1b3c70b Binary files /dev/null and b/src/main/webapp/images/new/btn_search_icon2.png differ diff --git a/src/main/webapp/images/new/btn_search_icon_over.png b/src/main/webapp/images/new/btn_search_icon_over.png new file mode 100644 index 0000000..112fe0b Binary files /dev/null and b/src/main/webapp/images/new/btn_search_icon_over.png differ diff --git a/src/main/webapp/images/new/dot_g.png b/src/main/webapp/images/new/dot_g.png new file mode 100644 index 0000000..c1711d1 Binary files /dev/null and b/src/main/webapp/images/new/dot_g.png differ diff --git a/src/main/webapp/images/new/dot_s_g.png b/src/main/webapp/images/new/dot_s_g.png new file mode 100644 index 0000000..80a9efb Binary files /dev/null and b/src/main/webapp/images/new/dot_s_g.png differ diff --git a/src/main/webapp/images/new/f_logo.png b/src/main/webapp/images/new/f_logo.png new file mode 100644 index 0000000..2280228 Binary files /dev/null and b/src/main/webapp/images/new/f_logo.png differ diff --git a/src/main/webapp/images/new/if_39_171479.png b/src/main/webapp/images/new/if_39_171479.png new file mode 100644 index 0000000..50d4a66 Binary files /dev/null and b/src/main/webapp/images/new/if_39_171479.png differ diff --git a/src/main/webapp/images/new/img01.jpg b/src/main/webapp/images/new/img01.jpg new file mode 100644 index 0000000..d63beaf Binary files /dev/null and b/src/main/webapp/images/new/img01.jpg differ diff --git a/src/main/webapp/images/new/img02.jpg b/src/main/webapp/images/new/img02.jpg new file mode 100644 index 0000000..9831196 Binary files /dev/null and b/src/main/webapp/images/new/img02.jpg differ diff --git a/src/main/webapp/images/new/logo.png b/src/main/webapp/images/new/logo.png new file mode 100644 index 0000000..9b8ad43 Binary files /dev/null and b/src/main/webapp/images/new/logo.png differ diff --git a/src/main/webapp/images/new/mVisual_01.jpg b/src/main/webapp/images/new/mVisual_01.jpg new file mode 100644 index 0000000..1c6b4ae Binary files /dev/null and b/src/main/webapp/images/new/mVisual_01.jpg differ diff --git a/src/main/webapp/images/new/mpss-footer_01.png b/src/main/webapp/images/new/mpss-footer_01.png new file mode 100644 index 0000000..0351f78 Binary files /dev/null and b/src/main/webapp/images/new/mpss-footer_01.png differ diff --git a/src/main/webapp/images/new/mpss_01.jpg b/src/main/webapp/images/new/mpss_01.jpg new file mode 100644 index 0000000..d0f6232 Binary files /dev/null and b/src/main/webapp/images/new/mpss_01.jpg differ diff --git a/src/main/webapp/images/new/popup01.jpg b/src/main/webapp/images/new/popup01.jpg new file mode 100644 index 0000000..0d91887 Binary files /dev/null and b/src/main/webapp/images/new/popup01.jpg differ diff --git a/src/main/webapp/images/new/popup02.jpg b/src/main/webapp/images/new/popup02.jpg new file mode 100644 index 0000000..07bdfc9 Binary files /dev/null and b/src/main/webapp/images/new/popup02.jpg differ diff --git a/src/main/webapp/images/new/popup_window_close.gif b/src/main/webapp/images/new/popup_window_close.gif new file mode 100644 index 0000000..3101b59 Binary files /dev/null and b/src/main/webapp/images/new/popup_window_close.gif differ diff --git a/src/main/webapp/images/new/popup_window_hide.gif b/src/main/webapp/images/new/popup_window_hide.gif new file mode 100644 index 0000000..2e892f7 Binary files /dev/null and b/src/main/webapp/images/new/popup_window_hide.gif differ diff --git a/src/main/webapp/images/new/q_borad.png b/src/main/webapp/images/new/q_borad.png new file mode 100644 index 0000000..a51273b Binary files /dev/null and b/src/main/webapp/images/new/q_borad.png differ diff --git a/src/main/webapp/images/new/q_data.png b/src/main/webapp/images/new/q_data.png new file mode 100644 index 0000000..46298db Binary files /dev/null and b/src/main/webapp/images/new/q_data.png differ diff --git a/src/main/webapp/images/new/q_gyenM.png b/src/main/webapp/images/new/q_gyenM.png new file mode 100644 index 0000000..6cb7180 Binary files /dev/null and b/src/main/webapp/images/new/q_gyenM.png differ diff --git a/src/main/webapp/images/new/q_info.png b/src/main/webapp/images/new/q_info.png new file mode 100644 index 0000000..c19ae02 Binary files /dev/null and b/src/main/webapp/images/new/q_info.png differ diff --git a/src/main/webapp/images/new/q_meeting.png b/src/main/webapp/images/new/q_meeting.png new file mode 100644 index 0000000..313916f Binary files /dev/null and b/src/main/webapp/images/new/q_meeting.png differ diff --git a/src/main/webapp/images/new/q_notice.png b/src/main/webapp/images/new/q_notice.png new file mode 100644 index 0000000..2212c84 Binary files /dev/null and b/src/main/webapp/images/new/q_notice.png differ diff --git a/src/main/webapp/images/new/q_report.png b/src/main/webapp/images/new/q_report.png new file mode 100644 index 0000000..6123682 Binary files /dev/null and b/src/main/webapp/images/new/q_report.png differ diff --git a/src/main/webapp/images/new/q_report_2.png b/src/main/webapp/images/new/q_report_2.png new file mode 100644 index 0000000..bca9e9a Binary files /dev/null and b/src/main/webapp/images/new/q_report_2.png differ diff --git a/src/main/webapp/images/new/w3c.png b/src/main/webapp/images/new/w3c.png new file mode 100644 index 0000000..a30fed8 Binary files /dev/null and b/src/main/webapp/images/new/w3c.png differ diff --git a/src/main/webapp/images/rte/btn_bg_l.gif b/src/main/webapp/images/rte/btn_bg_l.gif new file mode 100644 index 0000000..11341a6 Binary files /dev/null and b/src/main/webapp/images/rte/btn_bg_l.gif differ diff --git a/src/main/webapp/images/rte/btn_bg_r.gif b/src/main/webapp/images/rte/btn_bg_r.gif new file mode 100644 index 0000000..be5b8c5 Binary files /dev/null and b/src/main/webapp/images/rte/btn_bg_r.gif differ diff --git a/src/main/webapp/images/rte/paging_line.gif b/src/main/webapp/images/rte/paging_line.gif new file mode 100644 index 0000000..0fa7654 Binary files /dev/null and b/src/main/webapp/images/rte/paging_line.gif differ diff --git a/src/main/webapp/images/rte/th_bg.gif b/src/main/webapp/images/rte/th_bg.gif new file mode 100644 index 0000000..e3f80fc Binary files /dev/null and b/src/main/webapp/images/rte/th_bg.gif differ diff --git a/src/main/webapp/images/rte/title_dot.gif b/src/main/webapp/images/rte/title_dot.gif new file mode 100644 index 0000000..f2658f9 Binary files /dev/null and b/src/main/webapp/images/rte/title_dot.gif differ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..1e55611 --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,2 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> + diff --git a/src/main/webapp/js/commons.js b/src/main/webapp/js/commons.js new file mode 100644 index 0000000..d5398ef --- /dev/null +++ b/src/main/webapp/js/commons.js @@ -0,0 +1,45 @@ +function printDiv(printThis) { + var win = window.open(); + self.focus() + win.document.open(""); + win.document.write('<'+'html'+'><'+'head'+'>'); + win.document.write( "" ); + win.document.write( "" ); + win.document.write( "" ); + win.document.write('<'+'style'+'>'); + win.document.write('body, td { font-family: Verdana; font-size: 6pt;}'); + win.document.write('<'+'/'+'style'+'><'+'/'+'head'+'><'+'body'+'>'); + win.document.write(printThis); + win.document.write("" ); + win.document.write('<'+'/'+'body'+'><'+'/'+'html'+'>'); + win.document.close(); + + // 이미지가 포함된 경우 이미지가 출력되지 않아, 인쇄 페이지 내 onload 이벤트에서 출력 및 닫기 함수 호출 + //win.print(); + //win.close(); +} + +function domEvent(e){ + if (!e && window.event) { + var we = new Object; + if (window.event.target) { + we.target = window.event.target; + } else { + we.target = window.event.srcElement; + } + if (window.event.keyCode) { + we.keyCode = window.event.keyCode; + } else { + we.keyCode = window.event.which; + } + we.clientX = window.event.clientX; + we.clientY = window.event.clientY; + we.screenX = window.event.screenX; + we.screenY = window.event.screenY; + we.preventDefault = function () { + window.event.returnValue = false; + }; + return we; + } + return e; +} \ No newline at end of file diff --git a/src/main/webapp/js/lib/jquery-1.12.4.min.js b/src/main/webapp/js/lib/jquery-1.12.4.min.js new file mode 100644 index 0000000..e836475 --- /dev/null +++ b/src/main/webapp/js/lib/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
    a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("").appendTo("body"); +_5c3.attr("src",window.ActiveXObject?"javascript:false":"about:blank"); +_5c3.css({position:"absolute",top:-1000,left:-1000}); +_5c3.bind("load",cb); +_5c4(_5c1); +function _5c4(_5c5){ +var form=$(_5c0); +if(opts.url){ +form.attr("action",opts.url); +} +var t=form.attr("target"),a=form.attr("action"); +form.attr("target",_5c2); +var _5c6=$(); +try{ +for(var n in _5c5){ +var _5c7=$("").val(_5c5[n]).appendTo(form); +_5c6=_5c6.add(_5c7); +} +_5c8(); +form[0].submit(); +} +finally{ +form.attr("action",a); +t?form.attr("target",t):form.removeAttr("target"); +_5c6.remove(); +} +}; +function _5c8(){ +var f=$("#"+_5c2); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_5c8,100); +} +} +catch(e){ +cb(); +} +}; +var _5c9=10; +function cb(){ +var f=$("#"+_5c2); +if(!f.length){ +return; +} +f.unbind(); +var data=""; +try{ +var body=f.contents().find("body"); +data=body.html(); +if(data==""){ +if(--_5c9){ +setTimeout(cb,100); +return; +} +} +var ta=body.find(">textarea"); +if(ta.length){ +data=ta.val(); +}else{ +var pre=body.find(">pre"); +if(pre.length){ +data=pre.html(); +} +} +} +catch(e){ +} +opts.success.call(_5c0,data); +setTimeout(function(){ +f.unbind(); +f.remove(); +},100); +}; +}; +function _5bf(_5ca,_5cb){ +var opts=$.data(_5ca,"form").options; +var _5cc=new FormData($(_5ca)[0]); +for(var name in _5cb){ +_5cc.append(name,_5cb[name]); +} +$.ajax({url:opts.url,type:"post",xhr:function(){ +var xhr=$.ajaxSettings.xhr(); +if(xhr.upload){ +xhr.upload.addEventListener("progress",function(e){ +if(e.lengthComputable){ +var _5cd=e.total; +var _5ce=e.loaded||e.position; +var _5cf=Math.ceil(_5ce*100/_5cd); +opts.onProgress.call(_5ca,_5cf); +} +},false); +} +return xhr; +},data:_5cc,dataType:"html",cache:false,contentType:false,processData:false,complete:function(res){ +opts.success.call(_5ca,res.responseText); +}}); +}; +function load(_5d0,data){ +var opts=$.data(_5d0,"form").options; +if(typeof data=="string"){ +var _5d1={}; +if(opts.onBeforeLoad.call(_5d0,_5d1)==false){ +return; +} +$.ajax({url:data,data:_5d1,dataType:"json",success:function(data){ +_5d2(data); +},error:function(){ +opts.onLoadError.apply(_5d0,arguments); +}}); +}else{ +_5d2(data); +} +function _5d2(data){ +var form=$(_5d0); +for(var name in data){ +var val=data[name]; +if(!_5d3(name,val)){ +if(!_5d4(name,val)){ +form.find("input[name=\""+name+"\"]").val(val); +form.find("textarea[name=\""+name+"\"]").val(val); +form.find("select[name=\""+name+"\"]").val(val); +} +} +} +opts.onLoadSuccess.call(_5d0,data); +form.form("validate"); +}; +function _5d3(name,val){ +var cc=$(_5d0).find("[switchbuttonName=\""+name+"\"]"); +if(cc.length){ +cc.switchbutton("uncheck"); +cc.each(function(){ +if(_5d5($(this).switchbutton("options").value,val)){ +$(this).switchbutton("check"); +} +}); +return true; +} +cc=$(_5d0).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]"); +if(cc.length){ +cc._propAttr("checked",false); +cc.each(function(){ +if(_5d5($(this).val(),val)){ +$(this)._propAttr("checked",true); +} +}); +return true; +} +return false; +}; +function _5d5(v,val){ +if(v==String(val)||$.inArray(v,$.isArray(val)?val:[val])>=0){ +return true; +}else{ +return false; +} +}; +function _5d4(name,val){ +var _5d6=$(_5d0).find("[textboxName=\""+name+"\"],[sliderName=\""+name+"\"]"); +if(_5d6.length){ +for(var i=0;i=0;i--){ +var type=opts.fieldTypes[i]; +var _5de=form.find("."+type+"-f"); +if(_5de.length&&_5de[type]){ +_5de[type]("reset"); +} +} +form.form("validate"); +}; +function _5df(_5e0){ +var _5e1=$.data(_5e0,"form").options; +$(_5e0).unbind(".form"); +if(_5e1.ajax){ +$(_5e0).bind("submit.form",function(){ +setTimeout(function(){ +_5b8(_5e0,_5e1); +},0); +return false; +}); +} +$(_5e0).bind("_change.form",function(e,t){ +if($.inArray(t,_5e1.dirtyFields)==-1){ +_5e1.dirtyFields.push(t); +} +_5e1.onChange.call(this,t); +}).bind("change.form",function(e){ +var t=e.target; +if(!$(t).hasClass("textbox-text")){ +if($.inArray(t,_5e1.dirtyFields)==-1){ +_5e1.dirtyFields.push(t); +} +_5e1.onChange.call(this,t); +} +}); +_5e2(_5e0,_5e1.novalidate); +}; +function _5e3(_5e4,_5e5){ +_5e5=_5e5||{}; +var _5e6=$.data(_5e4,"form"); +if(_5e6){ +$.extend(_5e6.options,_5e5); +}else{ +$.data(_5e4,"form",{options:$.extend({},$.fn.form.defaults,$.fn.form.parseOptions(_5e4),_5e5)}); +} +}; +function _5e7(_5e8){ +if($.fn.validatebox){ +var t=$(_5e8); +t.find(".validatebox-text:not(:disabled)").validatebox("validate"); +var _5e9=t.find(".validatebox-invalid"); +_5e9.filter(":not(:disabled):first").focus(); +return _5e9.length==0; +} +return true; +}; +function _5e2(_5ea,_5eb){ +var opts=$.data(_5ea,"form").options; +opts.novalidate=_5eb; +$(_5ea).find(".validatebox-text:not(:disabled)").validatebox(_5eb?"disableValidation":"enableValidation"); +}; +$.fn.form=function(_5ec,_5ed){ +if(typeof _5ec=="string"){ +this.each(function(){ +_5e3(this); +}); +return $.fn.form.methods[_5ec](this,_5ed); +} +return this.each(function(){ +_5e3(this,_5ec); +_5df(this); +}); +}; +$.fn.form.methods={options:function(jq){ +return $.data(jq[0],"form").options; +},submit:function(jq,_5ee){ +return jq.each(function(){ +_5b8(this,_5ee); +}); +},load:function(jq,data){ +return jq.each(function(){ +load(this,data); +}); +},clear:function(jq){ +return jq.each(function(){ +_5d8(this); +}); +},reset:function(jq){ +return jq.each(function(){ +_5dc(this); +}); +},validate:function(jq){ +return _5e7(jq[0]); +},disableValidation:function(jq){ +return jq.each(function(){ +_5e2(this,true); +}); +},enableValidation:function(jq){ +return jq.each(function(){ +_5e2(this,false); +}); +},resetValidation:function(jq){ +return jq.each(function(){ +$(this).find(".validatebox-text:not(:disabled)").validatebox("resetValidation"); +}); +},resetDirty:function(jq){ +return jq.each(function(){ +$(this).form("options").dirtyFields=[]; +}); +}}; +$.fn.form.parseOptions=function(_5ef){ +var t=$(_5ef); +return $.extend({},$.parser.parseOptions(_5ef,[{ajax:"boolean",dirty:"boolean"}]),{url:(t.attr("action")?t.attr("action"):undefined)}); +}; +$.fn.form.defaults={fieldTypes:["tagbox","combobox","combotree","combogrid","combotreegrid","datetimebox","datebox","combo","datetimespinner","timespinner","numberspinner","spinner","slider","searchbox","numberbox","passwordbox","filebox","textbox","switchbutton"],novalidate:false,ajax:true,iframe:true,dirty:false,dirtyFields:[],url:null,queryParams:{},onSubmit:function(_5f0){ +return $(this).form("validate"); +},onProgress:function(_5f1){ +},success:function(data){ +},onBeforeLoad:function(_5f2){ +},onLoadSuccess:function(data){ +},onLoadError:function(){ +},onChange:function(_5f3){ +}}; +})(jQuery); +(function($){ +function _5f4(_5f5){ +var _5f6=$.data(_5f5,"numberbox"); +var opts=_5f6.options; +$(_5f5).addClass("numberbox-f").textbox(opts); +$(_5f5).textbox("textbox").css({imeMode:"disabled"}); +$(_5f5).attr("numberboxName",$(_5f5).attr("textboxName")); +_5f6.numberbox=$(_5f5).next(); +_5f6.numberbox.addClass("numberbox"); +var _5f7=opts.parser.call(_5f5,opts.value); +var _5f8=opts.formatter.call(_5f5,_5f7); +$(_5f5).numberbox("initValue",_5f7).numberbox("setText",_5f8); +}; +function _5f9(_5fa,_5fb){ +var _5fc=$.data(_5fa,"numberbox"); +var opts=_5fc.options; +opts.value=parseFloat(_5fb); +var _5fb=opts.parser.call(_5fa,_5fb); +var text=opts.formatter.call(_5fa,_5fb); +opts.value=_5fb; +$(_5fa).textbox("setText",text).textbox("setValue",_5fb); +text=opts.formatter.call(_5fa,$(_5fa).textbox("getValue")); +$(_5fa).textbox("setText",text); +}; +$.fn.numberbox=function(_5fd,_5fe){ +if(typeof _5fd=="string"){ +var _5ff=$.fn.numberbox.methods[_5fd]; +if(_5ff){ +return _5ff(this,_5fe); +}else{ +return this.textbox(_5fd,_5fe); +} +} +_5fd=_5fd||{}; +return this.each(function(){ +var _600=$.data(this,"numberbox"); +if(_600){ +$.extend(_600.options,_5fd); +}else{ +_600=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_5fd)}); +} +_5f4(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +var opts=jq.data("textbox")?jq.textbox("options"):{}; +return $.extend($.data(jq[0],"numberbox").options,{width:opts.width,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).textbox("cloneFrom",from); +$.data(this,"numberbox",{options:$.extend(true,{},$(from).numberbox("options"))}); +$(this).addClass("numberbox-f"); +}); +},fix:function(jq){ +return jq.each(function(){ +var opts=$(this).numberbox("options"); +opts.value=null; +var _601=opts.parser.call(this,$(this).numberbox("getText")); +$(this).numberbox("setValue",_601); +}); +},setValue:function(jq,_602){ +return jq.each(function(){ +_5f9(this,_602); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).textbox("clear"); +$(this).numberbox("options").value=""; +}); +},reset:function(jq){ +return jq.each(function(){ +$(this).textbox("reset"); +$(this).numberbox("setValue",$(this).numberbox("getValue")); +}); +}}; +$.fn.numberbox.parseOptions=function(_603){ +var t=$(_603); +return $.extend({},$.fn.textbox.parseOptions(_603),$.parser.parseOptions(_603,["decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{keypress:function(e){ +var _604=e.data.target; +var opts=$(_604).numberbox("options"); +return opts.filter.call(_604,e); +},blur:function(e){ +$(e.data.target).numberbox("fix"); +},keydown:function(e){ +if(e.keyCode==13){ +$(e.data.target).numberbox("fix"); +} +}},min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var opts=$(this).numberbox("options"); +var s=$(this).numberbox("getText"); +if(e.metaKey||e.ctrlKey){ +return true; +} +if($.inArray(String(e.which),["46","8","13","0"])>=0){ +return true; +} +var tmp=$(""); +tmp.html(String.fromCharCode(e.which)); +var c=tmp.text(); +tmp.remove(); +if(!c){ +return true; +} +if(c=="-"||c==opts.decimalSeparator){ +return (s.indexOf(c)==-1)?true:false; +}else{ +if(c==opts.groupSeparator){ +return true; +}else{ +if("0123456789".indexOf(c)>=0){ +return true; +}else{ +return false; +} +} +} +},formatter:function(_605){ +if(!_605){ +return _605; +} +_605=_605+""; +var opts=$(this).numberbox("options"); +var s1=_605,s2=""; +var dpos=_605.indexOf("."); +if(dpos>=0){ +s1=_605.substring(0,dpos); +s2=_605.substring(dpos+1,_605.length); +} +if(opts.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+opts.groupSeparator+"$2"); +} +} +if(s2){ +return opts.prefix+s1+opts.decimalSeparator+s2+opts.suffix; +}else{ +return opts.prefix+s1+opts.suffix; +} +},parser:function(s){ +s=s+""; +var opts=$(this).numberbox("options"); +if(opts.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.prefix),"g"),"")); +} +if(opts.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.suffix),"g"),"")); +} +if(parseFloat(s)!=opts.value){ +if(opts.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.groupSeparator,"g"),"")); +} +if(opts.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(opts.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (opts.min)=="number"&&valopts.max){ +val=opts.max.toFixed(opts.precision); +} +} +} +return val; +}}); +})(jQuery); +(function($){ +function _606(_607,_608){ +var opts=$.data(_607,"calendar").options; +var t=$(_607); +if(_608){ +$.extend(opts,{width:_608.width,height:_608.height}); +} +t._size(opts,t.parent()); +t.find(".calendar-body")._outerHeight(t.height()-t.find(".calendar-header")._outerHeight()); +if(t.find(".calendar-menu").is(":visible")){ +_609(_607); +} +}; +function init(_60a){ +$(_60a).addClass("calendar").html("
    "+"
    "+"
    "+"
    "+"
    "+"
    "+""+"
    "+"
    "+"
    "+"
    "+"
    "+""+""+""+"
    "+"
    "+"
    "+"
    "+"
    "); +$(_60a).bind("_resize",function(e,_60b){ +if($(this).hasClass("easyui-fluid")||_60b){ +_606(_60a); +} +return false; +}); +}; +function _60c(_60d){ +var opts=$.data(_60d,"calendar").options; +var menu=$(_60d).find(".calendar-menu"); +menu.find(".calendar-menu-year").unbind(".calendar").bind("keypress.calendar",function(e){ +if(e.keyCode==13){ +_60e(true); +} +}); +$(_60d).unbind(".calendar").bind("mouseover.calendar",function(e){ +var t=_60f(e.target); +if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){ +t.addClass("calendar-nav-hover"); +} +}).bind("mouseout.calendar",function(e){ +var t=_60f(e.target); +if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){ +t.removeClass("calendar-nav-hover"); +} +}).bind("click.calendar",function(e){ +var t=_60f(e.target); +if(t.hasClass("calendar-menu-next")||t.hasClass("calendar-nextyear")){ +_610(1); +}else{ +if(t.hasClass("calendar-menu-prev")||t.hasClass("calendar-prevyear")){ +_610(-1); +}else{ +if(t.hasClass("calendar-menu-month")){ +menu.find(".calendar-selected").removeClass("calendar-selected"); +t.addClass("calendar-selected"); +_60e(true); +}else{ +if(t.hasClass("calendar-prevmonth")){ +_611(-1); +}else{ +if(t.hasClass("calendar-nextmonth")){ +_611(1); +}else{ +if(t.hasClass("calendar-text")){ +if(menu.is(":visible")){ +menu.hide(); +}else{ +_609(_60d); +} +}else{ +if(t.hasClass("calendar-day")){ +if(t.hasClass("calendar-disabled")){ +return; +} +var _612=opts.current; +t.closest("div.calendar-body").find(".calendar-selected").removeClass("calendar-selected"); +t.addClass("calendar-selected"); +var _613=t.attr("abbr").split(","); +var y=parseInt(_613[0]); +var m=parseInt(_613[1]); +var d=parseInt(_613[2]); +opts.current=new Date(y,m-1,d); +opts.onSelect.call(_60d,opts.current); +if(!_612||_612.getTime()!=opts.current.getTime()){ +opts.onChange.call(_60d,opts.current,_612); +} +if(opts.year!=y||opts.month!=m){ +opts.year=y; +opts.month=m; +show(_60d); +} +} +} +} +} +} +} +} +}); +function _60f(t){ +var day=$(t).closest(".calendar-day"); +if(day.length){ +return day; +}else{ +return $(t); +} +}; +function _60e(_614){ +var menu=$(_60d).find(".calendar-menu"); +var year=menu.find(".calendar-menu-year").val(); +var _615=menu.find(".calendar-selected").attr("abbr"); +if(!isNaN(year)){ +opts.year=parseInt(year); +opts.month=parseInt(_615); +show(_60d); +} +if(_614){ +menu.hide(); +} +}; +function _610(_616){ +opts.year+=_616; +show(_60d); +menu.find(".calendar-menu-year").val(opts.year); +}; +function _611(_617){ +opts.month+=_617; +if(opts.month>12){ +opts.year++; +opts.month=1; +}else{ +if(opts.month<1){ +opts.year--; +opts.month=12; +} +} +show(_60d); +menu.find("td.calendar-selected").removeClass("calendar-selected"); +menu.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +}; +}; +function _609(_618){ +var opts=$.data(_618,"calendar").options; +$(_618).find(".calendar-menu").show(); +if($(_618).find(".calendar-menu-month-inner").is(":empty")){ +$(_618).find(".calendar-menu-month-inner").empty(); +var t=$("
    ").appendTo($(_618).find(".calendar-menu-month-inner")); +var idx=0; +for(var i=0;i<3;i++){ +var tr=$("").appendTo(t); +for(var j=0;j<4;j++){ +$("").html(opts.months[idx++]).attr("abbr",idx).appendTo(tr); +} +} +} +var body=$(_618).find(".calendar-body"); +var sele=$(_618).find(".calendar-menu"); +var _619=sele.find(".calendar-menu-year-inner"); +var _61a=sele.find(".calendar-menu-month-inner"); +_619.find("input").val(opts.year).focus(); +_61a.find("td.calendar-selected").removeClass("calendar-selected"); +_61a.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +sele._outerWidth(body._outerWidth()); +sele._outerHeight(body._outerHeight()); +_61a._outerHeight(sele.height()-_619._outerHeight()); +}; +function _61b(_61c,year,_61d){ +var opts=$.data(_61c,"calendar").options; +var _61e=[]; +var _61f=new Date(year,_61d,0).getDate(); +for(var i=1;i<=_61f;i++){ +_61e.push([year,_61d,i]); +} +var _620=[],week=[]; +var _621=-1; +while(_61e.length>0){ +var date=_61e.shift(); +week.push(date); +var day=new Date(date[0],date[1]-1,date[2]).getDay(); +if(_621==day){ +day=0; +}else{ +if(day==(opts.firstDay==0?7:opts.firstDay)-1){ +_620.push(week); +week=[]; +} +} +_621=day; +} +if(week.length){ +_620.push(week); +} +var _622=_620[0]; +if(_622.length<7){ +while(_622.length<7){ +var _623=_622[0]; +var date=new Date(_623[0],_623[1]-1,_623[2]-1); +_622.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +}else{ +var _623=_622[0]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_623[0],_623[1]-1,_623[2]-i); +week.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_620.unshift(week); +} +var _624=_620[_620.length-1]; +while(_624.length<7){ +var _625=_624[_624.length-1]; +var date=new Date(_625[0],_625[1]-1,_625[2]+1); +_624.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +if(_620.length<6){ +var _625=_624[_624.length-1]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_625[0],_625[1]-1,_625[2]+i); +week.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_620.push(week); +} +return _620; +}; +function show(_626){ +var opts=$.data(_626,"calendar").options; +if(opts.current&&!opts.validator.call(_626,opts.current)){ +opts.current=null; +} +var now=new Date(); +var _627=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate(); +var _628=opts.current?(opts.current.getFullYear()+","+(opts.current.getMonth()+1)+","+opts.current.getDate()):""; +var _629=6-opts.firstDay; +var _62a=_629+1; +if(_629>=7){ +_629-=7; +} +if(_62a>=7){ +_62a-=7; +} +$(_626).find(".calendar-title span").html(opts.months[opts.month-1]+" "+opts.year); +var body=$(_626).find("div.calendar-body"); +body.children("table").remove(); +var data=[""]; +data.push(""); +if(opts.showWeek){ +data.push(""); +} +for(var i=opts.firstDay;i"+opts.weeks[i]+""); +} +for(var i=0;i"+opts.weeks[i]+""); +} +data.push(""); +data.push(""); +var _62b=_61b(_626,opts.year,opts.month); +for(var i=0;i<_62b.length;i++){ +var week=_62b[i]; +var cls=""; +if(i==0){ +cls="calendar-first"; +}else{ +if(i==_62b.length-1){ +cls="calendar-last"; +} +} +data.push(""); +if(opts.showWeek){ +var _62c=opts.getWeekNumber(new Date(week[0][0],parseInt(week[0][1])-1,week[0][2])); +data.push(""); +} +for(var j=0;j"+d+""); +} +data.push(""); +} +data.push(""); +data.push("
    "+opts.weekNumberHeader+"
    "+_62c+"
    "); +body.append(data.join("")); +body.children("table.calendar-dtable").prependTo(body); +opts.onNavigate.call(_626,opts.year,opts.month); +}; +$.fn.calendar=function(_630,_631){ +if(typeof _630=="string"){ +return $.fn.calendar.methods[_630](this,_631); +} +_630=_630||{}; +return this.each(function(){ +var _632=$.data(this,"calendar"); +if(_632){ +$.extend(_632.options,_630); +}else{ +_632=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_630)}); +init(this); +} +if(_632.options.border==false){ +$(this).addClass("calendar-noborder"); +} +_606(this); +_60c(this); +show(this); +$(this).find("div.calendar-menu").hide(); +}); +}; +$.fn.calendar.methods={options:function(jq){ +return $.data(jq[0],"calendar").options; +},resize:function(jq,_633){ +return jq.each(function(){ +_606(this,_633); +}); +},moveTo:function(jq,date){ +return jq.each(function(){ +if(!date){ +var now=new Date(); +$(this).calendar({year:now.getFullYear(),month:now.getMonth()+1,current:date}); +return; +} +var opts=$(this).calendar("options"); +if(opts.validator.call(this,date)){ +var _634=opts.current; +$(this).calendar({year:date.getFullYear(),month:date.getMonth()+1,current:date}); +if(!_634||_634.getTime()!=date.getTime()){ +opts.onChange.call(this,opts.current,_634); +} +} +}); +}}; +$.fn.calendar.parseOptions=function(_635){ +var t=$(_635); +return $.extend({},$.parser.parseOptions(_635,["weekNumberHeader",{firstDay:"number",fit:"boolean",border:"boolean",showWeek:"boolean"}])); +}; +$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,showWeek:false,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:(function(){ +var d=new Date(); +return new Date(d.getFullYear(),d.getMonth(),d.getDate()); +})(),weekNumberHeader:"",getWeekNumber:function(date){ +var _636=new Date(date.getTime()); +_636.setDate(_636.getDate()+4-(_636.getDay()||7)); +var time=_636.getTime(); +_636.setMonth(0); +_636.setDate(1); +return Math.floor(Math.round((time-_636)/86400000)/7)+1; +},formatter:function(date){ +return date.getDate(); +},styler:function(date){ +return ""; +},validator:function(date){ +return true; +},onSelect:function(date){ +},onChange:function(_637,_638){ +},onNavigate:function(year,_639){ +}}; +})(jQuery); +(function($){ +function _63a(_63b){ +var _63c=$.data(_63b,"spinner"); +var opts=_63c.options; +var _63d=$.extend(true,[],opts.icons); +if(opts.spinAlign=="left"||opts.spinAlign=="right"){ +opts.spinArrow=true; +opts.iconAlign=opts.spinAlign; +var _63e={iconCls:"spinner-button-updown",handler:function(e){ +var spin=$(e.target).closest(".spinner-arrow-up,.spinner-arrow-down"); +_648(e.data.target,spin.hasClass("spinner-arrow-down")); +}}; +if(opts.spinAlign=="left"){ +_63d.unshift(_63e); +}else{ +_63d.push(_63e); +} +}else{ +opts.spinArrow=false; +if(opts.spinAlign=="vertical"){ +if(opts.buttonAlign!="top"){ +opts.buttonAlign="bottom"; +} +opts.clsLeft="textbox-button-bottom"; +opts.clsRight="textbox-button-top"; +}else{ +opts.clsLeft="textbox-button-left"; +opts.clsRight="textbox-button-right"; +} +} +$(_63b).addClass("spinner-f").textbox($.extend({},opts,{icons:_63d,doSize:false,onResize:function(_63f,_640){ +if(!opts.spinArrow){ +var span=$(this).next(); +var btn=span.find(".textbox-button:not(.spinner-button)"); +if(btn.length){ +var _641=btn.outerWidth(); +var _642=btn.outerHeight(); +var _643=span.find(".spinner-button."+opts.clsLeft); +var _644=span.find(".spinner-button."+opts.clsRight); +if(opts.buttonAlign=="right"){ +_644.css("marginRight",_641+"px"); +}else{ +if(opts.buttonAlign=="left"){ +_643.css("marginLeft",_641+"px"); +}else{ +if(opts.buttonAlign=="top"){ +_644.css("marginTop",_642+"px"); +}else{ +_643.css("marginBottom",_642+"px"); +} +} +} +} +} +opts.onResize.call(this,_63f,_640); +}})); +$(_63b).attr("spinnerName",$(_63b).attr("textboxName")); +_63c.spinner=$(_63b).next(); +_63c.spinner.addClass("spinner"); +if(opts.spinArrow){ +var _645=_63c.spinner.find(".spinner-button-updown"); +_645.append(""+""+""+""+""+""); +}else{ +var _646=$("").addClass(opts.clsLeft).appendTo(_63c.spinner); +var _647=$("").addClass(opts.clsRight).appendTo(_63c.spinner); +_646.linkbutton({iconCls:opts.reversed?"spinner-button-up":"spinner-button-down",onClick:function(){ +_648(_63b,!opts.reversed); +}}); +_647.linkbutton({iconCls:opts.reversed?"spinner-button-down":"spinner-button-up",onClick:function(){ +_648(_63b,opts.reversed); +}}); +if(opts.disabled){ +$(_63b).spinner("disable"); +} +if(opts.readonly){ +$(_63b).spinner("readonly"); +} +} +$(_63b).spinner("resize"); +}; +function _648(_649,down){ +var opts=$(_649).spinner("options"); +opts.spin.call(_649,down); +opts[down?"onSpinDown":"onSpinUp"].call(_649); +$(_649).spinner("validate"); +}; +$.fn.spinner=function(_64a,_64b){ +if(typeof _64a=="string"){ +var _64c=$.fn.spinner.methods[_64a]; +if(_64c){ +return _64c(this,_64b); +}else{ +return this.textbox(_64a,_64b); +} +} +_64a=_64a||{}; +return this.each(function(){ +var _64d=$.data(this,"spinner"); +if(_64d){ +$.extend(_64d.options,_64a); +}else{ +_64d=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_64a)}); +} +_63a(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var opts=jq.textbox("options"); +return $.extend($.data(jq[0],"spinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +}}; +$.fn.spinner.parseOptions=function(_64e){ +return $.extend({},$.fn.textbox.parseOptions(_64e),$.parser.parseOptions(_64e,["min","max","spinAlign",{increment:"number",reversed:"boolean"}])); +}; +$.fn.spinner.defaults=$.extend({},$.fn.textbox.defaults,{min:null,max:null,increment:1,spinAlign:"right",reversed:false,spin:function(down){ +},onSpinUp:function(){ +},onSpinDown:function(){ +}}); +})(jQuery); +(function($){ +function _64f(_650){ +$(_650).addClass("numberspinner-f"); +var opts=$.data(_650,"numberspinner").options; +$(_650).numberbox($.extend({},opts,{doSize:false})).spinner(opts); +$(_650).numberbox("setValue",opts.value); +}; +function _651(_652,down){ +var opts=$.data(_652,"numberspinner").options; +var v=parseFloat($(_652).numberbox("getValue")||opts.value)||0; +if(down){ +v-=opts.increment; +}else{ +v+=opts.increment; +} +$(_652).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_653,_654){ +if(typeof _653=="string"){ +var _655=$.fn.numberspinner.methods[_653]; +if(_655){ +return _655(this,_654); +}else{ +return this.numberbox(_653,_654); +} +} +_653=_653||{}; +return this.each(function(){ +var _656=$.data(this,"numberspinner"); +if(_656){ +$.extend(_656.options,_653); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_653)}); +} +_64f(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var opts=jq.numberbox("options"); +return $.extend($.data(jq[0],"numberspinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +}}; +$.fn.numberspinner.parseOptions=function(_657){ +return $.extend({},$.fn.spinner.parseOptions(_657),$.fn.numberbox.parseOptions(_657),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(down){ +_651(this,down); +}}); +})(jQuery); +(function($){ +function _658(_659){ +var opts=$.data(_659,"timespinner").options; +$(_659).addClass("timespinner-f").spinner(opts); +var _65a=opts.formatter.call(_659,opts.parser.call(_659,opts.value)); +$(_659).timespinner("initValue",_65a); +}; +function _65b(e){ +var _65c=e.data.target; +var opts=$.data(_65c,"timespinner").options; +var _65d=$(_65c).timespinner("getSelectionStart"); +for(var i=0;i=_65e[0]&&_65d<=_65e[1]){ +_65f(_65c,i); +return; +} +} +}; +function _65f(_660,_661){ +var opts=$.data(_660,"timespinner").options; +if(_661!=undefined){ +opts.highlight=_661; +} +var _662=opts.selections[opts.highlight]; +if(_662){ +var tb=$(_660).timespinner("textbox"); +$(_660).timespinner("setSelectionRange",{start:_662[0],end:_662[1]}); +tb.focus(); +} +}; +function _663(_664,_665){ +var opts=$.data(_664,"timespinner").options; +var _665=opts.parser.call(_664,_665); +var text=opts.formatter.call(_664,_665); +$(_664).spinner("setValue",text); +}; +function _666(_667,down){ +var opts=$.data(_667,"timespinner").options; +var s=$(_667).timespinner("getValue"); +var _668=opts.selections[opts.highlight]; +var s1=s.substring(0,_668[0]); +var s2=s.substring(_668[0],_668[1]); +var s3=s.substring(_668[1]); +var v=s1+((parseInt(s2,10)||0)+opts.increment*(down?-1:1))+s3; +$(_667).timespinner("setValue",v); +_65f(_667); +}; +$.fn.timespinner=function(_669,_66a){ +if(typeof _669=="string"){ +var _66b=$.fn.timespinner.methods[_669]; +if(_66b){ +return _66b(this,_66a); +}else{ +return this.spinner(_669,_66a); +} +} +_669=_669||{}; +return this.each(function(){ +var _66c=$.data(this,"timespinner"); +if(_66c){ +$.extend(_66c.options,_669); +}else{ +$.data(this,"timespinner",{options:$.extend({},$.fn.timespinner.defaults,$.fn.timespinner.parseOptions(this),_669)}); +} +_658(this); +}); +}; +$.fn.timespinner.methods={options:function(jq){ +var opts=jq.data("spinner")?jq.spinner("options"):{}; +return $.extend($.data(jq[0],"timespinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},setValue:function(jq,_66d){ +return jq.each(function(){ +_663(this,_66d); +}); +},getHours:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[0],10); +},getMinutes:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[1],10); +},getSeconds:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[2],10)||0; +}}; +$.fn.timespinner.parseOptions=function(_66e){ +return $.extend({},$.fn.spinner.parseOptions(_66e),$.parser.parseOptions(_66e,["separator",{showSeconds:"boolean",highlight:"number"}])); +}; +$.fn.timespinner.defaults=$.extend({},$.fn.spinner.defaults,{inputEvents:$.extend({},$.fn.spinner.defaults.inputEvents,{click:function(e){ +_65b.call(this,e); +},blur:function(e){ +var t=$(e.data.target); +t.timespinner("setValue",t.timespinner("getText")); +},keydown:function(e){ +if(e.keyCode==13){ +var t=$(e.data.target); +t.timespinner("setValue",t.timespinner("getText")); +} +}}),formatter:function(date){ +if(!date){ +return ""; +} +var opts=$(this).timespinner("options"); +var tt=[_66f(date.getHours()),_66f(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_66f(date.getSeconds())); +} +return tt.join(opts.separator); +function _66f(_670){ +return (_670<10?"0":"")+_670; +}; +},parser:function(s){ +var opts=$(this).timespinner("options"); +var date=_671(s); +if(date){ +var min=_671(opts.min); +var max=_671(opts.max); +if(min&&min>date){ +date=min; +} +if(max&&max"]; +for(var i=0;i<_686.length;i++){ +_685.cache[_686[i][0]]={width:_686[i][1]}; +} +var _687=0; +for(var s in _685.cache){ +var item=_685.cache[s]; +item.index=_687++; +ss.push(s+"{width:"+item.width+"}"); +} +ss.push(""); +$(ss.join("\n")).appendTo(cc); +cc.children("style[easyui]:not(:last)").remove(); +},getRule:function(_688){ +var _689=cc.children("style[easyui]:last")[0]; +var _68a=_689.styleSheet?_689.styleSheet:(_689.sheet||document.styleSheets[document.styleSheets.length-1]); +var _68b=_68a.cssRules||_68a.rules; +return _68b[_688]; +},set:function(_68c,_68d){ +var item=_685.cache[_68c]; +if(item){ +item.width=_68d; +var rule=this.getRule(item.index); +if(rule){ +rule.style["width"]=_68d; +} +} +},remove:function(_68e){ +var tmp=[]; +for(var s in _685.cache){ +if(s.indexOf(_68e)==-1){ +tmp.push([s,_685.cache[s].width]); +} +} +_685.cache={}; +this.add(tmp); +},dirty:function(_68f){ +if(_68f){ +_685.dirty.push(_68f); +} +},clean:function(){ +for(var i=0;i<_685.dirty.length;i++){ +this.remove(_685.dirty[i]); +} +_685.dirty=[]; +}}; +}; +function _690(_691,_692){ +var _693=$.data(_691,"datagrid"); +var opts=_693.options; +var _694=_693.panel; +if(_692){ +$.extend(opts,_692); +} +if(opts.fit==true){ +var p=_694.panel("panel").parent(); +opts.width=p.width(); +opts.height=p.height(); +} +_694.panel("resize",opts); +}; +function _695(_696){ +var _697=$.data(_696,"datagrid"); +var opts=_697.options; +var dc=_697.dc; +var wrap=_697.panel; +var _698=wrap.width(); +var _699=wrap.height(); +var view=dc.view; +var _69a=dc.view1; +var _69b=dc.view2; +var _69c=_69a.children("div.datagrid-header"); +var _69d=_69b.children("div.datagrid-header"); +var _69e=_69c.find("table"); +var _69f=_69d.find("table"); +view.width(_698); +var _6a0=_69c.children("div.datagrid-header-inner").show(); +_69a.width(_6a0.find("table").width()); +if(!opts.showHeader){ +_6a0.hide(); +} +_69b.width(_698-_69a._outerWidth()); +_69a.children()._outerWidth(_69a.width()); +_69b.children()._outerWidth(_69b.width()); +var all=_69c.add(_69d).add(_69e).add(_69f); +all.css("height",""); +var hh=Math.max(_69e.height(),_69f.height()); +all._outerHeight(hh); +view.children(".datagrid-empty").css("top",hh+"px"); +dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); +var _6a1=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); +var _6a2=_6a1+_69d._outerHeight()+_69b.children(".datagrid-footer")._outerHeight(); +wrap.children(":not(.datagrid-view,.datagrid-mask,.datagrid-mask-msg)").each(function(){ +_6a2+=$(this)._outerHeight(); +}); +var _6a3=wrap.outerHeight()-wrap.height(); +var _6a4=wrap._size("minHeight")||""; +var _6a5=wrap._size("maxHeight")||""; +_69a.add(_69b).children("div.datagrid-body").css({marginTop:_6a1,height:(isNaN(parseInt(opts.height))?"":(_699-_6a2)),minHeight:(_6a4?_6a4-_6a3-_6a2:""),maxHeight:(_6a5?_6a5-_6a3-_6a2:"")}); +view.height(_69b.height()); +}; +function _6a6(_6a7,_6a8,_6a9){ +var rows=$.data(_6a7,"datagrid").data.rows; +var opts=$.data(_6a7,"datagrid").options; +var dc=$.data(_6a7,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight||_6a9)){ +if(_6a8!=undefined){ +var tr1=opts.finder.getTr(_6a7,_6a8,"body",1); +var tr2=opts.finder.getTr(_6a7,_6a8,"body",2); +_6aa(tr1,tr2); +}else{ +var tr1=opts.finder.getTr(_6a7,0,"allbody",1); +var tr2=opts.finder.getTr(_6a7,0,"allbody",2); +_6aa(tr1,tr2); +if(opts.showFooter){ +var tr1=opts.finder.getTr(_6a7,0,"allfooter",1); +var tr2=opts.finder.getTr(_6a7,0,"allfooter",2); +_6aa(tr1,tr2); +} +} +} +_695(_6a7); +if(opts.height=="auto"){ +var _6ab=dc.body1.parent(); +var _6ac=dc.body2; +var _6ad=_6ae(_6ac); +var _6af=_6ad.height; +if(_6ad.width>_6ac.width()){ +_6af+=18; +} +_6af-=parseInt(_6ac.css("marginTop"))||0; +_6ab.height(_6af); +_6ac.height(_6af); +dc.view.height(dc.view2.height()); +} +dc.body2.triggerHandler("scroll"); +function _6aa(trs1,trs2){ +for(var i=0;i"); +} +_6b7(true); +_6b7(false); +_695(_6b4); +function _6b7(_6b8){ +var _6b9=_6b8?1:2; +var tr=opts.finder.getTr(_6b4,_6b5,"body",_6b9); +(_6b8?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); +}; +}; +function _6ba(_6bb,_6bc){ +function _6bd(){ +var _6be=[]; +var _6bf=[]; +$(_6bb).children("thead").each(function(){ +var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); +$(this).find("tr").each(function(){ +var cols=[]; +$(this).find("th").each(function(){ +var th=$(this); +var col=$.extend({},$.parser.parseOptions(this,["id","field","align","halign","order","width",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); +if(col.width&&String(col.width).indexOf("%")==-1){ +col.width=parseInt(col.width); +} +if(th.attr("editor")){ +var s=$.trim(th.attr("editor")); +if(s.substr(0,1)=="{"){ +col.editor=eval("("+s+")"); +}else{ +col.editor=s; +} +} +cols.push(col); +}); +opt.frozen?_6be.push(cols):_6bf.push(cols); +}); +}); +return [_6be,_6bf]; +}; +var _6c0=$("
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+""+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+"
    "+""+"
    "+"
    "+"
    "+"
    ").insertAfter(_6bb); +_6c0.panel({doSize:false,cls:"datagrid"}); +$(_6bb).addClass("datagrid-f").hide().appendTo(_6c0.children("div.datagrid-view")); +var cc=_6bd(); +var view=_6c0.children("div.datagrid-view"); +var _6c1=view.children("div.datagrid-view1"); +var _6c2=view.children("div.datagrid-view2"); +return {panel:_6c0,frozenColumns:cc[0],columns:cc[1],dc:{view:view,view1:_6c1,view2:_6c2,header1:_6c1.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_6c2.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_6c1.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_6c2.children("div.datagrid-body"),footer1:_6c1.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_6c2.children("div.datagrid-footer").children("div.datagrid-footer-inner")}}; +}; +function _6c3(_6c4){ +var _6c5=$.data(_6c4,"datagrid"); +var opts=_6c5.options; +var dc=_6c5.dc; +var _6c6=_6c5.panel; +_6c5.ss=$(_6c4).datagrid("createStyleSheet"); +_6c6.panel($.extend({},opts,{id:null,doSize:false,onResize:function(_6c7,_6c8){ +if($.data(_6c4,"datagrid")){ +_695(_6c4); +$(_6c4).datagrid("fitColumns"); +opts.onResize.call(_6c6,_6c7,_6c8); +} +},onExpand:function(){ +if($.data(_6c4,"datagrid")){ +$(_6c4).datagrid("fixRowHeight").datagrid("fitColumns"); +opts.onExpand.call(_6c6); +} +}})); +_6c5.rowIdPrefix="datagrid-row-r"+(++_67b); +_6c5.cellClassPrefix="datagrid-cell-c"+_67b; +_6c9(dc.header1,opts.frozenColumns,true); +_6c9(dc.header2,opts.columns,false); +_6ca(); +dc.header1.add(dc.header2).css("display",opts.showHeader?"block":"none"); +dc.footer1.add(dc.footer2).css("display",opts.showFooter?"block":"none"); +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$("div.datagrid-toolbar",_6c6).remove(); +var tb=$("
    ").prependTo(_6c6); +var tr=tb.find("tr"); +for(var i=0;i
    ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("datagrid-toolbar").prependTo(_6c6); +$(opts.toolbar).show(); +} +}else{ +$("div.datagrid-toolbar",_6c6).remove(); +} +$("div.datagrid-pager",_6c6).remove(); +if(opts.pagination){ +var _6cb=$("
    "); +if(opts.pagePosition=="bottom"){ +_6cb.appendTo(_6c6); +}else{ +if(opts.pagePosition=="top"){ +_6cb.addClass("datagrid-pager-top").prependTo(_6c6); +}else{ +var ptop=$("
    ").prependTo(_6c6); +_6cb.appendTo(_6c6); +_6cb=_6cb.add(ptop); +} +} +_6cb.pagination({total:0,pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_6cc,_6cd){ +opts.pageNumber=_6cc||1; +opts.pageSize=_6cd; +_6cb.pagination("refresh",{pageNumber:_6cc,pageSize:_6cd}); +_715(_6c4); +}}); +opts.pageSize=_6cb.pagination("options").pageSize; +} +function _6c9(_6ce,_6cf,_6d0){ +if(!_6cf){ +return; +} +$(_6ce).show(); +$(_6ce).empty(); +var tmp=$("
    ").appendTo("body"); +tmp._outerWidth(99); +var _6d1=100-parseInt(tmp[0].style.width); +tmp.remove(); +var _6d2=[]; +var _6d3=[]; +var _6d4=[]; +if(opts.sortName){ +_6d2=opts.sortName.split(","); +_6d3=opts.sortOrder.split(","); +} +var t=$("
    ").appendTo(_6ce); +for(var i=0;i<_6cf.length;i++){ +var tr=$("").appendTo($("tbody",t)); +var cols=_6cf[i]; +for(var j=0;j").appendTo(tr); +if(col.checkbox){ +td.attr("field",col.field); +$("
    ").html("").appendTo(td); +}else{ +if(col.field){ +td.attr("field",col.field); +td.append("
    "); +td.find("span:first").html(col.title); +var cell=td.find("div.datagrid-cell"); +var pos=_67c(_6d2,col.field); +if(pos>=0){ +cell.addClass("datagrid-sort-"+_6d3[pos]); +} +if(col.sortable){ +cell.addClass("datagrid-sort"); +} +if(col.resizable==false){ +cell.attr("resizable","false"); +} +if(col.width){ +var _6d5=$.parser.parseValue("width",col.width,dc.view,opts.scrollbarSize+(opts.rownumbers?opts.rownumberWidth:0)); +col.deltaWidth=_6d1; +col.boxWidth=_6d5-_6d1; +}else{ +col.auto=true; +} +cell.css("text-align",(col.halign||col.align||"")); +col.cellClass=_6c5.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-"); +cell.addClass(col.cellClass); +}else{ +$("
    ").html(col.title).appendTo(td); +} +} +if(col.hidden){ +td.hide(); +_6d4.push(col.field); +} +} +} +if(_6d0&&opts.rownumbers){ +var td=$("
    "); +if($("tr",t).length==0){ +td.wrap("").parent().appendTo($("tbody",t)); +}else{ +td.prependTo($("tr:first",t)); +} +} +for(var i=0;i<_6d4.length;i++){ +_717(_6c4,_6d4[i],-1); +} +}; +function _6ca(){ +var _6d6=[[".datagrid-header-rownumber",(opts.rownumberWidth-1)+"px"],[".datagrid-cell-rownumber",(opts.rownumberWidth-1)+"px"]]; +var _6d7=_6d8(_6c4,true).concat(_6d8(_6c4)); +for(var i=0;i<_6d7.length;i++){ +var col=_6d9(_6c4,_6d7[i]); +if(col&&!col.checkbox){ +_6d6.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]); +} +} +_6c5.ss.add(_6d6); +_6c5.ss.dirty(_6c5.cellSelectorPrefix); +_6c5.cellSelectorPrefix="."+_6c5.cellClassPrefix; +}; +}; +function _6da(_6db){ +var _6dc=$.data(_6db,"datagrid"); +var _6dd=_6dc.panel; +var opts=_6dc.options; +var dc=_6dc.dc; +var _6de=dc.header1.add(dc.header2); +_6de.unbind(".datagrid"); +for(var _6df in opts.headerEvents){ +_6de.bind(_6df+".datagrid",opts.headerEvents[_6df]); +} +var _6e0=_6de.find("div.datagrid-cell"); +var _6e1=opts.resizeHandle=="right"?"e":(opts.resizeHandle=="left"?"w":"e,w"); +_6e0.each(function(){ +$(this).resizable({handles:_6e1,edge:opts.resizeEdge,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ +_6dc.resizing=true; +_6de.css("cursor",$("body").css("cursor")); +if(!_6dc.proxy){ +_6dc.proxy=$("
    ").appendTo(dc.view); +} +if(e.data.dir=="e"){ +e.data.deltaEdge=$(this)._outerWidth()-(e.pageX-$(this).offset().left); +}else{ +e.data.deltaEdge=$(this).offset().left-e.pageX-1; +} +_6dc.proxy.css({left:e.pageX-$(_6dd).offset().left-1+e.data.deltaEdge,display:"none"}); +setTimeout(function(){ +if(_6dc.proxy){ +_6dc.proxy.show(); +} +},500); +},onResize:function(e){ +_6dc.proxy.css({left:e.pageX-$(_6dd).offset().left-1+e.data.deltaEdge,display:"block"}); +return false; +},onStopResize:function(e){ +_6de.css("cursor",""); +$(this).css("height",""); +var _6e2=$(this).parent().attr("field"); +var col=_6d9(_6db,_6e2); +col.width=$(this)._outerWidth()+1; +col.boxWidth=col.width-col.deltaWidth; +col.auto=undefined; +$(this).css("width",""); +$(_6db).datagrid("fixColumnSize",_6e2); +_6dc.proxy.remove(); +_6dc.proxy=null; +if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ +_695(_6db); +} +$(_6db).datagrid("fitColumns"); +opts.onResizeColumn.call(_6db,_6e2,col.width); +setTimeout(function(){ +_6dc.resizing=false; +},0); +}}); +}); +var bb=dc.body1.add(dc.body2); +bb.unbind(); +for(var _6df in opts.rowEvents){ +bb.bind(_6df,opts.rowEvents[_6df]); +} +dc.body1.bind("mousewheel DOMMouseScroll",function(e){ +e.preventDefault(); +var e1=e.originalEvent||window.event; +var _6e3=e1.wheelDelta||e1.detail*(-1); +if("deltaY" in e1){ +_6e3=e1.deltaY*-1; +} +var dg=$(e.target).closest("div.datagrid-view").children(".datagrid-f"); +var dc=dg.data("datagrid").dc; +dc.body2.scrollTop(dc.body2.scrollTop()-_6e3); +}); +dc.body2.bind("scroll",function(){ +var b1=dc.view1.children("div.datagrid-body"); +b1.scrollTop($(this).scrollTop()); +var c1=dc.body1.children(":first"); +var c2=dc.body2.children(":first"); +if(c1.length&&c2.length){ +var top1=c1.offset().top; +var top2=c2.offset().top; +if(top1!=top2){ +b1.scrollTop(b1.scrollTop()+top1-top2); +} +} +dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); +dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); +}); +}; +function _6e4(_6e5){ +return function(e){ +var td=$(e.target).closest("td[field]"); +if(td.length){ +var _6e6=_6e7(td); +if(!$(_6e6).data("datagrid").resizing&&_6e5){ +td.addClass("datagrid-header-over"); +}else{ +td.removeClass("datagrid-header-over"); +} +} +}; +}; +function _6e8(e){ +var _6e9=_6e7(e.target); +var opts=$(_6e9).datagrid("options"); +var ck=$(e.target).closest("input[type=checkbox]"); +if(ck.length){ +if(opts.singleSelect&&opts.selectOnCheck){ +return false; +} +if(ck.is(":checked")){ +_6ea(_6e9); +}else{ +_6eb(_6e9); +} +e.stopPropagation(); +}else{ +var cell=$(e.target).closest(".datagrid-cell"); +if(cell.length){ +var p1=cell.offset().left+5; +var p2=cell.offset().left+cell._outerWidth()-5; +if(e.pageXp1){ +_6ec(_6e9,cell.parent().attr("field")); +} +} +} +}; +function _6ed(e){ +var _6ee=_6e7(e.target); +var opts=$(_6ee).datagrid("options"); +var cell=$(e.target).closest(".datagrid-cell"); +if(cell.length){ +var p1=cell.offset().left+5; +var p2=cell.offset().left+cell._outerWidth()-5; +var cond=opts.resizeHandle=="right"?(e.pageX>p2):(opts.resizeHandle=="left"?(e.pageXp2)); +if(cond){ +var _6ef=cell.parent().attr("field"); +var col=_6d9(_6ee,_6ef); +if(col.resizable==false){ +return; +} +$(_6ee).datagrid("autoSizeColumn",_6ef); +col.auto=false; +} +} +}; +function _6f0(e){ +var _6f1=_6e7(e.target); +var opts=$(_6f1).datagrid("options"); +var td=$(e.target).closest("td[field]"); +opts.onHeaderContextMenu.call(_6f1,e,td.attr("field")); +}; +function _6f2(_6f3){ +return function(e){ +var tr=_6f4(e.target); +if(!tr){ +return; +} +var _6f5=_6e7(tr); +if($.data(_6f5,"datagrid").resizing){ +return; +} +var _6f6=_6f7(tr); +if(_6f3){ +_6f8(_6f5,_6f6); +}else{ +var opts=$.data(_6f5,"datagrid").options; +opts.finder.getTr(_6f5,_6f6).removeClass("datagrid-row-over"); +} +}; +}; +function _6f9(e){ +var tr=_6f4(e.target); +if(!tr){ +return; +} +var _6fa=_6e7(tr); +var opts=$.data(_6fa,"datagrid").options; +var _6fb=_6f7(tr); +var tt=$(e.target); +if(tt.parent().hasClass("datagrid-cell-check")){ +if(opts.singleSelect&&opts.selectOnCheck){ +tt._propAttr("checked",!tt.is(":checked")); +_6fc(_6fa,_6fb); +}else{ +if(tt.is(":checked")){ +tt._propAttr("checked",false); +_6fc(_6fa,_6fb); +}else{ +tt._propAttr("checked",true); +_6fd(_6fa,_6fb); +} +} +}else{ +var row=opts.finder.getRow(_6fa,_6fb); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _6fe=td.attr("field"); +opts.onClickCell.call(_6fa,_6fb,_6fe,row[_6fe]); +} +if(opts.singleSelect==true){ +_6ff(_6fa,_6fb); +}else{ +if(opts.ctrlSelect){ +if(e.metaKey||e.ctrlKey){ +if(tr.hasClass("datagrid-row-selected")){ +_700(_6fa,_6fb); +}else{ +_6ff(_6fa,_6fb); +} +}else{ +if(e.shiftKey){ +$(_6fa).datagrid("clearSelections"); +var _701=Math.min(opts.lastSelectedIndex||0,_6fb); +var _702=Math.max(opts.lastSelectedIndex||0,_6fb); +for(var i=_701;i<=_702;i++){ +_6ff(_6fa,i); +} +}else{ +$(_6fa).datagrid("clearSelections"); +_6ff(_6fa,_6fb); +opts.lastSelectedIndex=_6fb; +} +} +}else{ +if(tr.hasClass("datagrid-row-selected")){ +_700(_6fa,_6fb); +}else{ +_6ff(_6fa,_6fb); +} +} +} +opts.onClickRow.apply(_6fa,_67f(_6fa,[_6fb,row])); +} +}; +function _703(e){ +var tr=_6f4(e.target); +if(!tr){ +return; +} +var _704=_6e7(tr); +var opts=$.data(_704,"datagrid").options; +var _705=_6f7(tr); +var row=opts.finder.getRow(_704,_705); +var td=$(e.target).closest("td[field]",tr); +if(td.length){ +var _706=td.attr("field"); +opts.onDblClickCell.call(_704,_705,_706,row[_706]); +} +opts.onDblClickRow.apply(_704,_67f(_704,[_705,row])); +}; +function _707(e){ +var tr=_6f4(e.target); +if(tr){ +var _708=_6e7(tr); +var opts=$.data(_708,"datagrid").options; +var _709=_6f7(tr); +var row=opts.finder.getRow(_708,_709); +opts.onRowContextMenu.call(_708,e,_709,row); +}else{ +var body=_6f4(e.target,".datagrid-body"); +if(body){ +var _708=_6e7(body); +var opts=$.data(_708,"datagrid").options; +opts.onRowContextMenu.call(_708,e,-1,null); +} +} +}; +function _6e7(t){ +return $(t).closest("div.datagrid-view").children(".datagrid-f")[0]; +}; +function _6f4(t,_70a){ +var tr=$(t).closest(_70a||"tr.datagrid-row"); +if(tr.length&&tr.parent().length){ +return tr; +}else{ +return undefined; +} +}; +function _6f7(tr){ +if(tr.attr("datagrid-row-index")){ +return parseInt(tr.attr("datagrid-row-index")); +}else{ +return tr.attr("node-id"); +} +}; +function _6ec(_70b,_70c){ +var _70d=$.data(_70b,"datagrid"); +var opts=_70d.options; +_70c=_70c||{}; +var _70e={sortName:opts.sortName,sortOrder:opts.sortOrder}; +if(typeof _70c=="object"){ +$.extend(_70e,_70c); +} +var _70f=[]; +var _710=[]; +if(_70e.sortName){ +_70f=_70e.sortName.split(","); +_710=_70e.sortOrder.split(","); +} +if(typeof _70c=="string"){ +var _711=_70c; +var col=_6d9(_70b,_711); +if(!col.sortable||_70d.resizing){ +return; +} +var _712=col.order||"asc"; +var pos=_67c(_70f,_711); +if(pos>=0){ +var _713=_710[pos]=="asc"?"desc":"asc"; +if(opts.multiSort&&_713==_712){ +_70f.splice(pos,1); +_710.splice(pos,1); +}else{ +_710[pos]=_713; +} +}else{ +if(opts.multiSort){ +_70f.push(_711); +_710.push(_712); +}else{ +_70f=[_711]; +_710=[_712]; +} +} +_70e.sortName=_70f.join(","); +_70e.sortOrder=_710.join(","); +} +if(opts.onBeforeSortColumn.call(_70b,_70e.sortName,_70e.sortOrder)==false){ +return; +} +$.extend(opts,_70e); +var dc=_70d.dc; +var _714=dc.header1.add(dc.header2); +_714.find("div.datagrid-cell").removeClass("datagrid-sort-asc datagrid-sort-desc"); +for(var i=0;i<_70f.length;i++){ +var col=_6d9(_70b,_70f[i]); +_714.find("div."+col.cellClass).addClass("datagrid-sort-"+_710[i]); +} +if(opts.remoteSort){ +_715(_70b); +}else{ +_716(_70b,$(_70b).datagrid("getData")); +} +opts.onSortColumn.call(_70b,opts.sortName,opts.sortOrder); +}; +function _717(_718,_719,_71a){ +_71b(true); +_71b(false); +function _71b(_71c){ +var aa=_71d(_718,_71c); +if(aa.length){ +var _71e=aa[aa.length-1]; +var _71f=_67c(_71e,_719); +if(_71f>=0){ +for(var _720=0;_720=_725.find("table").width()){ +dc.body2.css("overflow-x","hidden"); +} +function _728(){ +if(!opts.fitColumns){ +return; +} +if(!_724.leftWidth){ +_724.leftWidth=0; +} +var _729=0; +var cc=[]; +var _72a=_6d8(_723,false); +for(var i=0;i<_72a.length;i++){ +var col=_6d9(_723,_72a[i]); +if(_72b(col)){ +_729+=col.width; +cc.push({field:col.field,col:col,addingWidth:0}); +} +} +if(!_729){ +return; +} +cc[cc.length-1].addingWidth-=_724.leftWidth; +var _72c=_725.children("div.datagrid-header-inner").show(); +var _72d=_725.width()-_725.find("table").width()-opts.scrollbarSize+_724.leftWidth; +var rate=_72d/_729; +if(!opts.showHeader){ +_72c.hide(); +} +for(var i=0;i0){ +c.col.boxWidth+=c.addingWidth; +c.col.width+=c.addingWidth; +} +} +_724.leftWidth=_72d; +$(_723).datagrid("fixColumnSize"); +}; +function _727(){ +var _72f=false; +var _730=_6d8(_723,true).concat(_6d8(_723,false)); +$.map(_730,function(_731){ +var col=_6d9(_723,_731); +if(String(col.width||"").indexOf("%")>=0){ +var _732=$.parser.parseValue("width",col.width,dc.view,opts.scrollbarSize+(opts.rownumbers?opts.rownumberWidth:0))-col.deltaWidth; +if(_732>0){ +col.boxWidth=_732; +_72f=true; +} +} +}); +if(_72f){ +$(_723).datagrid("fixColumnSize"); +} +}; +function _726(fit){ +var _733=dc.header1.add(dc.header2).find(".datagrid-cell-group"); +if(_733.length){ +_733.each(function(){ +$(this)._outerWidth(fit?$(this).parent().width():10); +}); +if(fit){ +_695(_723); +} +} +}; +function _72b(col){ +if(String(col.width||"").indexOf("%")>=0){ +return false; +} +if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){ +return true; +} +}; +}; +function _734(_735,_736){ +var _737=$.data(_735,"datagrid"); +var opts=_737.options; +var dc=_737.dc; +var tmp=$("
    ").appendTo("body"); +if(_736){ +_690(_736); +$(_735).datagrid("fitColumns"); +}else{ +var _738=false; +var _739=_6d8(_735,true).concat(_6d8(_735,false)); +for(var i=0;i<_739.length;i++){ +var _736=_739[i]; +var col=_6d9(_735,_736); +if(col.auto){ +_690(_736); +_738=true; +} +} +if(_738){ +$(_735).datagrid("fitColumns"); +} +} +tmp.remove(); +function _690(_73a){ +var _73b=dc.view.find("div.datagrid-header td[field=\""+_73a+"\"] div.datagrid-cell"); +_73b.css("width",""); +var col=$(_735).datagrid("getColumnOption",_73a); +col.width=undefined; +col.boxWidth=undefined; +col.auto=true; +$(_735).datagrid("fixColumnSize",_73a); +var _73c=Math.max(_73d("header"),_73d("allbody"),_73d("allfooter"))+1; +_73b._outerWidth(_73c-1); +col.width=_73c; +col.boxWidth=parseInt(_73b[0].style.width); +col.deltaWidth=_73c-col.boxWidth; +_73b.css("width",""); +$(_735).datagrid("fixColumnSize",_73a); +opts.onResizeColumn.call(_735,_73a,col.width); +function _73d(type){ +var _73e=0; +if(type=="header"){ +_73e=_73f(_73b); +}else{ +opts.finder.getTr(_735,0,type).find("td[field=\""+_73a+"\"] div.datagrid-cell").each(function(){ +var w=_73f($(this)); +if(_73e1){ +var col=_6d9(_748,td.attr("field")); +var _74a=col.boxWidth+col.deltaWidth-1; +for(var i=1;i<_749;i++){ +td=td.next(); +col=_6d9(_748,td.attr("field")); +_74a+=col.boxWidth+col.deltaWidth; +} +$(this).children("div.datagrid-cell")._outerWidth(_74a); +} +}); +}; +function _746(_74b){ +var dc=$.data(_74b,"datagrid").dc; +dc.view.find("div.datagrid-editable").each(function(){ +var cell=$(this); +var _74c=cell.parent().attr("field"); +var col=$(_74b).datagrid("getColumnOption",_74c); +cell._outerWidth(col.boxWidth+col.deltaWidth-1); +var ed=$.data(this,"datagrid.editor"); +if(ed.actions.resize){ +ed.actions.resize(ed.target,cell.width()); +} +}); +}; +function _6d9(_74d,_74e){ +function find(_74f){ +if(_74f){ +for(var i=0;i<_74f.length;i++){ +var cc=_74f[i]; +for(var j=0;j=0){ +var _758=col.field||col.id||""; +for(var c=0;c<(col.colspan||1);c++){ +for(var r=0;r<(col.rowspan||1);r++){ +aa[_755+r][_756]=_758; +} +_756++; +} +} +}); +} +return aa; +function _754(){ +var _759=0; +$.map(_752[0]||[],function(col){ +_759+=col.colspan||1; +}); +return _759; +}; +function _757(a){ +for(var i=0;ib?1:-1); +}; +r=_760(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_75c,data.rows); +} +opts.view.render.call(opts.view,_75c,dc.body2,false); +opts.view.render.call(opts.view,_75c,dc.body1,true); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_75c,dc.footer2,false); +opts.view.renderFooter.call(opts.view,_75c,dc.footer1,true); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_75c); +} +_75d.ss.clean(); +var _761=$(_75c).datagrid("getPager"); +if(_761.length){ +var _762=_761.pagination("options"); +if(_762.total!=data.total){ +_761.pagination("refresh",{pageNumber:opts.pageNumber,total:data.total}); +if(opts.pageNumber!=_762.pageNumber&&_762.pageNumber>0){ +opts.pageNumber=_762.pageNumber; +_715(_75c); +} +} +} +_6a6(_75c); +dc.body2.triggerHandler("scroll"); +$(_75c).datagrid("setSelectionState"); +$(_75c).datagrid("autoSizeColumn"); +opts.onLoadSuccess.call(_75c,data); +}; +function _763(_764){ +var _765=$.data(_764,"datagrid"); +var opts=_765.options; +var dc=_765.dc; +dc.header1.add(dc.header2).find("input[type=checkbox]")._propAttr("checked",false); +if(opts.idField){ +var _766=$.data(_764,"treegrid")?true:false; +var _767=opts.onSelect; +var _768=opts.onCheck; +opts.onSelect=opts.onCheck=function(){ +}; +var rows=opts.finder.getRows(_764); +for(var i=0;i_779.height()-_77a){ +_779.scrollTop(_779.scrollTop()+top+tr._outerHeight()-_779.height()+_77a); +} +} +} +}; +function _6f8(_77c,_77d){ +var _77e=$.data(_77c,"datagrid"); +var opts=_77e.options; +opts.finder.getTr(_77c,_77e.highlightIndex).removeClass("datagrid-row-over"); +opts.finder.getTr(_77c,_77d).addClass("datagrid-row-over"); +_77e.highlightIndex=_77d; +}; +function _6ff(_77f,_780,_781,_782){ +var _783=$.data(_77f,"datagrid"); +var opts=_783.options; +var row=opts.finder.getRow(_77f,_780); +if(!row){ +return; +} +if(opts.onBeforeSelect.apply(_77f,_67f(_77f,[_780,row]))==false){ +return; +} +if(opts.singleSelect){ +_784(_77f,true); +_783.selectedRows=[]; +} +if(!_781&&opts.checkOnSelect){ +_6fc(_77f,_780,true); +} +if(opts.idField){ +_67e(_783.selectedRows,opts.idField,row); +} +opts.finder.getTr(_77f,_780).addClass("datagrid-row-selected"); +opts.onSelect.apply(_77f,_67f(_77f,[_780,row])); +if(!_782&&opts.scrollOnSelect){ +_774(_77f,_780); +} +}; +function _700(_785,_786,_787){ +var _788=$.data(_785,"datagrid"); +var dc=_788.dc; +var opts=_788.options; +var row=opts.finder.getRow(_785,_786); +if(!row){ +return; +} +if(opts.onBeforeUnselect.apply(_785,_67f(_785,[_786,row]))==false){ +return; +} +if(!_787&&opts.checkOnSelect){ +_6fd(_785,_786,true); +} +opts.finder.getTr(_785,_786).removeClass("datagrid-row-selected"); +if(opts.idField){ +_67d(_788.selectedRows,opts.idField,row[opts.idField]); +} +opts.onUnselect.apply(_785,_67f(_785,[_786,row])); +}; +function _789(_78a,_78b){ +var _78c=$.data(_78a,"datagrid"); +var opts=_78c.options; +var rows=opts.finder.getRows(_78a); +var _78d=$.data(_78a,"datagrid").selectedRows; +if(!_78b&&opts.checkOnSelect){ +_6ea(_78a,true); +} +opts.finder.getTr(_78a,"","allbody").addClass("datagrid-row-selected"); +if(opts.idField){ +for(var _78e=0;_78e"); +cell.children("table").bind("click dblclick contextmenu",function(e){ +e.stopPropagation(); +}); +$.data(cell[0],"datagrid.editor",{actions:_7c3,target:_7c3.init(cell.find("td"),$.extend({height:opts.editorHeight},_7c2)),field:_7c0,type:_7c1,oldHtml:_7c4}); +} +} +}); +_6a6(_7be,_7bf,true); +}; +function _7b5(_7c6,_7c7){ +var opts=$.data(_7c6,"datagrid").options; +var tr=opts.finder.getTr(_7c6,_7c7); +tr.children("td").each(function(){ +var cell=$(this).find("div.datagrid-editable"); +if(cell.length){ +var ed=$.data(cell[0],"datagrid.editor"); +if(ed.actions.destroy){ +ed.actions.destroy(ed.target); +} +cell.html(ed.oldHtml); +$.removeData(cell[0],"datagrid.editor"); +cell.removeClass("datagrid-editable"); +cell.css("width",""); +} +}); +}; +function _7a8(_7c8,_7c9){ +var tr=$.data(_7c8,"datagrid").options.finder.getTr(_7c8,_7c9); +if(!tr.hasClass("datagrid-row-editing")){ +return true; +} +var vbox=tr.find(".validatebox-text"); +vbox.validatebox("validate"); +vbox.trigger("mouseleave"); +var _7ca=tr.find(".validatebox-invalid"); +return _7ca.length==0; +}; +function _7cb(_7cc,_7cd){ +var _7ce=$.data(_7cc,"datagrid").insertedRows; +var _7cf=$.data(_7cc,"datagrid").deletedRows; +var _7d0=$.data(_7cc,"datagrid").updatedRows; +if(!_7cd){ +var rows=[]; +rows=rows.concat(_7ce); +rows=rows.concat(_7cf); +rows=rows.concat(_7d0); +return rows; +}else{ +if(_7cd=="inserted"){ +return _7ce; +}else{ +if(_7cd=="deleted"){ +return _7cf; +}else{ +if(_7cd=="updated"){ +return _7d0; +} +} +} +} +return []; +}; +function _7d1(_7d2,_7d3){ +var _7d4=$.data(_7d2,"datagrid"); +var opts=_7d4.options; +var data=_7d4.data; +var _7d5=_7d4.insertedRows; +var _7d6=_7d4.deletedRows; +$(_7d2).datagrid("cancelEdit",_7d3); +var row=opts.finder.getRow(_7d2,_7d3); +if(_67c(_7d5,row)>=0){ +_67d(_7d5,row); +}else{ +_7d6.push(row); +} +_67d(_7d4.selectedRows,opts.idField,row[opts.idField]); +_67d(_7d4.checkedRows,opts.idField,row[opts.idField]); +opts.view.deleteRow.call(opts.view,_7d2,_7d3); +if(opts.height=="auto"){ +_6a6(_7d2); +} +$(_7d2).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _7d7(_7d8,_7d9){ +var data=$.data(_7d8,"datagrid").data; +var view=$.data(_7d8,"datagrid").options.view; +var _7da=$.data(_7d8,"datagrid").insertedRows; +view.insertRow.call(view,_7d8,_7d9.index,_7d9.row); +_7da.push(_7d9.row); +$(_7d8).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _7db(_7dc,row){ +var data=$.data(_7dc,"datagrid").data; +var view=$.data(_7dc,"datagrid").options.view; +var _7dd=$.data(_7dc,"datagrid").insertedRows; +view.insertRow.call(view,_7dc,null,row); +_7dd.push(row); +$(_7dc).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _7de(_7df,_7e0){ +var _7e1=$.data(_7df,"datagrid"); +var opts=_7e1.options; +var row=opts.finder.getRow(_7df,_7e0.index); +var _7e2=false; +_7e0.row=_7e0.row||{}; +for(var _7e3 in _7e0.row){ +if(row[_7e3]!==_7e0.row[_7e3]){ +_7e2=true; +break; +} +} +if(_7e2){ +if(_67c(_7e1.insertedRows,row)==-1){ +if(_67c(_7e1.updatedRows,row)==-1){ +_7e1.updatedRows.push(row); +} +} +opts.view.updateRow.call(opts.view,_7df,_7e0.index,_7e0.row); +} +}; +function _7e4(_7e5){ +var _7e6=$.data(_7e5,"datagrid"); +var data=_7e6.data; +var rows=data.rows; +var _7e7=[]; +for(var i=0;i=0){ +(_7f4=="s"?_6ff:_6fc)(_7eb,_7f5,true); +} +} +}; +for(var i=0;i0){ +$(this).datagrid("loadData",data); +}else{ +$(this).datagrid("autoSizeColumn"); +} +} +_715(this); +}); +}; +function _805(_806){ +var _807={}; +$.map(_806,function(name){ +_807[name]=_808(name); +}); +return _807; +function _808(name){ +function isA(_809){ +return $.data($(_809)[0],name)!=undefined; +}; +return {init:function(_80a,_80b){ +var _80c=$("").appendTo(_80a); +if(_80c[name]&&name!="text"){ +return _80c[name](_80b); +}else{ +return _80c; +} +},destroy:function(_80d){ +if(isA(_80d,name)){ +$(_80d)[name]("destroy"); +} +},getValue:function(_80e){ +if(isA(_80e,name)){ +var opts=$(_80e)[name]("options"); +if(opts.multiple){ +return $(_80e)[name]("getValues").join(opts.separator); +}else{ +return $(_80e)[name]("getValue"); +} +}else{ +return $(_80e).val(); +} +},setValue:function(_80f,_810){ +if(isA(_80f,name)){ +var opts=$(_80f)[name]("options"); +if(opts.multiple){ +if(_810){ +$(_80f)[name]("setValues",_810.split(opts.separator)); +}else{ +$(_80f)[name]("clear"); +} +}else{ +$(_80f)[name]("setValue",_810); +} +}else{ +$(_80f).val(_810); +} +},resize:function(_811,_812){ +if(isA(_811,name)){ +$(_811)[name]("resize",_812); +}else{ +$(_811)._size({width:_812,height:$.fn.datagrid.defaults.editorHeight}); +} +}}; +}; +}; +var _813=$.extend({},_805(["text","textbox","passwordbox","filebox","numberbox","numberspinner","combobox","combotree","combogrid","combotreegrid","datebox","datetimebox","timespinner","datetimespinner"]),{textarea:{init:function(_814,_815){ +var _816=$("").appendTo(_814); +_816.css("vertical-align","middle")._outerHeight(_815.height); +return _816; +},getValue:function(_817){ +return $(_817).val(); +},setValue:function(_818,_819){ +$(_818).val(_819); +},resize:function(_81a,_81b){ +$(_81a)._outerWidth(_81b); +}},checkbox:{init:function(_81c,_81d){ +var _81e=$("").appendTo(_81c); +_81e.val(_81d.on); +_81e.attr("offval",_81d.off); +return _81e; +},getValue:function(_81f){ +if($(_81f).is(":checked")){ +return $(_81f).val(); +}else{ +return $(_81f).attr("offval"); +} +},setValue:function(_820,_821){ +var _822=false; +if($(_820).val()==_821){ +_822=true; +} +$(_820)._propAttr("checked",_822); +}},validatebox:{init:function(_823,_824){ +var _825=$("").appendTo(_823); +_825.validatebox(_824); +return _825; +},destroy:function(_826){ +$(_826).validatebox("destroy"); +},getValue:function(_827){ +return $(_827).val(); +},setValue:function(_828,_829){ +$(_828).val(_829); +},resize:function(_82a,_82b){ +$(_82a)._outerWidth(_82b)._outerHeight($.fn.datagrid.defaults.editorHeight); +}}}); +$.fn.datagrid.methods={options:function(jq){ +var _82c=$.data(jq[0],"datagrid").options; +var _82d=$.data(jq[0],"datagrid").panel.panel("options"); +var opts=$.extend(_82c,{width:_82d.width,height:_82d.height,closed:_82d.closed,collapsed:_82d.collapsed,minimized:_82d.minimized,maximized:_82d.maximized}); +return opts; +},setSelectionState:function(jq){ +return jq.each(function(){ +_763(this); +}); +},createStyleSheet:function(jq){ +return _681(jq[0]); +},getPanel:function(jq){ +return $.data(jq[0],"datagrid").panel; +},getPager:function(jq){ +return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); +},getColumnFields:function(jq,_82e){ +return _6d8(jq[0],_82e); +},getColumnOption:function(jq,_82f){ +return _6d9(jq[0],_82f); +},resize:function(jq,_830){ +return jq.each(function(){ +_690(this,_830); +}); +},load:function(jq,_831){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +if(typeof _831=="string"){ +opts.url=_831; +_831=null; +} +opts.pageNumber=1; +var _832=$(this).datagrid("getPager"); +_832.pagination("refresh",{pageNumber:1}); +_715(this,_831); +}); +},reload:function(jq,_833){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +if(typeof _833=="string"){ +opts.url=_833; +_833=null; +} +_715(this,_833); +}); +},reloadFooter:function(jq,_834){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +var dc=$.data(this,"datagrid").dc; +if(_834){ +$.data(this,"datagrid").footer=_834; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).datagrid("fixRowHeight"); +} +}); +},loading:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +$(this).datagrid("getPager").pagination("loading"); +if(opts.loadMsg){ +var _835=$(this).datagrid("getPanel"); +if(!_835.children("div.datagrid-mask").length){ +$("
    ").appendTo(_835); +var msg=$("
    ").html(opts.loadMsg).appendTo(_835); +msg._outerHeight(40); +msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")}); +} +} +}); +},loaded:function(jq){ +return jq.each(function(){ +$(this).datagrid("getPager").pagination("loaded"); +var _836=$(this).datagrid("getPanel"); +_836.children("div.datagrid-mask-msg").remove(); +_836.children("div.datagrid-mask").remove(); +}); +},fitColumns:function(jq){ +return jq.each(function(){ +_722(this); +}); +},fixColumnSize:function(jq,_837){ +return jq.each(function(){ +_740(this,_837); +}); +},fixRowHeight:function(jq,_838){ +return jq.each(function(){ +_6a6(this,_838); +}); +},freezeRow:function(jq,_839){ +return jq.each(function(){ +_6b3(this,_839); +}); +},autoSizeColumn:function(jq,_83a){ +return jq.each(function(){ +_734(this,_83a); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_716(this,data); +_7e4(this); +}); +},getData:function(jq){ +return $.data(jq[0],"datagrid").data; +},getRows:function(jq){ +return $.data(jq[0],"datagrid").data.rows; +},getFooterRows:function(jq){ +return $.data(jq[0],"datagrid").footer; +},getRowIndex:function(jq,id){ +return _76b(jq[0],id); +},getChecked:function(jq){ +return _771(jq[0]); +},getSelected:function(jq){ +var rows=_76e(jq[0]); +return rows.length>0?rows[0]:null; +},getSelections:function(jq){ +return _76e(jq[0]); +},clearSelections:function(jq){ +return jq.each(function(){ +var _83b=$.data(this,"datagrid"); +var _83c=_83b.selectedRows; +var _83d=_83b.checkedRows; +_83c.splice(0,_83c.length); +_784(this); +if(_83b.options.checkOnSelect){ +_83d.splice(0,_83d.length); +} +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _83e=$.data(this,"datagrid"); +var _83f=_83e.selectedRows; +var _840=_83e.checkedRows; +_840.splice(0,_840.length); +_6eb(this); +if(_83e.options.selectOnCheck){ +_83f.splice(0,_83f.length); +} +}); +},scrollTo:function(jq,_841){ +return jq.each(function(){ +_774(this,_841); +}); +},highlightRow:function(jq,_842){ +return jq.each(function(){ +_6f8(this,_842); +_774(this,_842); +}); +},selectAll:function(jq){ +return jq.each(function(){ +_789(this); +}); +},unselectAll:function(jq){ +return jq.each(function(){ +_784(this); +}); +},selectRow:function(jq,_843){ +return jq.each(function(){ +_6ff(this,_843); +}); +},selectRecord:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +if(opts.idField){ +var _844=_76b(this,id); +if(_844>=0){ +$(this).datagrid("selectRow",_844); +} +} +}); +},unselectRow:function(jq,_845){ +return jq.each(function(){ +_700(this,_845); +}); +},checkRow:function(jq,_846){ +return jq.each(function(){ +_6fc(this,_846); +}); +},uncheckRow:function(jq,_847){ +return jq.each(function(){ +_6fd(this,_847); +}); +},checkAll:function(jq){ +return jq.each(function(){ +_6ea(this); +}); +},uncheckAll:function(jq){ +return jq.each(function(){ +_6eb(this); +}); +},beginEdit:function(jq,_848){ +return jq.each(function(){ +_7a3(this,_848); +}); +},endEdit:function(jq,_849){ +return jq.each(function(){ +_7a9(this,_849,false); +}); +},cancelEdit:function(jq,_84a){ +return jq.each(function(){ +_7a9(this,_84a,true); +}); +},getEditors:function(jq,_84b){ +return _7b6(jq[0],_84b); +},getEditor:function(jq,_84c){ +return _7ba(jq[0],_84c); +},refreshRow:function(jq,_84d){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.refreshRow.call(opts.view,this,_84d); +}); +},validateRow:function(jq,_84e){ +return _7a8(jq[0],_84e); +},updateRow:function(jq,_84f){ +return jq.each(function(){ +_7de(this,_84f); +}); +},appendRow:function(jq,row){ +return jq.each(function(){ +_7db(this,row); +}); +},insertRow:function(jq,_850){ +return jq.each(function(){ +_7d7(this,_850); +}); +},deleteRow:function(jq,_851){ +return jq.each(function(){ +_7d1(this,_851); +}); +},getChanges:function(jq,_852){ +return _7cb(jq[0],_852); +},acceptChanges:function(jq){ +return jq.each(function(){ +_7e8(this); +}); +},rejectChanges:function(jq){ +return jq.each(function(){ +_7ea(this); +}); +},mergeCells:function(jq,_853){ +return jq.each(function(){ +_7fc(this,_853); +}); +},showColumn:function(jq,_854){ +return jq.each(function(){ +var col=$(this).datagrid("getColumnOption",_854); +if(col.hidden){ +col.hidden=false; +$(this).datagrid("getPanel").find("td[field=\""+_854+"\"]").show(); +_717(this,_854,1); +$(this).datagrid("fitColumns"); +} +}); +},hideColumn:function(jq,_855){ +return jq.each(function(){ +var col=$(this).datagrid("getColumnOption",_855); +if(!col.hidden){ +col.hidden=true; +$(this).datagrid("getPanel").find("td[field=\""+_855+"\"]").hide(); +_717(this,_855,-1); +$(this).datagrid("fitColumns"); +} +}); +},sort:function(jq,_856){ +return jq.each(function(){ +_6ec(this,_856); +}); +},gotoPage:function(jq,_857){ +return jq.each(function(){ +var _858=this; +var page,cb; +if(typeof _857=="object"){ +page=_857.page; +cb=_857.callback; +}else{ +page=_857; +} +$(_858).datagrid("options").pageNumber=page; +$(_858).datagrid("getPager").pagination("refresh",{pageNumber:page}); +_715(_858,null,function(){ +if(cb){ +cb.call(_858,page); +} +}); +}); +}}; +$.fn.datagrid.parseOptions=function(_859){ +var t=$(_859); +return $.extend({},$.fn.panel.parseOptions(_859),$.parser.parseOptions(_859,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{sharedStyleSheet:"boolean",fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",ctrlSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number",scrollOnSelect:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); +}; +$.fn.datagrid.parseData=function(_85a){ +var t=$(_85a); +var data={total:0,rows:[]}; +var _85b=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false)); +t.find("tbody tr").each(function(){ +data.total++; +var row={}; +$.extend(row,$.parser.parseOptions(this,["iconCls","state"])); +for(var i=0;i<_85b.length;i++){ +row[_85b[i]]=$(this).find("td:eq("+i+")").html(); +} +data.rows.push(row); +}); +return data; +}; +var _85c={render:function(_85d,_85e,_85f){ +var rows=$(_85d).datagrid("getRows"); +$(_85e).empty().html(this.renderTable(_85d,0,rows,_85f)); +},renderFooter:function(_860,_861,_862){ +var opts=$.data(_860,"datagrid").options; +var rows=$.data(_860,"datagrid").footer||[]; +var _863=$(_860).datagrid("getColumnFields",_862); +var _864=[""]; +for(var i=0;i"); +_864.push(this.renderRow.call(this,_860,_863,_862,i,rows[i])); +_864.push(""); +} +_864.push("
    "); +$(_861).html(_864.join("")); +},renderTable:function(_865,_866,rows,_867){ +var _868=$.data(_865,"datagrid"); +var opts=_868.options; +if(_867){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return ""; +} +} +var _869=$(_865).datagrid("getColumnFields",_867); +var _86a=[""]; +for(var i=0;i"); +_86a.push(this.renderRow.call(this,_865,_869,_867,_866,row)); +_86a.push(""); +_866++; +} +_86a.push("
    "); +return _86a.join(""); +},renderRow:function(_86d,_86e,_86f,_870,_871){ +var opts=$.data(_86d,"datagrid").options; +var cc=[]; +if(_86f&&opts.rownumbers){ +var _872=_870+1; +if(opts.pagination){ +_872+=(opts.pageNumber-1)*opts.pageSize; +} +cc.push("
    "+_872+"
    "); +} +for(var i=0;i<_86e.length;i++){ +var _873=_86e[i]; +var col=$(_86d).datagrid("getColumnOption",_873); +if(col){ +var _874=_871[_873]; +var css=col.styler?(col.styler.call(_86d,_874,_871,_870)||""):""; +var cs=this.getStyleValue(css); +var cls=cs.c?"class=\""+cs.c+"\"":""; +var _875=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":""); +cc.push(""); +var _875=""; +if(!col.checkbox){ +if(col.align){ +_875+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_875+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_875+="height:auto;"; +} +} +} +cc.push("
    "); +if(col.checkbox){ +cc.push(""); +}else{ +if(col.formatter){ +cc.push(col.formatter(_874,_871,_870)); +}else{ +cc.push(_874); +} +} +cc.push("
    "); +cc.push(""); +} +} +return cc.join(""); +},getStyleValue:function(css){ +var _876=""; +var _877=""; +if(typeof css=="string"){ +_877=css; +}else{ +if(css){ +_876=css["class"]||""; +_877=css["style"]||""; +} +} +return {c:_876,s:_877}; +},refreshRow:function(_878,_879){ +this.updateRow.call(this,_878,_879,{}); +},updateRow:function(_87a,_87b,row){ +var opts=$.data(_87a,"datagrid").options; +var _87c=opts.finder.getRow(_87a,_87b); +$.extend(_87c,row); +var cs=_87d.call(this,_87b); +var _87e=cs.s; +var cls="datagrid-row "+(_87b%2&&opts.striped?"datagrid-row-alt ":" ")+cs.c; +function _87d(_87f){ +var css=opts.rowStyler?opts.rowStyler.call(_87a,_87f,_87c):""; +return this.getStyleValue(css); +}; +function _880(_881){ +var tr=opts.finder.getTr(_87a,_87b,"body",(_881?1:2)); +if(!tr.length){ +return; +} +var _882=$(_87a).datagrid("getColumnFields",_881); +var _883=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow.call(this,_87a,_882,_881,_87b,_87c)); +var _884=(tr.hasClass("datagrid-row-checked")?" datagrid-row-checked":"")+(tr.hasClass("datagrid-row-selected")?" datagrid-row-selected":""); +tr.attr("style",_87e).attr("class",cls+_884); +if(_883){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_880.call(this,true); +_880.call(this,false); +$(_87a).datagrid("fixRowHeight",_87b); +},insertRow:function(_885,_886,row){ +var _887=$.data(_885,"datagrid"); +var opts=_887.options; +var dc=_887.dc; +var data=_887.data; +if(_886==undefined||_886==null){ +_886=data.rows.length; +} +if(_886>data.rows.length){ +_886=data.rows.length; +} +function _888(_889){ +var _88a=_889?1:2; +for(var i=data.rows.length-1;i>=_886;i--){ +var tr=opts.finder.getTr(_885,i,"body",_88a); +tr.attr("datagrid-row-index",i+1); +tr.attr("id",_887.rowIdPrefix+"-"+_88a+"-"+(i+1)); +if(_889&&opts.rownumbers){ +var _88b=i+2; +if(opts.pagination){ +_88b+=(opts.pageNumber-1)*opts.pageSize; +} +tr.find("div.datagrid-cell-rownumber").html(_88b); +} +if(opts.striped){ +tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":""); +} +} +}; +function _88c(_88d){ +var _88e=_88d?1:2; +var _88f=$(_885).datagrid("getColumnFields",_88d); +var _890=_887.rowIdPrefix+"-"+_88e+"-"+_886; +var tr=""; +if(_886>=data.rows.length){ +if(data.rows.length){ +opts.finder.getTr(_885,"","last",_88e).after(tr); +}else{ +var cc=_88d?dc.body1:dc.body2; +cc.html(""+tr+"
    "); +} +}else{ +opts.finder.getTr(_885,_886+1,"body",_88e).before(tr); +} +}; +_888.call(this,true); +_888.call(this,false); +_88c.call(this,true); +_88c.call(this,false); +data.total+=1; +data.rows.splice(_886,0,row); +this.setEmptyMsg(_885); +this.refreshRow.call(this,_885,_886); +},deleteRow:function(_891,_892){ +var _893=$.data(_891,"datagrid"); +var opts=_893.options; +var data=_893.data; +function _894(_895){ +var _896=_895?1:2; +for(var i=_892+1;i
    ").appendTo(_89d.dc.view); +d.html(opts.emptyMsg).css("top",h+"px"); +} +} +},renderEmptyRow:function(_89f){ +var cols=$.map($(_89f).datagrid("getColumnFields"),function(_8a0){ +return $(_89f).datagrid("getColumnOption",_8a0); +}); +$.map(cols,function(col){ +col.formatter1=col.formatter; +col.styler1=col.styler; +col.formatter=col.styler=undefined; +}); +var _8a1=$.data(_89f,"datagrid").dc.body2; +_8a1.html(this.renderTable(_89f,0,[{}],false)); +_8a1.find("tbody *").css({height:1,borderColor:"transparent",background:"transparent"}); +var tr=_8a1.find(".datagrid-row"); +tr.removeClass("datagrid-row").removeAttr("datagrid-row-index"); +tr.find(".datagrid-cell,.datagrid-cell-check").empty(); +$.map(cols,function(col){ +col.formatter=col.formatter1; +col.styler=col.styler1; +col.formatter1=col.styler1=undefined; +}); +}}; +$.fn.datagrid.defaults=$.extend({},$.fn.panel.defaults,{sharedStyleSheet:false,frozenColumns:undefined,columns:undefined,fitColumns:false,resizeHandle:"right",resizeEdge:5,autoRowHeight:true,toolbar:null,striped:false,method:"post",nowrap:true,idField:null,url:null,data:null,loadMsg:"Processing, please wait ...",emptyMsg:"",rownumbers:false,singleSelect:false,ctrlSelect:false,selectOnCheck:true,checkOnSelect:true,pagination:false,pagePosition:"bottom",pageNumber:1,pageSize:10,pageList:[10,20,30,40,50],queryParams:{},sortName:null,sortOrder:"asc",multiSort:false,remoteSort:true,showHeader:true,showFooter:false,scrollOnSelect:true,scrollbarSize:18,rownumberWidth:30,editorHeight:31,headerEvents:{mouseover:_6e4(true),mouseout:_6e4(false),click:_6e8,dblclick:_6ed,contextmenu:_6f0},rowEvents:{mouseover:_6f2(true),mouseout:_6f2(false),click:_6f9,dblclick:_703,contextmenu:_707},rowStyler:function(_8a2,_8a3){ +},loader:function(_8a4,_8a5,_8a6){ +var opts=$(this).datagrid("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_8a4,dataType:"json",success:function(data){ +_8a5(data); +},error:function(){ +_8a6.apply(this,arguments); +}}); +},loadFilter:function(data){ +return data; +},editors:_813,finder:{getTr:function(_8a7,_8a8,type,_8a9){ +type=type||"body"; +_8a9=_8a9||0; +var _8aa=$.data(_8a7,"datagrid"); +var dc=_8aa.dc; +var opts=_8aa.options; +if(_8a9==0){ +var tr1=opts.finder.getTr(_8a7,_8a8,type,1); +var tr2=opts.finder.getTr(_8a7,_8a8,type,2); +return tr1.add(tr2); +}else{ +if(type=="body"){ +var tr=$("#"+_8aa.rowIdPrefix+"-"+_8a9+"-"+_8a8); +if(!tr.length){ +tr=(_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index="+_8a8+"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_8a9==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_8a8+"]"); +}else{ +if(type=="selected"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked"); +}else{ +if(type=="editing"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-editing"); +}else{ +if(type=="last"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); +}else{ +if(type=="allbody"){ +return (_8a9==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); +}else{ +if(type=="allfooter"){ +return (_8a9==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); +} +} +} +} +} +} +} +} +} +} +},getRow:function(_8ab,p){ +var _8ac=(typeof p=="object")?p.attr("datagrid-row-index"):p; +return $.data(_8ab,"datagrid").data.rows[parseInt(_8ac)]; +},getRows:function(_8ad){ +return $(_8ad).datagrid("getRows"); +}},view:_85c,onBeforeLoad:function(_8ae){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onClickRow:function(_8af,_8b0){ +},onDblClickRow:function(_8b1,_8b2){ +},onClickCell:function(_8b3,_8b4,_8b5){ +},onDblClickCell:function(_8b6,_8b7,_8b8){ +},onBeforeSortColumn:function(sort,_8b9){ +},onSortColumn:function(sort,_8ba){ +},onResizeColumn:function(_8bb,_8bc){ +},onBeforeSelect:function(_8bd,_8be){ +},onSelect:function(_8bf,_8c0){ +},onBeforeUnselect:function(_8c1,_8c2){ +},onUnselect:function(_8c3,_8c4){ +},onSelectAll:function(rows){ +},onUnselectAll:function(rows){ +},onBeforeCheck:function(_8c5,_8c6){ +},onCheck:function(_8c7,_8c8){ +},onBeforeUncheck:function(_8c9,_8ca){ +},onUncheck:function(_8cb,_8cc){ +},onCheckAll:function(rows){ +},onUncheckAll:function(rows){ +},onBeforeEdit:function(_8cd,_8ce){ +},onBeginEdit:function(_8cf,_8d0){ +},onEndEdit:function(_8d1,_8d2,_8d3){ +},onAfterEdit:function(_8d4,_8d5,_8d6){ +},onCancelEdit:function(_8d7,_8d8){ +},onHeaderContextMenu:function(e,_8d9){ +},onRowContextMenu:function(e,_8da,_8db){ +}}); +})(jQuery); +(function($){ +var _8dc; +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_8dd(_8dc); +_8dc=undefined; +}); +function _8de(_8df){ +var _8e0=$.data(_8df,"propertygrid"); +var opts=$.data(_8df,"propertygrid").options; +$(_8df).datagrid($.extend({},opts,{cls:"propertygrid",view:(opts.showGroup?opts.groupView:opts.view),onBeforeEdit:function(_8e1,row){ +if(opts.onBeforeEdit.call(_8df,_8e1,row)==false){ +return false; +} +var dg=$(this); +var row=dg.datagrid("getRows")[_8e1]; +var col=dg.datagrid("getColumnOption","value"); +col.editor=row.editor; +},onClickCell:function(_8e2,_8e3,_8e4){ +if(_8dc!=this){ +_8dd(_8dc); +_8dc=this; +} +if(opts.editIndex!=_8e2){ +_8dd(_8dc); +$(this).datagrid("beginEdit",_8e2); +var ed=$(this).datagrid("getEditor",{index:_8e2,field:_8e3}); +if(!ed){ +ed=$(this).datagrid("getEditor",{index:_8e2,field:"value"}); +} +if(ed){ +var t=$(ed.target); +var _8e5=t.data("textbox")?t.textbox("textbox"):t; +_8e5.focus(); +opts.editIndex=_8e2; +} +} +opts.onClickCell.call(_8df,_8e2,_8e3,_8e4); +},loadFilter:function(data){ +_8dd(this); +return opts.loadFilter.call(this,data); +}})); +}; +function _8dd(_8e6){ +var t=$(_8e6); +if(!t.length){ +return; +} +var opts=$.data(_8e6,"propertygrid").options; +opts.finder.getTr(_8e6,null,"editing").each(function(){ +var _8e7=parseInt($(this).attr("datagrid-row-index")); +if(t.datagrid("validateRow",_8e7)){ +t.datagrid("endEdit",_8e7); +}else{ +t.datagrid("cancelEdit",_8e7); +} +}); +opts.editIndex=undefined; +}; +$.fn.propertygrid=function(_8e8,_8e9){ +if(typeof _8e8=="string"){ +var _8ea=$.fn.propertygrid.methods[_8e8]; +if(_8ea){ +return _8ea(this,_8e9); +}else{ +return this.datagrid(_8e8,_8e9); +} +} +_8e8=_8e8||{}; +return this.each(function(){ +var _8eb=$.data(this,"propertygrid"); +if(_8eb){ +$.extend(_8eb.options,_8e8); +}else{ +var opts=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_8e8); +opts.frozenColumns=$.extend(true,[],opts.frozenColumns); +opts.columns=$.extend(true,[],opts.columns); +$.data(this,"propertygrid",{options:opts}); +} +_8de(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_8ec){ +return $.extend({},$.fn.datagrid.parseOptions(_8ec),$.parser.parseOptions(_8ec,[{showGroup:"boolean"}])); +}; +var _8ed=$.extend({},$.fn.datagrid.defaults.view,{render:function(_8ee,_8ef,_8f0){ +var _8f1=[]; +var _8f2=this.groups; +for(var i=0;i<_8f2.length;i++){ +_8f1.push(this.renderGroup.call(this,_8ee,i,_8f2[i],_8f0)); +} +$(_8ef).html(_8f1.join("")); +},renderGroup:function(_8f3,_8f4,_8f5,_8f6){ +var _8f7=$.data(_8f3,"datagrid"); +var opts=_8f7.options; +var _8f8=$(_8f3).datagrid("getColumnFields",_8f6); +var _8f9=opts.frozenColumns&&opts.frozenColumns.length; +if(_8f6){ +if(!(opts.rownumbers||_8f9)){ +return ""; +} +} +var _8fa=[]; +var css=opts.groupStyler.call(_8f3,_8f5.value,_8f5.rows); +var cs=_8fb(css,"datagrid-group"); +_8fa.push("
    "); +if((_8f6&&(opts.rownumbers||opts.frozenColumns.length))||(!_8f6&&!(opts.rownumbers||opts.frozenColumns.length))){ +_8fa.push(""); +_8fa.push(" "); +_8fa.push(""); +} +if((_8f6&&_8f9)||(!_8f6)){ +_8fa.push(""); +_8fa.push(opts.groupFormatter.call(_8f3,_8f5.value,_8f5.rows)); +_8fa.push(""); +} +_8fa.push("
    "); +_8fa.push(""); +var _8fc=_8f5.startIndex; +for(var j=0;j<_8f5.rows.length;j++){ +var css=opts.rowStyler?opts.rowStyler.call(_8f3,_8fc,_8f5.rows[j]):""; +var _8fd=""; +var _8fe=""; +if(typeof css=="string"){ +_8fe=css; +}else{ +if(css){ +_8fd=css["class"]||""; +_8fe=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_8fc%2&&opts.striped?"datagrid-row-alt ":" ")+_8fd+"\""; +var _8ff=_8fe?"style=\""+_8fe+"\"":""; +var _900=_8f7.rowIdPrefix+"-"+(_8f6?1:2)+"-"+_8fc; +_8fa.push(""); +_8fa.push(this.renderRow.call(this,_8f3,_8f8,_8f6,_8fc,_8f5.rows[j])); +_8fa.push(""); +_8fc++; +} +_8fa.push("
    "); +return _8fa.join(""); +function _8fb(css,cls){ +var _901=""; +var _902=""; +if(typeof css=="string"){ +_902=css; +}else{ +if(css){ +_901=css["class"]||""; +_902=css["style"]||""; +} +} +return "class=\""+cls+(_901?" "+_901:"")+"\" "+"style=\""+_902+"\""; +}; +},bindEvents:function(_903){ +var _904=$.data(_903,"datagrid"); +var dc=_904.dc; +var body=dc.body1.add(dc.body2); +var _905=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +body.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _906=tt.closest("span.datagrid-row-expander"); +if(_906.length){ +var _907=_906.closest("div.datagrid-group").attr("group-index"); +if(_906.hasClass("datagrid-row-collapse")){ +$(_903).datagrid("collapseGroup",_907); +}else{ +$(_903).datagrid("expandGroup",_907); +} +}else{ +_905(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_908,rows){ +var _909=$.data(_908,"datagrid"); +var opts=_909.options; +_90a(); +var _90b=[]; +for(var i=0;i"+".datagrid-group{height:"+opts.groupHeight+"px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;white-space:nowrap;word-break:normal;}"+".datagrid-group-title,.datagrid-group-expander{display:inline-block;vertical-align:bottom;height:100%;line-height:"+opts.groupHeight+"px;padding:0 4px;}"+".datagrid-group-title{position:relative;}"+".datagrid-group-expander{width:"+opts.expanderWidth+"px;text-align:center;padding:0}"+".datagrid-row-expander{margin:"+Math.floor((opts.groupHeight-16)/2)+"px 0;display:inline-block;width:16px;height:16px;cursor:pointer}"+""); +} +}; +},onAfterRender:function(_912){ +$.fn.datagrid.defaults.view.onAfterRender.call(this,_912); +var view=this; +var _913=$.data(_912,"datagrid"); +var opts=_913.options; +if(!_913.onResizeColumn){ +_913.onResizeColumn=opts.onResizeColumn; +} +if(!_913.onResize){ +_913.onResize=opts.onResize; +} +opts.onResizeColumn=function(_914,_915){ +view.resizeGroup(_912); +_913.onResizeColumn.call(_912,_914,_915); +}; +opts.onResize=function(_916,_917){ +view.resizeGroup(_912); +_913.onResize.call($(_912).datagrid("getPanel")[0],_916,_917); +}; +view.resizeGroup(_912); +}}); +$.extend($.fn.datagrid.methods,{groups:function(jq){ +return jq.datagrid("options").view.groups; +},expandGroup:function(jq,_918){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +var view=$.data(this,"datagrid").dc.view; +var _919=view.find(_918!=undefined?"div.datagrid-group[group-index=\""+_918+"\"]":"div.datagrid-group"); +var _91a=_919.find("span.datagrid-row-expander"); +if(_91a.hasClass("datagrid-row-expand")){ +_91a.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_919.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +if(opts.onExpandGroup){ +opts.onExpandGroup.call(this,_918); +} +}); +},collapseGroup:function(jq,_91b){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +var view=$.data(this,"datagrid").dc.view; +var _91c=view.find(_91b!=undefined?"div.datagrid-group[group-index=\""+_91b+"\"]":"div.datagrid-group"); +var _91d=_91c.find("span.datagrid-row-expander"); +if(_91d.hasClass("datagrid-row-collapse")){ +_91d.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_91c.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +if(opts.onCollapseGroup){ +opts.onCollapseGroup.call(this,_91b); +} +}); +},scrollToGroup:function(jq,_91e){ +return jq.each(function(){ +var _91f=$.data(this,"datagrid"); +var dc=_91f.dc; +var grow=dc.body2.children("div.datagrid-group[group-index=\""+_91e+"\"]"); +if(grow.length){ +var _920=grow.outerHeight(); +var _921=dc.view2.children("div.datagrid-header")._outerHeight(); +var _922=dc.body2.outerHeight(true)-dc.body2.outerHeight(); +var top=grow.position().top-_921-_922; +if(top<0){ +dc.body2.scrollTop(dc.body2.scrollTop()+top); +}else{ +if(top+_920>dc.body2.height()-18){ +dc.body2.scrollTop(dc.body2.scrollTop()+top+_920-dc.body2.height()+18); +} +} +} +}); +}}); +$.extend(_8ed,{refreshGroupTitle:function(_923,_924){ +var _925=$.data(_923,"datagrid"); +var opts=_925.options; +var dc=_925.dc; +var _926=this.groups[_924]; +var span=dc.body1.add(dc.body2).children("div.datagrid-group[group-index="+_924+"]").find("span.datagrid-group-title"); +span.html(opts.groupFormatter.call(_923,_926.value,_926.rows)); +},resizeGroup:function(_927,_928){ +var _929=$.data(_927,"datagrid"); +var dc=_929.dc; +var ht=dc.header2.find("table"); +var fr=ht.find("tr.datagrid-filter-row").hide(); +var ww=ht.width(); +if(_928==undefined){ +var _92a=dc.body2.children("div.datagrid-group"); +}else{ +var _92a=dc.body2.children("div.datagrid-group[group-index="+_928+"]"); +} +_92a._outerWidth(ww); +var opts=_929.options; +if(opts.frozenColumns&&opts.frozenColumns.length){ +var _92b=dc.view1.width()-opts.expanderWidth; +var _92c=dc.view1.css("direction").toLowerCase()=="rtl"; +_92a.find(".datagrid-group-title").css(_92c?"right":"left",-_92b+"px"); +} +if(fr.length){ +if(opts.showFilterBar){ +fr.show(); +} +} +},insertRow:function(_92d,_92e,row){ +var _92f=$.data(_92d,"datagrid"); +var opts=_92f.options; +var dc=_92f.dc; +var _930=null; +var _931; +if(!_92f.data.rows.length){ +$(_92d).datagrid("loadData",[row]); +return; +} +for(var i=0;i_930.startIndex+_930.rows.length){ +_92e=_930.startIndex+_930.rows.length; +} +} +$.fn.datagrid.defaults.view.insertRow.call(this,_92d,_92e,row); +if(_92e>=_930.startIndex+_930.rows.length){ +_932(_92e,true); +_932(_92e,false); +} +_930.rows.splice(_92e-_930.startIndex,0,row); +}else{ +_930={value:row[opts.groupField],rows:[row],startIndex:_92f.data.rows.length}; +_931=this.groups.length; +dc.body1.append(this.renderGroup.call(this,_92d,_931,_930,true)); +dc.body2.append(this.renderGroup.call(this,_92d,_931,_930,false)); +this.groups.push(_930); +_92f.data.rows.push(row); +} +this.setGroupIndex(_92d); +this.refreshGroupTitle(_92d,_931); +this.resizeGroup(_92d); +function _932(_933,_934){ +var _935=_934?1:2; +var _936=opts.finder.getTr(_92d,_933-1,"body",_935); +var tr=opts.finder.getTr(_92d,_933,"body",_935); +tr.insertAfter(_936); +}; +},updateRow:function(_937,_938,row){ +var opts=$.data(_937,"datagrid").options; +$.fn.datagrid.defaults.view.updateRow.call(this,_937,_938,row); +var tb=opts.finder.getTr(_937,_938,"body",2).closest("table.datagrid-btable"); +var _939=parseInt(tb.prev().attr("group-index")); +this.refreshGroupTitle(_937,_939); +},deleteRow:function(_93a,_93b){ +var _93c=$.data(_93a,"datagrid"); +var opts=_93c.options; +var dc=_93c.dc; +var body=dc.body1.add(dc.body2); +var tb=opts.finder.getTr(_93a,_93b,"body",2).closest("table.datagrid-btable"); +var _93d=parseInt(tb.prev().attr("group-index")); +$.fn.datagrid.defaults.view.deleteRow.call(this,_93a,_93b); +var _93e=this.groups[_93d]; +if(_93e.rows.length>1){ +_93e.rows.splice(_93b-_93e.startIndex,1); +this.refreshGroupTitle(_93a,_93d); +}else{ +body.children("div.datagrid-group[group-index="+_93d+"]").remove(); +for(var i=_93d+1;i").insertBefore(tr.find(".tree-title")); +} +if(row.checkState=="checked"){ +_966(_97a,_97b,true,true); +}else{ +if(row.checkState=="unchecked"){ +_966(_97a,_97b,false,true); +}else{ +var flag=_978(row); +if(flag===0){ +_966(_97a,_97b,false,true); +}else{ +if(flag===1){ +_966(_97a,_97b,true,true); +} +} +} +} +}else{ +ck.remove(); +row.checkState=undefined; +row.checked=undefined; +_96f(_97a,row); +} +}; +function _97c(_97d,_97e){ +var opts=$.data(_97d,"treegrid").options; +var tr1=opts.finder.getTr(_97d,_97e,"body",1); +var tr2=opts.finder.getTr(_97d,_97e,"body",2); +var _97f=$(_97d).datagrid("getColumnFields",true).length+(opts.rownumbers?1:0); +var _980=$(_97d).datagrid("getColumnFields",false).length; +_981(tr1,_97f); +_981(tr2,_980); +function _981(tr,_982){ +$(""+""+"
    "+""+"").insertAfter(tr); +}; +}; +function _983(_984,_985,data,_986,_987){ +var _988=$.data(_984,"treegrid"); +var opts=_988.options; +var dc=_988.dc; +data=opts.loadFilter.call(_984,data,_985); +var node=find(_984,_985); +if(node){ +var _989=opts.finder.getTr(_984,_985,"body",1); +var _98a=opts.finder.getTr(_984,_985,"body",2); +var cc1=_989.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_98a.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_986){ +node.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_986){ +_988.data=[]; +} +} +if(!_986){ +cc1.empty(); +cc2.empty(); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_984,_985,data); +} +opts.view.render.call(opts.view,_984,cc1,true); +opts.view.render.call(opts.view,_984,cc2,false); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_984,dc.footer1,true); +opts.view.renderFooter.call(opts.view,_984,dc.footer2,false); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_984); +} +if(!_985&&opts.pagination){ +var _98b=$.data(_984,"treegrid").total; +var _98c=$(_984).datagrid("getPager"); +if(_98c.pagination("options").total!=_98b){ +_98c.pagination({total:_98b}); +} +} +_955(_984); +_95d(_984); +$(_984).treegrid("showLines"); +$(_984).treegrid("setSelectionState"); +$(_984).treegrid("autoSizeColumn"); +if(!_987){ +opts.onLoadSuccess.call(_984,node,data); +} +}; +function _954(_98d,_98e,_98f,_990,_991){ +var opts=$.data(_98d,"treegrid").options; +var body=$(_98d).datagrid("getPanel").find("div.datagrid-body"); +if(_98e==undefined&&opts.queryParams){ +opts.queryParams.id=undefined; +} +if(_98f){ +opts.queryParams=_98f; +} +var _992=$.extend({},opts.queryParams); +if(opts.pagination){ +$.extend(_992,{page:opts.pageNumber,rows:opts.pageSize}); +} +if(opts.sortName){ +$.extend(_992,{sort:opts.sortName,order:opts.sortOrder}); +} +var row=find(_98d,_98e); +if(opts.onBeforeLoad.call(_98d,row,_992)==false){ +return; +} +var _993=body.find("tr[node-id=\""+_98e+"\"] span.tree-folder"); +_993.addClass("tree-loading"); +$(_98d).treegrid("loading"); +var _994=opts.loader.call(_98d,_992,function(data){ +_993.removeClass("tree-loading"); +$(_98d).treegrid("loaded"); +_983(_98d,_98e,data,_990); +if(_991){ +_991(); +} +},function(){ +_993.removeClass("tree-loading"); +$(_98d).treegrid("loaded"); +opts.onLoadError.apply(_98d,arguments); +if(_991){ +_991(); +} +}); +if(_994==false){ +_993.removeClass("tree-loading"); +$(_98d).treegrid("loaded"); +} +}; +function _995(_996){ +var _997=_998(_996); +return _997.length?_997[0]:null; +}; +function _998(_999){ +return $.data(_999,"treegrid").data; +}; +function _977(_99a,_99b){ +var row=find(_99a,_99b); +if(row._parentId){ +return find(_99a,row._parentId); +}else{ +return null; +} +}; +function _959(_99c,_99d){ +var data=$.data(_99c,"treegrid").data; +if(_99d){ +var _99e=find(_99c,_99d); +data=_99e?(_99e.children||[]):[]; +} +var _99f=[]; +$.easyui.forEach(data,true,function(node){ +_99f.push(node); +}); +return _99f; +}; +function _9a0(_9a1,_9a2){ +var opts=$.data(_9a1,"treegrid").options; +var tr=opts.finder.getTr(_9a1,_9a2); +var node=tr.children("td[field=\""+opts.treeField+"\"]"); +return node.find("span.tree-indent,span.tree-hit").length; +}; +function find(_9a3,_9a4){ +var _9a5=$.data(_9a3,"treegrid"); +var opts=_9a5.options; +var _9a6=null; +$.easyui.forEach(_9a5.data,true,function(node){ +if(node[opts.idField]==_9a4){ +_9a6=node; +return false; +} +}); +return _9a6; +}; +function _9a7(_9a8,_9a9){ +var opts=$.data(_9a8,"treegrid").options; +var row=find(_9a8,_9a9); +var tr=opts.finder.getTr(_9a8,_9a9); +var hit=tr.find("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +if(opts.onBeforeCollapse.call(_9a8,row)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +row.state="closed"; +tr=tr.next("tr.treegrid-tr-tree"); +var cc=tr.children("td").children("div"); +if(opts.animate){ +cc.slideUp("normal",function(){ +$(_9a8).treegrid("autoSizeColumn"); +_955(_9a8,_9a9); +opts.onCollapse.call(_9a8,row); +}); +}else{ +cc.hide(); +$(_9a8).treegrid("autoSizeColumn"); +_955(_9a8,_9a9); +opts.onCollapse.call(_9a8,row); +} +}; +function _9aa(_9ab,_9ac){ +var opts=$.data(_9ab,"treegrid").options; +var tr=opts.finder.getTr(_9ab,_9ac); +var hit=tr.find("span.tree-hit"); +var row=find(_9ab,_9ac); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +if(opts.onBeforeExpand.call(_9ab,row)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var _9ad=tr.next("tr.treegrid-tr-tree"); +if(_9ad.length){ +var cc=_9ad.children("td").children("div"); +_9ae(cc); +}else{ +_97c(_9ab,row[opts.idField]); +var _9ad=tr.next("tr.treegrid-tr-tree"); +var cc=_9ad.children("td").children("div"); +cc.hide(); +var _9af=$.extend({},opts.queryParams||{}); +_9af.id=row[opts.idField]; +_954(_9ab,row[opts.idField],_9af,true,function(){ +if(cc.is(":empty")){ +_9ad.remove(); +}else{ +_9ae(cc); +} +}); +} +function _9ae(cc){ +row.state="open"; +if(opts.animate){ +cc.slideDown("normal",function(){ +$(_9ab).treegrid("autoSizeColumn"); +_955(_9ab,_9ac); +opts.onExpand.call(_9ab,row); +}); +}else{ +cc.show(); +$(_9ab).treegrid("autoSizeColumn"); +_955(_9ab,_9ac); +opts.onExpand.call(_9ab,row); +} +}; +}; +function _965(_9b0,_9b1){ +var opts=$.data(_9b0,"treegrid").options; +var tr=opts.finder.getTr(_9b0,_9b1); +var hit=tr.find("span.tree-hit"); +if(hit.hasClass("tree-expanded")){ +_9a7(_9b0,_9b1); +}else{ +_9aa(_9b0,_9b1); +} +}; +function _9b2(_9b3,_9b4){ +var opts=$.data(_9b3,"treegrid").options; +var _9b5=_959(_9b3,_9b4); +if(_9b4){ +_9b5.unshift(find(_9b3,_9b4)); +} +for(var i=0;i<_9b5.length;i++){ +_9a7(_9b3,_9b5[i][opts.idField]); +} +}; +function _9b6(_9b7,_9b8){ +var opts=$.data(_9b7,"treegrid").options; +var _9b9=_959(_9b7,_9b8); +if(_9b8){ +_9b9.unshift(find(_9b7,_9b8)); +} +for(var i=0;i<_9b9.length;i++){ +_9aa(_9b7,_9b9[i][opts.idField]); +} +}; +function _9ba(_9bb,_9bc){ +var opts=$.data(_9bb,"treegrid").options; +var ids=[]; +var p=_977(_9bb,_9bc); +while(p){ +var id=p[opts.idField]; +ids.unshift(id); +p=_977(_9bb,id); +} +for(var i=0;i").insertBefore(_9c1); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_983(_9be,_9bf.parent,_9bf.data,_9c0.data.length>0,true); +}; +function _9c2(_9c3,_9c4){ +var ref=_9c4.before||_9c4.after; +var opts=$.data(_9c3,"treegrid").options; +var _9c5=_977(_9c3,ref); +_9bd(_9c3,{parent:(_9c5?_9c5[opts.idField]:null),data:[_9c4.data]}); +var _9c6=_9c5?_9c5.children:$(_9c3).treegrid("getRoots"); +for(var i=0;i<_9c6.length;i++){ +if(_9c6[i][opts.idField]==ref){ +var _9c7=_9c6[_9c6.length-1]; +_9c6.splice(_9c4.before?i:(i+1),0,_9c7); +_9c6.splice(_9c6.length-1,1); +break; +} +} +_9c8(true); +_9c8(false); +_95d(_9c3); +$(_9c3).treegrid("showLines"); +function _9c8(_9c9){ +var _9ca=_9c9?1:2; +var tr=opts.finder.getTr(_9c3,_9c4.data[opts.idField],"body",_9ca); +var _9cb=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var dest=opts.finder.getTr(_9c3,ref,"body",_9ca); +if(_9c4.before){ +tr.insertBefore(dest); +}else{ +var sub=dest.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:dest); +} +_9cb.remove(); +}; +}; +function _9cc(_9cd,_9ce){ +var _9cf=$.data(_9cd,"treegrid"); +var opts=_9cf.options; +var prow=_977(_9cd,_9ce); +$(_9cd).datagrid("deleteRow",_9ce); +$.easyui.removeArrayItem(_9cf.checkedRows,opts.idField,_9ce); +_95d(_9cd); +if(prow){ +_979(_9cd,prow[opts.idField]); +} +_9cf.total-=1; +$(_9cd).datagrid("getPager").pagination("refresh",{total:_9cf.total}); +$(_9cd).treegrid("showLines"); +}; +function _9d0(_9d1){ +var t=$(_9d1); +var opts=t.treegrid("options"); +if(opts.lines){ +t.treegrid("getPanel").addClass("tree-lines"); +}else{ +t.treegrid("getPanel").removeClass("tree-lines"); +return; +} +t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom"); +t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one"); +var _9d2=t.treegrid("getRoots"); +if(_9d2.length>1){ +_9d3(_9d2[0]).addClass("tree-root-first"); +}else{ +if(_9d2.length==1){ +_9d3(_9d2[0]).addClass("tree-root-one"); +} +} +_9d4(_9d2); +_9d5(_9d2); +function _9d4(_9d6){ +$.map(_9d6,function(node){ +if(node.children&&node.children.length){ +_9d4(node.children); +}else{ +var cell=_9d3(node); +cell.find(".tree-icon").prev().addClass("tree-join"); +} +}); +if(_9d6.length){ +var cell=_9d3(_9d6[_9d6.length-1]); +cell.addClass("tree-node-last"); +cell.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +} +}; +function _9d5(_9d7){ +$.map(_9d7,function(node){ +if(node.children&&node.children.length){ +_9d5(node.children); +} +}); +for(var i=0;i<_9d7.length-1;i++){ +var node=_9d7[i]; +var _9d8=t.treegrid("getLevel",node[opts.idField]); +var tr=opts.finder.getTr(_9d1,node[opts.idField]); +var cc=tr.next().find("tr.datagrid-row td[field=\""+opts.treeField+"\"] div.datagrid-cell"); +cc.find("span:eq("+(_9d8-1)+")").addClass("tree-line"); +} +}; +function _9d3(node){ +var tr=opts.finder.getTr(_9d1,node[opts.idField]); +var cell=tr.find("td[field=\""+opts.treeField+"\"] div.datagrid-cell"); +return cell; +}; +}; +$.fn.treegrid=function(_9d9,_9da){ +if(typeof _9d9=="string"){ +var _9db=$.fn.treegrid.methods[_9d9]; +if(_9db){ +return _9db(this,_9da); +}else{ +return this.datagrid(_9d9,_9da); +} +} +_9d9=_9d9||{}; +return this.each(function(){ +var _9dc=$.data(this,"treegrid"); +if(_9dc){ +$.extend(_9dc.options,_9d9); +}else{ +_9dc=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_9d9),data:[],checkedRows:[],tmpIds:[]}); +} +_944(this); +if(_9dc.options.data){ +$(this).treegrid("loadData",_9dc.options.data); +} +_954(this); +}); +}; +$.fn.treegrid.methods={options:function(jq){ +return $.data(jq[0],"treegrid").options; +},resize:function(jq,_9dd){ +return jq.each(function(){ +$(this).datagrid("resize",_9dd); +}); +},fixRowHeight:function(jq,_9de){ +return jq.each(function(){ +_955(this,_9de); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_983(this,data.parent,data); +}); +},load:function(jq,_9df){ +return jq.each(function(){ +$(this).treegrid("options").pageNumber=1; +$(this).treegrid("getPager").pagination({pageNumber:1}); +$(this).treegrid("reload",_9df); +}); +},reload:function(jq,id){ +return jq.each(function(){ +var opts=$(this).treegrid("options"); +var _9e0={}; +if(typeof id=="object"){ +_9e0=id; +}else{ +_9e0=$.extend({},opts.queryParams); +_9e0.id=id; +} +if(_9e0.id){ +var node=$(this).treegrid("find",_9e0.id); +if(node.children){ +node.children.splice(0,node.children.length); +} +opts.queryParams=_9e0; +var tr=opts.finder.getTr(this,_9e0.id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_9aa(this,_9e0.id); +}else{ +_954(this,null,_9e0); +} +}); +},reloadFooter:function(jq,_9e1){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +var dc=$.data(this,"datagrid").dc; +if(_9e1){ +$.data(this,"treegrid").footer=_9e1; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).treegrid("fixRowHeight"); +} +}); +},getData:function(jq){ +return $.data(jq[0],"treegrid").data; +},getFooterRows:function(jq){ +return $.data(jq[0],"treegrid").footer; +},getRoot:function(jq){ +return _995(jq[0]); +},getRoots:function(jq){ +return _998(jq[0]); +},getParent:function(jq,id){ +return _977(jq[0],id); +},getChildren:function(jq,id){ +return _959(jq[0],id); +},getLevel:function(jq,id){ +return _9a0(jq[0],id); +},find:function(jq,id){ +return find(jq[0],id); +},isLeaf:function(jq,id){ +var opts=$.data(jq[0],"treegrid").options; +var tr=opts.finder.getTr(jq[0],id); +var hit=tr.find("span.tree-hit"); +return hit.length==0; +},select:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("selectRow",id); +}); +},unselect:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("unselectRow",id); +}); +},collapse:function(jq,id){ +return jq.each(function(){ +_9a7(this,id); +}); +},expand:function(jq,id){ +return jq.each(function(){ +_9aa(this,id); +}); +},toggle:function(jq,id){ +return jq.each(function(){ +_965(this,id); +}); +},collapseAll:function(jq,id){ +return jq.each(function(){ +_9b2(this,id); +}); +},expandAll:function(jq,id){ +return jq.each(function(){ +_9b6(this,id); +}); +},expandTo:function(jq,id){ +return jq.each(function(){ +_9ba(this,id); +}); +},append:function(jq,_9e2){ +return jq.each(function(){ +_9bd(this,_9e2); +}); +},insert:function(jq,_9e3){ +return jq.each(function(){ +_9c2(this,_9e3); +}); +},remove:function(jq,id){ +return jq.each(function(){ +_9cc(this,id); +}); +},pop:function(jq,id){ +var row=jq.treegrid("find",id); +jq.treegrid("remove",id); +return row; +},refresh:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +opts.view.refreshRow.call(opts.view,this,id); +}); +},update:function(jq,_9e4){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +var row=_9e4.row; +opts.view.updateRow.call(opts.view,this,_9e4.id,row); +if(row.checked!=undefined){ +row=find(this,_9e4.id); +$.extend(row,{checkState:row.checked?"checked":(row.checked===false?"unchecked":undefined)}); +_979(this,_9e4.id); +} +}); +},beginEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("beginEdit",id); +$(this).treegrid("fixRowHeight",id); +}); +},endEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("endEdit",id); +}); +},cancelEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("cancelEdit",id); +}); +},showLines:function(jq){ +return jq.each(function(){ +_9d0(this); +}); +},setSelectionState:function(jq){ +return jq.each(function(){ +$(this).datagrid("setSelectionState"); +var _9e5=$(this).data("treegrid"); +for(var i=0;i<_9e5.tmpIds.length;i++){ +_966(this,_9e5.tmpIds[i],true,true); +} +_9e5.tmpIds=[]; +}); +},getCheckedNodes:function(jq,_9e6){ +_9e6=_9e6||"checked"; +var rows=[]; +$.easyui.forEach(jq.data("treegrid").checkedRows,false,function(row){ +if(row.checkState==_9e6){ +rows.push(row); +} +}); +return rows; +},checkNode:function(jq,id){ +return jq.each(function(){ +_966(this,id,true); +}); +},uncheckNode:function(jq,id){ +return jq.each(function(){ +_966(this,id,false); +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _9e7=this; +var opts=$(_9e7).treegrid("options"); +$(_9e7).datagrid("clearChecked"); +$.map($(_9e7).treegrid("getCheckedNodes"),function(row){ +_966(_9e7,row[opts.idField],false,true); +}); +}); +}}; +$.fn.treegrid.parseOptions=function(_9e8){ +return $.extend({},$.fn.datagrid.parseOptions(_9e8),$.parser.parseOptions(_9e8,["treeField",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean"}])); +}; +var _9e9=$.extend({},$.fn.datagrid.defaults.view,{render:function(_9ea,_9eb,_9ec){ +var opts=$.data(_9ea,"treegrid").options; +var _9ed=$(_9ea).datagrid("getColumnFields",_9ec); +var _9ee=$.data(_9ea,"datagrid").rowIdPrefix; +if(_9ec){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var view=this; +if(this.treeNodes&&this.treeNodes.length){ +var _9ef=_9f0.call(this,_9ec,this.treeLevel,this.treeNodes); +$(_9eb).append(_9ef.join("")); +} +function _9f0(_9f1,_9f2,_9f3){ +var _9f4=$(_9ea).treegrid("getParent",_9f3[0][opts.idField]); +var _9f5=(_9f4?_9f4.children.length:$(_9ea).treegrid("getRoots").length)-_9f3.length; +var _9f6=[""]; +for(var i=0;i<_9f3.length;i++){ +var row=_9f3[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=opts.rowStyler?opts.rowStyler.call(_9ea,row):""; +var cs=this.getStyleValue(css); +var cls="class=\"datagrid-row "+(_9f5++%2&&opts.striped?"datagrid-row-alt ":" ")+cs.c+"\""; +var _9f7=cs.s?"style=\""+cs.s+"\"":""; +var _9f8=_9ee+"-"+(_9f1?1:2)+"-"+row[opts.idField]; +_9f6.push(""); +_9f6=_9f6.concat(view.renderRow.call(view,_9ea,_9ed,_9f1,_9f2,row)); +_9f6.push(""); +if(row.children&&row.children.length){ +var tt=_9f0.call(this,_9f1,_9f2+1,row.children); +var v=row.state=="closed"?"none":"block"; +_9f6.push(""); +} +} +_9f6.push("
    "); +_9f6=_9f6.concat(tt); +_9f6.push("
    "); +return _9f6; +}; +},renderFooter:function(_9f9,_9fa,_9fb){ +var opts=$.data(_9f9,"treegrid").options; +var rows=$.data(_9f9,"treegrid").footer||[]; +var _9fc=$(_9f9).datagrid("getColumnFields",_9fb); +var _9fd=[""]; +for(var i=0;i"); +_9fd.push(this.renderRow.call(this,_9f9,_9fc,_9fb,0,row)); +_9fd.push(""); +} +_9fd.push("
    "); +$(_9fa).html(_9fd.join("")); +},renderRow:function(_9fe,_9ff,_a00,_a01,row){ +var _a02=$.data(_9fe,"treegrid"); +var opts=_a02.options; +var cc=[]; +if(_a00&&opts.rownumbers){ +cc.push("
    0
    "); +} +for(var i=0;i<_9ff.length;i++){ +var _a03=_9ff[i]; +var col=$(_9fe).datagrid("getColumnOption",_a03); +if(col){ +var css=col.styler?(col.styler(row[_a03],row)||""):""; +var cs=this.getStyleValue(css); +var cls=cs.c?"class=\""+cs.c+"\"":""; +var _a04=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":""); +cc.push(""); +var _a04=""; +if(!col.checkbox){ +if(col.align){ +_a04+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_a04+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_a04+="height:auto;"; +} +} +} +cc.push("
    "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_a03],row); +}else{ +val=row[_a03]; +} +if(_a03==opts.treeField){ +for(var j=0;j<_a01;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +if(this.hasCheckbox(_9fe,row)){ +var flag=0; +var crow=$.easyui.getArrayItem(_a02.checkedRows,opts.idField,row[opts.idField]); +if(crow){ +flag=crow.checkState=="checked"?1:2; +row.checkState=crow.checkState; +row.checked=crow.checked; +$.easyui.addArrayItem(_a02.checkedRows,opts.idField,row); +}else{ +var prow=$.easyui.getArrayItem(_a02.checkedRows,opts.idField,row._parentId); +if(prow&&prow.checkState=="checked"&&opts.cascadeCheck){ +flag=1; +row.checked=true; +$.easyui.addArrayItem(_a02.checkedRows,opts.idField,row); +}else{ +if(row.checked){ +$.easyui.addArrayItem(_a02.tmpIds,row[opts.idField]); +} +} +row.checkState=flag?"checked":"unchecked"; +} +cc.push(""); +}else{ +row.checkState=undefined; +row.checked=undefined; +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
    "); +cc.push(""); +} +} +return cc.join(""); +},hasCheckbox:function(_a05,row){ +var opts=$.data(_a05,"treegrid").options; +if(opts.checkbox){ +if($.isFunction(opts.checkbox)){ +if(opts.checkbox.call(_a05,row)){ +return true; +}else{ +return false; +} +}else{ +if(opts.onlyLeafCheck){ +if(row.state=="open"&&!(row.children&&row.children.length)){ +return true; +} +}else{ +return true; +} +} +} +return false; +},refreshRow:function(_a06,id){ +this.updateRow.call(this,_a06,id,{}); +},updateRow:function(_a07,id,row){ +var opts=$.data(_a07,"treegrid").options; +var _a08=$(_a07).treegrid("find",id); +$.extend(_a08,row); +var _a09=$(_a07).treegrid("getLevel",id)-1; +var _a0a=opts.rowStyler?opts.rowStyler.call(_a07,_a08):""; +var _a0b=$.data(_a07,"datagrid").rowIdPrefix; +var _a0c=_a08[opts.idField]; +function _a0d(_a0e){ +var _a0f=$(_a07).treegrid("getColumnFields",_a0e); +var tr=opts.finder.getTr(_a07,id,"body",(_a0e?1:2)); +var _a10=tr.find("div.datagrid-cell-rownumber").html(); +var _a11=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_a07,_a0f,_a0e,_a09,_a08)); +tr.attr("style",_a0a||""); +tr.find("div.datagrid-cell-rownumber").html(_a10); +if(_a11){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +if(_a0c!=id){ +tr.attr("id",_a0b+"-"+(_a0e?1:2)+"-"+_a0c); +tr.attr("node-id",_a0c); +} +}; +_a0d.call(this,true); +_a0d.call(this,false); +$(_a07).treegrid("fixRowHeight",id); +},deleteRow:function(_a12,id){ +var opts=$.data(_a12,"treegrid").options; +var tr=opts.finder.getTr(_a12,id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _a13=del(id); +if(_a13){ +if(_a13.children.length==0){ +tr=opts.finder.getTr(_a12,_a13[opts.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var cell=tr.children("td[field=\""+opts.treeField+"\"]").children("div.datagrid-cell"); +cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +cell.find(".tree-hit").remove(); +$("").prependTo(cell); +} +} +this.setEmptyMsg(_a12); +function del(id){ +var cc; +var _a14=$(_a12).treegrid("getParent",id); +if(_a14){ +cc=_a14.children; +}else{ +cc=$(_a12).treegrid("getData"); +} +for(var i=0;ib?1:-1); +}; +r=_a1f(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i"); +if(!_a42){ +_a45.push(""); +_a45.push(opts.groupFormatter.call(_a3f,_a41.value,_a41.rows)); +_a45.push(""); +} +_a45.push("
    "); +_a45.push(this.renderTable(_a3f,_a41.startIndex,_a41.rows,_a42)); +return _a45.join(""); +},groupRows:function(_a46,rows){ +var _a47=$.data(_a46,"datagrid"); +var opts=_a47.options; +var _a48=[]; +for(var i=0;idiv.combo-p>div.combo-panel:visible").panel("close"); +}); +}); +function _a58(_a59){ +var _a5a=$.data(_a59,"combo"); +var opts=_a5a.options; +if(!_a5a.panel){ +_a5a.panel=$("
    ").appendTo("body"); +_a5a.panel.panel({minWidth:opts.panelMinWidth,maxWidth:opts.panelMaxWidth,minHeight:opts.panelMinHeight,maxHeight:opts.panelMaxHeight,doSize:false,closed:true,cls:"combo-p",style:{position:"absolute",zIndex:10},onOpen:function(){ +var _a5b=$(this).panel("options").comboTarget; +var _a5c=$.data(_a5b,"combo"); +if(_a5c){ +_a5c.options.onShowPanel.call(_a5b); +} +},onBeforeClose:function(){ +_a57($(this).parent()); +},onClose:function(){ +var _a5d=$(this).panel("options").comboTarget; +var _a5e=$(_a5d).data("combo"); +if(_a5e){ +_a5e.options.onHidePanel.call(_a5d); +} +}}); +} +var _a5f=$.extend(true,[],opts.icons); +if(opts.hasDownArrow){ +_a5f.push({iconCls:"combo-arrow",handler:function(e){ +_a64(e.data.target); +}}); +} +$(_a59).addClass("combo-f").textbox($.extend({},opts,{icons:_a5f,onChange:function(){ +}})); +$(_a59).attr("comboName",$(_a59).attr("textboxName")); +_a5a.combo=$(_a59).next(); +_a5a.combo.addClass("combo"); +_a5a.panel.unbind(".combo"); +for(var _a60 in opts.panelEvents){ +_a5a.panel.bind(_a60+".combo",{target:_a59},opts.panelEvents[_a60]); +} +}; +function _a61(_a62){ +var _a63=$.data(_a62,"combo"); +var opts=_a63.options; +var p=_a63.panel; +if(p.is(":visible")){ +p.panel("close"); +} +if(!opts.cloned){ +p.panel("destroy"); +} +$(_a62).textbox("destroy"); +}; +function _a64(_a65){ +var _a66=$.data(_a65,"combo").panel; +if(_a66.is(":visible")){ +var _a67=_a66.combo("combo"); +_a68(_a67); +if(_a67!=_a65){ +$(_a65).combo("showPanel"); +} +}else{ +var p=$(_a65).closest("div.combo-p").children(".combo-panel"); +$("div.combo-panel:visible").not(_a66).not(p).panel("close"); +$(_a65).combo("showPanel"); +} +$(_a65).combo("textbox").focus(); +}; +function _a57(_a69){ +$(_a69).find(".combo-f").each(function(){ +var p=$(this).combo("panel"); +if(p.is(":visible")){ +p.panel("close"); +} +}); +}; +function _a6a(e){ +var _a6b=e.data.target; +var _a6c=$.data(_a6b,"combo"); +var opts=_a6c.options; +if(!opts.editable){ +_a64(_a6b); +}else{ +var p=$(_a6b).closest("div.combo-p").children(".combo-panel"); +$("div.combo-panel:visible").not(p).each(function(){ +var _a6d=$(this).combo("combo"); +if(_a6d!=_a6b){ +_a68(_a6d); +} +}); +} +}; +function _a6e(e){ +var _a6f=e.data.target; +var t=$(_a6f); +var _a70=t.data("combo"); +var opts=t.combo("options"); +_a70.panel.panel("options").comboTarget=_a6f; +switch(e.keyCode){ +case 38: +opts.keyHandler.up.call(_a6f,e); +break; +case 40: +opts.keyHandler.down.call(_a6f,e); +break; +case 37: +opts.keyHandler.left.call(_a6f,e); +break; +case 39: +opts.keyHandler.right.call(_a6f,e); +break; +case 13: +e.preventDefault(); +opts.keyHandler.enter.call(_a6f,e); +return false; +case 9: +case 27: +_a68(_a6f); +break; +default: +if(opts.editable){ +if(_a70.timer){ +clearTimeout(_a70.timer); +} +_a70.timer=setTimeout(function(){ +var q=t.combo("getText"); +if(_a70.previousText!=q){ +_a70.previousText=q; +t.combo("showPanel"); +opts.keyHandler.query.call(_a6f,q,e); +t.combo("validate"); +} +},opts.delay); +} +} +}; +function _a71(e){ +var _a72=e.data.target; +var _a73=$(_a72).data("combo"); +if(_a73.timer){ +clearTimeout(_a73.timer); +} +}; +function _a74(_a75){ +var _a76=$.data(_a75,"combo"); +var _a77=_a76.combo; +var _a78=_a76.panel; +var opts=$(_a75).combo("options"); +var _a79=_a78.panel("options"); +_a79.comboTarget=_a75; +if(_a79.closed){ +_a78.panel("panel").show().css({zIndex:($.fn.menu?$.fn.menu.defaults.zIndex++:($.fn.window?$.fn.window.defaults.zIndex++:99)),left:-999999}); +_a78.panel("resize",{width:(opts.panelWidth?opts.panelWidth:_a77._outerWidth()),height:opts.panelHeight}); +_a78.panel("panel").hide(); +_a78.panel("open"); +} +(function(){ +if(_a79.comboTarget==_a75&&_a78.is(":visible")){ +_a78.panel("move",{left:_a7a(),top:_a7b()}); +setTimeout(arguments.callee,200); +} +})(); +function _a7a(){ +var left=_a77.offset().left; +if(opts.panelAlign=="right"){ +left+=_a77._outerWidth()-_a78._outerWidth(); +} +if(left+_a78._outerWidth()>$(window)._outerWidth()+$(document).scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-_a78._outerWidth(); +} +if(left<0){ +left=0; +} +return left; +}; +function _a7b(){ +var top=_a77.offset().top+_a77._outerHeight(); +if(top+_a78._outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=_a77.offset().top-_a78._outerHeight(); +} +if(top<$(document).scrollTop()){ +top=_a77.offset().top+_a77._outerHeight(); +} +return top; +}; +}; +function _a68(_a7c){ +var _a7d=$.data(_a7c,"combo").panel; +_a7d.panel("close"); +}; +function _a7e(_a7f,text){ +var _a80=$.data(_a7f,"combo"); +var _a81=$(_a7f).textbox("getText"); +if(_a81!=text){ +$(_a7f).textbox("setText",text); +} +_a80.previousText=text; +}; +function _a82(_a83){ +var _a84=$.data(_a83,"combo"); +var opts=_a84.options; +var _a85=$(_a83).next(); +var _a86=[]; +_a85.find(".textbox-value").each(function(){ +_a86.push($(this).val()); +}); +if(opts.multivalue){ +return _a86; +}else{ +return _a86.length?_a86[0].split(opts.separator):_a86; +} +}; +function _a87(_a88,_a89){ +var _a8a=$.data(_a88,"combo"); +var _a8b=_a8a.combo; +var opts=$(_a88).combo("options"); +if(!$.isArray(_a89)){ +_a89=_a89.split(opts.separator); +} +var _a8c=_a82(_a88); +_a8b.find(".textbox-value").remove(); +if(_a89.length){ +if(opts.multivalue){ +for(var i=0;i<_a89.length;i++){ +_a8d(_a89[i]); +} +}else{ +_a8d(_a89.join(opts.separator)); +} +} +function _a8d(_a8e){ +var name=$(_a88).attr("textboxName")||""; +var _a8f=$("").appendTo(_a8b); +_a8f.attr("name",name); +if(opts.disabled){ +_a8f.attr("disabled","disabled"); +} +_a8f.val(_a8e); +}; +var _a90=(function(){ +if(_a8c.length!=_a89.length){ +return true; +} +for(var i=0;i<_a89.length;i++){ +if(_a89[i]!=_a8c[i]){ +return true; +} +} +return false; +})(); +if(_a90){ +$(_a88).val(_a89.join(opts.separator)); +if(opts.multiple){ +opts.onChange.call(_a88,_a89,_a8c); +}else{ +opts.onChange.call(_a88,_a89[0],_a8c[0]); +} +$(_a88).closest("form").trigger("_change",[_a88]); +} +}; +function _a91(_a92){ +var _a93=_a82(_a92); +return _a93[0]; +}; +function _a94(_a95,_a96){ +_a87(_a95,[_a96]); +}; +function _a97(_a98){ +var opts=$.data(_a98,"combo").options; +var _a99=opts.onChange; +opts.onChange=function(){ +}; +if(opts.multiple){ +_a87(_a98,opts.value?opts.value:[]); +}else{ +_a94(_a98,opts.value); +} +opts.onChange=_a99; +}; +$.fn.combo=function(_a9a,_a9b){ +if(typeof _a9a=="string"){ +var _a9c=$.fn.combo.methods[_a9a]; +if(_a9c){ +return _a9c(this,_a9b); +}else{ +return this.textbox(_a9a,_a9b); +} +} +_a9a=_a9a||{}; +return this.each(function(){ +var _a9d=$.data(this,"combo"); +if(_a9d){ +$.extend(_a9d.options,_a9a); +if(_a9a.value!=undefined){ +_a9d.options.originalValue=_a9a.value; +} +}else{ +_a9d=$.data(this,"combo",{options:$.extend({},$.fn.combo.defaults,$.fn.combo.parseOptions(this),_a9a),previousText:""}); +if(_a9d.options.multiple&&_a9d.options.value==""){ +_a9d.options.originalValue=[]; +}else{ +_a9d.options.originalValue=_a9d.options.value; +} +} +_a58(this); +_a97(this); +}); +}; +$.fn.combo.methods={options:function(jq){ +var opts=jq.textbox("options"); +return $.extend($.data(jq[0],"combo").options,{width:opts.width,height:opts.height,disabled:opts.disabled,readonly:opts.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).textbox("cloneFrom",from); +$.data(this,"combo",{options:$.extend(true,{cloned:true},$(from).combo("options")),combo:$(this).next(),panel:$(from).combo("panel")}); +$(this).addClass("combo-f").attr("comboName",$(this).attr("textboxName")); +}); +},combo:function(jq){ +return jq.closest(".combo-panel").panel("options").comboTarget; +},panel:function(jq){ +return $.data(jq[0],"combo").panel; +},destroy:function(jq){ +return jq.each(function(){ +_a61(this); +}); +},showPanel:function(jq){ +return jq.each(function(){ +_a74(this); +}); +},hidePanel:function(jq){ +return jq.each(function(){ +_a68(this); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).textbox("setText",""); +var opts=$.data(this,"combo").options; +if(opts.multiple){ +$(this).combo("setValues",[]); +}else{ +$(this).combo("setValue",""); +} +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"combo").options; +if(opts.multiple){ +$(this).combo("setValues",opts.originalValue); +}else{ +$(this).combo("setValue",opts.originalValue); +} +}); +},setText:function(jq,text){ +return jq.each(function(){ +_a7e(this,text); +}); +},getValues:function(jq){ +return _a82(jq[0]); +},setValues:function(jq,_a9e){ +return jq.each(function(){ +_a87(this,_a9e); +}); +},getValue:function(jq){ +return _a91(jq[0]); +},setValue:function(jq,_a9f){ +return jq.each(function(){ +_a94(this,_a9f); +}); +}}; +$.fn.combo.parseOptions=function(_aa0){ +var t=$(_aa0); +return $.extend({},$.fn.textbox.parseOptions(_aa0),$.parser.parseOptions(_aa0,["separator","panelAlign",{panelWidth:"number",hasDownArrow:"boolean",delay:"number",reversed:"boolean",multivalue:"boolean",selectOnNavigation:"boolean"},{panelMinWidth:"number",panelMaxWidth:"number",panelMinHeight:"number",panelMaxHeight:"number"}]),{panelHeight:(t.attr("panelHeight")=="auto"?"auto":parseInt(t.attr("panelHeight"))||undefined),multiple:(t.attr("multiple")?true:undefined)}); +}; +$.fn.combo.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{click:_a6a,keydown:_a6e,paste:_a6e,drop:_a6e,blur:_a71},panelEvents:{mousedown:function(e){ +e.preventDefault(); +e.stopPropagation(); +}},panelWidth:null,panelHeight:300,panelMinWidth:null,panelMaxWidth:null,panelMinHeight:null,panelMaxHeight:null,panelAlign:"left",reversed:false,multiple:false,multivalue:true,selectOnNavigation:true,separator:",",hasDownArrow:true,delay:200,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +},query:function(q,e){ +}},onShowPanel:function(){ +},onHidePanel:function(){ +},onChange:function(_aa1,_aa2){ +}}); +})(jQuery); +(function($){ +function _aa3(_aa4,_aa5){ +var _aa6=$.data(_aa4,"combobox"); +return $.easyui.indexOfArray(_aa6.data,_aa6.options.valueField,_aa5); +}; +function _aa7(_aa8,_aa9){ +var opts=$.data(_aa8,"combobox").options; +var _aaa=$(_aa8).combo("panel"); +var item=opts.finder.getEl(_aa8,_aa9); +if(item.length){ +if(item.position().top<=0){ +var h=_aaa.scrollTop()+item.position().top; +_aaa.scrollTop(h); +}else{ +if(item.position().top+item.outerHeight()>_aaa.height()){ +var h=_aaa.scrollTop()+item.position().top+item.outerHeight()-_aaa.height(); +_aaa.scrollTop(h); +} +} +} +_aaa.triggerHandler("scroll"); +}; +function nav(_aab,dir){ +var opts=$.data(_aab,"combobox").options; +var _aac=$(_aab).combobox("panel"); +var item=_aac.children("div.combobox-item-hover"); +if(!item.length){ +item=_aac.children("div.combobox-item-selected"); +} +item.removeClass("combobox-item-hover"); +var _aad="div.combobox-item:visible:not(.combobox-item-disabled):first"; +var _aae="div.combobox-item:visible:not(.combobox-item-disabled):last"; +if(!item.length){ +item=_aac.children(dir=="next"?_aad:_aae); +}else{ +if(dir=="next"){ +item=item.nextAll(_aad); +if(!item.length){ +item=_aac.children(_aad); +} +}else{ +item=item.prevAll(_aad); +if(!item.length){ +item=_aac.children(_aae); +} +} +} +if(item.length){ +item.addClass("combobox-item-hover"); +var row=opts.finder.getRow(_aab,item); +if(row){ +$(_aab).combobox("scrollTo",row[opts.valueField]); +if(opts.selectOnNavigation){ +_aaf(_aab,row[opts.valueField]); +} +} +} +}; +function _aaf(_ab0,_ab1,_ab2){ +var opts=$.data(_ab0,"combobox").options; +var _ab3=$(_ab0).combo("getValues"); +if($.inArray(_ab1+"",_ab3)==-1){ +if(opts.multiple){ +_ab3.push(_ab1); +}else{ +_ab3=[_ab1]; +} +_ab4(_ab0,_ab3,_ab2); +} +}; +function _ab5(_ab6,_ab7){ +var opts=$.data(_ab6,"combobox").options; +var _ab8=$(_ab6).combo("getValues"); +var _ab9=$.inArray(_ab7+"",_ab8); +if(_ab9>=0){ +_ab8.splice(_ab9,1); +_ab4(_ab6,_ab8); +} +}; +function _ab4(_aba,_abb,_abc){ +var opts=$.data(_aba,"combobox").options; +var _abd=$(_aba).combo("panel"); +if(!$.isArray(_abb)){ +_abb=_abb.split(opts.separator); +} +if(!opts.multiple){ +_abb=_abb.length?[_abb[0]]:[""]; +} +var _abe=$(_aba).combo("getValues"); +if(_abd.is(":visible")){ +_abd.find(".combobox-item-selected").each(function(){ +var row=opts.finder.getRow(_aba,$(this)); +if(row){ +if($.easyui.indexOfArray(_abe,row[opts.valueField])==-1){ +$(this).removeClass("combobox-item-selected"); +} +} +}); +} +$.map(_abe,function(v){ +if($.easyui.indexOfArray(_abb,v)==-1){ +var el=opts.finder.getEl(_aba,v); +if(el.hasClass("combobox-item-selected")){ +el.removeClass("combobox-item-selected"); +opts.onUnselect.call(_aba,opts.finder.getRow(_aba,v)); +} +} +}); +var _abf=null; +var vv=[],ss=[]; +for(var i=0;i<_abb.length;i++){ +var v=_abb[i]; +var s=v; +var row=opts.finder.getRow(_aba,v); +if(row){ +s=row[opts.textField]; +_abf=row; +var el=opts.finder.getEl(_aba,v); +if(!el.hasClass("combobox-item-selected")){ +el.addClass("combobox-item-selected"); +opts.onSelect.call(_aba,row); +} +}else{ +s=_ac0(v,opts.mappingRows)||v; +} +vv.push(v); +ss.push(s); +} +if(!_abc){ +$(_aba).combo("setText",ss.join(opts.separator)); +} +if(opts.showItemIcon){ +var tb=$(_aba).combobox("textbox"); +tb.removeClass("textbox-bgicon "+opts.textboxIconCls); +if(_abf&&_abf.iconCls){ +tb.addClass("textbox-bgicon "+_abf.iconCls); +opts.textboxIconCls=_abf.iconCls; +} +} +$(_aba).combo("setValues",vv); +_abd.triggerHandler("scroll"); +function _ac0(_ac1,a){ +var item=$.easyui.getArrayItem(a,opts.valueField,_ac1); +return item?item[opts.textField]:undefined; +}; +}; +function _ac2(_ac3,data,_ac4){ +var _ac5=$.data(_ac3,"combobox"); +var opts=_ac5.options; +_ac5.data=opts.loadFilter.call(_ac3,data); +opts.view.render.call(opts.view,_ac3,$(_ac3).combo("panel"),_ac5.data); +var vv=$(_ac3).combobox("getValues"); +$.easyui.forEach(_ac5.data,false,function(row){ +if(row["selected"]){ +$.easyui.addArrayItem(vv,row[opts.valueField]+""); +} +}); +if(opts.multiple){ +_ab4(_ac3,vv,_ac4); +}else{ +_ab4(_ac3,vv.length?[vv[vv.length-1]]:[],_ac4); +} +opts.onLoadSuccess.call(_ac3,data); +}; +function _ac6(_ac7,url,_ac8,_ac9){ +var opts=$.data(_ac7,"combobox").options; +if(url){ +opts.url=url; +} +_ac8=$.extend({},opts.queryParams,_ac8||{}); +if(opts.onBeforeLoad.call(_ac7,_ac8)==false){ +return; +} +opts.loader.call(_ac7,_ac8,function(data){ +_ac2(_ac7,data,_ac9); +},function(){ +opts.onLoadError.apply(this,arguments); +}); +}; +function _aca(_acb,q){ +var _acc=$.data(_acb,"combobox"); +var opts=_acc.options; +var _acd=$(); +var qq=opts.multiple?q.split(opts.separator):[q]; +if(opts.mode=="remote"){ +_ace(qq); +_ac6(_acb,null,{q:q},true); +}else{ +var _acf=$(_acb).combo("panel"); +_acf.find(".combobox-item-hover").removeClass("combobox-item-hover"); +_acf.find(".combobox-item,.combobox-group").hide(); +var data=_acc.data; +var vv=[]; +$.map(qq,function(q){ +q=$.trim(q); +var _ad0=q; +var _ad1=undefined; +_acd=$(); +for(var i=0;i=0){ +vv.push(v); +} +}); +t.combobox("setValues",vv); +if(!opts.multiple){ +t.combobox("hidePanel"); +} +}; +function _ad6(_ad7){ +var _ad8=$.data(_ad7,"combobox"); +var opts=_ad8.options; +$(_ad7).addClass("combobox-f"); +$(_ad7).combo($.extend({},opts,{onShowPanel:function(){ +$(this).combo("panel").find("div.combobox-item:hidden,div.combobox-group:hidden").show(); +_ab4(this,$(this).combobox("getValues"),true); +$(this).combobox("scrollTo",$(this).combobox("getValue")); +opts.onShowPanel.call(this); +}})); +}; +function _ad9(e){ +$(this).children("div.combobox-item-hover").removeClass("combobox-item-hover"); +var item=$(e.target).closest("div.combobox-item"); +if(!item.hasClass("combobox-item-disabled")){ +item.addClass("combobox-item-hover"); +} +e.stopPropagation(); +}; +function _ada(e){ +$(e.target).closest("div.combobox-item").removeClass("combobox-item-hover"); +e.stopPropagation(); +}; +function _adb(e){ +var _adc=$(this).panel("options").comboTarget; +if(!_adc){ +return; +} +var opts=$(_adc).combobox("options"); +var item=$(e.target).closest("div.combobox-item"); +if(!item.length||item.hasClass("combobox-item-disabled")){ +return; +} +var row=opts.finder.getRow(_adc,item); +if(!row){ +return; +} +if(opts.blurTimer){ +clearTimeout(opts.blurTimer); +opts.blurTimer=null; +} +opts.onClick.call(_adc,row); +var _add=row[opts.valueField]; +if(opts.multiple){ +if(item.hasClass("combobox-item-selected")){ +_ab5(_adc,_add); +}else{ +_aaf(_adc,_add); +} +}else{ +$(_adc).combobox("setValue",_add).combobox("hidePanel"); +} +e.stopPropagation(); +}; +function _ade(e){ +var _adf=$(this).panel("options").comboTarget; +if(!_adf){ +return; +} +var opts=$(_adf).combobox("options"); +if(opts.groupPosition=="sticky"){ +var _ae0=$(this).children(".combobox-stick"); +if(!_ae0.length){ +_ae0=$("
    ").appendTo(this); +} +_ae0.hide(); +var _ae1=$(_adf).data("combobox"); +$(this).children(".combobox-group:visible").each(function(){ +var g=$(this); +var _ae2=opts.finder.getGroup(_adf,g); +var _ae3=_ae1.data[_ae2.startIndex+_ae2.count-1]; +var last=opts.finder.getEl(_adf,_ae3[opts.valueField]); +if(g.position().top<0&&last.position().top>0){ +_ae0.show().html(g.html()); +return false; +} +}); +} +}; +$.fn.combobox=function(_ae4,_ae5){ +if(typeof _ae4=="string"){ +var _ae6=$.fn.combobox.methods[_ae4]; +if(_ae6){ +return _ae6(this,_ae5); +}else{ +return this.combo(_ae4,_ae5); +} +} +_ae4=_ae4||{}; +return this.each(function(){ +var _ae7=$.data(this,"combobox"); +if(_ae7){ +$.extend(_ae7.options,_ae4); +}else{ +_ae7=$.data(this,"combobox",{options:$.extend({},$.fn.combobox.defaults,$.fn.combobox.parseOptions(this),_ae4),data:[]}); +} +_ad6(this); +if(_ae7.options.data){ +_ac2(this,_ae7.options.data); +}else{ +var data=$.fn.combobox.parseData(this); +if(data.length){ +_ac2(this,data); +} +} +_ac6(this); +}); +}; +$.fn.combobox.methods={options:function(jq){ +var _ae8=jq.combo("options"); +return $.extend($.data(jq[0],"combobox").options,{width:_ae8.width,height:_ae8.height,originalValue:_ae8.originalValue,disabled:_ae8.disabled,readonly:_ae8.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).combo("cloneFrom",from); +$.data(this,"combobox",$(from).data("combobox")); +$(this).addClass("combobox-f").attr("comboboxName",$(this).attr("textboxName")); +}); +},getData:function(jq){ +return $.data(jq[0],"combobox").data; +},setValues:function(jq,_ae9){ +return jq.each(function(){ +var opts=$(this).combobox("options"); +if($.isArray(_ae9)){ +_ae9=$.map(_ae9,function(_aea){ +if(_aea&&typeof _aea=="object"){ +$.easyui.addArrayItem(opts.mappingRows,opts.valueField,_aea); +return _aea[opts.valueField]; +}else{ +return _aea; +} +}); +} +_ab4(this,_ae9); +}); +},setValue:function(jq,_aeb){ +return jq.each(function(){ +$(this).combobox("setValues",$.isArray(_aeb)?_aeb:[_aeb]); +}); +},clear:function(jq){ +return jq.each(function(){ +_ab4(this,[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combobox("options"); +if(opts.multiple){ +$(this).combobox("setValues",opts.originalValue); +}else{ +$(this).combobox("setValue",opts.originalValue); +} +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_ac2(this,data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +if(typeof url=="string"){ +_ac6(this,url); +}else{ +if(url){ +var opts=$(this).combobox("options"); +opts.queryParams=url; +} +_ac6(this); +} +}); +},select:function(jq,_aec){ +return jq.each(function(){ +_aaf(this,_aec); +}); +},unselect:function(jq,_aed){ +return jq.each(function(){ +_ab5(this,_aed); +}); +},scrollTo:function(jq,_aee){ +return jq.each(function(){ +_aa7(this,_aee); +}); +}}; +$.fn.combobox.parseOptions=function(_aef){ +var t=$(_aef); +return $.extend({},$.fn.combo.parseOptions(_aef),$.parser.parseOptions(_aef,["valueField","textField","groupField","groupPosition","mode","method","url",{showItemIcon:"boolean",limitToList:"boolean"}])); +}; +$.fn.combobox.parseData=function(_af0){ +var data=[]; +var opts=$(_af0).combobox("options"); +$(_af0).children().each(function(){ +if(this.tagName.toLowerCase()=="optgroup"){ +var _af1=$(this).attr("label"); +$(this).children().each(function(){ +_af2(this,_af1); +}); +}else{ +_af2(this); +} +}); +return data; +function _af2(el,_af3){ +var t=$(el); +var row={}; +row[opts.valueField]=t.attr("value")!=undefined?t.attr("value"):t.text(); +row[opts.textField]=t.text(); +row["iconCls"]=$.parser.parseOptions(el,["iconCls"]).iconCls; +row["selected"]=t.is(":selected"); +row["disabled"]=t.is(":disabled"); +if(_af3){ +opts.groupField=opts.groupField||"group"; +row[opts.groupField]=_af3; +} +data.push(row); +}; +}; +var _af4=0; +var _af5={render:function(_af6,_af7,data){ +var _af8=$.data(_af6,"combobox"); +var opts=_af8.options; +_af4++; +_af8.itemIdPrefix="_easyui_combobox_i"+_af4; +_af8.groupIdPrefix="_easyui_combobox_g"+_af4; +_af8.groups=[]; +var dd=[]; +var _af9=undefined; +for(var i=0;i"); +dd.push(opts.groupFormatter?opts.groupFormatter.call(_af6,g):g); +dd.push("
    "); +}else{ +_af8.groups[_af8.groups.length-1].count++; +} +}else{ +_af9=undefined; +} +var cls="combobox-item"+(row.disabled?" combobox-item-disabled":"")+(g?" combobox-gitem":""); +dd.push("
    "); +if(opts.showItemIcon&&row.iconCls){ +dd.push(""); +} +dd.push(opts.formatter?opts.formatter.call(_af6,row):s); +dd.push("
    "); +} +$(_af7).html(dd.join("")); +}}; +$.fn.combobox.defaults=$.extend({},$.fn.combo.defaults,{valueField:"value",textField:"text",groupPosition:"static",groupField:null,groupFormatter:function(_afa){ +return _afa; +},mode:"local",method:"post",url:null,data:null,queryParams:{},showItemIcon:false,limitToList:false,unselectedValues:[],mappingRows:[],view:_af5,keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_ad2(this); +},query:function(q,e){ +_aca(this,q); +}},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){ +$.fn.combo.defaults.inputEvents.blur(e); +var _afb=e.data.target; +var opts=$(_afb).combobox("options"); +if(opts.reversed||opts.limitToList){ +if(opts.blurTimer){ +clearTimeout(opts.blurTimer); +} +opts.blurTimer=setTimeout(function(){ +var _afc=$(_afb).parent().length; +if(_afc){ +if(opts.reversed){ +$(_afb).combobox("setValues",$(_afb).combobox("getValues")); +}else{ +if(opts.limitToList){ +var vv=[]; +$.map($(_afb).combobox("getValues"),function(v){ +var _afd=$.easyui.indexOfArray($(_afb).combobox("getData"),opts.valueField,v); +if(_afd>=0){ +vv.push(v); +} +}); +$(_afb).combobox("setValues",vv); +} +} +opts.blurTimer=null; +} +},50); +} +}}),panelEvents:{mouseover:_ad9,mouseout:_ada,mousedown:function(e){ +e.preventDefault(); +e.stopPropagation(); +},click:_adb,scroll:_ade},filter:function(q,row){ +var opts=$(this).combobox("options"); +return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())>=0; +},formatter:function(row){ +var opts=$(this).combobox("options"); +return row[opts.textField]; +},loader:function(_afe,_aff,_b00){ +var opts=$(this).combobox("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_afe,dataType:"json",success:function(data){ +_aff(data); +},error:function(){ +_b00.apply(this,arguments); +}}); +},loadFilter:function(data){ +return data; +},finder:{getEl:function(_b01,_b02){ +var _b03=_aa3(_b01,_b02); +var id=$.data(_b01,"combobox").itemIdPrefix+"_"+_b03; +return $("#"+id); +},getGroupEl:function(_b04,_b05){ +var _b06=$.data(_b04,"combobox"); +var _b07=$.easyui.indexOfArray(_b06.groups,"value",_b05); +var id=_b06.groupIdPrefix+"_"+_b07; +return $("#"+id); +},getGroup:function(_b08,p){ +var _b09=$.data(_b08,"combobox"); +var _b0a=p.attr("id").substr(_b09.groupIdPrefix.length+1); +return _b09.groups[parseInt(_b0a)]; +},getRow:function(_b0b,p){ +var _b0c=$.data(_b0b,"combobox"); +var _b0d=(p instanceof $)?p.attr("id").substr(_b0c.itemIdPrefix.length+1):_aa3(_b0b,p); +return _b0c.data[parseInt(_b0d)]; +}},onBeforeLoad:function(_b0e){ +},onLoadSuccess:function(data){ +},onLoadError:function(){ +},onSelect:function(_b0f){ +},onUnselect:function(_b10){ +},onClick:function(_b11){ +}}); +})(jQuery); +(function($){ +function _b12(_b13){ +var _b14=$.data(_b13,"combotree"); +var opts=_b14.options; +var tree=_b14.tree; +$(_b13).addClass("combotree-f"); +$(_b13).combo($.extend({},opts,{onShowPanel:function(){ +if(opts.editable){ +tree.tree("doFilter",""); +} +opts.onShowPanel.call(this); +}})); +var _b15=$(_b13).combo("panel"); +if(!tree){ +tree=$("
      ").appendTo(_b15); +_b14.tree=tree; +} +tree.tree($.extend({},opts,{checkbox:opts.multiple,onLoadSuccess:function(node,data){ +var _b16=$(_b13).combotree("getValues"); +if(opts.multiple){ +$.map(tree.tree("getChecked"),function(node){ +$.easyui.addArrayItem(_b16,node.id); +}); +} +_b1b(_b13,_b16,_b14.remainText); +opts.onLoadSuccess.call(this,node,data); +},onClick:function(node){ +if(opts.multiple){ +$(this).tree(node.checked?"uncheck":"check",node.target); +}else{ +$(_b13).combo("hidePanel"); +} +_b14.remainText=false; +_b18(_b13); +opts.onClick.call(this,node); +},onCheck:function(node,_b17){ +_b14.remainText=false; +_b18(_b13); +opts.onCheck.call(this,node,_b17); +}})); +}; +function _b18(_b19){ +var _b1a=$.data(_b19,"combotree"); +var opts=_b1a.options; +var tree=_b1a.tree; +var vv=[]; +if(opts.multiple){ +vv=$.map(tree.tree("getChecked"),function(node){ +return node.id; +}); +}else{ +var node=tree.tree("getSelected"); +if(node){ +vv.push(node.id); +} +} +vv=vv.concat(opts.unselectedValues); +_b1b(_b19,vv,_b1a.remainText); +}; +function _b1b(_b1c,_b1d,_b1e){ +var _b1f=$.data(_b1c,"combotree"); +var opts=_b1f.options; +var tree=_b1f.tree; +var _b20=tree.tree("options"); +var _b21=_b20.onBeforeCheck; +var _b22=_b20.onCheck; +var _b23=_b20.onSelect; +_b20.onBeforeCheck=_b20.onCheck=_b20.onSelect=function(){ +}; +if(!$.isArray(_b1d)){ +_b1d=_b1d.split(opts.separator); +} +if(!opts.multiple){ +_b1d=_b1d.length?[_b1d[0]]:[""]; +} +var vv=$.map(_b1d,function(_b24){ +return String(_b24); +}); +tree.find("div.tree-node-selected").removeClass("tree-node-selected"); +$.map(tree.tree("getChecked"),function(node){ +if($.inArray(String(node.id),vv)==-1){ +tree.tree("uncheck",node.target); +} +}); +var ss=[]; +opts.unselectedValues=[]; +$.map(vv,function(v){ +var node=tree.tree("find",v); +if(node){ +tree.tree("check",node.target).tree("select",node.target); +ss.push(_b25(node)); +}else{ +ss.push(_b26(v,opts.mappingRows)||v); +opts.unselectedValues.push(v); +} +}); +if(opts.multiple){ +$.map(tree.tree("getChecked"),function(node){ +var id=String(node.id); +if($.inArray(id,vv)==-1){ +vv.push(id); +ss.push(_b25(node)); +} +}); +} +_b20.onBeforeCheck=_b21; +_b20.onCheck=_b22; +_b20.onSelect=_b23; +if(!_b1e){ +var s=ss.join(opts.separator); +if($(_b1c).combo("getText")!=s){ +$(_b1c).combo("setText",s); +} +} +$(_b1c).combo("setValues",vv); +function _b26(_b27,a){ +var item=$.easyui.getArrayItem(a,"id",_b27); +return item?_b25(item):undefined; +}; +function _b25(node){ +return node[opts.textField||""]||node.text; +}; +}; +function _b28(_b29,q){ +var _b2a=$.data(_b29,"combotree"); +var opts=_b2a.options; +var tree=_b2a.tree; +_b2a.remainText=true; +tree.tree("doFilter",opts.multiple?q.split(opts.separator):q); +}; +function _b2b(_b2c){ +var _b2d=$.data(_b2c,"combotree"); +_b2d.remainText=false; +$(_b2c).combotree("setValues",$(_b2c).combotree("getValues")); +$(_b2c).combotree("hidePanel"); +}; +$.fn.combotree=function(_b2e,_b2f){ +if(typeof _b2e=="string"){ +var _b30=$.fn.combotree.methods[_b2e]; +if(_b30){ +return _b30(this,_b2f); +}else{ +return this.combo(_b2e,_b2f); +} +} +_b2e=_b2e||{}; +return this.each(function(){ +var _b31=$.data(this,"combotree"); +if(_b31){ +$.extend(_b31.options,_b2e); +}else{ +$.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_b2e)}); +} +_b12(this); +}); +}; +$.fn.combotree.methods={options:function(jq){ +var _b32=jq.combo("options"); +return $.extend($.data(jq[0],"combotree").options,{width:_b32.width,height:_b32.height,originalValue:_b32.originalValue,disabled:_b32.disabled,readonly:_b32.readonly}); +},clone:function(jq,_b33){ +var t=jq.combo("clone",_b33); +t.data("combotree",{options:$.extend(true,{},jq.combotree("options")),tree:jq.combotree("tree")}); +return t; +},tree:function(jq){ +return $.data(jq[0],"combotree").tree; +},loadData:function(jq,data){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +opts.data=data; +var tree=$.data(this,"combotree").tree; +tree.tree("loadData",data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +var tree=$.data(this,"combotree").tree; +if(url){ +opts.url=url; +} +tree.tree({url:opts.url}); +}); +},setValues:function(jq,_b34){ +return jq.each(function(){ +var opts=$(this).combotree("options"); +if($.isArray(_b34)){ +_b34=$.map(_b34,function(_b35){ +if(_b35&&typeof _b35=="object"){ +$.easyui.addArrayItem(opts.mappingRows,"id",_b35); +return _b35.id; +}else{ +return _b35; +} +}); +} +_b1b(this,_b34); +}); +},setValue:function(jq,_b36){ +return jq.each(function(){ +$(this).combotree("setValues",$.isArray(_b36)?_b36:[_b36]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combotree("setValues",[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combotree("options"); +if(opts.multiple){ +$(this).combotree("setValues",opts.originalValue); +}else{ +$(this).combotree("setValue",opts.originalValue); +} +}); +}}; +$.fn.combotree.parseOptions=function(_b37){ +return $.extend({},$.fn.combo.parseOptions(_b37),$.fn.tree.parseOptions(_b37)); +}; +$.fn.combotree.defaults=$.extend({},$.fn.combo.defaults,$.fn.tree.defaults,{editable:false,textField:null,unselectedValues:[],mappingRows:[],keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_b2b(this); +},query:function(q,e){ +_b28(this,q); +}}}); +})(jQuery); +(function($){ +function _b38(_b39){ +var _b3a=$.data(_b39,"combogrid"); +var opts=_b3a.options; +var grid=_b3a.grid; +$(_b39).addClass("combogrid-f").combo($.extend({},opts,{onShowPanel:function(){ +_b4f(this,$(this).combogrid("getValues"),true); +var p=$(this).combogrid("panel"); +var _b3b=p.outerHeight()-p.height(); +var _b3c=p._size("minHeight"); +var _b3d=p._size("maxHeight"); +var dg=$(this).combogrid("grid"); +dg.datagrid("resize",{width:"100%",height:(isNaN(parseInt(opts.panelHeight))?"auto":"100%"),minHeight:(_b3c?_b3c-_b3b:""),maxHeight:(_b3d?_b3d-_b3b:"")}); +var row=dg.datagrid("getSelected"); +if(row){ +dg.datagrid("scrollTo",dg.datagrid("getRowIndex",row)); +} +opts.onShowPanel.call(this); +}})); +var _b3e=$(_b39).combo("panel"); +if(!grid){ +grid=$("
      ").appendTo(_b3e); +_b3a.grid=grid; +} +grid.datagrid($.extend({},opts,{border:false,singleSelect:(!opts.multiple),onLoadSuccess:_b3f,onClickRow:_b40,onSelect:_b41("onSelect"),onUnselect:_b41("onUnselect"),onSelectAll:_b41("onSelectAll"),onUnselectAll:_b41("onUnselectAll")})); +function _b42(dg){ +return $(dg).closest(".combo-panel").panel("options").comboTarget||_b39; +}; +function _b3f(data){ +var _b43=_b42(this); +var _b44=$(_b43).data("combogrid"); +var opts=_b44.options; +var _b45=$(_b43).combo("getValues"); +_b4f(_b43,_b45,_b44.remainText); +opts.onLoadSuccess.call(this,data); +}; +function _b40(_b46,row){ +var _b47=_b42(this); +var _b48=$(_b47).data("combogrid"); +var opts=_b48.options; +_b48.remainText=false; +_b49.call(this); +if(!opts.multiple){ +$(_b47).combo("hidePanel"); +} +opts.onClickRow.call(this,_b46,row); +}; +function _b41(_b4a){ +return function(_b4b,row){ +var _b4c=_b42(this); +var opts=$(_b4c).combogrid("options"); +if(_b4a=="onUnselectAll"){ +if(opts.multiple){ +_b49.call(this); +} +}else{ +_b49.call(this); +} +opts[_b4a].call(this,_b4b,row); +}; +}; +function _b49(){ +var dg=$(this); +var _b4d=_b42(dg); +var _b4e=$(_b4d).data("combogrid"); +var opts=_b4e.options; +var vv=$.map(dg.datagrid("getSelections"),function(row){ +return row[opts.idField]; +}); +vv=vv.concat(opts.unselectedValues); +_b4f(_b4d,vv,_b4e.remainText); +}; +}; +function nav(_b50,dir){ +var _b51=$.data(_b50,"combogrid"); +var opts=_b51.options; +var grid=_b51.grid; +var _b52=grid.datagrid("getRows").length; +if(!_b52){ +return; +} +var tr=opts.finder.getTr(grid[0],null,"highlight"); +if(!tr.length){ +tr=opts.finder.getTr(grid[0],null,"selected"); +} +var _b53; +if(!tr.length){ +_b53=(dir=="next"?0:_b52-1); +}else{ +var _b53=parseInt(tr.attr("datagrid-row-index")); +_b53+=(dir=="next"?1:-1); +if(_b53<0){ +_b53=_b52-1; +} +if(_b53>=_b52){ +_b53=0; +} +} +grid.datagrid("highlightRow",_b53); +if(opts.selectOnNavigation){ +_b51.remainText=false; +grid.datagrid("selectRow",_b53); +} +}; +function _b4f(_b54,_b55,_b56){ +var _b57=$.data(_b54,"combogrid"); +var opts=_b57.options; +var grid=_b57.grid; +var _b58=$(_b54).combo("getValues"); +var _b59=$(_b54).combo("options"); +var _b5a=_b59.onChange; +_b59.onChange=function(){ +}; +var _b5b=grid.datagrid("options"); +var _b5c=_b5b.onSelect; +var _b5d=_b5b.onUnselectAll; +_b5b.onSelect=_b5b.onUnselectAll=function(){ +}; +if(!$.isArray(_b55)){ +_b55=_b55.split(opts.separator); +} +if(!opts.multiple){ +_b55=_b55.length?[_b55[0]]:[""]; +} +var vv=$.map(_b55,function(_b5e){ +return String(_b5e); +}); +vv=$.grep(vv,function(v,_b5f){ +return _b5f===$.inArray(v,vv); +}); +var _b60=$.grep(grid.datagrid("getSelections"),function(row,_b61){ +return $.inArray(String(row[opts.idField]),vv)>=0; +}); +grid.datagrid("clearSelections"); +grid.data("datagrid").selectedRows=_b60; +var ss=[]; +opts.unselectedValues=[]; +$.map(vv,function(v){ +var _b62=grid.datagrid("getRowIndex",v); +if(_b62>=0){ +grid.datagrid("selectRow",_b62); +}else{ +opts.unselectedValues.push(v); +} +ss.push(_b63(v,grid.datagrid("getRows"))||_b63(v,_b60)||_b63(v,opts.mappingRows)||v); +}); +$(_b54).combo("setValues",_b58); +_b59.onChange=_b5a; +_b5b.onSelect=_b5c; +_b5b.onUnselectAll=_b5d; +if(!_b56){ +var s=ss.join(opts.separator); +if($(_b54).combo("getText")!=s){ +$(_b54).combo("setText",s); +} +} +$(_b54).combo("setValues",_b55); +function _b63(_b64,a){ +var item=$.easyui.getArrayItem(a,opts.idField,_b64); +return item?item[opts.textField]:undefined; +}; +}; +function _b65(_b66,q){ +var _b67=$.data(_b66,"combogrid"); +var opts=_b67.options; +var grid=_b67.grid; +_b67.remainText=true; +var qq=opts.multiple?q.split(opts.separator):[q]; +qq=$.grep(qq,function(q){ +return $.trim(q)!=""; +}); +if(opts.mode=="remote"){ +_b68(qq); +grid.datagrid("load",$.extend({},opts.queryParams,{q:q})); +}else{ +grid.datagrid("highlightRow",-1); +var rows=grid.datagrid("getRows"); +var vv=[]; +$.map(qq,function(q){ +q=$.trim(q); +var _b69=q; +_b6a(opts.mappingRows,q); +_b6a(grid.datagrid("getSelections"),q); +var _b6b=_b6a(rows,q); +if(_b6b>=0){ +if(opts.reversed){ +grid.datagrid("highlightRow",_b6b); +} +}else{ +$.map(rows,function(row,i){ +if(opts.filter.call(_b66,q,row)){ +grid.datagrid("highlightRow",i); +} +}); +} +}); +_b68(vv); +} +function _b6a(rows,q){ +for(var i=0;i=0){ +$.easyui.addArrayItem(vv,v); +} +}); +$(_b6d).combogrid("setValues",vv); +if(!opts.multiple){ +$(_b6d).combogrid("hidePanel"); +} +}; +$.fn.combogrid=function(_b70,_b71){ +if(typeof _b70=="string"){ +var _b72=$.fn.combogrid.methods[_b70]; +if(_b72){ +return _b72(this,_b71); +}else{ +return this.combo(_b70,_b71); +} +} +_b70=_b70||{}; +return this.each(function(){ +var _b73=$.data(this,"combogrid"); +if(_b73){ +$.extend(_b73.options,_b70); +}else{ +_b73=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_b70)}); +} +_b38(this); +}); +}; +$.fn.combogrid.methods={options:function(jq){ +var _b74=jq.combo("options"); +return $.extend($.data(jq[0],"combogrid").options,{width:_b74.width,height:_b74.height,originalValue:_b74.originalValue,disabled:_b74.disabled,readonly:_b74.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).combo("cloneFrom",from); +$.data(this,"combogrid",{options:$.extend(true,{cloned:true},$(from).combogrid("options")),combo:$(this).next(),panel:$(from).combo("panel"),grid:$(from).combogrid("grid")}); +}); +},grid:function(jq){ +return $.data(jq[0],"combogrid").grid; +},setValues:function(jq,_b75){ +return jq.each(function(){ +var opts=$(this).combogrid("options"); +if($.isArray(_b75)){ +_b75=$.map(_b75,function(_b76){ +if(_b76&&typeof _b76=="object"){ +$.easyui.addArrayItem(opts.mappingRows,opts.idField,_b76); +return _b76[opts.idField]; +}else{ +return _b76; +} +}); +} +_b4f(this,_b75); +}); +},setValue:function(jq,_b77){ +return jq.each(function(){ +$(this).combogrid("setValues",$.isArray(_b77)?_b77:[_b77]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combogrid("setValues",[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combogrid("options"); +if(opts.multiple){ +$(this).combogrid("setValues",opts.originalValue); +}else{ +$(this).combogrid("setValue",opts.originalValue); +} +}); +}}; +$.fn.combogrid.parseOptions=function(_b78){ +var t=$(_b78); +return $.extend({},$.fn.combo.parseOptions(_b78),$.fn.datagrid.parseOptions(_b78),$.parser.parseOptions(_b78,["idField","textField","mode"])); +}; +$.fn.combogrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.datagrid.defaults,{loadMsg:null,idField:null,textField:null,unselectedValues:[],mappingRows:[],mode:"local",keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_b6c(this); +},query:function(q,e){ +_b65(this,q); +}},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){ +$.fn.combo.defaults.inputEvents.blur(e); +var _b79=e.data.target; +var opts=$(_b79).combogrid("options"); +if(opts.reversed){ +$(_b79).combogrid("setValues",$(_b79).combogrid("getValues")); +} +}}),panelEvents:{mousedown:function(e){ +}},filter:function(q,row){ +var opts=$(this).combogrid("options"); +return (row[opts.textField]||"").toLowerCase().indexOf(q.toLowerCase())>=0; +}}); +})(jQuery); +(function($){ +function _b7a(_b7b){ +var _b7c=$.data(_b7b,"combotreegrid"); +var opts=_b7c.options; +$(_b7b).addClass("combotreegrid-f").combo($.extend({},opts,{onShowPanel:function(){ +var p=$(this).combotreegrid("panel"); +var _b7d=p.outerHeight()-p.height(); +var _b7e=p._size("minHeight"); +var _b7f=p._size("maxHeight"); +var dg=$(this).combotreegrid("grid"); +dg.treegrid("resize",{width:"100%",height:(isNaN(parseInt(opts.panelHeight))?"auto":"100%"),minHeight:(_b7e?_b7e-_b7d:""),maxHeight:(_b7f?_b7f-_b7d:"")}); +var row=dg.treegrid("getSelected"); +if(row){ +dg.treegrid("scrollTo",row[opts.idField]); +} +opts.onShowPanel.call(this); +}})); +if(!_b7c.grid){ +var _b80=$(_b7b).combo("panel"); +_b7c.grid=$("
      ").appendTo(_b80); +} +_b7c.grid.treegrid($.extend({},opts,{border:false,checkbox:opts.multiple,onLoadSuccess:function(row,data){ +var _b81=$(_b7b).combotreegrid("getValues"); +if(opts.multiple){ +$.map($(this).treegrid("getCheckedNodes"),function(row){ +$.easyui.addArrayItem(_b81,row[opts.idField]); +}); +} +_b86(_b7b,_b81); +opts.onLoadSuccess.call(this,row,data); +_b7c.remainText=false; +},onClickRow:function(row){ +if(opts.multiple){ +$(this).treegrid(row.checked?"uncheckNode":"checkNode",row[opts.idField]); +$(this).treegrid("unselect",row[opts.idField]); +}else{ +$(_b7b).combo("hidePanel"); +} +_b83(_b7b); +opts.onClickRow.call(this,row); +},onCheckNode:function(row,_b82){ +_b83(_b7b); +opts.onCheckNode.call(this,row,_b82); +}})); +}; +function _b83(_b84){ +var _b85=$.data(_b84,"combotreegrid"); +var opts=_b85.options; +var grid=_b85.grid; +var vv=[]; +if(opts.multiple){ +vv=$.map(grid.treegrid("getCheckedNodes"),function(row){ +return row[opts.idField]; +}); +}else{ +var row=grid.treegrid("getSelected"); +if(row){ +vv.push(row[opts.idField]); +} +} +vv=vv.concat(opts.unselectedValues); +_b86(_b84,vv); +}; +function _b86(_b87,_b88){ +var _b89=$.data(_b87,"combotreegrid"); +var opts=_b89.options; +var grid=_b89.grid; +if(!$.isArray(_b88)){ +_b88=_b88.split(opts.separator); +} +if(!opts.multiple){ +_b88=_b88.length?[_b88[0]]:[""]; +} +var vv=$.map(_b88,function(_b8a){ +return String(_b8a); +}); +vv=$.grep(vv,function(v,_b8b){ +return _b8b===$.inArray(v,vv); +}); +var _b8c=grid.treegrid("getSelected"); +if(_b8c){ +grid.treegrid("unselect",_b8c[opts.idField]); +} +$.map(grid.treegrid("getCheckedNodes"),function(row){ +if($.inArray(String(row[opts.idField]),vv)==-1){ +grid.treegrid("uncheckNode",row[opts.idField]); +} +}); +var ss=[]; +opts.unselectedValues=[]; +$.map(vv,function(v){ +var row=grid.treegrid("find",v); +if(row){ +if(opts.multiple){ +grid.treegrid("checkNode",v); +}else{ +grid.treegrid("select",v); +} +ss.push(_b8d(row)); +}else{ +ss.push(_b8e(v,opts.mappingRows)||v); +opts.unselectedValues.push(v); +} +}); +if(opts.multiple){ +$.map(grid.treegrid("getCheckedNodes"),function(row){ +var id=String(row[opts.idField]); +if($.inArray(id,vv)==-1){ +vv.push(id); +ss.push(_b8d(row)); +} +}); +} +if(!_b89.remainText){ +var s=ss.join(opts.separator); +if($(_b87).combo("getText")!=s){ +$(_b87).combo("setText",s); +} +} +$(_b87).combo("setValues",vv); +function _b8e(_b8f,a){ +var item=$.easyui.getArrayItem(a,opts.idField,_b8f); +return item?_b8d(item):undefined; +}; +function _b8d(row){ +return row[opts.textField||""]||row[opts.treeField]; +}; +}; +function _b90(_b91,q){ +var _b92=$.data(_b91,"combotreegrid"); +var opts=_b92.options; +var grid=_b92.grid; +_b92.remainText=true; +var qq=opts.multiple?q.split(opts.separator):[q]; +qq=$.grep(qq,function(q){ +return $.trim(q)!=""; +}); +grid.treegrid("clearSelections").treegrid("clearChecked").treegrid("highlightRow",-1); +if(opts.mode=="remote"){ +_b93(qq); +grid.treegrid("load",$.extend({},opts.queryParams,{q:q})); +}else{ +if(q){ +var data=grid.treegrid("getData"); +var vv=[]; +$.map(qq,function(q){ +q=$.trim(q); +if(q){ +var v=undefined; +$.easyui.forEach(data,true,function(row){ +if(q.toLowerCase()==String(row[opts.treeField]).toLowerCase()){ +v=row[opts.idField]; +return false; +}else{ +if(opts.filter.call(_b91,q,row)){ +grid.treegrid("expandTo",row[opts.idField]); +grid.treegrid("highlightRow",row[opts.idField]); +return false; +} +} +}); +if(v==undefined){ +$.easyui.forEach(opts.mappingRows,false,function(row){ +if(q.toLowerCase()==String(row[opts.treeField])){ +v=row[opts.idField]; +return false; +} +}); +} +if(v!=undefined){ +vv.push(v); +}else{ +vv.push(q); +} +} +}); +_b93(vv); +_b92.remainText=false; +} +} +function _b93(vv){ +if(!opts.reversed){ +$(_b91).combotreegrid("setValues",vv); +} +}; +}; +function _b94(_b95){ +var _b96=$.data(_b95,"combotreegrid"); +var opts=_b96.options; +var grid=_b96.grid; +var tr=opts.finder.getTr(grid[0],null,"highlight"); +_b96.remainText=false; +if(tr.length){ +var id=tr.attr("node-id"); +if(opts.multiple){ +if(tr.hasClass("datagrid-row-selected")){ +grid.treegrid("uncheckNode",id); +}else{ +grid.treegrid("checkNode",id); +} +}else{ +grid.treegrid("selectRow",id); +} +} +var vv=[]; +if(opts.multiple){ +$.map(grid.treegrid("getCheckedNodes"),function(row){ +vv.push(row[opts.idField]); +}); +}else{ +var row=grid.treegrid("getSelected"); +if(row){ +vv.push(row[opts.idField]); +} +} +$.map(opts.unselectedValues,function(v){ +if($.easyui.indexOfArray(opts.mappingRows,opts.idField,v)>=0){ +$.easyui.addArrayItem(vv,v); +} +}); +$(_b95).combotreegrid("setValues",vv); +if(!opts.multiple){ +$(_b95).combotreegrid("hidePanel"); +} +}; +$.fn.combotreegrid=function(_b97,_b98){ +if(typeof _b97=="string"){ +var _b99=$.fn.combotreegrid.methods[_b97]; +if(_b99){ +return _b99(this,_b98); +}else{ +return this.combo(_b97,_b98); +} +} +_b97=_b97||{}; +return this.each(function(){ +var _b9a=$.data(this,"combotreegrid"); +if(_b9a){ +$.extend(_b9a.options,_b97); +}else{ +_b9a=$.data(this,"combotreegrid",{options:$.extend({},$.fn.combotreegrid.defaults,$.fn.combotreegrid.parseOptions(this),_b97)}); +} +_b7a(this); +}); +}; +$.fn.combotreegrid.methods={options:function(jq){ +var _b9b=jq.combo("options"); +return $.extend($.data(jq[0],"combotreegrid").options,{width:_b9b.width,height:_b9b.height,originalValue:_b9b.originalValue,disabled:_b9b.disabled,readonly:_b9b.readonly}); +},grid:function(jq){ +return $.data(jq[0],"combotreegrid").grid; +},setValues:function(jq,_b9c){ +return jq.each(function(){ +var opts=$(this).combotreegrid("options"); +if($.isArray(_b9c)){ +_b9c=$.map(_b9c,function(_b9d){ +if(_b9d&&typeof _b9d=="object"){ +$.easyui.addArrayItem(opts.mappingRows,opts.idField,_b9d); +return _b9d[opts.idField]; +}else{ +return _b9d; +} +}); +} +_b86(this,_b9c); +}); +},setValue:function(jq,_b9e){ +return jq.each(function(){ +$(this).combotreegrid("setValues",$.isArray(_b9e)?_b9e:[_b9e]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combotreegrid("setValues",[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combotreegrid("options"); +if(opts.multiple){ +$(this).combotreegrid("setValues",opts.originalValue); +}else{ +$(this).combotreegrid("setValue",opts.originalValue); +} +}); +}}; +$.fn.combotreegrid.parseOptions=function(_b9f){ +var t=$(_b9f); +return $.extend({},$.fn.combo.parseOptions(_b9f),$.fn.treegrid.parseOptions(_b9f),$.parser.parseOptions(_b9f,["mode",{limitToGrid:"boolean"}])); +}; +$.fn.combotreegrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.treegrid.defaults,{editable:false,singleSelect:true,limitToGrid:false,unselectedValues:[],mappingRows:[],mode:"local",textField:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_b94(this); +},query:function(q,e){ +_b90(this,q); +}},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){ +$.fn.combo.defaults.inputEvents.blur(e); +var _ba0=e.data.target; +var opts=$(_ba0).combotreegrid("options"); +if(opts.limitToGrid){ +_b94(_ba0); +} +}}),filter:function(q,row){ +var opts=$(this).combotreegrid("options"); +return (row[opts.treeField]||"").toLowerCase().indexOf(q.toLowerCase())>=0; +}}); +})(jQuery); +(function($){ +function _ba1(_ba2){ +var _ba3=$.data(_ba2,"tagbox"); +var opts=_ba3.options; +$(_ba2).addClass("tagbox-f").combobox($.extend({},opts,{cls:"tagbox",reversed:true,onChange:function(_ba4,_ba5){ +_ba6(); +$(this).combobox("hidePanel"); +opts.onChange.call(_ba2,_ba4,_ba5); +},onResizing:function(_ba7,_ba8){ +var _ba9=$(this).combobox("textbox"); +var tb=$(this).data("textbox").textbox; +var _baa=tb.outerWidth(); +tb.css({height:"",paddingLeft:_ba9.css("marginLeft"),paddingRight:_ba9.css("marginRight")}); +_ba9.css("margin",0); +tb._outerWidth(_baa); +_bbd(_ba2); +_baf(this); +opts.onResizing.call(_ba2,_ba7,_ba8); +},onLoadSuccess:function(data){ +_ba6(); +opts.onLoadSuccess.call(_ba2,data); +}})); +_ba6(); +_bbd(_ba2); +function _ba6(){ +$(_ba2).next().find(".tagbox-label").remove(); +var _bab=$(_ba2).tagbox("textbox"); +var ss=[]; +$.map($(_ba2).tagbox("getValues"),function(_bac,_bad){ +var row=opts.finder.getRow(_ba2,_bac); +var text=opts.tagFormatter.call(_ba2,_bac,row); +var cs={}; +var css=opts.tagStyler.call(_ba2,_bac,row)||""; +if(typeof css=="string"){ +cs={s:css}; +}else{ +cs={c:css["class"]||"",s:css["style"]||""}; +} +var _bae=$("").insertBefore(_bab).html(text); +_bae.attr("tagbox-index",_bad); +_bae.attr("style",cs.s).addClass(cs.c); +$("").appendTo(_bae); +}); +_baf(_ba2); +$(_ba2).combobox("setText",""); +}; +}; +function _baf(_bb0,_bb1){ +var span=$(_bb0).next(); +var _bb2=_bb1?$(_bb1):span.find(".tagbox-label"); +if(_bb2.length){ +var _bb3=$(_bb0).tagbox("textbox"); +var _bb4=$(_bb2[0]); +var _bb5=_bb4.outerHeight(true)-_bb4.outerHeight(); +var _bb6=_bb3.outerHeight()-_bb5*2; +_bb2.css({height:_bb6+"px",lineHeight:_bb6+"px"}); +var _bb7=span.find(".textbox-addon").css("height","100%"); +_bb7.find(".textbox-icon").css("height","100%"); +span.find(".textbox-button").linkbutton("resize",{height:"100%"}); +} +}; +function _bb8(_bb9){ +var span=$(_bb9).next(); +span.unbind(".tagbox").bind("click.tagbox",function(e){ +var opts=$(_bb9).tagbox("options"); +if(opts.disabled||opts.readonly){ +return; +} +if($(e.target).hasClass("tagbox-remove")){ +var _bba=parseInt($(e.target).parent().attr("tagbox-index")); +var _bbb=$(_bb9).tagbox("getValues"); +if(opts.onBeforeRemoveTag.call(_bb9,_bbb[_bba])==false){ +return; +} +opts.onRemoveTag.call(_bb9,_bbb[_bba]); +_bbb.splice(_bba,1); +$(_bb9).tagbox("setValues",_bbb); +}else{ +var _bbc=$(e.target).closest(".tagbox-label"); +if(_bbc.length){ +var _bba=parseInt(_bbc.attr("tagbox-index")); +var _bbb=$(_bb9).tagbox("getValues"); +opts.onClickTag.call(_bb9,_bbb[_bba]); +} +} +$(this).find(".textbox-text").focus(); +}).bind("keyup.tagbox",function(e){ +_bbd(_bb9); +}).bind("mouseover.tagbox",function(e){ +if($(e.target).closest(".textbox-button,.textbox-addon,.tagbox-label").length){ +$(this).triggerHandler("mouseleave"); +}else{ +$(this).find(".textbox-text").triggerHandler("mouseenter"); +} +}).bind("mouseleave.tagbox",function(e){ +$(this).find(".textbox-text").triggerHandler("mouseleave"); +}); +}; +function _bbd(_bbe){ +var opts=$(_bbe).tagbox("options"); +var _bbf=$(_bbe).tagbox("textbox"); +var span=$(_bbe).next(); +var tmp=$("").appendTo("body"); +tmp.attr("style",_bbf.attr("style")); +tmp.css({position:"absolute",top:-9999,left:-9999,width:"auto",fontFamily:_bbf.css("fontFamily"),fontSize:_bbf.css("fontSize"),fontWeight:_bbf.css("fontWeight"),whiteSpace:"nowrap"}); +var _bc0=_bc1(_bbf.val()); +var _bc2=_bc1(opts.prompt||""); +tmp.remove(); +var _bc3=Math.min(Math.max(_bc0,_bc2)+20,span.width()); +_bbf._outerWidth(_bc3); +span.find(".textbox-button").linkbutton("resize",{height:"100%"}); +function _bc1(val){ +var s=val.replace(/&/g,"&").replace(/\s/g," ").replace(//g,">"); +tmp.html(s); +return tmp.outerWidth(); +}; +}; +function _bc4(_bc5){ +var t=$(_bc5); +var opts=t.tagbox("options"); +if(opts.limitToList){ +var _bc6=t.tagbox("panel"); +var item=_bc6.children("div.combobox-item-hover"); +if(item.length){ +item.removeClass("combobox-item-hover"); +var row=opts.finder.getRow(_bc5,item); +var _bc7=row[opts.valueField]; +$(_bc5).tagbox(item.hasClass("combobox-item-selected")?"unselect":"select",_bc7); +} +$(_bc5).tagbox("hidePanel"); +}else{ +var v=$.trim($(_bc5).tagbox("getText")); +if(v!==""){ +var _bc8=$(_bc5).tagbox("getValues"); +_bc8.push(v); +$(_bc5).tagbox("setValues",_bc8); +} +} +}; +function _bc9(_bca,_bcb){ +$(_bca).combobox("setText",""); +_bbd(_bca); +$(_bca).combobox("setValues",_bcb); +$(_bca).combobox("setText",""); +$(_bca).tagbox("validate"); +}; +$.fn.tagbox=function(_bcc,_bcd){ +if(typeof _bcc=="string"){ +var _bce=$.fn.tagbox.methods[_bcc]; +if(_bce){ +return _bce(this,_bcd); +}else{ +return this.combobox(_bcc,_bcd); +} +} +_bcc=_bcc||{}; +return this.each(function(){ +var _bcf=$.data(this,"tagbox"); +if(_bcf){ +$.extend(_bcf.options,_bcc); +}else{ +$.data(this,"tagbox",{options:$.extend({},$.fn.tagbox.defaults,$.fn.tagbox.parseOptions(this),_bcc)}); +} +_ba1(this); +_bb8(this); +}); +}; +$.fn.tagbox.methods={options:function(jq){ +var _bd0=jq.combobox("options"); +return $.extend($.data(jq[0],"tagbox").options,{width:_bd0.width,height:_bd0.height,originalValue:_bd0.originalValue,disabled:_bd0.disabled,readonly:_bd0.readonly}); +},setValues:function(jq,_bd1){ +return jq.each(function(){ +_bc9(this,_bd1); +}); +},reset:function(jq){ +return jq.each(function(){ +$(this).combobox("reset").combobox("setText",""); +}); +}}; +$.fn.tagbox.parseOptions=function(_bd2){ +return $.extend({},$.fn.combobox.parseOptions(_bd2),$.parser.parseOptions(_bd2,[])); +}; +$.fn.tagbox.defaults=$.extend({},$.fn.combobox.defaults,{hasDownArrow:false,multiple:true,reversed:true,selectOnNavigation:false,tipOptions:$.extend({},$.fn.textbox.defaults.tipOptions,{showDelay:200}),val:function(_bd3){ +var vv=$(_bd3).parent().prev().tagbox("getValues"); +if($(_bd3).is(":focus")){ +vv.push($(_bd3).val()); +} +return vv.join(","); +},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){ +var _bd4=e.data.target; +var opts=$(_bd4).tagbox("options"); +if(opts.limitToList){ +_bc4(_bd4); +} +}}),keyHandler:$.extend({},$.fn.combobox.defaults.keyHandler,{enter:function(e){ +_bc4(this); +},query:function(q,e){ +var opts=$(this).tagbox("options"); +if(opts.limitToList){ +$.fn.combobox.defaults.keyHandler.query.call(this,q,e); +}else{ +$(this).combobox("hidePanel"); +} +}}),tagFormatter:function(_bd5,row){ +var opts=$(this).tagbox("options"); +return row?row[opts.textField]:_bd5; +},tagStyler:function(_bd6,row){ +return ""; +},onClickTag:function(_bd7){ +},onBeforeRemoveTag:function(_bd8){ +},onRemoveTag:function(_bd9){ +}}); +})(jQuery); +(function($){ +function _bda(_bdb){ +var _bdc=$.data(_bdb,"datebox"); +var opts=_bdc.options; +$(_bdb).addClass("datebox-f").combo($.extend({},opts,{onShowPanel:function(){ +_bdd(this); +_bde(this); +_bdf(this); +_bed(this,$(this).datebox("getText"),true); +opts.onShowPanel.call(this); +}})); +if(!_bdc.calendar){ +var _be0=$(_bdb).combo("panel").css("overflow","hidden"); +_be0.panel("options").onBeforeDestroy=function(){ +var c=$(this).find(".calendar-shared"); +if(c.length){ +c.insertBefore(c[0].pholder); +} +}; +var cc=$("
      ").prependTo(_be0); +if(opts.sharedCalendar){ +var c=$(opts.sharedCalendar); +if(!c[0].pholder){ +c[0].pholder=$("
      ").insertAfter(c); +} +c.addClass("calendar-shared").appendTo(cc); +if(!c.hasClass("calendar")){ +c.calendar(); +} +_bdc.calendar=c; +}else{ +_bdc.calendar=$("
      ").appendTo(cc).calendar(); +} +$.extend(_bdc.calendar.calendar("options"),{fit:true,border:false,onSelect:function(date){ +var _be1=this.target; +var opts=$(_be1).datebox("options"); +opts.onSelect.call(_be1,date); +_bed(_be1,opts.formatter.call(_be1,date)); +$(_be1).combo("hidePanel"); +}}); +} +$(_bdb).combo("textbox").parent().addClass("datebox"); +$(_bdb).datebox("initValue",opts.value); +function _bdd(_be2){ +var opts=$(_be2).datebox("options"); +var _be3=$(_be2).combo("panel"); +_be3.unbind(".datebox").bind("click.datebox",function(e){ +if($(e.target).hasClass("datebox-button-a")){ +var _be4=parseInt($(e.target).attr("datebox-button-index")); +opts.buttons[_be4].handler.call(e.target,_be2); +} +}); +}; +function _bde(_be5){ +var _be6=$(_be5).combo("panel"); +if(_be6.children("div.datebox-button").length){ +return; +} +var _be7=$("
      ").appendTo(_be6); +var tr=_be7.find("tr"); +for(var i=0;i").appendTo(tr); +var btn=opts.buttons[i]; +var t=$("").html($.isFunction(btn.text)?btn.text(_be5):btn.text).appendTo(td); +t.attr("datebox-button-index",i); +} +tr.find("td").css("width",(100/opts.buttons.length)+"%"); +}; +function _bdf(_be8){ +var _be9=$(_be8).combo("panel"); +var cc=_be9.children("div.datebox-calendar-inner"); +_be9.children()._outerWidth(_be9.width()); +_bdc.calendar.appendTo(cc); +_bdc.calendar[0].target=_be8; +if(opts.panelHeight!="auto"){ +var _bea=_be9.height(); +_be9.children().not(cc).each(function(){ +_bea-=$(this).outerHeight(); +}); +cc._outerHeight(_bea); +} +_bdc.calendar.calendar("resize"); +}; +}; +function _beb(_bec,q){ +_bed(_bec,q,true); +}; +function _bee(_bef){ +var _bf0=$.data(_bef,"datebox"); +var opts=_bf0.options; +var _bf1=_bf0.calendar.calendar("options").current; +if(_bf1){ +_bed(_bef,opts.formatter.call(_bef,_bf1)); +$(_bef).combo("hidePanel"); +} +}; +function _bed(_bf2,_bf3,_bf4){ +var _bf5=$.data(_bf2,"datebox"); +var opts=_bf5.options; +var _bf6=_bf5.calendar; +_bf6.calendar("moveTo",opts.parser.call(_bf2,_bf3)); +if(_bf4){ +$(_bf2).combo("setValue",_bf3); +}else{ +if(_bf3){ +_bf3=opts.formatter.call(_bf2,_bf6.calendar("options").current); +} +$(_bf2).combo("setText",_bf3).combo("setValue",_bf3); +} +}; +$.fn.datebox=function(_bf7,_bf8){ +if(typeof _bf7=="string"){ +var _bf9=$.fn.datebox.methods[_bf7]; +if(_bf9){ +return _bf9(this,_bf8); +}else{ +return this.combo(_bf7,_bf8); +} +} +_bf7=_bf7||{}; +return this.each(function(){ +var _bfa=$.data(this,"datebox"); +if(_bfa){ +$.extend(_bfa.options,_bf7); +}else{ +$.data(this,"datebox",{options:$.extend({},$.fn.datebox.defaults,$.fn.datebox.parseOptions(this),_bf7)}); +} +_bda(this); +}); +}; +$.fn.datebox.methods={options:function(jq){ +var _bfb=jq.combo("options"); +return $.extend($.data(jq[0],"datebox").options,{width:_bfb.width,height:_bfb.height,originalValue:_bfb.originalValue,disabled:_bfb.disabled,readonly:_bfb.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).combo("cloneFrom",from); +$.data(this,"datebox",{options:$.extend(true,{},$(from).datebox("options")),calendar:$(from).datebox("calendar")}); +$(this).addClass("datebox-f"); +}); +},calendar:function(jq){ +return $.data(jq[0],"datebox").calendar; +},initValue:function(jq,_bfc){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +var _bfd=opts.value; +if(_bfd){ +_bfd=opts.formatter.call(this,opts.parser.call(this,_bfd)); +} +$(this).combo("initValue",_bfd).combo("setText",_bfd); +}); +},setValue:function(jq,_bfe){ +return jq.each(function(){ +_bed(this,_bfe); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +$(this).datebox("setValue",opts.originalValue); +}); +}}; +$.fn.datebox.parseOptions=function(_bff){ +return $.extend({},$.fn.combo.parseOptions(_bff),$.parser.parseOptions(_bff,["sharedCalendar"])); +}; +$.fn.datebox.defaults=$.extend({},$.fn.combo.defaults,{panelWidth:250,panelHeight:"auto",sharedCalendar:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_bee(this); +},query:function(q,e){ +_beb(this,q); +}},currentText:"Today",closeText:"Close",okText:"Ok",buttons:[{text:function(_c00){ +return $(_c00).datebox("options").currentText; +},handler:function(_c01){ +var opts=$(_c01).datebox("options"); +var now=new Date(); +var _c02=new Date(now.getFullYear(),now.getMonth(),now.getDate()); +$(_c01).datebox("calendar").calendar({year:_c02.getFullYear(),month:_c02.getMonth()+1,current:_c02}); +opts.onSelect.call(_c01,_c02); +_bee(_c01); +}},{text:function(_c03){ +return $(_c03).datebox("options").closeText; +},handler:function(_c04){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var y=date.getFullYear(); +var m=date.getMonth()+1; +var d=date.getDate(); +return (m<10?("0"+m):m)+"/"+(d<10?("0"+d):d)+"/"+y; +},parser:function(s){ +if(!s){ +return new Date(); +} +var ss=s.split("/"); +var m=parseInt(ss[0],10); +var d=parseInt(ss[1],10); +var y=parseInt(ss[2],10); +if(!isNaN(y)&&!isNaN(m)&&!isNaN(d)){ +return new Date(y,m-1,d); +}else{ +return new Date(); +} +},onSelect:function(date){ +}}); +})(jQuery); +(function($){ +function _c05(_c06){ +var _c07=$.data(_c06,"datetimebox"); +var opts=_c07.options; +$(_c06).datebox($.extend({},opts,{onShowPanel:function(){ +var _c08=$(this).datetimebox("getValue"); +_c0e(this,_c08,true); +opts.onShowPanel.call(this); +},formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser})); +$(_c06).removeClass("datebox-f").addClass("datetimebox-f"); +$(_c06).datebox("calendar").calendar({onSelect:function(date){ +opts.onSelect.call(this.target,date); +}}); +if(!_c07.spinner){ +var _c09=$(_c06).datebox("panel"); +var p=$("
      ").insertAfter(_c09.children("div.datebox-calendar-inner")); +_c07.spinner=p.children("input"); +} +_c07.spinner.timespinner({width:opts.spinnerWidth,showSeconds:opts.showSeconds,separator:opts.timeSeparator}); +$(_c06).datetimebox("initValue",opts.value); +}; +function _c0a(_c0b){ +var c=$(_c0b).datetimebox("calendar"); +var t=$(_c0b).datetimebox("spinner"); +var date=c.calendar("options").current; +return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds")); +}; +function _c0c(_c0d,q){ +_c0e(_c0d,q,true); +}; +function _c0f(_c10){ +var opts=$.data(_c10,"datetimebox").options; +var date=_c0a(_c10); +_c0e(_c10,opts.formatter.call(_c10,date)); +$(_c10).combo("hidePanel"); +}; +function _c0e(_c11,_c12,_c13){ +var opts=$.data(_c11,"datetimebox").options; +$(_c11).combo("setValue",_c12); +if(!_c13){ +if(_c12){ +var date=opts.parser.call(_c11,_c12); +$(_c11).combo("setText",opts.formatter.call(_c11,date)); +$(_c11).combo("setValue",opts.formatter.call(_c11,date)); +}else{ +$(_c11).combo("setText",_c12); +} +} +var date=opts.parser.call(_c11,_c12); +$(_c11).datetimebox("calendar").calendar("moveTo",date); +$(_c11).datetimebox("spinner").timespinner("setValue",_c14(date)); +function _c14(date){ +function _c15(_c16){ +return (_c16<10?"0":"")+_c16; +}; +var tt=[_c15(date.getHours()),_c15(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_c15(date.getSeconds())); +} +return tt.join($(_c11).datetimebox("spinner").timespinner("options").separator); +}; +}; +$.fn.datetimebox=function(_c17,_c18){ +if(typeof _c17=="string"){ +var _c19=$.fn.datetimebox.methods[_c17]; +if(_c19){ +return _c19(this,_c18); +}else{ +return this.datebox(_c17,_c18); +} +} +_c17=_c17||{}; +return this.each(function(){ +var _c1a=$.data(this,"datetimebox"); +if(_c1a){ +$.extend(_c1a.options,_c17); +}else{ +$.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_c17)}); +} +_c05(this); +}); +}; +$.fn.datetimebox.methods={options:function(jq){ +var _c1b=jq.datebox("options"); +return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_c1b.originalValue,disabled:_c1b.disabled,readonly:_c1b.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).datebox("cloneFrom",from); +$.data(this,"datetimebox",{options:$.extend(true,{},$(from).datetimebox("options")),spinner:$(from).datetimebox("spinner")}); +$(this).removeClass("datebox-f").addClass("datetimebox-f"); +}); +},spinner:function(jq){ +return $.data(jq[0],"datetimebox").spinner; +},initValue:function(jq,_c1c){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +var _c1d=opts.value; +if(_c1d){ +_c1d=opts.formatter.call(this,opts.parser.call(this,_c1d)); +} +$(this).combo("initValue",_c1d).combo("setText",_c1d); +}); +},setValue:function(jq,_c1e){ +return jq.each(function(){ +_c0e(this,_c1e); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +$(this).datetimebox("setValue",opts.originalValue); +}); +}}; +$.fn.datetimebox.parseOptions=function(_c1f){ +var t=$(_c1f); +return $.extend({},$.fn.datebox.parseOptions(_c1f),$.parser.parseOptions(_c1f,["timeSeparator","spinnerWidth",{showSeconds:"boolean"}])); +}; +$.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{spinnerWidth:"100%",showSeconds:true,timeSeparator:":",panelEvents:{mousedown:function(e){ +}},keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_c0f(this); +},query:function(q,e){ +_c0c(this,q); +}},buttons:[{text:function(_c20){ +return $(_c20).datetimebox("options").currentText; +},handler:function(_c21){ +var opts=$(_c21).datetimebox("options"); +_c0e(_c21,opts.formatter.call(_c21,new Date())); +$(_c21).datetimebox("hidePanel"); +}},{text:function(_c22){ +return $(_c22).datetimebox("options").okText; +},handler:function(_c23){ +_c0f(_c23); +}},{text:function(_c24){ +return $(_c24).datetimebox("options").closeText; +},handler:function(_c25){ +$(_c25).datetimebox("hidePanel"); +}}],formatter:function(date){ +var h=date.getHours(); +var M=date.getMinutes(); +var s=date.getSeconds(); +function _c26(_c27){ +return (_c27<10?"0":"")+_c27; +}; +var _c28=$(this).datetimebox("spinner").timespinner("options").separator; +var r=$.fn.datebox.defaults.formatter(date)+" "+_c26(h)+_c28+_c26(M); +if($(this).datetimebox("options").showSeconds){ +r+=_c28+_c26(s); +} +return r; +},parser:function(s){ +if($.trim(s)==""){ +return new Date(); +} +var dt=s.split(" "); +var d=$.fn.datebox.defaults.parser(dt[0]); +if(dt.length<2){ +return d; +} +var _c29=$(this).datetimebox("spinner").timespinner("options").separator; +var tt=dt[1].split(_c29); +var hour=parseInt(tt[0],10)||0; +var _c2a=parseInt(tt[1],10)||0; +var _c2b=parseInt(tt[2],10)||0; +return new Date(d.getFullYear(),d.getMonth(),d.getDate(),hour,_c2a,_c2b); +}}); +})(jQuery); +(function($){ +function init(_c2c){ +var _c2d=$("
      "+"
      "+""+""+"
      "+"
      "+"
      "+"
      "+""+"
      ").insertAfter(_c2c); +var t=$(_c2c); +t.addClass("slider-f").hide(); +var name=t.attr("name"); +if(name){ +_c2d.find("input.slider-value").attr("name",name); +t.removeAttr("name").attr("sliderName",name); +} +_c2d.bind("_resize",function(e,_c2e){ +if($(this).hasClass("easyui-fluid")||_c2e){ +_c2f(_c2c); +} +return false; +}); +return _c2d; +}; +function _c2f(_c30,_c31){ +var _c32=$.data(_c30,"slider"); +var opts=_c32.options; +var _c33=_c32.slider; +if(_c31){ +if(_c31.width){ +opts.width=_c31.width; +} +if(_c31.height){ +opts.height=_c31.height; +} +} +_c33._size(opts); +if(opts.mode=="h"){ +_c33.css("height",""); +_c33.children("div").css("height",""); +}else{ +_c33.css("width",""); +_c33.children("div").css("width",""); +_c33.children("div.slider-rule,div.slider-rulelabel,div.slider-inner")._outerHeight(_c33._outerHeight()); +} +_c34(_c30); +}; +function _c35(_c36){ +var _c37=$.data(_c36,"slider"); +var opts=_c37.options; +var _c38=_c37.slider; +var aa=opts.mode=="h"?opts.rule:opts.rule.slice(0).reverse(); +if(opts.reversed){ +aa=aa.slice(0).reverse(); +} +_c39(aa); +function _c39(aa){ +var rule=_c38.find("div.slider-rule"); +var _c3a=_c38.find("div.slider-rulelabel"); +rule.empty(); +_c3a.empty(); +for(var i=0;i").appendTo(rule); +span.css((opts.mode=="h"?"left":"top"),_c3b); +if(aa[i]!="|"){ +span=$("").appendTo(_c3a); +span.html(aa[i]); +if(opts.mode=="h"){ +span.css({left:_c3b,marginLeft:-Math.round(span.outerWidth()/2)}); +}else{ +span.css({top:_c3b,marginTop:-Math.round(span.outerHeight()/2)}); +} +} +} +}; +}; +function _c3c(_c3d){ +var _c3e=$.data(_c3d,"slider"); +var opts=_c3e.options; +var _c3f=_c3e.slider; +_c3f.removeClass("slider-h slider-v slider-disabled"); +_c3f.addClass(opts.mode=="h"?"slider-h":"slider-v"); +_c3f.addClass(opts.disabled?"slider-disabled":""); +var _c40=_c3f.find(".slider-inner"); +_c40.html(""+""); +if(opts.range){ +_c40.append(""+""); +} +_c3f.find("a.slider-handle").draggable({axis:opts.mode,cursor:"pointer",disabled:opts.disabled,onDrag:function(e){ +var left=e.data.left; +var _c41=_c3f.width(); +if(opts.mode!="h"){ +left=e.data.top; +_c41=_c3f.height(); +} +if(left<0||left>_c41){ +return false; +}else{ +_c42(left,this); +return false; +} +},onStartDrag:function(){ +_c3e.isDragging=true; +opts.onSlideStart.call(_c3d,opts.value); +},onStopDrag:function(e){ +_c42(opts.mode=="h"?e.data.left:e.data.top,this); +opts.onSlideEnd.call(_c3d,opts.value); +opts.onComplete.call(_c3d,opts.value); +_c3e.isDragging=false; +}}); +_c3f.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_c3e.isDragging||opts.disabled){ +return; +} +var pos=$(this).offset(); +_c42(opts.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top)); +opts.onComplete.call(_c3d,opts.value); +}); +function _c43(_c44){ +var dd=String(opts.step).split("."); +var dlen=dd.length>1?dd[1].length:0; +return parseFloat(_c44.toFixed(dlen)); +}; +function _c42(pos,_c45){ +var _c46=_c47(_c3d,pos); +var s=Math.abs(_c46%opts.step); +if(s0; +if(_c46<=v2&&_c48){ +v1=_c46; +}else{ +if(_c46>=v1&&(!_c48)){ +v2=_c46; +} +} +}else{ +if(_c46v2){ +v2=_c46; +}else{ +_c46opts.max){ +_c50=opts.max; +} +var _c51=$("").appendTo(_c4d); +_c51.attr("name",name); +_c51.val(_c50); +_c4f.push(_c50); +var _c52=_c4d.find(".slider-handle:eq("+i+")"); +var tip=_c52.next(); +var pos=_c53(_c4a,_c50); +if(opts.showTip){ +tip.show(); +tip.html(opts.tipFormatter.call(_c4a,_c50)); +}else{ +tip.hide(); +} +if(opts.mode=="h"){ +var _c54="left:"+pos+"px;"; +_c52.attr("style",_c54); +tip.attr("style",_c54+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _c54="top:"+pos+"px;"; +_c52.attr("style",_c54); +tip.attr("style",_c54+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +} +opts.value=opts.range?_c4f:_c4f[0]; +$(_c4a).val(opts.range?_c4f.join(opts.separator):_c4f[0]); +if(_c4e.join(",")!=_c4f.join(",")){ +opts.onChange.call(_c4a,opts.value,(opts.range?_c4e:_c4e[0])); +} +}; +function _c34(_c55){ +var opts=$.data(_c55,"slider").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_c49(_c55,opts.value); +opts.onChange=fn; +}; +function _c53(_c56,_c57){ +var _c58=$.data(_c56,"slider"); +var opts=_c58.options; +var _c59=_c58.slider; +var size=opts.mode=="h"?_c59.width():_c59.height(); +var pos=opts.converter.toPosition.call(_c56,_c57,size); +if(opts.mode=="v"){ +pos=_c59.height()-pos; +} +if(opts.reversed){ +pos=size-pos; +} +return pos; +}; +function _c47(_c5a,pos){ +var _c5b=$.data(_c5a,"slider"); +var opts=_c5b.options; +var _c5c=_c5b.slider; +var size=opts.mode=="h"?_c5c.width():_c5c.height(); +var pos=opts.mode=="h"?(opts.reversed?(size-pos):pos):(opts.reversed?pos:(size-pos)); +var _c5d=opts.converter.toValue.call(_c5a,pos,size); +return _c5d; +}; +$.fn.slider=function(_c5e,_c5f){ +if(typeof _c5e=="string"){ +return $.fn.slider.methods[_c5e](this,_c5f); +} +_c5e=_c5e||{}; +return this.each(function(){ +var _c60=$.data(this,"slider"); +if(_c60){ +$.extend(_c60.options,_c5e); +}else{ +_c60=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_c5e),slider:init(this)}); +$(this).removeAttr("disabled"); +} +var opts=_c60.options; +opts.min=parseFloat(opts.min); +opts.max=parseFloat(opts.max); +if(opts.range){ +if(!$.isArray(opts.value)){ +opts.value=$.map(String(opts.value).split(opts.separator),function(v){ +return parseFloat(v); +}); +} +if(opts.value.length<2){ +opts.value.push(opts.max); +} +}else{ +opts.value=parseFloat(opts.value); +} +opts.step=parseFloat(opts.step); +opts.originalValue=opts.value; +_c3c(this); +_c35(this); +_c2f(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_c61){ +return jq.each(function(){ +_c2f(this,_c61); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},getValues:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_c62){ +return jq.each(function(){ +_c49(this,[_c62]); +}); +},setValues:function(jq,_c63){ +return jq.each(function(){ +_c49(this,_c63); +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_c49(this,opts.range?[opts.min,opts.max]:[opts.min]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +$(this).slider(opts.range?"setValues":"setValue",opts.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_c3c(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_c3c(this); +}); +}}; +$.fn.slider.parseOptions=function(_c64){ +var t=$(_c64); +return $.extend({},$.parser.parseOptions(_c64,["width","height","mode",{reversed:"boolean",showTip:"boolean",range:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,range:false,value:0,separator:",",min:0,max:100,step:1,rule:[],tipFormatter:function(_c65){ +return _c65; +},converter:{toPosition:function(_c66,size){ +var opts=$(this).slider("options"); +var p=(_c66-opts.min)/(opts.max-opts.min)*size; +return p; +},toValue:function(pos,size){ +var opts=$(this).slider("options"); +var v=opts.min+(opts.max-opts.min)*(pos/size); +return v; +}},onChange:function(_c67,_c68){ +},onSlideStart:function(_c69){ +},onSlideEnd:function(_c6a){ +},onComplete:function(_c6b){ +}}; +})(jQuery); + diff --git a/src/main/webapp/js/lib/jquery.form.js b/src/main/webapp/js/lib/jquery.form.js new file mode 100644 index 0000000..c67fc33 --- /dev/null +++ b/src/main/webapp/js/lib/jquery.form.js @@ -0,0 +1,1277 @@ +/*! + * jQuery Form Plugin + * version: 3.51.0-2014.06.20 + * Requires jQuery v1.5 or later + * Copyright (c) 2014 M. Alsup + * Examples and documentation at: http://malsup.com/jquery/form/ + * Project repository: https://github.com/malsup/form + * Dual licensed under the MIT and GPL licenses. + * https://github.com/malsup/form#copyright-and-license + */ +/*global ActiveXObject */ + +// AMD support +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + // using AMD; register as anon module + define(['jquery'], factory); + } else { + // no AMD; invoke directly + factory( (typeof(jQuery) != 'undefined') ? jQuery : window.Zepto ); + } +} + +(function($) { +"use strict"; + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are mutually exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').on('submit', function(e) { + e.preventDefault(); // <-- important + $(this).ajaxSubmit({ + target: '#output' + }); + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + You can also use ajaxForm with delegation (requires jQuery v1.7+), so the + form does not have to exist when you invoke ajaxForm: + + $('#myForm').ajaxForm({ + delegation: true, + target: '#output' + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * Feature detection + */ +var feature = {}; +feature.fileapi = $("").get(0).files !== undefined; +feature.formdata = window.FormData !== undefined; + +var hasProp = !!$.fn.prop; + +// attr2 uses prop when it can but checks the return type for +// an expected string. this accounts for the case where a form +// contains inputs with names like "action" or "method"; in those +// cases "prop" returns the element +$.fn.attr2 = function() { + if ( ! hasProp ) { + return this.attr.apply(this, arguments); + } + var val = this.prop.apply(this, arguments); + if ( ( val && val.jquery ) || typeof val === 'string' ) { + return val; + } + return this.attr.apply(this, arguments); +}; + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + /*jshint scripturl:true */ + + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + var method, action, url, $form = this; + + if (typeof options == 'function') { + options = { success: options }; + } + else if ( options === undefined ) { + options = {}; + } + + method = options.type || this.attr2('method'); + action = options.url || this.attr2('action'); + + url = (typeof action === 'string') ? $.trim(action) : ''; + url = url || window.location.href || ''; + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + + options = $.extend(true, { + url: url, + success: $.ajaxSettings.success, + type: method || $.ajaxSettings.type, + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var traditional = options.traditional; + if ( traditional === undefined ) { + traditional = $.ajaxSettings.traditional; + } + + var elements = []; + var qx, a = this.formToArray(options.semantic, elements); + if (options.data) { + options.extraData = options.data; + qx = $.param(options.data, traditional); + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a, traditional); + if (qx) { + q = ( q ? (q + '&' + qx) : qx ); + } + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else { + options.data = q; // data is the query string for 'post' + } + + var callbacks = []; + if (options.resetForm) { + callbacks.push(function() { $form.resetForm(); }); + } + if (options.clearForm) { + callbacks.push(function() { $form.clearForm(options.includeHidden); }); + } + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) { + callbacks.push(options.success); + } + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + var context = options.context || this ; // jQuery 1.4+ supports scope context + for (var i=0, max=callbacks.length; i < max; i++) { + callbacks[i].apply(context, [data, status, xhr || $form, $form]); + } + }; + + if (options.error) { + var oldError = options.error; + options.error = function(xhr, status, error) { + var context = options.context || this; + oldError.apply(context, [xhr, status, error, $form]); + }; + } + + if (options.complete) { + var oldComplete = options.complete; + options.complete = function(xhr, status) { + var context = options.context || this; + oldComplete.apply(context, [xhr, status, $form]); + }; + } + + // are there files to upload? + + // [value] (issue #113), also see comment: + // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219 + var fileInputs = $('input[type=file]:enabled', this).filter(function() { return $(this).val() !== ''; }); + + var hasFileInputs = fileInputs.length > 0; + var mp = 'multipart/form-data'; + var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + var fileAPI = feature.fileapi && feature.formdata; + log("fileAPI :" + fileAPI); + var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; + + var jqxhr; + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if (options.iframe !== false && (options.iframe || shouldUseFrame)) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, function() { + jqxhr = fileUploadIframe(a); + }); + } + else { + jqxhr = fileUploadIframe(a); + } + } + else if ((hasFileInputs || multipart) && fileAPI) { + jqxhr = fileUploadXhr(a); + } + else { + jqxhr = $.ajax(options); + } + + $form.removeData('jqxhr').data('jqxhr', jqxhr); + + // clear element array + for (var k=0; k < elements.length; k++) { + elements[k] = null; + } + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + // utility fn for deep serialization + function deepSerialize(extraData){ + var serialized = $.param(extraData, options.traditional).split('&'); + var len = serialized.length; + var result = []; + var i, part; + for (i=0; i < len; i++) { + // #252; undo param space replacement + serialized[i] = serialized[i].replace(/\+/g,' '); + part = serialized[i].split('='); + // #278; use array instead of object storage, favoring array serializations + result.push([decodeURIComponent(part[0]), decodeURIComponent(part[1])]); + } + return result; + } + + // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz) + function fileUploadXhr(a) { + var formdata = new FormData(); + + for (var i=0; i < a.length; i++) { + formdata.append(a[i].name, a[i].value); + } + + if (options.extraData) { + var serializedData = deepSerialize(options.extraData); + for (i=0; i < serializedData.length; i++) { + if (serializedData[i]) { + formdata.append(serializedData[i][0], serializedData[i][1]); + } + } + } + + options.data = null; + + var s = $.extend(true, {}, $.ajaxSettings, options, { + contentType: false, + processData: false, + cache: false, + type: method || 'POST' + }); + + if (options.uploadProgress) { + // workaround because jqXHR does not expose upload property + s.xhr = function() { + var xhr = $.ajaxSettings.xhr(); + if (xhr.upload) { + xhr.upload.addEventListener('progress', function(event) { + var percent = 0; + var position = event.loaded || event.position; /*event.position is deprecated*/ + var total = event.total; + if (event.lengthComputable) { + percent = Math.ceil(position / total * 100); + } + options.uploadProgress(event, position, total, percent); + }, false); + } + return xhr; + }; + } + + s.data = null; + var beforeSend = s.beforeSend; + s.beforeSend = function(xhr, o) { + //Send FormData() provided by user + if (options.formData) { + o.data = options.formData; + } + else { + o.data = formdata; + } + if(beforeSend) { + beforeSend.call(this, xhr, o); + } + }; + return $.ajax(s); + } + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUploadIframe(a) { + var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; + var deferred = $.Deferred(); + + // #341 + deferred.abort = function(status) { + xhr.abort(status); + }; + + if (a) { + // ensure that every serialized input is still enabled + for (i=0; i < elements.length; i++) { + el = $(elements[i]); + if ( hasProp ) { + el.prop('disabled', false); + } + else { + el.removeAttr('disabled'); + } + } + } + + s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + id = 'jqFormIO' + (new Date().getTime()); + if (s.iframeTarget) { + $io = $(s.iframeTarget); + n = $io.attr2('name'); + if (!n) { + $io.attr2('name', id); + } + else { + id = n; + } + } + else { + $io = $('